summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorJustin Waters <justin.waters@timesys.com>2010-04-01 13:46:02 -0400
committerJustin Waters <justin.waters@timesys.com>2010-04-01 17:05:41 -0400
commit884583ec77425b574d9e4475a8e4dcd798bddf9c (patch)
tree15956d7c4891fa1df2cc783b3a312a838cfda382 /arch
parent60d629efdc22297ea54645152455be6f37a5aa38 (diff)
Add support for WM8753 codec on the CCWMX51
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-mx51/mx51_ccwmx51js.c23
-rw-r--r--arch/arm/mach-mx51/mx51_ccwmx51js_gpio.c26
2 files changed, 49 insertions, 0 deletions
diff --git a/arch/arm/mach-mx51/mx51_ccwmx51js.c b/arch/arm/mach-mx51/mx51_ccwmx51js.c
index 108d0ad4a79f..bced747df9a1 100644
--- a/arch/arm/mach-mx51/mx51_ccwmx51js.c
+++ b/arch/arm/mach-mx51/mx51_ccwmx51js.c
@@ -250,6 +250,7 @@ static inline void mxc_init_fb(void)
#ifdef CONFIG_I2C_MXC_SELECT2
static struct i2c_board_info mxc_i2c1_board_info[] __initdata = {
+ {I2C_BOARD_INFO("wm8753",0x1a)},
};
#endif
@@ -555,6 +556,27 @@ static void mxc_power_off(void)
(PWGT1SPIEN|PWGT2SPIEN));
}
+static struct mxc_audio_platform_data wm8753_data = {
+ .ssi_num = 1,
+ .src_port = 2,
+ .ext_port = 3,
+ .sysclk = 11289600, // So we can do 44.1 kHz
+};
+
+static struct platform_device mxc_wm8753_device = {
+ .name = "imx-ccwmx51js-wm8753",
+ .dev = {
+ .release = mxc_nop_release,
+ .platform_data = &wm8753_data,
+ },
+};
+
+static void mxc_init_wm8753(void)
+{
+ platform_device_register(&mxc_wm8753_device);
+}
+
+
/*!
* Board specific initialization.
*/
@@ -569,6 +591,7 @@ static void __init mxc_board_init(void)
mxc_init_mmc();
mx51_ccwmx51js_init_mc13892();
+ mxc_init_wm8753();
#if defined(CONFIG_MTD) || defined(CONFIG_MTD_MODULE)
ccwmx51_init_nand_mtd();
diff --git a/arch/arm/mach-mx51/mx51_ccwmx51js_gpio.c b/arch/arm/mach-mx51/mx51_ccwmx51js_gpio.c
index de7d5f3cc811..6e7ea3e27a2e 100644
--- a/arch/arm/mach-mx51/mx51_ccwmx51js_gpio.c
+++ b/arch/arm/mach-mx51/mx51_ccwmx51js_gpio.c
@@ -53,6 +53,32 @@ static struct mxc_iomux_pin_cfg __initdata mxc_iomux_pins[] = {
(PAD_CTL_HYS_ENABLE | PAD_CTL_PKE_ENABLE | PAD_CTL_DRV_HIGH |
PAD_CTL_SRE_FAST),
},
+#if defined(CONFIG_SND_SOC_IMX_CCWMX51JS) || defined(CONFIG_SND_SOC_IMX_CCWMX51JS_MODULE)
+ {
+ MX51_PIN_AUD3_BB_TXD, IOMUX_CONFIG_ALT0,
+ (PAD_CTL_SRE_FAST | PAD_CTL_DRV_HIGH | PAD_CTL_ODE_OPENDRAIN_NONE |
+ PAD_CTL_100K_PU | PAD_CTL_HYS_NONE | PAD_CTL_DDR_INPUT_CMOS |
+ PAD_CTL_DRV_VOT_LOW),
+ },
+ {
+ MX51_PIN_AUD3_BB_RXD, IOMUX_CONFIG_ALT0,
+ (PAD_CTL_SRE_FAST | PAD_CTL_DRV_HIGH | PAD_CTL_ODE_OPENDRAIN_NONE |
+ PAD_CTL_100K_PU | PAD_CTL_HYS_NONE | PAD_CTL_DDR_INPUT_CMOS |
+ PAD_CTL_DRV_VOT_LOW),
+ },
+ {
+ MX51_PIN_AUD3_BB_CK, IOMUX_CONFIG_ALT0,
+ (PAD_CTL_SRE_FAST | PAD_CTL_DRV_HIGH | PAD_CTL_ODE_OPENDRAIN_NONE |
+ PAD_CTL_100K_PU | PAD_CTL_HYS_NONE | PAD_CTL_DDR_INPUT_CMOS |
+ PAD_CTL_DRV_VOT_LOW),
+ },
+ {
+ MX51_PIN_AUD3_BB_FS, IOMUX_CONFIG_ALT0,
+ (PAD_CTL_SRE_FAST | PAD_CTL_DRV_HIGH | PAD_CTL_ODE_OPENDRAIN_NONE |
+ PAD_CTL_100K_PU | PAD_CTL_HYS_NONE | PAD_CTL_DDR_INPUT_CMOS |
+ PAD_CTL_DRV_VOT_LOW),
+ },
+#endif
#if defined(CONFIG_FB_MXC_SYNC_PANEL) || defined(CONFIG_FB_MXC_SYNC_PANEL_MODULE)
{
MX51_PIN_DI1_PIN11, IOMUX_CONFIG_ALT4,