Hi,
I successfully enabled the CAN controllers for the iMX6DL using the minimal reference image and a custom built .dtb file according to your wiki article. can0 works and I’m able to communicate. Since, we are doing an upgrade for an existing board from an vf50 I tried to route can1 to pins 196/194 to be compatible with the vf50.
I changed:
imx6qdl-colibri.dtsi:877: pinctrl_flexcan2: flexcan2grp {`
imx6qdl-colibri.dtsi:879: MX6QDL_PAD_KEY_COL4__FLEXCAN2_TX 0x1b0b0
imx6qdl-colibri.dtsi:880: MX6QDL_PAD_KEY_ROW4__FLEXCAN2_RX 0x1b0b0
to:
imx6qdl-colibri.dtsi:877: pinctrl_flexcan2: flexcan2grp {
imx6qdl-colibri.dtsi:879: MX6QDL_PAD_SD3_DAT0__FLEXCAN2_TX 0x1b0b0
imx6qdl-colibri.dtsi:880: MX6QDL_PAD_SD3_DAT1__FLEXCAN2_RX 0x1b0b0
Next boot I got an (expected) error with conflicting Pins:
[ 6.670786] CAN device driver interface
[ 6.686208] flexcan 2090000.flexcan: 2090000.flexcan supply xceiver not found, using dummy regulator`
[ 6.705633] imx6dl-pinctrl 20e0000.iomuxc: pin MX6DL_PAD_SD3_DAT0 already requested by 2198000.usdhc; cannot claim for 2094000.flexcan
[ 6.720672] imx6dl-pinctrl 20e0000.iomuxc: pin-197 (2094000.flexcan) status -22
[ 6.720687] imx6dl-pinctrl 20e0000.iomuxc: could not request pin 197 (MX6DL_PAD_SD3_DAT0) from group flexcan2grp on device 20e0000.iomuxc
[ 6.746528] flexcan 2094000.flexcan: Error applying setting, reverse things back
[ 6.760220] flexcan: probe of 2094000.flexcan failed with error -22
As I removed conflicting entries at pinctrl_usdhc3: usdhc3grp
, the module stopped booting with a kernel panic with I/O error on emmc. So it seems, pinctrl_usdhc3: usdhc3grp
is used for emmc communication.
How may I enable FlexCAN2 on those Pins? Is this at all possible?
Thanks, Tom