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