aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-imx
diff options
context:
space:
mode:
authorPhilippe Rétornaz <philippe.retornaz@epfl.ch>2012-05-15 12:42:26 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2012-05-18 11:42:44 -0400
commit5fb86e5d4a951ddb0474cdfd809380c8e2a8d101 (patch)
treee38f118858803ccfa15b4a96e5cd791f7f035f5b /arch/arm/mach-imx
parentcd7dc7a42cb541916316f6350dcc69f7af4c289c (diff)
ARM: mx31_3ds: Add sound support
Signed-off-by: Philippe Rétornaz <philippe.retornaz@epfl.ch> Acked-by: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'arch/arm/mach-imx')
-rw-r--r--arch/arm/mach-imx/Kconfig1
-rw-r--r--arch/arm/mach-imx/mach-mx31_3ds.c22
2 files changed, 22 insertions, 1 deletions
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index 0d75480c3240..472d47b50cd6 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -151,6 +151,7 @@ config MACH_MX25_3DS
151 select IMX_HAVE_PLATFORM_IMX2_WDT 151 select IMX_HAVE_PLATFORM_IMX2_WDT
152 select IMX_HAVE_PLATFORM_IMXDI_RTC 152 select IMX_HAVE_PLATFORM_IMXDI_RTC
153 select IMX_HAVE_PLATFORM_IMX_I2C 153 select IMX_HAVE_PLATFORM_IMX_I2C
154 select IMX_HAVE_PLATFORM_IMX_SSI
154 select IMX_HAVE_PLATFORM_IMX_FB 155 select IMX_HAVE_PLATFORM_IMX_FB
155 select IMX_HAVE_PLATFORM_IMX_KEYPAD 156 select IMX_HAVE_PLATFORM_IMX_KEYPAD
156 select IMX_HAVE_PLATFORM_IMX_UART 157 select IMX_HAVE_PLATFORM_IMX_UART
diff --git a/arch/arm/mach-imx/mach-mx31_3ds.c b/arch/arm/mach-imx/mach-mx31_3ds.c
index 4d1aab154400..4eafdf275ea2 100644
--- a/arch/arm/mach-imx/mach-mx31_3ds.c
+++ b/arch/arm/mach-imx/mach-mx31_3ds.c
@@ -156,6 +156,11 @@ static int mx31_3ds_pins[] = {
156 MX31_PIN_CSI_VSYNC__CSI_VSYNC, 156 MX31_PIN_CSI_VSYNC__CSI_VSYNC,
157 MX31_PIN_CSI_D5__GPIO3_5, /* CMOS PWDN */ 157 MX31_PIN_CSI_D5__GPIO3_5, /* CMOS PWDN */
158 IOMUX_MODE(MX31_PIN_RI_DTE1, IOMUX_CONFIG_GPIO), /* CMOS reset */ 158 IOMUX_MODE(MX31_PIN_RI_DTE1, IOMUX_CONFIG_GPIO), /* CMOS reset */
159 /* SSI */
160 MX31_PIN_STXD4__STXD4,
161 MX31_PIN_SRXD4__SRXD4,
162 MX31_PIN_SCK4__SCK4,
163 MX31_PIN_SFS4__SFS4,
159}; 164};
160 165
161/* 166/*
@@ -488,12 +493,23 @@ static struct mc13xxx_regulator_init_data mx31_3ds_regulators[] = {
488}; 493};
489 494
490/* MC13783 */ 495/* MC13783 */
496static struct mc13xxx_codec_platform_data mx31_3ds_codec = {
497 .dac_ssi_port = MC13783_SSI1_PORT,
498 .adc_ssi_port = MC13783_SSI1_PORT,
499};
500
491static struct mc13xxx_platform_data mc13783_pdata = { 501static struct mc13xxx_platform_data mc13783_pdata = {
492 .regulators = { 502 .regulators = {
493 .regulators = mx31_3ds_regulators, 503 .regulators = mx31_3ds_regulators,
494 .num_regulators = ARRAY_SIZE(mx31_3ds_regulators), 504 .num_regulators = ARRAY_SIZE(mx31_3ds_regulators),
495 }, 505 },
496 .flags = MC13XXX_USE_TOUCHSCREEN | MC13XXX_USE_RTC, 506 .codec = &mx31_3ds_codec,
507 .flags = MC13XXX_USE_TOUCHSCREEN | MC13XXX_USE_RTC | MC13XXX_USE_CODEC,
508
509};
510
511static struct imx_ssi_platform_data mx31_3ds_ssi_pdata = {
512 .flags = IMX_SSI_DMA | IMX_SSI_NET,
497}; 513};
498 514
499/* SPI */ 515/* SPI */
@@ -741,6 +757,10 @@ static void __init mx31_3ds_init(void)
741 } 757 }
742 758
743 mx31_3ds_init_camera(); 759 mx31_3ds_init_camera();
760
761 imx31_add_imx_ssi(0, &mx31_3ds_ssi_pdata);
762
763 imx_add_platform_device("imx_mc13783", 0, NULL, 0, NULL, 0);
744} 764}
745 765
746static void __init mx31_3ds_timer_init(void) 766static void __init mx31_3ds_timer_init(void)