diff options
Diffstat (limited to 'arch/arm/mach-omap2/dpll3xxx.c')
-rw-r--r-- | arch/arm/mach-omap2/dpll3xxx.c | 14 |
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); |