wdenk | eb20ad3 | 2003-09-05 23:19:14 +0000 | [diff] [blame] | 1 | /****************************************************************************** |
| 2 | * |
wdenk | 9c53f40 | 2003-10-15 23:53:47 +0000 | [diff] [blame] | 3 | * Name: lm80.h |
wdenk | eb20ad3 | 2003-09-05 23:19:14 +0000 | [diff] [blame] | 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 |
wdenk | 9c53f40 | 2003-10-15 23:53:47 +0000 | [diff] [blame] | 31 | * |
wdenk | eb20ad3 | 2003-09-05 23:19:14 +0000 | [diff] [blame] | 32 | * Revision 1.3 1999/11/22 13:41:19 cgoos |
| 33 | * Changed license header to GPL. |
wdenk | 9c53f40 | 2003-10-15 23:53:47 +0000 | [diff] [blame] | 34 | * |
wdenk | eb20ad3 | 2003-09-05 23:19:14 +0000 | [diff] [blame] | 35 | * Revision 1.2 1999/03/12 13:26:51 malthoff |
| 36 | * remove __STDC__. |
wdenk | 9c53f40 | 2003-10-15 23:53:47 +0000 | [diff] [blame] | 37 | * |
wdenk | eb20ad3 | 2003-09-05 23:19:14 +0000 | [diff] [blame] | 38 | * Revision 1.1 1998/06/19 09:28:31 malthoff |
| 39 | * created. |
wdenk | 9c53f40 | 2003-10-15 23:53:47 +0000 | [diff] [blame] | 40 | * |
wdenk | eb20ad3 | 2003-09-05 23:19:14 +0000 | [diff] [blame] | 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 */ |