|
@@ -51,7 +51,7 @@ static struct regulator_init_data ldo0_data = {
|
|
|
.consumer_supplies = tps658621_ldo0_supply,
|
|
|
};
|
|
|
|
|
|
-#define HARMONY_REGULATOR_INIT(_id, _name, _supply, _minmv, _maxmv) \
|
|
|
+#define HARMONY_REGULATOR_INIT(_id, _name, _supply, _minmv, _maxmv, _on)\
|
|
|
static struct regulator_init_data _id##_data = { \
|
|
|
.supply_regulator = _supply, \
|
|
|
.constraints = { \
|
|
@@ -63,21 +63,22 @@ static struct regulator_init_data ldo0_data = {
|
|
|
.valid_ops_mask = (REGULATOR_CHANGE_MODE | \
|
|
|
REGULATOR_CHANGE_STATUS | \
|
|
|
REGULATOR_CHANGE_VOLTAGE), \
|
|
|
+ .always_on = _on, \
|
|
|
}, \
|
|
|
}
|
|
|
|
|
|
-HARMONY_REGULATOR_INIT(sm0, "vdd_sm0", "vdd_sys", 725, 1500);
|
|
|
-HARMONY_REGULATOR_INIT(sm1, "vdd_sm1", "vdd_sys", 725, 1500);
|
|
|
-HARMONY_REGULATOR_INIT(sm2, "vdd_sm2", "vdd_sys", 3000, 4550);
|
|
|
-HARMONY_REGULATOR_INIT(ldo1, "vdd_ldo1", "vdd_sm2", 725, 1500);
|
|
|
-HARMONY_REGULATOR_INIT(ldo2, "vdd_ldo2", "vdd_sm2", 725, 1500);
|
|
|
-HARMONY_REGULATOR_INIT(ldo3, "vdd_ldo3", "vdd_sm2", 1250, 3300);
|
|
|
-HARMONY_REGULATOR_INIT(ldo4, "vdd_ldo4", "vdd_sm2", 1700, 2475);
|
|
|
-HARMONY_REGULATOR_INIT(ldo5, "vdd_ldo5", NULL, 1250, 3300);
|
|
|
-HARMONY_REGULATOR_INIT(ldo6, "vdd_ldo6", "vdd_sm2", 1250, 3300);
|
|
|
-HARMONY_REGULATOR_INIT(ldo7, "vdd_ldo7", "vdd_sm2", 1250, 3300);
|
|
|
-HARMONY_REGULATOR_INIT(ldo8, "vdd_ldo8", "vdd_sm2", 1250, 3300);
|
|
|
-HARMONY_REGULATOR_INIT(ldo9, "vdd_ldo9", "vdd_sm2", 1250, 3300);
|
|
|
+HARMONY_REGULATOR_INIT(sm0, "vdd_sm0", "vdd_sys", 725, 1500, 1);
|
|
|
+HARMONY_REGULATOR_INIT(sm1, "vdd_sm1", "vdd_sys", 725, 1500, 1);
|
|
|
+HARMONY_REGULATOR_INIT(sm2, "vdd_sm2", "vdd_sys", 3000, 4550, 1);
|
|
|
+HARMONY_REGULATOR_INIT(ldo1, "vdd_ldo1", "vdd_sm2", 725, 1500, 1);
|
|
|
+HARMONY_REGULATOR_INIT(ldo2, "vdd_ldo2", "vdd_sm2", 725, 1500, 0);
|
|
|
+HARMONY_REGULATOR_INIT(ldo3, "vdd_ldo3", "vdd_sm2", 1250, 3300, 1);
|
|
|
+HARMONY_REGULATOR_INIT(ldo4, "vdd_ldo4", "vdd_sm2", 1700, 2475, 1);
|
|
|
+HARMONY_REGULATOR_INIT(ldo5, "vdd_ldo5", NULL, 1250, 3300, 1);
|
|
|
+HARMONY_REGULATOR_INIT(ldo6, "vdd_ldo6", "vdd_sm2", 1250, 3300, 0);
|
|
|
+HARMONY_REGULATOR_INIT(ldo7, "vdd_ldo7", "vdd_sm2", 1250, 3300, 0);
|
|
|
+HARMONY_REGULATOR_INIT(ldo8, "vdd_ldo8", "vdd_sm2", 1250, 3300, 0);
|
|
|
+HARMONY_REGULATOR_INIT(ldo9, "vdd_ldo9", "vdd_sm2", 1250, 3300, 1);
|
|
|
|
|
|
#define TPS_REG(_id, _data) \
|
|
|
{ \
|
|
@@ -119,9 +120,10 @@ static struct i2c_board_info __initdata harmony_regulators[] = {
|
|
|
|
|
|
int __init harmony_regulator_init(void)
|
|
|
{
|
|
|
+ regulator_register_always_on(0, "vdd_sys",
|
|
|
+ NULL, 0, 5000000);
|
|
|
+
|
|
|
if (machine_is_harmony()) {
|
|
|
- regulator_register_always_on(0, "vdd_sys",
|
|
|
- NULL, 0, 5000000);
|
|
|
i2c_register_board_info(3, harmony_regulators, 1);
|
|
|
} else { /* Harmony, booted using device tree */
|
|
|
struct device_node *np;
|