ARM: tegra: ardbeg: Add AMS external rail control
Kamal Kannan Balagopalan [Wed, 19 Jun 2013 04:47:18 +0000 (21:47 -0700)]
Add support to individually enable external rail control for all the
rails in the E1733 power tree

Bug 1284096

Change-Id: If904d83bbf16b14598399169df043012952bc7b2
Signed-off-by: Kamal Kannan Balagopalan <kbalagopalan@nvidia.com>
Reviewed-on: http://git-master/r/242088
Reviewed-by: Seema Khowala <seemaj@nvidia.com>

arch/arm/mach-tegra/board-ardbeg-power.c
arch/arm/mach-tegra/board-laguna-power.c
arch/arm/mach-tegra/board-pmu-defines.h

index 6657c56..3de61a3 100644 (file)
@@ -188,23 +188,23 @@ static struct regulator_consumer_supply as3722_sd6_supply[] = {
        REGULATOR_SUPPLY("vdd_gpu", NULL),
 };
 
-AMS_PDATA_INIT(sd0, NULL, 900000, 1400000, 1, 1, 1);
-AMS_PDATA_INIT(sd1, NULL, 900000, 1400000, 1, 1, 1);
-AMS_PDATA_INIT(sd2, NULL, 1350000, 1350000, 1, 1, 1);
-AMS_PDATA_INIT(sd4, NULL, 1050000, 1050000, 0, 1, 1);
-AMS_PDATA_INIT(sd5, NULL, 1800000, 1800000, 1, 1, 1);
-AMS_PDATA_INIT(sd6, NULL, 900000, 1400000, 1, 1, 1);
-AMS_PDATA_INIT(ldo0, AS3722_SUPPLY(sd2), 1050000, 1050000, 1, 1, 1);
-AMS_PDATA_INIT(ldo1, NULL, 1800000, 1800000, 0, 1, 1);
-AMS_PDATA_INIT(ldo2, AS3722_SUPPLY(sd5), 1200000, 1200000, 0, 0, 1);
-AMS_PDATA_INIT(ldo3, NULL, 1000000, 1000000, 1, 1, 1);
-AMS_PDATA_INIT(ldo4, NULL, 2700000, 2700000, 0, 0, 1);
-AMS_PDATA_INIT(ldo5, AS3722_SUPPLY(sd5), 1200000, 1200000, 0, 0, 1);
-AMS_PDATA_INIT(ldo6, NULL, 3300000, 3300000, 0, 0, 1);
-AMS_PDATA_INIT(ldo7, AS3722_SUPPLY(sd5), 1050000, 1050000, 0, 0, 1);
-AMS_PDATA_INIT(ldo9, NULL, 3300000, 3300000, 0, 0, 1);
-AMS_PDATA_INIT(ldo10, NULL, 2700000, 2700000, 0, 0, 1);
-AMS_PDATA_INIT(ldo11, NULL, 1800000, 1800000, 0, 0, 1);
+AMS_PDATA_INIT(sd0, NULL, 900000, 1400000, 1, 1, 1, 2);
+AMS_PDATA_INIT(sd1, NULL, 900000, 1400000, 1, 1, 1, 1);
+AMS_PDATA_INIT(sd2, NULL, 1350000, 1350000, 1, 1, 1, 0);
+AMS_PDATA_INIT(sd4, NULL, 1050000, 1050000, 0, 1, 1, 0);
+AMS_PDATA_INIT(sd5, NULL, 1800000, 1800000, 1, 1, 1, 0);
+AMS_PDATA_INIT(sd6, NULL, 900000, 1400000, 1, 1, 1, 0);
+AMS_PDATA_INIT(ldo0, AS3722_SUPPLY(sd2), 1050000, 1250000, 1, 1, 1, 1);
+AMS_PDATA_INIT(ldo1, NULL, 1800000, 1800000, 0, 1, 1, 0);
+AMS_PDATA_INIT(ldo2, AS3722_SUPPLY(sd5), 1200000, 1200000, 0, 0, 1, 0);
+AMS_PDATA_INIT(ldo3, NULL, 1000000, 1000000, 1, 1, 1, 0);
+AMS_PDATA_INIT(ldo4, NULL, 2700000, 2700000, 0, 0, 1, 0);
+AMS_PDATA_INIT(ldo5, AS3722_SUPPLY(sd5), 1200000, 1200000, 0, 0, 1, 0);
+AMS_PDATA_INIT(ldo6, NULL, 3300000, 3300000, 0, 0, 1, 0);
+AMS_PDATA_INIT(ldo7, AS3722_SUPPLY(sd5), 1050000, 1050000, 0, 0, 1, 0);
+AMS_PDATA_INIT(ldo9, NULL, 3300000, 3300000, 0, 0, 1, 0);
+AMS_PDATA_INIT(ldo10, NULL, 2700000, 2700000, 0, 0, 1, 0);
+AMS_PDATA_INIT(ldo11, NULL, 1800000, 1800000, 0, 0, 1, 0);
 
 /* config settings are OTP plus initial state
  * GPIOsignal_out at 20h not configurable through OTP and is initialized to
index d876329..897f823 100644 (file)
@@ -165,23 +165,23 @@ static struct regulator_consumer_supply as3722_sd6_supply[] = {
        REGULATOR_SUPPLY("vdd_gpu", NULL),
 };
 
-AMS_PDATA_INIT(sd0, NULL, 700000, 1350000, 1, 1, 1);
-AMS_PDATA_INIT(sd1, NULL, 700000, 1350000, 1, 1, 1);
-AMS_PDATA_INIT(sd2, NULL, 1350000, 1350000, 1, 1, 1);
-AMS_PDATA_INIT(sd4, NULL, 1050000, 1050000, 0, 1, 1);
-AMS_PDATA_INIT(sd5, NULL, 1800000, 1800000, 1, 1, 1);
-AMS_PDATA_INIT(sd6, NULL, 900000, 1400000, 1, 1, 1);
-AMS_PDATA_INIT(ldo0, AS3722_SUPPLY(sd2), 1050000, 1250000, 1, 1, 1);
-AMS_PDATA_INIT(ldo1, NULL, 1800000, 1800000, 0, 1, 1);
-AMS_PDATA_INIT(ldo2, AS3722_SUPPLY(sd5), 1200000, 1200000, 0, 1, 1);
-AMS_PDATA_INIT(ldo3, NULL, 1000000, 1000000, 1, 1, 1);
-AMS_PDATA_INIT(ldo4, NULL, 2700000, 2700000, 0, 0, 1);
-AMS_PDATA_INIT(ldo5, AS3722_SUPPLY(sd5), 1200000, 1200000, 0, 0, 1);
-AMS_PDATA_INIT(ldo6, NULL, 3300000, 3300000, 0, 0, 1);
-AMS_PDATA_INIT(ldo7, AS3722_SUPPLY(sd5), 1050000, 1050000, 0, 0, 1);
-AMS_PDATA_INIT(ldo9, NULL, 3300000, 3300000, 0, 1, 1);
-AMS_PDATA_INIT(ldo10, NULL, 2700000, 2700000, 0, 0, 1);
-AMS_PDATA_INIT(ldo11, NULL, 1800000, 1800000, 0, 0, 1);
+AMS_PDATA_INIT(sd0, NULL, 700000, 1350000, 1, 1, 1, 2);
+AMS_PDATA_INIT(sd1, NULL, 700000, 1350000, 1, 1, 1, 1);
+AMS_PDATA_INIT(sd2, NULL, 1350000, 1350000, 1, 1, 1, 0);
+AMS_PDATA_INIT(sd4, NULL, 1050000, 1050000, 0, 1, 1, 0);
+AMS_PDATA_INIT(sd5, NULL, 1800000, 1800000, 1, 1, 1, 0);
+AMS_PDATA_INIT(sd6, NULL, 900000, 1400000, 1, 1, 1, 0);
+AMS_PDATA_INIT(ldo0, AS3722_SUPPLY(sd2), 1050000, 1250000, 1, 1, 1, 1);
+AMS_PDATA_INIT(ldo1, NULL, 1800000, 1800000, 0, 1, 1, 0);
+AMS_PDATA_INIT(ldo2, AS3722_SUPPLY(sd5), 1200000, 1200000, 0, 1, 1, 0);
+AMS_PDATA_INIT(ldo3, NULL, 1000000, 1000000, 1, 1, 1, 0);
+AMS_PDATA_INIT(ldo4, NULL, 2700000, 2700000, 0, 0, 1, 0);
+AMS_PDATA_INIT(ldo5, AS3722_SUPPLY(sd5), 1200000, 1200000, 0, 0, 1, 0);
+AMS_PDATA_INIT(ldo6, NULL, 3300000, 3300000, 0, 0, 1, 0);
+AMS_PDATA_INIT(ldo7, AS3722_SUPPLY(sd5), 1050000, 1050000, 0, 0, 1, 0);
+AMS_PDATA_INIT(ldo9, NULL, 3300000, 3300000, 0, 1, 1, 0);
+AMS_PDATA_INIT(ldo10, NULL, 2700000, 2700000, 0, 0, 1, 0);
+AMS_PDATA_INIT(ldo11, NULL, 1800000, 1800000, 0, 0, 1, 0);
 
 /* config settings are OTP plus initial state
  * GPIOsignal_out at 20h not configurable through OTP and is initialized to
index ee9da70..7d50717 100644 (file)
@@ -48,7 +48,7 @@
 #define PALMAS_PINMUX(_pin, _mux, _pud, _od)                           \
 {                                                                      \
        .pin_name = PALMAS_PIN_NAME_##_pin,                             \
-       .pin_mux_option = PALMAS_PINMUX_##_mux,                 \
+       .pin_mux_option = PALMAS_PINMUX_##_mux,                         \
        .pin_pull_up_dn = PALMAS_PIN_CONFIG_##_pud,                     \
        .open_drain_state = PALMAS_PIN_CONFIG_OD_##_od,                 \
 }
@@ -86,7 +86,7 @@
 
 #define AS3722_SUPPLY(_name) "as3722_"#_name
 #define AMS_PDATA_INIT(_name, _supply_reg, _min_uV, _max_uV, _always_on,\
-                        _boot_on, _apply_uV)                           \
+                        _boot_on, _apply_uV, _ext_cntrl)               \
 static struct regulator_init_data as3722_##_name##_reg_idata =         \
 {                                                                      \
        .supply_regulator = _supply_reg,                                \
@@ -110,6 +110,7 @@ static struct regulator_init_data as3722_##_name##_reg_idata =              \
 static struct as3722_regulator_platform_data as3722_##_name##_reg_pdata =      \
 {                                                                      \
        .reg_init = &as3722_##_name##_reg_idata,                        \
+       .ext_control = _ext_cntrl                                       \
 }                                                                      \
 
 #endif