diff options
author | Guenter Roeck <linux@roeck-us.net> | 2020-01-24 08:46:28 -0800 |
---|---|---|
committer | Guenter Roeck <linux@roeck-us.net> | 2020-03-08 20:35:47 -0700 |
commit | 6f944004f873e3036fabc4b3f14a96899fefbff5 (patch) | |
tree | e16125abc4914a1561630beb31b0b99cd2558be3 | |
parent | 53030bcc87e4a4b5f3bbdd6851c592ea57485769 (diff) | |
download | lwn-6f944004f873e3036fabc4b3f14a96899fefbff5.tar.gz lwn-6f944004f873e3036fabc4b3f14a96899fefbff5.zip |
hwmon: (pmbus/tps53679) Add support for TPS53647 and TPS53667
TPS53647 and TPS53667 are single channel, Step-Down Buck Controllers.
TPS53647 supports 4 phases, TPS53667 supports 6 phases.
The chips do not support per-phase output telemetry.
Cc: Vadim Pasternak <vadimp@mellanox.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
-rw-r--r-- | drivers/hwmon/pmbus/Kconfig | 4 | ||||
-rw-r--r-- | drivers/hwmon/pmbus/tps53679.c | 15 |
2 files changed, 15 insertions, 4 deletions
diff --git a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig index 1909ce8fca53..99164363e3d2 100644 --- a/drivers/hwmon/pmbus/Kconfig +++ b/drivers/hwmon/pmbus/Kconfig @@ -210,10 +210,10 @@ config SENSORS_TPS40422 be called tps40422. config SENSORS_TPS53679 - tristate "TI TPS53679, TPS53681, TPS53688" + tristate "TI TPS53647, TPS53667, TPS53679, TPS53681, TPS53688" help If you say yes here you get hardware monitoring support for TI - TPS53679, TPS53681, and TPS53688. + TPS53647, TPS53667, TPS53679, TPS53681, and TPS53688. This driver can also be built as a module. If so, the module will be called tps53679. diff --git a/drivers/hwmon/pmbus/tps53679.c b/drivers/hwmon/pmbus/tps53679.c index eb6e2ea0e66c..157c99ffb52b 100644 --- a/drivers/hwmon/pmbus/tps53679.c +++ b/drivers/hwmon/pmbus/tps53679.c @@ -16,9 +16,11 @@ #include "pmbus.h" enum chips { - tps53679, tps53681, tps53688 + tps53647, tps53667, tps53679, tps53681, tps53688 }; +#define TPS53647_PAGE_NUM 1 + #define TPS53679_PROT_VR12_5MV 0x01 /* VR12.0 mode, 5-mV DAC */ #define TPS53679_PROT_VR12_5_10MV 0x02 /* VR12.5 mode, 10-mV DAC */ #define TPS53679_PROT_VR13_10MV 0x04 /* VR13.0 mode, 10-mV DAC */ @@ -38,7 +40,7 @@ static int tps53679_identify_mode(struct i2c_client *client, u8 vout_params; int i, ret; - for (i = 0; i < TPS53679_PAGE_NUM; i++) { + for (i = 0; i < info->pages; i++) { /* Read the register with VOUT scaling value.*/ ret = pmbus_read_byte_data(client, i, PMBUS_VOUT_MODE); if (ret < 0) @@ -198,6 +200,11 @@ static int tps53679_probe(struct i2c_client *client, return -ENOMEM; switch (chip_id) { + case tps53647: + case tps53667: + info->pages = TPS53647_PAGE_NUM; + info->identify = tps53679_identify; + break; case tps53679: case tps53688: info->pages = TPS53679_PAGE_NUM; @@ -217,6 +224,8 @@ static int tps53679_probe(struct i2c_client *client, } static const struct i2c_device_id tps53679_id[] = { + {"tps53647", tps53647}, + {"tps53667", tps53667}, {"tps53679", tps53679}, {"tps53681", tps53681}, {"tps53688", tps53688}, @@ -226,6 +235,8 @@ static const struct i2c_device_id tps53679_id[] = { MODULE_DEVICE_TABLE(i2c, tps53679_id); static const struct of_device_id __maybe_unused tps53679_of_match[] = { + {.compatible = "ti,tps53647", .data = (void *)tps53647}, + {.compatible = "ti,tps53667", .data = (void *)tps53667}, {.compatible = "ti,tps53679", .data = (void *)tps53679}, {.compatible = "ti,tps53681", .data = (void *)tps53681}, {.compatible = "ti,tps53688", .data = (void *)tps53688}, |