I'm having an issue with FLEXCAN on i.mx6sx. It fails to probe during Linux bootup (linux-fslc v4.1-2.0.x).
In dts, I just enable the peripheral:
&flexcan1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_flexcan1_1>;
status = "okay";
};
...
pinctrl_flexcan1_1: flexcan1grp_1 {
fsl,pins = <
MX6SX_PAD_SD3_DATA5__CAN1_TX 0x1b0b0
MX6SX_PAD_SD3_DATA7__CAN1_RX 0x1b0b0
>;
};
Kernel boot log:
CAN device driver interface
2090000.can supply xceiver not found, using dummy regulator
flexcan 2090000.can: registering netdev failed
flexcan: probe of 2090000.can failed with error -110
After debugging the driver, I found register_flexcandev() enables the two clocks and calls flexcan_chip_disable() which timeouts.
I guess I'm missing some stupid little thing here. Does anybody have a suggestion what's wrong?