diff --git a/boards/arm/cxd56xx/common/src/cxd56_bmi160_scu.c b/boards/arm/cxd56xx/common/src/cxd56_bmi160_scu.c index aa80ed2395..8d384a8f32 100644 --- a/boards/arm/cxd56xx/common/src/cxd56_bmi160_scu.c +++ b/boards/arm/cxd56xx/common/src/cxd56_bmi160_scu.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #if defined(CONFIG_SENSORS_BMI160_SCU_SPI) diff --git a/boards/arm/cxd56xx/spresense/include/cxd56_bmi160.h b/boards/arm/cxd56xx/spresense/include/cxd56_bmi160.h index b577fd9076..73ff4f9b3e 100644 --- a/boards/arm/cxd56xx/spresense/include/cxd56_bmi160.h +++ b/boards/arm/cxd56xx/spresense/include/cxd56_bmi160.h @@ -60,6 +60,83 @@ extern "C" int board_bmi160_initialize(int bus); +#ifdef CONFIG_SENSORS_BMI160_SCU +/**************************************************************************** + * Name: bmi160_init + * + * Description: + * Initialize BMI160 accelerometer/gyro device + * + * Input Parameters: + * dev - An instance of the SPI or I2C interface to use to communicate + * with BMI160 + * port - I2C port number + * + * Returned Value: + * Zero (OK) on success; a negated errno value on failure. + * + ****************************************************************************/ + +#ifdef CONFIG_SENSORS_BMI160_I2C +int bmi160_init(FAR struct i2c_master_s *dev, int port); +#else /* CONFIG_SENSORS_BMI160_SPI */ +int bmi160_init(struct spi_dev_s *dev); +#endif + +/**************************************************************************** + * Name: bmi160gyro_register + * + * Description: + * Register the BMI160 gyro character device as 'devpath' + * + * Input Parameters: + * devpath - The full path to the driver to register. E.g., "/dev/gyro" + * minor - The number of sequencer + * dev - An instance of the SPI or I2C interface to use to communicate + * with BMI160 + * port - I2C port number + * + * Returned Value: + * Zero (OK) on success; a negated errno value on failure. + * + ****************************************************************************/ + +#ifdef CONFIG_SENSORS_BMI160_I2C +int bmi160gyro_register(const char *devpath, int minor, + struct i2c_master_s *dev, int port); +#else /* CONFIG_SENSORS_BMI160_SPI */ +int bmi160gyro_register(const char *devpath, int minor, + struct spi_dev_s *dev); +#endif + +/**************************************************************************** + * Name: bmi160accel_register + * + * Description: + * Register the BMI160 accelerometer character device as 'devpath' + * + * Input Parameters: + * devpath - The full path to the driver to register. E.g., "/dev/accel" + * minor - The number of sequencer + * dev - An instance of the SPI or I2C interface to use to communicate + * with BMI160 + * port - I2C port number + * + * Returned Value: + * Zero (OK) on success; a negated errno value on failure. + * + ****************************************************************************/ + +#ifdef CONFIG_SENSORS_BMI160_I2C +int bmi160accel_register(const char *devpath, int minor, + struct i2c_master_s *dev, int port); +#else /* CONFIG_SENSORS_BMI160_SPI */ +int bmi160accel_register(const char *devpath, int minor, + struct spi_dev_s *dev); +#endif + +#endif /* CONFIG_SENSORS_BMI160_SCU */ + #undef EXTERN #if defined(__cplusplus) } diff --git a/include/nuttx/sensors/bmi160.h b/include/nuttx/sensors/bmi160.h index ce7c4ac0b3..5fd08566fa 100644 --- a/include/nuttx/sensors/bmi160.h +++ b/include/nuttx/sensors/bmi160.h @@ -131,30 +131,10 @@ extern "C" * ****************************************************************************/ -#ifndef CONFIG_SENSORS_BMI160_SCU - -# ifdef CONFIG_SENSORS_BMI160_I2C +#ifdef CONFIG_SENSORS_BMI160_I2C int bmi160_register(FAR const char *devpath, FAR struct i2c_master_s *dev); -# else /* CONFIG_BMI160_SPI */ +#else /* CONFIG_BMI160_SPI */ int bmi160_register(FAR const char *devpath, FAR struct spi_dev_s *dev); -# endif - -#else /* CONFIG_SENSORS_BMI160_SCU */ - -# ifdef CONFIG_SENSORS_BMI160_I2C -int bmi160_init(FAR struct i2c_master_s *dev, int port); -int bmi160gyro_register(FAR const char *devpath, int minor, - FAR struct i2c_master_s *dev, int port); -int bmi160accel_register(FAR const char *devpath, int minor, - FAR struct i2c_master_s *dev, int port); -# else /* CONFIG_SENSORS_BMI160_SPI */ -int bmi160_init(FAR struct spi_dev_s *dev); -int bmi160gyro_register(FAR const char *devpath, int minor, - FAR struct spi_dev_s *dev); -int bmi160accel_register(FAR const char *devpath, int minor, - FAR struct spi_dev_s *dev); -# endif - #endif #undef EXTERN