px4fmu-v2:spi_dev_e is now uint32_t in NuttX

Using new type of uint32_t for spi device and macros
   that define a PX4 device on a given BUS and Chip Select
This commit is contained in:
David Sidrane 2017-05-03 15:47:09 -10:00 committed by Daniel Agar
parent a0b6b90abf
commit e38d5853ad
3 changed files with 41 additions and 33 deletions

View File

@ -184,23 +184,25 @@
/* End FMUv2 SPI chip selects and DRDY */
/*----------------------------------------------------------*/
#define PX4_SPI_BUS_SENSORS 1
#define PX4_SPI_BUS_RAMTRON 2
#define PX4_SPI_BUS_EXT 4
#define PX4_SPI_BUS_BARO PX4_SPI_BUS_SENSORS
#define PX4_SPI_BUS_SENSORS 1
#define PX4_SPI_BUS_RAMTRON 2
#define PX4_SPI_BUS_EXT 4
#define PX4_SPI_BUS_BARO PX4_SPI_BUS_SENSORS
/* Use these in place of the spi_dev_e enumeration to select a specific SPI device on SPI1 */
#define PX4_SPIDEV_GYRO 1
#define PX4_SPIDEV_ACCEL_MAG 2
#define PX4_SPIDEV_BARO 3
#define PX4_SPIDEV_MPU 4
/* Use these to select a specific SPI device on SPI1 */
/* External bus */
#define PX4_SPIDEV_EXT_MPU 10
#define PX4_SPIDEV_EXT_GYRO 12
#define PX4_SPIDEV_EXT_ACCEL_MAG 13
#define PX4_SPIDEV_EXT_BARO 14
#define PX4_SPIDEV_EXT_BMI 15
#define PX4_SPIDEV_GYRO PX4_MK_SPI_SEL(PX4_SPI_BUS_SENSORS, 1)
#define PX4_SPIDEV_ACCEL_MAG PX4_MK_SPI_SEL(PX4_SPI_BUS_SENSORS, 2)
#define PX4_SPIDEV_BARO PX4_MK_SPI_SEL(PX4_SPI_BUS_SENSORS, 3)
#define PX4_SPIDEV_MPU PX4_MK_SPI_SEL(PX4_SPI_BUS_SENSORS, 4)
/* FMUv3 SPI on external bus */
#define PX4_SPIDEV_EXT_GYRO PX4_MK_SPI_SEL(PX4_SPI_BUS_EXT, 1)
#define PX4_SPIDEV_EXT_ACCEL_MAG PX4_MK_SPI_SEL(PX4_SPI_BUS_EXT, 2)
#define PX4_SPIDEV_EXT_BARO PX4_MK_SPI_SEL(PX4_SPI_BUS_EXT, 3)
#define PX4_SPIDEV_EXT_MPU PX4_MK_SPI_SEL(PX4_SPI_BUS_EXT, 4)
#define PX4_SPIDEV_EXT_BMI PX4_MK_SPI_SEL(PX4_SPI_BUS_EXT, 5)
/* I2C busses */
#define PX4_I2C_BUS_EXPANSION 1

View File

