summaryrefslogtreecommitdiff
path: root/driver/accelgyro_icm426xx.c
diff options
context:
space:
mode:
Diffstat (limited to 'driver/accelgyro_icm426xx.c')
-rw-r--r--driver/accelgyro_icm426xx.c65
1 files changed, 23 insertions, 42 deletions
diff --git a/driver/accelgyro_icm426xx.c b/driver/accelgyro_icm426xx.c
index 4476a591bd..5d09c8e4ef 100644
--- a/driver/accelgyro_icm426xx.c
+++ b/driver/accelgyro_icm426xx.c
@@ -822,46 +822,32 @@ static int icm426xx_init_config(const struct motion_sensor_t *s)
* interferences on the bus.
*/
- ret = 0;
- if (SLAVE_IS_SPI(s->i2c_spi_addr_flags)) {
-#ifdef CONFIG_SPI_ACCEL_PORT
- icm_field_update8(s, ICM426XX_REG_INTF_CONFIG6,
- ICM426XX_INTF_CONFIG6_MASK,
- ICM426XX_I3C_EN | ICM426XX_I3C_SDR_EN |
- ICM426XX_I3C_DDR_EN);
- ret = icm_field_update8(s, ICM426XX_REG_INTF_CONFIG4,
- ICM426XX_I3C_BUS_MODE,
- ICM426XX_I3C_BUS_MODE);
+#ifdef CONFIG_ACCELGYRO_ICM_COMM_SPI
+ icm_field_update8(
+ s, ICM426XX_REG_INTF_CONFIG6, ICM426XX_INTF_CONFIG6_MASK,
+ ICM426XX_I3C_EN | ICM426XX_I3C_SDR_EN | ICM426XX_I3C_DDR_EN);
+ ret = icm_field_update8(s, ICM426XX_REG_INTF_CONFIG4,
+ ICM426XX_I3C_BUS_MODE, ICM426XX_I3C_BUS_MODE);
+#else
+ icm_field_update8(s, ICM426XX_REG_INTF_CONFIG6,
+ ICM426XX_INTF_CONFIG6_MASK, ICM426XX_I3C_EN);
+ ret = icm_field_update8(s, ICM426XX_REG_INTF_CONFIG4,
+ ICM426XX_I3C_BUS_MODE, 0);
#endif
- } else {
-#ifdef I2C_PORT_ACCEL
- icm_field_update8(s, ICM426XX_REG_INTF_CONFIG6,
- ICM426XX_INTF_CONFIG6_MASK,
- ICM426XX_I3C_EN);
- ret = icm_field_update8(s, ICM426XX_REG_INTF_CONFIG4,
- ICM426XX_I3C_BUS_MODE,
- 0);
-#endif
- }
if (ret)
return ret;
- ret = 0;
- if (SLAVE_IS_SPI(s->i2c_spi_addr_flags)) {
-#ifdef CONFIG_SPI_ACCEL_PORT
- ret = icm_field_update8(s, ICM426XX_REG_DRIVE_CONFIG,
- ICM426XX_DRIVE_CONFIG_MASK,
- ICM426XX_I2C_SLEW_RATE(ICM426XX_SLEW_RATE_20NS_60NS) |
+#ifdef CONFIG_ACCELGYRO_ICM_COMM_SPI
+ ret = icm_field_update8(
+ s, ICM426XX_REG_DRIVE_CONFIG, ICM426XX_DRIVE_CONFIG_MASK,
+ ICM426XX_I2C_SLEW_RATE(ICM426XX_SLEW_RATE_20NS_60NS) |
ICM426XX_SPI_SLEW_RATE(ICM426XX_SLEW_RATE_INF_2NS));
-#endif
- } else {
-#ifdef I2C_PORT_ACCEL
- ret = icm_field_update8(s, ICM426XX_REG_DRIVE_CONFIG,
- ICM426XX_DRIVE_CONFIG_MASK,
- ICM426XX_I2C_SLEW_RATE(ICM426XX_SLEW_RATE_12NS_36NS) |
+#else
+ ret = icm_field_update8(
+ s, ICM426XX_REG_DRIVE_CONFIG, ICM426XX_DRIVE_CONFIG_MASK,
+ ICM426XX_I2C_SLEW_RATE(ICM426XX_SLEW_RATE_12NS_36NS) |
ICM426XX_SPI_SLEW_RATE(ICM426XX_SLEW_RATE_12NS_36NS));
#endif
- }
if (ret)
return ret;
@@ -871,16 +857,11 @@ static int icm426xx_init_config(const struct motion_sensor_t *s)
* Disable unused serial interface.
*/
mask = ICM426XX_DATA_CONF_MASK | ICM426XX_UI_SIFS_CFG_MASK;
- val = 0;
- if (SLAVE_IS_SPI(s->i2c_spi_addr_flags)) {
-#ifdef CONFIG_SPI_ACCEL_PORT
- val |= ICM426XX_UI_SIFS_CFG_I2C_DIS;
-#endif
- } else {
-#ifdef I2C_PORT_ACCEL
- val |= ICM426XX_UI_SIFS_CFG_SPI_DIS;
+#ifdef CONFIG_ACCELGYRO_ICM_COMM_SPI
+ val = ICM426XX_UI_SIFS_CFG_I2C_DIS;
+#else
+ val = ICM426XX_UI_SIFS_CFG_SPI_DIS;
#endif
- }
ret = icm_field_update8(s, ICM426XX_REG_INTF_CONFIG0, mask, val);
if (ret)