You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by gn...@apache.org on 2020/03/07 19:07:46 UTC
[incubator-nuttx] branch master updated: Changes for Freedom K28
USB device support
This is an automated email from the ASF dual-hosted git repository.
gnutt pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
The following commit(s) were added to refs/heads/master by this push:
new 050e45b Changes for Freedom K28 USB device support
050e45b is described below
commit 050e45bfe70e55ffab560267c3001b164c24445a
Author: Johanne Schock <jo...@nivus.com>
AuthorDate: Sat Mar 7 14:40:52 2020 +0100
Changes for Freedom K28 USB device support
---
arch/arm/src/kinetis/hardware/kinetis_k28memorymap.h | 2 +-
boards/arm/kinetis/freedom-k28f/include/board.h | 19 +++++++++----------
boards/arm/kinetis/freedom-k28f/src/k28_bringup.c | 15 +++++++++++++++
3 files changed, 25 insertions(+), 11 deletions(-)
diff --git a/arch/arm/src/kinetis/hardware/kinetis_k28memorymap.h b/arch/arm/src/kinetis/hardware/kinetis_k28memorymap.h
index c651a88..90a48d5 100644
--- a/arch/arm/src/kinetis/hardware/kinetis_k28memorymap.h
+++ b/arch/arm/src/kinetis/hardware/kinetis_k28memorymap.h
@@ -144,7 +144,7 @@
# define KINETIS_OSC_BASE 0x40065000 /* System oscillator (OSC) */
# define KINETIS_I2C0_BASE 0x40066000 /* I2C 0 */
# define KINETIS_I2C1_BASE 0x40067000 /* I2C 1 */
-# define KINETIS_USBOTGFS_BASE 0x40072000 /* USB OTG FS/LS */
+# define KINETIS_USB0_BASE 0x40072000 /* USB OTG FS/LS */
# define KINETIS_2C2D_BASE 0x40073000 /* 2C2D (Analog comparator (CMP) /
* 6-bit digital-to-analog converter (DAC)) */
# define KINETIS_VREF_BASE 0x40074000 /* Voltage reference (VREF) */
diff --git a/boards/arm/kinetis/freedom-k28f/include/board.h b/boards/arm/kinetis/freedom-k28f/include/board.h
index 8dcee67..4f80aa7 100644
--- a/boards/arm/kinetis/freedom-k28f/include/board.h
+++ b/boards/arm/kinetis/freedom-k28f/include/board.h
@@ -84,7 +84,7 @@
*/
#define BOARD_PRDIV 1 /* PLL External Reference Divider */
-#define BOARD_VDIV 25 /* PLL VCO Divider (frequency multiplier) */
+#define BOARD_VDIV 24 /* PLL VCO Divider (frequency multiplier) */
/* Define additional MCG_C2 Setting */
@@ -97,10 +97,10 @@
/* SIM CLKDIV1 dividers */
-#define BOARD_OUTDIV1 1 /* Core = MCG, 180 MHz */
-#define BOARD_OUTDIV2 3 /* Bus = MCG / 3, 60 MHz */
-#define BOARD_OUTDIV3 3 /* FlexBus = MCG / 3, 60 MHz */
-#define BOARD_OUTDIV4 7 /* Flash clock = MCG / 7, 25.7 MHz */
+#define BOARD_OUTDIV1 1 /* Core = MCG, 144 MHz */
+#define BOARD_OUTDIV2 2 /* Bus = MCG / 2, 72 MHz */
+#define BOARD_OUTDIV3 2 /* FlexBus = MCG / 2, 72 MHz */
+#define BOARD_OUTDIV4 6 /* Flash clock = MCG / 6, 24 MHz */
#define BOARD_CORECLK_FREQ (BOARD_MCG_FREQ / BOARD_OUTDIV1)
#define BOARD_BUS_FREQ (BOARD_MCG_FREQ / BOARD_OUTDIV2)
@@ -117,13 +117,12 @@
/* N.B. The above BOARD_SOPT2_FREQ precludes use of USB with a 12 MHz Xtal
* Divider output clock = Divider input clock × [ (USBFRAC+1) / (USBDIV+1) ]
* SIM_CLKDIV2_FREQ = BOARD_SOPT2_FREQ × [ (USBFRAC+1) / (USBDIV+1) ]
- * 48MHz = 168MHz X [(1 + 1) / (6 + 1)]
- * 48MHz = 168MHz / (6 + 1) * (1 + 1)
+* 48MHz = 144MHz / (2 + 1) * (1 + 0)
*/
-#if (BOARD_MCG_FREQ == 168000000L)
-# define BOARD_SIM_CLKDIV2_USBFRAC 2
-# define BOARD_SIM_CLKDIV2_USBDIV 7
+#if (BOARD_SOPT2_FREQ == 144000000L)
+# define BOARD_SIM_CLKDIV2_USBFRAC 1
+# define BOARD_SIM_CLKDIV2_USBDIV 3
# define BOARD_SIM_CLKDIV2_FREQ (BOARD_SOPT2_FREQ / \
BOARD_SIM_CLKDIV2_USBDIV * \
BOARD_SIM_CLKDIV2_USBFRAC)
diff --git a/boards/arm/kinetis/freedom-k28f/src/k28_bringup.c b/boards/arm/kinetis/freedom-k28f/src/k28_bringup.c
index 4bb3671..8f9b8c7 100644
--- a/boards/arm/kinetis/freedom-k28f/src/k28_bringup.c
+++ b/boards/arm/kinetis/freedom-k28f/src/k28_bringup.c
@@ -47,6 +47,10 @@
#include "freedom-k28f.h"
+#ifdef CONFIG_PL2303
+# include <nuttx/usb/pl2303.h>
+#endif
+
/****************************************************************************
* Public Functions
****************************************************************************/
@@ -130,6 +134,17 @@ int k28_bringup(void)
k28_automount_initialize();
#endif
+#if defined(CONFIG_USBDEV) && defined(CONFIG_KINETIS_USBOTG)
+ if (k28_usbdev_initialize)
+ {
+ k28_usbdev_initialize();
+ }
+#endif
+
+#ifdef CONFIG_PL2303
+ usbdev_serialinitialize(0);
+#endif
+
UNUSED(ret);
return OK;
}