[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