diff options
author | Alan Tull <alan.tull@freescale.com> | 2011-05-18 16:32:35 -0500 |
---|---|---|
committer | Jason Liu <r64343@freescale.com> | 2012-01-09 20:08:43 +0800 |
commit | 78534a1bbe94c1bc5796e7018c63ff170232e79d (patch) | |
tree | dedc9db5da181e9dafa1b6aaba2849bbff066b69 /arch/arm/mach-mx5/board-mx53_ard.c | |
parent | fd99ee21358e8c41f7dfda488e8bd5afd1445a45 (diff) |
ENGR00139461-1 mxc alsa soc spdif driver
S/PDIF tx and rx using ASoC layer.
Signed-off-by: Alan Tull <alan.tull@freescale.com>
Diffstat (limited to 'arch/arm/mach-mx5/board-mx53_ard.c')
-rwxr-xr-x | arch/arm/mach-mx5/board-mx53_ard.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/arm/mach-mx5/board-mx53_ard.c b/arch/arm/mach-mx5/board-mx53_ard.c index d728de1123b0..101c11fcea24 100755 --- a/arch/arm/mach-mx5/board-mx53_ard.c +++ b/arch/arm/mach-mx5/board-mx53_ard.c @@ -123,6 +123,9 @@ static iomux_v3_cfg_t mx53_ard_pads[] = { /* TOUCH_INT_B */ MX53_PAD_GPIO_17__GPIO7_12, + + /* MAINBRD_SPDIF_IN */ + MX53_PAD_KEY_COL3__SPDIF_IN1, }; /* Config CS1 settings for ethernet controller */ @@ -211,6 +214,15 @@ static struct i2c_board_info mxc_i2c2_board_info[] __initdata = { }, }; +static struct mxc_spdif_platform_data mxc_spdif_data = { + .spdif_tx = 0, + .spdif_rx = 1, + .spdif_clk_44100 = 0, /* Souce from CKIH1 for 44.1K */ + .spdif_clk_48000 = 7, /* Source from CKIH2 for 48k and 32k */ + .spdif_clkid = 0, + .spdif_clk = NULL, /* spdif bus clk */ +}; + static inline void mx53_ard_init_uart(void) { imx53_add_imx_uart(0, NULL); @@ -229,6 +241,8 @@ static void __init mx53_ard_board_init(void) { mxc_iomux_v3_setup_multiple_pads(mx53_ard_pads, ARRAY_SIZE(mx53_ard_pads)); + mxc_spdif_data.spdif_core_clk = clk_get(NULL, "spdif_xtal_clk"); + clk_put(mxc_spdif_data.spdif_core_clk); mx53_ard_init_uart(); imx53_add_srtc(); imx53_add_imx2_wdt(0, NULL); @@ -241,6 +255,10 @@ static void __init mx53_ard_board_init(void) imx53_add_imx_i2c(1, &mx53_ard_i2c1_data); imx53_add_imx_i2c(2, &mx53_ard_i2c2_data); + imx53_add_spdif(&mxc_spdif_data); + imx53_add_spdif_dai(); + imx53_add_spdif_audio_device(); + i2c_register_board_info(1, mxc_i2c1_board_info, ARRAY_SIZE(mxc_i2c1_board_info)); i2c_register_board_info(2, mxc_i2c2_board_info, |