|
|
|
@ -82,30 +82,20 @@ static void stm32_spi1_initialize(void)
@@ -82,30 +82,20 @@ static void stm32_spi1_initialize(void)
|
|
|
|
|
|
|
|
|
|
stm32_configgpio(GPIO_SPI1_EXTI_DRDY_PD15); |
|
|
|
|
|
|
|
|
|
# if !defined(BOARD_HAS_VERSIONING) |
|
|
|
|
stm32_configgpio(GPIO_SPI1_EXTI_DRDY_PB0); |
|
|
|
|
stm32_configgpio(GPIO_SPI1_EXTI_DRDY_PB1); |
|
|
|
|
stm32_configgpio(GPIO_SPI1_EXTI_DRDY_PB4); |
|
|
|
|
stm32_configgpio(GPIO_SPI1_CS_PC13); |
|
|
|
|
stm32_configgpio(GPIO_SPI1_CS_PC15); |
|
|
|
|
# else |
|
|
|
|
|
|
|
|
|
if (HW_VER_FMUV2 == board_get_hw_version()) { |
|
|
|
|
stm32_configgpio(GPIO_SPI1_EXTI_DRDY_PB0); |
|
|
|
|
stm32_configgpio(GPIO_SPI1_EXTI_DRDY_PB1); |
|
|
|
|
stm32_configgpio(GPIO_SPI1_EXTI_DRDY_PB4); |
|
|
|
|
stm32_configgpio(GPIO_SPI1_CS_PC13); |
|
|
|
|
stm32_configgpio(GPIO_SPI1_CS_PC15); |
|
|
|
|
|
|
|
|
|
} else if (HW_VER_FMUV2MINI == board_get_hw_version()) { |
|
|
|
|
if (HW_VER_FMUV2MINI == board_get_hw_version()) { |
|
|
|
|
stm32_configgpio(GPIO_SPI1_EXTI_20608_DRDY_PC14); |
|
|
|
|
stm32_configgpio(GPIO_SPI1_CS_PC15); |
|
|
|
|
|
|
|
|
|
} else if (HW_VER_FMUV3 == board_get_hw_version()) { |
|
|
|
|
stm32_configgpio(GPIO_SPI1_CS_PC1); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
# endif |
|
|
|
|
} else { |
|
|
|
|
stm32_configgpio(GPIO_SPI1_EXTI_DRDY_PB0); |
|
|
|
|
stm32_configgpio(GPIO_SPI1_EXTI_DRDY_PB1); |
|
|
|
|
stm32_configgpio(GPIO_SPI1_EXTI_DRDY_PB4); |
|
|
|
|
stm32_configgpio(GPIO_SPI1_CS_PC13); |
|
|
|
|
stm32_configgpio(GPIO_SPI1_CS_PC15); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
#endif // CONFIG_STM32_SPI1
|
|
|
|
|
|
|
|
|
@ -119,10 +109,6 @@ static void stm32_spi4_initialize(void)
@@ -119,10 +109,6 @@ static void stm32_spi4_initialize(void)
|
|
|
|
|
{ |
|
|
|
|
stm32_configgpio(GPIO_SPI4_NSS_PE4); |
|
|
|
|
|
|
|
|
|
# if !defined(BOARD_HAS_VERSIONING) |
|
|
|
|
stm32_configgpio(GPIO_SPI4_GPIO_PC14); |
|
|
|
|
# else |
|
|
|
|
|
|
|
|
|
if (HW_VER_FMUV3 == board_get_hw_version()) { |
|
|
|
|
stm32_configgpio(GPIO_SPI4_EXTI_DRDY_PB0); |
|
|
|
|
stm32_configgpio(GPIO_SPI4_CS_PB1); |
|
|
|
@ -133,8 +119,6 @@ static void stm32_spi4_initialize(void)
@@ -133,8 +119,6 @@ static void stm32_spi4_initialize(void)
|
|
|
|
|
if (HW_VER_FMUV2MINI != board_get_hw_version()) { |
|
|
|
|
stm32_configgpio(GPIO_SPI4_GPIO_PC14); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
# endif |
|
|
|
|
} |
|
|
|
|
#endif //CONFIG_STM32_SPI4
|
|
|
|
|
|
|
|
|
@ -157,52 +141,6 @@ __EXPORT void stm32_spiinitialize(void)
@@ -157,52 +141,6 @@ __EXPORT void stm32_spiinitialize(void)
|
|
|
|
|
__EXPORT void stm32_spi1select(FAR struct spi_dev_s *dev, uint32_t devid, bool selected) |
|
|
|
|
{ |
|
|
|
|
/* SPI select is active low, so write !selected to select the device */ |
|
|
|
|
|
|
|
|
|
# if !defined(BOARD_HAS_VERSIONING) |
|
|
|
|
switch (devid) { |
|
|
|
|
case PX4_SPIDEV_GYRO: |
|
|
|
|
/* Making sure the other peripherals are not selected */ |
|
|
|
|
stm32_gpiowrite(GPIO_SPI1_CS_PC13, !selected); |
|
|
|
|
stm32_gpiowrite(GPIO_SPI1_CS_PC15, 1); |
|
|
|
|
stm32_gpiowrite(GPIO_SPI1_CS_PD7, 1); |
|
|
|
|
stm32_gpiowrite(GPIO_SPI1_CS_PC2, 1); |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
# if defined(PX4_SPIDEV_ICM_20608) |
|
|
|
|
|
|
|
|
|
case PX4_SPIDEV_ICM_20608: |
|
|
|
|
# endif |
|
|
|
|
case PX4_SPIDEV_ACCEL_MAG: |
|
|
|
|
/* Making sure the other peripherals are not selected */ |
|
|
|
|
stm32_gpiowrite(GPIO_SPI1_CS_PC13, 1); |
|
|
|
|
stm32_gpiowrite(GPIO_SPI1_CS_PC15, !selected); |
|
|
|
|
stm32_gpiowrite(GPIO_SPI1_CS_PD7, 1); |
|
|
|
|
stm32_gpiowrite(GPIO_SPI1_CS_PC2, 1); |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
case PX4_SPIDEV_BARO: |
|
|
|
|
/* Making sure the other peripherals are not selected */ |
|
|
|
|
stm32_gpiowrite(GPIO_SPI1_CS_PC13, 1); |
|
|
|
|
stm32_gpiowrite(GPIO_SPI1_CS_PC15, 1); |
|
|
|
|
stm32_gpiowrite(GPIO_SPI1_CS_PD7, !selected); |
|
|
|
|
stm32_gpiowrite(GPIO_SPI1_CS_PC2, 1); |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
case PX4_SPIDEV_MPU: |
|
|
|
|
/* Making sure the other peripherals are not selected */ |
|
|
|
|
stm32_gpiowrite(GPIO_SPI1_CS_PC13, 1); |
|
|
|
|
stm32_gpiowrite(GPIO_SPI1_CS_PC15, 1); |
|
|
|
|
stm32_gpiowrite(GPIO_SPI1_CS_PD7, 1); |
|
|
|
|
stm32_gpiowrite(GPIO_SPI1_CS_PC2, !selected); |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
default: |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
# else // defined(BOARD_HAS_VERSIONING)
|
|
|
|
|
|
|
|
|
|
/* SPI select is active low, so write !selected to select the device */ |
|
|
|
|
/* Verification
|
|
|
|
|
* PA5 PA6 PA7 PB0 PB1 PB4 PC1 PC2 PC13 PC14 PC15 PD7 PD15 PE2 PE4 PE5 PE6 |
|
|
|
|
* driver X X X X X X |
|
|
|
@ -230,10 +168,7 @@ __EXPORT void stm32_spi1select(FAR struct spi_dev_s *dev, uint32_t devid, bool s
@@ -230,10 +168,7 @@ __EXPORT void stm32_spi1select(FAR struct spi_dev_s *dev, uint32_t devid, bool s
|
|
|
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
# if defined(PX4_SPIDEV_ICM_20608) |
|
|
|
|
|
|
|
|
|
case PX4_SPIDEV_ICM_20608: |
|
|
|
|
# endif |
|
|
|
|
case PX4_SPIDEV_ACCEL_MAG: |
|
|
|
|
|
|
|
|
|
/* Making sure the other peripherals are not selected */ |
|
|
|
@ -315,8 +250,6 @@ __EXPORT void stm32_spi1select(FAR struct spi_dev_s *dev, uint32_t devid, bool s
@@ -315,8 +250,6 @@ __EXPORT void stm32_spi1select(FAR struct spi_dev_s *dev, uint32_t devid, bool s
|
|
|
|
|
default: |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
# endif // defined(BOARD_HAS_VERSIONING)
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
__EXPORT uint8_t stm32_spi1status(FAR struct spi_dev_s *dev, uint32_t devid) |
|
|
|
@ -344,28 +277,6 @@ __EXPORT uint8_t stm32_spi2status(FAR struct spi_dev_s *dev, uint32_t devid)
@@ -344,28 +277,6 @@ __EXPORT uint8_t stm32_spi2status(FAR struct spi_dev_s *dev, uint32_t devid)
|
|
|
|
|
__EXPORT void stm32_spi4select(FAR struct spi_dev_s *dev, uint32_t devid, bool selected) |
|
|
|
|
{ |
|
|
|
|
/* SPI select is active low, so write !selected to select the device */ |
|
|
|
|
|
|
|
|
|
# if !defined(BOARD_HAS_VERSIONING) |
|
|
|
|
switch (devid) { |
|
|
|
|
case PX4_SPIDEV_EXT_MPU: |
|
|
|
|
/* Making sure the other peripherals are not selected */ |
|
|
|
|
stm32_gpiowrite(GPIO_SPI4_NSS_PE4, !selected); |
|
|
|
|
stm32_gpiowrite(GPIO_SPI4_GPIO_PC14, 1); |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
case PX4_SPIDEV_EXT_BARO: |
|
|
|
|
/* Making sure the other peripherals are not selected */ |
|
|
|
|
stm32_gpiowrite(GPIO_SPI4_NSS_PE4, 1); |
|
|
|
|
stm32_gpiowrite(GPIO_SPI4_GPIO_PC14, !selected); |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
default: |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
# else // defined(BOARD_HAS_VERSIONING)
|
|
|
|
|
/* SPI select is active low, so write !selected to select the device */ |
|
|
|
|
/* Verification
|
|
|
|
|
* PA5 PA6 PA7 PB0 PB1 PB4 PC1 PC2 PC13 PC14 PC15 PD7 PD15 PE2 PE4 PE5 PE6 |
|
|
|
|
* driver X X X X X X |
|
|
|
@ -403,10 +314,7 @@ __EXPORT void stm32_spi4select(FAR struct spi_dev_s *dev, uint32_t devid, bool s
@@ -403,10 +314,7 @@ __EXPORT void stm32_spi4select(FAR struct spi_dev_s *dev, uint32_t devid, bool s
|
|
|
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
# if defined(PX4_SPIDEV_ICM_20608) |
|
|
|
|
|
|
|
|
|
case PX4_SPIDEV_ICM_20608: |
|
|
|
|
# endif |
|
|
|
|
case PX4_SPIDEV_EXT_ACCEL_MAG: |
|
|
|
|
/* Making sure the other peripherals are not selected */ |
|
|
|
|
stm32_gpiowrite(GPIO_SPI4_NSS_PE4, 1); |
|
|
|
@ -442,9 +350,6 @@ __EXPORT void stm32_spi4select(FAR struct spi_dev_s *dev, uint32_t devid, bool s
@@ -442,9 +350,6 @@ __EXPORT void stm32_spi4select(FAR struct spi_dev_s *dev, uint32_t devid, bool s
|
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
# endif // defined(BOARD_HAS_VERSIONING)
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
__EXPORT uint8_t stm32_spi4status(FAR struct spi_dev_s *dev, uint32_t devid) |
|
|
|
|
{ |
|
|
|
@ -489,8 +394,6 @@ __EXPORT void board_spi_reset(int ms)
@@ -489,8 +394,6 @@ __EXPORT void board_spi_reset(int ms)
|
|
|
|
|
stm32_gpiowrite(_PIN_OFF(GPIO_SPI1_EXTI_DRDY_PB4), 0); |
|
|
|
|
stm32_gpiowrite(_PIN_OFF(GPIO_SPI1_EXTI_DRDY_PD15), 0); |
|
|
|
|
|
|
|
|
|
#if defined(BOARD_HAS_VERSIONING) |
|
|
|
|
|
|
|
|
|
if (HW_VER_FMUV2 != board_get_hw_version()) { |
|
|
|
|
stm32_configgpio(_PIN_OFF(GPIO_SPI4_CS_PC14)); |
|
|
|
|
stm32_gpiowrite(_PIN_OFF(GPIO_SPI4_CS_PC14), 0); |
|
|
|
@ -510,11 +413,8 @@ __EXPORT void board_spi_reset(int ms)
@@ -510,11 +413,8 @@ __EXPORT void board_spi_reset(int ms)
|
|
|
|
|
stm32_gpiowrite(_PIN_OFF(GPIO_SPI4_SCK), 0); |
|
|
|
|
stm32_gpiowrite(_PIN_OFF(GPIO_SPI4_MISO), 0); |
|
|
|
|
stm32_gpiowrite(_PIN_OFF(GPIO_SPI4_MOSI), 0); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
/* set the sensor rail off */ |
|
|
|
|
stm32_configgpio(GPIO_VDD_3V3_SENSORS_EN); |
|
|
|
|
stm32_gpiowrite(GPIO_VDD_3V3_SENSORS_EN, 0); |
|
|
|
@ -536,8 +436,6 @@ __EXPORT void board_spi_reset(int ms)
@@ -536,8 +436,6 @@ __EXPORT void board_spi_reset(int ms)
|
|
|
|
|
stm32_configgpio(GPIO_SPI1_MISO); |
|
|
|
|
stm32_configgpio(GPIO_SPI1_MOSI); |
|
|
|
|
|
|
|
|
|
#if defined(BOARD_HAS_VERSIONING) |
|
|
|
|
|
|
|
|
|
if (HW_VER_FMUV3 == board_get_hw_version()) { |
|
|
|
|
stm32_configgpio(GPIO_SPI4_SCK); |
|
|
|
|
stm32_configgpio(GPIO_SPI4_MISO); |
|
|
|
@ -545,8 +443,6 @@ __EXPORT void board_spi_reset(int ms)
@@ -545,8 +443,6 @@ __EXPORT void board_spi_reset(int ms)
|
|
|
|
|
stm32_spi4_initialize(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
stm32_spi1_initialize(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|