summaryrefslogtreecommitdiff
path: root/arch/arm/mach-mx5/mx53_loco.c
diff options
context:
space:
mode:
authorLily Zhang <r58066@freescale.com>2011-01-05 13:19:04 +0800
committerAlan Tull <alan.tull@freescale.com>2011-02-03 16:36:11 -0600
commit9e81bc3e98f47e0e1e4a434ea3527f559af530d5 (patch)
treef1c3b48ecf5bbc6f366235f06d1778815324bc9b /arch/arm/mach-mx5/mx53_loco.c
parent50ea5d196ff092190bc2a9df91a3340768c47ecf (diff)
ENGR00136007-1 MX53 TO2.0: Add ASRC support
Add ASRC support for MX53 TO2.0: - Add ASRC clock support - MX53 clk source is different from MX35. Add clk map version. - Add ASRC resource data. Get ASRC irq from resource data - Add ASRC support for all MX53 boards Signed-off-by: Lily Zhang <r58066@freescale.com>
Diffstat (limited to 'arch/arm/mach-mx5/mx53_loco.c')
-rw-r--r--arch/arm/mach-mx5/mx53_loco.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/arm/mach-mx5/mx53_loco.c b/arch/arm/mach-mx5/mx53_loco.c
index a60c9a2d052c..673b88f1e989 100644
--- a/arch/arm/mach-mx5/mx53_loco.c
+++ b/arch/arm/mach-mx5/mx53_loco.c
@@ -682,6 +682,11 @@ static struct platform_device mxc_sgtl5000_device = {
.name = "imx-3stack-sgtl5000",
};
+static struct mxc_asrc_platform_data mxc_asrc_data = {
+ .channel_bits = 4,
+ .clk_map_ver = 2,
+};
+
static struct mxc_spdif_platform_data mxc_spdif_data = {
.spdif_tx = 1,
.spdif_rx = 0,
@@ -861,6 +866,15 @@ static void __init mxc_board_init(void)
mxc_register_device(&mxc_alsa_spdif_device, &mxc_spdif_data);
mxc_register_device(&ahci_fsl_device, &sata_data);
mxc_register_device(&mxc_fec_device, &fec_data);
+ /* ASRC is only available for MX53 TO2.0 */
+ if (cpu_is_mx53_rev(CHIP_REV_2_0) >= 1) {
+ mxc_asrc_data.asrc_core_clk = clk_get(NULL, "asrc_clk");
+ clk_put(mxc_asrc_data.asrc_core_clk);
+ mxc_asrc_data.asrc_audio_clk = clk_get(NULL, "asrc_serial_clk");
+ clk_set_rate(mxc_asrc_data.asrc_audio_clk, 1190000);
+ clk_put(mxc_asrc_data.asrc_audio_clk);
+ mxc_register_device(&mxc_asrc_device, &mxc_asrc_data);
+ }
i2c_register_board_info(0, mxc_i2c0_board_info,
ARRAY_SIZE(mxc_i2c0_board_info));