[PATCH v3 2/2] can: m_can: set out-of-band wakeup if wakeup pinctrl exists
From: Kendall Willis
Date: Fri Aug 21 2026 - 12:09:54 EST
In TI AM62X, AM62A, and AM62P SoCs, the m_can pins can act as a wakeup
source in the deepest low power states. However, the m_can pins are a part
of the MCU domain which is OFF in deeper low power states. Since the m_can
pins continue to be ON even if the MCU domain is turned off, set the
out-of-band wakeup flag if the CAN device may wakeup, has the
"out-band-wakeup" property in the device tree node, and has the "wakeup"
pinctrl state.
Signed-off-by: Kendall Willis <k-willis@xxxxxx>
---
drivers/net/can/m_can/m_can.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/net/can/m_can/m_can.c b/drivers/net/can/m_can/m_can.c
index eb856547ae7df27a844b236a0c1d4498cbb8b60f..e745660fb3eb311de70635fcfc016a44e62d5602 100644
--- a/drivers/net/can/m_can/m_can.c
+++ b/drivers/net/can/m_can/m_can.c
@@ -2622,8 +2622,12 @@ int m_can_class_suspend(struct device *dev)
cdev->can.state = CAN_STATE_SLEEPING;
}
- if (!m_can_class_wakeup_pinctrl_enabled(cdev))
+ if (m_can_class_wakeup_pinctrl_enabled(cdev)) {
+ if (device_property_read_bool(dev, "out-band-wakeup"))
+ device_set_out_band_wakeup(dev);
+ } else {
pinctrl_pm_select_sleep_state(dev);
+ }
return ret;
}
--
2.34.1