summaryrefslogtreecommitdiff
path: root/arch/arm/mach-mx5/board-mx53_ard.c
diff options
context:
space:
mode:
authorAlan Tull <alan.tull@freescale.com>2011-05-18 16:32:35 -0500
committerJason Liu <r64343@freescale.com>2012-01-09 20:08:43 +0800
commit78534a1bbe94c1bc5796e7018c63ff170232e79d (patch)
treededc9db5da181e9dafa1b6aaba2849bbff066b69 /arch/arm/mach-mx5/board-mx53_ard.c
parentfd99ee21358e8c41f7dfda488e8bd5afd1445a45 (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-xarch/arm/mach-mx5/board-mx53_ard.c18
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,