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 /arch/arm/mach-tegra/board-whistler.c | |
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>
Diffstat (limited to 'arch/arm/mach-tegra/board-whistler.c')
-rw-r--r-- | arch/arm/mach-tegra/board-whistler.c | 35 |
1 files changed, 29 insertions, 6 deletions
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 = { |