SDK2.9.0 - QSPI and TWI driver power management (CONFIG_PM_DEVICE_RUNTIME)

Hi.

After migration from SDK2.7.0 to SDK2.9.0 I have issues with power mangement. CONFIG_PM_DEVICE_RUNTIME=y, which I used, causes that twi driver doesn't start. I try to manage with this issue and call pm_device_runtime_enable(i2c_dev) when I init only device which I have on TWI bus. 

1. Is it right way? Is it enough to make that twi_driver power management works automatically?

2. How to manage qspi driver? (I have external flash on board). The same way will be OK? In this case, I have no idea where to call pm_device_runtime_enable.

Best regards

PW

 

Parents
  • Hi,

    1. Is it right way? Is it enough to make that twi_driver power management works automatically?

    I bet that the change you see between v2.7.0 and v2.9.0 is related to This Commit.

    From this, it looks to me that nrfx_twim_enable() is not longer called automatically by the TWI init code. So in this case, I agree that it looks like you will have to use Power Management to enable TWI now.

    2. How to manage qspi driver? (I have external flash on board). The same way will be OK? In this case, I have no idea where to call pm_device_runtime_enable.

    No, external flash over QSPI is a bit different. I believe that this should be enabled at first. Then you can put the external flash into Deep Power Down (DPD) mode + uninit the QSPI using the Power Management API. See here for driver code (And wake it up the also).

    Regards,
    Sigurd Hellesvik

Reply
  • Hi,

    1. Is it right way? Is it enough to make that twi_driver power management works automatically?

    I bet that the change you see between v2.7.0 and v2.9.0 is related to This Commit.

    From this, it looks to me that nrfx_twim_enable() is not longer called automatically by the TWI init code. So in this case, I agree that it looks like you will have to use Power Management to enable TWI now.

    2. How to manage qspi driver? (I have external flash on board). The same way will be OK? In this case, I have no idea where to call pm_device_runtime_enable.

    No, external flash over QSPI is a bit different. I believe that this should be enabled at first. Then you can put the external flash into Deep Power Down (DPD) mode + uninit the QSPI using the Power Management API. See here for driver code (And wake it up the also).

    Regards,
    Sigurd Hellesvik

Children
No Data
Related