SAMA5 OHCI: When UPLL drives OHCI the logically correct divider of 10 does not work; But a divider of 5 does. Why?

This commit is contained in:
Gregory Nutt 2013-09-19 16:10:46 -06:00
parent 07cca4b318
commit f72ad05d0f

View File

@ -397,9 +397,16 @@ static inline void sam_usbclockconfig(void)
/* 7) Program the OHCI clocks (UHP48M and UHP12M) with USBDIV field in /* 7) Program the OHCI clocks (UHP48M and UHP12M) with USBDIV field in
* PMC_USB register. USBDIV must be 9 (division by 10) if UPLLCK is * PMC_USB register. USBDIV must be 9 (division by 10) if UPLLCK is
* selected. * selected.
*
* REVISIT: The divisor of 10 produces a rate that is too high. Division
* by 5, however, seems to work just fine. No idea why?
*/ */
regval |= PMC_USB_USBDIV(9); #if 1 /* REVISIT */
regval |= PMC_USB_USBDIV(4); /* Division by 5 */
#else
regval |= PMC_USB_USBDIV(9); /* Division by 10 */
#endif
putreg32(regval, SAM_PMC_USB); putreg32(regval, SAM_PMC_USB);
#else /* BOARD_USE_UPLL */ #else /* BOARD_USE_UPLL */