diff options
author | Vinod G <vinodg@nvidia.com> | 2011-12-02 16:54:59 -0800 |
---|---|---|
committer | Varun Wadekar <vwadekar@nvidia.com> | 2011-12-08 18:01:42 +0530 |
commit | 9ab148a663716e24ca53c8312fd00da4892822a4 (patch) | |
tree | 41c7b011ef72abe685f64dd139fb1c09674da46f | |
parent | 3efd1165c5932fecc6b1e7306dfce3991cdd5d6c (diff) |
kernel: arm: tegra: Enable TI codec support
TI codec support is enabled for whistler.
Both wm8753 and TI codec are supported on the same build.
Card registration takes the available codec on board on initialization.
bug 816608
Change-Id: I2d149763693a373d882cd5d38f3a55d3b06aafc3
Reviewed-on: http://git-master/r/68048
Reviewed-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
Tested-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
-rw-r--r-- | arch/arm/mach-tegra/Kconfig | 1 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-whistler.c | 35 |
2 files changed, 30 insertions, 6 deletions
diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig index 89b4320fc7d4..d2f03c0dcbb6 100644 --- a/arch/arm/mach-tegra/Kconfig +++ b/arch/arm/mach-tegra/Kconfig @@ -118,6 +118,7 @@ config MACH_WHISTLER bool "Whistler board" depends on ARCH_TEGRA_2x_SOC select MACH_HAS_SND_SOC_TEGRA_WM8753 if SND_SOC + select MACH_HAS_SND_SOC_TEGRA_TLV320AIC326X if SND_SOC help Support for NVIDIA Whistler development platform diff --git a/arch/arm/mach-tegra/board-whistler.c b/arch/arm/mach-tegra/board-whistler.c index ec4bea9df79a..7df0fc20e0e7 100644 --- a/arch/arm/mach-tegra/board-whistler.c +++ b/arch/arm/mach-tegra/board-whistler.c @@ -46,6 +46,7 @@ #include <mach/io.h> #include <mach/i2s.h> #include <mach/tegra_wm8753_pdata.h> +#include <sound/tlv320aic326x.h> #include <asm/mach-types.h> #include <asm/mach/arch.h> @@ -286,9 +287,21 @@ static struct tegra_i2c_platform_data whistler_dvc_platform_data = { .is_dvc = true, }; -static struct i2c_board_info __initdata wm8753_board_info = { - I2C_BOARD_INFO("wm8753", 0x1a), - .irq = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_HP_DET), +static struct aic326x_pdata whistler_aic3262_pdata = { + /* debounce time */ + .debounce_time_ms = 512, +}; + +static struct i2c_board_info __initdata wm8753_board_info[] = { + { + I2C_BOARD_INFO("wm8753", 0x1a), + .irq = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_HP_DET), + }, + { + I2C_BOARD_INFO("tlv320aic3262", 0x18), + .platform_data = &whistler_aic3262_pdata, + .irq = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_HP_DET), + }, }; static void whistler_i2c_init(void) @@ -303,7 +316,8 @@ static void whistler_i2c_init(void) platform_device_register(&tegra_i2c_device2); platform_device_register(&tegra_i2c_device1); - i2c_register_board_info(4, &wm8753_board_info, 1); + i2c_register_board_info(4, wm8753_board_info, + ARRAY_SIZE(wm8753_board_info)); } #define GPIO_SCROLL(_pinaction, _gpio, _desc) \ @@ -349,7 +363,15 @@ static struct tegra_wm8753_platform_data whistler_audio_pdata = { .debounce_time_hp = 200, }; -static struct platform_device whistler_audio_device = { +static struct platform_device whistler_audio_device1 = { + .name = "tegra-snd-aic326x", + .id = 0, + .dev = { + .platform_data = &whistler_audio_pdata, + }, +}; + +static struct platform_device whistler_audio_device2 = { .name = "tegra-snd-wm8753", .id = 0, .dev = { @@ -373,7 +395,8 @@ static struct platform_device *whistler_devices[] __initdata = { &bluetooth_dit_device, &whistler_bcm4329_rfkill_device, &tegra_pcm_device, - &whistler_audio_device, + &whistler_audio_device1, + &whistler_audio_device2, }; static struct synaptics_i2c_rmi_platform_data synaptics_pdata = { |