|
|
|
@ -23,12 +23,13 @@ extern const AP_HAL::HAL& hal;
@@ -23,12 +23,13 @@ extern const AP_HAL::HAL& hal;
|
|
|
|
|
#if CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_PXF || CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_ERLE |
|
|
|
|
LinuxSPIDeviceDriver LinuxSPIDeviceManager::_device[LINUX_SPI_DEVICE_NUM_DEVICES] = { |
|
|
|
|
// different SPI tables per board subtype
|
|
|
|
|
LinuxSPIDeviceDriver(1, AP_HAL::SPIDevice_MS5611, SPI_MODE_3, 8, BBB_P9_42, 6*MHZ, 6*MHZ), |
|
|
|
|
LinuxSPIDeviceDriver(1, AP_HAL::SPIDevice_MPU6000, SPI_MODE_3, 8, BBB_P9_28, 500*1000, 20*MHZ), |
|
|
|
|
LinuxSPIDeviceDriver(0, AP_HAL::SPIDevice_LSM9DS0_AM, SPI_MODE_3, 8, BBB_P9_17, 10*MHZ,10*MHZ), |
|
|
|
|
LinuxSPIDeviceDriver(0, AP_HAL::SPIDevice_LSM9DS0_G, SPI_MODE_3, 8, BBB_P8_9, 10*MHZ,10*MHZ), |
|
|
|
|
LinuxSPIDeviceDriver(1, AP_HAL::SPIDevice_MS5611, SPI_MODE_3, 8, BBB_P9_42, 6*MHZ, 6*MHZ), |
|
|
|
|
LinuxSPIDeviceDriver(1, 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 */ |
|
|
|
|
LinuxSPIDeviceDriver(1, AP_HAL::SPIDevice_MPU9250, SPI_MODE_3, 8, BBB_P9_23, 1*MHZ, 20*MHZ), |
|
|
|
|
LinuxSPIDeviceDriver(0, AP_HAL::SPIDevice_LSM9DS0, SPI_MODE_3, 8, BBB_P9_17, 10*MHZ,10*MHZ), |
|
|
|
|
LinuxSPIDeviceDriver(1, AP_HAL::SPIDevice_Dataflash,SPI_MODE_0, 8, BBB_P8_12, 6*MHZ, 6*MHZ) |
|
|
|
|
LinuxSPIDeviceDriver(1, AP_HAL::SPIDevice_MPU9250, SPI_MODE_3, 8, BBB_P9_23, 1*MHZ, 20*MHZ), |
|
|
|
|
LinuxSPIDeviceDriver(1, AP_HAL::SPIDevice_Dataflash, SPI_MODE_3, 8, BBB_P8_12, 6*MHZ, 6*MHZ), |
|
|
|
|
}; |
|
|
|
|
#else |
|
|
|
|
// empty device table
|
|
|
|
@ -137,7 +138,8 @@ void LinuxSPIDeviceManager::cs_assert(enum AP_HAL::SPIDevice type)
@@ -137,7 +138,8 @@ void LinuxSPIDeviceManager::cs_assert(enum AP_HAL::SPIDevice type)
|
|
|
|
|
} |
|
|
|
|
if (_device[i]._type != type) { |
|
|
|
|
if (_device[i]._cs->read() != 1) { |
|
|
|
|
hal.scheduler->panic("two CS enabled at once"); |
|
|
|
|
hal.console->printf("two CS enabled at once i=%u %u and %u\n", |
|
|
|
|
(unsigned)i, (unsigned)type, (unsigned)_device[i]._type); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|