diff options
author | Laxman Dewangan <ldewangan@nvidia.com> | 2012-09-04 16:43:39 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-09-05 19:57:00 -0400 |
commit | 9394b80c35760d13492a3a895add2891bc64bf86 (patch) | |
tree | d602dfa31f1e59defe4dc40a7672b8a74bca877f /arch | |
parent | 4cbe5a555fa58a79b6ecbb6c531b8bab0650778d (diff) |
regulator: tps6586x: add support for SYS rail
Device have SYS rail which is always ON. It is system power bus. LDO5
and LDO_RTC get powered through this rail internally. Add support for
this rail and make the LDO5/LDO_RTC supply by it. Update document
accordingly.
[swarren: Instantiate the sys regulator from board-harmony-power.c to
avoid regression.]
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-tegra/board-harmony-power.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/arch/arm/mach-tegra/board-harmony-power.c b/arch/arm/mach-tegra/board-harmony-power.c index b7344beec102..94486e7e9dfd 100644 --- a/arch/arm/mach-tegra/board-harmony-power.c +++ b/arch/arm/mach-tegra/board-harmony-power.c | |||
@@ -67,6 +67,13 @@ static struct regulator_init_data ldo0_data = { | |||
67 | }, \ | 67 | }, \ |
68 | } | 68 | } |
69 | 69 | ||
70 | static struct regulator_init_data sys_data = { | ||
71 | .supply_regulator = "vdd_5v0", | ||
72 | .constraints = { | ||
73 | .name = "vdd_sys", | ||
74 | }, | ||
75 | }; | ||
76 | |||
70 | HARMONY_REGULATOR_INIT(sm0, "vdd_sm0", "vdd_sys", 725, 1500, 1); | 77 | HARMONY_REGULATOR_INIT(sm0, "vdd_sm0", "vdd_sys", 725, 1500, 1); |
71 | HARMONY_REGULATOR_INIT(sm1, "vdd_sm1", "vdd_sys", 725, 1500, 1); | 78 | HARMONY_REGULATOR_INIT(sm1, "vdd_sm1", "vdd_sys", 725, 1500, 1); |
72 | HARMONY_REGULATOR_INIT(sm2, "vdd_sm2", "vdd_sys", 3000, 4550, 1); | 79 | HARMONY_REGULATOR_INIT(sm2, "vdd_sm2", "vdd_sys", 3000, 4550, 1); |
@@ -74,7 +81,7 @@ HARMONY_REGULATOR_INIT(ldo1, "vdd_ldo1", "vdd_sm2", 725, 1500, 1); | |||
74 | HARMONY_REGULATOR_INIT(ldo2, "vdd_ldo2", "vdd_sm2", 725, 1500, 0); | 81 | HARMONY_REGULATOR_INIT(ldo2, "vdd_ldo2", "vdd_sm2", 725, 1500, 0); |
75 | HARMONY_REGULATOR_INIT(ldo3, "vdd_ldo3", "vdd_sm2", 1250, 3300, 1); | 82 | HARMONY_REGULATOR_INIT(ldo3, "vdd_ldo3", "vdd_sm2", 1250, 3300, 1); |
76 | HARMONY_REGULATOR_INIT(ldo4, "vdd_ldo4", "vdd_sm2", 1700, 2475, 1); | 83 | HARMONY_REGULATOR_INIT(ldo4, "vdd_ldo4", "vdd_sm2", 1700, 2475, 1); |
77 | HARMONY_REGULATOR_INIT(ldo5, "vdd_ldo5", NULL, 1250, 3300, 1); | 84 | HARMONY_REGULATOR_INIT(ldo5, "vdd_ldo5", "vdd_sys", 1250, 3300, 1); |
78 | HARMONY_REGULATOR_INIT(ldo6, "vdd_ldo6", "vdd_sm2", 1250, 3300, 0); | 85 | HARMONY_REGULATOR_INIT(ldo6, "vdd_ldo6", "vdd_sm2", 1250, 3300, 0); |
79 | HARMONY_REGULATOR_INIT(ldo7, "vdd_ldo7", "vdd_sm2", 1250, 3300, 0); | 86 | HARMONY_REGULATOR_INIT(ldo7, "vdd_ldo7", "vdd_sm2", 1250, 3300, 0); |
80 | HARMONY_REGULATOR_INIT(ldo8, "vdd_ldo8", "vdd_sm2", 1250, 3300, 0); | 87 | HARMONY_REGULATOR_INIT(ldo8, "vdd_ldo8", "vdd_sm2", 1250, 3300, 0); |
@@ -88,6 +95,7 @@ HARMONY_REGULATOR_INIT(ldo9, "vdd_ldo9", "vdd_sm2", 1250, 3300, 1); | |||
88 | } | 95 | } |
89 | 96 | ||
90 | static struct tps6586x_subdev_info tps_devs[] = { | 97 | static struct tps6586x_subdev_info tps_devs[] = { |
98 | TPS_REG(SYS, &sys_data), | ||
91 | TPS_REG(SM_0, &sm0_data), | 99 | TPS_REG(SM_0, &sm0_data), |
92 | TPS_REG(SM_1, &sm1_data), | 100 | TPS_REG(SM_1, &sm1_data), |
93 | TPS_REG(SM_2, &sm2_data), | 101 | TPS_REG(SM_2, &sm2_data), |
@@ -120,7 +128,7 @@ static struct i2c_board_info __initdata harmony_regulators[] = { | |||
120 | 128 | ||
121 | int __init harmony_regulator_init(void) | 129 | int __init harmony_regulator_init(void) |
122 | { | 130 | { |
123 | regulator_register_always_on(0, "vdd_sys", | 131 | regulator_register_always_on(0, "vdd_5v0", |
124 | NULL, 0, 5000000); | 132 | NULL, 0, 5000000); |
125 | 133 | ||
126 | if (machine_is_harmony()) { | 134 | if (machine_is_harmony()) { |