I put Linux into sleep and then wake it up by sending a CAN Frame to it.
I want to know if it's possible to wake Linux up only on some specific IDs? I want to use Rx filters, so that upon a match to these filters, I wake up Linux, NOT on receiving any Frames.
Question1: Is it supported by flexcan hardware in imx6? if yes, what about in driver?
Question2: I found a WAK_SRC bit in MCR register. is it helpful?
This bit defines whether the integrated low-pass filter is applied to protect the FLEXCAN_RX input from spurious wake up. See Stop Mode for more information. This bit can only be written in Freeze mode as it is blocked by hardware in other modes.
1 FLEXCAN uses the filtered FLEXCAN_RX input to detect recessive to dominant edges on the CAN bus
0 FLEXCAN uses the unfiltered FLEXCAN_RX input to detect recessive to dominant edges on the CAN bus.
Thanks in advance
for Q1 "CAN wake up Linux on a specific Frame ID" - seems it is not supported by hardware
as described in sect.18.104.22.168 Stop Mode i.MX 6Dual/6Quad Applications Processor Reference Manual
"FlexCAN will then wait for 11 consecutive recessive bits to synchronize to the
CAN bus. As a consequence, it will not receive the frame that woke it up ."