Commit 638aef7a authored by Axel Lin's avatar Axel Lin Committed by Mark Brown

regulator: pwm: No need to make a copy of regulator_ops per instance

Having instance specific copy of desc is enough to support multiple
instance of pwm regulator.
The regulator_ops is never changed so no need to copy it per instance, make
pwm_regulator_voltage_table_ops and pwm_regulator_voltage_continuous_ops
const to ensure they won't be changed.
The pwm_regulator_desc is a template to be copied so also make it const.
Signed-off-by: default avatarAxel Lin <axel.lin@ingics.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 08f0b14a
...@@ -40,9 +40,6 @@ struct pwm_regulator_data { ...@@ -40,9 +40,6 @@ struct pwm_regulator_data {
/* regulator descriptor */ /* regulator descriptor */
struct regulator_desc desc; struct regulator_desc desc;
/* Regulator ops */
struct regulator_ops ops;
int state; int state;
/* Enable GPIO */ /* Enable GPIO */
...@@ -231,7 +228,7 @@ static int pwm_regulator_set_voltage(struct regulator_dev *rdev, ...@@ -231,7 +228,7 @@ static int pwm_regulator_set_voltage(struct regulator_dev *rdev,
return 0; return 0;
} }
static struct regulator_ops pwm_regulator_voltage_table_ops = { static const struct regulator_ops pwm_regulator_voltage_table_ops = {
.set_voltage_sel = pwm_regulator_set_voltage_sel, .set_voltage_sel = pwm_regulator_set_voltage_sel,
.get_voltage_sel = pwm_regulator_get_voltage_sel, .get_voltage_sel = pwm_regulator_get_voltage_sel,
.list_voltage = pwm_regulator_list_voltage, .list_voltage = pwm_regulator_list_voltage,
...@@ -241,7 +238,7 @@ static struct regulator_ops pwm_regulator_voltage_table_ops = { ...@@ -241,7 +238,7 @@ static struct regulator_ops pwm_regulator_voltage_table_ops = {
.is_enabled = pwm_regulator_is_enabled, .is_enabled = pwm_regulator_is_enabled,
}; };
static struct regulator_ops pwm_regulator_voltage_continuous_ops = { static const struct regulator_ops pwm_regulator_voltage_continuous_ops = {
.get_voltage = pwm_regulator_get_voltage, .get_voltage = pwm_regulator_get_voltage,
.set_voltage = pwm_regulator_set_voltage, .set_voltage = pwm_regulator_set_voltage,
.enable = pwm_regulator_enable, .enable = pwm_regulator_enable,
...@@ -249,7 +246,7 @@ static struct regulator_ops pwm_regulator_voltage_continuous_ops = { ...@@ -249,7 +246,7 @@ static struct regulator_ops pwm_regulator_voltage_continuous_ops = {
.is_enabled = pwm_regulator_is_enabled, .is_enabled = pwm_regulator_is_enabled,
}; };
static struct regulator_desc pwm_regulator_desc = { static const struct regulator_desc pwm_regulator_desc = {
.name = "pwm-regulator", .name = "pwm-regulator",
.type = REGULATOR_VOLTAGE, .type = REGULATOR_VOLTAGE,
.owner = THIS_MODULE, .owner = THIS_MODULE,
...@@ -287,9 +284,7 @@ static int pwm_regulator_init_table(struct platform_device *pdev, ...@@ -287,9 +284,7 @@ static int pwm_regulator_init_table(struct platform_device *pdev,
drvdata->state = -EINVAL; drvdata->state = -EINVAL;
drvdata->duty_cycle_table = duty_cycle_table; drvdata->duty_cycle_table = duty_cycle_table;
memcpy(&drvdata->ops, &pwm_regulator_voltage_table_ops, drvdata->desc.ops = &pwm_regulator_voltage_table_ops;
sizeof(drvdata->ops));
drvdata->desc.ops = &drvdata->ops;
drvdata->desc.n_voltages = length / sizeof(*duty_cycle_table); drvdata->desc.n_voltages = length / sizeof(*duty_cycle_table);
return 0; return 0;
...@@ -301,9 +296,7 @@ static int pwm_regulator_init_continuous(struct platform_device *pdev, ...@@ -301,9 +296,7 @@ static int pwm_regulator_init_continuous(struct platform_device *pdev,
u32 dutycycle_range[2] = { 0, 100 }; u32 dutycycle_range[2] = { 0, 100 };
u32 dutycycle_unit = 100; u32 dutycycle_unit = 100;
memcpy(&drvdata->ops, &pwm_regulator_voltage_continuous_ops, drvdata->desc.ops = &pwm_regulator_voltage_continuous_ops;
sizeof(drvdata->ops));
drvdata->desc.ops = &drvdata->ops;
drvdata->desc.continuous_voltage_range = true; drvdata->desc.continuous_voltage_range = true;
of_property_read_u32_array(pdev->dev.of_node, of_property_read_u32_array(pdev->dev.of_node,
......
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