summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2012-10-12 10:02:35 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2012-10-12 15:37:08 +0200
commit4275124e9b00e1858a5f3acfa80f12b6e1456d5a (patch)
tree37cdaef119044d01f9aeb22125406ca9887a69f7
parentbsp/lpc24xx: Fix warnings (diff)
downloadrtems-4275124e9b00e1858a5f3acfa80f12b6e1456d5a.tar.bz2
bsp/lpc24xx: Enable USB clock by PLL0 for LPC17XX
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/misc/io.c13
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 ad74164b80..b16615e5d8 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 {