Loading drivers/regulator/fan53555.c +19 −17 Original line number Diff line number Diff line Loading @@ -301,25 +301,26 @@ static struct regmap_config fan53555_regmap_config = { .val_bits = 8, }; static struct fan53555_platform_data *fan53555_parse_dt(struct device *dev, struct device_node *np) static int fan53555_parse_dt(struct fan53555_device_info *di, struct fan53555_platform_data *pdata) { struct fan53555_platform_data *pdata; struct device *dev = di->dev; struct device_node *np = dev->of_node; int ret; u32 tmp; pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL); if (!pdata) return NULL; pdata->regulator = of_get_regulator_init_data(dev, np); if (!pdata->regulator) { dev_err(dev, "regulator init data is missing\n"); return -ENODEV; } ret = of_property_read_u32(np, "fcs,suspend-voltage-selector", &tmp); if (!ret) pdata->sleep_vsel_id = tmp; return pdata; return ret; } static const struct of_device_id fan53555_dt_ids[] = { Loading @@ -340,7 +341,6 @@ MODULE_DEVICE_TABLE(of, fan53555_dt_ids); static int fan53555_regulator_probe(struct i2c_client *client, const struct i2c_device_id *id) { struct device_node *np = client->dev.of_node; struct fan53555_device_info *di; struct fan53555_platform_data *pdata; struct regulator_config config = { }; Loading @@ -348,12 +348,10 @@ static int fan53555_regulator_probe(struct i2c_client *client, int ret; pdata = dev_get_platdata(&client->dev); if (!pdata) { pdata = devm_kzalloc(&client->dev, sizeof(*pdata), GFP_KERNEL); if (!pdata) pdata = fan53555_parse_dt(&client->dev, np); if (!pdata || !pdata->regulator) { dev_err(&client->dev, "Platform data not found!\n"); return -ENODEV; return -ENOMEM; } di = devm_kzalloc(&client->dev, sizeof(struct fan53555_device_info), Loading @@ -361,6 +359,11 @@ static int fan53555_regulator_probe(struct i2c_client *client, if (!di) return -ENOMEM; di->dev = &client->dev; ret = fan53555_parse_dt(di, pdata); if (ret) return ret; di->regulator = pdata->regulator; if (client->dev.of_node) { const struct of_device_id *match; Loading Loading @@ -389,7 +392,6 @@ static int fan53555_regulator_probe(struct i2c_client *client, dev_err(&client->dev, "Failed to allocate regmap!\n"); return PTR_ERR(di->regmap); } di->dev = &client->dev; i2c_set_clientdata(client, di); /* Get chip ID */ ret = regmap_read(di->regmap, FAN53555_ID1, &val); Loading Loading @@ -418,7 +420,7 @@ static int fan53555_regulator_probe(struct i2c_client *client, config.init_data = di->regulator; config.regmap = di->regmap; config.driver_data = di; config.of_node = np; config.of_node = client->dev.of_node; ret = fan53555_regulator_register(di, &config); if (ret < 0) Loading Loading
drivers/regulator/fan53555.c +19 −17 Original line number Diff line number Diff line Loading @@ -301,25 +301,26 @@ static struct regmap_config fan53555_regmap_config = { .val_bits = 8, }; static struct fan53555_platform_data *fan53555_parse_dt(struct device *dev, struct device_node *np) static int fan53555_parse_dt(struct fan53555_device_info *di, struct fan53555_platform_data *pdata) { struct fan53555_platform_data *pdata; struct device *dev = di->dev; struct device_node *np = dev->of_node; int ret; u32 tmp; pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL); if (!pdata) return NULL; pdata->regulator = of_get_regulator_init_data(dev, np); if (!pdata->regulator) { dev_err(dev, "regulator init data is missing\n"); return -ENODEV; } ret = of_property_read_u32(np, "fcs,suspend-voltage-selector", &tmp); if (!ret) pdata->sleep_vsel_id = tmp; return pdata; return ret; } static const struct of_device_id fan53555_dt_ids[] = { Loading @@ -340,7 +341,6 @@ MODULE_DEVICE_TABLE(of, fan53555_dt_ids); static int fan53555_regulator_probe(struct i2c_client *client, const struct i2c_device_id *id) { struct device_node *np = client->dev.of_node; struct fan53555_device_info *di; struct fan53555_platform_data *pdata; struct regulator_config config = { }; Loading @@ -348,12 +348,10 @@ static int fan53555_regulator_probe(struct i2c_client *client, int ret; pdata = dev_get_platdata(&client->dev); if (!pdata) { pdata = devm_kzalloc(&client->dev, sizeof(*pdata), GFP_KERNEL); if (!pdata) pdata = fan53555_parse_dt(&client->dev, np); if (!pdata || !pdata->regulator) { dev_err(&client->dev, "Platform data not found!\n"); return -ENODEV; return -ENOMEM; } di = devm_kzalloc(&client->dev, sizeof(struct fan53555_device_info), Loading @@ -361,6 +359,11 @@ static int fan53555_regulator_probe(struct i2c_client *client, if (!di) return -ENOMEM; di->dev = &client->dev; ret = fan53555_parse_dt(di, pdata); if (ret) return ret; di->regulator = pdata->regulator; if (client->dev.of_node) { const struct of_device_id *match; Loading Loading @@ -389,7 +392,6 @@ static int fan53555_regulator_probe(struct i2c_client *client, dev_err(&client->dev, "Failed to allocate regmap!\n"); return PTR_ERR(di->regmap); } di->dev = &client->dev; i2c_set_clientdata(client, di); /* Get chip ID */ ret = regmap_read(di->regmap, FAN53555_ID1, &val); Loading Loading @@ -418,7 +420,7 @@ static int fan53555_regulator_probe(struct i2c_client *client, config.init_data = di->regulator; config.regmap = di->regmap; config.driver_data = di; config.of_node = np; config.of_node = client->dev.of_node; ret = fan53555_regulator_register(di, &config); if (ret < 0) Loading