summaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorHa Thach <[email protected]>2022-05-21 13:54:25 +0700
committerGitHub <[email protected]>2022-05-21 13:54:25 +0700
commit2683deb0dd2e049de6c9b15f49d28a2fef4380f6 (patch)
treefb480d7a4fa7aa7797097600b6d8a5fef3f080b3 /hw
parent817227a850d4942cf48ede675325d635e2e7b3d5 (diff)
parentc2bcda86e2de35cc01628f4e909e2a7869a7322b (diff)
Merge branch 'master' into ch32v307
Diffstat (limited to 'hw')
-rw-r--r--hw/bsp/imxrt/family.c5
-rw-r--r--hw/bsp/rp2040/family.c3
-rw-r--r--hw/bsp/rp2040/family.cmake57
m---------hw/mcu/raspberry_pi/Pico-PIO-USB0
-rw-r--r--hw/mcu/sony/cxd56/tools/__pycache__/xmodem.cpython-36.pycbin15257 -> 0 bytes
5 files changed, 61 insertions, 4 deletions
diff --git a/hw/bsp/imxrt/family.c b/hw/bsp/imxrt/family.c
index a811a7e40..8d34d4b9f 100644
--- a/hw/bsp/imxrt/family.c
+++ b/hw/bsp/imxrt/family.c
@@ -51,7 +51,10 @@ void board_init(void)
SysTick_Config(SystemCoreClock / 1000);
#elif CFG_TUSB_OS == OPT_OS_FREERTOS
// If freeRTOS is used, IRQ priority is limit by max syscall ( smaller is higher )
-// NVIC_SetPriority(USB0_IRQn, configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY );
+ NVIC_SetPriority(USB_OTG1_IRQn, configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY );
+#ifdef USB_OTG2_IRQn
+ NVIC_SetPriority(USB_OTG2_IRQn, configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY );
+#endif
#endif
// LED
diff --git a/hw/bsp/rp2040/family.c b/hw/bsp/rp2040/family.c
index fa63dadf5..dcf38b6ec 100644
--- a/hw/bsp/rp2040/family.c
+++ b/hw/bsp/rp2040/family.c
@@ -127,6 +127,9 @@ void board_init(void)
#ifndef BUTTON_BOOTSEL
#endif
+ // Set the system clock to a multiple of 120mhz for bitbanging USB with pico-usb
+ set_sys_clock_khz(120000, true);
+
#if defined(UART_DEV) && defined(LIB_PICO_STDIO_UART)
bi_decl(bi_2pins_with_func(UART_TX_PIN, UART_TX_PIN, GPIO_FUNC_UART));
uart_inst = uart_get_instance(UART_DEV);
diff --git a/hw/bsp/rp2040/family.cmake b/hw/bsp/rp2040/family.cmake
index e832c0756..17ae3de9b 100644
--- a/hw/bsp/rp2040/family.cmake
+++ b/hw/bsp/rp2040/family.cmake
@@ -23,9 +23,11 @@ if (NOT TARGET _rp2040_family_inclusion_marker)
set(PICO_TINYUSB_PATH ${TOP})
endif()
+ #------------------------------------
# Base config for both device and host; wrapped by SDK's tinyusb_common
+ #------------------------------------
add_library(tinyusb_common_base INTERFACE)
-
+
target_sources(tinyusb_common_base INTERFACE
${TOP}/src/tusb.c
${TOP}/src/common/tusb_fifo.c
@@ -56,11 +58,44 @@ if (NOT TARGET _rp2040_family_inclusion_marker)
CFG_TUSB_DEBUG=${TINYUSB_DEBUG_LEVEL}
)
+ #------------------------------------
+ # PIO USB for both host and device
+ #------------------------------------
+ add_library(pico_pio_usb INTERFACE)
+
+ if (NOT DEFINED PICO_PIO_USB_PATH)
+ set(PICO_PIO_USB_PATH "${TOP}/hw/mcu/raspberry_pi/Pico-PIO-USB")
+ endif()
+
+ target_sources(pico_pio_usb INTERFACE
+ ${PICO_PIO_USB_PATH}/src/pio_usb.c
+ ${PICO_PIO_USB_PATH}/src/pio_usb_host.c
+ ${PICO_PIO_USB_PATH}/src/pio_usb_device.c
+ ${PICO_PIO_USB_PATH}/src/usb_crc.c
+ )
+
+ target_include_directories(pico_pio_usb INTERFACE
+ ${PICO_PIO_USB_PATH}/src
+ )
+
+ target_link_libraries(pico_pio_usb INTERFACE
+ hardware_dma
+ hardware_pio
+ pico_multicore
+ )
+
+ target_compile_definitions(pico_pio_usb INTERFACE
+ PIO_USB_USE_TINYUSB
+ )
+
+ #------------------------------------
# Base config for device mode; wrapped by SDK's tinyusb_device
+ #------------------------------------
add_library(tinyusb_device_base INTERFACE)
target_sources(tinyusb_device_base INTERFACE
${TOP}/src/portable/raspberrypi/rp2040/dcd_rp2040.c
${TOP}/src/portable/raspberrypi/rp2040/rp2040_usb.c
+ ${TOP}/src/portable/raspberrypi/pio_usb/dcd_pio_usb.c
${TOP}/src/device/usbd.c
${TOP}/src/device/usbd_control.c
${TOP}/src/class/audio/audio_device.c
@@ -77,11 +112,14 @@ if (NOT TARGET _rp2040_family_inclusion_marker)
${TOP}/src/class/video/video_device.c
)
+ #------------------------------------
# Base config for host mode; wrapped by SDK's tinyusb_host
+ #------------------------------------
add_library(tinyusb_host_base INTERFACE)
target_sources(tinyusb_host_base INTERFACE
${TOP}/src/portable/raspberrypi/rp2040/hcd_rp2040.c
${TOP}/src/portable/raspberrypi/rp2040/rp2040_usb.c
+ ${TOP}/src/portable/raspberrypi/pio_usb/hcd_pio_usb.c
${TOP}/src/host/usbh.c
${TOP}/src/host/hub.c
${TOP}/src/class/cdc/cdc_host.c
@@ -90,12 +128,14 @@ if (NOT TARGET _rp2040_family_inclusion_marker)
${TOP}/src/class/vendor/vendor_host.c
)
- # Sometimes have to do host specific actions in mostly
- # common functions
+ # Sometimes have to do host specific actions in mostly common functions
target_compile_definitions(tinyusb_host_base INTERFACE
RP2040_USB_HOST_MODE=1
)
+ #------------------------------------
+ # BSP & Additions
+ #------------------------------------
add_library(tinyusb_bsp INTERFACE)
target_sources(tinyusb_bsp INTERFACE
${TOP}/hw/bsp/rp2040/family.c
@@ -129,6 +169,10 @@ if (NOT TARGET _rp2040_family_inclusion_marker)
)
endif()
+ #------------------------------------
+ # Functions
+ #------------------------------------
+
function(family_configure_target TARGET)
pico_add_extra_outputs(${TARGET})
pico_enable_stdio_uart(${TARGET} 1)
@@ -145,6 +189,13 @@ if (NOT TARGET _rp2040_family_inclusion_marker)
target_link_libraries(${TARGET} PUBLIC pico_stdlib tinyusb_host)
endfunction()
+ function(family_configure_pico_pio_usb_example TARGET)
+ family_configure_target(${TARGET})
+ target_link_libraries(${TARGET} PUBLIC pico_stdlib pico_pio_usb)
+ pico_generate_pio_header(tinyusb_common_base ${PICO_PIO_USB_PATH}/src/usb_tx.pio)
+ pico_generate_pio_header(tinyusb_common_base ${PICO_PIO_USB_PATH}/src/usb_rx.pio)
+ endfunction()
+
function(family_initialize_project PROJECT DIR)
# call the original version of this function from family_common.cmake
_family_initialize_project(${PROJECT} ${DIR})
diff --git a/hw/mcu/raspberry_pi/Pico-PIO-USB b/hw/mcu/raspberry_pi/Pico-PIO-USB
new file mode 160000
+Subproject 2a9fefd6ccf42e5d8570ae83fdc54c9c875ebdd
diff --git a/hw/mcu/sony/cxd56/tools/__pycache__/xmodem.cpython-36.pyc b/hw/mcu/sony/cxd56/tools/__pycache__/xmodem.cpython-36.pyc
deleted file mode 100644
index cfa917f71..000000000
--- a/hw/mcu/sony/cxd56/tools/__pycache__/xmodem.cpython-36.pyc
+++ /dev/null
Binary files differ