Clarification on enabling CAN controller on Colibri IMX6 SoC

Hey,

I’m looking at using the built-in can controller on the Colibri IMX6, pins 55 and 63, and I wanted to clarify if I can just enable the can controller in the device tree for TX and RX pins to get it to work.

In the developer article that talks about the CAN interface it says this: " To use the FlexCAN1 controller on pins 63/55 add a &can1 node with a property status set to okay, remove the &pinctrl_gpio_2 from the pinctrl-0 property of the iomuxc node in arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts and change the pinmux of the respective pins." I’m confused about why I would need to assign a GPIO to this can controller because it should only need RX and TX to function. In the carrier board reference schematic it uses a CAN controller over SPI so it makes sense that you need a GPIO, but I only want to use the internal CAN controller connected to an external CAN tranceiver.

Could someone explain why the article talks about assigning a GPIO to the CAN node?

Also one more quick question. Do I need to have a digital isolator between the internal CAN controller and the external CAN tranceiver like Toradex has in their Colibri carrier board referrence schematic?

Thank you.

Sorry but I wasn’t able to find anything about “assigning a GPIO to the CAN node” for FlexCan at mentioned article. It actually says "to use the FlexCAN1 controller on pins 63/55 add a &can1 node with a property status set to okay, remove the &pinctrl_gpio_2 from the pinctrl-0 property of the iomuxc node"

Yes. you need anSignal and Power Isolated CAN Transceiver with Integrated Isolated DC-to-DC Converter like ADM3053 or similar.

Thank you.