usb: Cofnigure PLLB according to board.h BOARD_MAINOSC
Actually we don't even need to use PLLB for USB and could simply use
PLLA, but then we don't c are about the extra 2.5mA
diff --git a/firmware/src_simtrace/usb.c b/firmware/src_simtrace/usb.c
index c757659..f24ee05 100644
--- a/firmware/src_simtrace/usb.c
+++ b/firmware/src_simtrace/usb.c
@@ -769,6 +769,14 @@
STRING_DESC_CNT /* cnt string descriptors in list */
};
+#if (BOARD_MAINOSC == 12000000)
+#define PLLB_CFG (CKGR_PLLBR_DIVB(2)|CKGR_PLLBR_MULB(8-1)|CKGR_PLLBR_PLLBCOUNT_Msk)
+#elif (BOARD_MAINOSC == 18432000)
+#define PLLB_CFG (CKGR_PLLBR_DIVB(5)|CKGR_PLLBR_MULB(13-1)|CKGR_PLLBR_PLLBCOUNT_Msk)
+#else
+#error "Please configure PLLB for your MAINOSC freq"
+#endif
+
/*----------------------------------------------------------------------------
* Functions
*----------------------------------------------------------------------------*/
@@ -779,9 +787,7 @@
static void _ConfigureUsbClock(void)
{
/* Enable PLLB for USB */
- PMC->CKGR_PLLBR = CKGR_PLLBR_DIVB(5)
- | CKGR_PLLBR_MULB(0xc) /* MULT+1=0xd */
- | CKGR_PLLBR_PLLBCOUNT_Msk;
+ PMC->CKGR_PLLBR = PLLB_CFG;
while ((PMC->PMC_SR & PMC_SR_LOCKB) == 0) ;
/* USB Clock uses PLLB */