diff options
author | Stephen Rothwell <sfr@canb.auug.org.au> | 2015-05-15 13:20:41 +1000 |
---|---|---|
committer | Stephen Rothwell <sfr@canb.auug.org.au> | 2015-05-15 13:20:41 +1000 |
commit | 11bbcba6e8bde773b6f1f834dc7c0f9bff48cdf1 (patch) | |
tree | 73c4bcb2dd51d027cb7f13d096981ca770ac74f8 | |
parent | d7db7fc64b1f92100f49744ab8781686cdc57f4d (diff) | |
parent | 6e8d612d6f2fc90ab7f894fb6fbf44f1a2442381 (diff) |
Merge remote-tracking branch 'regulator/for-next'
-rw-r--r-- | Documentation/devicetree/bindings/regulator/regulator.txt | 2 | ||||
-rw-r--r-- | drivers/regulator/88pm8607.c | 2 | ||||
-rw-r--r-- | drivers/regulator/Kconfig | 2 | ||||
-rw-r--r-- | drivers/regulator/arizona-ldo1.c | 15 | ||||
-rw-r--r-- | drivers/regulator/helpers.c | 2 | ||||
-rw-r--r-- | drivers/regulator/max14577.c | 128 | ||||
-rw-r--r-- | drivers/regulator/max77686.c | 2 | ||||
-rw-r--r-- | drivers/regulator/max77693.c | 17 | ||||
-rw-r--r-- | drivers/regulator/max77843.c | 68 | ||||
-rw-r--r-- | drivers/regulator/max8973-regulator.c | 6 | ||||
-rw-r--r-- | drivers/regulator/of_regulator.c | 2 | ||||
-rw-r--r-- | drivers/regulator/s2mps11.c | 10 |
12 files changed, 102 insertions, 154 deletions
diff --git a/Documentation/devicetree/bindings/regulator/regulator.txt b/Documentation/devicetree/bindings/regulator/regulator.txt index abb26b58c83e..606391bea89b 100644 --- a/Documentation/devicetree/bindings/regulator/regulator.txt +++ b/Documentation/devicetree/bindings/regulator/regulator.txt @@ -13,7 +13,7 @@ Optional properties: - <name>-supply: phandle to the parent supply/regulator node - regulator-ramp-delay: ramp delay for regulator(in uV/uS) For hardware which supports disabling ramp rate, it should be explicitly - intialised to zero (regulator-ramp-delay = <0>) for disabling ramp delay. + initialised to zero (regulator-ramp-delay = <0>) for disabling ramp delay. - regulator-enable-ramp-delay: The time taken, in microseconds, for the supply rail to reach the target voltage, plus/minus whatever tolerance the board design requires. This property describes the total system ramp time diff --git a/drivers/regulator/88pm8607.c b/drivers/regulator/88pm8607.c index c3d15427adc7..b100a63ff3b3 100644 --- a/drivers/regulator/88pm8607.c +++ b/drivers/regulator/88pm8607.c @@ -404,7 +404,7 @@ static int pm8607_regulator_probe(struct platform_device *pdev) return 0; } -static struct platform_device_id pm8607_regulator_driver_ids[] = { +static const struct platform_device_id pm8607_regulator_driver_ids[] = { { .name = "88pm860x-regulator", .driver_data = 0, diff --git a/drivers/regulator/Kconfig b/drivers/regulator/Kconfig index a6f116aa5235..91aa2302b74a 100644 --- a/drivers/regulator/Kconfig +++ b/drivers/regulator/Kconfig @@ -233,7 +233,7 @@ config REGULATOR_FAN53555 config REGULATOR_GPIO tristate "GPIO regulator support" - depends on GPIOLIB + depends on GPIOLIB || COMPILE_TEST help This driver provides support for regulators that can be controlled via gpios. diff --git a/drivers/regulator/arizona-ldo1.c b/drivers/regulator/arizona-ldo1.c index a1d07d347c20..90941632efa9 100644 --- a/drivers/regulator/arizona-ldo1.c +++ b/drivers/regulator/arizona-ldo1.c @@ -178,6 +178,16 @@ static const struct regulator_init_data arizona_ldo1_default = { .num_consumer_supplies = 1, }; +static const struct regulator_init_data arizona_ldo1_wm5110 = { + .constraints = { + .min_uV = 1175000, + .max_uV = 1200000, + .valid_ops_mask = REGULATOR_CHANGE_STATUS | + REGULATOR_CHANGE_VOLTAGE, + }, + .num_consumer_supplies = 1, +}; + static int arizona_ldo1_of_get_pdata(struct arizona *arizona, struct regulator_config *config, const struct regulator_desc *desc) @@ -243,6 +253,11 @@ static int arizona_ldo1_probe(struct platform_device *pdev) desc = &arizona_ldo1_hc; ldo1->init_data = arizona_ldo1_dvfs; break; + case WM5110: + case WM8280: + desc = &arizona_ldo1; + ldo1->init_data = arizona_ldo1_wm5110; + break; default: desc = &arizona_ldo1; ldo1->init_data = arizona_ldo1_default; diff --git a/drivers/regulator/helpers.c b/drivers/regulator/helpers.c index cbc39096c78d..3bbb32680a94 100644 --- a/drivers/regulator/helpers.c +++ b/drivers/regulator/helpers.c @@ -275,7 +275,7 @@ int regulator_map_voltage_linear(struct regulator_dev *rdev, EXPORT_SYMBOL_GPL(regulator_map_voltage_linear); /** - * regulator_map_voltage_linear - map_voltage() for multiple linear ranges + * regulator_map_voltage_linear_range - map_voltage() for multiple linear ranges * * @rdev: Regulator to operate on * @min_uV: Lower bound for voltage diff --git a/drivers/regulator/max14577.c b/drivers/regulator/max14577.c index b3678d289619..b2daa6641417 100644 --- a/drivers/regulator/max14577.c +++ b/drivers/regulator/max14577.c @@ -100,31 +100,34 @@ static struct regulator_ops max14577_charger_ops = { .set_current_limit = max14577_reg_set_current_limit, }; +#define MAX14577_SAFEOUT_REG { \ + .name = "SAFEOUT", \ + .of_match = of_match_ptr("SAFEOUT"), \ + .regulators_node = of_match_ptr("regulators"), \ + .id = MAX14577_SAFEOUT, \ + .ops = &max14577_safeout_ops, \ + .type = REGULATOR_VOLTAGE, \ + .owner = THIS_MODULE, \ + .n_voltages = 1, \ + .min_uV = MAX14577_REGULATOR_SAFEOUT_VOLTAGE, \ + .enable_reg = MAX14577_REG_CONTROL2, \ + .enable_mask = CTRL2_SFOUTORD_MASK, \ +} +#define MAX14577_CHARGER_REG { \ + .name = "CHARGER", \ + .of_match = of_match_ptr("CHARGER"), \ + .regulators_node = of_match_ptr("regulators"), \ + .id = MAX14577_CHARGER, \ + .ops = &max14577_charger_ops, \ + .type = REGULATOR_CURRENT, \ + .owner = THIS_MODULE, \ + .enable_reg = MAX14577_CHG_REG_CHG_CTRL2, \ + .enable_mask = CHGCTRL2_MBCHOSTEN_MASK, \ +} + static const struct regulator_desc max14577_supported_regulators[] = { - [MAX14577_SAFEOUT] = { - .name = "SAFEOUT", - .of_match = of_match_ptr("SAFEOUT"), - .regulators_node = of_match_ptr("regulators"), - .id = MAX14577_SAFEOUT, - .ops = &max14577_safeout_ops, - .type = REGULATOR_VOLTAGE, - .owner = THIS_MODULE, - .n_voltages = 1, - .min_uV = MAX14577_REGULATOR_SAFEOUT_VOLTAGE, - .enable_reg = MAX14577_REG_CONTROL2, - .enable_mask = CTRL2_SFOUTORD_MASK, - }, - [MAX14577_CHARGER] = { - .name = "CHARGER", - .of_match = of_match_ptr("CHARGER"), - .regulators_node = of_match_ptr("regulators"), - .id = MAX14577_CHARGER, - .ops = &max14577_charger_ops, - .type = REGULATOR_CURRENT, - .owner = THIS_MODULE, - .enable_reg = MAX14577_CHG_REG_CHG_CTRL2, - .enable_mask = CHGCTRL2_MBCHOSTEN_MASK, - }, + [MAX14577_SAFEOUT] = MAX14577_SAFEOUT_REG, + [MAX14577_CHARGER] = MAX14577_CHARGER_REG, }; static struct regulator_ops max77836_ldo_ops = { @@ -138,63 +141,28 @@ static struct regulator_ops max77836_ldo_ops = { /* TODO: add .set_suspend_mode */ }; +#define MAX77836_LDO_REG(num) { \ + .name = "LDO" # num, \ + .of_match = of_match_ptr("LDO" # num), \ + .regulators_node = of_match_ptr("regulators"), \ + .id = MAX77836_LDO ## num, \ + .ops = &max77836_ldo_ops, \ + .type = REGULATOR_VOLTAGE, \ + .owner = THIS_MODULE, \ + .n_voltages = MAX77836_REGULATOR_LDO_VOLTAGE_STEPS_NUM, \ + .min_uV = MAX77836_REGULATOR_LDO_VOLTAGE_MIN, \ + .uV_step = MAX77836_REGULATOR_LDO_VOLTAGE_STEP, \ + .enable_reg = MAX77836_LDO_REG_CNFG1_LDO ## num, \ + .enable_mask = MAX77836_CNFG1_LDO_PWRMD_MASK, \ + .vsel_reg = MAX77836_LDO_REG_CNFG1_LDO ## num, \ + .vsel_mask = MAX77836_CNFG1_LDO_TV_MASK, \ +} + static const struct regulator_desc max77836_supported_regulators[] = { - [MAX14577_SAFEOUT] = { - .name = "SAFEOUT", - .of_match = of_match_ptr("SAFEOUT"), - .regulators_node = of_match_ptr("regulators"), - .id = MAX14577_SAFEOUT, - .ops = &max14577_safeout_ops, - .type = REGULATOR_VOLTAGE, - .owner = THIS_MODULE, - .n_voltages = 1, - .min_uV = MAX14577_REGULATOR_SAFEOUT_VOLTAGE, - .enable_reg = MAX14577_REG_CONTROL2, - .enable_mask = CTRL2_SFOUTORD_MASK, - }, - [MAX14577_CHARGER] = { - .name = "CHARGER", - .of_match = of_match_ptr("CHARGER"), - .regulators_node = of_match_ptr("regulators"), - .id = MAX14577_CHARGER, - .ops = &max14577_charger_ops, - .type = REGULATOR_CURRENT, - .owner = THIS_MODULE, - .enable_reg = MAX14577_CHG_REG_CHG_CTRL2, - .enable_mask = CHGCTRL2_MBCHOSTEN_MASK, - }, - [MAX77836_LDO1] = { - .name = "LDO1", - .of_match = of_match_ptr("LDO1"), - .regulators_node = of_match_ptr("regulators"), - .id = MAX77836_LDO1, - .ops = &max77836_ldo_ops, - .type = REGULATOR_VOLTAGE, - .owner = THIS_MODULE, - .n_voltages = MAX77836_REGULATOR_LDO_VOLTAGE_STEPS_NUM, - .min_uV = MAX77836_REGULATOR_LDO_VOLTAGE_MIN, - .uV_step = MAX77836_REGULATOR_LDO_VOLTAGE_STEP, - .enable_reg = MAX77836_LDO_REG_CNFG1_LDO1, - .enable_mask = MAX77836_CNFG1_LDO_PWRMD_MASK, - .vsel_reg = MAX77836_LDO_REG_CNFG1_LDO1, - .vsel_mask = MAX77836_CNFG1_LDO_TV_MASK, - }, - [MAX77836_LDO2] = { - .name = "LDO2", - .of_match = of_match_ptr("LDO2"), - .regulators_node = of_match_ptr("regulators"), - .id = MAX77836_LDO2, - .ops = &max77836_ldo_ops, - .type = REGULATOR_VOLTAGE, - .owner = THIS_MODULE, - .n_voltages = MAX77836_REGULATOR_LDO_VOLTAGE_STEPS_NUM, - .min_uV = MAX77836_REGULATOR_LDO_VOLTAGE_MIN, - .uV_step = MAX77836_REGULATOR_LDO_VOLTAGE_STEP, - .enable_reg = MAX77836_LDO_REG_CNFG1_LDO2, - .enable_mask = MAX77836_CNFG1_LDO_PWRMD_MASK, - .vsel_reg = MAX77836_LDO_REG_CNFG1_LDO2, - .vsel_mask = MAX77836_CNFG1_LDO_TV_MASK, - }, + [MAX14577_SAFEOUT] = MAX14577_SAFEOUT_REG, + [MAX14577_CHARGER] = MAX14577_CHARGER_REG, + [MAX77836_LDO1] = MAX77836_LDO_REG(1), + [MAX77836_LDO2] = MAX77836_LDO_REG(2), }; #ifdef CONFIG_OF diff --git a/drivers/regulator/max77686.c b/drivers/regulator/max77686.c index 15fb1416bfbd..23b7c06d30ba 100644 --- a/drivers/regulator/max77686.c +++ b/drivers/regulator/max77686.c @@ -2,7 +2,7 @@ * max77686.c - Regulator driver for the Maxim 77686 * * Copyright (C) 2012 Samsung Electronics - * Chiwoong Byun <woong.byun@smasung.com> + * Chiwoong Byun <woong.byun@samsung.com> * Jonghwa Lee <jonghwa3.lee@samsung.com> * * This program is free software; you can redistribute it and/or modify diff --git a/drivers/regulator/max77693.c b/drivers/regulator/max77693.c index 9665a488e2f1..38722c8311a5 100644 --- a/drivers/regulator/max77693.c +++ b/drivers/regulator/max77693.c @@ -35,20 +35,6 @@ #define CHGIN_ILIM_STEP_20mA 20000 -/* CHARGER regulator ops */ -/* CHARGER regulator uses two bits for enabling */ -static int max77693_chg_is_enabled(struct regulator_dev *rdev) -{ - int ret; - unsigned int val; - - ret = regmap_read(rdev->regmap, rdev->desc->enable_reg, &val); - if (ret) - return ret; - - return (val & rdev->desc->enable_mask) == rdev->desc->enable_mask; -} - /* * CHARGER regulator - Min : 20mA, Max : 2580mA, step : 20mA * 0x00, 0x01, 0x2, 0x03 = 60 mA @@ -118,7 +104,7 @@ static struct regulator_ops max77693_safeout_ops = { }; static struct regulator_ops max77693_charger_ops = { - .is_enabled = max77693_chg_is_enabled, + .is_enabled = regulator_is_enabled_regmap, .enable = regulator_enable_regmap, .disable = regulator_disable_regmap, .get_current_limit = max77693_chg_get_current_limit, @@ -155,6 +141,7 @@ static const struct regulator_desc regulators[] = { .enable_reg = MAX77693_CHG_REG_CHG_CNFG_00, .enable_mask = CHG_CNFG_00_CHG_MASK | CHG_CNFG_00_BUCK_MASK, + .enable_val = CHG_CNFG_00_CHG_MASK | CHG_CNFG_00_BUCK_MASK, }, }; diff --git a/drivers/regulator/max77843.c b/drivers/regulator/max77843.c index c132ef527cdd..f4fd0d3cfa6e 100644 --- a/drivers/regulator/max77843.c +++ b/drivers/regulator/max77843.c @@ -33,21 +33,6 @@ static const unsigned int max77843_safeout_voltage_table[] = { 3300000, }; -static int max77843_reg_is_enabled(struct regulator_dev *rdev) -{ - struct regmap *regmap = rdev->regmap; - int ret; - unsigned int reg; - - ret = regmap_read(regmap, rdev->desc->enable_reg, ®); - if (ret) { - dev_err(&rdev->dev, "Fialed to read charger register\n"); - return ret; - } - - return (reg & rdev->desc->enable_mask) == rdev->desc->enable_mask; -} - static int max77843_reg_get_current_limit(struct regulator_dev *rdev) { struct regmap *regmap = rdev->regmap; @@ -96,7 +81,7 @@ static int max77843_reg_set_current_limit(struct regulator_dev *rdev, } static struct regulator_ops max77843_charger_ops = { - .is_enabled = max77843_reg_is_enabled, + .is_enabled = regulator_is_enabled_regmap, .enable = regulator_enable_regmap, .disable = regulator_disable_regmap, .get_current_limit = max77843_reg_get_current_limit, @@ -112,37 +97,25 @@ static struct regulator_ops max77843_regulator_ops = { .set_voltage_sel = regulator_set_voltage_sel_regmap, }; +#define MAX77843_SAFEOUT(num) { \ + .name = "SAFEOUT" # num, \ + .id = MAX77843_SAFEOUT ## num, \ + .ops = &max77843_regulator_ops, \ + .of_match = of_match_ptr("SAFEOUT" # num), \ + .regulators_node = of_match_ptr("regulators"), \ + .type = REGULATOR_VOLTAGE, \ + .owner = THIS_MODULE, \ + .n_voltages = ARRAY_SIZE(max77843_safeout_voltage_table), \ + .volt_table = max77843_safeout_voltage_table, \ + .enable_reg = MAX77843_SYS_REG_SAFEOUTCTRL, \ + .enable_mask = MAX77843_REG_SAFEOUTCTRL_ENSAFEOUT ## num, \ + .vsel_reg = MAX77843_SYS_REG_SAFEOUTCTRL, \ + .vsel_mask = MAX77843_REG_SAFEOUTCTRL_SAFEOUT ## num ## _MASK, \ +} + static const struct regulator_desc max77843_supported_regulators[] = { - [MAX77843_SAFEOUT1] = { - .name = "SAFEOUT1", - .id = MAX77843_SAFEOUT1, - .ops = &max77843_regulator_ops, - .of_match = of_match_ptr("SAFEOUT1"), - .regulators_node = of_match_ptr("regulators"), - .type = REGULATOR_VOLTAGE, - .owner = THIS_MODULE, - .n_voltages = ARRAY_SIZE(max77843_safeout_voltage_table), - .volt_table = max77843_safeout_voltage_table, - .enable_reg = MAX77843_SYS_REG_SAFEOUTCTRL, - .enable_mask = MAX77843_REG_SAFEOUTCTRL_ENSAFEOUT1, - .vsel_reg = MAX77843_SYS_REG_SAFEOUTCTRL, - .vsel_mask = MAX77843_REG_SAFEOUTCTRL_SAFEOUT1_MASK, - }, - [MAX77843_SAFEOUT2] = { - .name = "SAFEOUT2", - .id = MAX77843_SAFEOUT2, - .ops = &max77843_regulator_ops, - .of_match = of_match_ptr("SAFEOUT2"), - .regulators_node = of_match_ptr("regulators"), - .type = REGULATOR_VOLTAGE, - .owner = THIS_MODULE, - .n_voltages = ARRAY_SIZE(max77843_safeout_voltage_table), - .volt_table = max77843_safeout_voltage_table, - .enable_reg = MAX77843_SYS_REG_SAFEOUTCTRL, - .enable_mask = MAX77843_REG_SAFEOUTCTRL_ENSAFEOUT2, - .vsel_reg = MAX77843_SYS_REG_SAFEOUTCTRL, - .vsel_mask = MAX77843_REG_SAFEOUTCTRL_SAFEOUT2_MASK, - }, + [MAX77843_SAFEOUT1] = MAX77843_SAFEOUT(1), + [MAX77843_SAFEOUT2] = MAX77843_SAFEOUT(2), [MAX77843_CHARGER] = { .name = "CHARGER", .id = MAX77843_CHARGER, @@ -152,7 +125,8 @@ static const struct regulator_desc max77843_supported_regulators[] = { .type = REGULATOR_CURRENT, .owner = THIS_MODULE, .enable_reg = MAX77843_CHG_REG_CHG_CNFG_00, - .enable_mask = MAX77843_CHG_MASK, + .enable_mask = MAX77843_CHG_MASK | MAX77843_CHG_BUCK_MASK, + .enable_val = MAX77843_CHG_MASK | MAX77843_CHG_BUCK_MASK, }, }; diff --git a/drivers/regulator/max8973-regulator.c b/drivers/regulator/max8973-regulator.c index c3d55c2db593..be9a463d7354 100644 --- a/drivers/regulator/max8973-regulator.c +++ b/drivers/regulator/max8973-regulator.c @@ -266,8 +266,12 @@ static int max8973_init_dcdc(struct max8973_chip *max, if (pdata->control_flags & MAX8973_CONTROL_OUTPUT_ACTIVE_DISCH_ENABLE) control1 |= MAX8973_AD_ENABLE; - if (pdata->control_flags & MAX8973_CONTROL_BIAS_ENABLE) + if (pdata->control_flags & MAX8973_CONTROL_BIAS_ENABLE) { control1 |= MAX8973_BIAS_ENABLE; + max->desc.enable_time = 20; + } else { + max->desc.enable_time = 240; + } if (pdata->control_flags & MAX8973_CONTROL_FREQ_SHIFT_9PER_ENABLE) control1 |= MAX8973_FREQSHIFT_9PER; diff --git a/drivers/regulator/of_regulator.c b/drivers/regulator/of_regulator.c index 24e812c48d93..e952439e0d83 100644 --- a/drivers/regulator/of_regulator.c +++ b/drivers/regulator/of_regulator.c @@ -108,7 +108,7 @@ static void of_get_regulation_constraints(struct device_node *np, case PM_SUSPEND_STANDBY: default: continue; - }; + } suspend_np = of_get_child_by_name(np, regulator_states[i]); if (!suspend_np || !suspend_state) diff --git a/drivers/regulator/s2mps11.c b/drivers/regulator/s2mps11.c index ff828117798f..326ffb553371 100644 --- a/drivers/regulator/s2mps11.c +++ b/drivers/regulator/s2mps11.c @@ -515,7 +515,7 @@ static int s2mps14_regulator_enable(struct regulator_dev *rdev) break; default: return -EINVAL; - }; + } return regmap_update_bits(rdev->regmap, rdev->desc->enable_reg, rdev->desc->enable_mask, val); @@ -538,7 +538,7 @@ static int s2mps14_regulator_set_suspend_disable(struct regulator_dev *rdev) default: state = S2MPS14_ENABLE_SUSPEND; break; - }; + } break; case S2MPU02: switch (rdev_id) { @@ -552,11 +552,11 @@ static int s2mps14_regulator_set_suspend_disable(struct regulator_dev *rdev) default: state = S2MPU02_ENABLE_SUSPEND; break; - }; + } break; default: return -EINVAL; - }; + } ret = regmap_read(rdev->regmap, rdev->desc->enable_reg, &val); if (ret < 0) @@ -977,7 +977,7 @@ static int s2mps11_pmic_probe(struct platform_device *pdev) dev_err(&pdev->dev, "Invalid device type: %u\n", s2mps11->dev_type); return -EINVAL; - }; + } s2mps11->ext_control_gpio = devm_kmalloc(&pdev->dev, sizeof(*s2mps11->ext_control_gpio) * s2mps11->rdev_num, |