summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/board-enterprise.c
diff options
context:
space:
mode:
authorNikesh Oswal <noswal@nvidia.com>2012-03-14 17:44:47 +0530
committerSimone Willett <swillett@nvidia.com>2012-03-23 13:58:36 -0700
commitf6077df65f1f42d69a2e278076218ae66dfa436c (patch)
treee90cb98a202c28a485fcb63ea907f27e43a7fd7b /arch/arm/mach-tegra/board-enterprise.c
parent78acd20afb42512133bc9d7a40e43f7cc2bbea75 (diff)
ARM: tegra: enterprise: add support for aic326x codec
Change-Id: Ibb28e461cf21a2b44ae819888d943ba1a5dc976c Signed-off-by: Nikesh Oswal <noswal@nvidia.com> Reviewed-on: http://git-master/r/90059 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Scott Peterson <speterson@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/board-enterprise.c')
-rw-r--r--arch/arm/mach-tegra/board-enterprise.c36
1 files changed, 30 insertions, 6 deletions
diff --git a/arch/arm/mach-tegra/board-enterprise.c b/arch/arm/mach-tegra/board-enterprise.c
index d4e59139b117..a53326850550 100644
--- a/arch/arm/mach-tegra/board-enterprise.c
+++ b/arch/arm/mach-tegra/board-enterprise.c
@@ -51,7 +51,7 @@
#include <asm/mach/arch.h>
#include <mach/usb_phy.h>
#include <mach/i2s.h>
-#include <mach/tegra_max98088_pdata.h>
+#include <mach/tegra_asoc_pdata.h>
#include <mach/thermal.h>
#include <mach/tegra-bb-power.h>
#include "board.h"
@@ -348,6 +348,11 @@ static struct i2c_board_info __initdata max98088_board_info = {
.irq = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_HP_DET),
};
+static struct i2c_board_info __initdata enterprise_codec_aic326x_info = {
+ I2C_BOARD_INFO("aic3262-codec", 0x18),
+ .irq = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_HP_DET),
+};
+
static struct i2c_board_info __initdata nfc_board_info = {
I2C_BOARD_INFO("pn544", 0x28),
.platform_data = &nfc_pdata,
@@ -369,6 +374,7 @@ static void enterprise_i2c_init(void)
platform_device_register(&tegra_i2c_device1);
i2c_register_board_info(0, &max98088_board_info, 1);
+ i2c_register_board_info(0, &enterprise_codec_aic326x_info, 1);
i2c_register_board_info(0, &nfc_board_info, 1);
}
@@ -485,12 +491,13 @@ static struct platform_device tegra_camera = {
.id = -1,
};
-static struct tegra_max98088_platform_data enterprise_audio_pdata = {
+static struct tegra_asoc_platform_data enterprise_audio_pdata = {
.gpio_spkr_en = -1,
.gpio_hp_det = TEGRA_GPIO_HP_DET,
.gpio_hp_mute = -1,
.gpio_int_mic_en = -1,
.gpio_ext_mic_en = -1,
+ .debounce_time_hp = -1,
.audio_port_id = {
[HIFI_CODEC] = 0,
[BASEBAND] = 2,
@@ -510,6 +517,22 @@ static struct platform_device enterprise_audio_device = {
},
};
+static struct tegra_asoc_platform_data enterprise_audio_aic326x_pdata = {
+ .gpio_spkr_en = -1,
+ .gpio_hp_det = TEGRA_GPIO_HP_DET,
+ .gpio_hp_mute = -1,
+ .gpio_int_mic_en = -1,
+ .gpio_ext_mic_en = -1,
+};
+
+static struct platform_device enterprise_audio_aic326x_device = {
+ .name = "tegra-snd-aic326x",
+ .id = 0,
+ .dev = {
+ .platform_data = &enterprise_audio_aic326x_pdata,
+ },
+};
+
static struct platform_device *enterprise_devices[] __initdata = {
&tegra_pmu_device,
&tegra_rtc_device,
@@ -775,6 +798,8 @@ static struct platform_device *enterprise_audio_devices[] __initdata = {
&tegra_dam_device0,
&tegra_dam_device1,
&tegra_dam_device2,
+ &tegra_i2s_device0,
+ &tegra_i2s_device1,
&tegra_i2s_device2,
&tegra_i2s_device3,
&tegra_spdif_device,
@@ -783,6 +808,7 @@ static struct platform_device *enterprise_audio_devices[] __initdata = {
&baseband_dit_device,
&tegra_pcm_device,
&enterprise_audio_device,
+ &enterprise_audio_aic326x_device,
};
static void enterprise_audio_init(void)
@@ -790,11 +816,9 @@ static void enterprise_audio_init(void)
struct board_info board_info;
tegra_get_board_info(&board_info);
- if (board_info.board_id == BOARD_E1197) {
- platform_device_register(&tegra_i2s_device1);
+
+ if (board_info.board_id == BOARD_E1197)
enterprise_audio_pdata.audio_port_id[HIFI_CODEC] = 1;
- } else
- platform_device_register(&tegra_i2s_device0);
platform_add_devices(enterprise_audio_devices,
ARRAY_SIZE(enterprise_audio_devices));