regulator: tps65910: set input_supply on desc unconditionally
authorLaxman Dewangan <ldewangan@nvidia.com>
Tue, 17 Jul 2012 06:04:06 +0000 (11:34 +0530)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 17 Jul 2012 10:08:46 +0000 (11:08 +0100)
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>
Documentation/devicetree/bindings/mfd/tps65910.txt
drivers/regulator/tps65910-regulator.c
include/linux/mfd/tps65910.h

index 31be5a3d9f76f16a8a2503a82610cd8bcd6f6a0d..d2802d4717bcfe70c146c95a1bc430807feae514 100644 (file)
@@ -25,17 +25,12 @@ Required properties:
   tps65911: vrtc, vio, vdd1, vdd3, vddctrl, ldo1, ldo2, ldo3, ldo4, ldo5,
             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.
-  Missing of these properties will be assume as there is no supply regulator
-  for that input pins and always powered on.
-  The valid input supply properties are:
+  These entries are require if regulators are enabled for a device. Missing of these
+  properties can cause the regulator registration fails.
+  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:
        vcc1-supply: VDD1 input.
        vcc2-supply: VDD2 input.
@@ -55,6 +50,16 @@ Optional properties:
        vcc7-supply: VRTC 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:
 - ti,regulator-ext-sleep-control: enable external sleep
   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>;
 
-               vcc7-supply = <&reg_parent>;
                vcc1-supply = <&reg_parent>;
+               vcc2-supply = <&some_reg>;
+               vcc3-supply = <...>;
+               vcc4-supply = <...>;
+               vcc5-supply = <...>;
+               vcc6-supply = <...>;
+               vcc7-supply = <...>;
+               vccio-supply = <...>;
 
                regulators {
                        #address-cells = <1>;
index d2ba066c0957bef40cf6536b8c45c0ccca42014b..793adda560c3c3364c2053cdb152974fc2a2f02b 100644 (file)
@@ -1001,9 +1001,6 @@ static struct tps65910_board *tps65910_parse_dt_reg_data(
        *tps65910_reg_matches = matches;
 
        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)
                        continue;
 
@@ -1015,12 +1012,6 @@ static struct tps65910_board *tps65910_parse_dt_reg_data(
                if (!ret)
                        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;
@@ -1123,7 +1114,7 @@ static __devinit int tps65910_probe(struct platform_device *pdev)
                pmic->info[i] = info;
 
                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].n_voltages = info->n_voltages;
                pmic->desc[i].enable_time = info->enable_time_us;
index 1aca1fbbc138ac5c835c77a7b7ea419dac25840c..6c4c478e21a4f79d33577db36faba4e9f37f3cd3 100644 (file)
@@ -799,7 +799,6 @@ struct tps65910_sleep_keepon_data {
 /**
  * struct tps65910_board
  * Board platform data may be used to initialize regulators.
- * @input_supply: Name of input supply regulator.
  */
 
 struct tps65910_board {
@@ -812,7 +811,6 @@ struct tps65910_board {
        struct tps65910_sleep_keepon_data *slp_keepon;
        bool en_gpio_sleep[TPS6591X_MAX_NUM_GPIO];
        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];
 };