diff --git a/components/drivers/spi/Kconfig b/components/drivers/spi/Kconfig index 37a6a9b943a..e1568dd460e 100644 --- a/components/drivers/spi/Kconfig +++ b/components/drivers/spi/Kconfig @@ -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)" diff --git a/components/drivers/spi/SConscript b/components/drivers/spi/SConscript index 94c78456dca..a48767cb25d 100644 --- a/components/drivers/spi/SConscript +++ b/components/drivers/spi/SConscript @@ -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'): diff --git a/components/drivers/spi/dev_soft_spi.c b/components/drivers/spi/dev_soft_spi.c index a308299f6c3..9cfca2039f1 100644 --- a/components/drivers/spi/dev_soft_spi.c +++ b/components/drivers/spi/dev_soft_spi.c @@ -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