commented early_printk patch because of rejects.
[linux-flexiantxendom0-3.2.10.git] / drivers / net / sk98lin / h / lm80.h
1 /******************************************************************************
2  *
3  * Name:        lm80.h  
4  * Project:     Gigabit Ethernet Adapters, Common Modules
5  * Version:     $Revision: 1.6 $
6  * Date:        $Date: 2003/05/13 17:26:52 $
7  * Purpose:     Contains all defines for the LM80 Chip
8  *              (National Semiconductor).
9  *
10  ******************************************************************************/
11
12 /******************************************************************************
13  *
14  *      (C)Copyright 1998-2002 SysKonnect.
15  *      (C)Copyright 2002-2003 Marvell.
16  *
17  *      This program is free software; you can redistribute it and/or modify
18  *      it under the terms of the GNU General Public License as published by
19  *      the Free Software Foundation; either version 2 of the License, or
20  *      (at your option) any later version.
21  *
22  *      The information in this file is provided "AS IS" without warranty.
23  *
24  ******************************************************************************/
25
26 /******************************************************************************
27  *
28  * History:
29  *      $Log: lm80.h,v $
30  *      Revision 1.6  2003/05/13 17:26:52  mkarl
31  *      Editorial changes.
32  *      
33  *      Revision 1.5  2003/03/31 07:15:18  mkarl
34  *      Corrected Copyright.
35  *      Editorial changes.
36  *      
37  *      Revision 1.4  2002/04/25 11:04:10  rschmidt
38  *      Editorial changes
39  *      
40  *      Revision 1.3  1999/11/22 13:41:19  cgoos
41  *      Changed license header to GPL.
42  *      
43  *      Revision 1.2  1999/03/12 13:26:51  malthoff
44  *      remove __STDC__.
45  *      
46  *      Revision 1.1  1998/06/19 09:28:31  malthoff
47  *      created.
48  *      
49  *
50  ******************************************************************************/
51
52 #ifndef __INC_LM80_H
53 #define __INC_LM80_H
54
55 #ifdef __cplusplus
56 extern "C" {
57 #endif  /* __cplusplus */
58
59 /* defines ********************************************************************/
60
61 /*
62  * LM80 register definition
63  *
64  * All registers are 8 bit wide
65  */
66 #define LM80_CFG                        0x00    /* Configuration Register */
67 #define LM80_ISRC_1                     0x01    /* Interrupt Status Register 1 */
68 #define LM80_ISRC_2                     0x02    /* Interrupt Status Register 2 */
69 #define LM80_IMSK_1                     0x03    /* Interrupt Mask Register 1 */
70 #define LM80_IMSK_2                     0x04    /* Interrupt Mask Register 2 */
71 #define LM80_FAN_CTRL           0x05    /* Fan Devisor/RST#/OS# Register */
72 #define LM80_TEMP_CTRL          0x06    /* OS# Config, Temp Res. Reg */
73         /* 0x07 - 0x1f reserved */
74         /* current values */
75 #define LM80_VT0_IN                     0x20    /* current Voltage 0 value */
76 #define LM80_VT1_IN                     0x21    /* current Voltage 1 value */
77 #define LM80_VT2_IN                     0x22    /* current Voltage 2 value */
78 #define LM80_VT3_IN                     0x23    /* current Voltage 3 value */
79 #define LM80_VT4_IN                     0x24    /* current Voltage 4 value */
80 #define LM80_VT5_IN                     0x25    /* current Voltage 5 value */
81 #define LM80_VT6_IN                     0x26    /* current Voltage 6 value */
82 #define LM80_TEMP_IN            0x27    /* current Temperature value */
83 #define LM80_FAN1_IN            0x28    /* current Fan 1 count */
84 #define LM80_FAN2_IN            0x29    /* current Fan 2 count */
85         /* limit values */
86 #define LM80_VT0_HIGH_LIM       0x2a    /* high limit val for Voltage 0 */
87 #define LM80_VT0_LOW_LIM        0x2b    /* low limit val for Voltage 0 */
88 #define LM80_VT1_HIGH_LIM       0x2c    /* high limit val for Voltage 1 */
89 #define LM80_VT1_LOW_LIM        0x2d    /* low limit val for Voltage 1 */
90 #define LM80_VT2_HIGH_LIM       0x2e    /* high limit val for Voltage 2 */
91 #define LM80_VT2_LOW_LIM        0x2f    /* low limit val for Voltage 2 */
92 #define LM80_VT3_HIGH_LIM       0x30    /* high limit val for Voltage 3 */
93 #define LM80_VT3_LOW_LIM        0x31    /* low limit val for Voltage 3 */
94 #define LM80_VT4_HIGH_LIM       0x32    /* high limit val for Voltage 4 */
95 #define LM80_VT4_LOW_LIM        0x33    /* low limit val for Voltage 4 */
96 #define LM80_VT5_HIGH_LIM       0x34    /* high limit val for Voltage 5 */
97 #define LM80_VT5_LOW_LIM        0x35    /* low limit val for Voltage 5 */
98 #define LM80_VT6_HIGH_LIM       0x36    /* high limit val for Voltage 6 */
99 #define LM80_VT6_LOW_LIM        0x37    /* low limit val for Voltage 6 */
100 #define LM80_THOT_LIM_UP        0x38    /* hot temperature limit (high) */
101 #define LM80_THOT_LIM_LO        0x39    /* hot temperature limit (low) */
102 #define LM80_TOS_LIM_UP         0x3a    /* OS temperature limit (high) */
103 #define LM80_TOS_LIM_LO         0x3b    /* OS temperature limit (low) */
104 #define LM80_FAN1_COUNT_LIM     0x3c    /* Fan 1 count limit (high) */
105 #define LM80_FAN2_COUNT_LIM     0x3d    /* Fan 2 count limit (low) */
106         /* 0x3e - 0x3f reserved */
107
108 /*
109  * LM80 bit definitions
110  */
111
112 /*      LM80_CFG                Configuration Register */
113 #define LM80_CFG_START          (1<<0)  /* start monitoring operation */
114 #define LM80_CFG_INT_ENA        (1<<1)  /* enables the INT# Interrupt output */
115 #define LM80_CFG_INT_POL        (1<<2)  /* INT# pol: 0 act low, 1 act high */
116 #define LM80_CFG_INT_CLR        (1<<3)  /* disables INT#/RST_OUT#/OS# outputs */
117 #define LM80_CFG_RESET          (1<<4)  /* signals a reset */
118 #define LM80_CFG_CHASS_CLR      (1<<5)  /* clears Chassis Intrusion (CI) pin */
119 #define LM80_CFG_GPO            (1<<6)  /* drives the GPO# pin */
120 #define LM80_CFG_INIT           (1<<7)  /* restore power on defaults */
121
122 /*      LM80_ISRC_1             Interrupt Status Register 1 */
123 /*      LM80_IMSK_1             Interrupt Mask Register 1 */
124 #define LM80_IS_VT0                     (1<<0)  /* limit exceeded for Voltage 0 */
125 #define LM80_IS_VT1                     (1<<1)  /* limit exceeded for Voltage 1 */
126 #define LM80_IS_VT2                     (1<<2)  /* limit exceeded for Voltage 2 */
127 #define LM80_IS_VT3                     (1<<3)  /* limit exceeded for Voltage 3 */
128 #define LM80_IS_VT4                     (1<<4)  /* limit exceeded for Voltage 4 */
129 #define LM80_IS_VT5                     (1<<5)  /* limit exceeded for Voltage 5 */
130 #define LM80_IS_VT6                     (1<<6)  /* limit exceeded for Voltage 6 */
131 #define LM80_IS_INT_IN          (1<<7)  /* state of INT_IN# */
132
133 /*      LM80_ISRC_2             Interrupt Status Register 2 */
134 /*      LM80_IMSK_2             Interrupt Mask Register 2 */
135 #define LM80_IS_TEMP            (1<<0)  /* HOT temperature limit exceeded */
136 #define LM80_IS_BTI                     (1<<1)  /* state of BTI# pin */
137 #define LM80_IS_FAN1            (1<<2)  /* count limit exceeded for Fan 1 */
138 #define LM80_IS_FAN2            (1<<3)  /* count limit exceeded for Fan 2 */
139 #define LM80_IS_CI                      (1<<4)  /* Chassis Intrusion occured */
140 #define LM80_IS_OS                      (1<<5)  /* OS temperature limit exceeded */
141         /* bit 6 and 7 are reserved in LM80_ISRC_2 */
142 #define LM80_IS_HT_IRQ_MD       (1<<6)  /* Hot temperature interrupt mode */
143 #define LM80_IS_OT_IRQ_MD       (1<<7)  /* OS temperature interrupt mode */
144
145 /*      LM80_FAN_CTRL           Fan Devisor/RST#/OS# Register */
146 #define LM80_FAN1_MD_SEL        (1<<0)  /* Fan 1 mode select */
147 #define LM80_FAN2_MD_SEL        (1<<1)  /* Fan 2 mode select */
148 #define LM80_FAN1_PRM_CTL       (3<<2)  /* Fan 1 speed control */
149 #define LM80_FAN2_PRM_CTL       (3<<4)  /* Fan 2 speed control */
150 #define LM80_FAN_OS_ENA         (1<<6)  /* enable OS mode on RST_OUT#/OS# pins*/
151 #define LM80_FAN_RST_ENA        (1<<7)  /* sets RST_OUT#/OS# pins in RST mode */
152
153 /*      LM80_TEMP_CTRL          OS# Config, Temp Res. Reg */
154 #define LM80_TEMP_OS_STAT       (1<<0)  /* mirrors the state of RST_OUT#/OS# */
155 #define LM80_TEMP_OS_POL        (1<<1)  /* select OS# polarity */
156 #define LM80_TEMP_OS_MODE       (1<<2)  /* selects Interrupt mode */
157 #define LM80_TEMP_RES           (1<<3)  /* selects 9 or 11 bit temp resulution*/
158 #define LM80_TEMP_LSB           (0xf<<4)/* 4 LSBs of 11 bit temp data */
159 #define LM80_TEMP_LSB_9         (1<<7)  /* LSB of 9 bit temperature data */
160
161         /* 0x07 - 0x1f reserved */
162 /*      LM80_VT0_IN             current Voltage 0 value */
163 /*      LM80_VT1_IN             current Voltage 1 value */
164 /*      LM80_VT2_IN             current Voltage 2 value */
165 /*      LM80_VT3_IN             current Voltage 3 value */
166 /*      LM80_VT4_IN             current Voltage 4 value */
167 /*      LM80_VT5_IN             current Voltage 5 value */
168 /*      LM80_VT6_IN             current Voltage 6 value */
169 /*      LM80_TEMP_IN            current temperature value */
170 /*      LM80_FAN1_IN            current Fan 1 count */
171 /*      LM80_FAN2_IN            current Fan 2 count */
172 /*      LM80_VT0_HIGH_LIM       high limit val for Voltage 0 */
173 /*      LM80_VT0_LOW_LIM        low limit val for Voltage 0 */
174 /*      LM80_VT1_HIGH_LIM       high limit val for Voltage 1 */
175 /*      LM80_VT1_LOW_LIM        low limit val for Voltage 1 */
176 /*      LM80_VT2_HIGH_LIM       high limit val for Voltage 2 */
177 /*      LM80_VT2_LOW_LIM        low limit val for Voltage 2 */
178 /*      LM80_VT3_HIGH_LIM       high limit val for Voltage 3 */
179 /*      LM80_VT3_LOW_LIM        low limit val for Voltage 3 */
180 /*      LM80_VT4_HIGH_LIM       high limit val for Voltage 4 */
181 /*      LM80_VT4_LOW_LIM        low limit val for Voltage 4 */
182 /*      LM80_VT5_HIGH_LIM       high limit val for Voltage 5 */
183 /*      LM80_VT5_LOW_LIM        low limit val for Voltage 5 */
184 /*      LM80_VT6_HIGH_LIM       high limit val for Voltage 6 */
185 /*      LM80_VT6_LOW_LIM        low limit val for Voltage 6 */
186 /*      LM80_THOT_LIM_UP        hot temperature limit (high) */
187 /*      LM80_THOT_LIM_LO        hot temperature limit (low) */
188 /*      LM80_TOS_LIM_UP         OS temperature limit (high) */
189 /*      LM80_TOS_LIM_LO         OS temperature limit (low) */
190 /*      LM80_FAN1_COUNT_LIM     Fan 1 count limit (high) */
191 /*      LM80_FAN2_COUNT_LIM     Fan 2 count limit (low) */
192         /* 0x3e - 0x3f reserved */
193
194 #define LM80_ADDR               0x28    /* LM80 default addr */
195
196 /* typedefs *******************************************************************/
197
198
199 /* function prototypes ********************************************************/
200
201 #ifdef __cplusplus
202 }
203 #endif  /* __cplusplus */
204
205 #endif  /* __INC_LM80_H */