summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVinod G <vinodg@nvidia.com>2011-12-02 16:54:59 -0800
committerVarun Wadekar <vwadekar@nvidia.com>2011-12-08 18:01:42 +0530
commit9ab148a663716e24ca53c8312fd00da4892822a4 (patch)
tree41c7b011ef72abe685f64dd139fb1c09674da46f
parent3efd1165c5932fecc6b1e7306dfce3991cdd5d6c (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/Kconfig1
-rw-r--r--arch/arm/mach-tegra/board-whistler.c35
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 = {