#ifndef _DEV_I2C_ADT7462REG_H_
#define _DEV_I2C_ADT7462REG_H_
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: adt7462reg.h,v 1.2 2026/07/07 12:27:03 jdc Exp $");
#define ADT7462_ADDR1 0x58
#define ADT7462_ADDR2 0x5c
#define ADT7462_CONF0 0x00
#define ADT7462_CONF1 0x01
#define ADT7462_CONF2 0x02
#define ADT7462_CONF3 0x03
#define ADT7462_TACH_EN 0x07
#define ADT7462_TACH_CFG 0x08
#define ADT7462_GPIO1_CFG 0x09
#define ADT7462_GPIO2_CFG 0x0a
#define ADT7462_TMIN_CAL1 0x0b
#define ADT7462_TMIN_CAL2 0x0c
#define ADT7462_THERM_CONF 0x0d
#define ADT7462_CONF_THERM1 0x0e
#define ADT7462_CONF_THERM2 0x0f
#define ADT7462_PIN_CONF1 0x10
#define ADT7462_PIN_CONF2 0x11
#define ADT7462_PIN_CONF3 0x12
#define ADT7462_PIN_CONF4 0x13
#define ADT7462_EASY_CONF 0x14
#define ADT7462_EDO_ENABLE 0x16
#define ADT7462_ATTEN1_EN 0x18
#define ADT7462_ATTEN2_EN 0x19
#define ADT7462_ACCOUSTICS1 0x1a
#define ADT7462_ACCOUSTICS2 0x1b
#define ADT7462_FAN_TEST 0x1c
#define ADT7462_FANS_PRESENT 0x1d
#define ADT7462_FAN_TEST_EN 0x1e
#define ADT7462_PWM1_CFG 0x21
#define ADT7462_PWM2_CFG 0x22
#define ADT7462_PWM3_CFG 0x23
#define ADT7462_PWM4_CFG 0x24
#define ADT7462_PWM12_FREQ 0x25
#define ADT7462_PWM34_FREQ 0x26
#define ADT7462_PWM1_MIN 0x28
#define ADT7462_PWM2_MIN 0x29
#define ADT7462_PWM3_MIN 0x2a
#define ADT7462_PWM4_MIN 0x2b
#define ADT7462_PWM1234_MAX 0x2c
#define ADT7462_THERM_MASK1 0x30
#define ADT7462_THERM_MASK2 0x31
#define ADT7462_VOLT_MASK1 0x32
#define ADT7462_VOLT_MASK2 0x33
#define ADT7462_FAN_MASK 0x34
#define ADT7462_DIG_MASK 0x35
#define ADT7462_GPIO_MASK 0x36
#define ADT7462_EDO_MASK1 0x37
#define ADT7462_EDO_MASK2 0x38
#define ADT7462_DEV_ID 0x3d
#define ADT7462_COMP_ID 0x3e
#define ADT7462_REV_ID 0x3f
#define ADT7462_LOCAL_LOW 0x44
#define ADT7462_REM1_LOW 0x45
#define ADT7462_PIN15V_LOW 0x45
#define ADT7462_REM2_LOW 0x46
#define ADT7462_REM3_LOW 0x47
#define ADT7462_PIN19V_LOW 0x47
#define ADT7462_LOCAL_HIGH 0x48
#define ADT7462_REM1_HIGH 0x49
#define ADT7462_PIN15V_HIGH 0x49
#define ADT7462_REM2_HIGH 0x4a
#define ADT7462_REM3_HIGH 0x4b
#define ADT7462_PIN19V_HIGH 0x4b
#define ADT7462_LOCAL_THERM1 0x4c
#define ADT7462_15V2_HIGH 0x4c
#define ADT7462_REM1_THERM1 0x4d
#define ADT7462_REM2_THERM1 0x4e
#define ADT7462_REM3_THERM1 0x4f
#define ADT7462_LOCAL_THERM2 0x50
#define ADT7462_15V1_HIGH 0x50
#define ADT7462_REM1_THERM2 0x51
#define ADT7462_REM2_THERM2 0x52
#define ADT7462_REM3_THERM2 0x53
#define ADT7462_LOCREM1_HYST 0x54
#define ADT7462_REM23_HYST 0x55
#define ADT7462_LOCAL_OFF 0x56
#define ADT7462_REM1_OFF 0x57
#define ADT7462_REM2_OFF 0x58
#define ADT7462_REM3_OFF 0x59
#define ADT7462_REM1_OPP 0x5a
#define ADT7462_REM2_OPP 0x5b
#define ADT7462_LOCAL_MIN 0x5c
#define ADT7462_REM1_MIN 0x5d
#define ADT7462_REM2_MIN 0x5e
#define ADT7462_REM3_MIN 0x5f
#define ADT7462_LOCAL_RANGE 0x60
#define ADT7462_REM1_RANGE 0x61
#define ADT7462_REM2_RANGE 0x62
#define ADT7462_REM3_RANGE 0x63
#define ADT7462_OPP_HYST 0x64
#define ADT7462_33V_HIGH 0x68
#define ADT7462_PIN23V_HIGH 0x69
#define ADT7462_PIN24V_HIGH 0x6a
#define ADT7462_PIN25V_HIGH 0x6b
#define ADT7462_PIN26V_HIGH 0x6c
#define ADT7462_12V1_LOW 0x6d
#define ADT7462_12V2_LOW 0x6e
#define ADT7462_12V3_LOW 0x6f
#define ADT7462_33V_LOW 0x70
#define ADT7462_5V_LOW 0x71
#define ADT7462_PIN23V_LOW 0x72
#define ADT7462_PIN24V_LOW 0x73
#define ADT7462_PIN25V_LOW 0x74
#define ADT7462_PIN26V_LOW 0x75
#define ADT7462_15V1_LOW 0x76
#define ADT7462_15V2_LOW 0x77
#define ADT7462_TACH1_LIMIT 0x78
#define ADT7462_VID_LIMIT 0x78
#define ADT7462_TACH2_LIMIT 0x79
#define ADT7462_TACH3_LIMIT 0x7a
#define ADT7462_TACH4_LIMIT 0x7b
#define ADT7462_TACH5_LIMIT 0x7c
#define ADT7462_12V1_HIGH 0x7c
#define ADT7462_TACH6_LIMIT 0x7d
#define ADT7462_12V2_HIGH 0x7d
#define ADT7462_TACH7_LIMIT 0x7e
#define ADT7462_5V_HIGH 0x7e
#define ADT7462_TACH8_LIMIT 0x7f
#define ADT7462_12V3_HIGH 0x7f
#define ADT7462_THERM1_TIMELIM 0x80
#define ADT7462_THERM2_TIMELIM 0x81
#define ADT7462_LOCAL_VAL_LSB 0x88
#define ADT7462_LOCAL_VAL_MSB 0x89
#define ADT7462_REM1_VAL_LSB 0x8a
#define ADT7462_REM1_VAL_MSB 0x8b
#define ADT7462_PIN15V_VAL 0x8b
#define ADT7462_REM2_VAL_LSB 0x8c
#define ADT7462_REM2_VAL_MSB 0x8d
#define ADT7462_REM3_VAL_LSB 0x8e
#define ADT7462_REM3_VAL_MSB 0x8f
#define ADT7462_PIN19V_VAL 0x8f
#define ADT7462_PIN23V_VAL 0x90
#define ADT7462_PIN24V_VAL 0x91
#define ADT7462_PIN25V_VAL 0x92
#define ADT7462_PIN26V_VAL 0x93
#define ADT7462_15V1_VAL 0x94
#define ADT7462_15V2_VAL 0x95
#define ADT7462_33V_VAL 0x96
#define ADT7462_VID_VAL 0x97
#define ADT7462_TACH1_VAL_LSB 0x98
#define ADT7462_TACH1_VAL_MSB 0x99
#define ADT7462_TACH2_VAL_LSB 0x9a
#define ADT7462_TACH2_VAL_MSB 0x9b
#define ADT7462_TACH3_VAL_LSB 0x9c
#define ADT7462_TACH3_VAL_MSB 0x9d
#define ADT7462_TACH4_VAL_LSB 0x9e
#define ADT7462_TACH4_VAL_MSB 0x9f
#define ADT7462_TACH5_VAL_LSB 0xa2
#define ADT7462_TACH5_VAL_MSB 0xa3
#define ADT7462_12V1_VAL 0xa3
#define ADT7462_TACH6_VAL_LSB 0xa4
#define ADT7462_TACH6_VAL_MSB 0xa5
#define ADT7462_12V2_VAL 0xa5
#define ADT7462_TACH7_VAL_LSB 0xa6
#define ADT7462_TACH7_VAL_MSB 0xa7
#define ADT7462_5V_VAL 0xa7
#define ADT7462_TACH8_VAL_LSB 0xa8
#define ADT7462_TACH8_VAL_MSB 0xa9
#define ADT7462_12V3_VAL 0xa9
#define ADT7462_PWM1_DUTY 0xaa
#define ADT7462_PWM2_DUTY 0xab
#define ADT7462_PWM3_DUTY 0xac
#define ADT7462_PWM4_DUTY 0xad
#define ADT7462_THERM1_ON_TIM 0xae
#define ADT7462_THERM2_ON_TIM 0xaf
#define ADT7462_TEMP1_STAT_H 0xb8
#define ADT7462_TEMP2_STAT_H 0xb9
#define ADT7462_TEMP3_STAT_H 0xba
#define ADT7462_VOLT1_STAT_H 0xbb
#define ADT7462_VOLT2_STAT_H 0xbc
#define ADT7462_FAN_STAT_H 0xbd
#define ADT7462_DIG_STAT_H 0xbe
#define ADT7462_GPIO_STAT_H 0xbf
#define ADT7462_TEMP1_STAT_B 0xc0
#define ADT7462_TEMP2_STAT_B 0xc1
#define ADT7462_VOLT1_STAT_B 0xc3
#define ADT7462_VOLT2_STAT_B 0xc4
#define ADT7462_FAN_STAT_B 0xc5
#define ADT7462_DIG_STAT_B 0xc6
#define ADT7462_CONF0_BLK_MASK 0x3f
#define ADT7462_CONF0_VID_SPEC 0x40
#define ADT7462_CONF0_RESET 0x80
#define ADT7462_CONF1_MONITOR 0x01
#define ADT7462_CONF1_ALERT 0x08
#define ADT7462_CONF1_FAST_SPIN 0x10
#define ADT7462_CONF1_COMPLETE 0x20
#define ADT7462_CONF1_LOCK 0x40
#define ADT7462_CONF1_READY 0x80
#define ADT7462_CONF2_FAN_HF 0x01
#define ADT7462_CONF2_PWM_HF 0x04
#define ADT7462_CONF2_VRD1 0x08
#define ADT7462_CONF2_VRD2 0x10
#define ADT7462_CONF2_FFULL 0x20
#define ADT7462_CONF2_TACH 0xc0
#define ADT7462_CONF2_TACH1 0x00
#define ADT7462_CONF2_TACH2 0x40
#define ADT7462_CONF2_TACH3 0x80
#define ADT7462_CONF2_TACH4 0xc0
#define ADT7462_CONF3_GPIO_EN 0x01
#define ADT7462_CONF3_SCL_TO 0x02
#define ADT7462_CONF3_SDA_TO 0x04
#define ADT7462_CONF3_VID_LVL 0x08
#define ADT7462_CONF3_THERM_LVL 0x10
#define ADT7462_CONF3_CI_RESET 0x20
#define ADT7462_CONF3_XOR_TEST 0x40
#define ADT7462_CONF3_VCORE_LOW 0x80
#define ADT7462_TACH1_ENABLE 0x01
#define ADT7462_TACH2_ENABLE 0x02
#define ADT7462_TACH3_ENABLE 0x04
#define ADT7462_TACH4_ENABLE 0x08
#define ADT7462_TACH5_ENABLE 0x10
#define ADT7462_TACH6_ENABLE 0x20
#define ADT7462_TACH7_ENABLE 0x40
#define ADT7462_TACH8_ENABLE 0x80
#define ADT7462_FAN_TACH_EN(val, x) ((val & (1 << x)) != 0)
#define ADT7462_TACH15_CONT 0x01
#define ADT7462_TACH26_CONT 0x02
#define ADT7462_TACH37_CONT 0x04
#define ADT7462_TACH48_CONT 0x08
#define ADT7462_GPIO1_POL 0x01
#define ADT7462_GPIO1_DIR 0x02
#define ADT7462_GPIO2_POL 0x04
#define ADT7462_GPIO2_DIR 0x08
#define ADT7462_GPIO3_POL 0x10
#define ADT7462_GPIO3_DIR 0x20
#define ADT7462_GPIO4_POL 0x40
#define ADT7462_GPIO4_DIR 0x80
#define ADT7462_GPIO5_POL 0x01
#define ADT7462_GPIO5_DIR 0x02
#define ADT7462_GPIO6_POL 0x04
#define ADT7462_GPIO6_DIR 0x08
#define ADT7462_GPIO7_POL 0x10
#define ADT7462_GPIO7_DIR 0x20
#define ADT7462_GPIO8_POL 0x40
#define ADT7462_GPIO8_DIR 0x80
#define ADT7462_REM1_EN 0x01
#define ADT7462_REM2_EN 0x02
#define ADT7462_P1_R1 0x04
#define ADT7462_P1_R2 0x08
#define ADT7462_P2_R1 0x10
#define ADT7462_P2_R2 0x20
#define ADT7462_REM1_CYCLE 0x07
#define ADT7462_REM2_CYCLE 0x38
#define ADT7462_CTRL_LOOP 0x40
#define ADT7462_BOOST1 0x01
#define ADT7462_BOOST2 0x02
#define ADT7462_THERM1_TIMER 0x1c
#define ADT7462_THERM2_TIMER 0xe0
#define ADT7462_THERM1_TIM_EN 0x01
#define ADT7462_THERM1_LOCAL 0x02
#define ADT7462_THERM1_REM1 0x04
#define ADT7462_THERM1_REM2 0x08
#define ADT7462_THERM1_REM3 0x10
#define ADT7462_THERM2_TIM_EN 0x01
#define ADT7462_THERM2_LOCAL 0x02
#define ADT7462_THERM2_REM1 0x04
#define ADT7462_THERM2_REM2 0x08
#define ADT7462_THERM2_REM3 0x10
#define ADT7462_PIN7_CONF 0x01
#define ADT7462_PIN4_CONF 0x02
#define ADT7462_PIN3_CONF 0x04
#define ADT7462_PIN2_CONF 0x08
#define ADT7462_PIN1_CONF 0x10
#define ADT7462_DIODE3_CONF 0x20
#define ADT7462_DIODE1_CONF 0x40
#define ADT7462_VID_EN 0x80
#define ADT7462_PCR1_TACH(val, x) (x > 4 || \
(x == 4 && (val & ADT7462_PIN7_CONF)) || \
(!(val & ADT7462_VID_EN) && (val & (1 << (4 - x)))))
#define ADT7462_PCR1_TEMP(val, x) (x== 0 || x == 2 || \
(x == 3 && (val & ADT7462_DIODE3_CONF)) || \
(x == 1 && (val & ADT7462_DIODE1_CONF)))
#define ADT7462_PCR1_PIN7_V(val) (!(val & ADT7462_PIN7_CONF))
#define ADT7462_PCR1_PIN19_V(val) (!(val & ADT7462_DIODE3_CONF))
#define ADT7462_PCR1_PIN15_V(val) (!(val & ADT7462_DIODE1_CONF))
#define ADT7462_PCR1_VIDS(val) ((val & ADT7462_VID_EN) != 0)
#define ADT7462_PIN23_CONF 0x03
#define ADT7462_PIN22_CONF 0x04
#define ADT7462_PIN21_CONF 0x08
#define ADT7462_PIN19_CONF 0x10
#define ADT7462_PIN15_CONF 0x20
#define ADT7462_PIN13_CONF 0x40
#define ADT7462_PIN8_CONF 0x80
#define ADT7462_PCR2_P23_25V(val) ((val & ADT7462_PIN23_CONF) == 0x01)
#define ADT7462_PCR2_P23_18V(val) ((val & ADT7462_PIN23_CONF) == 0x02)
#define ADT7462_PCR2_P23_15V(val) ((val & ADT7462_PIN23_CONF) == 0x03)
#define ADT7462_PCR2_P22_TACH8(val) ((val & ADT7462_PIN22_CONF) == 0x04)
#define ADT7462_PCR2_P21_TACH7(val) ((val & ADT7462_PIN21_CONF) == 0x08)
#define ADT7462_PCR2_P19_09V(val) ((val & ADT7462_PIN19_CONF) == 0x10)
#define ADT7462_PCR2_P15_18V(val) ((val & ADT7462_PIN15_CONF) == 0x20)
#define ADT7462_PCR2_P13_PWM4(val) ((val & ADT7462_PIN13_CONF) == 0x40)
#define ADT7462_PCR2_P8_TACH6(val) ((val & ADT7462_PIN8_CONF) == 0x80)
#define ADT7462_PCR2_TACH(val, x) (x < 5 || \
(x == 5 && ADT7462_PCR2_P8_TACH6(val)) || \
(x == 6 && ADT7462_PCR2_P21_TACH7(val)) || \
(x == 7 && ADT7462_PCR2_P22_TACH8(val)))
#define ADT7462_PIN27_CONF 0x02
#define ADT7462_PIN26_CONF 0x0c
#define ADT7462_PIN25_CONF 0x30
#define ADT7462_PIN24_CONF 0xc0
#define ADT7462_PCR3_P24_25V(val) ((val & ADT7462_PIN24_CONF) == 0x40)
#define ADT7462_PCR3_P24_18V(val) ((val & ADT7462_PIN24_CONF) == 0x80)
#define ADT7462_PCR3_P24_15V(val) ((val & ADT7462_PIN24_CONF) == 0xc0)
#define ADT7462_PCR3_P25_33V(val) ((val & ADT7462_PIN25_CONF) == 0x00)
#define ADT7462_PCR3_P25_12V(val) ((val & ADT7462_PIN25_CONF) == 0x10)
#define ADT7462_PCR3_P26_VBAT(val) ((val & ADT7462_PIN26_CONF) == 0x00)
#define ADT7462_PCR3_P26_12V(val) ((val & ADT7462_PIN26_CONF) == 0x04)
#define ADT7462_PIN32_CONF 0x04
#define ADT7462_PIN31_CONF 0x08
#define ADT7462_PIN29_CONF 0x30
#define ADT7462_PIN28_CONF 0xc0
#define ADT7462_PCR4_P29_15V(val) ((val & ADT7462_PIN29_CONF) == 0x10)
#define ADT7462_PCR4_P28_15V(val) ((val & ADT7462_PIN28_CONF) == 0x10)
#define ADT7462_EASY1 0x01
#define ADT7462_EASY2 0x02
#define ADT7462_EASY3 0x04
#define ADT7462_EASY4 0x08
#define ADT7462_EDO_EN1 0x01
#define ADT7462_EDO_EN2 0x02
#define ADT7462_1CHAN_MODE 0x04
#define ADT7462_CHAN_SEL 0xf8
#define ADT7462_ATT_PIN7 0x02
#define ADT7462_ATT_PIN8 0x04
#define ADT7462_ATT_PIN13 0x08
#define ADT7462_ATT_PIN15 0x10
#define ADT7462_ATT_PIN19 0x20
#define ADT7462_ATT_PIN21 0x40
#define ADT7462_ATT_PIN22 0x80
#define ADT7462_ATT_PIN23 0x01
#define ADT7462_ATT_PIN24 0x02
#define ADT7462_ATT_PIN25 0x04
#define ADT7462_ATT_PIN28 0x10
#define ADT7462_ATT_PIN29 0x20
#define ADT7462_AC_EN1 0x01
#define ADT7462_AC_EN2 0x02
#define ADT7462_AC_RATE1 0x1c
#define ADT7462_AC_RATE2 0xe0
#define ADT7462_AC_EN3 0x01
#define ADT7462_AC_EN4 0x02
#define ADT7462_AC_RATE3 0x1c
#define ADT7462_AC_RATE4 0xe0
#define ADT7462_FAN_FREE1_END 0x01
#define ADT7462_FAN_FREE2_END 0x02
#define ADT7462_FAN_FREE3_END 0x04
#define ADT7462_FAN_FREE4_END 0x08
#define ADT7462_FAN_FREE5_END 0x10
#define ADT7462_FAN_FREE6_END 0x20
#define ADT7462_FAN_FREE7_END 0x40
#define ADT7462_FAN_FREE8_END 0x80
#define ADT7462_FAN1_PRESENT 0x01
#define ADT7462_FAN2_PRESENT 0x02
#define ADT7462_FAN3_PRESENT 0x04
#define ADT7462_FAN4_PRESENT 0x08
#define ADT7462_FAN5_PRESENT 0x10
#define ADT7462_FAN6_PRESENT 0x20
#define ADT7462_FAN7_PRESENT 0x40
#define ADT7462_FAN8_PRESENT 0x80
#define ADT7462_FAN_FREE1 0x01
#define ADT7462_FAN_FREE2 0x02
#define ADT7462_FAN_FREE3 0x04
#define ADT7462_FAN_FREE4 0x08
#define ADT7462_FAN_FREE5 0x10
#define ADT7462_FAN_FREE6 0x20
#define ADT7462_FAN_FREE7 0x40
#define ADT7462_FAN_FREE8 0x80
#define ADT7462_PWM_CFG(x) (0x21 + x)
#define ADT7462_PWM_SPIN_TIMEO 0x07
#define ADT7462_PWM_SLOW 0x08
#define ADT7462_PWM_INV 0x10
#define ADT7462_PWM_BHVR_MASK 0xe0
#define ADT7462_PWM_BHVR_SHFT 5
#define ADT7462_PWM_BHVR_LOCAL 0x00
#define ADT7462_PWM_BHVR_REM1 0x20
#define ADT7462_PWM_BHVR_REM2 0x40
#define ADT7462_PWM_BHVR_REM3 0x60
#define ADT7462_PWM_BHVR_OFF 0x80
#define ADT7462_PWM_BHVR_LR3 0xa0
#define ADT7462_PWM_BHVR_ALL 0xc0
#define ADT7462_PWM_BHVR_MAN 0xe0
#define ADT7462_PWM1_TMIN 0x01
#define ADT7462_PWM2_TMIN 0x02
#define ADT7462_PWM1_LFREQ 0x1c
#define ADT7462_PWM2_LFREQ 0xe0
#define ADT7462_PWM3_TMIN 0x01
#define ADT7462_PWM4_TMIN 0x02
#define ADT7462_PWM3_LFREQ 0x1c
#define ADT7462_PWM4_LFREQ 0xe0
#define ADT7462_MASK_LOCAL 0x02
#define ADT7462_MASK_REMOTE1 0x04
#define ADT7462_MASK_REMOTE2 0x08
#define ADT7462_MASK_REMOTE3 0x10
#define ADT7462_MASK_DIODE1 0x20
#define ADT7462_MASK_DIODE2 0x40
#define ADT7462_MASK_DIODE3 0x80
#define ADT7462_MASK_TH1_PCT 0x01
#define ADT7462_MASK_TH1_ASRT 0x02
#define ADT7462_MASK_TH1_STAT 0x04
#define ADT7462_MASK_TH2_PCT 0x08
#define ADT7462_MASK_TH2_ASRT 0x10
#define ADT7462_MASK_TH2_STAT 0x20
#define ADT7462_MASK_VRD1 0x40
#define ADT7462_MASK_VRD2 0x80
#define ADT7462_MASK_12V1 0x01
#define ADT7462_MASK_12V2 0x02
#define ADT7462_MASK_12V3 0x04
#define ADT7462_MASK_33V 0x08
#define ADT7462_MASK_PIN15V 0x10
#define ADT7462_MASK_PIN19V 0x20
#define ADT7462_MASK_5V 0x40
#define ADT7462_MASK_PIN23V 0x80
#define ADT7462_MASK_PIN24V 0x08
#define ADT7462_MASK_PIN25V 0x10
#define ADT7462_MASK_PIN26V 0x20
#define ADT7462_MASK_15V2 0x40
#define ADT7462_MASK_15V1 0x80
#define ADT7462_MASK_FAN1_FAULT 0x01
#define ADT7462_MASK_FAN2_FAULT 0x02
#define ADT7462_MASK_FAN3_FAULT 0x04
#define ADT7462_MASK_FAN4_FAULT 0x08
#define ADT7462_MASK_FAN5_FAULT 0x10
#define ADT7462_MASK_FAN6_FAULT 0x20
#define ADT7462_MASK_FAN7_FAULT 0x40
#define ADT7462_MASK_FAN8_FAULT 0x80
#define ADT7462_MASK_FAN2MAX 0x08
#define ADT7462_MASK_SCSI1 0x10
#define ADT7462_MASK_SCSI2 0x20
#define ADT7462_MASK_VID 0x40
#define ADT7462_MASK_CHASSIS 0x80
#define ADT7462_MASK_GPIO1_FLT 0x01
#define ADT7462_MASK_GPIO2_FLT 0x02
#define ADT7462_MASK_GPIO3_FLT 0x04
#define ADT7462_MASK_GPIO4_FLT 0x08
#define ADT7462_MASK_GPIO5_FLT 0x10
#define ADT7462_MASK_GPIO6_FLT 0x20
#define ADT7462_MASK_GPIO7_FLT 0x40
#define ADT7462_MASK_GPIO8_FLT 0x80
#define ADT7462_EDO1_GPIO1 0x01
#define ADT7462_EDO1_GPIO2 0x02
#define ADT7462_EDO1_GPIO3 0x04
#define ADT7462_EDO1_GPIO4 0x08
#define ADT7462_EDO1_FAN 0x20
#define ADT7462_EDO1_TEMP 0x40
#define ADT7462_EDO2_VOLT 0x80
#define ADT7462_EDO2_GPIO1 0x01
#define ADT7462_EDO2_GPIO2 0x02
#define ADT7462_EDO2_GPIO3 0x04
#define ADT7462_EDO2_GPIO4 0x08
#define ADT7462_EDO2_FAN 0x20
#define ADT7462_EDO2_TEMP 0x40
#define ADT7462_EDO2_VOLT 0x80
#define ADT7462_DEV_ID_VAL 0x62
#define ADT7462_COMP_ID_VAL 0x41
#define ADT7462_REV_ID_VAL 0x04
#define ADT7462_TEMP_BASE 209150000
#define ADT7462_TEMP_OFFSET 64
#define ADT7462_TEMP_LOW(x) (0x44 + x)
#define ADT7462_TEMP_HIGH(x) (0x48 + x)
#define ADT7462_TEMP_THERM1(x) (0x4c + x)
#define ADT7462_TEMP_THERM2(x) (0x50 + x)
#define ADT7462_REMOTE1_TH_HYST 0x0f
#define ADT7462_LOCAL_TH_HYST 0xf0
#define ADT7462_REMOTE3_TH_HYST 0x0f
#define ADT7462_REMOTE2_TH_HYST 0xf0
#define ADT7462_OP_POINT(x) (0x59 + x)
#define ADT7462_TMIN(x) (0x5c + x)
#define ADT7462_HYST_TRANGE(x) (0x60 + x)
#define ADT7462_HTR_HYST_MASK 0x0f
#define ADT7462_HTR_RNGE_MASK 0xf0
#define ADT7462_HTR_RNGE_SHFT 4
#define ADT7462_OPT_HYST 0xf0
#define ADT7462_TACH_LIMIT(x) (0x78 + x)
#define ADT7462_TEMP_LSB(x) (0x88 + 2 * x)
#define ADT7462_TACH_VAL_LSB(x) (x < 4 ? 0x98 + 2 * x : 0x9a + 2 * x)
#define ADT7462_TACH_PERIOD (90000 * 60)
#define ADT7462_PWM_DUTY(x) (0xaa + x)
#define ADT7462_LOCAL_TRIP 0x02
#define ADT7462_REMOTE1_TRIP 0x04
#define ADT7462_REMOTE2_TRIP 0x08
#define ADT7462_REMOTE3_TRIP 0x10
#define ADT7462_DIODE1_ERR 0x20
#define ADT7462_DIODE2_ERR 0x40
#define ADT7462_DIODE3_ERR 0x80
#define ADT7462_THERM1_PCT 0x01
#define ADT7462_THERM1_ASSERT 0x02
#define ADT7462_THERM1_STATE 0x04
#define ADT7462_THERM2_PCT 0x08
#define ADT7462_THERM2_ASSERT 0x10
#define ADT7462_THERM2_STATE 0x20
#define ADT7462_VRD1_ASSERT 0x40
#define ADT7462_VRD2_ASSERT 0x80
#define ADT7462_THERM1_L_EXCD 0x01
#define ADT7462_THERM1_R1_EXCD 0x02
#define ADT7462_THERM1_R2_EXCD 0x04
#define ADT7462_THERM1_R3_EXCD 0x08
#define ADT7462_THERM2_L_EXCD 0x10
#define ADT7462_THERM2_R1_EXCD 0x20
#define ADT7462_THERM2_R2_EXCD 0x40
#define ADT7462_THERM2_R3_EXCD 0x80
#define ADT7462_12V1_TRIP 0x01
#define ADT7462_12V2_TRIP 0x02
#define ADT7462_12V3_TRIP 0x04
#define ADT7462_33V_TRIP 0x08
#define ADT7462_PIN15V_TRIP 0x10
#define ADT7462_PIN19V_TRIP 0x20
#define ADT7462_5V_TRIP 0x40
#define ADT7462_PIN23V_TRIP 0x80
#define ADT7462_PIN24V_TRIP 0x04
#define ADT7462_PIN25V_TRIP 0x10
#define ADT7462_PIN26V_TRIP 0x20
#define ADT7462_15V2_TRIP 0x40
#define ADT7462_15V1_TRIP 0x80
#define ADT7462_FAN1_FAULT 0x01
#define ADT7462_FAN2_FAULT 0x02
#define ADT7462_FAN3_FAULT 0x04
#define ADT7462_FAN4_FAULT 0x08
#define ADT7462_FAN5_FAULT 0x10
#define ADT7462_FAN6_FAULT 0x20
#define ADT7462_FAN7_FAULT 0x40
#define ADT7462_FAN8_FAULT 0x80
#define ADT7462_FAN2MAX_ASSERT 0x08
#define ADT7462_SCSI1_ASSERT 0x10
#define ADT7462_SCSI2_ASSERT 0x20
#define ADT7462_VID_COMP_FLT 0x40
#define ADT7462_CHASSIS_ASSERT 0x80
#define ADT7462_GPIO1_ASSERT 0x01
#define ADT7462_GPIO2_ASSERT 0x02
#define ADT7462_GPIO3_ASSERT 0x04
#define ADT7462_GPIO4_ASSERT 0x08
#define ADT7462_GPIO5_ASSERT 0x10
#define ADT7462_GPIO6_ASSERT 0x20
#define ADT7462_GPIO7_ASSERT 0x40
#define ADT7462_GPIO8_ASSERT 0x80
#endif