@ -26,51 +26,51 @@ extern const AP_HAL::HAL& hal;
@@ -26,51 +26,51 @@ extern const AP_HAL::HAL& hal;
# if CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_PXF || CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_ERLEBOARD
SPIDeviceDriver SPIDeviceManager : : _device [ ] = {
// different SPI tables per board subtype
SPIDeviceDriver ( 1 , 0 , AP_HAL : : SPIDevice_LSM9DS0_AM , SPI_MODE_3 , 8 , BBB_P9_17 , 10 * MHZ , 10 * MHZ ) ,
SPIDeviceDriver ( 1 , 0 , AP_HAL : : SPIDevice_LSM9DS0_G , SPI_MODE_3 , 8 , BBB_P8_9 , 10 * MHZ , 10 * MHZ ) ,
SPIDeviceDriver ( 2 , 0 , AP_HAL : : SPIDevice_MS5611 , SPI_MODE_3 , 8 , BBB_P9_42 , 10 * MHZ , 10 * MHZ ) ,
SPIDeviceDriver ( 2 , 0 , AP_HAL : : SPIDevice_MPU6000 , SPI_MODE_3 , 8 , BBB_P9_28 , 500 * 1000 , 20 * MHZ ) ,
SPIDeviceDriver ( " lsm9ds0_am " , 1 , 0 , AP_HAL : : SPIDevice_LSM9DS0_AM , SPI_MODE_3 , 8 , BBB_P9_17 , 10 * MHZ , 10 * MHZ ) ,
SPIDeviceDriver ( " lsm9ds0_g " , 1 , 0 , AP_HAL : : SPIDevice_LSM9DS0_G , SPI_MODE_3 , 8 , BBB_P8_9 , 10 * MHZ , 10 * MHZ ) ,
SPIDeviceDriver ( " ms5611 " , 2 , 0 , AP_HAL : : SPIDevice_MS5611 , SPI_MODE_3 , 8 , BBB_P9_42 , 10 * MHZ , 10 * MHZ ) ,
SPIDeviceDriver ( " mpu6000 " , 2 , 0 , AP_HAL : : SPIDevice_MPU6000 , SPI_MODE_3 , 8 , BBB_P9_28 , 500 * 1000 , 20 * MHZ ) ,
/* MPU9250 is restricted to 1MHz for non-data and interrupt registers */
SPIDeviceDriver ( 2 , 0 , AP_HAL : : SPIDevice_MPU9250 , SPI_MODE_3 , 8 , BBB_P9_23 , 1 * MHZ , 20 * MHZ ) ,
SPIDeviceDriver ( 2 , 0 , AP_HAL : : SPIDevice_Dataflash , SPI_MODE_3 , 8 , BBB_P8_12 , 6 * MHZ , 6 * MHZ ) ,
SPIDeviceDriver ( " mpu9250 " , 2 , 0 , AP_HAL : : SPIDevice_MPU9250 , SPI_MODE_3 , 8 , BBB_P9_23 , 1 * MHZ , 20 * MHZ ) ,
SPIDeviceDriver ( " dataflash " , 2 , 0 , AP_HAL : : SPIDevice_Dataflash , SPI_MODE_3 , 8 , BBB_P8_12 , 6 * MHZ , 6 * MHZ ) ,
} ;
# elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_MINLURE
SPIDeviceDriver SPIDeviceManager : : _device [ ] = {
SPIDeviceDriver ( 0 , 0 , AP_HAL : : SPIDevice_MPU6000 , SPI_MODE_3 , 8 , SPI_CS_KERNEL , 1 * MHZ , 15 * MHZ )
SPIDeviceDriver ( " mpu6000 " , 0 , 0 , AP_HAL : : SPIDevice_MPU6000 , SPI_MODE_3 , 8 , SPI_CS_KERNEL , 1 * MHZ , 15 * MHZ )
} ;
# elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_NAVIO
SPIDeviceDriver SPIDeviceManager : : _device [ ] = {
/* MPU9250 is restricted to 1MHz for non-data and interrupt registers */
SPIDeviceDriver ( 0 , 1 , AP_HAL : : SPIDevice_MPU9250 , SPI_MODE_0 , 8 , SPI_CS_KERNEL , 1 * MHZ , 20 * MHZ ) ,
SPIDeviceDriver ( 0 , 0 , AP_HAL : : SPIDevice_Ublox , SPI_MODE_0 , 8 , SPI_CS_KERNEL , 250 * KHZ , 5 * MHZ ) ,
SPIDeviceDriver ( " mpu9250 " , 0 , 1 , AP_HAL : : SPIDevice_MPU9250 , SPI_MODE_0 , 8 , SPI_CS_KERNEL , 1 * MHZ , 20 * MHZ ) ,
SPIDeviceDriver ( " ublox " , 0 , 0 , AP_HAL : : SPIDevice_Ublox , SPI_MODE_0 , 8 , SPI_CS_KERNEL , 250 * KHZ , 5 * MHZ ) ,
} ;
# elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_ERLEBRAIN2 || \
CONFIG_HAL_BOARD_SUBTYPE = = HAL_BOARD_SUBTYPE_LINUX_PXFMINI
SPIDeviceDriver SPIDeviceManager : : _device [ ] = {
/* MPU9250 is restricted to 1MHz for non-data and interrupt registers */
SPIDeviceDriver ( 0 , 1 , AP_HAL : : SPIDevice_MPU9250 , SPI_MODE_0 , 8 , SPI_CS_KERNEL , 1 * MHZ , 20 * MHZ ) ,
SPIDeviceDriver ( 0 , 0 , AP_HAL : : SPIDevice_MS5611 , SPI_MODE_0 , 8 , SPI_CS_KERNEL , 1 * KHZ , 10 * MHZ ) ,
SPIDeviceDriver ( " mpu9250 " , 0 , 1 , AP_HAL : : SPIDevice_MPU9250 , SPI_MODE_0 , 8 , SPI_CS_KERNEL , 1 * MHZ , 20 * MHZ ) ,
SPIDeviceDriver ( " ms5611 " , 0 , 0 , AP_HAL : : SPIDevice_MS5611 , SPI_MODE_0 , 8 , SPI_CS_KERNEL , 1 * KHZ , 10 * MHZ ) ,
} ;
# elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_BBBMINI
SPIDeviceDriver SPIDeviceManager : : _device [ ] = {
/* MPU9250 is restricted to 1MHz for non-data and interrupt registers */
SPIDeviceDriver ( 2 , 0 , AP_HAL : : SPIDevice_MPU9250 , SPI_MODE_3 , 8 , SPI_CS_KERNEL , 1 * MHZ , 20 * MHZ ) ,
SPIDeviceDriver ( 2 , 1 , AP_HAL : : SPIDevice_MS5611 , SPI_MODE_3 , 8 , SPI_CS_KERNEL , 10 * MHZ , 10 * MHZ ) ,
SPIDeviceDriver ( " mpu9250 " , 2 , 0 , AP_HAL : : SPIDevice_MPU9250 , SPI_MODE_3 , 8 , SPI_CS_KERNEL , 1 * MHZ , 20 * MHZ ) ,
SPIDeviceDriver ( " ms5611 " , 2 , 1 , AP_HAL : : SPIDevice_MS5611 , SPI_MODE_3 , 8 , SPI_CS_KERNEL , 10 * MHZ , 10 * MHZ ) ,
} ;
# elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_RASPILOT
SPIDeviceDriver SPIDeviceManager : : _device [ ] = {
/* MPU9250 is restricted to 1MHz for non-data and interrupt registers */
SPIDeviceDriver ( 0 , 0 , AP_HAL : : SPIDevice_MPU6000 , SPI_MODE_3 , 8 , RPI_GPIO_25 , 1 * MHZ , 8 * MHZ ) ,
SPIDeviceDriver ( 0 , 0 , AP_HAL : : SPIDevice_MS5611 , SPI_MODE_3 , 8 , RPI_GPIO_23 , 1 * MHZ , 8 * MHZ ) ,
SPIDeviceDriver ( 0 , 0 , AP_HAL : : SPIDevice_L3GD20 , SPI_MODE_3 , 8 , RPI_GPIO_12 , 1 * MHZ , 8 * MHZ ) ,
SPIDeviceDriver ( 0 , 0 , AP_HAL : : SPIDevice_LSM303D , SPI_MODE_3 , 8 , RPI_GPIO_22 , 1 * MHZ , 8 * MHZ ) ,
SPIDeviceDriver ( 0 , 0 , AP_HAL : : SPIDevice_Dataflash , SPI_MODE_3 , 8 , RPI_GPIO_5 , 1 * MHZ , 8 * MHZ ) ,
SPIDeviceDriver ( 0 , 0 , AP_HAL : : SPIDevice_RASPIO , SPI_MODE_3 , 8 , RPI_GPIO_7 , 8 * MHZ , 8 * MHZ ) ,
SPIDeviceDriver ( " mpu6000 " , 0 , 0 , AP_HAL : : SPIDevice_MPU6000 , SPI_MODE_3 , 8 , RPI_GPIO_25 , 1 * MHZ , 8 * MHZ ) ,
SPIDeviceDriver ( " ms5611 " , 0 , 0 , AP_HAL : : SPIDevice_MS5611 , SPI_MODE_3 , 8 , RPI_GPIO_23 , 1 * MHZ , 8 * MHZ ) ,
SPIDeviceDriver ( " l3gd20 " , 0 , 0 , AP_HAL : : SPIDevice_L3GD20 , SPI_MODE_3 , 8 , RPI_GPIO_12 , 1 * MHZ , 8 * MHZ ) ,
SPIDeviceDriver ( " lsm303d " , 0 , 0 , AP_HAL : : SPIDevice_LSM303D , SPI_MODE_3 , 8 , RPI_GPIO_22 , 1 * MHZ , 8 * MHZ ) ,
SPIDeviceDriver ( " dataflash " , 0 , 0 , AP_HAL : : SPIDevice_Dataflash , SPI_MODE_3 , 8 , RPI_GPIO_5 , 1 * MHZ , 8 * MHZ ) ,
SPIDeviceDriver ( " raspio " , 0 , 0 , AP_HAL : : SPIDevice_RASPIO , SPI_MODE_3 , 8 , RPI_GPIO_7 , 8 * MHZ , 8 * MHZ ) ,
} ;
# elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_BH
SPIDeviceDriver SPIDeviceManager : : _device [ ] = {
SPIDeviceDriver ( 0 , 0 , AP_HAL : : SPIDevice_MPU9250 , SPI_MODE_0 , 8 , RPI_GPIO_7 , 1 * MHZ , 20 * MHZ ) ,
SPIDeviceDriver ( 0 , 0 , AP_HAL : : SPIDevice_Ublox , SPI_MODE_0 , 8 , RPI_GPIO_8 , 250 * KHZ , 5 * MHZ ) ,
SPIDeviceDriver ( " mpu9250 " , 0 , 0 , AP_HAL : : SPIDevice_MPU9250 , SPI_MODE_0 , 8 , RPI_GPIO_7 , 1 * MHZ , 20 * MHZ ) ,
SPIDeviceDriver ( " ublox " , 0 , 0 , AP_HAL : : SPIDevice_Ublox , SPI_MODE_0 , 8 , RPI_GPIO_8 , 250 * KHZ , 5 * MHZ ) ,
} ;
# else
// empty device table
@ -82,7 +82,8 @@ SPIDeviceDriver SPIDeviceManager::_device[0];
@@ -82,7 +82,8 @@ SPIDeviceDriver SPIDeviceManager::_device[0];
// have a separate semaphore per bus
Semaphore SPIDeviceManager : : _semaphore [ LINUX_SPI_MAX_BUSES ] ;
SPIDeviceDriver : : SPIDeviceDriver ( uint16_t bus , uint16_t subdev , enum AP_HAL : : SPIDeviceType type , uint8_t mode , uint8_t bitsPerWord , int16_t cs_pin , uint32_t lowspeed , uint32_t highspeed ) :
SPIDeviceDriver : : SPIDeviceDriver ( const char * name , uint16_t bus , uint16_t subdev , enum AP_HAL : : SPIDeviceType type , uint8_t mode , uint8_t bitsPerWord , int16_t cs_pin , uint32_t lowspeed , uint32_t highspeed ) :
_name ( name ) ,
_bus ( bus ) ,
_subdev ( subdev ) ,
_type ( type ) ,