]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
i3c: renesas: Add suspend/resume support
authorTommaso Merciai <tommaso.merciai.xr@bp.renesas.com>
Wed, 7 Jan 2026 10:33:50 +0000 (11:33 +0100)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Wed, 14 Jan 2026 14:54:26 +0000 (15:54 +0100)
commite7218986319b4e903dfb4642dcbd1087cf16aaec
tree5ebff517a81180d8acea0fbeb2b03be7de2a836b
parent5eb3e8763e076a47ab145c5fafcf39f1ac7c7aee
i3c: renesas: Add suspend/resume support

The Renesas I3C controller does not retain its register state across system
suspend, requiring the driver to explicitly save and restore hardware
configuration.

Add suspend and resume NOIRQ callbacks to handle system sleep transitions.

During suspend, save the Device Address Table (DAT) entries, assert reset
lines, and disable all related clocks to allow the controller to enter a
low-power state.

On resume, re-enable clocks and reset lines in the proper order. Restore
the REFCKCTL register, master dynamic address, and all DAT entries, then
reinitialize the controller.

Store the REFCLK divider value, and the master dynamic address to restore
timing and addressing configuration after resume.

Reviewed-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com>
Link: https://patch.msgid.link/c469ef89e0156d37746a85bfc314232847d1185a.1767781092.git.tommaso.merciai.xr@bp.renesas.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
drivers/i3c/master/renesas-i3c.c