On 12/11/2015 12:28 AM, Keerthy wrote:
> set/get_bypass ops were missing for ldo1/ldo2 regulators which
> support bypass mode. Adding the bypass ops for ldo1 and ldo2.
> This helps consumers configure ldo1 and ldo2 in bypass mode or
> remove bypass mode if need be.
>
> Signed-off-by: Keerthy <[email protected]>
> Reported-by: Kishon Vijay Abraham I <[email protected]>
> ---
> drivers/regulator/palmas-regulator.c | 20 ++++++++++++++++++++
> 1 file changed, 20 insertions(+)
>
> diff --git a/drivers/regulator/palmas-regulator.c
> b/drivers/regulator/palmas-regulator.c
> index 8217613..776b59a 100644
> --- a/drivers/regulator/palmas-regulator.c
> +++ b/drivers/regulator/palmas-regulator.c
> @@ -389,6 +389,7 @@ static unsigned int palmas_smps_ramp_delay[4] = {0,
> 10000, 5000, 2500};
> #define SMPS10_BOOST_EN (1<<2)
> #define SMPS10_BYPASS_EN (1<<1)
> #define SMPS10_SWITCH_EN (1<<0)
> +#define TPS65917_LDO_1_2_BYPASS_EN BIT(6)
This also applies to TWL6035/37, TPS659038 LDO9 as well.
why not do it for all? considering the bit definition is the same as well?
>
> #define REGULATOR_SLAVE 0
>
> @@ -639,6 +640,19 @@ static struct regulator_ops tps65917_ops_ldo = {
> .set_voltage_time_sel = regulator_set_voltage_time_sel,
> };
>
> +static struct regulator_ops tps65917_ops_ldo_1_2 = {
> + .is_enabled = palmas_is_enabled_ldo,
> + .enable = regulator_enable_regmap,
> + .disable = regulator_disable_regmap,
> + .get_voltage_sel = regulator_get_voltage_sel_regmap,
> + .set_voltage_sel = regulator_set_voltage_sel_regmap,
> + .list_voltage = regulator_list_voltage_linear,
> + .map_voltage = regulator_map_voltage_linear,
> + .set_voltage_time_sel = regulator_set_voltage_time_sel,
> + .set_bypass = regulator_set_bypass_regmap,
> + .get_bypass = regulator_get_bypass_regmap,
> +};
> +
> static int palmas_regulator_config_external(struct palmas *palmas, int id,
> struct palmas_reg_init *reg_init)
> {
> @@ -1019,6 +1033,12 @@ static int tps65917_ldo_registration(struct
> palmas_pmic *pmic,
> * It is of the order of ~60mV/uS.
> */
> desc->ramp_delay = 2500;
> + if (id == TPS65917_REG_LDO1 ||
> + id == TPS65917_REG_LDO2) {
> + desc->ops = &tps65917_ops_ldo_1_2;
> + desc->bypass_reg = desc->enable_reg;
> + desc->bypass_mask = TPS65917_LDO_1_2_BYPASS_EN;
> + }
> } else {
> desc->n_voltages = 1;
> if (reg_init && reg_init->roof_floor)
>
--
Regards,
Nishanth Menon
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html