diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2012-10-12 10:02:35 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2012-10-12 15:37:08 +0200 |
commit | 4275124e9b00e1858a5f3acfa80f12b6e1456d5a (patch) | |
tree | 37cdaef119044d01f9aeb22125406ca9887a69f7 | |
parent | bsp/lpc24xx: Fix warnings (diff) | |
download | rtems-4275124e9b00e1858a5f3acfa80f12b6e1456d5a.tar.bz2 |
bsp/lpc24xx: Enable USB clock by PLL0 for LPC17XX
-rw-r--r-- | 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 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 { |