board/freedom-k64f: Add usbdev support with cdcacm example
This commit is contained in:
parent
41bddc8461
commit
9f1017feb3
@ -3317,7 +3317,7 @@ static int khci_epconfigure(struct usbdev_ep_s *ep, const struct usb_epdesc_s *d
|
||||
if (!ep || !desc)
|
||||
{
|
||||
usbtrace(TRACE_DEVERROR(KHCI_TRACEERR_INVALIDPARMS), 0);
|
||||
uerr("ERROR: ep=%p desc=%p\n");
|
||||
uerr("ERROR: ep=%p desc=%p\n", ep, desc);
|
||||
return -EINVAL;
|
||||
}
|
||||
#endif
|
||||
|
69
boards/arm/kinetis/freedom-k64f/configs/cdcacm/defconfig
Normal file
69
boards/arm/kinetis/freedom-k64f/configs/cdcacm/defconfig
Normal file
@ -0,0 +1,69 @@
|
||||
#
|
||||
# This file is autogenerated: PLEASE DO NOT EDIT IT.
|
||||
#
|
||||
# You can use "make menuconfig" to make any modifications to the installed .config file.
|
||||
# You can then do "make savedefconfig" to generate a new defconfig file that includes your
|
||||
# modifications.
|
||||
#
|
||||
# CONFIG_ARCH_FPU is not set
|
||||
# CONFIG_MMCSD_MMCSUPPORT is not set
|
||||
CONFIG_ARCH="arm"
|
||||
CONFIG_ARCH_BOARD="freedom-k64f"
|
||||
CONFIG_ARCH_BOARD_FREEDOM_K64F=y
|
||||
CONFIG_ARCH_CHIP="kinetis"
|
||||
CONFIG_ARCH_CHIP_KINETIS=y
|
||||
CONFIG_ARCH_CHIP_MK64FN1M0VLL12=y
|
||||
CONFIG_ARCH_STACKDUMP=y
|
||||
CONFIG_BOARD_LOOPSPERMSEC=10016
|
||||
CONFIG_BUILTIN=y
|
||||
CONFIG_CDCACM=y
|
||||
CONFIG_DEBUG_NOOPT=y
|
||||
CONFIG_DISABLE_ENVIRON=y
|
||||
CONFIG_DISABLE_MQUEUE=y
|
||||
CONFIG_DISABLE_POSIX_TIMERS=y
|
||||
CONFIG_EXAMPLES_PWM=y
|
||||
CONFIG_FAT_LCNAMES=y
|
||||
CONFIG_FAT_LFN=y
|
||||
CONFIG_FS_FAT=y
|
||||
CONFIG_FS_PROCFS=y
|
||||
CONFIG_FS_PROCFS_REGISTER=y
|
||||
CONFIG_INTELHEX_BINARY=y
|
||||
CONFIG_KINETIS_FTM0=y
|
||||
CONFIG_KINETIS_FTM0_CHANNEL=2
|
||||
CONFIG_KINETIS_FTM0_PWM=y
|
||||
CONFIG_KINETIS_GPIOIRQ=y
|
||||
CONFIG_KINETIS_PORTEINTS=y
|
||||
CONFIG_KINETIS_SDHC=y
|
||||
CONFIG_KINETIS_UART0=y
|
||||
CONFIG_KINETIS_USBOTG=y
|
||||
CONFIG_MAX_TASKS=16
|
||||
CONFIG_MMCSD=y
|
||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
||||
CONFIG_MMCSD_SDIO=y
|
||||
CONFIG_MOTOROLA_SREC=y
|
||||
CONFIG_NFILE_DESCRIPTORS=8
|
||||
CONFIG_NSH_ARCHINIT=y
|
||||
CONFIG_NSH_BUILTIN_APPS=y
|
||||
CONFIG_NSH_DISABLE_IFUPDOWN=y
|
||||
CONFIG_NSH_FILEIOSIZE=512
|
||||
CONFIG_NSH_LINELEN=64
|
||||
CONFIG_NSH_READLINE=y
|
||||
CONFIG_PREALLOC_TIMERS=4
|
||||
CONFIG_PWM=y
|
||||
CONFIG_RAM_SIZE=131072
|
||||
CONFIG_RAM_START=0x1fff0000
|
||||
CONFIG_RAW_BINARY=y
|
||||
CONFIG_RR_INTERVAL=200
|
||||
CONFIG_SCHED_HPWORK=y
|
||||
CONFIG_SCHED_WAITPID=y
|
||||
CONFIG_SDCLONE_DISABLE=y
|
||||
CONFIG_START_DAY=25
|
||||
CONFIG_START_MONTH=3
|
||||
CONFIG_START_YEAR=2013
|
||||
CONFIG_SYSTEM_CDCACM=y
|
||||
CONFIG_SYSTEM_NSH=y
|
||||
CONFIG_TASK_NAME_SIZE=0
|
||||
CONFIG_UART0_SERIAL_CONSOLE=y
|
||||
CONFIG_USBDEV=y
|
||||
CONFIG_USBDEV_DUALSPEED=y
|
||||
CONFIG_USER_ENTRYPOINT="nsh_main"
|
@ -102,6 +102,27 @@
|
||||
#define BOARD_FLEXBUS_FREQ (BOARD_MCG_FREQ / BOARD_OUTDIV3)
|
||||
#define BOARD_FLASHCLK_FREQ (BOARD_MCG_FREQ / BOARD_OUTDIV4)
|
||||
|
||||
/* Use BOARD_MCG_FREQ as the output SIM_SOPT2 MUX selected by
|
||||
* SIM_SOPT2[PLLFLLSEL]
|
||||
*/
|
||||
|
||||
#define BOARD_SOPT2_PLLFLLSEL SIM_SOPT2_PLLFLLSEL_MCGPLLCLK
|
||||
#define BOARD_SOPT2_FREQ BOARD_MCG_FREQ
|
||||
|
||||
/* Divider output clock = Divider input clock * ((USBFRAC+1) / (USBDIV+1))
|
||||
* SIM_CLKDIV2_FREQ = BOARD_SOPT2_FREQ * ((USBFRAC+1) / (USBDIV+1))
|
||||
* SIM_CLKDIV2_FREQ = BOARD_SOPT2_FREQ / (USBDIV+1)* (USBFRAC+1)
|
||||
* 48MHz = 120MHz / (4 + 1) * (1 + 1)
|
||||
*/
|
||||
|
||||
#if (BOARD_SOPT2_FREQ == 120000000L)
|
||||
# define BOARD_SIM_CLKDIV2_USBFRAC 2
|
||||
# define BOARD_SIM_CLKDIV2_USBDIV 5
|
||||
# define BOARD_SIM_CLKDIV2_FREQ (BOARD_SOPT2_FREQ / \
|
||||
BOARD_SIM_CLKDIV2_USBDIV * \
|
||||
BOARD_SIM_CLKDIV2_USBFRAC)
|
||||
#endif
|
||||
|
||||
/* SDHC clocking ************************************************************/
|
||||
|
||||
/* SDCLK configurations corresponding to various modes of operation.
|
||||
@ -152,6 +173,15 @@
|
||||
# define BOARD_SDHC_SD4MODE_DIVISOR SDHC_SYSCTL_DVS_DIV(3)
|
||||
#endif
|
||||
|
||||
/* Use the output of SIM_SOPT2[PLLFLLSEL] as the USB clock source */
|
||||
|
||||
#define BOARD_USB_CLKSRC SIM_SOPT2_USBSRC
|
||||
#define BOARD_USB_FREQ BOARD_SIM_CLKDIV2_FREQ
|
||||
|
||||
/* Allow USBOTG-FS Controller to Read from FLASH */
|
||||
|
||||
#define BOARD_USB_FLASHACCESS
|
||||
|
||||
/* PWM Configuration */
|
||||
|
||||
/* FTM0 Channels */
|
||||
|
@ -60,13 +60,14 @@
|
||||
* memory has been configured and mapped but before any devices have been
|
||||
* initialized.
|
||||
*
|
||||
*****************************************************************************/
|
||||
****************************************************************************/
|
||||
|
||||
void kinetis_boardinitialize(void)
|
||||
{
|
||||
#if defined(CONFIG_KINETIS_SPI1) || defined(CONFIG_KINETIS_SPI2)
|
||||
/* Configure SPI chip selects if 1) SPI is not disabled, and 2)
|
||||
* the weak function k64_spidev_initialize() has been brought into the link.
|
||||
* the weak function k64_spidev_initialize() has been brought into the
|
||||
* link.
|
||||
*/
|
||||
|
||||
if (k64_spidev_initialize)
|
||||
@ -75,7 +76,7 @@ void kinetis_boardinitialize(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_USBDEV) && defined(CONFIG_KINETIS_USB)
|
||||
#if defined(CONFIG_USBDEV) && defined(CONFIG_KINETIS_USBOTG)
|
||||
/* Initialize USB is 1) USBDEV is selected, 2) the USB controller is not
|
||||
* disabled, and 3) the weak function k64_usbinitialize() has been brought
|
||||
* into the build.
|
||||
@ -100,10 +101,11 @@ void kinetis_boardinitialize(void)
|
||||
* Description:
|
||||
* If CONFIG_BOARD_LATE_INITIALIZE is selected, then an additional
|
||||
* initialization call will be performed in the boot-up sequence to a
|
||||
* function called board_late_initialize(). board_late_initialize() will be
|
||||
* called immediately after up_intitialize() is called and just before the
|
||||
* initial application is started. This additional initialization phase
|
||||
* may be used, for example, to initialize board-specific device drivers.
|
||||
* function called board_late_initialize(). board_late_initialize() will
|
||||
* be called immediately after up_intitialize() is called and just before
|
||||
* the initial application is started. This additional initialization
|
||||
* phase may be used, for example, to initialize board-specific device
|
||||
* drivers.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
|
@ -60,31 +60,31 @@
|
||||
*
|
||||
* Description:
|
||||
* Called to setup USB-related GPIO pins for the FREEDOM-K64F board.
|
||||
* There is not really anything that needs to be done here for this
|
||||
* board as it has dedicated USB pins.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
void k64_usbinitialize(void)
|
||||
{
|
||||
# warning "Missing logic"
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
/****************************************************************************
|
||||
* Name: kinetis_usbpullup
|
||||
*
|
||||
* Description:
|
||||
* If USB is supported and the board supports a pullup via GPIO (for USB
|
||||
* software connect and disconnect), then the board software must provide
|
||||
* kinetis_usbpullup.
|
||||
* See include/nuttx/usb/usbdev.h for additional description of this method.
|
||||
* Alternatively, if no pull-up GPIO the following EXTERN can be redefined
|
||||
* to be NULL.
|
||||
* See include/nuttx/usb/usbdev.h for additional description of this
|
||||
* method. Alternatively, if no pull-up GPIO the following EXTERN can be
|
||||
* redefined to be NULL.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int kinetis_usbpullup(FAR struct usbdev_s *dev, bool enable)
|
||||
{
|
||||
usbtrace(TRACE_DEVPULLUP, (uint16_t)enable);
|
||||
# warning "Missing logic"
|
||||
return OK;
|
||||
}
|
||||
|
||||
@ -103,5 +103,4 @@ int kinetis_usbpullup(FAR struct usbdev_s *dev, bool enable)
|
||||
void kinetis_usbsuspend(FAR struct usbdev_s *dev, bool resume)
|
||||
{
|
||||
uinfo("resume: %d\n", resume);
|
||||
#warning "Missing logic"
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user