Hello, After a long time, we have found a solution to this (in case someone finds this thread in the future). We found that the 1V8 rail wasn't being generated correctly by the PMIC. I added the setting in the device tree to keep it on on suspend and the codec started working correctly after resume. These two settings: - regulator-always-on; - regulator-on-in-suspend; After that, we were still getting the error from the `dmesg` output, "i2c transfer while suspended". We added the GPIO_OPEN_DRAIN property to the reset-gpios setting in the device tree. It stands like this now: reset-gpios = <&gpiof 6 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; After that, the "i2c transfer while suspended" got fixed.