diff options
Diffstat (limited to 'arch/arm/mach-tegra/board-harmony-power.c')
-rw-r--r-- | arch/arm/mach-tegra/board-harmony-power.c | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/arch/arm/mach-tegra/board-harmony-power.c b/arch/arm/mach-tegra/board-harmony-power.c index 8fd387bf31f0..b7344beec102 100644 --- a/arch/arm/mach-tegra/board-harmony-power.c +++ b/arch/arm/mach-tegra/board-harmony-power.c | |||
@@ -51,7 +51,7 @@ static struct regulator_init_data ldo0_data = { | |||
51 | .consumer_supplies = tps658621_ldo0_supply, | 51 | .consumer_supplies = tps658621_ldo0_supply, |
52 | }; | 52 | }; |
53 | 53 | ||
54 | #define HARMONY_REGULATOR_INIT(_id, _name, _supply, _minmv, _maxmv) \ | 54 | #define HARMONY_REGULATOR_INIT(_id, _name, _supply, _minmv, _maxmv, _on)\ |
55 | static struct regulator_init_data _id##_data = { \ | 55 | static struct regulator_init_data _id##_data = { \ |
56 | .supply_regulator = _supply, \ | 56 | .supply_regulator = _supply, \ |
57 | .constraints = { \ | 57 | .constraints = { \ |
@@ -63,21 +63,22 @@ static struct regulator_init_data ldo0_data = { | |||
63 | .valid_ops_mask = (REGULATOR_CHANGE_MODE | \ | 63 | .valid_ops_mask = (REGULATOR_CHANGE_MODE | \ |
64 | REGULATOR_CHANGE_STATUS | \ | 64 | REGULATOR_CHANGE_STATUS | \ |
65 | REGULATOR_CHANGE_VOLTAGE), \ | 65 | REGULATOR_CHANGE_VOLTAGE), \ |
66 | .always_on = _on, \ | ||
66 | }, \ | 67 | }, \ |
67 | } | 68 | } |
68 | 69 | ||
69 | HARMONY_REGULATOR_INIT(sm0, "vdd_sm0", "vdd_sys", 725, 1500); | 70 | HARMONY_REGULATOR_INIT(sm0, "vdd_sm0", "vdd_sys", 725, 1500, 1); |
70 | HARMONY_REGULATOR_INIT(sm1, "vdd_sm1", "vdd_sys", 725, 1500); | 71 | HARMONY_REGULATOR_INIT(sm1, "vdd_sm1", "vdd_sys", 725, 1500, 1); |
71 | HARMONY_REGULATOR_INIT(sm2, "vdd_sm2", "vdd_sys", 3000, 4550); | 72 | HARMONY_REGULATOR_INIT(sm2, "vdd_sm2", "vdd_sys", 3000, 4550, 1); |
72 | HARMONY_REGULATOR_INIT(ldo1, "vdd_ldo1", "vdd_sm2", 725, 1500); | 73 | HARMONY_REGULATOR_INIT(ldo1, "vdd_ldo1", "vdd_sm2", 725, 1500, 1); |
73 | HARMONY_REGULATOR_INIT(ldo2, "vdd_ldo2", "vdd_sm2", 725, 1500); | 74 | HARMONY_REGULATOR_INIT(ldo2, "vdd_ldo2", "vdd_sm2", 725, 1500, 0); |
74 | HARMONY_REGULATOR_INIT(ldo3, "vdd_ldo3", "vdd_sm2", 1250, 3300); | 75 | HARMONY_REGULATOR_INIT(ldo3, "vdd_ldo3", "vdd_sm2", 1250, 3300, 1); |
75 | HARMONY_REGULATOR_INIT(ldo4, "vdd_ldo4", "vdd_sm2", 1700, 2475); | 76 | HARMONY_REGULATOR_INIT(ldo4, "vdd_ldo4", "vdd_sm2", 1700, 2475, 1); |
76 | HARMONY_REGULATOR_INIT(ldo5, "vdd_ldo5", NULL, 1250, 3300); | 77 | HARMONY_REGULATOR_INIT(ldo5, "vdd_ldo5", NULL, 1250, 3300, 1); |
77 | HARMONY_REGULATOR_INIT(ldo6, "vdd_ldo6", "vdd_sm2", 1250, 3300); | 78 | HARMONY_REGULATOR_INIT(ldo6, "vdd_ldo6", "vdd_sm2", 1250, 3300, 0); |
78 | HARMONY_REGULATOR_INIT(ldo7, "vdd_ldo7", "vdd_sm2", 1250, 3300); | 79 | HARMONY_REGULATOR_INIT(ldo7, "vdd_ldo7", "vdd_sm2", 1250, 3300, 0); |
79 | HARMONY_REGULATOR_INIT(ldo8, "vdd_ldo8", "vdd_sm2", 1250, 3300); | 80 | HARMONY_REGULATOR_INIT(ldo8, "vdd_ldo8", "vdd_sm2", 1250, 3300, 0); |
80 | HARMONY_REGULATOR_INIT(ldo9, "vdd_ldo9", "vdd_sm2", 1250, 3300); | 81 | HARMONY_REGULATOR_INIT(ldo9, "vdd_ldo9", "vdd_sm2", 1250, 3300, 1); |
81 | 82 | ||
82 | #define TPS_REG(_id, _data) \ | 83 | #define TPS_REG(_id, _data) \ |
83 | { \ | 84 | { \ |
@@ -119,9 +120,10 @@ static struct i2c_board_info __initdata harmony_regulators[] = { | |||
119 | 120 | ||
120 | int __init harmony_regulator_init(void) | 121 | int __init harmony_regulator_init(void) |
121 | { | 122 | { |
123 | regulator_register_always_on(0, "vdd_sys", | ||
124 | NULL, 0, 5000000); | ||
125 | |||
122 | if (machine_is_harmony()) { | 126 | if (machine_is_harmony()) { |
123 | regulator_register_always_on(0, "vdd_sys", | ||
124 | NULL, 0, 5000000); | ||
125 | i2c_register_board_info(3, harmony_regulators, 1); | 127 | i2c_register_board_info(3, harmony_regulators, 1); |
126 | } else { /* Harmony, booted using device tree */ | 128 | } else { /* Harmony, booted using device tree */ |
127 | struct device_node *np; | 129 | struct device_node *np; |