Hi John, Attached is a somewhat cleaned up version of the USB patch that seems to work on my pandaboard. I figured you could include it in your new u-boot-linaro-stable repository in lieu of the other one. I'm not quite sure how you want patches to work; do you want me to submit patches to you, or should I just try to send them to upstream u-boot as I have them?
Thanks, -- Chris Lalancette
From a93c7563e440f952211b0e2c09e63cf0e4395315 Mon Sep 17 00:00:00 2001 From: Chris Lalancette <clalance...@gmail.com> Date: Mon, 12 Dec 2011 10:16:19 -0500 Subject: [PATCH] Initialize the USB phy during panda misc_init_r. This allows the USB hub (along with ethernet) to work within Linux. Signed-off-by: Chris Lalancette <clalance...@gmail.com> --- arch/arm/include/asm/arch-omap4/omap.h | 42 ++++++++++++++++++++++++++++++++ board/ti/panda/panda.c | 16 ++++++++++++ 2 files changed, 58 insertions(+), 0 deletions(-) diff --git a/arch/arm/include/asm/arch-omap4/omap.h b/arch/arm/include/asm/arch-omap4/omap.h index 4d8c89f..bdda199 100644 --- a/arch/arm/include/asm/arch-omap4/omap.h +++ b/arch/arm/include/asm/arch-omap4/omap.h @@ -165,6 +165,48 @@ struct control_lpddr2io_regs { unsigned int control_lpddr2io2_2; unsigned int control_lpddr2io2_3; }; + +struct omap4_scrm_regs { + u32 revision; /* 0x0000 */ + u32 pad00[63]; + u32 clksetuptime; /* 0x0100 */ + u32 pmicsetuptime; /* 0x0104 */ + u32 pad01[2]; + u32 altclksrc; /* 0x0110 */ + u32 pad02[2]; + u32 c2cclkm; /* 0x011c */ + u32 pad03[56]; + u32 extclkreq; /* 0x0200 */ + u32 accclkreq; /* 0x0204 */ + u32 pwrreq; /* 0x0208 */ + u32 pad04[1]; + u32 auxclkreq0; /* 0x0210 */ + u32 auxclkreq1; /* 0x0214 */ + u32 auxclkreq2; /* 0x0218 */ + u32 auxclkreq3; /* 0x021c */ + u32 auxclkreq4; /* 0x0220 */ + u32 auxclkreq5; /* 0x0224 */ + u32 pad05[3]; + u32 c2cclkreq; /* 0x0234 */ + u32 pad06[54]; + u32 auxclk0; /* 0x0310 */ + u32 auxclk1; /* 0x0314 */ + u32 auxclk2; /* 0x0318 */ + u32 auxclk3; /* 0x031c */ + u32 auxclk4; /* 0x0320 */ + u32 auxclk5; /* 0x0324 */ + u32 pad07[54]; + u32 rsttime_reg; /* 0x0400 */ + u32 pad08[6]; + u32 c2crstctrl; /* 0x041c */ + u32 extpwronrstctrl; /* 0x0420 */ + u32 pad09[59]; + u32 extwarmrstst_reg; /* 0x0510 */ + u32 apewarmrstst_reg; /* 0x0514 */ + u32 pad10[1]; + u32 c2cwarmrstst_reg; /* 0x051C */ +}; + #endif /* __ASSEMBLY__ */ /* diff --git a/board/ti/panda/panda.c b/board/ti/panda/panda.c index b4271fb..6f847c4 100644 --- a/board/ti/panda/panda.c +++ b/board/ti/panda/panda.c @@ -33,6 +33,8 @@ const struct omap_sysinfo sysinfo = { "Board: OMAP4 Panda\n" }; +struct omap4_scrm_regs *const scrm = (struct omap4_scrm_regs *)0x4a30a000; + /** * @brief board_init * @@ -62,6 +64,20 @@ int board_eth_init(bd_t *bis) */ int misc_init_r(void) { + if (omap_revision() != OMAP4430_ES1_0) { + /* Enable the USB phy */ + /* enable software ioreq */ + sr32(&scrm->auxclk3, 8, 1, 0x1); + /* set for sys_clk (38.4MHz) */ + sr32(&scrm->auxclk3, 1, 2, 0x0); + /* set divisor to 2 */ + sr32(&scrm->auxclk3, 16, 4, 0x1); + /* set the clock source to active */ + sr32(&scrm->altclksrc, 0, 1, 0x1); + /* enable clocks */ + sr32(&scrm->altclksrc, 2, 2, 0x3); + } + return 0; } -- 1.7.1
_______________________________________________ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev