diff options
author | Justin Waters <justin.waters@timesys.com> | 2010-04-01 13:46:02 -0400 |
---|---|---|
committer | Justin Waters <justin.waters@timesys.com> | 2010-04-01 17:05:41 -0400 |
commit | 884583ec77425b574d9e4475a8e4dcd798bddf9c (patch) | |
tree | 15956d7c4891fa1df2cc783b3a312a838cfda382 /arch | |
parent | 60d629efdc22297ea54645152455be6f37a5aa38 (diff) |
Add support for WM8753 codec on the CCWMX51
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-mx51/mx51_ccwmx51js.c | 23 | ||||
-rw-r--r-- | arch/arm/mach-mx51/mx51_ccwmx51js_gpio.c | 26 |
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, |