diff options
author | Chao Jiang <chaoj@nvidia.com> | 2011-03-08 18:43:45 +0900 |
---|---|---|
committer | Varun Colbert <vcolbert@nvidia.com> | 2011-03-14 17:40:39 -0800 |
commit | 0ea635e64cc77747e9aeedeb294c81a521f31e4a (patch) | |
tree | 499c17c4c1115102db12415be20cad74c39bc754 | |
parent | f7ccf6cae50ef4fa40ff4a8fa93d290c86c67a8c (diff) |
ARM: ventana: Support mic jack detection
Configured wm8903 codec on Ventana board to enalbe mic jack detection.
Instead of interrupt, set GPIO4 as a generic gpio pin to output Mic Bias
Current Detection result.
fixes bug 766757
Change-Id: I9062d06c594dc9f9b2eea76eaefc83c26107117f
Reviewed-on: http://git-master/r/22038
Reviewed-by: Chao Jiang <chaoj@nvidia.com>
Tested-by: Chao Jiang <chaoj@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Tested-by: Bharat Nihalani <bnihalani@nvidia.com>
Reviewed-by: Scott Peterson <speterson@nvidia.com>
-rw-r--r-- | arch/arm/mach-tegra/board-ventana-jack.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-ventana-pinmux.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-ventana.c | 7 |
3 files changed, 11 insertions, 4 deletions
diff --git a/arch/arm/mach-tegra/board-ventana-jack.c b/arch/arm/mach-tegra/board-ventana-jack.c index 7d8d233f5155..375b3970c26b 100644 --- a/arch/arm/mach-tegra/board-ventana-jack.c +++ b/arch/arm/mach-tegra/board-ventana-jack.c @@ -32,6 +32,7 @@ static struct tegra_wired_jack_conf ventana_wr_jack_conf = { .en_mic_ext = TEGRA_GPIO_PX1, .en_mic_int = TEGRA_GPIO_PX0, .en_spkr = WM8903_GP3, + .cdc_irq = TEGRA_GPIO_PX3, }; static struct platform_device ventana_hs_jack_device = { @@ -47,6 +48,9 @@ int __init ventana_wired_jack_init(void) int ret; tegra_gpio_enable(ventana_wr_jack_conf.hp_det_n); + tegra_gpio_enable(ventana_wr_jack_conf.en_mic_int); + tegra_gpio_enable(ventana_wr_jack_conf.en_mic_ext); + tegra_gpio_enable(ventana_wr_jack_conf.cdc_irq); ret = platform_device_register(&ventana_hs_jack_device); return ret; diff --git a/arch/arm/mach-tegra/board-ventana-pinmux.c b/arch/arm/mach-tegra/board-ventana-pinmux.c index de702536c78f..4bbb30cae4e5 100644 --- a/arch/arm/mach-tegra/board-ventana-pinmux.c +++ b/arch/arm/mach-tegra/board-ventana-pinmux.c @@ -149,13 +149,13 @@ static __initdata struct tegra_pingroup_config ventana_pinmux[] = { {TEGRA_PINGROUP_SLXK, TEGRA_MUX_SDIO3, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_SPDI, TEGRA_MUX_RSVD2, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_SPDO, TEGRA_MUX_RSVD2, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, - {TEGRA_PINGROUP_SPIA, TEGRA_MUX_GMI, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, + {TEGRA_PINGROUP_SPIA, TEGRA_MUX_GMI, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_SPIB, TEGRA_MUX_GMI, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_SPIC, TEGRA_MUX_GMI, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_SPID, TEGRA_MUX_SPI1, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_SPIE, TEGRA_MUX_SPI1, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_SPIF, TEGRA_MUX_SPI1, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_SPIG, TEGRA_MUX_SPI2_ALT, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, + {TEGRA_PINGROUP_SPIG, TEGRA_MUX_SPI2_ALT, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_SPIH, TEGRA_MUX_SPI2_ALT, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_UAA, TEGRA_MUX_ULPI, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_UAB, TEGRA_MUX_ULPI, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL}, diff --git a/arch/arm/mach-tegra/board-ventana.c b/arch/arm/mach-tegra/board-ventana.c index f5d9f269ed88..fbd7c205fb2e 100644 --- a/arch/arm/mach-tegra/board-ventana.c +++ b/arch/arm/mach-tegra/board-ventana.c @@ -333,12 +333,16 @@ static struct platform_device rndis_device = { #endif static struct wm8903_platform_data wm8903_pdata = { + .irq_active_low = 0, + .micdet_cfg = 0x83, /* enable mic bias current */ + .micdet_delay = 0, .gpio_base = WM8903_GPIO_BASE, .gpio_cfg = { WM8903_GPIO_NO_CONFIG, WM8903_GPIO_NO_CONFIG, 0, /* as output pin */ - WM8903_GPIO_NO_CONFIG, + WM8903_GPn_FN_GPIO_MICBIAS_CURRENT_DETECT + << WM8903_GP4_FN_SHIFT, /* as micbias current detect */ WM8903_GPIO_NO_CONFIG, }, }; @@ -347,7 +351,6 @@ static struct i2c_board_info __initdata ventana_i2c_bus1_board_info[] = { { I2C_BOARD_INFO("wm8903", 0x1a), .platform_data = &wm8903_pdata, - .irq = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PX3), }, }; |