[fix] drivers: spi: refactor SPI bit operations into independent configuration

- Add RT_USING_SPI_BITOPS as a separate configurable option
- Make RT_USING_SOFT_SPI depend on RT_USING_SPI_BITOPS
- Adjust build order in SConscript for proper com

Signed-off-by: Runcheng Lu <runcheng.lu@hpmicro.com>
This commit is contained in:
Runcheng Lu
2025-12-29 14:35:41 +08:00
committed by R b b666
parent a73f5d1032
commit 17d026c6cc
3 changed files with 9 additions and 2 deletions

View File

@@ -7,11 +7,16 @@ menuconfig RT_USING_SPI
menuconfig RT_USING_SPI_ISR
bool "Enable interrupt-safe SPI operations (using spinlocks in ISR context)"
default y
config RT_USING_SPI_BITOPS
bool "Enable SPI bit-bang operation functions"
default n
menuconfig RT_USING_SOFT_SPI
bool "Use GPIO to simulate SPI"
default n
select RT_USING_PIN
select RT_USING_SPI_BITOPS
if RT_USING_SOFT_SPI
menuconfig RT_USING_SOFT_SPI0
bool "Enable SPI0 Bus (software simulation)"

View File

@@ -7,8 +7,10 @@ src = ['dev_spi_core.c', 'dev_spi.c']
CPPPATH = [cwd, cwd + '/../include']
LOCAL_CFLAGS = ''
if GetDepend('RT_USING_SOFT_SPI'):
if GetDepend('RT_USING_SPI_BITOPS'):
src += ['dev_spi_bit_ops.c']
if GetDepend('RT_USING_SOFT_SPI'):
src += ['dev_soft_spi.c']
if GetDepend('RT_USING_QSPI'):

View File

@@ -19,7 +19,7 @@
#error "Please define at least one RT_USING_SOFT_SPIx"
/*
This driver can be disabled at:
menuconfig -> RT-Thread Components -> Device Drivers -> Using I2C device drivers
menuconfig -> RT-Thread Components -> Device Drivers -> Using SPI Bus/Device device drivers -> Use GPIO to simulate SPI
*/
#endif