From 4e478eafc0743481af0edaa5fa65571c14692da2 Mon Sep 17 00:00:00 2001 From: Matt Sealey Date: Thu, 19 Aug 2010 17:40:02 -0500 Subject: [PATCH] fix audio clock rate bug --- arch/arm/mach-mx5/mx51_efikamx_audio.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/arch/arm/mach-mx5/mx51_efikamx_audio.c b/arch/arm/mach-mx5/mx51_efikamx_audio.c index 8f58c2f81c3..36fcb963841 100644 --- a/arch/arm/mach-mx5/mx51_efikamx_audio.c +++ b/arch/arm/mach-mx5/mx51_efikamx_audio.c @@ -98,6 +98,9 @@ static struct mxc_spdif_platform_data mx51_efikamx_spdif_data = { void mx51_efikamx_init_audio(void) { + struct clk *ssi_ext1; + int rate; + CONFIG_IOMUX(mx51_efikamx_audio_iomux_pins); /* TODO: move these two to the IOMUX stuff above */ @@ -119,9 +122,11 @@ void mx51_efikamx_init_audio(void) mxc_register_device(&mxc_ssi1_device, NULL); mxc_register_device(&mxc_ssi2_device, NULL); - if (cpu_is_mx51_rev(CHIP_REV_1_1) == 2) { - mx51_efikamx_audio_data.sysclk = 26000000; - } + ssi_ext1 = clk_get(NULL, "ssi_ext1_clk"); + rate = clk_round_rate(ssi_ext1, 24000000); + clk_set_rate(ssi_ext1, rate); + clk_enable(ssi_ext1); + mx51_efikamx_audio_data.sysclk = rate; gpio_request(IOMUX_TO_GPIO(EFIKAMX_AMP_ENABLE), "audio_amp_enable"); gpio_direction_output(IOMUX_TO_GPIO(EFIKAMX_AMP_ENABLE), 0);