Commit f668a1db authored by Axel Lin's avatar Axel Lin Committed by Mark Brown

regulator: as3711: Remove struct as3711_regulator_info and as3711_regulator

This driver does not really need struct as3711_regulator_info and
struct as3711_regulator, remove them.
Signed-off-by: default avatarAxel Lin <axel.lin@ingics.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent f4192c2c
...@@ -17,14 +17,6 @@ ...@@ -17,14 +17,6 @@
#include <linux/regulator/of_regulator.h> #include <linux/regulator/of_regulator.h>
#include <linux/slab.h> #include <linux/slab.h>
struct as3711_regulator_info {
struct regulator_desc desc;
};
struct as3711_regulator {
struct as3711_regulator_info *reg_info;
};
/* /*
* The regulator API supports 4 modes of operataion: FAST, NORMAL, IDLE and * The regulator API supports 4 modes of operataion: FAST, NORMAL, IDLE and
* STANDBY. We map them in the following way to AS3711 SD1-4 DCDC modes: * STANDBY. We map them in the following way to AS3711 SD1-4 DCDC modes:
...@@ -129,7 +121,6 @@ static const struct regulator_linear_range as3711_dldo_ranges[] = { ...@@ -129,7 +121,6 @@ static const struct regulator_linear_range as3711_dldo_ranges[] = {
#define AS3711_REG(_id, _en_reg, _en_bit, _vmask, _sfx) \ #define AS3711_REG(_id, _en_reg, _en_bit, _vmask, _sfx) \
[AS3711_REGULATOR_ ## _id] = { \ [AS3711_REGULATOR_ ## _id] = { \
.desc = { \
.name = "as3711-regulator-" # _id, \ .name = "as3711-regulator-" # _id, \
.id = AS3711_REGULATOR_ ## _id, \ .id = AS3711_REGULATOR_ ## _id, \
.n_voltages = (_vmask + 1), \ .n_voltages = (_vmask + 1), \
...@@ -142,10 +133,9 @@ static const struct regulator_linear_range as3711_dldo_ranges[] = { ...@@ -142,10 +133,9 @@ static const struct regulator_linear_range as3711_dldo_ranges[] = {
.enable_mask = BIT(_en_bit), \ .enable_mask = BIT(_en_bit), \
.linear_ranges = as3711_ ## _sfx ## _ranges, \ .linear_ranges = as3711_ ## _sfx ## _ranges, \
.n_linear_ranges = ARRAY_SIZE(as3711_ ## _sfx ## _ranges), \ .n_linear_ranges = ARRAY_SIZE(as3711_ ## _sfx ## _ranges), \
}, \
} }
static struct as3711_regulator_info as3711_reg_info[] = { static const struct regulator_desc as3711_reg_desc[] = {
AS3711_REG(SD_1, SD_CONTROL, 0, 0x7f, sd), AS3711_REG(SD_1, SD_CONTROL, 0, 0x7f, sd),
AS3711_REG(SD_2, SD_CONTROL, 1, 0x7f, sd), AS3711_REG(SD_2, SD_CONTROL, 1, 0x7f, sd),
AS3711_REG(SD_3, SD_CONTROL, 2, 0x7f, sd), AS3711_REG(SD_3, SD_CONTROL, 2, 0x7f, sd),
...@@ -161,7 +151,7 @@ static struct as3711_regulator_info as3711_reg_info[] = { ...@@ -161,7 +151,7 @@ static struct as3711_regulator_info as3711_reg_info[] = {
/* StepUp output voltage depends on supplying regulator */ /* StepUp output voltage depends on supplying regulator */
}; };
#define AS3711_REGULATOR_NUM ARRAY_SIZE(as3711_reg_info) #define AS3711_REGULATOR_NUM ARRAY_SIZE(as3711_reg_desc)
static struct of_regulator_match static struct of_regulator_match
as3711_regulator_matches[AS3711_REGULATOR_NUM] = { as3711_regulator_matches[AS3711_REGULATOR_NUM] = {
...@@ -215,11 +205,8 @@ static int as3711_regulator_probe(struct platform_device *pdev) ...@@ -215,11 +205,8 @@ static int as3711_regulator_probe(struct platform_device *pdev)
struct as3711_regulator_pdata *pdata = dev_get_platdata(&pdev->dev); struct as3711_regulator_pdata *pdata = dev_get_platdata(&pdev->dev);
struct as3711 *as3711 = dev_get_drvdata(pdev->dev.parent); struct as3711 *as3711 = dev_get_drvdata(pdev->dev.parent);
struct regulator_config config = {.dev = &pdev->dev,}; struct regulator_config config = {.dev = &pdev->dev,};
struct as3711_regulator *reg = NULL;
struct as3711_regulator *regs;
struct device_node *of_node[AS3711_REGULATOR_NUM] = {}; struct device_node *of_node[AS3711_REGULATOR_NUM] = {};
struct regulator_dev *rdev; struct regulator_dev *rdev;
struct as3711_regulator_info *ri;
int ret; int ret;
int id; int id;
...@@ -236,30 +223,20 @@ static int as3711_regulator_probe(struct platform_device *pdev) ...@@ -236,30 +223,20 @@ static int as3711_regulator_probe(struct platform_device *pdev)
} }
} }
regs = devm_kcalloc(&pdev->dev, for (id = 0; id < AS3711_REGULATOR_NUM; id++) {
AS3711_REGULATOR_NUM,
sizeof(struct as3711_regulator),
GFP_KERNEL);
if (!regs)
return -ENOMEM;
for (id = 0, ri = as3711_reg_info; id < AS3711_REGULATOR_NUM; ++id, ri++) {
reg = &regs[id];
reg->reg_info = ri;
config.init_data = pdata->init_data[id]; config.init_data = pdata->init_data[id];
config.driver_data = reg;
config.regmap = as3711->regmap; config.regmap = as3711->regmap;
config.of_node = of_node[id]; config.of_node = of_node[id];
rdev = devm_regulator_register(&pdev->dev, &ri->desc, &config); rdev = devm_regulator_register(&pdev->dev, &as3711_reg_desc[id],
&config);
if (IS_ERR(rdev)) { if (IS_ERR(rdev)) {
dev_err(&pdev->dev, "Failed to register regulator %s\n", dev_err(&pdev->dev, "Failed to register regulator %s\n",
ri->desc.name); as3711_reg_desc[id].name);
return PTR_ERR(rdev); return PTR_ERR(rdev);
} }
} }
platform_set_drvdata(pdev, regs);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment