regulator: tps65910: set input_supply on desc unconditionally
Set the supply_name in the regulator descriptor unconditionally and make this parameter as required parameter in the device node for successfully registration of the regulator. Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
parent
8a165df7a9
commit
d2cfdb055d
|
@ -25,17 +25,12 @@ Required properties:
|
||||||
tps65911: vrtc, vio, vdd1, vdd3, vddctrl, ldo1, ldo2, ldo3, ldo4, ldo5,
|
tps65911: vrtc, vio, vdd1, vdd3, vddctrl, ldo1, ldo2, ldo3, ldo4, ldo5,
|
||||||
ldo6, ldo7, ldo8
|
ldo6, ldo7, ldo8
|
||||||
|
|
||||||
Optional properties:
|
|
||||||
- ti,vmbch-threshold: (tps65911) main battery charged threshold
|
|
||||||
comparator. (see VMBCH_VSEL in TPS65910 datasheet)
|
|
||||||
- ti,vmbch2-threshold: (tps65911) main battery discharged threshold
|
|
||||||
comparator. (see VMBCH_VSEL in TPS65910 datasheet)
|
|
||||||
- ti,en-gpio-sleep: enable sleep control for gpios
|
|
||||||
There should be 9 entries here, one for each gpio.
|
|
||||||
- xxx-supply: Input voltage supply regulator.
|
- xxx-supply: Input voltage supply regulator.
|
||||||
Missing of these properties will be assume as there is no supply regulator
|
These entries are require if regulators are enabled for a device. Missing of these
|
||||||
for that input pins and always powered on.
|
properties can cause the regulator registration fails.
|
||||||
The valid input supply properties are:
|
If some of input supply is powered through battery or always-on supply then
|
||||||
|
also it is require to have these parameters with proper node handle of always
|
||||||
|
on power supply.
|
||||||
tps65910:
|
tps65910:
|
||||||
vcc1-supply: VDD1 input.
|
vcc1-supply: VDD1 input.
|
||||||
vcc2-supply: VDD2 input.
|
vcc2-supply: VDD2 input.
|
||||||
|
@ -55,6 +50,16 @@ Optional properties:
|
||||||
vcc7-supply: VRTC input.
|
vcc7-supply: VRTC input.
|
||||||
vccio-supply: VIO input.
|
vccio-supply: VIO input.
|
||||||
|
|
||||||
|
Optional properties:
|
||||||
|
- ti,vmbch-threshold: (tps65911) main battery charged threshold
|
||||||
|
comparator. (see VMBCH_VSEL in TPS65910 datasheet)
|
||||||
|
- ti,vmbch2-threshold: (tps65911) main battery discharged threshold
|
||||||
|
comparator. (see VMBCH_VSEL in TPS65910 datasheet)
|
||||||
|
- ti,en-ck32k-xtal: enable external 32-kHz crystal oscillator (see CK32K_CTRL
|
||||||
|
in TPS6591X datasheet)
|
||||||
|
- ti,en-gpio-sleep: enable sleep control for gpios
|
||||||
|
There should be 9 entries here, one for each gpio.
|
||||||
|
|
||||||
Regulator Optional properties:
|
Regulator Optional properties:
|
||||||
- ti,regulator-ext-sleep-control: enable external sleep
|
- ti,regulator-ext-sleep-control: enable external sleep
|
||||||
control through external inputs [0 (not enabled), 1 (EN1), 2 (EN2) or 4(EN3)]
|
control through external inputs [0 (not enabled), 1 (EN1), 2 (EN2) or 4(EN3)]
|
||||||
|
@ -79,8 +84,14 @@ Example:
|
||||||
|
|
||||||
ti,en-gpio-sleep = <0 0 1 0 0 0 0 0 0>;
|
ti,en-gpio-sleep = <0 0 1 0 0 0 0 0 0>;
|
||||||
|
|
||||||
vcc7-supply = <®_parent>;
|
|
||||||
vcc1-supply = <®_parent>;
|
vcc1-supply = <®_parent>;
|
||||||
|
vcc2-supply = <&some_reg>;
|
||||||
|
vcc3-supply = <...>;
|
||||||
|
vcc4-supply = <...>;
|
||||||
|
vcc5-supply = <...>;
|
||||||
|
vcc6-supply = <...>;
|
||||||
|
vcc7-supply = <...>;
|
||||||
|
vccio-supply = <...>;
|
||||||
|
|
||||||
regulators {
|
regulators {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
|
|
|
@ -1001,9 +1001,6 @@ static struct tps65910_board *tps65910_parse_dt_reg_data(
|
||||||
*tps65910_reg_matches = matches;
|
*tps65910_reg_matches = matches;
|
||||||
|
|
||||||
for (idx = 0; idx < count; idx++) {
|
for (idx = 0; idx < count; idx++) {
|
||||||
struct tps_info *info = matches[idx].driver_data;
|
|
||||||
char in_supply[32]; /* 32 is max size of property name */
|
|
||||||
|
|
||||||
if (!matches[idx].init_data || !matches[idx].of_node)
|
if (!matches[idx].init_data || !matches[idx].of_node)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -1015,12 +1012,6 @@ static struct tps65910_board *tps65910_parse_dt_reg_data(
|
||||||
if (!ret)
|
if (!ret)
|
||||||
pmic_plat_data->regulator_ext_sleep_control[idx] = prop;
|
pmic_plat_data->regulator_ext_sleep_control[idx] = prop;
|
||||||
|
|
||||||
if (info->vin_name) {
|
|
||||||
snprintf(in_supply, 32, "%s-supply", info->vin_name);
|
|
||||||
if (of_find_property(np, in_supply, 0))
|
|
||||||
pmic_plat_data->input_supply[idx] =
|
|
||||||
info->vin_name;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return pmic_plat_data;
|
return pmic_plat_data;
|
||||||
|
@ -1123,7 +1114,7 @@ static __devinit int tps65910_probe(struct platform_device *pdev)
|
||||||
pmic->info[i] = info;
|
pmic->info[i] = info;
|
||||||
|
|
||||||
pmic->desc[i].name = info->name;
|
pmic->desc[i].name = info->name;
|
||||||
pmic->desc[i].supply_name = pmic_plat_data->input_supply[i];
|
pmic->desc[i].supply_name = info->vin_name;
|
||||||
pmic->desc[i].id = i;
|
pmic->desc[i].id = i;
|
||||||
pmic->desc[i].n_voltages = info->n_voltages;
|
pmic->desc[i].n_voltages = info->n_voltages;
|
||||||
pmic->desc[i].enable_time = info->enable_time_us;
|
pmic->desc[i].enable_time = info->enable_time_us;
|
||||||
|
|
|
@ -799,7 +799,6 @@ struct tps65910_sleep_keepon_data {
|
||||||
/**
|
/**
|
||||||
* struct tps65910_board
|
* struct tps65910_board
|
||||||
* Board platform data may be used to initialize regulators.
|
* Board platform data may be used to initialize regulators.
|
||||||
* @input_supply: Name of input supply regulator.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
struct tps65910_board {
|
struct tps65910_board {
|
||||||
|
@ -812,7 +811,6 @@ struct tps65910_board {
|
||||||
struct tps65910_sleep_keepon_data *slp_keepon;
|
struct tps65910_sleep_keepon_data *slp_keepon;
|
||||||
bool en_gpio_sleep[TPS6591X_MAX_NUM_GPIO];
|
bool en_gpio_sleep[TPS6591X_MAX_NUM_GPIO];
|
||||||
unsigned long regulator_ext_sleep_control[TPS65910_NUM_REGS];
|
unsigned long regulator_ext_sleep_control[TPS65910_NUM_REGS];
|
||||||
const char *input_supply[TPS65910_NUM_REGS];
|
|
||||||
struct regulator_init_data *tps65910_pmic_init_data[TPS65910_NUM_REGS];
|
struct regulator_init_data *tps65910_pmic_init_data[TPS65910_NUM_REGS];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue