Commit fe0eba17 authored by Saravanan Sekar's avatar Saravanan Sekar Committed by Guenter Roeck
Browse files

hwmon: (pmbus/mpq7932) Add a support for mpq2286 Power Management IC



The MPQ2286 is a programmable, high frequency synchronous buck regulator
designed to power a variety of Automotive system peripherals. Single buck
converters with hardware monitoring capability is configurable over PMBus
interface.

Signed-off-by: default avatarSaravanan Sekar <saravanan@linumiz.com>
Link: https://lore.kernel.org/r/20231011164754.449399-5-saravanan@linumiz.com


[groeck: Updated subject (mpq2286 -> mpq7932)]
Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent 88b5970e
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@
#define MPQ7932_N_VOLTAGES		256
#define MPQ7932_VOUT_MAX		0xFF
#define MPQ7932_NUM_PAGES		6
#define MPQ2286_NUM_PAGES		1

#define MPQ7932_TON_DELAY		0x60
#define MPQ7932_VOUT_STARTUP_SLEW	0xA3
@@ -48,6 +49,11 @@ static struct regulator_desc mpq7932_regulators_desc[] = {
	PMBUS_REGULATOR_STEP("buck", 5, MPQ7932_N_VOLTAGES,
			     MPQ7932_UV_STEP, MPQ7932_BUCK_UV_MIN),
};

static const struct regulator_desc mpq7932_regulators_desc_one[] = {
	PMBUS_REGULATOR_STEP_ONE("buck", MPQ7932_N_VOLTAGES,
				 MPQ7932_UV_STEP, MPQ7932_BUCK_UV_MIN),
};
#endif

static int mpq7932_write_word_data(struct i2c_client *client, int page, int reg,
@@ -116,6 +122,9 @@ static int mpq7932_probe(struct i2c_client *client)

#if IS_ENABLED(CONFIG_SENSORS_MPQ7932_REGULATOR)
	info->num_regulators = info->pages;
	if (info->num_regulators == 1)
		info->reg_desc = mpq7932_regulators_desc_one;
	else
		info->reg_desc = mpq7932_regulators_desc;
#endif

@@ -129,12 +138,14 @@ static int mpq7932_probe(struct i2c_client *client)
}

static const struct of_device_id mpq7932_of_match[] = {
	{ .compatible = "mps,mpq2286", .data = (void *)MPQ2286_NUM_PAGES },
	{ .compatible = "mps,mpq7932", .data = (void *)MPQ7932_NUM_PAGES },
	{},
};
MODULE_DEVICE_TABLE(of, mpq7932_of_match);

static const struct i2c_device_id mpq7932_id[] = {
	{ "mpq2286", },
	{ "mpq7932", },
	{ },
};