an oops on boot for all omap3xxx platforms that use usbhs_omap for EHCI. The actual oops comes from faulty ehci-omap cleanup, but the failure caused by the change is evidenced here: [ 3.655059] ehci-omap ehci-omap.0: utmi_p1_gfclk failed error:-2 [ 3.661376] ehci-omap: probe of ehci-omap.0 failed with error -2 utmi_p1_gfclk is a clock that exists on OMAP4, but not OMAP3. In the OMAP3 case, it is configured as a dummy clock. However, OMAP4 lists the dev_id as NULL, but OMAP3 lists it as "usbhs_omap". Attempting to get that clock from ehci-omap then fails. The solution is to just change the clock3xxx_data.c for dummy clocks used in the errata fix to match the dev_id, NULL, used in clock44xx_data.c. Tested on BB-xM.
Unified · Split
| @@ -3391,15 +3391,15 @@ static struct omap_clk omap3xxx_clks[] = { · 3390 unmodified lines | ||
| 3391 | 3391 | CLK(NULL, "usbhost_48m_fck", &usbhost_48m_fck, CK_3430ES2PLUS | CK_AM35XX | CK_36XX), |
| 3392 | 3392 | CLK(NULL, "usbhost_ick", &usbhost_ick, CK_3430ES2PLUS | CK_AM35XX | CK_36XX), |
| 3393 | 3393 | CLK("usbhs_omap", "usbhost_ick", &usbhost_ick, CK_3430ES2PLUS | CK_AM35XX | CK_36XX), |
| 3394 | − CLK("usbhs_omap", "utmi_p1_gfclk", &dummy_ck, CK_3XXX), | |
| 3395 | − CLK("usbhs_omap", "utmi_p2_gfclk", &dummy_ck, CK_3XXX), | |
| 3396 | − CLK("usbhs_omap", "xclk60mhsp1_ck", &dummy_ck, CK_3XXX), | |
| 3397 | − CLK("usbhs_omap", "xclk60mhsp2_ck", &dummy_ck, CK_3XXX), | |
| 3398 | − CLK("usbhs_omap", "usb_host_hs_utmi_p1_clk", &dummy_ck, CK_3XXX), | |
| 3399 | − CLK("usbhs_omap", "usb_host_hs_utmi_p2_clk", &dummy_ck, CK_3XXX), | |
| 3394 | + CLK(NULL, "utmi_p1_gfclk", &dummy_ck, CK_3XXX), | |
| 3395 | + CLK(NULL, "utmi_p2_gfclk", &dummy_ck, CK_3XXX), | |
| 3396 | + CLK(NULL, "xclk60mhsp1_ck", &dummy_ck, CK_3XXX), | |
| 3397 | + CLK(NULL, "xclk60mhsp2_ck", &dummy_ck, CK_3XXX), | |
| 3398 | + CLK(NULL, "usb_host_hs_utmi_p1_clk", &dummy_ck, CK_3XXX), | |
| 3399 | + CLK(NULL, "usb_host_hs_utmi_p2_clk", &dummy_ck, CK_3XXX), | |
| 3400 | 3400 | CLK("usbhs_omap", "usb_tll_hs_usb_ch0_clk", &dummy_ck, CK_3XXX), |
| 3401 | 3401 | CLK("usbhs_omap", "usb_tll_hs_usb_ch1_clk", &dummy_ck, CK_3XXX), |
| 3402 | − CLK("usbhs_omap", "init_60m_fclk", &dummy_ck, CK_3XXX), | |
| 3402 | + CLK(NULL, "init_60m_fclk", &dummy_ck, CK_3XXX), | |
| 3403 | 3403 | CLK(NULL, "usim_fck", &usim_fck, CK_3430ES2PLUS | CK_36XX), |
| 3404 | 3404 | CLK(NULL, "gpt1_fck", &gpt1_fck, CK_3XXX), |
| 3405 | 3405 | CLK(NULL, "wkup_32k_fck", &wkup_32k_fck, CK_3XXX), |