Skip to content

Commit 37bfd21

Browse files
committed
bsp: k230: add qspi driver
Requirement: The BSP for the k230 platform in the RT-Thread repository does not yet have an spi driver. Solution: Provide QSPI driver for the k230 platform in the RT-Thread repository. - Supports OSPI controller with 1/2/4/8 data lines. - Supports QSPI0 and QSPI1 controllers with 1/2/4 data lines. - Implements DMA-based transfers for OSPI, QSPI, and DSPI modes. - Falls back to standard IRQ-driven transfers for legacy SPI mode (single line). Signed-off-by: ChuanN <fjchuanil@gmail.com>
1 parent 27e3460 commit 37bfd21

File tree

8 files changed

+1245
-5
lines changed

8 files changed

+1245
-5
lines changed

bsp/k230/.config

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,7 @@ CONFIG_FINSH_THREAD_STACK_SIZE=8192
227227
CONFIG_FINSH_USING_HISTORY=y
228228
CONFIG_FINSH_HISTORY_LINES=5
229229
# CONFIG_FINSH_USING_WORD_OPERATION is not set
230+
# CONFIG_FINSH_USING_FUNC_EXT is not set
230231
CONFIG_FINSH_USING_SYMTAB=y
231232
CONFIG_FINSH_CMD_SIZE=80
232233
CONFIG_MSH_USING_BUILT_IN_COMMANDS=y
@@ -338,8 +339,14 @@ CONFIG_RT_MMCSD_THREAD_PRIORITY=22
338339
CONFIG_RT_MMCSD_MAX_PARTITION=16
339340
# CONFIG_RT_SDIO_DEBUG is not set
340341
# CONFIG_RT_USING_SDHCI is not set
341-
# CONFIG_RT_USING_SPI is not set
342-
# CONFIG_RT_USING_WDT is not set
342+
CONFIG_RT_USING_SPI=y
343+
# CONFIG_RT_USING_SOFT_SPI is not set
344+
CONFIG_RT_USING_QSPI=y
345+
# CONFIG_RT_USING_SPI_MSD is not set
346+
# CONFIG_RT_USING_SFUD is not set
347+
# CONFIG_RT_USING_ENC28J60 is not set
348+
# CONFIG_RT_USING_SPI_WIFI is not set
349+
CONFIG_RT_USING_WDT=y
343350
# CONFIG_RT_USING_AUDIO is not set
344351
# CONFIG_RT_USING_SENSOR is not set
345352
# CONFIG_RT_USING_TOUCH is not set
@@ -425,6 +432,7 @@ CONFIG_RT_USING_POSIX_TIMER=y
425432
#
426433
CONFIG_RT_USING_SAL=y
427434
CONFIG_SAL_INTERNET_CHECK=y
435+
CONFIG_SOCKET_TABLE_STEP_LEN=4
428436

429437
#
430438
# Docking with protocol stacks
@@ -521,7 +529,10 @@ CONFIG_RT_LWIP_USING_PING=y
521529
#
522530
# CONFIG_RT_USING_RYM is not set
523531
# CONFIG_RT_USING_ULOG is not set
524-
# CONFIG_RT_USING_UTEST is not set
532+
CONFIG_RT_USING_UTEST=y
533+
CONFIG_UTEST_THR_STACK_SIZE=4096
534+
CONFIG_UTEST_THR_PRIORITY=20
535+
# CONFIG_RT_UTEST_USING_AUTO_RUN is not set
525536
# CONFIG_RT_USING_VAR_EXPORT is not set
526537
CONFIG_RT_USING_RESOURCE_ID=y
527538
CONFIG_RT_USING_ADT=y
@@ -941,6 +952,7 @@ CONFIG_RT_USING_VDSO=y
941952
# CONFIG_PKG_USING_R_RHEALSTONE is not set
942953
# CONFIG_PKG_USING_HEARTBEAT is not set
943954
# CONFIG_PKG_USING_MICRO_ROS_RTTHREAD_PACKAGE is not set
955+
# CONFIG_PKG_USING_CHERRYECAT is not set
944956
# end of system packages
945957

946958
#
@@ -1098,6 +1110,12 @@ CONFIG_RT_USING_VDSO=y
10981110
# CONFIG_PKG_USING_GD32_ARM_CMSIS_DRIVER is not set
10991111
# CONFIG_PKG_USING_GD32_ARM_SERIES_DRIVER is not set
11001112
# end of GD32 Drivers
1113+
1114+
#
1115+
# HPMicro SDK
1116+
#
1117+
# CONFIG_PKG_USING_HPM_SDK is not set
1118+
# end of HPMicro SDK
11011119
# end of HAL & SDK Drivers
11021120

11031121
#
@@ -1617,6 +1635,12 @@ CONFIG_PKG_ZLIB_VER="latest"
16171635
#
16181636
# Drivers Configuration
16191637
#
1638+
CONFIG_BSP_USING_QSPI=y
1639+
CONFIG_RT_USING_OSPI=y
1640+
# CONFIG_RT_USING_QSPI0 is not set
1641+
# CONFIG_RT_USING_QSPI1 is not set
1642+
CONFIG_RT_USING_QSPI_XFER_LIMIT=y
1643+
CONFIG_RT_QSPI_MAX_XFER_SIZE=4095
16201644
# CONFIG_BSP_USING_RTC is not set
16211645
# CONFIG_BSP_USING_ADC is not set
16221646
# CONFIG_BSP_USING_TS is not set
@@ -1638,7 +1662,7 @@ CONFIG_BSP_SD_MNT_DEVNAME="sd0p1"
16381662
# CONFIG_BSP_USING_TIMERS is not set
16391663
# CONFIG_BSP_USING_WDT is not set
16401664
# CONFIG_BSP_USING_PDMA is not set
1641-
# CONFIG_BSP_UTEST_DRIVERS is not set
1665+
CONFIG_BSP_UTEST_DRIVERS=y
16421666
# end of Drivers Configuration
16431667

16441668
CONFIG_BOARD_C908=y

bsp/k230/board/Kconfig

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,24 @@
11
menu "Drivers Configuration"
22

3+
menuconfig BSP_USING_QSPI
4+
bool "Enable QSPI"
5+
select RT_USING_QSPI
6+
default n
7+
8+
if BSP_USING_QSPI
9+
config RT_USING_OSPI
10+
bool "Enable OSPI(Support 1 2 4 and 8 lines)"
11+
default n
12+
13+
config RT_USING_QSPI0
14+
bool "Enable QSPI0(Support 1 2 4 and 8 lines)"
15+
default n
16+
17+
config RT_USING_QSPI1
18+
bool "Enable QSPI1(Support 1 2 4 and 8 lines)"
19+
default n
20+
endif
21+
322
config BSP_USING_RTC
423
bool "Enable RTC"
524
select RT_USING_RTC
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# RT-Thread building script for SPI component
2+
3+
from building import *
4+
5+
cwd = GetCurrentDir()
6+
src = Glob('*.c')
7+
CPPPATH = [cwd]
8+
9+
group = DefineGroup('QSPI', src, depend = ['BSP_USING_QSPI'], CPPPATH = CPPPATH)
10+
11+
Return('group')

0 commit comments

Comments
 (0)