ARM: mx31_3ds: Add sound support
authorPhilippe Rétornaz <philippe.retornaz@epfl.ch>
Tue, 15 May 2012 16:42:26 +0000 (18:42 +0200)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Fri, 18 May 2012 15:42:44 +0000 (16:42 +0100)
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>
arch/arm/mach-imx/Kconfig
arch/arm/mach-imx/mach-mx31_3ds.c

index 0d75480..472d47b 100644 (file)
@@ -151,6 +151,7 @@ config MACH_MX25_3DS
        select IMX_HAVE_PLATFORM_IMX2_WDT
        select IMX_HAVE_PLATFORM_IMXDI_RTC
        select IMX_HAVE_PLATFORM_IMX_I2C
+       select IMX_HAVE_PLATFORM_IMX_SSI
        select IMX_HAVE_PLATFORM_IMX_FB
        select IMX_HAVE_PLATFORM_IMX_KEYPAD
        select IMX_HAVE_PLATFORM_IMX_UART
index 4d1aab1..4eafdf2 100644 (file)
@@ -156,6 +156,11 @@ static int mx31_3ds_pins[] = {
        MX31_PIN_CSI_VSYNC__CSI_VSYNC,
        MX31_PIN_CSI_D5__GPIO3_5, /* CMOS PWDN */
        IOMUX_MODE(MX31_PIN_RI_DTE1, IOMUX_CONFIG_GPIO), /* CMOS reset */
+       /* SSI */
+       MX31_PIN_STXD4__STXD4,
+       MX31_PIN_SRXD4__SRXD4,
+       MX31_PIN_SCK4__SCK4,
+       MX31_PIN_SFS4__SFS4,
 };
 
 /*
@@ -488,12 +493,23 @@ static struct mc13xxx_regulator_init_data mx31_3ds_regulators[] = {
 };
 
 /* MC13783 */
+static struct mc13xxx_codec_platform_data mx31_3ds_codec = {
+       .dac_ssi_port = MC13783_SSI1_PORT,
+       .adc_ssi_port = MC13783_SSI1_PORT,
+};
+
 static struct mc13xxx_platform_data mc13783_pdata = {
        .regulators = {
                .regulators = mx31_3ds_regulators,
                .num_regulators = ARRAY_SIZE(mx31_3ds_regulators),
        },
-       .flags  = MC13XXX_USE_TOUCHSCREEN | MC13XXX_USE_RTC,
+       .codec = &mx31_3ds_codec,
+       .flags  = MC13XXX_USE_TOUCHSCREEN | MC13XXX_USE_RTC | MC13XXX_USE_CODEC,
+
+};
+
+static struct imx_ssi_platform_data mx31_3ds_ssi_pdata = {
+       .flags = IMX_SSI_DMA | IMX_SSI_NET,
 };
 
 /* SPI */
@@ -741,6 +757,10 @@ static void __init mx31_3ds_init(void)
        }
 
        mx31_3ds_init_camera();
+
+       imx31_add_imx_ssi(0, &mx31_3ds_ssi_pdata);
+
+       imx_add_platform_device("imx_mc13783", 0, NULL, 0, NULL, 0);
 }
 
 static void __init mx31_3ds_timer_init(void)