Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  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 */
180 
  This page was automatically generated by the LXR engine.