summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorVijay Mali <vmali@nvidia.com>2012-08-25 17:20:37 +0530
committerDan Willemsen <dwillemsen@nvidia.com>2013-09-14 12:32:31 -0700
commitdaf35830337ada3d423d1e38650a3d96a5b32b59 (patch)
tree0bea8a4076e4bb7da5e8825bfb168578ec3c0125 /arch
parent4e3055232c4bdc3238af31f9cf6d00394bb63244 (diff)
ARM: tegra: dalmore: Add Audio Devices
Add audio devices for ALC5640, I2S, DAM. Add I2C client info. Register audio devices. Update build configuration flag. Change-Id: Ia4a20c8c802c6d4ef49c7a21d8f412f982d10431 Signed-off-by: Vijay Mali <vmali@nvidia.com> Reviewed-on: http://git-master/r/127362 Reviewed-by: Varun Colbert <vcolbert@nvidia.com> Tested-by: Varun Colbert <vcolbert@nvidia.com> Rebase-Id: R0cbc8dd9c7c206f1fd6d81811d5ad1985ee03ca1
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-tegra/Kconfig2
-rw-r--r--arch/arm/mach-tegra/board-dalmore.c24
-rw-r--r--arch/arm/mach-tegra/board-dalmore.h1
-rw-r--r--arch/arm/mach-tegra/include/mach/tegra_asoc_pdata.h1
4 files changed, 23 insertions, 5 deletions
diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig
index f89c81903212..004fab9b3773 100644
--- a/arch/arm/mach-tegra/Kconfig
+++ b/arch/arm/mach-tegra/Kconfig
@@ -157,7 +157,7 @@ config MACH_CURACAO
config MACH_DALMORE
bool "Dalmore board"
- depends on ARCH_TEGRA_3x_SOC
+ depends on !ARCH_TEGRA_2x_SOC
select MACH_HAS_SND_SOC_TEGRA_RT5639 if SND_SOC
select MACH_HAS_SND_SOC_TEGRA_RT5640 if SND_SOC
help
diff --git a/arch/arm/mach-tegra/board-dalmore.c b/arch/arm/mach-tegra/board-dalmore.c
index a079aaeef4f1..9a38daf1ce7e 100644
--- a/arch/arm/mach-tegra/board-dalmore.c
+++ b/arch/arm/mach-tegra/board-dalmore.c
@@ -55,7 +55,7 @@
#include <mach/io.h>
#include <mach/io_dpd.h>
#include <mach/i2s.h>
-#include <mach/tegra_rt5640_pdata.h>
+#include <mach/tegra_asoc_pdata.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <mach/usb_phy.h>
@@ -143,7 +143,9 @@ static struct tegra_i2c_platform_data dalmore_i2c5_platform_data = {
.arb_recovery = arb_lost_recovery,
};
-
+static struct i2c_board_info __initdata rt5640_board_info = {
+ I2C_BOARD_INFO("rt5640", 0x1c),
+};
static void dalmore_i2c_init(void)
{
@@ -157,6 +159,8 @@ static void dalmore_i2c_init(void)
tegra_i2c_device4.dev.platform_data = &dalmore_i2c4_platform_data;
tegra_i2c_device5.dev.platform_data = &dalmore_i2c5_platform_data;
+ i2c_register_board_info(0, &rt5640_board_info, 1);
+
platform_device_register(&tegra_i2c_device5);
platform_device_register(&tegra_i2c_device4);
platform_device_register(&tegra_i2c_device3);
@@ -308,12 +312,18 @@ static struct platform_device tegra_rtc_device = {
.num_resources = ARRAY_SIZE(tegra_rtc_resources),
};
-static struct tegra_rt5640_platform_data dalmore_audio_pdata = {
+static struct tegra_asoc_platform_data dalmore_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,
+ .gpio_ldo1_en = TEGRA_GPIO_LDO1_EN,
+ .i2s_param[HIFI_CODEC] = {
+ .audio_port_id = 1,
+ .is_i2s_master = 1,
+ .i2s_mode = TEGRA_DAIFMT_I2S,
+ },
};
static struct platform_device dalmore_audio_device = {
@@ -339,6 +349,12 @@ static struct platform_device *dalmore_devices[] __initdata = {
&tegra_se_device,
#endif
&tegra_ahub_device,
+ &tegra_dam_device0,
+ &tegra_dam_device1,
+ &tegra_dam_device2,
+ &tegra_i2s_device1,
+ &tegra_i2s_device3,
+ &tegra_i2s_device4,
&dalmore_audio_device,
&tegra_hda_device,
#if defined(CONFIG_CRYPTO_DEV_TEGRA_AES)
@@ -480,7 +496,7 @@ static void dalmore_audio_init(void)
tegra_get_board_info(&board_info);
- dalmore_audio_pdata.codec_name = "rt5640.4-001c";
+ dalmore_audio_pdata.codec_name = "rt5640.0-001c";
dalmore_audio_pdata.codec_dai_name = "rt5640-aif1";
}
diff --git a/arch/arm/mach-tegra/board-dalmore.h b/arch/arm/mach-tegra/board-dalmore.h
index 6d102bf16fa1..c2908ff13004 100644
--- a/arch/arm/mach-tegra/board-dalmore.h
+++ b/arch/arm/mach-tegra/board-dalmore.h
@@ -32,6 +32,7 @@
/* Audio-related GPIOs */
#define TEGRA_GPIO_CDC_IRQ TEGRA_GPIO_PW3
+#define TEGRA_GPIO_LDO1_EN TEGRA_GPIO_PH4
#define TEGRA_GPIO_SPKR_EN -1
#define TEGRA_GPIO_HP_DET TEGRA_GPIO_PW2
#define TEGRA_GPIO_INT_MIC_EN TEGRA_GPIO_PK3
diff --git a/arch/arm/mach-tegra/include/mach/tegra_asoc_pdata.h b/arch/arm/mach-tegra/include/mach/tegra_asoc_pdata.h
index 7aada6940b39..8d76ec9edce6 100644
--- a/arch/arm/mach-tegra/include/mach/tegra_asoc_pdata.h
+++ b/arch/arm/mach-tegra/include/mach/tegra_asoc_pdata.h
@@ -42,6 +42,7 @@ struct tegra_asoc_platform_data {
int gpio_hp_mute;
int gpio_int_mic_en;
int gpio_ext_mic_en;
+ int gpio_ldo1_en;
unsigned int debounce_time_hp;
struct i2s_config i2s_param[NUM_I2S_DEVICES];
};