The bmi323 chip is part of handhelds PCs that are run on battery. One of said PC is well-known for its short battery life, even in s2idle: help mitigate that by putting the device in its lowest-consumption state while the peripheral is unused. Have runtime-pm suspend callback save used configuration registers and runtime-pm resume callback restore saved registers to restore the previous state. Changelog: - V2: patch 1: + change patch commit message + drop removal callbacks and use devm_add_action_or_reset + split bmi323_init in two functions + separate regs to save and relative value + drop unhelpful consts ptr modifiers + add a comment to explain why BMI323_FIFO_CTRL_REG is being used in runtime resume - V3: patch 1: + drop a struct array and replace with an array of unsigned int: u8 was too small and it would have resulted in overflow of register addresses + use single-line comments where possible + drop useless comments + remove intermediate variables + remove blank lines Previous patches obsoleted: https://lore.kernel.org/all/20240811161202.19818-1-benato.denis96@xxxxxxxxx https://lore.kernel.org/all/20240818150923.20387-1-benato.denis96@xxxxxxxxx Signed-off-by: Denis Benato <benato.denis96@xxxxxxxxx> Denis Benato (1): iio: bmi323: peripheral in lowest power state on suspend drivers/iio/imu/bmi323/bmi323_core.c | 155 ++++++++++++++++++++++++++- 1 file changed, 153 insertions(+), 2 deletions(-) -- 2.46.0