summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Shiyan <shc_work@mail.ru>2012-05-30 15:21:45 +0400
committerSascha Hauer <s.hauer@pengutronix.de>2012-05-31 09:00:07 +0200
commit434782f84a8750c83b1d607f8f76f6537c6c26b7 (patch)
tree9a6cf633f0fbb5aa674a49db920fa79333af30ed
parent1ce796674583f4dc8ff219dd68864fc4ea34be49 (diff)
downloadbarebox-434782f84a8750c83b1d607f8f76f6537c6c26b7.tar.gz
barebox-434782f84a8750c83b1d607f8f76f6537c6c26b7.tar.xz
i.MX51 clock: Added USB clock to dump_clocks command.
Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--arch/arm/mach-imx/speed-imx51.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/speed-imx51.c b/arch/arm/mach-imx/speed-imx51.c
index b691d37da2..a94b392cd7 100644
--- a/arch/arm/mach-imx/speed-imx51.c
+++ b/arch/arm/mach-imx/speed-imx51.c
@@ -199,6 +199,28 @@ unsigned long imx_get_mmcclk(void)
return rate / (prediv * podf);
}
+unsigned long imx_get_usbclk(void)
+{
+ u32 reg, prediv, podf, rate;
+
+ reg = ccm_readl(MX5_CCM_CSCMR1);
+ reg &= MX5_CCM_CSCMR1_USBOH3_CLK_SEL_MASK;
+ reg >>= MX5_CCM_CSCMR1_USBOH3_CLK_SEL_OFFSET;
+ rate = get_rate_select(reg,
+ pll1_main_get_rate,
+ pll2_sw_get_rate,
+ pll3_sw_get_rate,
+ lp_apm_get_rate);
+
+ reg = ccm_readl(MX5_CCM_CSCDR1);
+ prediv = ((reg & MX5_CCM_CSCDR1_USBOH3_CLK_PRED_MASK) >>
+ MX5_CCM_CSCDR1_USBOH3_CLK_PRED_OFFSET) + 1;
+ podf = ((reg & MX5_CCM_CSCDR1_USBOH3_CLK_PODF_MASK) >>
+ MX5_CCM_CSCDR1_USBOH3_CLK_PODF_OFFSET) + 1;
+
+ return rate / (prediv * podf);
+}
+
void imx_dump_clocks(void)
{
printf("pll1: %ld\n", pll1_main_get_rate());
@@ -209,4 +231,5 @@ void imx_dump_clocks(void)
printf("ipg: %ld\n", imx_get_ipgclk());
printf("fec: %ld\n", imx_get_fecclk());
printf("gpt: %ld\n", imx_get_gptclk());
+ printf("usb: %ld\n", imx_get_usbclk());
}