regulator: rk808: remove linear range definitions with a single range
The driver was using only linear ranges. Now we remove linear range definitions with a single range. So we have to add an ops struct for ranges and adjust all other ops functions accordingly. Signed-off-by: Wadim Egorov <w.egorov@phytec.de> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
		
							parent
							
								
									f55532a0c0
								
							
						
					
					
						commit
						afcd666d9d
					
				| @ -66,27 +66,11 @@ static const int rk808_buck_config_regs[] = { | |||||||
| 	RK808_BUCK4_CONFIG_REG, | 	RK808_BUCK4_CONFIG_REG, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| static const struct regulator_linear_range rk808_buck_voltage_ranges[] = { |  | ||||||
| 	REGULATOR_LINEAR_RANGE(712500, 0, 63, 12500), |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| static const struct regulator_linear_range rk808_buck4_voltage_ranges[] = { |  | ||||||
| 	REGULATOR_LINEAR_RANGE(1800000, 0, 15, 100000), |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| static const struct regulator_linear_range rk808_ldo_voltage_ranges[] = { |  | ||||||
| 	REGULATOR_LINEAR_RANGE(1800000, 0, 16, 100000), |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| static const struct regulator_linear_range rk808_ldo3_voltage_ranges[] = { | static const struct regulator_linear_range rk808_ldo3_voltage_ranges[] = { | ||||||
| 	REGULATOR_LINEAR_RANGE(800000, 0, 13, 100000), | 	REGULATOR_LINEAR_RANGE(800000, 0, 13, 100000), | ||||||
| 	REGULATOR_LINEAR_RANGE(2500000, 15, 15, 0), | 	REGULATOR_LINEAR_RANGE(2500000, 15, 15, 0), | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| static const struct regulator_linear_range rk808_ldo6_voltage_ranges[] = { |  | ||||||
| 	REGULATOR_LINEAR_RANGE(800000, 0, 17, 100000), |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| static int rk808_buck1_2_get_voltage_sel_regmap(struct regulator_dev *rdev) | static int rk808_buck1_2_get_voltage_sel_regmap(struct regulator_dev *rdev) | ||||||
| { | { | ||||||
| 	struct rk808_regulator_data *pdata = rdev_get_drvdata(rdev); | 	struct rk808_regulator_data *pdata = rdev_get_drvdata(rdev); | ||||||
| @ -240,6 +224,21 @@ static int rk808_set_ramp_delay(struct regulator_dev *rdev, int ramp_delay) | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static int rk808_set_suspend_voltage(struct regulator_dev *rdev, int uv) | static int rk808_set_suspend_voltage(struct regulator_dev *rdev, int uv) | ||||||
|  | { | ||||||
|  | 	unsigned int reg; | ||||||
|  | 	int sel = regulator_map_voltage_linear(rdev, uv, uv); | ||||||
|  | 
 | ||||||
|  | 	if (sel < 0) | ||||||
|  | 		return -EINVAL; | ||||||
|  | 
 | ||||||
|  | 	reg = rdev->desc->vsel_reg + RK808_SLP_REG_OFFSET; | ||||||
|  | 
 | ||||||
|  | 	return regmap_update_bits(rdev->regmap, reg, | ||||||
|  | 				  rdev->desc->vsel_mask, | ||||||
|  | 				  sel); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | static int rk808_set_suspend_voltage_range(struct regulator_dev *rdev, int uv) | ||||||
| { | { | ||||||
| 	unsigned int reg; | 	unsigned int reg; | ||||||
| 	int sel = regulator_map_voltage_linear_range(rdev, uv, uv); | 	int sel = regulator_map_voltage_linear_range(rdev, uv, uv); | ||||||
| @ -277,8 +276,8 @@ static int rk808_set_suspend_disable(struct regulator_dev *rdev) | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static struct regulator_ops rk808_buck1_2_ops = { | static struct regulator_ops rk808_buck1_2_ops = { | ||||||
| 	.list_voltage		= regulator_list_voltage_linear_range, | 	.list_voltage		= regulator_list_voltage_linear, | ||||||
| 	.map_voltage		= regulator_map_voltage_linear_range, | 	.map_voltage		= regulator_map_voltage_linear, | ||||||
| 	.get_voltage_sel	= rk808_buck1_2_get_voltage_sel_regmap, | 	.get_voltage_sel	= rk808_buck1_2_get_voltage_sel_regmap, | ||||||
| 	.set_voltage_sel	= rk808_buck1_2_set_voltage_sel, | 	.set_voltage_sel	= rk808_buck1_2_set_voltage_sel, | ||||||
| 	.set_voltage_time_sel	= rk808_buck1_2_set_voltage_time_sel, | 	.set_voltage_time_sel	= rk808_buck1_2_set_voltage_time_sel, | ||||||
| @ -292,6 +291,19 @@ static struct regulator_ops rk808_buck1_2_ops = { | |||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| static struct regulator_ops rk808_reg_ops = { | static struct regulator_ops rk808_reg_ops = { | ||||||
|  | 	.list_voltage		= regulator_list_voltage_linear, | ||||||
|  | 	.map_voltage		= regulator_map_voltage_linear, | ||||||
|  | 	.get_voltage_sel	= regulator_get_voltage_sel_regmap, | ||||||
|  | 	.set_voltage_sel	= regulator_set_voltage_sel_regmap, | ||||||
|  | 	.enable			= regulator_enable_regmap, | ||||||
|  | 	.disable		= regulator_disable_regmap, | ||||||
|  | 	.is_enabled		= regulator_is_enabled_regmap, | ||||||
|  | 	.set_suspend_voltage	= rk808_set_suspend_voltage, | ||||||
|  | 	.set_suspend_enable	= rk808_set_suspend_enable, | ||||||
|  | 	.set_suspend_disable	= rk808_set_suspend_disable, | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | static struct regulator_ops rk808_reg_ops_ranges = { | ||||||
| 	.list_voltage		= regulator_list_voltage_linear_range, | 	.list_voltage		= regulator_list_voltage_linear_range, | ||||||
| 	.map_voltage		= regulator_map_voltage_linear_range, | 	.map_voltage		= regulator_map_voltage_linear_range, | ||||||
| 	.get_voltage_sel	= regulator_get_voltage_sel_regmap, | 	.get_voltage_sel	= regulator_get_voltage_sel_regmap, | ||||||
| @ -299,7 +311,7 @@ static struct regulator_ops rk808_reg_ops = { | |||||||
| 	.enable			= regulator_enable_regmap, | 	.enable			= regulator_enable_regmap, | ||||||
| 	.disable		= regulator_disable_regmap, | 	.disable		= regulator_disable_regmap, | ||||||
| 	.is_enabled		= regulator_is_enabled_regmap, | 	.is_enabled		= regulator_is_enabled_regmap, | ||||||
| 	.set_suspend_voltage	= rk808_set_suspend_voltage, | 	.set_suspend_voltage	= rk808_set_suspend_voltage_range, | ||||||
| 	.set_suspend_enable	= rk808_set_suspend_enable, | 	.set_suspend_enable	= rk808_set_suspend_enable, | ||||||
| 	.set_suspend_disable	= rk808_set_suspend_disable, | 	.set_suspend_disable	= rk808_set_suspend_disable, | ||||||
| }; | }; | ||||||
| @ -319,9 +331,9 @@ static const struct regulator_desc rk808_reg[] = { | |||||||
| 		.id = RK808_ID_DCDC1, | 		.id = RK808_ID_DCDC1, | ||||||
| 		.ops = &rk808_buck1_2_ops, | 		.ops = &rk808_buck1_2_ops, | ||||||
| 		.type = REGULATOR_VOLTAGE, | 		.type = REGULATOR_VOLTAGE, | ||||||
|  | 		.min_uV = 712500, | ||||||
|  | 		.uV_step = 12500, | ||||||
| 		.n_voltages = 64, | 		.n_voltages = 64, | ||||||
| 		.linear_ranges = rk808_buck_voltage_ranges, |  | ||||||
| 		.n_linear_ranges = ARRAY_SIZE(rk808_buck_voltage_ranges), |  | ||||||
| 		.vsel_reg = RK808_BUCK1_ON_VSEL_REG, | 		.vsel_reg = RK808_BUCK1_ON_VSEL_REG, | ||||||
| 		.vsel_mask = RK808_BUCK_VSEL_MASK, | 		.vsel_mask = RK808_BUCK_VSEL_MASK, | ||||||
| 		.enable_reg = RK808_DCDC_EN_REG, | 		.enable_reg = RK808_DCDC_EN_REG, | ||||||
| @ -333,9 +345,9 @@ static const struct regulator_desc rk808_reg[] = { | |||||||
| 		.id = RK808_ID_DCDC2, | 		.id = RK808_ID_DCDC2, | ||||||
| 		.ops = &rk808_buck1_2_ops, | 		.ops = &rk808_buck1_2_ops, | ||||||
| 		.type = REGULATOR_VOLTAGE, | 		.type = REGULATOR_VOLTAGE, | ||||||
|  | 		.min_uV = 712500, | ||||||
|  | 		.uV_step = 12500, | ||||||
| 		.n_voltages = 64, | 		.n_voltages = 64, | ||||||
| 		.linear_ranges = rk808_buck_voltage_ranges, |  | ||||||
| 		.n_linear_ranges = ARRAY_SIZE(rk808_buck_voltage_ranges), |  | ||||||
| 		.vsel_reg = RK808_BUCK2_ON_VSEL_REG, | 		.vsel_reg = RK808_BUCK2_ON_VSEL_REG, | ||||||
| 		.vsel_mask = RK808_BUCK_VSEL_MASK, | 		.vsel_mask = RK808_BUCK_VSEL_MASK, | ||||||
| 		.enable_reg = RK808_DCDC_EN_REG, | 		.enable_reg = RK808_DCDC_EN_REG, | ||||||
| @ -357,9 +369,9 @@ static const struct regulator_desc rk808_reg[] = { | |||||||
| 		.id = RK808_ID_DCDC4, | 		.id = RK808_ID_DCDC4, | ||||||
| 		.ops = &rk808_reg_ops, | 		.ops = &rk808_reg_ops, | ||||||
| 		.type = REGULATOR_VOLTAGE, | 		.type = REGULATOR_VOLTAGE, | ||||||
|  | 		.min_uV = 1800000, | ||||||
|  | 		.uV_step = 100000, | ||||||
| 		.n_voltages = 16, | 		.n_voltages = 16, | ||||||
| 		.linear_ranges = rk808_buck4_voltage_ranges, |  | ||||||
| 		.n_linear_ranges = ARRAY_SIZE(rk808_buck4_voltage_ranges), |  | ||||||
| 		.vsel_reg = RK808_BUCK4_ON_VSEL_REG, | 		.vsel_reg = RK808_BUCK4_ON_VSEL_REG, | ||||||
| 		.vsel_mask = RK808_BUCK4_VSEL_MASK, | 		.vsel_mask = RK808_BUCK4_VSEL_MASK, | ||||||
| 		.enable_reg = RK808_DCDC_EN_REG, | 		.enable_reg = RK808_DCDC_EN_REG, | ||||||
| @ -371,9 +383,9 @@ static const struct regulator_desc rk808_reg[] = { | |||||||
| 		.id = RK808_ID_LDO1, | 		.id = RK808_ID_LDO1, | ||||||
| 		.ops = &rk808_reg_ops, | 		.ops = &rk808_reg_ops, | ||||||
| 		.type = REGULATOR_VOLTAGE, | 		.type = REGULATOR_VOLTAGE, | ||||||
|  | 		.min_uV = 1800000, | ||||||
|  | 		.uV_step = 100000, | ||||||
| 		.n_voltages = 17, | 		.n_voltages = 17, | ||||||
| 		.linear_ranges = rk808_ldo_voltage_ranges, |  | ||||||
| 		.n_linear_ranges = ARRAY_SIZE(rk808_ldo_voltage_ranges), |  | ||||||
| 		.vsel_reg = RK808_LDO1_ON_VSEL_REG, | 		.vsel_reg = RK808_LDO1_ON_VSEL_REG, | ||||||
| 		.vsel_mask = RK808_LDO_VSEL_MASK, | 		.vsel_mask = RK808_LDO_VSEL_MASK, | ||||||
| 		.enable_reg = RK808_LDO_EN_REG, | 		.enable_reg = RK808_LDO_EN_REG, | ||||||
| @ -386,9 +398,9 @@ static const struct regulator_desc rk808_reg[] = { | |||||||
| 		.id = RK808_ID_LDO2, | 		.id = RK808_ID_LDO2, | ||||||
| 		.ops = &rk808_reg_ops, | 		.ops = &rk808_reg_ops, | ||||||
| 		.type = REGULATOR_VOLTAGE, | 		.type = REGULATOR_VOLTAGE, | ||||||
|  | 		.min_uV = 1800000, | ||||||
|  | 		.uV_step = 100000, | ||||||
| 		.n_voltages = 17, | 		.n_voltages = 17, | ||||||
| 		.linear_ranges = rk808_ldo_voltage_ranges, |  | ||||||
| 		.n_linear_ranges = ARRAY_SIZE(rk808_ldo_voltage_ranges), |  | ||||||
| 		.vsel_reg = RK808_LDO2_ON_VSEL_REG, | 		.vsel_reg = RK808_LDO2_ON_VSEL_REG, | ||||||
| 		.vsel_mask = RK808_LDO_VSEL_MASK, | 		.vsel_mask = RK808_LDO_VSEL_MASK, | ||||||
| 		.enable_reg = RK808_LDO_EN_REG, | 		.enable_reg = RK808_LDO_EN_REG, | ||||||
| @ -416,9 +428,9 @@ static const struct regulator_desc rk808_reg[] = { | |||||||
| 		.id = RK808_ID_LDO4, | 		.id = RK808_ID_LDO4, | ||||||
| 		.ops = &rk808_reg_ops, | 		.ops = &rk808_reg_ops, | ||||||
| 		.type = REGULATOR_VOLTAGE, | 		.type = REGULATOR_VOLTAGE, | ||||||
|  | 		.min_uV = 1800000, | ||||||
|  | 		.uV_step = 100000, | ||||||
| 		.n_voltages = 17, | 		.n_voltages = 17, | ||||||
| 		.linear_ranges = rk808_ldo_voltage_ranges, |  | ||||||
| 		.n_linear_ranges = ARRAY_SIZE(rk808_ldo_voltage_ranges), |  | ||||||
| 		.vsel_reg = RK808_LDO4_ON_VSEL_REG, | 		.vsel_reg = RK808_LDO4_ON_VSEL_REG, | ||||||
| 		.vsel_mask = RK808_LDO_VSEL_MASK, | 		.vsel_mask = RK808_LDO_VSEL_MASK, | ||||||
| 		.enable_reg = RK808_LDO_EN_REG, | 		.enable_reg = RK808_LDO_EN_REG, | ||||||
| @ -431,9 +443,9 @@ static const struct regulator_desc rk808_reg[] = { | |||||||
| 		.id = RK808_ID_LDO5, | 		.id = RK808_ID_LDO5, | ||||||
| 		.ops = &rk808_reg_ops, | 		.ops = &rk808_reg_ops, | ||||||
| 		.type = REGULATOR_VOLTAGE, | 		.type = REGULATOR_VOLTAGE, | ||||||
|  | 		.min_uV = 1800000, | ||||||
|  | 		.uV_step = 100000, | ||||||
| 		.n_voltages = 17, | 		.n_voltages = 17, | ||||||
| 		.linear_ranges = rk808_ldo_voltage_ranges, |  | ||||||
| 		.n_linear_ranges = ARRAY_SIZE(rk808_ldo_voltage_ranges), |  | ||||||
| 		.vsel_reg = RK808_LDO5_ON_VSEL_REG, | 		.vsel_reg = RK808_LDO5_ON_VSEL_REG, | ||||||
| 		.vsel_mask = RK808_LDO_VSEL_MASK, | 		.vsel_mask = RK808_LDO_VSEL_MASK, | ||||||
| 		.enable_reg = RK808_LDO_EN_REG, | 		.enable_reg = RK808_LDO_EN_REG, | ||||||
| @ -446,9 +458,9 @@ static const struct regulator_desc rk808_reg[] = { | |||||||
| 		.id = RK808_ID_LDO6, | 		.id = RK808_ID_LDO6, | ||||||
| 		.ops = &rk808_reg_ops, | 		.ops = &rk808_reg_ops, | ||||||
| 		.type = REGULATOR_VOLTAGE, | 		.type = REGULATOR_VOLTAGE, | ||||||
|  | 		.min_uV = 800000, | ||||||
|  | 		.uV_step = 100000, | ||||||
| 		.n_voltages = 18, | 		.n_voltages = 18, | ||||||
| 		.linear_ranges = rk808_ldo6_voltage_ranges, |  | ||||||
| 		.n_linear_ranges = ARRAY_SIZE(rk808_ldo6_voltage_ranges), |  | ||||||
| 		.vsel_reg = RK808_LDO6_ON_VSEL_REG, | 		.vsel_reg = RK808_LDO6_ON_VSEL_REG, | ||||||
| 		.vsel_mask = RK808_LDO_VSEL_MASK, | 		.vsel_mask = RK808_LDO_VSEL_MASK, | ||||||
| 		.enable_reg = RK808_LDO_EN_REG, | 		.enable_reg = RK808_LDO_EN_REG, | ||||||
| @ -461,9 +473,9 @@ static const struct regulator_desc rk808_reg[] = { | |||||||
| 		.id = RK808_ID_LDO7, | 		.id = RK808_ID_LDO7, | ||||||
| 		.ops = &rk808_reg_ops, | 		.ops = &rk808_reg_ops, | ||||||
| 		.type = REGULATOR_VOLTAGE, | 		.type = REGULATOR_VOLTAGE, | ||||||
|  | 		.min_uV = 800000, | ||||||
|  | 		.uV_step = 100000, | ||||||
| 		.n_voltages = 18, | 		.n_voltages = 18, | ||||||
| 		.linear_ranges = rk808_ldo6_voltage_ranges, |  | ||||||
| 		.n_linear_ranges = ARRAY_SIZE(rk808_ldo6_voltage_ranges), |  | ||||||
| 		.vsel_reg = RK808_LDO7_ON_VSEL_REG, | 		.vsel_reg = RK808_LDO7_ON_VSEL_REG, | ||||||
| 		.vsel_mask = RK808_LDO_VSEL_MASK, | 		.vsel_mask = RK808_LDO_VSEL_MASK, | ||||||
| 		.enable_reg = RK808_LDO_EN_REG, | 		.enable_reg = RK808_LDO_EN_REG, | ||||||
| @ -476,9 +488,9 @@ static const struct regulator_desc rk808_reg[] = { | |||||||
| 		.id = RK808_ID_LDO8, | 		.id = RK808_ID_LDO8, | ||||||
| 		.ops = &rk808_reg_ops, | 		.ops = &rk808_reg_ops, | ||||||
| 		.type = REGULATOR_VOLTAGE, | 		.type = REGULATOR_VOLTAGE, | ||||||
|  | 		.min_uV = 1800000, | ||||||
|  | 		.uV_step = 100000, | ||||||
| 		.n_voltages = 17, | 		.n_voltages = 17, | ||||||
| 		.linear_ranges = rk808_ldo_voltage_ranges, |  | ||||||
| 		.n_linear_ranges = ARRAY_SIZE(rk808_ldo_voltage_ranges), |  | ||||||
| 		.vsel_reg = RK808_LDO8_ON_VSEL_REG, | 		.vsel_reg = RK808_LDO8_ON_VSEL_REG, | ||||||
| 		.vsel_mask = RK808_LDO_VSEL_MASK, | 		.vsel_mask = RK808_LDO_VSEL_MASK, | ||||||
| 		.enable_reg = RK808_LDO_EN_REG, | 		.enable_reg = RK808_LDO_EN_REG, | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user