aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiridhar Maruthy <giridhar.maruthy@linaro.org>2011-12-22 15:37:54 +0530
committerTushar Behera <tushar.behera@linaro.org>2012-06-20 11:12:42 +0530
commita05c2a2ba7d6f49d580369587dae59eee756f6fd (patch)
treeb5dc361178de0c04b107f42a2b8c3cfa9550a80b
parenta0d5ae3c0785f43569f7ad7221997cc4725c847e (diff)
ARM: EXYNOS: Add I2S and ALC5625 support for Origen
Origen board uses Realtek's RT5625 codec. This is controlled through I2S bus interface. Signed-off-by: Tushar Behera <tushar.behera@linaro.org> Signed-off-by: Giridhar Maruthy <giridhar.maruthy@linaro.org>
-rw-r--r--arch/arm/mach-exynos/Kconfig2
-rw-r--r--arch/arm/mach-exynos/mach-origen.c20
2 files changed, 22 insertions, 0 deletions
diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index 573be57d3d28..1f54b1981032 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -326,6 +326,7 @@ config MACH_ORIGEN
select S3C_DEV_WDT
select S3C_DEV_HSMMC
select S3C_DEV_HSMMC2
+ select S3C_DEV_I2C1
select S5P_DEV_FIMC0
select S5P_DEV_FIMC1
select S5P_DEV_FIMC2
@@ -344,6 +345,7 @@ config MACH_ORIGEN
select EXYNOS4_DEV_DMA
select EXYNOS4_DEV_USB_OHCI
select EXYNOS4_SETUP_FIMD0
+ select EXYNOS4_SETUP_I2C1
select EXYNOS4_SETUP_SDHCI
select EXYNOS4_SETUP_USB_PHY
help
diff --git a/arch/arm/mach-exynos/mach-origen.c b/arch/arm/mach-exynos/mach-origen.c
index f5572be9d7bf..c97756874fa3 100644
--- a/arch/arm/mach-exynos/mach-origen.c
+++ b/arch/arm/mach-exynos/mach-origen.c
@@ -471,6 +471,13 @@ static struct i2c_board_info i2c0_devs[] __initdata = {
},
};
+/* I2C1 */
+static struct i2c_board_info i2c1_devs[] __initdata = {
+ {
+ I2C_BOARD_INFO("alc5625", 0x1E),
+ },
+};
+
static struct s3c_sdhci_platdata origen_hsmmc0_pdata __initdata = {
.cd_type = S3C_SDHCI_CD_INTERNAL,
};
@@ -650,10 +657,17 @@ static struct platform_device origen_device_bluetooth = {
},
};
+/* Audio device */
+static struct platform_device origen_device_audio = {
+ .name = "origen-audio",
+ .id = -1,
+};
+
static struct platform_device *origen_devices[] __initdata = {
&s3c_device_hsmmc2,
&s3c_device_hsmmc0,
&s3c_device_i2c0,
+ &s3c_device_i2c1,
&s3c_device_rtc,
&s3c_device_wdt,
&s5p_device_ehci,
@@ -671,12 +685,15 @@ static struct platform_device *origen_devices[] __initdata = {
&s5p_device_mfc_l,
&s5p_device_mfc_r,
&s5p_device_mixer,
+ &samsung_asoc_dma,
+ &exynos4_device_i2s0,
#ifdef CONFIG_DRM_EXYNOS
&exynos_device_drm,
#endif
&exynos4_device_ohci,
&origen_device_gpiokeys,
&origen_lcd_hv070wsa,
+ &origen_device_audio,
&origen_device_bluetooth,
};
@@ -735,6 +752,9 @@ static void __init origen_machine_init(void)
s3c_i2c0_set_platdata(NULL);
i2c_register_board_info(0, i2c0_devs, ARRAY_SIZE(i2c0_devs));
+ s3c_i2c1_set_platdata(NULL);
+ i2c_register_board_info(1, i2c1_devs, ARRAY_SIZE(i2c1_devs));
+
/*
* Since sdhci instance 2 can contain a bootable media,
* sdhci instance 0 is registered after instance 2.