Commit 6f944004 authored by Guenter Roeck's avatar Guenter Roeck

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: default avatarGuenter Roeck <linux@roeck-us.net>
parent 53030bcc
...@@ -210,10 +210,10 @@ config SENSORS_TPS40422 ...@@ -210,10 +210,10 @@ config SENSORS_TPS40422
be called tps40422. be called tps40422.
config SENSORS_TPS53679 config SENSORS_TPS53679
tristate "TI TPS53679, TPS53681, TPS53688" tristate "TI TPS53647, TPS53667, TPS53679, TPS53681, TPS53688"
help help
If you say yes here you get hardware monitoring support for TI 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 This driver can also be built as a module. If so, the module will
be called tps53679. be called tps53679.
......
...@@ -16,9 +16,11 @@ ...@@ -16,9 +16,11 @@
#include "pmbus.h" #include "pmbus.h"
enum chips { 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_5MV 0x01 /* VR12.0 mode, 5-mV DAC */
#define TPS53679_PROT_VR12_5_10MV 0x02 /* VR12.5 mode, 10-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 */ #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, ...@@ -38,7 +40,7 @@ static int tps53679_identify_mode(struct i2c_client *client,
u8 vout_params; u8 vout_params;
int i, ret; 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.*/ /* Read the register with VOUT scaling value.*/
ret = pmbus_read_byte_data(client, i, PMBUS_VOUT_MODE); ret = pmbus_read_byte_data(client, i, PMBUS_VOUT_MODE);
if (ret < 0) if (ret < 0)
...@@ -198,6 +200,11 @@ static int tps53679_probe(struct i2c_client *client, ...@@ -198,6 +200,11 @@ static int tps53679_probe(struct i2c_client *client,
return -ENOMEM; return -ENOMEM;
switch (chip_id) { switch (chip_id) {
case tps53647:
case tps53667:
info->pages = TPS53647_PAGE_NUM;
info->identify = tps53679_identify;
break;
case tps53679: case tps53679:
case tps53688: case tps53688:
info->pages = TPS53679_PAGE_NUM; info->pages = TPS53679_PAGE_NUM;
...@@ -217,6 +224,8 @@ static int tps53679_probe(struct i2c_client *client, ...@@ -217,6 +224,8 @@ static int tps53679_probe(struct i2c_client *client,
} }
static const struct i2c_device_id tps53679_id[] = { static const struct i2c_device_id tps53679_id[] = {
{"tps53647", tps53647},
{"tps53667", tps53667},
{"tps53679", tps53679}, {"tps53679", tps53679},
{"tps53681", tps53681}, {"tps53681", tps53681},
{"tps53688", tps53688}, {"tps53688", tps53688},
...@@ -226,6 +235,8 @@ static const struct i2c_device_id tps53679_id[] = { ...@@ -226,6 +235,8 @@ static const struct i2c_device_id tps53679_id[] = {
MODULE_DEVICE_TABLE(i2c, tps53679_id); MODULE_DEVICE_TABLE(i2c, tps53679_id);
static const struct of_device_id __maybe_unused tps53679_of_match[] = { 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,tps53679", .data = (void *)tps53679},
{.compatible = "ti,tps53681", .data = (void *)tps53681}, {.compatible = "ti,tps53681", .data = (void *)tps53681},
{.compatible = "ti,tps53688", .data = (void *)tps53688}, {.compatible = "ti,tps53688", .data = (void *)tps53688},
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment