Explorar o código

[bsp]: fix spi chipselect in Infineon (#7234)

1. compatible for HIGH ACTIVE SPI CHIP_SELECT
Lu_Reaper %!s(int64=2) %!d(string=hai) anos
pai
achega
af914a1690
Modificáronse 1 ficheiros con 8 adicións e 1 borrados
  1. 8 1
      bsp/Infineon/libraries/HAL_Drivers/drv_spi.c

+ 8 - 1
bsp/Infineon/libraries/HAL_Drivers/drv_spi.c

@@ -180,7 +180,14 @@ static rt_ssize_t spixfer(struct rt_spi_device *device, struct rt_spi_message *m
     /* take CS */
     if (message->cs_take && !(device->config.mode & RT_SPI_NO_CS) && (device->cs_pin != PIN_NONE))
     {
-        cyhal_gpio_write(device->cs_pin, PIN_LOW);
+        if (device->config.mode & RT_SPI_CS_HIGH)
+        {
+            cyhal_gpio_write(device->cs_pin, PIN_HIGH);
+        }
+        else
+        {
+            cyhal_gpio_write(device->cs_pin, PIN_LOW);
+        }
         LOG_D("spi take cs\n");
     }