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