When downing the tcan4x5x there is no reason to keep the tcan4x5x in "normal" mode and waste power. So set standby mode when the interface is down and normal mode when interface is up. Also when going into suspend, set the tcan4x5x into standby mode. The tcan4x5x can still be used as a wake-source when in standby as low power rx is enabled. Signed-off-by: Sean Nyekjaer <sean@xxxxxxxxxx> --- Changes in v3: - Run deinit in m_can_stop() in any case even if m_can_cccr_update_bits() fails - Link to v2: https://lore.kernel.org/r/20241115-tcan-standby-v2-0-4eb02026b237@xxxxxxxxxx Changes in v2: - Reduced code in tcan4x5x_deinit() - Taken care of return values from deinit callback - Link to v1: https://lore.kernel.org/r/20241111-tcan-standby-v1-0-f9337ebaceea@xxxxxxxxxx --- Sean Nyekjaer (3): can: m_can: add deinit callback can: tcan4x5x: add deinit callback to set standby mode can: m_can: call deinit/init callback when going into suspend/resume drivers/net/can/m_can/m_can.c | 22 ++++++++++++++++++---- drivers/net/can/m_can/m_can.h | 1 + drivers/net/can/m_can/tcan4x5x-core.c | 9 +++++++++ 3 files changed, 28 insertions(+), 4 deletions(-) --- base-commit: e0b741bc53c94f9ae25d4140202557a0aa51b5a0 change-id: 20241107-tcan-standby-def358771b2b Best regards, -- Sean Nyekjaer <sean@xxxxxxxxxx>