Linux-2.6.12-rc2
[linux-flexiantxendom0-natty.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 #ifndef __INC_LM80_H
27 #define __INC_LM80_H
28
29 #ifdef __cplusplus
30 extern "C" {
31 #endif  /* __cplusplus */
32
33 /* defines ********************************************************************/
34
35 /*
36  * LM80 register definition
37  *
38  * All registers are 8 bit wide
39  */
40 #define LM80_CFG                        0x00    /* Configuration Register */
41 #define LM80_ISRC_1                     0x01    /* Interrupt Status Register 1 */
42 #define LM80_ISRC_2                     0x02    /* Interrupt Status Register 2 */
43 #define LM80_IMSK_1                     0x03    /* Interrupt Mask Register 1 */
44 #define LM80_IMSK_2                     0x04    /* Interrupt Mask Register 2 */
45 #define LM80_FAN_CTRL           0x05    /* Fan Devisor/RST#/OS# Register */
46 #define LM80_TEMP_CTRL          0x06    /* OS# Config, Temp Res. Reg */
47         /* 0x07 - 0x1f reserved */
48         /* current values */
49 #define LM80_VT0_IN                     0x20    /* current Voltage 0 value */
50 #define LM80_VT1_IN                     0x21    /* current Voltage 1 value */
51 #define LM80_VT2_IN                     0x22    /* current Voltage 2 value */
52 #define LM80_VT3_IN                     0x23    /* current Voltage 3 value */
53 #define LM80_VT4_IN                     0x24    /* current Voltage 4 value */
54 #define LM80_VT5_IN                     0x25    /* current Voltage 5 value */
55 #define LM80_VT6_IN                     0x26    /* current Voltage 6 value */
56 #define LM80_TEMP_IN            0x27    /* current Temperature value */
57 #define LM80_FAN1_IN            0x28    /* current Fan 1 count */
58 #define LM80_FAN2_IN            0x29    /* current Fan 2 count */
59         /* limit values */
60 #define LM80_VT0_HIGH_LIM       0x2a    /* high limit val for Voltage 0 */
61 #define LM80_VT0_LOW_LIM        0x2b    /* low limit val for Voltage 0 */
62 #define LM80_VT1_HIGH_LIM       0x2c    /* high limit val for Voltage 1 */
63 #define LM80_VT1_LOW_LIM        0x2d    /* low limit val for Voltage 1 */
64 #define LM80_VT2_HIGH_LIM       0x2e    /* high limit val for Voltage 2 */
65 #define LM80_VT2_LOW_LIM        0x2f    /* low limit val for Voltage 2 */
66 #define LM80_VT3_HIGH_LIM       0x30    /* high limit val for Voltage 3 */
67 #define LM80_VT3_LOW_LIM        0x31    /* low limit val for Voltage 3 */
68 #define LM80_VT4_HIGH_LIM       0x32    /* high limit val for Voltage 4 */
69 #define LM80_VT4_LOW_LIM        0x33    /* low limit val for Voltage 4 */
70 #define LM80_VT5_HIGH_LIM       0x34    /* high limit val for Voltage 5 */
71 #define LM80_VT5_LOW_LIM        0x35    /* low limit val for Voltage 5 */
72 #define LM80_VT6_HIGH_LIM       0x36    /* high limit val for Voltage 6 */
73 #define LM80_VT6_LOW_LIM        0x37    /* low limit val for Voltage 6 */
74 #define LM80_THOT_LIM_UP        0x38    /* hot temperature limit (high) */
75 #define LM80_THOT_LIM_LO        0x39    /* hot temperature limit (low) */
76 #define LM80_TOS_LIM_UP         0x3a    /* OS temperature limit (high) */
77 #define LM80_TOS_LIM_LO         0x3b    /* OS temperature limit (low) */
78 #define LM80_FAN1_COUNT_LIM     0x3c    /* Fan 1 count limit (high) */
79 #define LM80_FAN2_COUNT_LIM     0x3d    /* Fan 2 count limit (low) */
80         /* 0x3e - 0x3f reserved */
81
82 /*
83  * LM80 bit definitions
84  */
85
86 /*      LM80_CFG                Configuration Register */
87 #define LM80_CFG_START          (1<<0)  /* start monitoring operation */
88 #define LM80_CFG_INT_ENA        (1<<1)  /* enables the INT# Interrupt output */
89 #define LM80_CFG_INT_POL        (1<<2)  /* INT# pol: 0 act low, 1 act high */
90 #define LM80_CFG_INT_CLR        (1<<3)  /* disables INT#/RST_OUT#/OS# outputs */
91 #define LM80_CFG_RESET          (1<<4)  /* signals a reset */
92 #define LM80_CFG_CHASS_CLR      (1<<5)  /* clears Chassis Intrusion (CI) pin */
93 #define LM80_CFG_GPO            (1<<6)  /* drives the GPO# pin */
94 #define LM80_CFG_INIT           (1<<7)  /* restore power on defaults */
95
96 /*      LM80_ISRC_1             Interrupt Status Register 1 */
97 /*      LM80_IMSK_1             Interrupt Mask Register 1 */
98 #define LM80_IS_VT0                     (1<<0)  /* limit exceeded for Voltage 0 */
99 #define LM80_IS_VT1                     (1<<1)  /* limit exceeded for Voltage 1 */
100 #define LM80_IS_VT2                     (1<<2)  /* limit exceeded for Voltage 2 */
101 #define LM80_IS_VT3                     (1<<3)  /* limit exceeded for Voltage 3 */
102 #define LM80_IS_VT4                     (1<<4)  /* limit exceeded for Voltage 4 */
103 #define LM80_IS_VT5                     (1<<5)  /* limit exceeded for Voltage 5 */
104 #define LM80_IS_VT6                     (1<<6)  /* limit exceeded for Voltage 6 */
105 #define LM80_IS_INT_IN          (1<<7)  /* state of INT_IN# */
106
107 /*      LM80_ISRC_2             Interrupt Status Register 2 */
108 /*      LM80_IMSK_2             Interrupt Mask Register 2 */
109 #define LM80_IS_TEMP            (1<<0)  /* HOT temperature limit exceeded */
110 #define LM80_IS_BTI                     (1<<1)  /* state of BTI# pin */
111 #define LM80_IS_FAN1            (1<<2)  /* count limit exceeded for Fan 1 */
112 #define LM80_IS_FAN2            (1<<3)  /* count limit exceeded for Fan 2 */
113 #define LM80_IS_CI                      (1<<4)  /* Chassis Intrusion occured */
114 #define LM80_IS_OS                      (1<<5)  /* OS temperature limit exceeded */
115         /* bit 6 and 7 are reserved in LM80_ISRC_2 */
116 #define LM80_IS_HT_IRQ_MD       (1<<6)  /* Hot temperature interrupt mode */
117 #define LM80_IS_OT_IRQ_MD       (1<<7)  /* OS temperature interrupt mode */
118
119 /*      LM80_FAN_CTRL           Fan Devisor/RST#/OS# Register */
120 #define LM80_FAN1_MD_SEL        (1<<0)  /* Fan 1 mode select */
121 #define LM80_FAN2_MD_SEL        (1<<1)  /* Fan 2 mode select */
122 #define LM80_FAN1_PRM_CTL       (3<<2)  /* Fan 1 speed control */
123 #define LM80_FAN2_PRM_CTL       (3<<4)  /* Fan 2 speed control */
124 #define LM80_FAN_OS_ENA         (1<<6)  /* enable OS mode on RST_OUT#/OS# pins*/
125 #define LM80_FAN_RST_ENA        (1<<7)  /* sets RST_OUT#/OS# pins in RST mode */
126
127 /*      LM80_TEMP_CTRL          OS# Config, Temp Res. Reg */
128 #define LM80_TEMP_OS_STAT       (1<<0)  /* mirrors the state of RST_OUT#/OS# */
129 #define LM80_TEMP_OS_POL        (1<<1)  /* select OS# polarity */
130 #define LM80_TEMP_OS_MODE       (1<<2)  /* selects Interrupt mode */
131 #define LM80_TEMP_RES           (1<<3)  /* selects 9 or 11 bit temp resulution*/
132 #define LM80_TEMP_LSB           (0xf<<4)/* 4 LSBs of 11 bit temp data */
133 #define LM80_TEMP_LSB_9         (1<<7)  /* LSB of 9 bit temperature data */
134
135         /* 0x07 - 0x1f reserved */
136 /*      LM80_VT0_IN             current Voltage 0 value */
137 /*      LM80_VT1_IN             current Voltage 1 value */
138 /*      LM80_VT2_IN             current Voltage 2 value */
139 /*      LM80_VT3_IN             current Voltage 3 value */
140 /*      LM80_VT4_IN             current Voltage 4 value */
141 /*      LM80_VT5_IN             current Voltage 5 value */
142 /*      LM80_VT6_IN             current Voltage 6 value */
143 /*      LM80_TEMP_IN            current temperature value */
144 /*      LM80_FAN1_IN            current Fan 1 count */
145 /*      LM80_FAN2_IN            current Fan 2 count */
146 /*      LM80_VT0_HIGH_LIM       high limit val for Voltage 0 */
147 /*      LM80_VT0_LOW_LIM        low limit val for Voltage 0 */
148 /*      LM80_VT1_HIGH_LIM       high limit val for Voltage 1 */
149 /*      LM80_VT1_LOW_LIM        low limit val for Voltage 1 */
150 /*      LM80_VT2_HIGH_LIM       high limit val for Voltage 2 */
151 /*      LM80_VT2_LOW_LIM        low limit val for Voltage 2 */
152 /*      LM80_VT3_HIGH_LIM       high limit val for Voltage 3 */
153 /*      LM80_VT3_LOW_LIM        low limit val for Voltage 3 */
154 /*      LM80_VT4_HIGH_LIM       high limit val for Voltage 4 */
155 /*      LM80_VT4_LOW_LIM        low limit val for Voltage 4 */
156 /*      LM80_VT5_HIGH_LIM       high limit val for Voltage 5 */
157 /*      LM80_VT5_LOW_LIM        low limit val for Voltage 5 */
158 /*      LM80_VT6_HIGH_LIM       high limit val for Voltage 6 */
159 /*      LM80_VT6_LOW_LIM        low limit val for Voltage 6 */
160 /*      LM80_THOT_LIM_UP        hot temperature limit (high) */
161 /*      LM80_THOT_LIM_LO        hot temperature limit (low) */
162 /*      LM80_TOS_LIM_UP         OS temperature limit (high) */
163 /*      LM80_TOS_LIM_LO         OS temperature limit (low) */
164 /*      LM80_FAN1_COUNT_LIM     Fan 1 count limit (high) */
165 /*      LM80_FAN2_COUNT_LIM     Fan 2 count limit (low) */
166         /* 0x3e - 0x3f reserved */
167
168 #define LM80_ADDR               0x28    /* LM80 default addr */
169
170 /* typedefs *******************************************************************/
171
172
173 /* function prototypes ********************************************************/
174
175 #ifdef __cplusplus
176 }
177 #endif  /* __cplusplus */
178
179 #endif  /* __INC_LM80_H */