diff options
Diffstat (limited to 'arch/arm/mach-exynos/midas-power.c')
-rw-r--r-- | arch/arm/mach-exynos/midas-power.c | 82 |
1 files changed, 66 insertions, 16 deletions
diff --git a/arch/arm/mach-exynos/midas-power.c b/arch/arm/mach-exynos/midas-power.c index 78318f2..46a02b6 100644 --- a/arch/arm/mach-exynos/midas-power.c +++ b/arch/arm/mach-exynos/midas-power.c @@ -24,7 +24,9 @@ #include <plat/gpio-cfg.h> #include <mach/gpio-midas.h> #include <mach/irqs.h> - +#if defined(CONFIG_MACH_SLP_PQ) +#include <asm/mach-types.h> +#endif #include <linux/mfd/max8997.h> #include <linux/mfd/max77686.h> #include <linux/mfd/max77693.h> @@ -281,6 +283,9 @@ static struct regulator_consumer_supply ldo3_supply[] = { REGULATOR_SUPPLY("DBVDD1", NULL), REGULATOR_SUPPLY("DBVDD2", NULL), REGULATOR_SUPPLY("DBVDD3", NULL), +#ifdef CONFIG_MACH_REDWOOD + REGULATOR_SUPPLY("VDDI", "s6d6aa1"), +#endif }; #else static struct regulator_consumer_supply ldo3_supply[] = {}; @@ -317,7 +322,8 @@ static struct regulator_consumer_supply ldo12_supply[] = { }; #if defined(CONFIG_MACH_C1_KOR_SKT) || defined(CONFIG_MACH_C1_KOR_KT) || \ - defined(CONFIG_MACH_C1_KOR_LGT) || defined(CONFIG_MACH_C1) + defined(CONFIG_MACH_C1_KOR_LGT) || defined(CONFIG_MACH_C1) || \ + defined(CONFIG_MACH_M0_DUOSCTC) || defined(CONFIG_MACH_M0_GRANDECTC) static struct regulator_consumer_supply ldo13_supply[] = { REGULATOR_SUPPLY("vusbhub_osc_1.8v", NULL), }; @@ -347,9 +353,11 @@ static struct regulator_consumer_supply ldo23_supply[] = { REGULATOR_SUPPLY("touch", NULL), }; -#if defined(CONFIG_MACH_C1) || defined(CONFIG_MACH_C1VZW) || \ - defined(CONFIG_MACH_M0) || defined(CONFIG_MACH_M3) || \ - defined(CONFIG_MACH_GC1) +#if defined(CONFIG_MACH_C1) || \ + defined(CONFIG_MACH_M3) || \ + defined(CONFIG_MACH_M0) || \ + defined(CONFIG_MACH_GC1) || defined(CONFIG_MACH_T0) ||\ + defined(CONFIG_MACH_SLP_T0_LTE) static struct regulator_consumer_supply ldo24_supply[] = { REGULATOR_SUPPLY("touch_1.8v", NULL), }; @@ -363,6 +371,9 @@ static struct regulator_consumer_supply ldo24_supply[] = { static struct regulator_consumer_supply ldo25_supply[] = { REGULATOR_SUPPLY("vlcd_3.3v", NULL), REGULATOR_SUPPLY("VCI", "s6e8aa0"), +#if defined(CONFIG_MACH_SLP_T0_LTE) + REGULATOR_SUPPLY("VCI", "ea8061"), +#endif }; static struct regulator_consumer_supply ldo26_supply[] = { @@ -392,6 +403,7 @@ static struct regulator_consumer_supply max77686_buck9 = static struct regulator_consumer_supply max77686_enp32khz[] = { REGULATOR_SUPPLY("lpo_in", "bcm47511"), + REGULATOR_SUPPLY("lpo_in", "bcm4752"), REGULATOR_SUPPLY("lpo", "bcm4334_bluetooth"), }; @@ -429,7 +441,8 @@ REGULATOR_INIT(ldo11, "VABB1_1.95V", 1950000, 1950000, 1, REGULATOR_INIT(ldo12, "VUOTG_3.0V", 3000000, 3000000, 1, REGULATOR_CHANGE_STATUS, 0); #if defined(CONFIG_MACH_C1_KOR_SKT) || defined(CONFIG_MACH_C1_KOR_KT) || \ - defined(CONFIG_MACH_C1_KOR_LGT) || defined(CONFIG_MACH_C1) + defined(CONFIG_MACH_C1_KOR_LGT) || defined(CONFIG_MACH_C1) || \ + defined(CONFIG_MACH_M0_DUOSCTC) || defined(CONFIG_MACH_M0_GRANDECTC) REGULATOR_INIT(ldo13, "VUSBHUB_OSC_1.8V", 1800000, 1800000, 0, REGULATOR_CHANGE_STATUS, 1); #endif @@ -445,9 +458,11 @@ REGULATOR_INIT(ldo21, "VTF_2.8V", 2800000, 2800000, 0, REGULATOR_CHANGE_STATUS, 1); REGULATOR_INIT(ldo23, "TSP_AVDD_3.3V", 3300000, 3300000, 0, REGULATOR_CHANGE_STATUS, 1); -#if defined(CONFIG_MACH_C1) || defined(CONFIG_MACH_C1VZW) || \ - defined(CONFIG_MACH_M0) || defined(CONFIG_MACH_M3) || \ - defined(CONFIG_MACH_GC1) +#if defined(CONFIG_MACH_C1) || \ + defined(CONFIG_MACH_M3) || \ + defined(CONFIG_MACH_M0) || \ + defined(CONFIG_MACH_GC1) || defined(CONFIG_MACH_T0) ||\ + defined(CONFIG_MACH_SLP_T0_LTE) REGULATOR_INIT(ldo24, "VDD_1.8V_TSP", 1800000, 1800000, 0, REGULATOR_CHANGE_STATUS, 1); #else @@ -477,6 +492,25 @@ static struct regulator_init_data ldo24_pq11_init_data = { .num_consumer_supplies = 1, .consumer_supplies = ldo24_supply, }; + +static struct regulator_init_data ldo25_redwood_init_data = { + .constraints = { + .name = "LED_A_2.8V", + .min_uV = 2800000, + .max_uV = 2800000, + .always_on = 0, + .boot_on = 0, + .apply_uV = 1, + .valid_ops_mask = REGULATOR_CHANGE_STATUS, + .state_mem = { + .enabled = 0, + .disabled = 1, + } + }, + .num_consumer_supplies = 1, + .consumer_supplies = ldo25_supply, +}; + #endif static struct regulator_init_data max77686_buck1_data = { @@ -587,7 +621,8 @@ static struct max77686_regulator_data max77686_regulators[] = { {MAX77686_LDO11, &ldo11_init_data,}, {MAX77686_LDO12, &ldo12_init_data,}, #if defined(CONFIG_MACH_C1_KOR_SKT) || defined(CONFIG_MACH_C1_KOR_KT) || \ - defined(CONFIG_MACH_C1_KOR_LGT) || defined(CONFIG_MACH_C1) + defined(CONFIG_MACH_C1_KOR_LGT) || defined(CONFIG_MACH_C1) || \ + defined(CONFIG_MACH_M0_DUOSCTC) || defined(CONFIG_MACH_M0_GRANDECTC) {MAX77686_LDO13, &ldo13_init_data,}, #endif {MAX77686_LDO14, &ldo14_init_data,}, @@ -609,7 +644,8 @@ struct max77686_opmode_data max77686_opmode_data[MAX77686_REG_MAX] = { [MAX77686_LDO11] = {MAX77686_LDO11, MAX77686_OPMODE_STANDBY}, [MAX77686_LDO12] = {MAX77686_LDO12, MAX77686_OPMODE_STANDBY}, #if defined(CONFIG_MACH_C1_KOR_SKT) || defined(CONFIG_MACH_C1_KOR_KT) || \ - defined(CONFIG_MACH_C1_KOR_LGT) || defined(CONFIG_MACH_C1) + defined(CONFIG_MACH_C1_KOR_LGT) || defined(CONFIG_MACH_C1) || \ + defined(CONFIG_MACH_M0_DUOSCTC) || defined(CONFIG_MACH_M0_GRANDECTC) [MAX77686_LDO13] = {MAX77686_LDO13, MAX77686_OPMODE_NORMAL}, #endif [MAX77686_LDO14] = {MAX77686_LDO14, MAX77686_OPMODE_STANDBY}, @@ -786,6 +822,25 @@ static int __init regulator_init_with_rev(void) } postcore_initcall(regulator_init_with_rev); + +static const char redwood_ldo25_name[] = "led_a_2.8v"; +static int __init regulator_init_with_redwood(void) +{ + /* SLP PQ redwood */ + if (__machine_arch_type == MACH_TYPE_REDWOOD) { + ldo25_supply[0].supply = redwood_ldo25_name; + + memcpy(&ldo25_init_data, &ldo25_redwood_init_data, + sizeof(struct regulator_init_data)); + } + + return 0; +} + +postcore_initcall(regulator_init_with_redwood); + + + #endif /* CONFIG_MACH_SLP_PQ */ #endif /* CONFIG_MFD_MAX77693 */ @@ -1112,13 +1167,8 @@ struct s5m_platform_data exynos4_s5m8767_info = { void midas_power_init(void) { -#ifdef CONFIG_MACH_S2PLUS - ldo8_init_data.constraints.always_on = 1; - ldo13_init_data.constraints.always_on = 1; -#else ldo8_init_data.constraints.always_on = 1; ldo10_init_data.constraints.always_on = 1; -#endif } /* End of S5M8767 */ |