[rtems commit] bsp/lpc24xx: Enable USB clock by PLL0 for LPC17XX
Sebastian Huber
sebh at rtems.org
Fri Oct 12 13:38:00 UTC 2012
Module: rtems
Branch: master
Commit: 4275124e9b00e1858a5f3acfa80f12b6e1456d5a
Changeset: http://git.rtems.org/rtems/commit/?id=4275124e9b00e1858a5f3acfa80f12b6e1456d5a
Author: Sebastian Huber <sebastian.huber at embedded-brains.de>
Date: Fri Oct 12 10:02:35 2012 +0200
bsp/lpc24xx: Enable USB clock by PLL0 for LPC17XX
---
c/src/lib/libbsp/arm/lpc24xx/misc/io.c | 13 +++++++++++--
1 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/c/src/lib/libbsp/arm/lpc24xx/misc/io.c b/c/src/lib/libbsp/arm/lpc24xx/misc/io.c
index ad74164..b16615e 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/misc/io.c
+++ b/c/src/lib/libbsp/arm/lpc24xx/misc/io.c
@@ -289,8 +289,17 @@ static rtems_status_code lpc24xx_module_do_enable(
USBCLKCFG = usbsel;
#else
- /* FIXME */
- scb->usbclksel = 0;
+ uint32_t pllclk = lpc24xx_pllclk();
+ uint32_t usbclk = 48000000U;
+
+ if (pllclk % usbclk == 0U) {
+ uint32_t usbdiv = pllclk / usbclk;
+
+ scb->usbclksel = LPC17XX_SCB_USBCLKSEL_USBDIV(usbdiv)
+ | LPC17XX_SCB_USBCLKSEL_USBSEL(1);
+ } else {
+ return RTEMS_INCORRECT_STATE;
+ }
#endif
}
} else {
More information about the vc
mailing list