diff options
author | Manoj Gangwal <mgangwal@nvidia.com> | 2012-02-11 15:37:10 +0530 |
---|---|---|
committer | Rohan Somvanshi <rsomvanshi@nvidia.com> | 2012-02-13 22:20:05 -0800 |
commit | f422f8a0f03d4bcdc4af8036010410c8429c5df2 (patch) | |
tree | d4c1f637dc971ea1fc58fc0a8c2a77e50bf63cfe /arch/arm/mach-tegra/board-kai.c | |
parent | afe3f5978373561b7893afec9e1008316683f851 (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.c | 26 |
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, |