summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/board-whistler.c
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 /arch/arm/mach-tegra/board-whistler.c
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>
Diffstat (limited to 'arch/arm/mach-tegra/board-whistler.c')
-rw-r--r--arch/arm/mach-tegra/board-whistler.c35
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 = {