Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging

Pull four hwmon patches from Guenter Roeck

* tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
hwmon: (jc42) Add support for AT30TS00, TS3000GB2, TSE2002GB2, and MCP9804
hwmon: (zl6100) Maintain delay parameter in driver instance data
hwmon: (pmbus_core) Fix maximum number of POUT alarm attributes
hwmon: (jc42) Add support for ST Microelectronics STTS2002 and STTS3000

+59 -15
+20 -6
Documentation/hwmon/jc42
··· 7 7 Addresses scanned: I2C 0x18 - 0x1f 8 8 Datasheets: 9 9 http://www.analog.com/static/imported-files/data_sheets/ADT7408.pdf 10 - * IDT TSE2002B3, TS3000B3 11 - Prefix: 'tse2002b3', 'ts3000b3' 10 + * Atmel AT30TS00 11 + Prefix: 'at30ts00' 12 12 Addresses scanned: I2C 0x18 - 0x1f 13 13 Datasheets: 14 - http://www.idt.com/products/getdoc.cfm?docid=18715691 15 - http://www.idt.com/products/getdoc.cfm?docid=18715692 14 + http://www.atmel.com/Images/doc8585.pdf 15 + * IDT TSE2002B3, TSE2002GB2, TS3000B3, TS3000GB2 16 + Prefix: 'tse2002', 'ts3000' 17 + Addresses scanned: I2C 0x18 - 0x1f 18 + Datasheets: 19 + http://www.idt.com/sites/default/files/documents/IDT_TSE2002B3C_DST_20100512_120303152056.pdf 20 + http://www.idt.com/sites/default/files/documents/IDT_TSE2002GB2A1_DST_20111107_120303145914.pdf 21 + http://www.idt.com/sites/default/files/documents/IDT_TS3000B3A_DST_20101129_120303152013.pdf 22 + http://www.idt.com/sites/default/files/documents/IDT_TS3000GB2A1_DST_20111104_120303151012.pdf 16 23 * Maxim MAX6604 17 24 Prefix: 'max6604' 18 25 Addresses scanned: I2C 0x18 - 0x1f 19 26 Datasheets: 20 27 http://datasheets.maxim-ic.com/en/ds/MAX6604.pdf 21 - * Microchip MCP9805, MCP98242, MCP98243, MCP9843 22 - Prefixes: 'mcp9805', 'mcp98242', 'mcp98243', 'mcp9843' 28 + * Microchip MCP9804, MCP9805, MCP98242, MCP98243, MCP9843 29 + Prefixes: 'mcp9804', 'mcp9805', 'mcp98242', 'mcp98243', 'mcp9843' 23 30 Addresses scanned: I2C 0x18 - 0x1f 24 31 Datasheets: 32 + http://ww1.microchip.com/downloads/en/DeviceDoc/22203C.pdf 25 33 http://ww1.microchip.com/downloads/en/DeviceDoc/21977b.pdf 26 34 http://ww1.microchip.com/downloads/en/DeviceDoc/21996a.pdf 27 35 http://ww1.microchip.com/downloads/en/DeviceDoc/22153c.pdf ··· 56 48 Datasheets: 57 49 http://www.st.com/stonline/products/literature/ds/13447/stts424.pdf 58 50 http://www.st.com/stonline/products/literature/ds/13448/stts424e02.pdf 51 + * ST Microelectronics STTS2002, STTS3000 52 + Prefix: 'stts2002', 'stts3000' 53 + Addresses scanned: I2C 0x18 - 0x1f 54 + Datasheets: 55 + http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00225278.pdf 56 + http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATA_BRIEF/CD00270920.pdf 59 57 * JEDEC JC 42.4 compliant temperature sensor chips 60 58 Prefix: 'jc42' 61 59 Addresses scanned: I2C 0x18 - 0x1f
+3 -2
drivers/hwmon/Kconfig
··· 497 497 If you say yes here, you get support for JEDEC JC42.4 compliant 498 498 temperature sensors, which are used on many DDR3 memory modules for 499 499 mobile devices and servers. Support will include, but not be limited 500 - to, ADT7408, CAT34TS02, CAT6095, MAX6604, MCP9805, MCP98242, MCP98243, 501 - MCP9843, SE97, SE98, STTS424(E), TSE2002B3, and TS3000B3. 500 + to, ADT7408, AT30TS00, CAT34TS02, CAT6095, MAX6604, MCP9804, MCP9805, 501 + MCP98242, MCP98243, MCP9843, SE97, SE98, STTS424(E), STTS2002, 502 + STTS3000, TSE2002B3, TSE2002GB2, TS3000B3, and TS3000GB2. 502 503 503 504 This driver can also be built as a module. If so, the module 504 505 will be called jc42.
+28 -2
drivers/hwmon/jc42.c
··· 64 64 65 65 /* Manufacturer IDs */ 66 66 #define ADT_MANID 0x11d4 /* Analog Devices */ 67 + #define ATMEL_MANID 0x001f /* Atmel */ 67 68 #define MAX_MANID 0x004d /* Maxim */ 68 69 #define IDT_MANID 0x00b3 /* IDT */ 69 70 #define MCP_MANID 0x0054 /* Microchip */ ··· 78 77 #define ADT7408_DEVID 0x0801 79 78 #define ADT7408_DEVID_MASK 0xffff 80 79 80 + /* Atmel */ 81 + #define AT30TS00_DEVID 0x8201 82 + #define AT30TS00_DEVID_MASK 0xffff 83 + 81 84 /* IDT */ 82 85 #define TS3000B3_DEVID 0x2903 /* Also matches TSE2002B3 */ 83 86 #define TS3000B3_DEVID_MASK 0xffff 87 + 88 + #define TS3000GB2_DEVID 0x2912 /* Also matches TSE2002GB2 */ 89 + #define TS3000GB2_DEVID_MASK 0xffff 84 90 85 91 /* Maxim */ 86 92 #define MAX6604_DEVID 0x3e00 87 93 #define MAX6604_DEVID_MASK 0xffff 88 94 89 95 /* Microchip */ 96 + #define MCP9804_DEVID 0x0200 97 + #define MCP9804_DEVID_MASK 0xfffc 98 + 90 99 #define MCP98242_DEVID 0x2000 91 100 #define MCP98242_DEVID_MASK 0xfffc 92 101 ··· 124 113 #define STTS424E_DEVID 0x0000 125 114 #define STTS424E_DEVID_MASK 0xfffe 126 115 116 + #define STTS2002_DEVID 0x0300 117 + #define STTS2002_DEVID_MASK 0xffff 118 + 119 + #define STTS3000_DEVID 0x0200 120 + #define STTS3000_DEVID_MASK 0xffff 121 + 127 122 static u16 jc42_hysteresis[] = { 0, 1500, 3000, 6000 }; 128 123 129 124 struct jc42_chips { ··· 140 123 141 124 static struct jc42_chips jc42_chips[] = { 142 125 { ADT_MANID, ADT7408_DEVID, ADT7408_DEVID_MASK }, 126 + { ATMEL_MANID, AT30TS00_DEVID, AT30TS00_DEVID_MASK }, 143 127 { IDT_MANID, TS3000B3_DEVID, TS3000B3_DEVID_MASK }, 128 + { IDT_MANID, TS3000GB2_DEVID, TS3000GB2_DEVID_MASK }, 144 129 { MAX_MANID, MAX6604_DEVID, MAX6604_DEVID_MASK }, 130 + { MCP_MANID, MCP9804_DEVID, MCP9804_DEVID_MASK }, 145 131 { MCP_MANID, MCP98242_DEVID, MCP98242_DEVID_MASK }, 146 132 { MCP_MANID, MCP98243_DEVID, MCP98243_DEVID_MASK }, 147 133 { MCP_MANID, MCP9843_DEVID, MCP9843_DEVID_MASK }, ··· 153 133 { NXP_MANID, SE98_DEVID, SE98_DEVID_MASK }, 154 134 { STM_MANID, STTS424_DEVID, STTS424_DEVID_MASK }, 155 135 { STM_MANID, STTS424E_DEVID, STTS424E_DEVID_MASK }, 136 + { STM_MANID, STTS2002_DEVID, STTS2002_DEVID_MASK }, 137 + { STM_MANID, STTS3000_DEVID, STTS3000_DEVID_MASK }, 156 138 }; 157 139 158 140 /* Each client has this additional data */ ··· 181 159 182 160 static const struct i2c_device_id jc42_id[] = { 183 161 { "adt7408", 0 }, 162 + { "at30ts00", 0 }, 184 163 { "cat94ts02", 0 }, 185 164 { "cat6095", 0 }, 186 165 { "jc42", 0 }, 187 166 { "max6604", 0 }, 167 + { "mcp9804", 0 }, 188 168 { "mcp9805", 0 }, 189 169 { "mcp98242", 0 }, 190 170 { "mcp98243", 0 }, ··· 195 171 { "se97b", 0 }, 196 172 { "se98", 0 }, 197 173 { "stts424", 0 }, 198 - { "tse2002b3", 0 }, 199 - { "ts3000b3", 0 }, 174 + { "stts2002", 0 }, 175 + { "stts3000", 0 }, 176 + { "tse2002", 0 }, 177 + { "ts3000", 0 }, 200 178 { } 201 179 }; 202 180 MODULE_DEVICE_TABLE(i2c, jc42_id);
+2 -1
drivers/hwmon/pmbus/pmbus_core.c
··· 54 54 lcrit_alarm, crit_alarm */ 55 55 #define PMBUS_IOUT_BOOLEANS_PER_PAGE 3 /* alarm, lcrit_alarm, 56 56 crit_alarm */ 57 - #define PMBUS_POUT_BOOLEANS_PER_PAGE 2 /* alarm, crit_alarm */ 57 + #define PMBUS_POUT_BOOLEANS_PER_PAGE 3 /* cap_alarm, alarm, crit_alarm 58 + */ 58 59 #define PMBUS_MAX_BOOLEANS_PER_FAN 2 /* alarm, fault */ 59 60 #define PMBUS_MAX_BOOLEANS_PER_TEMP 4 /* min_alarm, max_alarm, 60 61 lcrit_alarm, crit_alarm */
+6 -4
drivers/hwmon/pmbus/zl6100.c
··· 33 33 struct zl6100_data { 34 34 int id; 35 35 ktime_t access; /* chip access time */ 36 + int delay; /* Delay between chip accesses in uS */ 36 37 struct pmbus_driver_info info; 37 38 }; 38 39 ··· 53 52 /* Some chips need a delay between accesses */ 54 53 static inline void zl6100_wait(const struct zl6100_data *data) 55 54 { 56 - if (delay) { 55 + if (data->delay) { 57 56 s64 delta = ktime_us_delta(ktime_get(), data->access); 58 - if (delta < delay) 59 - udelay(delay - delta); 57 + if (delta < data->delay) 58 + udelay(data->delay - delta); 60 59 } 61 60 } 62 61 ··· 208 207 * can be cleared later for additional chips if tests show that it 209 208 * is not needed (in other words, better be safe than sorry). 210 209 */ 210 + data->delay = delay; 211 211 if (data->id == zl2004 || data->id == zl6105) 212 - delay = 0; 212 + data->delay = 0; 213 213 214 214 /* 215 215 * Since there was a direct I2C device access above, wait before