hwmon: (pmbus/core) Add rdev in pmbus_data struct

Add regulator device in pmbus_data & initialize the same during PMBus
regulator register.

Signed-off-by: Naresh Solanki <Naresh.Solanki@9elements.com>
Link: https://lore.kernel.org/r/20230328150335.90238-1-Naresh.Solanki@9elements.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
Naresh Solanki 2023-03-28 17:03:33 +02:00 committed by Guenter Roeck
parent 7f2958e845
commit ffe36eb557

View File

@ -81,6 +81,7 @@ struct pmbus_label {
struct pmbus_data {
struct device *dev;
struct device *hwmon_dev;
struct regulator_dev **rdevs;
u32 flags; /* from platform data */
@ -3109,9 +3110,13 @@ static int pmbus_regulator_register(struct pmbus_data *data)
struct device *dev = data->dev;
const struct pmbus_driver_info *info = data->info;
const struct pmbus_platform_data *pdata = dev_get_platdata(dev);
struct regulator_dev *rdev;
int i;
data->rdevs = devm_kzalloc(dev, sizeof(struct regulator_dev *) * info->num_regulators,
GFP_KERNEL);
if (!data->rdevs)
return -ENOMEM;
for (i = 0; i < info->num_regulators; i++) {
struct regulator_config config = { };
@ -3121,10 +3126,10 @@ static int pmbus_regulator_register(struct pmbus_data *data)
if (pdata && pdata->reg_init_data)
config.init_data = &pdata->reg_init_data[i];
rdev = devm_regulator_register(dev, &info->reg_desc[i],
&config);
if (IS_ERR(rdev))
return dev_err_probe(dev, PTR_ERR(rdev),
data->rdevs[i] = devm_regulator_register(dev, &info->reg_desc[i],
&config);
if (IS_ERR(data->rdevs[i]))
return dev_err_probe(dev, PTR_ERR(data->rdevs[i]),
"Failed to register %s regulator\n",
info->reg_desc[i].name);
}