diff --git a/src/drivers/imu/st/lsm9ds1/LSM9DS1.cpp b/src/drivers/imu/st/lsm9ds1/LSM9DS1.cpp index 83b62768e5..913de7b97e 100644 --- a/src/drivers/imu/st/lsm9ds1/LSM9DS1.cpp +++ b/src/drivers/imu/st/lsm9ds1/LSM9DS1.cpp @@ -73,20 +73,23 @@ int LSM9DS1::probe() return PX4_ERROR; } -bool LSM9DS1::Init() +int LSM9DS1::init() { - if (SPI::init() != PX4_OK) { - return false; + int ret = SPI::init(); + + if (ret != OK) { + DEVICE_DEBUG("SPI init failed (%i)", ret); + return ret; } if (!Reset()) { PX4_ERR("reset failed"); - return false; + return PX4_ERROR; } Start(); - return true; + return PX4_OK; } bool LSM9DS1::Reset() @@ -172,18 +175,11 @@ void LSM9DS1::RegisterClearBits(Register reg, uint8_t clearbits) void LSM9DS1::Start() { - Stop(); - ResetFIFO(); ScheduleOnInterval(_fifo_interval / 2, _fifo_interval); } -void LSM9DS1::Stop() -{ - ScheduleClear(); -} - void LSM9DS1::RunImpl() { perf_count(_interval_perf); diff --git a/src/drivers/imu/st/lsm9ds1/LSM9DS1.hpp b/src/drivers/imu/st/lsm9ds1/LSM9DS1.hpp index 057fe21034..bda45ed4b5 100644 --- a/src/drivers/imu/st/lsm9ds1/LSM9DS1.hpp +++ b/src/drivers/imu/st/lsm9ds1/LSM9DS1.hpp @@ -66,9 +66,9 @@ public: static void print_usage(); void print_status(); - bool Init(); + int init() override; + void Start(); - void Stop(); bool Reset(); void RunImpl(); diff --git a/src/drivers/imu/st/lsm9ds1/lsm9ds1_main.cpp b/src/drivers/imu/st/lsm9ds1/lsm9ds1_main.cpp index 5c39962649..8b868c2d1a 100644 --- a/src/drivers/imu/st/lsm9ds1/lsm9ds1_main.cpp +++ b/src/drivers/imu/st/lsm9ds1/lsm9ds1_main.cpp @@ -47,7 +47,7 @@ I2CSPIDriverBase *LSM9DS1::instantiate(const BusCLIArguments &cli, const BusInst return nullptr; } - if (!instance->Init()) { + if (OK != instance->init()) { delete instance; return nullptr; }