summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/board-kai.c
diff options
context:
space:
mode:
authorManoj Gangwal <mgangwal@nvidia.com>2012-02-11 15:37:10 +0530
committerRohan Somvanshi <rsomvanshi@nvidia.com>2012-02-13 22:20:05 -0800
commitf422f8a0f03d4bcdc4af8036010410c8429c5df2 (patch)
treed4c1f637dc971ea1fc58fc0a8c2a77e50bf63cfe /arch/arm/mach-tegra/board-kai.c
parentafe3f5978373561b7893afec9e1008316683f851 (diff)
arm: tegra: kai: Add ALC5640 audio codec.
Changes made to add support of ALC5640 codec for kai. Bug 910788 Signed-off-by: Manoj Gangwal <mgangwal@nvidia.com> Reviewed-on: http://git-master/r/75958 (cherry picked from commit 2f3e38e34ae7391b9bca74e49f53e20323207f47) Change-Id: I4f58d29fdaa33f7953373c9a1ebaecc9bd0e49a7 Signed-off-by: Pritesh Raithatha <praithatha@nvidia.com> Reviewed-on: http://git-master/r/82735 Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com> Tested-by: Bharat Nihalani <bnihalani@nvidia.com> Reviewed-by: Rohan Somvanshi <rsomvanshi@nvidia.com> Tested-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/board-kai.c')
-rw-r--r--arch/arm/mach-tegra/board-kai.c26
1 files changed, 25 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/board-kai.c b/arch/arm/mach-tegra/board-kai.c
index ceb3ef06474f..d967f73c565a 100644
--- a/arch/arm/mach-tegra/board-kai.c
+++ b/arch/arm/mach-tegra/board-kai.c
@@ -46,6 +46,7 @@
#include <mach/iomap.h>
#include <mach/io.h>
#include <mach/i2s.h>
+#include <mach/tegra_rt5640_pdata.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <mach/usb_phy.h>
@@ -274,13 +275,17 @@ static struct tegra_i2c_platform_data kai_i2c5_platform_data = {
.arb_recovery = arb_lost_recovery,
};
-
static struct i2c_board_info kai_i2c4_smb349_board_info[] = {
{
I2C_BOARD_INFO("smb349", 0x1B),
},
};
+static struct i2c_board_info __initdata rt5640_board_info = {
+ I2C_BOARD_INFO("rt5640", 0x1c),
+ .irq = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_CDC_IRQ),
+};
+
static void kai_i2c_init(void)
{
tegra_i2c_device1.dev.platform_data = &kai_i2c1_platform_data;
@@ -297,6 +302,8 @@ static void kai_i2c_init(void)
i2c_register_board_info(4, kai_i2c4_smb349_board_info,
ARRAY_SIZE(kai_i2c4_smb349_board_info));
+
+ i2c_register_board_info(4, &rt5640_board_info, 1);
}
static struct platform_device *kai_uart_devices[] __initdata = {
@@ -506,6 +513,22 @@ static struct platform_device tegra_rtc_device = {
.num_resources = ARRAY_SIZE(tegra_rtc_resources),
};
+static struct tegra_rt5640_platform_data kai_audio_pdata = {
+ .gpio_spkr_en = TEGRA_GPIO_SPKR_EN,
+ .gpio_hp_det = TEGRA_GPIO_HP_DET,
+ .gpio_hp_mute = -1,
+ .gpio_int_mic_en = TEGRA_GPIO_INT_MIC_EN,
+ .gpio_ext_mic_en = TEGRA_GPIO_EXT_MIC_EN,
+};
+
+static struct platform_device kai_audio_device = {
+ .name = "tegra-snd-rt5640",
+ .id = 0,
+ .dev = {
+ .platform_data = &kai_audio_pdata,
+ },
+};
+
static struct platform_device *kai_devices[] __initdata = {
&tegra_pmu_device,
&tegra_rtc_device,
@@ -531,6 +554,7 @@ static struct platform_device *kai_devices[] __initdata = {
&spdif_dit_device,
&bluetooth_dit_device,
&tegra_pcm_device,
+ &kai_audio_device,
&tegra_hda_device,
#if defined(CONFIG_CRYPTO_DEV_TEGRA_AES)
&tegra_aes_device,