mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-18 16:44:27 +08:00
Four patches since v3.3-rc6:
1bd612a
hwmon: (jc42) Add support for AT30TS00, TS3000GB2, TSE2002GB2, and MCP98047ad6307
hwmon: (zl6100) Maintain delay parameter in driver instance data7cb3c44
hwmon: (pmbus_core) Fix maximum number of POUT alarm attributes4de8612
hwmon: (jc42) Add support for ST Microelectronics STTS2002 and STTS3000 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) iQIcBAABAgAGBQJPV7njAAoJEMsfJm/On5mBJQAQAJeqsVDIdsYAok5DUcF3NLYV CRhrNWSrGvrz0w9+dovn3R0kIP/mP5XeAsVswokDbVlXL6JYa1jJuhQo7WvrA1sI OEOGe9E9ypH7Bol+BtH293TJRkGbTRfmi2c8vjnkNYAXNoYvXKd91ZUhN+lhoLxW BqGgHF3wgZZlw3jrCJC78Glmnu4fmy18g2oUqJbPgdtBRh2coDw0i1cvAPM8ud/b Aqpb+DF2Im2qMFgiflaWkB0fU/VJSxQMDYtgguOVeGTIuxCGVihwM2zGjJtieHRD w4stWfUWqhotBlsDlfrTnhgZZ4dFYvxo98as5HhWnzMdwwOoiwx2Nhv4M1ZpCi1d KIJrGKpsgVTGL2b6PNJhAusCO8slRBJ44sb49hTk1baFd9YuerqHReUw5/Y0+Jk/ 8juOKOVoX27DW3rZkq7KX6AEdDB9l3dnd3D8sSLyPmMeRVVuxUsQjK7PCbDtjQ6u BASNRGAp4T7+pGhq2yQmDAoawDPYesa5hg/6XD2x5iHCdI/TMxAHgP0qVkfiOcYX IxYS/rgeBoH42+Aak5XXwafbTfdiWaRxpMnRnwgaTUxaOWu3GauIQb5TzWZMQTKm xwZkxoS/XVDADXCzZxoCop4nbYnFwqKq2p+icwleSuVyN/+hI2lsz8wdsYFFWKnZ ApulwsYjhhtrtDFRysiB =mjD6 -----END PGP SIGNATURE----- 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
This commit is contained in:
commit
42a6c7ef3b
@ -7,21 +7,29 @@ Supported chips:
|
||||
Addresses scanned: I2C 0x18 - 0x1f
|
||||
Datasheets:
|
||||
http://www.analog.com/static/imported-files/data_sheets/ADT7408.pdf
|
||||
* IDT TSE2002B3, TS3000B3
|
||||
Prefix: 'tse2002b3', 'ts3000b3'
|
||||
* Atmel AT30TS00
|
||||
Prefix: 'at30ts00'
|
||||
Addresses scanned: I2C 0x18 - 0x1f
|
||||
Datasheets:
|
||||
http://www.idt.com/products/getdoc.cfm?docid=18715691
|
||||
http://www.idt.com/products/getdoc.cfm?docid=18715692
|
||||
http://www.atmel.com/Images/doc8585.pdf
|
||||
* IDT TSE2002B3, TSE2002GB2, TS3000B3, TS3000GB2
|
||||
Prefix: 'tse2002', 'ts3000'
|
||||
Addresses scanned: I2C 0x18 - 0x1f
|
||||
Datasheets:
|
||||
http://www.idt.com/sites/default/files/documents/IDT_TSE2002B3C_DST_20100512_120303152056.pdf
|
||||
http://www.idt.com/sites/default/files/documents/IDT_TSE2002GB2A1_DST_20111107_120303145914.pdf
|
||||
http://www.idt.com/sites/default/files/documents/IDT_TS3000B3A_DST_20101129_120303152013.pdf
|
||||
http://www.idt.com/sites/default/files/documents/IDT_TS3000GB2A1_DST_20111104_120303151012.pdf
|
||||
* Maxim MAX6604
|
||||
Prefix: 'max6604'
|
||||
Addresses scanned: I2C 0x18 - 0x1f
|
||||
Datasheets:
|
||||
http://datasheets.maxim-ic.com/en/ds/MAX6604.pdf
|
||||
* Microchip MCP9805, MCP98242, MCP98243, MCP9843
|
||||
Prefixes: 'mcp9805', 'mcp98242', 'mcp98243', 'mcp9843'
|
||||
* Microchip MCP9804, MCP9805, MCP98242, MCP98243, MCP9843
|
||||
Prefixes: 'mcp9804', 'mcp9805', 'mcp98242', 'mcp98243', 'mcp9843'
|
||||
Addresses scanned: I2C 0x18 - 0x1f
|
||||
Datasheets:
|
||||
http://ww1.microchip.com/downloads/en/DeviceDoc/22203C.pdf
|
||||
http://ww1.microchip.com/downloads/en/DeviceDoc/21977b.pdf
|
||||
http://ww1.microchip.com/downloads/en/DeviceDoc/21996a.pdf
|
||||
http://ww1.microchip.com/downloads/en/DeviceDoc/22153c.pdf
|
||||
@ -48,6 +56,12 @@ Supported chips:
|
||||
Datasheets:
|
||||
http://www.st.com/stonline/products/literature/ds/13447/stts424.pdf
|
||||
http://www.st.com/stonline/products/literature/ds/13448/stts424e02.pdf
|
||||
* ST Microelectronics STTS2002, STTS3000
|
||||
Prefix: 'stts2002', 'stts3000'
|
||||
Addresses scanned: I2C 0x18 - 0x1f
|
||||
Datasheets:
|
||||
http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00225278.pdf
|
||||
http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATA_BRIEF/CD00270920.pdf
|
||||
* JEDEC JC 42.4 compliant temperature sensor chips
|
||||
Prefix: 'jc42'
|
||||
Addresses scanned: I2C 0x18 - 0x1f
|
||||
|
@ -497,8 +497,9 @@ config SENSORS_JC42
|
||||
If you say yes here, you get support for JEDEC JC42.4 compliant
|
||||
temperature sensors, which are used on many DDR3 memory modules for
|
||||
mobile devices and servers. Support will include, but not be limited
|
||||
to, ADT7408, CAT34TS02, CAT6095, MAX6604, MCP9805, MCP98242, MCP98243,
|
||||
MCP9843, SE97, SE98, STTS424(E), TSE2002B3, and TS3000B3.
|
||||
to, ADT7408, AT30TS00, CAT34TS02, CAT6095, MAX6604, MCP9804, MCP9805,
|
||||
MCP98242, MCP98243, MCP9843, SE97, SE98, STTS424(E), STTS2002,
|
||||
STTS3000, TSE2002B3, TSE2002GB2, TS3000B3, and TS3000GB2.
|
||||
|
||||
This driver can also be built as a module. If so, the module
|
||||
will be called jc42.
|
||||
|
@ -64,6 +64,7 @@ static const unsigned short normal_i2c[] = {
|
||||
|
||||
/* Manufacturer IDs */
|
||||
#define ADT_MANID 0x11d4 /* Analog Devices */
|
||||
#define ATMEL_MANID 0x001f /* Atmel */
|
||||
#define MAX_MANID 0x004d /* Maxim */
|
||||
#define IDT_MANID 0x00b3 /* IDT */
|
||||
#define MCP_MANID 0x0054 /* Microchip */
|
||||
@ -77,15 +78,25 @@ static const unsigned short normal_i2c[] = {
|
||||
#define ADT7408_DEVID 0x0801
|
||||
#define ADT7408_DEVID_MASK 0xffff
|
||||
|
||||
/* Atmel */
|
||||
#define AT30TS00_DEVID 0x8201
|
||||
#define AT30TS00_DEVID_MASK 0xffff
|
||||
|
||||
/* IDT */
|
||||
#define TS3000B3_DEVID 0x2903 /* Also matches TSE2002B3 */
|
||||
#define TS3000B3_DEVID_MASK 0xffff
|
||||
|
||||
#define TS3000GB2_DEVID 0x2912 /* Also matches TSE2002GB2 */
|
||||
#define TS3000GB2_DEVID_MASK 0xffff
|
||||
|
||||
/* Maxim */
|
||||
#define MAX6604_DEVID 0x3e00
|
||||
#define MAX6604_DEVID_MASK 0xffff
|
||||
|
||||
/* Microchip */
|
||||
#define MCP9804_DEVID 0x0200
|
||||
#define MCP9804_DEVID_MASK 0xfffc
|
||||
|
||||
#define MCP98242_DEVID 0x2000
|
||||
#define MCP98242_DEVID_MASK 0xfffc
|
||||
|
||||
@ -113,6 +124,12 @@ static const unsigned short normal_i2c[] = {
|
||||
#define STTS424E_DEVID 0x0000
|
||||
#define STTS424E_DEVID_MASK 0xfffe
|
||||
|
||||
#define STTS2002_DEVID 0x0300
|
||||
#define STTS2002_DEVID_MASK 0xffff
|
||||
|
||||
#define STTS3000_DEVID 0x0200
|
||||
#define STTS3000_DEVID_MASK 0xffff
|
||||
|
||||
static u16 jc42_hysteresis[] = { 0, 1500, 3000, 6000 };
|
||||
|
||||
struct jc42_chips {
|
||||
@ -123,8 +140,11 @@ struct jc42_chips {
|
||||
|
||||
static struct jc42_chips jc42_chips[] = {
|
||||
{ ADT_MANID, ADT7408_DEVID, ADT7408_DEVID_MASK },
|
||||
{ ATMEL_MANID, AT30TS00_DEVID, AT30TS00_DEVID_MASK },
|
||||
{ IDT_MANID, TS3000B3_DEVID, TS3000B3_DEVID_MASK },
|
||||
{ IDT_MANID, TS3000GB2_DEVID, TS3000GB2_DEVID_MASK },
|
||||
{ MAX_MANID, MAX6604_DEVID, MAX6604_DEVID_MASK },
|
||||
{ MCP_MANID, MCP9804_DEVID, MCP9804_DEVID_MASK },
|
||||
{ MCP_MANID, MCP98242_DEVID, MCP98242_DEVID_MASK },
|
||||
{ MCP_MANID, MCP98243_DEVID, MCP98243_DEVID_MASK },
|
||||
{ MCP_MANID, MCP9843_DEVID, MCP9843_DEVID_MASK },
|
||||
@ -133,6 +153,8 @@ static struct jc42_chips jc42_chips[] = {
|
||||
{ NXP_MANID, SE98_DEVID, SE98_DEVID_MASK },
|
||||
{ STM_MANID, STTS424_DEVID, STTS424_DEVID_MASK },
|
||||
{ STM_MANID, STTS424E_DEVID, STTS424E_DEVID_MASK },
|
||||
{ STM_MANID, STTS2002_DEVID, STTS2002_DEVID_MASK },
|
||||
{ STM_MANID, STTS3000_DEVID, STTS3000_DEVID_MASK },
|
||||
};
|
||||
|
||||
/* Each client has this additional data */
|
||||
@ -159,10 +181,12 @@ static struct jc42_data *jc42_update_device(struct device *dev);
|
||||
|
||||
static const struct i2c_device_id jc42_id[] = {
|
||||
{ "adt7408", 0 },
|
||||
{ "at30ts00", 0 },
|
||||
{ "cat94ts02", 0 },
|
||||
{ "cat6095", 0 },
|
||||
{ "jc42", 0 },
|
||||
{ "max6604", 0 },
|
||||
{ "mcp9804", 0 },
|
||||
{ "mcp9805", 0 },
|
||||
{ "mcp98242", 0 },
|
||||
{ "mcp98243", 0 },
|
||||
@ -171,8 +195,10 @@ static const struct i2c_device_id jc42_id[] = {
|
||||
{ "se97b", 0 },
|
||||
{ "se98", 0 },
|
||||
{ "stts424", 0 },
|
||||
{ "tse2002b3", 0 },
|
||||
{ "ts3000b3", 0 },
|
||||
{ "stts2002", 0 },
|
||||
{ "stts3000", 0 },
|
||||
{ "tse2002", 0 },
|
||||
{ "ts3000", 0 },
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(i2c, jc42_id);
|
||||
|
@ -54,7 +54,8 @@
|
||||
lcrit_alarm, crit_alarm */
|
||||
#define PMBUS_IOUT_BOOLEANS_PER_PAGE 3 /* alarm, lcrit_alarm,
|
||||
crit_alarm */
|
||||
#define PMBUS_POUT_BOOLEANS_PER_PAGE 2 /* alarm, crit_alarm */
|
||||
#define PMBUS_POUT_BOOLEANS_PER_PAGE 3 /* cap_alarm, alarm, crit_alarm
|
||||
*/
|
||||
#define PMBUS_MAX_BOOLEANS_PER_FAN 2 /* alarm, fault */
|
||||
#define PMBUS_MAX_BOOLEANS_PER_TEMP 4 /* min_alarm, max_alarm,
|
||||
lcrit_alarm, crit_alarm */
|
||||
|
@ -33,6 +33,7 @@ enum chips { zl2004, zl2005, zl2006, zl2008, zl2105, zl2106, zl6100, zl6105 };
|
||||
struct zl6100_data {
|
||||
int id;
|
||||
ktime_t access; /* chip access time */
|
||||
int delay; /* Delay between chip accesses in uS */
|
||||
struct pmbus_driver_info info;
|
||||
};
|
||||
|
||||
@ -52,10 +53,10 @@ MODULE_PARM_DESC(delay, "Delay between chip accesses in uS");
|
||||
/* Some chips need a delay between accesses */
|
||||
static inline void zl6100_wait(const struct zl6100_data *data)
|
||||
{
|
||||
if (delay) {
|
||||
if (data->delay) {
|
||||
s64 delta = ktime_us_delta(ktime_get(), data->access);
|
||||
if (delta < delay)
|
||||
udelay(delay - delta);
|
||||
if (delta < data->delay)
|
||||
udelay(data->delay - delta);
|
||||
}
|
||||
}
|
||||
|
||||
@ -207,8 +208,9 @@ static int zl6100_probe(struct i2c_client *client,
|
||||
* can be cleared later for additional chips if tests show that it
|
||||
* is not needed (in other words, better be safe than sorry).
|
||||
*/
|
||||
data->delay = delay;
|
||||
if (data->id == zl2004 || data->id == zl6105)
|
||||
delay = 0;
|
||||
data->delay = 0;
|
||||
|
||||
/*
|
||||
* Since there was a direct I2C device access above, wait before
|
||||
|
Loading…
Reference in New Issue
Block a user