aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/dpll3xxx.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-omap2/dpll3xxx.c')
-rw-r--r--arch/arm/mach-omap2/dpll3xxx.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/dpll3xxx.c b/arch/arm/mach-omap2/dpll3xxx.c
index 73a1595..38207d5 100644
--- a/arch/arm/mach-omap2/dpll3xxx.c
+++ b/arch/arm/mach-omap2/dpll3xxx.c
@@ -77,6 +77,20 @@ static int _omap3_wait_dpll_status(struct clk *clk, u8 state)
if (i == MAX_DPLL_WAIT_TRIES) {
printk(KERN_ERR "clock: %s failed transition to '%s'\n",
clk->name, (state) ? "locked" : "bypassed");
+ /* Catch failing usb-dpll lock error */
+ if (!strcmp(clk->name, "dpll_usb_ck")) {
+ pr_info("\n========== USB DPLL DUMP ===========\n");
+ pr_info("CM_CLKMODE_DPLL_USB :%08x\n", omap_readl(0x4A008180));
+ pr_info("CM_IDLEST_DPLL_USB :%08x\n", omap_readl(0x4A008184));
+ pr_info("CM_AUTOIDLE_DPLL_USB :%08x\n", omap_readl(0x4A008188));
+ pr_info("CM_CLKSEL_DPLL_USB :%08x\n", omap_readl(0x4A00818C));
+ pr_info("CM_DIV_M2_DPLL_USB :%08x\n", omap_readl(0x4A008190));
+ pr_info("CM_SSC_DELTAMSTEP_DPLL_USB :%08x\n", omap_readl(0x4A0081A8));
+ pr_info("CM_SSC_MODFREQDIV_DPLL_USB :%08x\n", omap_readl(0x4A0081AC));
+ pr_info("CM_CLKDCOLDO_DPLL_USB :%08x\n", omap_readl(0x4A0081B4));
+ pr_info("========== USB DPLL DUMP: End ===========\n");
+ }
+
} else {
pr_debug("clock: %s transition to '%s' in %d loops\n",
clk->name, (state) ? "locked" : "bypassed", i);