1 /******************************************************************************
 
   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).
 
  10  ******************************************************************************/
 
  12 /******************************************************************************
 
  14  *      (C)Copyright 1998-2002 SysKonnect.
 
  15  *      (C)Copyright 2002-2003 Marvell.
 
  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.
 
  22  *      The information in this file is provided "AS IS" without warranty.
 
  24  ******************************************************************************/
 
  31 #endif  /* __cplusplus */
 
  33 /* defines ********************************************************************/
 
  36  * LM80 register definition
 
  38  * All registers are 8 bit wide
 
  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 */
 
  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 */
 
  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 */
 
  83  * LM80 bit definitions
 
  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 */
 
  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# */
 
 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 */
 
 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 */
 
 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 */
 
 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 */
 
 168 #define LM80_ADDR               0x28    /* LM80 default addr */
 
 170 /* typedefs *******************************************************************/
 
 173 /* function prototypes ********************************************************/
 
 177 #endif  /* __cplusplus */
 
 179 #endif  /* __INC_LM80_H */