hwmon: (pmbus/max16601) Add support for MAX16600

From programming perspective, MAX16600 is identical to MAX16601 and
MAX16602. Add support for it.

Cc: Steve Foreman <foremans@google.com>
Cc: Holly Barrett <holly.barrett@analog.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
Guenter Roeck 2023-01-24 08:15:08 -08:00
Родитель b11f3d47c0
Коммит a6f7c5d0e7
3 изменённых файлов: 21 добавлений и 8 удалений

Просмотреть файл

@ -13,6 +13,14 @@ Supported chips:
Datasheet: Not published Datasheet: Not published
* Maxim MAX16600
Prefix: 'max16600'
Addresses scanned: -
Datasheet: Not published
* Maxim MAX16601 * Maxim MAX16601
Prefix: 'max16601' Prefix: 'max16601'
@ -36,7 +44,8 @@ Description
----------- -----------
This driver supports the MAX16508 VR13 Dual-Output Voltage Regulator This driver supports the MAX16508 VR13 Dual-Output Voltage Regulator
as well as the MAX16601 VR13.HC Dual-Output Voltage Regulator chipsets. as well as the MAX16600, MAX16601, and MAX16602 VR13.HC Dual-Output
Voltage Regulator chipsets.
The driver is a client driver to the core PMBus driver. The driver is a client driver to the core PMBus driver.
Please see Documentation/hwmon/pmbus.rst for details on PMBus client drivers. Please see Documentation/hwmon/pmbus.rst for details on PMBus client drivers.

Просмотреть файл

@ -237,10 +237,10 @@ config SENSORS_MAX16064
be called max16064. be called max16064.
config SENSORS_MAX16601 config SENSORS_MAX16601
tristate "Maxim MAX16508, MAX16601, MAX16602" tristate "Maxim MAX16508, MAX16600, MAX16601, and MAX16602"
help help
If you say yes here you get hardware monitoring support for Maxim If you say yes here you get hardware monitoring support for Maxim
MAX16508, MAX16601 and MAX16602. MAX16508, MAX16600, MAX16601, and MAX16602.
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 max16601. be called max16601.

Просмотреть файл

@ -1,6 +1,7 @@
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
/* /*
* Hardware monitoring driver for Maxim MAX16508, MAX16601 and MAX16602. * Hardware monitoring driver for Maxim MAX16508, MAX16600, MAX16601,
* and MAX16602.
* *
* Implementation notes: * Implementation notes:
* *
@ -31,7 +32,7 @@
#include "pmbus.h" #include "pmbus.h"
enum chips { max16508, max16601, max16602 }; enum chips { max16508, max16600, max16601, max16602 };
#define REG_DEFAULT_NUM_POP 0xc4 #define REG_DEFAULT_NUM_POP 0xc4
#define REG_SETPT_DVID 0xd1 #define REG_SETPT_DVID 0xd1
@ -202,7 +203,7 @@ static int max16601_identify(struct i2c_client *client,
else else
info->vrm_version[0] = vr12; info->vrm_version[0] = vr12;
if (data->id != max16601 && data->id != max16602) if (data->id != max16600 && data->id != max16601 && data->id != max16602)
return 0; return 0;
reg = i2c_smbus_read_byte_data(client, REG_DEFAULT_NUM_POP); reg = i2c_smbus_read_byte_data(client, REG_DEFAULT_NUM_POP);
@ -263,6 +264,7 @@ static void max16601_remove(void *_data)
static const struct i2c_device_id max16601_id[] = { static const struct i2c_device_id max16601_id[] = {
{"max16508", max16508}, {"max16508", max16508},
{"max16600", max16600},
{"max16601", max16601}, {"max16601", max16601},
{"max16602", max16602}, {"max16602", max16602},
{} {}
@ -281,11 +283,13 @@ static int max16601_get_id(struct i2c_client *client)
return -ENODEV; return -ENODEV;
/* /*
* PMBUS_IC_DEVICE_ID is expected to return "MAX16601y.xx" or * PMBUS_IC_DEVICE_ID is expected to return MAX1660[012]y.xx" or
* MAX16602y.xx or "MAX16500y.xx".cdxxcccccccccc * "MAX16500y.xx".cdxxcccccccccc
*/ */
if (!strncmp(buf, "MAX16500", 8)) { if (!strncmp(buf, "MAX16500", 8)) {
id = max16508; id = max16508;
} else if (!strncmp(buf, "MAX16600", 8)) {
id = max16600;
} else if (!strncmp(buf, "MAX16601", 8)) { } else if (!strncmp(buf, "MAX16601", 8)) {
id = max16601; id = max16601;
} else if (!strncmp(buf, "MAX16602", 8)) { } else if (!strncmp(buf, "MAX16602", 8)) {