From 335623e11d83ba83cff9c05445e7080ec216426c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= Date: Mon, 2 Mar 2020 16:18:04 +0100 Subject: [PATCH] SPI config: use enum to specify bus --- boards/airmind/mindpx-v2/src/spi.cpp | 6 +++--- boards/av/x-v1/src/spi.cpp | 8 ++++---- boards/bitcraze/crazyflie/src/spi.cpp | 2 +- boards/holybro/durandal-v1/src/spi.cpp | 10 +++++----- boards/holybro/kakutef7/src/spi.cpp | 6 +++--- boards/intel/aerofc-v1/src/spi.cpp | 2 +- boards/modalai/fc-v1/src/spi.cpp | 8 ++++---- boards/mro/ctrl-zero-f7/src/spi.cpp | 6 +++--- boards/mro/x21-777/src/spi.cpp | 4 ++-- boards/mro/x21/src/spi.cpp | 4 ++-- boards/nxp/fmuk66-v3/src/spi.cpp | 6 +++--- boards/nxp/fmurt1062-v1/src/spi.cpp | 8 ++++---- boards/omnibus/f4sd/src/spi.cpp | 6 +++--- boards/px4/fmu-v2/src/spi.cpp | 18 +++++++++--------- boards/px4/fmu-v3/src/spi.cpp | 18 +++++++++--------- boards/px4/fmu-v4/src/spi.cpp | 6 +++--- boards/px4/fmu-v4pro/src/spi.cpp | 8 ++++---- boards/px4/fmu-v5/src/spi.cpp | 10 +++++----- boards/px4/fmu-v5x/src/spi.cpp | 12 ++++++------ boards/uvify/core/src/spi.cpp | 6 +++--- .../imxrt/include/px4_arch/hw_description.h | 7 +++++++ .../include/px4_arch/spi_hw_description.h | 8 ++++---- .../kinetis/include/px4_arch/hw_description.h | 6 ++++++ .../include/px4_arch/spi_hw_description.h | 8 ++++---- .../include/px4_arch/hw_description.h | 9 +++++++++ .../include/px4_arch/spi_hw_description.h | 8 ++++---- 26 files changed, 111 insertions(+), 89 deletions(-) diff --git a/boards/airmind/mindpx-v2/src/spi.cpp b/boards/airmind/mindpx-v2/src/spi.cpp index 3604e4d2ac..b642b84dd0 100644 --- a/boards/airmind/mindpx-v2/src/spi.cpp +++ b/boards/airmind/mindpx-v2/src/spi.cpp @@ -36,13 +36,13 @@ #include constexpr px4_spi_bus_t px4_spi_buses[SPI_BUS_MAX_BUS_ITEMS] = { - initSPIBus(1, { + initSPIBus(SPI::Bus::SPI1, { initSPIDevice(SPIDEV_FLASH(0), SPI::CS{GPIO::PortE, GPIO::Pin12}), }), - initSPIBusExternal(2, { + initSPIBusExternal(SPI::Bus::SPI2, { initSPIConfigExternal(SPI::CS{GPIO::PortD, GPIO::Pin7}), }), - initSPIBus(4, { + initSPIBus(SPI::Bus::SPI4, { initSPIDevice(DRV_GYR_DEVTYPE_L3GD20, SPI::CS{GPIO::PortB, GPIO::Pin2}, SPI::DRDY{GPIO::PortE, GPIO::Pin14}), initSPIDevice(DRV_ACC_DEVTYPE_LSM303D, SPI::CS{GPIO::PortD, GPIO::Pin11}), initSPIDevice(DRV_BARO_DEVTYPE_MS5611, SPI::CS{GPIO::PortC, GPIO::Pin15}), diff --git a/boards/av/x-v1/src/spi.cpp b/boards/av/x-v1/src/spi.cpp index cc60f82d16..5b74dd47c9 100644 --- a/boards/av/x-v1/src/spi.cpp +++ b/boards/av/x-v1/src/spi.cpp @@ -36,16 +36,16 @@ #include constexpr px4_spi_bus_t px4_spi_buses[SPI_BUS_MAX_BUS_ITEMS] = { - initSPIBus(1, { + initSPIBus(SPI::Bus::SPI1, { initSPIDevice(DRV_GYR_DEVTYPE_ADIS16477, SPI::CS{GPIO::PortG, GPIO::Pin10}, SPI::DRDY{GPIO::PortJ, GPIO::Pin0}), }), - initSPIBusExternal(2, { + initSPIBusExternal(SPI::Bus::SPI2, { initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin0}), }), - initSPIBus(4, { + initSPIBus(SPI::Bus::SPI4, { initSPIDevice(DRV_BARO_DEVTYPE_LPS22HB, SPI::CS{GPIO::PortE, GPIO::Pin4}, SPI::DRDY{GPIO::PortK, GPIO::Pin1}), }), - initSPIBus(5, { + initSPIBus(SPI::Bus::SPI5, { initSPIDevice(DRV_MAG_DEVTYPE_LSM303AGR, SPI::CS{GPIO::PortH, GPIO::Pin5}, SPI::DRDY{GPIO::PortK, GPIO::Pin7}), initSPIDevice(DRV_ACC_DEVTYPE_LSM303AGR, SPI::CS{GPIO::PortB, GPIO::Pin0}, SPI::DRDY{GPIO::PortD, GPIO::Pin12}), }), diff --git a/boards/bitcraze/crazyflie/src/spi.cpp b/boards/bitcraze/crazyflie/src/spi.cpp index a1c5a10965..90ad19f19d 100644 --- a/boards/bitcraze/crazyflie/src/spi.cpp +++ b/boards/bitcraze/crazyflie/src/spi.cpp @@ -54,7 +54,7 @@ #include constexpr px4_spi_bus_t px4_spi_buses[SPI_BUS_MAX_BUS_ITEMS] = { - initSPIBus(1, { + initSPIBus(SPI::Bus::SPI1, { initSPIDevice(SPIDEV_MMCSD(0), SPI::CS{GPIO::PortC, GPIO::Pin12}), initSPIDevice(DRV_FLOW_DEVTYPE_PMW3901, SPI::CS{GPIO::PortB, GPIO::Pin4}), initSPIDevice(DRV_DEVTYPE_UNUSED, SPI::CS{GPIO::PortB, GPIO::Pin5}), diff --git a/boards/holybro/durandal-v1/src/spi.cpp b/boards/holybro/durandal-v1/src/spi.cpp index bcd3afb10e..4fe4177a2f 100644 --- a/boards/holybro/durandal-v1/src/spi.cpp +++ b/boards/holybro/durandal-v1/src/spi.cpp @@ -36,23 +36,23 @@ #include constexpr px4_spi_bus_t px4_spi_buses[SPI_BUS_MAX_BUS_ITEMS] = { - initSPIBus(1, { + initSPIBus(SPI::Bus::SPI1, { initSPIDevice(DRV_IMU_DEVTYPE_ICM20689, SPI::CS{GPIO::PortF, GPIO::Pin2}, SPI::DRDY{GPIO::PortB, GPIO::Pin4}), initSPIDevice(DRV_GYR_DEVTYPE_BMI088, SPI::CS{GPIO::PortF, GPIO::Pin4}, SPI::DRDY{GPIO::PortB, GPIO::Pin14}), initSPIDevice(DRV_ACC_DEVTYPE_BMI088, SPI::CS{GPIO::PortG, GPIO::Pin10}, SPI::DRDY{GPIO::PortB, GPIO::Pin15}), initSPIDevice(DRV_DEVTYPE_UNUSED, SPI::CS{GPIO::PortH, GPIO::Pin5}), }, {GPIO::PortE, GPIO::Pin3}), - initSPIBus(2, { + initSPIBus(SPI::Bus::SPI2, { initSPIDevice(SPIDEV_FLASH(0), SPI::CS{GPIO::PortF, GPIO::Pin5}) }), - initSPIBus(4, { + initSPIBus(SPI::Bus::SPI4, { initSPIDevice(DRV_BARO_DEVTYPE_MS5611, SPI::CS{GPIO::PortF, GPIO::Pin10}), }), - initSPIBusExternal(5, { + initSPIBusExternal(SPI::Bus::SPI5, { initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin4}), initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin10}), }), - initSPIBusExternal(6, { + initSPIBusExternal(SPI::Bus::SPI6, { initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin6}), initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin7}), initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin8}) diff --git a/boards/holybro/kakutef7/src/spi.cpp b/boards/holybro/kakutef7/src/spi.cpp index 8d3b7192ab..bd01a86c4c 100644 --- a/boards/holybro/kakutef7/src/spi.cpp +++ b/boards/holybro/kakutef7/src/spi.cpp @@ -36,13 +36,13 @@ #include constexpr px4_spi_bus_t px4_spi_buses[SPI_BUS_MAX_BUS_ITEMS] = { - initSPIBus(1, { + initSPIBus(SPI::Bus::SPI1, { initSPIDevice(SPIDEV_MMCSD(0), SPI::CS{GPIO::PortA, GPIO::Pin4}) }), - initSPIBus(2, { + initSPIBus(SPI::Bus::SPI2, { initSPIDevice(DRV_OSD_DEVTYPE_ATXXXX, SPI::CS{GPIO::PortB, GPIO::Pin12}), }), - initSPIBus(4, { + initSPIBus(SPI::Bus::SPI4, { initSPIDevice(DRV_IMU_DEVTYPE_ICM20689, SPI::CS{GPIO::PortE, GPIO::Pin4}, SPI::DRDY{GPIO::PortE, GPIO::Pin1}), initSPIDevice(DRV_IMU_DEVTYPE_MPU6000, SPI::CS{GPIO::PortE, GPIO::Pin4}, SPI::DRDY{GPIO::PortE, GPIO::Pin1}), }), diff --git a/boards/intel/aerofc-v1/src/spi.cpp b/boards/intel/aerofc-v1/src/spi.cpp index 37a0b47e3e..f90caac916 100644 --- a/boards/intel/aerofc-v1/src/spi.cpp +++ b/boards/intel/aerofc-v1/src/spi.cpp @@ -37,7 +37,7 @@ #include constexpr px4_spi_bus_t px4_spi_buses[SPI_BUS_MAX_BUS_ITEMS] = { - initSPIBus(1, { + initSPIBus(SPI::Bus::SPI1, { initSPIDevice(DRV_IMU_DEVTYPE_MPU9250, SPI::CS{GPIO::PortA, GPIO::Pin4}), }), }; diff --git a/boards/modalai/fc-v1/src/spi.cpp b/boards/modalai/fc-v1/src/spi.cpp index 9150ac5c29..dddc8e9665 100644 --- a/boards/modalai/fc-v1/src/spi.cpp +++ b/boards/modalai/fc-v1/src/spi.cpp @@ -36,17 +36,17 @@ #include constexpr px4_spi_bus_t px4_spi_buses[SPI_BUS_MAX_BUS_ITEMS] = { - initSPIBus(1, { + initSPIBus(SPI::Bus::SPI1, { initSPIDevice(DRV_IMU_DEVTYPE_ICM20602, SPI::CS{GPIO::PortI, GPIO::Pin9}, SPI::DRDY{GPIO::PortF, GPIO::Pin2}), }), - initSPIBus(2, { + initSPIBus(SPI::Bus::SPI2, { // ICM-42688 initSPIDevice(DRV_DEVTYPE_UNUSED, SPI::CS{GPIO::PortH, GPIO::Pin5}, SPI::DRDY{GPIO::PortH, GPIO::Pin12}), }), - initSPIBus(5, { + initSPIBus(SPI::Bus::SPI5, { initSPIDevice(SPIDEV_FLASH(0), SPI::CS{GPIO::PortG, GPIO::Pin7}) }), - initSPIBus(6, { + initSPIBus(SPI::Bus::SPI6, { initSPIDevice(DRV_GYR_DEVTYPE_BMI088, SPI::CS{GPIO::PortA, GPIO::Pin15}, SPI::DRDY{GPIO::PortI, GPIO::Pin7}), initSPIDevice(DRV_ACC_DEVTYPE_BMI088, SPI::CS{GPIO::PortI, GPIO::Pin10}, SPI::DRDY{GPIO::PortI, GPIO::Pin6}), }), diff --git a/boards/mro/ctrl-zero-f7/src/spi.cpp b/boards/mro/ctrl-zero-f7/src/spi.cpp index dd5ab9c7db..81677528bd 100644 --- a/boards/mro/ctrl-zero-f7/src/spi.cpp +++ b/boards/mro/ctrl-zero-f7/src/spi.cpp @@ -36,16 +36,16 @@ #include constexpr px4_spi_bus_t px4_spi_buses[SPI_BUS_MAX_BUS_ITEMS] = { - initSPIBus(1, { + initSPIBus(SPI::Bus::SPI1, { initSPIDevice(DRV_IMU_DEVTYPE_ICM20602, SPI::CS{GPIO::PortC, GPIO::Pin2}, SPI::DRDY{GPIO::PortD, GPIO::Pin15}), // ICM-20948 initSPIDevice(DRV_DEVTYPE_UNUSED, SPI::CS{GPIO::PortE, GPIO::Pin15}, SPI::DRDY{GPIO::PortE, GPIO::Pin12}), }, {GPIO::PortE, GPIO::Pin3}), - initSPIBus(2, { + initSPIBus(SPI::Bus::SPI2, { initSPIDevice(SPIDEV_FLASH(0), SPI::CS{GPIO::PortD, GPIO::Pin10}), initSPIDevice(DRV_BARO_DEVTYPE_DPS310, SPI::CS{GPIO::PortD, GPIO::Pin7}), }), - initSPIBus(5, { + initSPIBus(SPI::Bus::SPI5, { initSPIDevice(DRV_GYR_DEVTYPE_BMI088, SPI::CS{GPIO::PortF, GPIO::Pin10}, SPI::DRDY{GPIO::PortF, GPIO::Pin3}), initSPIDevice(DRV_ACC_DEVTYPE_BMI088, SPI::CS{GPIO::PortF, GPIO::Pin6}, SPI::DRDY{GPIO::PortF, GPIO::Pin1}), }, {GPIO::PortE, GPIO::Pin3}), diff --git a/boards/mro/x21-777/src/spi.cpp b/boards/mro/x21-777/src/spi.cpp index 9c22f3251d..0837a2c927 100644 --- a/boards/mro/x21-777/src/spi.cpp +++ b/boards/mro/x21-777/src/spi.cpp @@ -36,13 +36,13 @@ #include constexpr px4_spi_bus_t px4_spi_buses[SPI_BUS_MAX_BUS_ITEMS] = { - initSPIBus(1, { + initSPIBus(SPI::Bus::SPI1, { initSPIDevice(DRV_IMU_DEVTYPE_ICM20602, SPI::CS{GPIO::PortC, GPIO::Pin15}, SPI::DRDY{GPIO::PortC, GPIO::Pin14}), initSPIDevice(DRV_IMU_DEVTYPE_ICM20608, SPI::CS{GPIO::PortC, GPIO::Pin15}, SPI::DRDY{GPIO::PortC, GPIO::Pin14}), initSPIDevice(DRV_BARO_DEVTYPE_MS5611, SPI::CS{GPIO::PortD, GPIO::Pin7}), initSPIDevice(DRV_IMU_DEVTYPE_MPU9250, SPI::CS{GPIO::PortC, GPIO::Pin2}, SPI::DRDY{GPIO::PortD, GPIO::Pin15}), }), - initSPIBus(2, { + initSPIBus(SPI::Bus::SPI2, { initSPIDevice(SPIDEV_FLASH(0), SPI::CS{GPIO::PortD, GPIO::Pin10}), }), }; diff --git a/boards/mro/x21/src/spi.cpp b/boards/mro/x21/src/spi.cpp index 9c22f3251d..0837a2c927 100644 --- a/boards/mro/x21/src/spi.cpp +++ b/boards/mro/x21/src/spi.cpp @@ -36,13 +36,13 @@ #include constexpr px4_spi_bus_t px4_spi_buses[SPI_BUS_MAX_BUS_ITEMS] = { - initSPIBus(1, { + initSPIBus(SPI::Bus::SPI1, { initSPIDevice(DRV_IMU_DEVTYPE_ICM20602, SPI::CS{GPIO::PortC, GPIO::Pin15}, SPI::DRDY{GPIO::PortC, GPIO::Pin14}), initSPIDevice(DRV_IMU_DEVTYPE_ICM20608, SPI::CS{GPIO::PortC, GPIO::Pin15}, SPI::DRDY{GPIO::PortC, GPIO::Pin14}), initSPIDevice(DRV_BARO_DEVTYPE_MS5611, SPI::CS{GPIO::PortD, GPIO::Pin7}), initSPIDevice(DRV_IMU_DEVTYPE_MPU9250, SPI::CS{GPIO::PortC, GPIO::Pin2}, SPI::DRDY{GPIO::PortD, GPIO::Pin15}), }), - initSPIBus(2, { + initSPIBus(SPI::Bus::SPI2, { initSPIDevice(SPIDEV_FLASH(0), SPI::CS{GPIO::PortD, GPIO::Pin10}), }), }; diff --git a/boards/nxp/fmuk66-v3/src/spi.cpp b/boards/nxp/fmuk66-v3/src/spi.cpp index 7d0ea80488..41d63f0dbb 100644 --- a/boards/nxp/fmuk66-v3/src/spi.cpp +++ b/boards/nxp/fmuk66-v3/src/spi.cpp @@ -56,15 +56,15 @@ #if defined(CONFIG_KINETIS_SPI0) || defined(CONFIG_KINETIS_SPI1) || defined(CONFIG_KINETIS_SPI2) constexpr px4_spi_bus_t px4_spi_buses[SPI_BUS_MAX_BUS_ITEMS] = { - initSPIBus(PX4_BUS_NUMBER_TO_PX4(0), { + initSPIBus(SPI::Bus::SPI0, { initSPIDevice(SPIDEV_FLASH(0), SPI::CS{GPIO::PortC, GPIO::Pin2}) }), - initSPIBus(PX4_BUS_NUMBER_TO_PX4(1), { + initSPIBus(SPI::Bus::SPI1, { initSPIDevice(DRV_ACC_DEVTYPE_FXOS8701C, SPI::CS{GPIO::PortB, GPIO::Pin10}), initSPIDevice(DRV_GYR_DEVTYPE_FXAS2100C, SPI::CS{GPIO::PortB, GPIO::Pin9}), initSPIDevice(DRV_DEVTYPE_UNUSED, SPI::CS{GPIO::PortA, GPIO::Pin19}), }, {GPIO::PortB, GPIO::Pin8}), - initSPIBusExternal(PX4_BUS_NUMBER_TO_PX4(2), { + initSPIBusExternal(SPI::Bus::SPI2, { initSPIConfigExternal(SPI::CS{GPIO::PortB, GPIO::Pin20}), initSPIConfigExternal(SPI::CS{GPIO::PortD, GPIO::Pin15}), }), diff --git a/boards/nxp/fmurt1062-v1/src/spi.cpp b/boards/nxp/fmurt1062-v1/src/spi.cpp index 69f172256d..3914a584d7 100644 --- a/boards/nxp/fmurt1062-v1/src/spi.cpp +++ b/boards/nxp/fmurt1062-v1/src/spi.cpp @@ -65,19 +65,19 @@ constexpr px4_spi_bus_t px4_spi_buses[SPI_BUS_MAX_BUS_ITEMS] = { - initSPIBus(1, { + initSPIBus(SPI::Bus::LPSPI1, { initSPIDevice(DRV_IMU_DEVTYPE_ICM20689, SPI::CS{GPIO::Port3, GPIO::Pin26}, SPI::DRDY{GPIO::Port4, GPIO::Pin15}), /* GPIO_EMC_40 GPIO3_IO26 */ initSPIDevice(DRV_GYR_DEVTYPE_BMI055, SPI::CS{GPIO::Port2, GPIO::Pin26}, SPI::DRDY{GPIO::Port4, GPIO::Pin16}), /* GPIO_B1_10 GPIO2_IO26 */ initSPIDevice(DRV_ACC_DEVTYPE_BMI055, SPI::CS{GPIO::Port2, GPIO::Pin31}, SPI::DRDY{GPIO::Port3, GPIO::Pin23}), /* GPIO_B1_15 GPIO2_IO31 */ initSPIDevice(DRV_DEVTYPE_UNUSED, SPI::CS{GPIO::Port3, GPIO::Pin0}), /* GPIO_SD_B1_00 GPIO3_IO00, AUX_MEM */ }, {GPIO::Port3, GPIO::Pin27}), - initSPIBus(2, { + initSPIBus(SPI::Bus::LPSPI2, { initSPIDevice(SPIDEV_FLASH(0), SPI::CS{GPIO::Port3, GPIO::Pin20}) /* GPIO_EMC_34 G GPIO3_IO20 */ }), - initSPIBus(3, { + initSPIBus(SPI::Bus::LPSPI3, { initSPIDevice(DRV_BARO_DEVTYPE_MS5611, SPI::CS{GPIO::Port4, GPIO::Pin14}), /* GPIO_EMC_14 GPIO4_IO14 */ }), - initSPIBusExternal(4, { + initSPIBusExternal(SPI::Bus::LPSPI4, { initSPIConfigExternal(SPI::CS{GPIO::Port4, GPIO::Pin7}), /* GPIO_EMC_07 GPIO4_IO07 */ initSPIConfigExternal(SPI::CS{GPIO::Port2, GPIO::Pin30}), /* GPIO_B1_14 GPIO2_IO30 */ initSPIConfigExternal(SPI::CS{GPIO::Port4, GPIO::Pin11}), /* GPIO_EMC_11 GPIO4_IO011 */ diff --git a/boards/omnibus/f4sd/src/spi.cpp b/boards/omnibus/f4sd/src/spi.cpp index 1504bf85b8..be91a87e4e 100644 --- a/boards/omnibus/f4sd/src/spi.cpp +++ b/boards/omnibus/f4sd/src/spi.cpp @@ -36,14 +36,14 @@ #include constexpr px4_spi_bus_t px4_spi_buses[SPI_BUS_MAX_BUS_ITEMS] = { - initSPIBus(1, { + initSPIBus(SPI::Bus::SPI1, { initSPIDevice(DRV_IMU_DEVTYPE_MPU6000, SPI::CS{GPIO::PortA, GPIO::Pin4}), initSPIDevice(DRV_IMU_DEVTYPE_ICM20602, SPI::CS{GPIO::PortA, GPIO::Pin4}), }), - initSPIBus(2, { + initSPIBus(SPI::Bus::SPI2, { initSPIDevice(SPIDEV_MMCSD(0), SPI::CS{GPIO::PortB, GPIO::Pin12}) }), - initSPIBus(3, { + initSPIBus(SPI::Bus::SPI3, { initSPIDevice(DRV_BARO_DEVTYPE_BMP280, SPI::CS{GPIO::PortB, GPIO::Pin3}), initSPIDevice(DRV_OSD_DEVTYPE_ATXXXX, SPI::CS{GPIO::PortA, GPIO::Pin15}), }), diff --git a/boards/px4/fmu-v2/src/spi.cpp b/boards/px4/fmu-v2/src/spi.cpp index 8294d660c6..b7cc51059e 100644 --- a/boards/px4/fmu-v2/src/spi.cpp +++ b/boards/px4/fmu-v2/src/spi.cpp @@ -37,33 +37,33 @@ constexpr px4_spi_bus_all_hw_t px4_spi_buses_all_hw[BOARD_NUM_SPI_CFG_HW_VERSIONS] = { initSPIHWVersion(HW_VER_FMUV2, { - initSPIBus(1, { + initSPIBus(SPI::Bus::SPI1, { initSPIDevice(DRV_IMU_DEVTYPE_MPU6000, SPI::CS{GPIO::PortC, GPIO::Pin2}, SPI::DRDY{GPIO::PortD, GPIO::Pin15}), initSPIDevice(DRV_IMU_DEVTYPE_MPU9250, SPI::CS{GPIO::PortC, GPIO::Pin2}, SPI::DRDY{GPIO::PortD, GPIO::Pin15}), initSPIDevice(DRV_GYR_DEVTYPE_L3GD20, SPI::CS{GPIO::PortC, GPIO::Pin13}, SPI::DRDY{GPIO::PortB, GPIO::Pin0}), initSPIDevice(DRV_ACC_DEVTYPE_LSM303D, SPI::CS{GPIO::PortC, GPIO::Pin15}), initSPIDevice(DRV_BARO_DEVTYPE_MS5611, SPI::CS{GPIO::PortD, GPIO::Pin7}), }, {GPIO::PortE, GPIO::Pin3}), - initSPIBus(2, { + initSPIBus(SPI::Bus::SPI2, { initSPIDevice(SPIDEV_FLASH(0), SPI::CS{GPIO::PortD, GPIO::Pin10}) }), - initSPIBusExternal(4, { + initSPIBusExternal(SPI::Bus::SPI4, { initSPIConfigExternal(SPI::CS{GPIO::PortC, GPIO::Pin14}), initSPIConfigExternal(SPI::CS{GPIO::PortE, GPIO::Pin4}), }), }), initSPIHWVersion(HW_VER_FMUV3, { - initSPIBus(1, { + initSPIBus(SPI::Bus::SPI1, { initSPIDevice(DRV_IMU_DEVTYPE_MPU6000, SPI::CS{GPIO::PortC, GPIO::Pin2}, SPI::DRDY{GPIO::PortD, GPIO::Pin15}), initSPIDevice(DRV_IMU_DEVTYPE_MPU9250, SPI::CS{GPIO::PortC, GPIO::Pin2}, SPI::DRDY{GPIO::PortD, GPIO::Pin15}), initSPIDevice(DRV_MAG_DEVTYPE_HMC5883, SPI::CS{GPIO::PortC, GPIO::Pin1}), // HMC5983 initSPIDevice(DRV_BARO_DEVTYPE_MS5611, SPI::CS{GPIO::PortD, GPIO::Pin7}), }, {GPIO::PortE, GPIO::Pin3}), - initSPIBus(2, { + initSPIBus(SPI::Bus::SPI2, { initSPIDevice(SPIDEV_FLASH(0), SPI::CS{GPIO::PortD, GPIO::Pin10}) }), - initSPIBus(4, { + initSPIBus(SPI::Bus::SPI4, { initSPIDevice(DRV_IMU_DEVTYPE_MPU6000, SPI::CS{GPIO::PortE, GPIO::Pin4}), initSPIDevice(DRV_IMU_DEVTYPE_MPU9250, SPI::CS{GPIO::PortE, GPIO::Pin4}), initSPIDevice(DRV_GYR_DEVTYPE_L3GD20, SPI::CS{GPIO::PortC, GPIO::Pin13}), @@ -73,14 +73,14 @@ constexpr px4_spi_bus_all_hw_t px4_spi_buses_all_hw[BOARD_NUM_SPI_CFG_HW_VERSION }), initSPIHWVersion(HW_VER_FMUV2MINI, { - initSPIBus(1, { + initSPIBus(SPI::Bus::SPI1, { initSPIDevice(DRV_IMU_DEVTYPE_ICM20608, SPI::CS{GPIO::PortC, GPIO::Pin15}, SPI::DRDY{GPIO::PortC, GPIO::Pin14}), initSPIDevice(DRV_BARO_DEVTYPE_MS5611, SPI::CS{GPIO::PortD, GPIO::Pin7}), }, {GPIO::PortE, GPIO::Pin3}), - initSPIBus(2, { + initSPIBus(SPI::Bus::SPI2, { initSPIDevice(SPIDEV_FLASH(0), SPI::CS{GPIO::PortD, GPIO::Pin10}) }), - initSPIBusExternal(4, { // unused, but we must at least define it here + initSPIBusExternal(SPI::Bus::SPI4, { // unused, but we must at least define it here }), }), diff --git a/boards/px4/fmu-v3/src/spi.cpp b/boards/px4/fmu-v3/src/spi.cpp index 8294d660c6..b7cc51059e 100644 --- a/boards/px4/fmu-v3/src/spi.cpp +++ b/boards/px4/fmu-v3/src/spi.cpp @@ -37,33 +37,33 @@ constexpr px4_spi_bus_all_hw_t px4_spi_buses_all_hw[BOARD_NUM_SPI_CFG_HW_VERSIONS] = { initSPIHWVersion(HW_VER_FMUV2, { - initSPIBus(1, { + initSPIBus(SPI::Bus::SPI1, { initSPIDevice(DRV_IMU_DEVTYPE_MPU6000, SPI::CS{GPIO::PortC, GPIO::Pin2}, SPI::DRDY{GPIO::PortD, GPIO::Pin15}), initSPIDevice(DRV_IMU_DEVTYPE_MPU9250, SPI::CS{GPIO::PortC, GPIO::Pin2}, SPI::DRDY{GPIO::PortD, GPIO::Pin15}), initSPIDevice(DRV_GYR_DEVTYPE_L3GD20, SPI::CS{GPIO::PortC, GPIO::Pin13}, SPI::DRDY{GPIO::PortB, GPIO::Pin0}), initSPIDevice(DRV_ACC_DEVTYPE_LSM303D, SPI::CS{GPIO::PortC, GPIO::Pin15}), initSPIDevice(DRV_BARO_DEVTYPE_MS5611, SPI::CS{GPIO::PortD, GPIO::Pin7}), }, {GPIO::PortE, GPIO::Pin3}), - initSPIBus(2, { + initSPIBus(SPI::Bus::SPI2, { initSPIDevice(SPIDEV_FLASH(0), SPI::CS{GPIO::PortD, GPIO::Pin10}) }), - initSPIBusExternal(4, { + initSPIBusExternal(SPI::Bus::SPI4, { initSPIConfigExternal(SPI::CS{GPIO::PortC, GPIO::Pin14}), initSPIConfigExternal(SPI::CS{GPIO::PortE, GPIO::Pin4}), }), }), initSPIHWVersion(HW_VER_FMUV3, { - initSPIBus(1, { + initSPIBus(SPI::Bus::SPI1, { initSPIDevice(DRV_IMU_DEVTYPE_MPU6000, SPI::CS{GPIO::PortC, GPIO::Pin2}, SPI::DRDY{GPIO::PortD, GPIO::Pin15}), initSPIDevice(DRV_IMU_DEVTYPE_MPU9250, SPI::CS{GPIO::PortC, GPIO::Pin2}, SPI::DRDY{GPIO::PortD, GPIO::Pin15}), initSPIDevice(DRV_MAG_DEVTYPE_HMC5883, SPI::CS{GPIO::PortC, GPIO::Pin1}), // HMC5983 initSPIDevice(DRV_BARO_DEVTYPE_MS5611, SPI::CS{GPIO::PortD, GPIO::Pin7}), }, {GPIO::PortE, GPIO::Pin3}), - initSPIBus(2, { + initSPIBus(SPI::Bus::SPI2, { initSPIDevice(SPIDEV_FLASH(0), SPI::CS{GPIO::PortD, GPIO::Pin10}) }), - initSPIBus(4, { + initSPIBus(SPI::Bus::SPI4, { initSPIDevice(DRV_IMU_DEVTYPE_MPU6000, SPI::CS{GPIO::PortE, GPIO::Pin4}), initSPIDevice(DRV_IMU_DEVTYPE_MPU9250, SPI::CS{GPIO::PortE, GPIO::Pin4}), initSPIDevice(DRV_GYR_DEVTYPE_L3GD20, SPI::CS{GPIO::PortC, GPIO::Pin13}), @@ -73,14 +73,14 @@ constexpr px4_spi_bus_all_hw_t px4_spi_buses_all_hw[BOARD_NUM_SPI_CFG_HW_VERSION }), initSPIHWVersion(HW_VER_FMUV2MINI, { - initSPIBus(1, { + initSPIBus(SPI::Bus::SPI1, { initSPIDevice(DRV_IMU_DEVTYPE_ICM20608, SPI::CS{GPIO::PortC, GPIO::Pin15}, SPI::DRDY{GPIO::PortC, GPIO::Pin14}), initSPIDevice(DRV_BARO_DEVTYPE_MS5611, SPI::CS{GPIO::PortD, GPIO::Pin7}), }, {GPIO::PortE, GPIO::Pin3}), - initSPIBus(2, { + initSPIBus(SPI::Bus::SPI2, { initSPIDevice(SPIDEV_FLASH(0), SPI::CS{GPIO::PortD, GPIO::Pin10}) }), - initSPIBusExternal(4, { // unused, but we must at least define it here + initSPIBusExternal(SPI::Bus::SPI4, { // unused, but we must at least define it here }), }), diff --git a/boards/px4/fmu-v4/src/spi.cpp b/boards/px4/fmu-v4/src/spi.cpp index 169d5f6ee2..ff3d9a9298 100644 --- a/boards/px4/fmu-v4/src/spi.cpp +++ b/boards/px4/fmu-v4/src/spi.cpp @@ -36,18 +36,18 @@ #include constexpr px4_spi_bus_t px4_spi_buses[SPI_BUS_MAX_BUS_ITEMS] = { - initSPIBus(1, { + initSPIBus(SPI::Bus::SPI1, { initSPIDevice(DRV_IMU_DEVTYPE_MPU9250, SPI::CS{GPIO::PortC, GPIO::Pin2}, SPI::DRDY{GPIO::PortD, GPIO::Pin15}), initSPIDevice(DRV_IMU_DEVTYPE_ICM20602, SPI::CS{GPIO::PortC, GPIO::Pin15}, SPI::DRDY{GPIO::PortC, GPIO::Pin14}), initSPIDevice(DRV_IMU_DEVTYPE_ICM20608, SPI::CS{GPIO::PortC, GPIO::Pin15}, SPI::DRDY{GPIO::PortC, GPIO::Pin14}), initSPIDevice(DRV_MAG_DEVTYPE_HMC5883, SPI::CS{GPIO::PortE, GPIO::Pin15}, SPI::DRDY{GPIO::PortE, GPIO::Pin12}), // hmc5983 initSPIDevice(DRV_MAG_DEVTYPE_LIS3MDL, SPI::CS{GPIO::PortE, GPIO::Pin15}, SPI::DRDY{GPIO::PortE, GPIO::Pin12}), }, {GPIO::PortE, GPIO::Pin3}), - initSPIBus(2, { + initSPIBus(SPI::Bus::SPI2, { initSPIDevice(SPIDEV_FLASH(0), SPI::CS{GPIO::PortD, GPIO::Pin10}), initSPIDevice(DRV_BARO_DEVTYPE_MS5611, SPI::CS{GPIO::PortD, GPIO::Pin7}), }), - initSPIBusExternal(4, { + initSPIBusExternal(SPI::Bus::SPI4, { initSPIConfigExternal(SPI::CS{GPIO::PortA, GPIO::Pin8}), }), }; diff --git a/boards/px4/fmu-v4pro/src/spi.cpp b/boards/px4/fmu-v4pro/src/spi.cpp index fe04a74048..816c587cb0 100644 --- a/boards/px4/fmu-v4pro/src/spi.cpp +++ b/boards/px4/fmu-v4pro/src/spi.cpp @@ -36,20 +36,20 @@ #include constexpr px4_spi_bus_t px4_spi_buses[SPI_BUS_MAX_BUS_ITEMS] = { - initSPIBus(1, { + initSPIBus(SPI::Bus::SPI1, { initSPIDevice(DRV_IMU_DEVTYPE_MPU9250, SPI::CS{GPIO::PortC, GPIO::Pin2}, SPI::DRDY{GPIO::PortD, GPIO::Pin15}), initSPIDevice(DRV_IMU_DEVTYPE_ICM20602, SPI::CS{GPIO::PortC, GPIO::Pin15}, SPI::DRDY{GPIO::PortC, GPIO::Pin14}), initSPIDevice(DRV_IMU_DEVTYPE_ICM20608, SPI::CS{GPIO::PortC, GPIO::Pin15}, SPI::DRDY{GPIO::PortC, GPIO::Pin14}), initSPIDevice(DRV_MAG_DEVTYPE_LIS3MDL, SPI::CS{GPIO::PortE, GPIO::Pin15}, SPI::DRDY{GPIO::PortE, GPIO::Pin12}), initSPIDevice(DRV_BARO_DEVTYPE_MS5611, SPI::CS{GPIO::PortD, GPIO::Pin7}), }, {GPIO::PortE, GPIO::Pin3}), - initSPIBus(2, { + initSPIBus(SPI::Bus::SPI2, { initSPIDevice(SPIDEV_FLASH(0), SPI::CS{GPIO::PortD, GPIO::Pin10}), }), - initSPIBusExternal(5, { + initSPIBusExternal(SPI::Bus::SPI5, { initSPIConfigExternal(SPI::CS{GPIO::PortF, GPIO::Pin6}), }), - initSPIBusExternal(6, { + initSPIBusExternal(SPI::Bus::SPI6, { initSPIConfigExternal(SPI::CS{GPIO::PortG, GPIO::Pin11}), }), }; diff --git a/boards/px4/fmu-v5/src/spi.cpp b/boards/px4/fmu-v5/src/spi.cpp index 7cb3ffb9ce..ff244c6a44 100644 --- a/boards/px4/fmu-v5/src/spi.cpp +++ b/boards/px4/fmu-v5/src/spi.cpp @@ -36,24 +36,24 @@ #include constexpr px4_spi_bus_t px4_spi_buses[SPI_BUS_MAX_BUS_ITEMS] = { - initSPIBus(1, { + initSPIBus(SPI::Bus::SPI1, { initSPIDevice(DRV_IMU_DEVTYPE_ICM20689, SPI::CS{GPIO::PortF, GPIO::Pin2}, SPI::DRDY{GPIO::PortB, GPIO::Pin4}), initSPIDevice(DRV_IMU_DEVTYPE_ICM20602, SPI::CS{GPIO::PortF, GPIO::Pin3}, SPI::DRDY{GPIO::PortC, GPIO::Pin5}), initSPIDevice(DRV_GYR_DEVTYPE_BMI055, SPI::CS{GPIO::PortF, GPIO::Pin4}, SPI::DRDY{GPIO::PortB, GPIO::Pin14}), initSPIDevice(DRV_ACC_DEVTYPE_BMI055, SPI::CS{GPIO::PortG, GPIO::Pin10}, SPI::DRDY{GPIO::PortB, GPIO::Pin15}), }, {GPIO::PortE, GPIO::Pin3}), - initSPIBus(2, { + initSPIBus(SPI::Bus::SPI2, { initSPIDevice(SPIDEV_FLASH(0), SPI::CS{GPIO::PortF, GPIO::Pin5}) }), - initSPIBus(4, { + initSPIBus(SPI::Bus::SPI4, { initSPIDevice(DRV_BARO_DEVTYPE_MS5611, SPI::CS{GPIO::PortF, GPIO::Pin10}), }), - initSPIBusExternal(5, { + initSPIBusExternal(SPI::Bus::SPI5, { initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin4}, SPI::DRDY{GPIO::PortD, GPIO::Pin15}), initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin10}), initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin11}) }), - initSPIBusExternal(6, { + initSPIBusExternal(SPI::Bus::SPI6, { initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin6}), initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin7}), initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin8}) diff --git a/boards/px4/fmu-v5x/src/spi.cpp b/boards/px4/fmu-v5x/src/spi.cpp index 97b726da10..21f2ef20b0 100644 --- a/boards/px4/fmu-v5x/src/spi.cpp +++ b/boards/px4/fmu-v5x/src/spi.cpp @@ -36,24 +36,24 @@ #include constexpr px4_spi_bus_t px4_spi_buses[SPI_BUS_MAX_BUS_ITEMS] = { - initSPIBus(1, { + initSPIBus(SPI::Bus::SPI1, { initSPIDevice(DRV_IMU_DEVTYPE_ICM20602, SPI::CS{GPIO::PortI, GPIO::Pin9}, SPI::DRDY{GPIO::PortF, GPIO::Pin2}), }, {GPIO::PortI, GPIO::Pin11}), - initSPIBus(2, { + initSPIBus(SPI::Bus::SPI2, { initSPIDevice(DRV_IMU_DEVTYPE_ST_ISM330DLC, SPI::CS{GPIO::PortH, GPIO::Pin5}, SPI::DRDY{GPIO::PortH, GPIO::Pin12}), }, {GPIO::PortD, GPIO::Pin15}), - initSPIBus(3, { + initSPIBus(SPI::Bus::SPI3, { initSPIDevice(DRV_GYR_DEVTYPE_BMI088, SPI::CS{GPIO::PortI, GPIO::Pin8}, SPI::DRDY{GPIO::PortI, GPIO::Pin7}), initSPIDevice(DRV_ACC_DEVTYPE_BMI088, SPI::CS{GPIO::PortI, GPIO::Pin4}, SPI::DRDY{GPIO::PortI, GPIO::Pin6}), }, {GPIO::PortE, GPIO::Pin7}), -// initSPIBus(4, { +// initSPIBus(SPI::Bus::SPI4, { // // no devices // TODO: if enabled, remove GPIO_VDD_3V3_SENSORS4_EN from board_config.h // }, {GPIO::PortG, GPIO::Pin8}), - initSPIBus(5, { + initSPIBus(SPI::Bus::SPI5, { initSPIDevice(SPIDEV_FLASH(0), SPI::CS{GPIO::PortG, GPIO::Pin7}) }), - initSPIBusExternal(6, { + initSPIBusExternal(SPI::Bus::SPI6, { initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin10}, SPI::DRDY{GPIO::PortD, GPIO::Pin11}), initSPIConfigExternal(SPI::CS{GPIO::PortA, GPIO::Pin15}, SPI::DRDY{GPIO::PortD, GPIO::Pin12}), }), diff --git a/boards/uvify/core/src/spi.cpp b/boards/uvify/core/src/spi.cpp index 77fdaad3a1..6db9783f74 100644 --- a/boards/uvify/core/src/spi.cpp +++ b/boards/uvify/core/src/spi.cpp @@ -36,17 +36,17 @@ #include constexpr px4_spi_bus_t px4_spi_buses[SPI_BUS_MAX_BUS_ITEMS] = { - initSPIBus(1, { + initSPIBus(SPI::Bus::SPI1, { initSPIDevice(DRV_IMU_DEVTYPE_MPU9250, SPI::CS{GPIO::PortC, GPIO::Pin2}, SPI::DRDY{GPIO::PortD, GPIO::Pin15}), initSPIDevice(DRV_IMU_DEVTYPE_ICM20602, SPI::CS{GPIO::PortC, GPIO::Pin15}, SPI::DRDY{GPIO::PortC, GPIO::Pin14}), initSPIDevice(DRV_IMU_DEVTYPE_ICM20608, SPI::CS{GPIO::PortC, GPIO::Pin15}, SPI::DRDY{GPIO::PortC, GPIO::Pin14}), initSPIDevice(DRV_MAG_DEVTYPE_HMC5883, SPI::CS{GPIO::PortE, GPIO::Pin15}, SPI::DRDY{GPIO::PortE, GPIO::Pin12}), // hmc5983 }, {GPIO::PortE, GPIO::Pin3}), - initSPIBus(2, { + initSPIBus(SPI::Bus::SPI2, { initSPIDevice(SPIDEV_FLASH(0), SPI::CS{GPIO::PortD, GPIO::Pin10}), initSPIDevice(DRV_BARO_DEVTYPE_MS5611, SPI::CS{GPIO::PortD, GPIO::Pin7}), }), - initSPIBusExternal(4, { + initSPIBusExternal(SPI::Bus::SPI4, { SPI::CS{GPIO::PortA, GPIO::Pin8}, }), }; diff --git a/platforms/nuttx/src/px4/nxp/imxrt/include/px4_arch/hw_description.h b/platforms/nuttx/src/px4/nxp/imxrt/include/px4_arch/hw_description.h index 1cc152c350..5d88271edc 100644 --- a/platforms/nuttx/src/px4/nxp/imxrt/include/px4_arch/hw_description.h +++ b/platforms/nuttx/src/px4/nxp/imxrt/include/px4_arch/hw_description.h @@ -379,6 +379,13 @@ static inline constexpr uint32_t getGPIOPin(GPIO::Pin pin) namespace SPI { +enum class Bus { + LPSPI1 = 1, + LPSPI2, + LPSPI3, + LPSPI4, +}; + using CS = GPIO::GPIOPin; ///< chip-select pin using DRDY = GPIO::GPIOPin; ///< data ready pin diff --git a/platforms/nuttx/src/px4/nxp/imxrt/include/px4_arch/spi_hw_description.h b/platforms/nuttx/src/px4/nxp/imxrt/include/px4_arch/spi_hw_description.h index b8de001a29..edfd53de13 100644 --- a/platforms/nuttx/src/px4/nxp/imxrt/include/px4_arch/spi_hw_description.h +++ b/platforms/nuttx/src/px4/nxp/imxrt/include/px4_arch/spi_hw_description.h @@ -64,7 +64,7 @@ static inline constexpr px4_spi_bus_device_t initSPIDevice(uint32_t devid, SPI:: return ret; } -static inline constexpr px4_spi_bus_t initSPIBus(int bus, const px4_spi_bus_devices_t &devices, +static inline constexpr px4_spi_bus_t initSPIBus(SPI::Bus bus, const px4_spi_bus_devices_t &devices, GPIO::GPIOPin power_enable = {}) { px4_spi_bus_t ret{}; @@ -88,7 +88,7 @@ static inline constexpr px4_spi_bus_t initSPIBus(int bus, const px4_spi_bus_devi } } - ret.bus = bus; + ret.bus = (int)bus; ret.is_external = false; if (power_enable.port != GPIO::PortInvalid) { @@ -104,7 +104,7 @@ struct bus_device_external_cfg_array_t { SPI::bus_device_external_cfg_t devices[SPI_BUS_MAX_DEVICES]; }; -static inline constexpr px4_spi_bus_t initSPIBusExternal(int bus, const bus_device_external_cfg_array_t &devices) +static inline constexpr px4_spi_bus_t initSPIBusExternal(SPI::Bus bus, const bus_device_external_cfg_array_t &devices) { px4_spi_bus_t ret{}; @@ -116,7 +116,7 @@ static inline constexpr px4_spi_bus_t initSPIBusExternal(int bus, const bus_devi ret.devices[i] = initSPIDevice(i, devices.devices[i].cs_gpio, devices.devices[i].drdy_gpio); } - ret.bus = bus; + ret.bus = (int)bus; ret.is_external = true; // TODO: set requires_locking to false once all drivers are converted to use the I2CSPIDriver class ret.requires_locking = true; // external buses are never accessed by NuttX drivers diff --git a/platforms/nuttx/src/px4/nxp/kinetis/include/px4_arch/hw_description.h b/platforms/nuttx/src/px4/nxp/kinetis/include/px4_arch/hw_description.h index d9ba9a9bc5..8bd0c5fd3c 100644 --- a/platforms/nuttx/src/px4/nxp/kinetis/include/px4_arch/hw_description.h +++ b/platforms/nuttx/src/px4/nxp/kinetis/include/px4_arch/hw_description.h @@ -232,6 +232,12 @@ static inline constexpr uint32_t getGPIOPin(GPIO::Pin pin) namespace SPI { +enum class Bus { + SPI0 = 1, + SPI1, + SPI2, +}; + using CS = GPIO::GPIOPin; ///< chip-select pin using DRDY = GPIO::GPIOPin; ///< data ready pin diff --git a/platforms/nuttx/src/px4/nxp/kinetis/include/px4_arch/spi_hw_description.h b/platforms/nuttx/src/px4/nxp/kinetis/include/px4_arch/spi_hw_description.h index 17399626f8..a6ca0717b2 100644 --- a/platforms/nuttx/src/px4/nxp/kinetis/include/px4_arch/spi_hw_description.h +++ b/platforms/nuttx/src/px4/nxp/kinetis/include/px4_arch/spi_hw_description.h @@ -58,7 +58,7 @@ static inline constexpr px4_spi_bus_device_t initSPIDevice(uint32_t devid, SPI:: return ret; } -static inline constexpr px4_spi_bus_t initSPIBus(int bus, const px4_spi_bus_devices_t &devices, +static inline constexpr px4_spi_bus_t initSPIBus(SPI::Bus bus, const px4_spi_bus_devices_t &devices, GPIO::GPIOPin power_enable = {}) { px4_spi_bus_t ret{}; @@ -82,7 +82,7 @@ static inline constexpr px4_spi_bus_t initSPIBus(int bus, const px4_spi_bus_devi } } - ret.bus = bus; + ret.bus = (int)bus; ret.is_external = false; if (power_enable.port != GPIO::PortInvalid) { @@ -98,7 +98,7 @@ struct bus_device_external_cfg_array_t { SPI::bus_device_external_cfg_t devices[SPI_BUS_MAX_DEVICES]; }; -static inline constexpr px4_spi_bus_t initSPIBusExternal(int bus, const bus_device_external_cfg_array_t &devices) +static inline constexpr px4_spi_bus_t initSPIBusExternal(SPI::Bus bus, const bus_device_external_cfg_array_t &devices) { px4_spi_bus_t ret{}; @@ -110,7 +110,7 @@ static inline constexpr px4_spi_bus_t initSPIBusExternal(int bus, const bus_devi ret.devices[i] = initSPIDevice(i, devices.devices[i].cs_gpio, devices.devices[i].drdy_gpio); } - ret.bus = bus; + ret.bus = (int)bus; ret.is_external = true; // TODO: set requires_locking to false once all drivers are converted to use the I2CSPIDriver class ret.requires_locking = true; // external buses are never accessed by NuttX drivers diff --git a/platforms/nuttx/src/px4/stm/stm32_common/include/px4_arch/hw_description.h b/platforms/nuttx/src/px4/stm/stm32_common/include/px4_arch/hw_description.h index a9daee5b67..60c1f8c051 100644 --- a/platforms/nuttx/src/px4/stm/stm32_common/include/px4_arch/hw_description.h +++ b/platforms/nuttx/src/px4/stm/stm32_common/include/px4_arch/hw_description.h @@ -289,6 +289,15 @@ static inline constexpr uint32_t getGPIOPin(GPIO::Pin pin) namespace SPI { +enum class Bus { + SPI1 = 1, + SPI2, + SPI3, + SPI4, + SPI5, + SPI6, +}; + using CS = GPIO::GPIOPin; ///< chip-select pin using DRDY = GPIO::GPIOPin; ///< data ready pin diff --git a/platforms/nuttx/src/px4/stm/stm32_common/include/px4_arch/spi_hw_description.h b/platforms/nuttx/src/px4/stm/stm32_common/include/px4_arch/spi_hw_description.h index 711ee5ce75..0d48062894 100644 --- a/platforms/nuttx/src/px4/stm/stm32_common/include/px4_arch/spi_hw_description.h +++ b/platforms/nuttx/src/px4/stm/stm32_common/include/px4_arch/spi_hw_description.h @@ -60,7 +60,7 @@ static inline constexpr px4_spi_bus_device_t initSPIDevice(uint32_t devid, SPI:: return ret; } -static inline constexpr px4_spi_bus_t initSPIBus(int bus, const px4_spi_bus_devices_t &devices, +static inline constexpr px4_spi_bus_t initSPIBus(SPI::Bus bus, const px4_spi_bus_devices_t &devices, GPIO::GPIOPin power_enable = {}) { px4_spi_bus_t ret{}; @@ -84,7 +84,7 @@ static inline constexpr px4_spi_bus_t initSPIBus(int bus, const px4_spi_bus_devi } } - ret.bus = bus; + ret.bus = (int)bus; ret.is_external = false; if (power_enable.port != GPIO::PortInvalid) { @@ -100,7 +100,7 @@ struct bus_device_external_cfg_array_t { SPI::bus_device_external_cfg_t devices[SPI_BUS_MAX_DEVICES]; }; -static inline constexpr px4_spi_bus_t initSPIBusExternal(int bus, const bus_device_external_cfg_array_t &devices) +static inline constexpr px4_spi_bus_t initSPIBusExternal(SPI::Bus bus, const bus_device_external_cfg_array_t &devices) { px4_spi_bus_t ret{}; @@ -112,7 +112,7 @@ static inline constexpr px4_spi_bus_t initSPIBusExternal(int bus, const bus_devi ret.devices[i] = initSPIDevice(i, devices.devices[i].cs_gpio, devices.devices[i].drdy_gpio); } - ret.bus = bus; + ret.bus = (int)bus; ret.is_external = true; // TODO: set requires_locking to false once all drivers are converted to use the I2CSPIDriver class ret.requires_locking = true; // external buses are never accessed by NuttX drivers