@ -614,10 +614,10 @@ __EXPORT int board_app_initialize(uintptr_t arg)
/* Configure SPI-based devices */
spi1 = stm32_spibus_initialize(1);
spi1 = stm32_spibus_initialize(PX4_SPI_BUS_SENSORS);
if (!spi1) {
message("[boot] FAILED to initialize SPI port 1\n");
message("[boot] FAILED to initialize SPI port %d\n", PX4_SPI_BUS_SENSORS);
board_autoled_on(LED_AMBER);
return -ENODEV;
}
@ -630,10 +630,10 @@ __EXPORT int board_app_initialize(uintptr_t arg)
/* Get the SPI port for the FRAM */
spi2 = stm32_spibus_initialize(2);
spi2 = stm32_spibus_initialize(PX4_SPI_BUS_RAMTRON);
if (!spi2) {
message("[boot] FAILED to initialize SPI port 2\n");
message("[boot] FAILED to initialize SPI port %d\n", PX4_SPI_BUS_RAMTRON);
board_autoled_on(LED_AMBER);
return -ENODEV;
}
@ -646,7 +646,13 @@ __EXPORT int board_app_initialize(uintptr_t arg)
SPI_SETBITS(spi2, 8);
SPI_SETMODE(spi2, SPIDEV_MODE3);
spi4 = stm32_spibus_initialize(4);
spi4 = stm32_spibus_initialize(PX4_SPI_BUS_EXT);
if (!spi4) {
message("[boot] FAILED to initialize SPI port %d\n", PX4_SPI_BUS_EXT);
board_autoled_on(LED_AMBER);
return -ENODEV;
}
/* Default SPI4 to 1MHz and de-assert the known chip selects. */
SPI_SETFREQUENCY(spi4, 10000000);

View File

@ -107,7 +107,7 @@ static void stm32_spi1_initialize(void)
# endif
}
#endif
#endif // CONFIG_STM32_SPI1
#ifdef CONFIG_STM32_SPI4
/* Verification
@ -136,7 +136,7 @@ static void stm32_spi4_initialize(void)
# endif
}
#endif
#endif //CONFIG_STM32_SPI4
__EXPORT void stm32_spiinitialize(void)
{
@ -154,7 +154,7 @@ __EXPORT void stm32_spiinitialize(void)
}
#ifdef CONFIG_STM32_SPI1
__EXPORT void stm32_spi1select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected)
__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 */
@ -316,23 +316,23 @@ __EXPORT void stm32_spi1select(FAR struct spi_dev_s *dev, enum spi_dev_e devid,
break;
}
# endif
# endif // defined(BOARD_HAS_VERSIONING)
}
__EXPORT uint8_t stm32_spi1status(FAR struct spi_dev_s *dev, enum spi_dev_e devid)
__EXPORT uint8_t stm32_spi1status(FAR struct spi_dev_s *dev, uint32_t devid)
{
return SPI_STATUS_PRESENT;
}
#endif
#endif // CONFIG_STM32_SPI1
#ifdef CONFIG_STM32_SPI2
__EXPORT void stm32_spi2select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected)
__EXPORT void stm32_spi2select(FAR struct spi_dev_s *dev, uint32_t devid, bool selected)
{
/* there can only be one device on this bus, so always select it */
stm32_gpiowrite(GPIO_SPI2_CS_PD10, !selected);
}
__EXPORT uint8_t stm32_spi2status(FAR struct spi_dev_s *dev, enum spi_dev_e devid)
__EXPORT uint8_t stm32_spi2status(FAR struct spi_dev_s *dev, uint32_t devid)
{
/* FRAM is always present */
return SPI_STATUS_PRESENT;
@ -341,7 +341,7 @@ __EXPORT uint8_t stm32_spi2status(FAR struct spi_dev_s *dev, enum spi_dev_e devi
#ifdef CONFIG_STM32_SPI4
__EXPORT void stm32_spi4select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected)
__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 */
@ -364,7 +364,7 @@ __EXPORT void stm32_spi4select(FAR struct spi_dev_s *dev, enum spi_dev_e devid,
}
#else // defined(BOARD_HAS_VERSIONING)
# 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
@ -443,14 +443,14 @@ __EXPORT void stm32_spi4select(FAR struct spi_dev_s *dev, enum spi_dev_e devid,
}
#endif
# endif // defined(BOARD_HAS_VERSIONING)
}
__EXPORT uint8_t stm32_spi4status(FAR struct spi_dev_s *dev, enum spi_dev_e devid)
__EXPORT uint8_t stm32_spi4status(FAR struct spi_dev_s *dev, uint32_t devid)
{
return SPI_STATUS_PRESENT;
}
#endif
#endif // CONFIG_STM32_SPI4
/* V2, V2M SPI1 All signals SPI4, V3 ALL signals */
/* Verification