diff options
-rw-r--r-- | Documentation/hwmon/ltc2978 | 41 | ||||
-rw-r--r-- | drivers/hwmon/pmbus/ltc2978.c | 12 |
2 files changed, 36 insertions, 17 deletions
diff --git a/Documentation/hwmon/ltc2978 b/Documentation/hwmon/ltc2978 index dc0d08c61305..6934936de2c7 100644 --- a/Documentation/hwmon/ltc2978 +++ b/Documentation/hwmon/ltc2978 | |||
@@ -6,6 +6,10 @@ Supported chips: | |||
6 | Prefix: 'ltc2974' | 6 | Prefix: 'ltc2974' |
7 | Addresses scanned: - | 7 | Addresses scanned: - |
8 | Datasheet: http://www.linear.com/product/ltc2974 | 8 | Datasheet: http://www.linear.com/product/ltc2974 |
9 | * Linear Technology LTC2977 | ||
10 | Prefix: 'ltc2977' | ||
11 | Addresses scanned: - | ||
12 | Datasheet: http://www.linear.com/product/ltc2977 | ||
9 | * Linear Technology LTC2978 | 13 | * Linear Technology LTC2978 |
10 | Prefix: 'ltc2978' | 14 | Prefix: 'ltc2978' |
11 | Addresses scanned: - | 15 | Addresses scanned: - |
@@ -26,8 +30,9 @@ Description | |||
26 | ----------- | 30 | ----------- |
27 | 31 | ||
28 | LTC2974 is a quad digital power supply manager. LTC2978 is an octal power supply | 32 | LTC2974 is a quad digital power supply manager. LTC2978 is an octal power supply |
29 | monitor. LTC3880 is a dual output poly-phase step-down DC/DC controller. LTC3883 | 33 | monitor. LTC2977 is a pin compatible replacement for LTC2978. LTC3880 is a dual |
30 | is a single phase step-down DC/DC controller. | 34 | output poly-phase step-down DC/DC controller. LTC3883 is a single phase |
35 | step-down DC/DC controller. | ||
31 | 36 | ||
32 | 37 | ||
33 | Usage Notes | 38 | Usage Notes |
@@ -49,21 +54,25 @@ Sysfs attributes | |||
49 | in1_label "vin" | 54 | in1_label "vin" |
50 | in1_input Measured input voltage. | 55 | in1_input Measured input voltage. |
51 | in1_min Minimum input voltage. | 56 | in1_min Minimum input voltage. |
52 | in1_max Maximum input voltage. LTC2974 and LTC2978 only. | 57 | in1_max Maximum input voltage. |
53 | in1_lcrit Critical minimum input voltage. LTC2974 and LTC2978 | 58 | LTC2974, LTC2977, and LTC2978 only. |
54 | only. | 59 | in1_lcrit Critical minimum input voltage. |
60 | LTC2974, LTC2977, and LTC2978 only. | ||
55 | in1_crit Critical maximum input voltage. | 61 | in1_crit Critical maximum input voltage. |
56 | in1_min_alarm Input voltage low alarm. | 62 | in1_min_alarm Input voltage low alarm. |
57 | in1_max_alarm Input voltage high alarm. LTC2974 and LTC2978 only. | 63 | in1_max_alarm Input voltage high alarm. |
58 | in1_lcrit_alarm Input voltage critical low alarm. LTC2974 and LTC2978 | 64 | LTC2974, LTC2977, and LTC2978 only. |
59 | only. | 65 | in1_lcrit_alarm Input voltage critical low alarm. |
66 | LTC2974, LTC2977, and LTC2978 only. | ||
60 | in1_crit_alarm Input voltage critical high alarm. | 67 | in1_crit_alarm Input voltage critical high alarm. |
61 | in1_lowest Lowest input voltage. LTC2974 and LTC2978 only. | 68 | in1_lowest Lowest input voltage. |
69 | LTC2974, LTC2977, and LTC2978 only. | ||
62 | in1_highest Highest input voltage. | 70 | in1_highest Highest input voltage. |
63 | in1_reset_history Reset input voltage history. | 71 | in1_reset_history Reset input voltage history. |
64 | 72 | ||
65 | in[N]_label "vout[1-8]". | 73 | in[N]_label "vout[1-8]". |
66 | LTC2974: N=2-5 | 74 | LTC2974: N=2-5 |
75 | LTC2977: N=2-9 | ||
67 | LTC2978: N=2-9 | 76 | LTC2978: N=2-9 |
68 | LTC3880: N=2-3 | 77 | LTC3880: N=2-3 |
69 | LTC3883: N=2 | 78 | LTC3883: N=2 |
@@ -83,21 +92,23 @@ in[N]_reset_history Reset output voltage history. | |||
83 | temp[N]_input Measured temperature. | 92 | temp[N]_input Measured temperature. |
84 | On LTC2974, temp[1-4] report external temperatures, | 93 | On LTC2974, temp[1-4] report external temperatures, |
85 | and temp5 reports the chip temperature. | 94 | and temp5 reports the chip temperature. |
86 | On LTC2978, only one temperature measurement is | 95 | On LTC2977 and LTC2978, only one temperature measurement |
87 | supported and reports the chip temperature. | 96 | is supported and reports the chip temperature. |
88 | On LTC3880, temp1 and temp2 report external | 97 | On LTC3880, temp1 and temp2 report external |
89 | temperatures, and temp3 reports the chip temperature. | 98 | temperatures, and temp3 reports the chip temperature. |
90 | On LTC3883, temp1 reports an external temperature, | 99 | On LTC3883, temp1 reports an external temperature, |
91 | and temp2 reports the chip temperature. | 100 | and temp2 reports the chip temperature. |
92 | temp[N]_min Mimimum temperature. LTC2974 and LTC2978 only. | 101 | temp[N]_min Mimimum temperature. LTC2974, LCT2977, and LTC2978 only. |
93 | temp[N]_max Maximum temperature. | 102 | temp[N]_max Maximum temperature. |
94 | temp[N]_lcrit Critical low temperature. | 103 | temp[N]_lcrit Critical low temperature. |
95 | temp[N]_crit Critical high temperature. | 104 | temp[N]_crit Critical high temperature. |
96 | temp[N]_min_alarm Temperature low alarm. LTC2974 and LTC2978 only. | 105 | temp[N]_min_alarm Temperature low alarm. |
106 | LTC2974, LTC2977, and LTC2978 only. | ||
97 | temp[N]_max_alarm Temperature high alarm. | 107 | temp[N]_max_alarm Temperature high alarm. |
98 | temp[N]_lcrit_alarm Temperature critical low alarm. | 108 | temp[N]_lcrit_alarm Temperature critical low alarm. |
99 | temp[N]_crit_alarm Temperature critical high alarm. | 109 | temp[N]_crit_alarm Temperature critical high alarm. |
100 | temp[N]_lowest Lowest measured temperature. LTC2974 and LTC2978 only. | 110 | temp[N]_lowest Lowest measured temperature. |
111 | LTC2974, LTC2977, and LTC2978 only. | ||
101 | Not supported for chip temperature sensor on LTC2974. | 112 | Not supported for chip temperature sensor on LTC2974. |
102 | temp[N]_highest Highest measured temperature. Not supported for chip | 113 | temp[N]_highest Highest measured temperature. Not supported for chip |
103 | temperature sensor on LTC2974. | 114 | temperature sensor on LTC2974. |
@@ -109,6 +120,7 @@ power1_input Measured input power. | |||
109 | 120 | ||
110 | power[N]_label "pout[1-4]". | 121 | power[N]_label "pout[1-4]". |
111 | LTC2974: N=1-4 | 122 | LTC2974: N=1-4 |
123 | LTC2977: Not supported | ||
112 | LTC2978: Not supported | 124 | LTC2978: Not supported |
113 | LTC3880: N=1-2 | 125 | LTC3880: N=1-2 |
114 | LTC3883: N=2 | 126 | LTC3883: N=2 |
@@ -123,6 +135,7 @@ curr1_reset_history Reset input current history. LTC3883 only. | |||
123 | 135 | ||
124 | curr[N]_label "iout[1-4]". | 136 | curr[N]_label "iout[1-4]". |
125 | LTC2974: N=1-4 | 137 | LTC2974: N=1-4 |
138 | LTC2977: not supported | ||
126 | LTC2978: not supported | 139 | LTC2978: not supported |
127 | LTC3880: N=2-3 | 140 | LTC3880: N=2-3 |
128 | LTC3883: N=2 | 141 | LTC3883: N=2 |
diff --git a/drivers/hwmon/pmbus/ltc2978.c b/drivers/hwmon/pmbus/ltc2978.c index 586a89ef9e0f..e05ff565ef61 100644 --- a/drivers/hwmon/pmbus/ltc2978.c +++ b/drivers/hwmon/pmbus/ltc2978.c | |||
@@ -1,5 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * Hardware monitoring driver for LTC2974, LTC2978, LTC3880, and LTC3883 | 2 | * Hardware monitoring driver for LTC2974, LTC2977, LTC2978, LTC3880, |
3 | * and LTC3883 | ||
3 | * | 4 | * |
4 | * Copyright (c) 2011 Ericsson AB. | 5 | * Copyright (c) 2011 Ericsson AB. |
5 | * Copyright (c) 2013 Guenter Roeck | 6 | * Copyright (c) 2013 Guenter Roeck |
@@ -27,7 +28,7 @@ | |||
27 | #include <linux/i2c.h> | 28 | #include <linux/i2c.h> |
28 | #include "pmbus.h" | 29 | #include "pmbus.h" |
29 | 30 | ||
30 | enum chips { ltc2974, ltc2978, ltc3880, ltc3883 }; | 31 | enum chips { ltc2974, ltc2977, ltc2978, ltc3880, ltc3883 }; |
31 | 32 | ||
32 | /* Common for all chips */ | 33 | /* Common for all chips */ |
33 | #define LTC2978_MFR_VOUT_PEAK 0xdd | 34 | #define LTC2978_MFR_VOUT_PEAK 0xdd |
@@ -35,7 +36,7 @@ enum chips { ltc2974, ltc2978, ltc3880, ltc3883 }; | |||
35 | #define LTC2978_MFR_TEMPERATURE_PEAK 0xdf | 36 | #define LTC2978_MFR_TEMPERATURE_PEAK 0xdf |
36 | #define LTC2978_MFR_SPECIAL_ID 0xe7 | 37 | #define LTC2978_MFR_SPECIAL_ID 0xe7 |
37 | 38 | ||
38 | /* LTC2974 and LTC2978 */ | 39 | /* LTC2974, LCT2977, and LTC2978 */ |
39 | #define LTC2978_MFR_VOUT_MIN 0xfb | 40 | #define LTC2978_MFR_VOUT_MIN 0xfb |
40 | #define LTC2978_MFR_VIN_MIN 0xfc | 41 | #define LTC2978_MFR_VIN_MIN 0xfc |
41 | #define LTC2978_MFR_TEMPERATURE_MIN 0xfd | 42 | #define LTC2978_MFR_TEMPERATURE_MIN 0xfd |
@@ -53,6 +54,7 @@ enum chips { ltc2974, ltc2978, ltc3880, ltc3883 }; | |||
53 | #define LTC3883_MFR_IIN_PEAK 0xe1 | 54 | #define LTC3883_MFR_IIN_PEAK 0xe1 |
54 | 55 | ||
55 | #define LTC2974_ID 0x0212 | 56 | #define LTC2974_ID 0x0212 |
57 | #define LTC2977_ID 0x0130 | ||
56 | #define LTC2978_ID_REV1 0x0121 | 58 | #define LTC2978_ID_REV1 0x0121 |
57 | #define LTC2978_ID_REV2 0x0122 | 59 | #define LTC2978_ID_REV2 0x0122 |
58 | #define LTC3880_ID 0x4000 | 60 | #define LTC3880_ID 0x4000 |
@@ -363,6 +365,7 @@ static int ltc2978_write_word_data(struct i2c_client *client, int page, | |||
363 | 365 | ||
364 | static const struct i2c_device_id ltc2978_id[] = { | 366 | static const struct i2c_device_id ltc2978_id[] = { |
365 | {"ltc2974", ltc2974}, | 367 | {"ltc2974", ltc2974}, |
368 | {"ltc2977", ltc2977}, | ||
366 | {"ltc2978", ltc2978}, | 369 | {"ltc2978", ltc2978}, |
367 | {"ltc3880", ltc3880}, | 370 | {"ltc3880", ltc3880}, |
368 | {"ltc3883", ltc3883}, | 371 | {"ltc3883", ltc3883}, |
@@ -392,6 +395,8 @@ static int ltc2978_probe(struct i2c_client *client, | |||
392 | 395 | ||
393 | if (chip_id == LTC2974_ID) { | 396 | if (chip_id == LTC2974_ID) { |
394 | data->id = ltc2974; | 397 | data->id = ltc2974; |
398 | } else if (chip_id == LTC2977_ID) { | ||
399 | data->id = ltc2977; | ||
395 | } else if (chip_id == LTC2978_ID_REV1 || chip_id == LTC2978_ID_REV2) { | 400 | } else if (chip_id == LTC2978_ID_REV1 || chip_id == LTC2978_ID_REV2) { |
396 | data->id = ltc2978; | 401 | data->id = ltc2978; |
397 | } else if ((chip_id & LTC3880_ID_MASK) == LTC3880_ID) { | 402 | } else if ((chip_id & LTC3880_ID_MASK) == LTC3880_ID) { |
@@ -438,6 +443,7 @@ static int ltc2978_probe(struct i2c_client *client, | |||
438 | | PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT; | 443 | | PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT; |
439 | } | 444 | } |
440 | break; | 445 | break; |
446 | case ltc2977: | ||
441 | case ltc2978: | 447 | case ltc2978: |
442 | info->read_word_data = ltc2978_read_word_data; | 448 | info->read_word_data = ltc2978_read_word_data; |
443 | info->pages = LTC2978_NUM_PAGES; | 449 | info->pages = LTC2978_NUM_PAGES; |