Kaynağa Gözat

[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>
Runcheng Lu 2 hafta önce
ebeveyn
işleme
17d026c6cc

+ 5 - 0
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)"

+ 3 - 1
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'):

+ 1 - 1
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