Enable FlexCAN2 on colibri imx6dl on module pins 196/194


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 


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

Hi @gato

Analyzing the Colibri iMX6 datasheet, page 61, the FlexCAN2 interface can only be assigned to pins 188/178.

So unfortunately there is no way to assign FlexCAN2 on these pins because they are only alternate to VF50.

Best Regards