Commit f53bfe4d authored by Marcello Sylvester Bauer's avatar Marcello Sylvester Bauer Committed by Guenter Roeck
Browse files

hwmon: (xdpe12284) Add regulator support



Add simple on/off regulator support for xdpe12284 and
other pmbus parts supported by the xdpe12284 driver.

Signed-off-by: default avatarMarcello Sylvester Bauer <sylv@sylv.io>
Link: https://lore.kernel.org/r/f69b8e7fa32cd2bad9516d8fa590abb87c7e4869.1646214248.git.sylv@sylv.io


Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent efdab64d
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -417,6 +417,12 @@ config SENSORS_XDPE122
	  This driver can also be built as a module. If so, the module will
	  be called xdpe12284.

config SENSORS_XDPE122_REGULATOR
	bool "Regulator support for XDPE122 and compatibles"
	depends on SENSORS_XDPE122 && REGULATOR
	help
	  Uses the xdpe12284 or compatible as regulator.

config SENSORS_ZL6100
	tristate "Intersil ZL6100 and compatibles"
	help
+11 −0
Original line number Diff line number Diff line
@@ -10,6 +10,8 @@
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/regulator/driver.h>

#include "pmbus.h"

#define XDPE122_PROT_VR12_5MV		0x01 /* VR12.0 mode, 5-mV DAC */
@@ -122,6 +124,11 @@ static int xdpe122_identify(struct i2c_client *client,
	return 0;
}

static const struct regulator_desc xdpe122_reg_desc[] = {
	PMBUS_REGULATOR("vout", 0),
	PMBUS_REGULATOR("vout", 1),
};

static struct pmbus_driver_info xdpe122_info = {
	.pages = XDPE122_PAGE_NUM,
	.format[PSC_VOLTAGE_IN] = linear,
@@ -138,6 +145,10 @@ static struct pmbus_driver_info xdpe122_info = {
		PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP |
		PMBUS_HAVE_POUT | PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT,
	.identify = xdpe122_identify,
#if IS_ENABLED(CONFIG_SENSORS_XDPE122_REGULATOR)
	.num_regulators = 2,
	.reg_desc = xdpe122_reg_desc,
#endif
};

static int xdpe122_probe(struct i2c_client *client)