hwmon: (pmbus/ltc2978) add support for more parts.
LTC2972, LTC2979, LTC3884, LTC3889, LTC7880, LTM4664, LTM4677, LTM4678, LTM4680, LTM4700. Signed-off-by: Mike Jones <michael-a1.jones@analog.com> Link: https://lore.kernel.org/r/1581032654-4330-1-git-send-email-michael-a1.jones@analog.com [groeck: Fixed checkpatch issues (long lines, whitespace)] Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
parent
50b6ced709
commit
ee44fafb38
|
@ -3,6 +3,14 @@ Kernel driver ltc2978
|
|||
|
||||
Supported chips:
|
||||
|
||||
* Linear Technology LTC2972
|
||||
|
||||
Prefix: 'ltc2972'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
Datasheet: https://www.analog.com/en/products/ltc2972.html
|
||||
|
||||
* Linear Technology LTC2974
|
||||
|
||||
Prefix: 'ltc2974'
|
||||
|
@ -37,6 +45,14 @@ Supported chips:
|
|||
|
||||
https://www.analog.com/en/products/ltc2978a
|
||||
|
||||
* Linear Technology LTC2979
|
||||
|
||||
Prefix: 'ltc2979'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
Datasheet: https://www.analog.com/en/products/ltc2979
|
||||
|
||||
* Linear Technology LTC2980
|
||||
|
||||
Prefix: 'ltc2980'
|
||||
|
@ -69,6 +85,14 @@ Supported chips:
|
|||
|
||||
Datasheet: https://www.analog.com/en/products/ltc3883
|
||||
|
||||
* Linear Technology LTC3884
|
||||
|
||||
Prefix: 'ltc3884'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
Datasheet: https://www.analog.com/en/products/ltc3884
|
||||
|
||||
* Linear Technology LTC3886
|
||||
|
||||
Prefix: 'ltc3886'
|
||||
|
@ -85,6 +109,22 @@ Supported chips:
|
|||
|
||||
Datasheet: https://www.analog.com/en/products/ltc3887
|
||||
|
||||
* Linear Technology LTC3889
|
||||
|
||||
Prefix: 'ltc3889'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
Datasheet: https://www.analog.com/en/products/ltc3889
|
||||
|
||||
* Linear Technology LTC7880
|
||||
|
||||
Prefix: 'ltc7880'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
Datasheet: https://www.analog.com/en/products/ltc7880
|
||||
|
||||
* Linear Technology LTM2987
|
||||
|
||||
Prefix: 'ltm2987'
|
||||
|
@ -93,7 +133,15 @@ Supported chips:
|
|||
|
||||
Datasheet: https://www.analog.com/en/products/ltm2987
|
||||
|
||||
* Linear Technology LTM4675
|
||||
* Linear Technology LTM4644
|
||||
|
||||
Prefix: 'ltm4644'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
Datasheet: https://www.analog.com/en/products/ltm4644
|
||||
|
||||
* Linear Technology LTM4675
|
||||
|
||||
Prefix: 'ltm4675'
|
||||
|
||||
|
@ -109,6 +157,30 @@ Supported chips:
|
|||
|
||||
Datasheet: https://www.analog.com/en/products/ltm4676
|
||||
|
||||
* Linear Technology LTM4677
|
||||
|
||||
Prefix: 'ltm4677'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
Datasheet: https://www.analog.com/en/products/ltm4677
|
||||
|
||||
* Linear Technology LTM4678
|
||||
|
||||
Prefix: 'ltm4678'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
Datasheet: https://www.analog.com/en/products/ltm4678
|
||||
|
||||
* Analog Devices LTM4680
|
||||
|
||||
Prefix: 'ltm4680'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
Datasheet: http://www.analog.com/ltm4680
|
||||
|
||||
* Analog Devices LTM4686
|
||||
|
||||
Prefix: 'ltm4686'
|
||||
|
@ -117,6 +189,15 @@ Supported chips:
|
|||
|
||||
Datasheet: http://www.analog.com/ltm4686
|
||||
|
||||
* Analog Devices LTM4700
|
||||
|
||||
Prefix: 'ltm4700'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
Datasheet: http://www.analog.com/ltm4700
|
||||
|
||||
|
||||
|
||||
Author: Guenter Roeck <linux@roeck-us.net>
|
||||
|
||||
|
@ -166,13 +247,13 @@ in1_min Minimum input voltage.
|
|||
|
||||
in1_max Maximum input voltage.
|
||||
|
||||
LTC2974, LTC2975, LTC2977, LTC2980, LTC2978, and
|
||||
LTM2987 only.
|
||||
LTC2974, LTC2975, LTC2977, LTC2980, LTC2978,
|
||||
LTC2979 and LTM2987 only.
|
||||
|
||||
in1_lcrit Critical minimum input voltage.
|
||||
|
||||
LTC2974, LTC2975, LTC2977, LTC2980, LTC2978, and
|
||||
LTM2987 only.
|
||||
LTC2972, LTC2974, LTC2975, LTC2977, LTC2980, LTC2978,
|
||||
LTC2979 and LTM2987 only.
|
||||
|
||||
in1_crit Critical maximum input voltage.
|
||||
|
||||
|
@ -180,29 +261,34 @@ in1_min_alarm Input voltage low alarm.
|
|||
|
||||
in1_max_alarm Input voltage high alarm.
|
||||
|
||||
LTC2974, LTC2975, LTC2977, LTC2980, LTC2978, and
|
||||
LTM2987 only.
|
||||
LTC2972, LTC2974, LTC2975, LTC2977, LTC2980, LTC2978,
|
||||
LTC2979 and LTM2987 only.
|
||||
|
||||
in1_lcrit_alarm Input voltage critical low alarm.
|
||||
|
||||
LTC2974, LTC2975, LTC2977, LTC2980, LTC2978, and
|
||||
LTM2987 only.
|
||||
LTC2972, LTC2974, LTC2975, LTC2977, LTC2980, LTC2978,
|
||||
LTC2979 and LTM2987 only.
|
||||
|
||||
in1_crit_alarm Input voltage critical high alarm.
|
||||
|
||||
in1_lowest Lowest input voltage.
|
||||
|
||||
LTC2974, LTC2975, LTC2977, LTC2980, LTC2978, and
|
||||
LTM2987 only.
|
||||
LTC2972, LTC2974, LTC2975, LTC2977, LTC2980, LTC2978,
|
||||
and LTM2987 only.
|
||||
|
||||
in1_highest Highest input voltage.
|
||||
|
||||
in1_reset_history Reset input voltage history.
|
||||
|
||||
in[N]_label "vout[1-8]".
|
||||
|
||||
- LTC2972: N=2-3
|
||||
- LTC2974, LTC2975: N=2-5
|
||||
- LTC2977, LTC2980, LTM2987: N=2-9
|
||||
- LTC2977, LTC2979, LTC2980, LTM2987: N=2-9
|
||||
- LTC2978: N=2-9
|
||||
- LTC3880, LTC3882, LTC23886 LTC3887, LTM4675, LTM4676:
|
||||
N=2-3
|
||||
- LTC3880, LTC3882, LTC3884, LTC23886 LTC3887, LTC3889,
|
||||
LTC7880, LTM4644, LTM4675, LTM4676, LTM4677, LTM4678,
|
||||
LTM4680, LTM4700: N=2-3
|
||||
- LTC3883: N=2
|
||||
|
||||
in[N]_input Measured output voltage.
|
||||
|
@ -225,8 +311,7 @@ in[N]_crit_alarm Output voltage critical high alarm.
|
|||
|
||||
in[N]_lowest Lowest output voltage.
|
||||
|
||||
|
||||
LTC2974, LTC2975,and LTC2978 only.
|
||||
LTC2972, LTC2974, LTC2975,and LTC2978 only.
|
||||
|
||||
in[N]_highest Highest output voltage.
|
||||
|
||||
|
@ -234,20 +319,24 @@ in[N]_reset_history Reset output voltage history.
|
|||
|
||||
temp[N]_input Measured temperature.
|
||||
|
||||
- On LTC2972, temp[1-2] report external temperatures,
|
||||
and temp 3 reports the chip temperature.
|
||||
- On LTC2974 and LTC2975, temp[1-4] report external
|
||||
temperatures, and temp5 reports the chip temperature.
|
||||
- On LTC2977, LTC2980, LTC2978, and LTM2987, only one
|
||||
temperature measurement is supported and reports
|
||||
the chip temperature.
|
||||
- On LTC3880, LTC3882, LTC3887, LTM4675, and LTM4676,
|
||||
temp1 and temp2 report external temperatures, and
|
||||
temp3 reports the chip temperature.
|
||||
- On LTC2977, LTC2979, LTC2980, LTC2978, and LTM2987,
|
||||
only one temperature measurement is supported and
|
||||
reports the chip temperature.
|
||||
- On LTC3880, LTC3882, LTC3886, LTC3887, LTC3889,
|
||||
LTM4664, LTM4675, LTM4676, LTM4677, LTM4678, LTM4680,
|
||||
and LTM4700, temp1 and temp2 report external
|
||||
temperatures, and temp3 reports the chip temperature.
|
||||
- On LTC3883, temp1 reports an external temperature,
|
||||
and temp2 reports the chip temperature.
|
||||
|
||||
temp[N]_min Mimimum temperature.
|
||||
|
||||
LTC2974, LCT2977, LTM2980, LTC2978, and LTM2987 only.
|
||||
LTC2972, LTC2974, LCT2977, LTM2980, LTC2978,
|
||||
LTC2979, and LTM2987 only.
|
||||
|
||||
temp[N]_max Maximum temperature.
|
||||
|
||||
|
@ -257,8 +346,8 @@ temp[N]_crit Critical high temperature.
|
|||
|
||||
temp[N]_min_alarm Temperature low alarm.
|
||||
|
||||
LTC2974, LTC2975, LTC2977, LTM2980, LTC2978, and
|
||||
LTM2987 only.
|
||||
LTC2972, LTC2974, LTC2975, LTC2977, LTM2980, LTC2978,
|
||||
LTC2979, and LTM2987 only.
|
||||
|
||||
temp[N]_max_alarm Temperature high alarm.
|
||||
|
||||
|
@ -269,8 +358,8 @@ temp[N]_crit_alarm Temperature critical high alarm.
|
|||
|
||||
temp[N]_lowest Lowest measured temperature.
|
||||
|
||||
- LTC2974, LTC2975, LTC2977, LTM2980, LTC2978, and
|
||||
LTM2987 only.
|
||||
- LTC2972, LTC2974, LTC2975, LTC2977, LTM2980, LTC2978,
|
||||
LTC2979, and LTM2987 only.
|
||||
- Not supported for chip temperature sensor on LTC2974
|
||||
and LTC2975.
|
||||
|
||||
|
@ -290,19 +379,22 @@ power1_input Measured input power.
|
|||
|
||||
power[N]_label "pout[1-4]".
|
||||
|
||||
- LTC2972: N=1-2
|
||||
- LTC2974, LTC2975: N=1-4
|
||||
- LTC2977, LTC2980, LTM2987: Not supported
|
||||
- LTC2977, LTC2979, LTC2980, LTM2987: Not supported
|
||||
- LTC2978: Not supported
|
||||
- LTC3880, LTC3882, LTC3886, LTC3887, LTM4675, LTM4676:
|
||||
N=1-2
|
||||
- LTC3880, LTC3882, LTC3884, LTC3886, LTC3887, LTC3889,
|
||||
LTM4664, LTM4675, LTM4676, LTM4677, LTM4678, LTM4680,
|
||||
LTM4700: N=1-2
|
||||
- LTC3883: N=2
|
||||
|
||||
power[N]_input Measured output power.
|
||||
|
||||
curr1_label "iin".
|
||||
|
||||
LTC3880, LTC3883, LTC3886, LTC3887, LTM4675,
|
||||
and LTM4676 only.
|
||||
LTC3880, LTC3883, LTC3884, LTC3886, LTC3887, LTC3889,
|
||||
LTM4644, LTM4675, LTM4676, LTM4677, LTM4678, LTM4680,
|
||||
and LTM4700 only.
|
||||
|
||||
curr1_input Measured input current.
|
||||
|
||||
|
@ -320,11 +412,13 @@ curr1_reset_history Reset input current history.
|
|||
|
||||
curr[N]_label "iout[1-4]".
|
||||
|
||||
- LTC2972: N-1-2
|
||||
- LTC2974, LTC2975: N=1-4
|
||||
- LTC2977, LTC2980, LTM2987: not supported
|
||||
- LTC2977, LTC2979, LTC2980, LTM2987: not supported
|
||||
- LTC2978: not supported
|
||||
- LTC3880, LTC3882, LTC3886, LTC3887, LTM4675, LTM4676:
|
||||
N=2-3
|
||||
- LTC3880, LTC3882, LTC3884, LTC3886, LTC3887, LTC3889,
|
||||
LTM4664, LTM4675, LTM4676, LTM4677, LTM4678, LTM4680,
|
||||
LTM4700: N=2-3
|
||||
- LTC3883: N=2
|
||||
|
||||
curr[N]_input Measured output current.
|
||||
|
@ -335,7 +429,7 @@ curr[N]_crit Critical high output current.
|
|||
|
||||
curr[N]_lcrit Critical low output current.
|
||||
|
||||
LTC2974 and LTC2975 only.
|
||||
LTC2972, LTC2974 and LTC2975 only.
|
||||
|
||||
curr[N]_max_alarm Output current high alarm.
|
||||
|
||||
|
@ -343,11 +437,11 @@ curr[N]_crit_alarm Output current critical high alarm.
|
|||
|
||||
curr[N]_lcrit_alarm Output current critical low alarm.
|
||||
|
||||
LTC2974 and LTC2975 only.
|
||||
LTC2972, LTC2974 and LTC2975 only.
|
||||
|
||||
curr[N]_lowest Lowest output current.
|
||||
|
||||
LTC2974 and LTC2975 only.
|
||||
LTC2972, LTC2974 and LTC2975 only.
|
||||
|
||||
curr[N]_highest Highest output current.
|
||||
|
||||
|
|
|
@ -113,8 +113,8 @@ config SENSORS_LTC2978
|
|||
tristate "Linear Technologies LTC2978 and compatibles"
|
||||
help
|
||||
If you say yes here you get hardware monitoring support for Linear
|
||||
Technology LTC2974, LTC2975, LTC2977, LTC2978, LTC2980, LTC3880,
|
||||
LTC3883, LTC3886, LTC3887, LTCM2987, LTM4675, and LTM4676.
|
||||
Technology LTC2972, LTC2974, LTC2975, LTC2977, LTC2978, LTC2979,
|
||||
LTC2980, and LTM2987.
|
||||
|
||||
This driver can also be built as a module. If so, the module will
|
||||
be called ltc2978.
|
||||
|
@ -123,9 +123,10 @@ config SENSORS_LTC2978_REGULATOR
|
|||
bool "Regulator support for LTC2978 and compatibles"
|
||||
depends on SENSORS_LTC2978 && REGULATOR
|
||||
help
|
||||
If you say yes here you get regulator support for Linear
|
||||
Technology LTC2974, LTC2977, LTC2978, LTC3880, LTC3883, LTM4676
|
||||
and LTM4686.
|
||||
If you say yes here you get regulator support for Linear Technology
|
||||
LTC3880, LTC3883, LTC3884, LTC3886, LTC3887, LTC3889, LTC7880,
|
||||
LTM4644, LTM4675, LTM4676, LTM4677, LTM4678, LTM4680, LTM4686,
|
||||
and LTM4700.
|
||||
|
||||
config SENSORS_LTC3815
|
||||
tristate "Linear Technologies LTC3815"
|
||||
|
|
|
@ -19,8 +19,15 @@
|
|||
#include <linux/regulator/driver.h>
|
||||
#include "pmbus.h"
|
||||
|
||||
enum chips { ltc2974, ltc2975, ltc2977, ltc2978, ltc2980, ltc3880, ltc3882,
|
||||
ltc3883, ltc3886, ltc3887, ltm2987, ltm4675, ltm4676, ltm4686 };
|
||||
enum chips {
|
||||
/* Managers */
|
||||
ltc2972, ltc2974, ltc2975, ltc2977, ltc2978, ltc2979, ltc2980,
|
||||
/* Controllers */
|
||||
ltc3880, ltc3882, ltc3883, ltc3884, ltc3886, ltc3887, ltc3889, ltc7880,
|
||||
/* Modules */
|
||||
ltm2987, ltm4664, ltm4675, ltm4676, ltm4677, ltm4678, ltm4680, ltm4686,
|
||||
ltm4700,
|
||||
};
|
||||
|
||||
/* Common for all chips */
|
||||
#define LTC2978_MFR_VOUT_PEAK 0xdd
|
||||
|
@ -43,9 +50,10 @@ enum chips { ltc2974, ltc2975, ltc2977, ltc2978, ltc2980, ltc3880, ltc3882,
|
|||
#define LTC3880_MFR_CLEAR_PEAKS 0xe3
|
||||
#define LTC3880_MFR_TEMPERATURE2_PEAK 0xf4
|
||||
|
||||
/* LTC3883 and LTC3886 only */
|
||||
/* LTC3883, LTC3884, LTC3886, LTC3889 and LTC7880 only */
|
||||
#define LTC3883_MFR_IIN_PEAK 0xe1
|
||||
|
||||
|
||||
/* LTC2975 only */
|
||||
#define LTC2975_MFR_IIN_PEAK 0xc4
|
||||
#define LTC2975_MFR_IIN_MIN 0xc5
|
||||
|
@ -54,27 +62,41 @@ enum chips { ltc2974, ltc2975, ltc2977, ltc2978, ltc2980, ltc3880, ltc3882,
|
|||
|
||||
#define LTC2978_ID_MASK 0xfff0
|
||||
|
||||
#define LTC2972_ID 0x0310
|
||||
#define LTC2974_ID 0x0210
|
||||
#define LTC2975_ID 0x0220
|
||||
#define LTC2977_ID 0x0130
|
||||
#define LTC2978_ID_REV1 0x0110 /* Early revision */
|
||||
#define LTC2978_ID_REV2 0x0120
|
||||
#define LTC2979_ID_A 0x8060
|
||||
#define LTC2979_ID_B 0x8070
|
||||
#define LTC2980_ID_A 0x8030 /* A/B for two die IDs */
|
||||
#define LTC2980_ID_B 0x8040
|
||||
#define LTC3880_ID 0x4020
|
||||
#define LTC3882_ID 0x4200
|
||||
#define LTC3882_ID_D1 0x4240 /* Dash 1 */
|
||||
#define LTC3883_ID 0x4300
|
||||
#define LTC3884_ID 0x4C00
|
||||
#define LTC3886_ID 0x4600
|
||||
#define LTC3887_ID 0x4700
|
||||
#define LTM2987_ID_A 0x8010 /* A/B for two die IDs */
|
||||
#define LTM2987_ID_B 0x8020
|
||||
#define LTC3889_ID 0x4900
|
||||
#define LTC7880_ID 0x49E0
|
||||
#define LTM4664_ID 0x4120
|
||||
#define LTM4675_ID 0x47a0
|
||||
#define LTM4676_ID_REV1 0x4400
|
||||
#define LTM4676_ID_REV2 0x4480
|
||||
#define LTM4676A_ID 0x47e0
|
||||
#define LTM4677_ID_REV1 0x47B0
|
||||
#define LTM4677_ID_REV2 0x47D0
|
||||
#define LTM4678_ID_REV1 0x4100
|
||||
#define LTM4678_ID_REV2 0x4110
|
||||
#define LTM4680_ID 0x4140
|
||||
#define LTM4686_ID 0x4770
|
||||
#define LTM4700_ID 0x4130
|
||||
|
||||
#define LTC2972_NUM_PAGES 2
|
||||
#define LTC2974_NUM_PAGES 4
|
||||
#define LTC2978_NUM_PAGES 8
|
||||
#define LTC3880_NUM_PAGES 2
|
||||
|
@ -492,20 +514,30 @@ static int ltc2978_write_word_data(struct i2c_client *client, int page,
|
|||
}
|
||||
|
||||
static const struct i2c_device_id ltc2978_id[] = {
|
||||
{"ltc2972", ltc2972},
|
||||
{"ltc2974", ltc2974},
|
||||
{"ltc2975", ltc2975},
|
||||
{"ltc2977", ltc2977},
|
||||
{"ltc2978", ltc2978},
|
||||
{"ltc2979", ltc2979},
|
||||
{"ltc2980", ltc2980},
|
||||
{"ltc3880", ltc3880},
|
||||
{"ltc3882", ltc3882},
|
||||
{"ltc3883", ltc3883},
|
||||
{"ltc3884", ltc3884},
|
||||
{"ltc3886", ltc3886},
|
||||
{"ltc3887", ltc3887},
|
||||
{"ltc3889", ltc3889},
|
||||
{"ltc7880", ltc7880},
|
||||
{"ltm2987", ltm2987},
|
||||
{"ltm4664", ltm4664},
|
||||
{"ltm4675", ltm4675},
|
||||
{"ltm4676", ltm4676},
|
||||
{"ltm4677", ltm4677},
|
||||
{"ltm4678", ltm4678},
|
||||
{"ltm4680", ltm4680},
|
||||
{"ltm4686", ltm4686},
|
||||
{"ltm4700", ltm4700},
|
||||
{}
|
||||
};
|
||||
MODULE_DEVICE_TABLE(i2c, ltc2978_id);
|
||||
|
@ -555,7 +587,9 @@ static int ltc2978_get_id(struct i2c_client *client)
|
|||
|
||||
chip_id &= LTC2978_ID_MASK;
|
||||
|
||||
if (chip_id == LTC2974_ID)
|
||||
if (chip_id == LTC2972_ID)
|
||||
return ltc2972;
|
||||
else if (chip_id == LTC2974_ID)
|
||||
return ltc2974;
|
||||
else if (chip_id == LTC2975_ID)
|
||||
return ltc2975;
|
||||
|
@ -563,6 +597,8 @@ static int ltc2978_get_id(struct i2c_client *client)
|
|||
return ltc2977;
|
||||
else if (chip_id == LTC2978_ID_REV1 || chip_id == LTC2978_ID_REV2)
|
||||
return ltc2978;
|
||||
else if (chip_id == LTC2979_ID_A || chip_id == LTC2979_ID_B)
|
||||
return ltc2979;
|
||||
else if (chip_id == LTC2980_ID_A || chip_id == LTC2980_ID_B)
|
||||
return ltc2980;
|
||||
else if (chip_id == LTC3880_ID)
|
||||
|
@ -571,19 +607,35 @@ static int ltc2978_get_id(struct i2c_client *client)
|
|||
return ltc3882;
|
||||
else if (chip_id == LTC3883_ID)
|
||||
return ltc3883;
|
||||
else if (chip_id == LTC3884_ID)
|
||||
return ltc3884;
|
||||
else if (chip_id == LTC3886_ID)
|
||||
return ltc3886;
|
||||
else if (chip_id == LTC3887_ID)
|
||||
return ltc3887;
|
||||
else if (chip_id == LTC3889_ID)
|
||||
return ltc3889;
|
||||
else if (chip_id == LTC7880_ID)
|
||||
return ltc7880;
|
||||
else if (chip_id == LTM2987_ID_A || chip_id == LTM2987_ID_B)
|
||||
return ltm2987;
|
||||
else if (chip_id == LTM4664_ID)
|
||||
return ltm4664;
|
||||
else if (chip_id == LTM4675_ID)
|
||||
return ltm4675;
|
||||
else if (chip_id == LTM4676_ID_REV1 || chip_id == LTM4676_ID_REV2 ||
|
||||
chip_id == LTM4676A_ID)
|
||||
return ltm4676;
|
||||
else if (chip_id == LTM4677_ID_REV1 || chip_id == LTM4677_ID_REV2)
|
||||
return ltm4677;
|
||||
else if (chip_id == LTM4678_ID_REV1 || chip_id == LTM4678_ID_REV2)
|
||||
return ltm4678;
|
||||
else if (chip_id == LTM4680_ID)
|
||||
return ltm4680;
|
||||
else if (chip_id == LTM4686_ID)
|
||||
return ltm4686;
|
||||
else if (chip_id == LTM4700_ID)
|
||||
return ltm4700;
|
||||
|
||||
dev_err(&client->dev, "Unsupported chip ID 0x%x\n", chip_id);
|
||||
return -ENODEV;
|
||||
|
@ -637,6 +689,19 @@ static int ltc2978_probe(struct i2c_client *client,
|
|||
data->temp2_max = 0x7c00;
|
||||
|
||||
switch (data->id) {
|
||||
case ltc2972:
|
||||
info->read_word_data = ltc2975_read_word_data;
|
||||
info->pages = LTC2972_NUM_PAGES;
|
||||
info->func[0] = PMBUS_HAVE_IIN | PMBUS_HAVE_PIN
|
||||
| PMBUS_HAVE_VIN | PMBUS_HAVE_STATUS_INPUT
|
||||
| PMBUS_HAVE_TEMP2;
|
||||
for (i = 0; i < info->pages; i++) {
|
||||
info->func[i] |= PMBUS_HAVE_VOUT
|
||||
| PMBUS_HAVE_STATUS_VOUT | PMBUS_HAVE_POUT
|
||||
| PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP
|
||||
| PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT;
|
||||
}
|
||||
break;
|
||||
case ltc2974:
|
||||
info->read_word_data = ltc2974_read_word_data;
|
||||
info->pages = LTC2974_NUM_PAGES;
|
||||
|
@ -662,8 +727,10 @@ static int ltc2978_probe(struct i2c_client *client,
|
|||
| PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT;
|
||||
}
|
||||
break;
|
||||
|
||||
case ltc2977:
|
||||
case ltc2978:
|
||||
case ltc2979:
|
||||
case ltc2980:
|
||||
case ltm2987:
|
||||
info->read_word_data = ltc2978_read_word_data;
|
||||
|
@ -680,6 +747,7 @@ static int ltc2978_probe(struct i2c_client *client,
|
|||
case ltc3887:
|
||||
case ltm4675:
|
||||
case ltm4676:
|
||||
case ltm4677:
|
||||
case ltm4686:
|
||||
data->features |= FEAT_CLEAR_PEAKS | FEAT_NEEDS_POLLING;
|
||||
info->read_word_data = ltc3880_read_word_data;
|
||||
|
@ -721,7 +789,14 @@ static int ltc2978_probe(struct i2c_client *client,
|
|||
| PMBUS_HAVE_PIN | PMBUS_HAVE_POUT | PMBUS_HAVE_TEMP
|
||||
| PMBUS_HAVE_TEMP2 | PMBUS_HAVE_STATUS_TEMP;
|
||||
break;
|
||||
case ltc3884:
|
||||
case ltc3886:
|
||||
case ltc3889:
|
||||
case ltc7880:
|
||||
case ltm4664:
|
||||
case ltm4678:
|
||||
case ltm4680:
|
||||
case ltm4700:
|
||||
data->features |= FEAT_CLEAR_PEAKS | FEAT_NEEDS_POLLING;
|
||||
info->read_word_data = ltc3883_read_word_data;
|
||||
info->pages = LTC3880_NUM_PAGES;
|
||||
|
@ -752,22 +827,33 @@ static int ltc2978_probe(struct i2c_client *client,
|
|||
return pmbus_do_probe(client, id, info);
|
||||
}
|
||||
|
||||
|
||||
#ifdef CONFIG_OF
|
||||
static const struct of_device_id ltc2978_of_match[] = {
|
||||
{ .compatible = "lltc,ltc2972" },
|
||||
{ .compatible = "lltc,ltc2974" },
|
||||
{ .compatible = "lltc,ltc2975" },
|
||||
{ .compatible = "lltc,ltc2977" },
|
||||
{ .compatible = "lltc,ltc2978" },
|
||||
{ .compatible = "lltc,ltc2979" },
|
||||
{ .compatible = "lltc,ltc2980" },
|
||||
{ .compatible = "lltc,ltc3880" },
|
||||
{ .compatible = "lltc,ltc3882" },
|
||||
{ .compatible = "lltc,ltc3883" },
|
||||
{ .compatible = "lltc,ltc3884" },
|
||||
{ .compatible = "lltc,ltc3886" },
|
||||
{ .compatible = "lltc,ltc3887" },
|
||||
{ .compatible = "lltc,ltc3889" },
|
||||
{ .compatible = "lltc,ltc7880" },
|
||||
{ .compatible = "lltc,ltm2987" },
|
||||
{ .compatible = "lltc,ltm4664" },
|
||||
{ .compatible = "lltc,ltm4675" },
|
||||
{ .compatible = "lltc,ltm4676" },
|
||||
{ .compatible = "lltc,ltm4677" },
|
||||
{ .compatible = "lltc,ltm4678" },
|
||||
{ .compatible = "lltc,ltm4680" },
|
||||
{ .compatible = "lltc,ltm4686" },
|
||||
{ .compatible = "lltc,ltm4700" },
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, ltc2978_of_match);
|
||||
|
|
Loading…
Reference in New Issue