Changeset 941
- Timestamp:
- 12/02/00 23:39:21 (12 years ago)
- Location:
- lm-sensors/trunk
- Files:
-
- 2 modified
-
CHANGES (modified) (1 diff)
-
kernel/busses/i2c-i810.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lm-sensors/trunk/CHANGES
r940 r941 28 28 Module ds1621: new 29 29 Module i2c-ali1535: Enhance error checking and recovery; add mutex 30 Module i2c-i810: Add "dummy write" before reads per Intel prog. ref. 30 31 Module lm87: update voltage calculations 31 32 Module mtp008: new -
lm-sensors/trunk/kernel/busses/i2c-i810.c
r862 r941 134 134 /* The GPIO pins are open drain, so the pins always remain outputs. 135 135 We rely on the i2c-algo-bit routines to set the pins high before 136 reading the input from other chips. */ 136 reading the input from other chips. Following guidance in the 815 137 prog. ref. guide, we do a "dummy write" of 0 to the register before 138 reading which forces the input value to be latched. We presume this 139 applies to the 810 as well. This is necessary to get 140 i2c_algo_bit bit_test=1 to pass. */ 137 141 138 142 static int bit_i810i2c_getscl(void *data) 139 143 { 144 outlong(0, I810_GPIOB); 140 145 return (0 != (readlong(I810_GPIOB) & SCL_VAL_IN)); 141 146 } … … 143 148 static int bit_i810i2c_getsda(void *data) 144 149 { 150 outlong(0, I810_GPIOB); 145 151 return (0 != (readlong(I810_GPIOB) & SDA_VAL_IN)); 146 152 } … … 160 166 static int bit_i810ddc_getscl(void *data) 161 167 { 168 outlong(0, I810_GPIOA); 162 169 return (0 != (readlong(I810_GPIOA) & SCL_VAL_IN)); 163 170 } … … 165 172 static int bit_i810ddc_getsda(void *data) 166 173 { 174 outlong(0, I810_GPIOA); 167 175 return (0 != (readlong(I810_GPIOA) & SDA_VAL_IN)); 168 176 }
