aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-exynos/midas-power.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-exynos/midas-power.c')
-rw-r--r--arch/arm/mach-exynos/midas-power.c82
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 */