aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-exynos/mach-u1.c
diff options
context:
space:
mode:
authorDorian Snyder <dastin1015@gmail.com>2013-06-12 02:24:45 -0700
committerDorian Snyder <dastin1015@gmail.com>2013-06-20 00:06:04 -0700
commit4b2308ce699b9c599dd6e6acf57ac11f483381d9 (patch)
tree4c31179b06d094887b1c8ca70264cf8f184a5981 /arch/arm/mach-exynos/mach-u1.c
parent855d6a6c1f7c54ef073caac3f6c5f9b1ed72eb4d (diff)
downloadkernel_samsung_smdk4412-4b2308ce699b9c599dd6e6acf57ac11f483381d9.zip
kernel_samsung_smdk4412-4b2308ce699b9c599dd6e6acf57ac11f483381d9.tar.gz
kernel_samsung_smdk4412-4b2308ce699b9c599dd6e6acf57ac11f483381d9.tar.bz2
d710: initial support for the Epic 4G Touch (SPH-D710)
Change-Id: Iafbd9fb45253b02d539ac0ba114f57b3bf9eeed4
Diffstat (limited to 'arch/arm/mach-exynos/mach-u1.c')
-rw-r--r--arch/arm/mach-exynos/mach-u1.c130
1 files changed, 126 insertions, 4 deletions
diff --git a/arch/arm/mach-exynos/mach-u1.c b/arch/arm/mach-exynos/mach-u1.c
index 88dccdd..59cb0bc 100644
--- a/arch/arm/mach-exynos/mach-u1.c
+++ b/arch/arm/mach-exynos/mach-u1.c
@@ -395,6 +395,9 @@ static int m5mo_power_on(void)
/* VT_CORE_1.5V */
ret = gpio_direction_output(GPIO_VT_CAM_15V, 1);
+#ifdef CONFIG_TARGET_LOCALE_NA
+ s3c_gpio_setpull(GPIO_VT_CAM_15V, S3C_GPIO_PULL_NONE);
+#endif /* CONFIG_TARGET_LOCALE_NA */
CAM_CHECK_ERR_RET(ret, "output VT_CAM_1.5V");
udelay(20);
@@ -836,12 +839,26 @@ static int m5mo_power(int enable)
printk(KERN_DEBUG "%s %s\n", __func__, enable ? "on" : "down");
if (enable) {
+#if defined(CONFIG_TARGET_LOCALE_NA)
+ exynos_cpufreq_lock(DVFS_LOCK_ID_CAM, 1);
ret = m5mo_power_on();
+ exynos_cpufreq_lock_free(DVFS_LOCK_ID_CAM);
+#else
+
+ ret = m5mo_power_on();
+#endif
if (unlikely(ret))
goto error_out;
- } else
+ } else {
+#if defined(CONFIG_TARGET_LOCALE_NA)
+ exynos_cpufreq_lock(DVFS_LOCK_ID_CAM, 1);
ret = m5mo_power_down();
+ exynos_cpufreq_lock_free(DVFS_LOCK_ID_CAM);
+#else
+ ret = m5mo_power_down();
+#endif
+ }
ret = s3c_csis_power(enable);
m5mo_flash_power(enable);
@@ -3943,6 +3960,10 @@ static void u1_sound_init(void)
return;
}
gpio_direction_output(GPIO_MIC_BIAS_EN, 1);
+#ifdef CONFIG_TARGET_LOCALE_NA
+ s3c_gpio_setpull(GPIO_MIC_BIAS_EN, S3C_GPIO_PULL_NONE);
+#endif /* CONFIG_TARGET_LOCALE_NA */
+
gpio_set_value(GPIO_MIC_BIAS_EN, 0);
gpio_free(GPIO_MIC_BIAS_EN);
@@ -3952,6 +3973,10 @@ static void u1_sound_init(void)
return;
}
gpio_direction_output(GPIO_EAR_MIC_BIAS_EN, 1);
+#ifdef CONFIG_TARGET_LOCALE_NA
+ s3c_gpio_setpull(GPIO_EAR_MIC_BIAS_EN, S3C_GPIO_PULL_NONE);
+#endif /* CONFIG_TARGET_LOCALE_NA */
+
gpio_set_value(GPIO_EAR_MIC_BIAS_EN, 0);
gpio_free(GPIO_EAR_MIC_BIAS_EN);
@@ -3973,6 +3998,10 @@ static void u1_sound_init(void)
return;
}
gpio_direction_output(GPIO_SUB_MIC_BIAS_EN, 0);
+#ifdef CONFIG_TARGET_LOCALE_NA
+ s3c_gpio_setpull(GPIO_SUB_MIC_BIAS_EN, S3C_GPIO_PULL_NONE);
+#endif /* CONFIG_TARGET_LOCALE_NA */
+
gpio_free(GPIO_SUB_MIC_BIAS_EN);
}
#endif /* #if defined(CONFIG_MACH_Q1_BD) */
@@ -4575,6 +4604,94 @@ static struct sec_bat_adc_table_data temper_table_ADC7[] = {
{ 1669, -60 },
{ 1688, -70 },
};
+#endif
+/* temperature table for ADC 7 */
+#ifdef CONFIG_TARGET_LOCALE_NA
+static struct sec_bat_adc_table_data temper_table_ADC7[] = {
+ { 145, 670 },
+ { 165, 660 },
+ { 185, 650 },
+ { 205, 640 },
+ { 225, 630 },
+ { 245, 620 },
+ { 265, 610 },
+ { 285, 600 },
+ { 305, 590 },
+ { 325, 580 },
+ { 345, 570 },
+ { 365, 560 },
+ { 385, 550 },
+ { 405, 540 },
+ { 425, 530 },
+ { 445, 520 },
+ { 465, 510 },
+ { 485, 500 },
+ { 505, 490 },
+ { 525, 480 },
+ { 545, 470 },
+ { 565, 460 },
+ { 585, 450 },
+ { 605, 440 },
+ { 625, 430 },
+ { 645, 420 },
+ { 665, 410 },
+ { 685, 400 },
+ { 705, 390 },
+ { 725, 380 },
+ { 745, 370 },
+ { 765, 360 },
+ { 785, 350 },
+ { 805, 340 },
+ { 825, 330 },
+ { 845, 320 },
+ { 865, 310 },
+ { 885, 300 },
+ { 905, 290 },
+ { 925, 280 },
+ { 945, 270 },
+ { 965, 260 },
+ { 995, 250 },
+ { 1015, 240 },
+ { 1045, 230 },
+ { 1065, 220 },
+ { 1085, 210 },
+ { 1105, 200 },
+ { 1125, 190 },
+ { 1145, 180 },
+ { 1165, 170 },
+ { 1185, 160 },
+ { 1205, 150 },
+ { 1225, 140 },
+ { 1245, 130 },
+ { 1265, 120 },
+ { 1285, 110 },
+ { 1305, 100 },
+ { 1335, 90 },
+ { 1365, 80 },
+ { 1395, 70 },
+ { 1425, 60 },
+ { 1455, 50 },
+ { 1475, 40 },
+ { 1495, 30 },
+ { 1515, 20 },
+ { 1535, 10 },
+ { 1545, 0 },
+ { 1555, -10 },
+ { 1565, -20 },
+ { 1575, -30 },
+ { 1585, -40 },
+ { 1595, -50 },
+ { 1605, -60 },
+ { 1615, -70 },
+ { 1625, -80 },
+ { 1635, -90 },
+ { 1645, -100 },
+ { 1655, -110 },
+ { 1665, -120 },
+ { 1675, -130 },
+ { 1685, -140 },
+};
+
#else
/* temperature table for ADC 7 */
static struct sec_bat_adc_table_data temper_table_ADC7[] = {
@@ -5186,7 +5303,7 @@ static struct sec_jack_buttons_zone sec_jack_buttons_zones[] = {
/* 0 <= adc <=170, stable zone */
.code = KEY_MEDIA,
.adc_low = 0,
-#if defined(CONFIG_TARGET_LOCALE_NTT)
+#if defined(CONFIG_TARGET_LOCALE_NTT) || defined(CONFIG_TARGET_LOCALE_NA)
.adc_high = 150,
#else
.adc_high = 170,
@@ -5195,7 +5312,7 @@ static struct sec_jack_buttons_zone sec_jack_buttons_zones[] = {
{
/* 171 <= adc <= 370, stable zone */
.code = KEY_VOLUMEUP,
-#if defined(CONFIG_TARGET_LOCALE_NTT)
+#if defined(CONFIG_TARGET_LOCALE_NTT) || defined(CONFIG_TARGET_LOCALE_NA)
.adc_low = 151,
#else
.adc_low = 171,
@@ -5460,7 +5577,11 @@ static const u8 *mxt224_config[] = {
#define MXT224E_THRESHOLD_BATT 40
#define MXT224E_T48_THRESHOLD_BATT 28
#define MXT224E_THRESHOLD_CHRG 37
+#if defined(CONFIG_MACH_U1_NA_SPR)
+#define MXT224E_CALCFG_BATT 0x72
+#else
#define MXT224E_CALCFG_BATT 0x42
+#endif
#define MXT224E_CALCFG_CHRG 0x52
#if defined(CONFIG_TARGET_LOCALE_NA)
#define MXT224E_ATCHFRCCALTHR_NORMAL 45
@@ -7167,8 +7288,9 @@ static struct platform_device *smdkc210_devices[] __initdata = {
&exynos4_device_pd[PD_LCD1],
&exynos4_device_pd[PD_CAM],
&exynos4_device_pd[PD_TV],
+#ifndef CONFIG_TARGET_LOCALE_NA
&exynos4_device_pd[PD_GPS],
-
+#endif /* CONFIG_TARGET_LOCALE_NA */
#if defined(CONFIG_WIMAX_CMC)
&s3c_device_cmc732,
#endif