aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-exynos/p4note-jack.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-exynos/p4note-jack.c')
-rw-r--r--arch/arm/mach-exynos/p4note-jack.c50
1 files changed, 50 insertions, 0 deletions
diff --git a/arch/arm/mach-exynos/p4note-jack.c b/arch/arm/mach-exynos/p4note-jack.c
index 2a4d0df..7c85b27 100644
--- a/arch/arm/mach-exynos/p4note-jack.c
+++ b/arch/arm/mach-exynos/p4note-jack.c
@@ -24,6 +24,55 @@ static void sec_set_jack_micbias(bool on)
gpio_set_value(GPIO_EAR_MIC_BIAS_EN, on);
}
+#ifdef CONFIG_TARGET_LOCALE_KOR
+static struct sec_jack_zone sec_jack_zones[] = {
+ {
+ /* adc == 0, unstable zone, default to 3pole if it stays
+ * in this range for 300ms (15ms delays, 20 samples)
+ */
+ .adc_high = 0,
+ .delay_ms = 10,
+ .check_count = 10,
+ .jack_type = SEC_HEADSET_3POLE,
+ },
+ {
+ /* 0 < adc <= 1200, unstable zone, default to 3pole if it stays
+ * in this range for 300ms (15ms delays, 20 samples)
+ */
+ .adc_high = 1200,
+ .delay_ms = 10,
+ .check_count = 10,
+ .jack_type = SEC_HEADSET_3POLE,
+ },
+ {
+ /* 1200 < adc <= 2600, unstable zone, default to 4pole if it
+ * stays in this range for 100ms (10ms delays, 80 samples)
+ */
+ .adc_high = 2600,
+ .delay_ms = 10,
+ .check_count = 10,
+ .jack_type = SEC_HEADSET_4POLE,
+ },
+ {
+ /* 2600 < adc <= 3800, 4 pole zone, default to 4pole if it
+ * stays in this range for 100ms (10ms delays, 10 samples)
+ */
+ .adc_high = 3800,
+ .delay_ms = 10,
+ .check_count = 5,
+ .jack_type = SEC_HEADSET_4POLE,
+ },
+ {
+ /* adc > 3800, unstable zone, default to 3pole if it stays
+ * in this range for two seconds (10ms delays, 200 samples)
+ */
+ .adc_high = 0x7fffffff,
+ .delay_ms = 10,
+ .check_count = 200,
+ .jack_type = SEC_HEADSET_3POLE,
+ },
+};
+#else
static struct sec_jack_zone sec_jack_zones[] = {
{
/* adc == 0, unstable zone, default to 3pole if it stays
@@ -71,6 +120,7 @@ static struct sec_jack_zone sec_jack_zones[] = {
.jack_type = SEC_HEADSET_3POLE,
},
};
+#endif
/* To support 3-buttons earjack */
static struct sec_jack_buttons_zone sec_jack_buttons_zones[] = {