Error 0x0BAE0001 after PM_DEVICE_ACTION_RESUME

Hi,

I'm currently using nRF Connect SDK v1.9.0 and developing on a nRF52832 onto a custom board. I'm using a BMI090L from Bosch connected over i2c.

I'm trying to suspend the i2c device after shutting down the gyro using the following code:

m_bmi090l.gyro_cfg.power = BMI090L_GYRO_PM_SUSPEND;

if ( bmi090lg_set_power_mode(&m_bmi090l) != BMI090L_OK ){
    LOG_ERR("Failed to shutdown gyroscope.\n");
}
pm_device_action_run(i2c_dev, PM_DEVICE_ACTION_SUSPEND);

 Then I resume it using this:

pm_device_action_run(i2c_dev, PM_DEVICE_ACTION_RESUME);

m_bmi090l.accel_cfg.power = BMI090L_ACCEL_PM_SUSPEND;

if (bmi090la_set_power_mode(&m_bmi090l) != BMI090L_OK){
    LOG_ERR("Failed to shutdown acceleration.\n");
}

After the resume, I'm unable to interact with the gyroscope but only with the accelerometer. I think it may come from somewhere around the pm_device_action_run function since the problem disappear when commenting those lines. I didn't have this issue with 1.7.0 too.

Here's the device tree part where I configure the device:

&i2c0 {
    compatible = "nordic,nrf-twi";
    status = "okay";
    clock-frequency = <I2C_BITRATE_STANDARD>;
    sda-pin = <25>;
    scl-pin = <27>;
};

Here's the I2C and PM part of my prj.conf file:

# I2C
CONFIG_I2C=y
CONFIG_I2C_NRFX=y
CONFIG_NRFX_TWI=y
CONFIG_NRFX_TWI0=y

# Power management
CONFIG_PM=y
CONFIG_PM_DEVICE=y
CONFIG_PM_DEVICE_RUNTIME=y

I know some changes have been done about power management between 1.7.0 and 1.9.0. Do you have any idea of what could cause this issue?

Thanks,

Alexandre

Parents Reply Children
No Data
Related