You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
140 lines
3.1 KiB
140 lines
3.1 KiB
|
5 months ago
|
/*
|
||
|
|
* Copyright (c) 2006-2025, RT-Thread Development Team
|
||
|
|
*
|
||
|
|
* SPDX-License-Identifier: Apache-2.0
|
||
|
|
*
|
||
|
|
* Change Logs:
|
||
|
|
* Date Author Notes
|
||
|
|
* 2025-11-07 RealThread the first version
|
||
|
|
*/
|
||
|
|
|
||
|
|
#ifndef USB_CONF_H
|
||
|
|
#define USB_CONF_H
|
||
|
|
|
||
|
|
#include <board.h>
|
||
|
|
|
||
|
|
#if defined(BSP_USING_USB)
|
||
|
|
|
||
|
|
#if defined(SOC_SERIES_GD32H75E)
|
||
|
|
#include "gd32h75e.h"
|
||
|
|
#elif defined(SOC_SERIES_GD32H7xx)
|
||
|
|
#include "gd32h7xx.h"
|
||
|
|
#endif
|
||
|
|
/* USB Core and PHY interface configuration */
|
||
|
|
|
||
|
|
/* USB HS PHY CONFIGURATION */
|
||
|
|
|
||
|
|
/* on-chip full-speed USB PHY */
|
||
|
|
#ifdef USE_USB_FS
|
||
|
|
#define OC_FS_PHY
|
||
|
|
#endif
|
||
|
|
|
||
|
|
/* on-chip high-speed USB PHY */
|
||
|
|
#ifdef USE_USB_HS
|
||
|
|
#define OC_HS_PHY
|
||
|
|
#endif /* USE_USB_HS */
|
||
|
|
|
||
|
|
#if defined(RT_USING_USB_DEVICE)
|
||
|
|
|
||
|
|
#define USB_SOF_OUTPUT 0U
|
||
|
|
|
||
|
|
/* USB FIFO size config */
|
||
|
|
#define RX_FIFO_SIZE 512U
|
||
|
|
#define TX0_FIFO_SIZE 128U
|
||
|
|
#define TX1_FIFO_SIZE 384U
|
||
|
|
#define TX2_FIFO_SIZE 0U
|
||
|
|
#define TX3_FIFO_SIZE 0U
|
||
|
|
#define TX4_FIFO_SIZE 0U
|
||
|
|
#define TX5_FIFO_SIZE 0U
|
||
|
|
#define TX6_FIFO_SIZE 0U
|
||
|
|
#define TX7_FIFO_SIZE 0U
|
||
|
|
|
||
|
|
#elif defined(RT_USING_USB_HOST)
|
||
|
|
|
||
|
|
#define USBH_USE_RTOS
|
||
|
|
#define USB_SOF_OUTPUT 1U
|
||
|
|
|
||
|
|
/* USB FIFO size config */
|
||
|
|
#define USB_RX_FIFO_SIZE 512
|
||
|
|
#define USB_HTX_NPFIFO_SIZE 256
|
||
|
|
#define USB_HTX_PFIFO_SIZE 256
|
||
|
|
#endif
|
||
|
|
|
||
|
|
/* General USB Configuration */
|
||
|
|
#define USB_LOW_POWER 0U
|
||
|
|
|
||
|
|
/* if uncomment it, need jump to USB JP */
|
||
|
|
//#define VBUS_SENSING_ENABLED
|
||
|
|
|
||
|
|
//#define USB_INTERNAL_DMA_ENABLED
|
||
|
|
//#define USB_DEDICATED_EP1_ENABLED
|
||
|
|
/* End General USB Configuration */
|
||
|
|
|
||
|
|
#ifdef USE_ULPI_PHY
|
||
|
|
#define USB_EXTERNAL_ULPI_PHY_ENABLED
|
||
|
|
#else
|
||
|
|
#ifdef OC_FS_PHY
|
||
|
|
#define USB_EMBEDDED_FS_PHY_ENABLED
|
||
|
|
#elif defined(OC_HS_PHY)
|
||
|
|
#define USB_EMBEDDED_HS_PHY_ENABLED
|
||
|
|
#else
|
||
|
|
#error "PHY is not selected"
|
||
|
|
#endif /* OC_FS_PHY */
|
||
|
|
#endif /* USE_ULPI_PHY */
|
||
|
|
|
||
|
|
#if defined(RT_USING_USB_HOST)
|
||
|
|
#define USE_HOST_MODE
|
||
|
|
#elif defined(RT_USING_USB_DEVICE)
|
||
|
|
#define USE_DEVICE_MODE
|
||
|
|
#else
|
||
|
|
#warning "Please select the USB mode as USBD or USBH; otherwise, the USE_OTG_MODE will be enabled by default."
|
||
|
|
#define USE_OTG_MODE
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#ifndef OC_FS_PHY
|
||
|
|
#ifndef OC_HS_PHY
|
||
|
|
#error "OC_FS_PHY or OC_HS_PHY should be defined!"
|
||
|
|
#endif
|
||
|
|
#endif /* OC_FS_PHY */
|
||
|
|
|
||
|
|
#ifndef RT_USING_USB_DEVICE
|
||
|
|
#ifndef RT_USING_USB_HOST
|
||
|
|
#error "RT_USING_USB_DEVICE or RT_USING_USB_HOST should be defined!"
|
||
|
|
#endif
|
||
|
|
#endif /* USE_DEVICE_MODE */
|
||
|
|
|
||
|
|
#ifndef USE_USB_HS
|
||
|
|
#ifndef USE_USB_FS
|
||
|
|
#error "USE_USB_HS or USE_USB_FS should be defined!"
|
||
|
|
#endif
|
||
|
|
#endif /* USE_USB_HS */
|
||
|
|
|
||
|
|
/* all variables and data structures during the transaction process should be 4-bytes aligned */
|
||
|
|
#if defined(__GNUC__) /* GNU Compiler */
|
||
|
|
#define __ALIGN_END __attribute__((aligned(4)))
|
||
|
|
#define __ALIGN_BEGIN
|
||
|
|
#else
|
||
|
|
#define __ALIGN_END
|
||
|
|
|
||
|
|
#if defined(__CC_ARM) /* ARM Compiler */
|
||
|
|
#define __ALIGN_BEGIN __align(4)
|
||
|
|
#elif defined(__ICCARM__) /* IAR Compiler */
|
||
|
|
#define __ALIGN_BEGIN
|
||
|
|
#elif defined(__TASKING__)/* TASKING Compiler */
|
||
|
|
#define __ALIGN_BEGIN __align(4)
|
||
|
|
#endif /* __CC_ARM */
|
||
|
|
#endif /* __GNUC__ */
|
||
|
|
|
||
|
|
/* __packed keyword used to decrease the data type alignment to 1-byte */
|
||
|
|
#if defined(__GNUC__) /* GNU Compiler */
|
||
|
|
#ifndef __packed
|
||
|
|
#define __packed __unaligned
|
||
|
|
#endif
|
||
|
|
#elif defined(__TASKING__) /* TASKING Compiler */
|
||
|
|
#define __packed __unaligned
|
||
|
|
#endif /* __GNUC__ */
|
||
|
|
|
||
|
|
#endif /* BSP_USING_USB */
|
||
|
|
|
||
|
|
#endif /* USB_CONF_H */
|