How to enable flexcan1 on pins 186/184 on colibri imx6?

Hi All.

CAN (Linux) clearly tells how to enable flexcan1 on pins 63/55.

How can the same (flexcan1) be enabled on pins 186/184?

Thanks in advance.

Thanks and Regards,
Ajay

Hi

Make sure that pinmuxing for pins 186/184 and not pins 63/55 are muxed for flexcan1.
Also make sure that the pins are not used by any other function.

Then enable the flexcan1 by setting the status of the node can1 to okay.

Please also refer to the device tree article.

Max

Hi Max.

Thanks for the help.

On the hardware, pins 186/184 are already muxed to flexcan1 (that is actually what is driving the kernel-change requirement).

We have already set the node can1 to okay, and also removed &pinctrl_gpio_2 (required steps for pins 63/55).

I am curious that will not some different changes be required in the file arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts? Current steps enable access to pins 63/55; logically it makes sense that some different sets of changes be required (in kernel-code/dts) to enable 186/184.

I am sorry if I am being idiotic.

Hi

With pinmuxing I mean that the SW must configure the SoC to use the ‘correct’ function on its pins.
That is done in the device tree.

Naturally each pin can only be set to one function at any given time. So if one changes a pin away from its default function one has to a) no longer use it in its old function and b) set the new function.

If you use pins 63/55 for can1 you fullfill a) with the removal of &pinctrl_gpio_2 and b) by enabling the can1 node which in turn through its referenced pinctrl_flexcan1 sets the desired functionality.

So what I meant is to

  • change the status property of can1 to okay
  • change the pinctrl_flexcan1 property to contain the definitions for can1 on pins 186/184
  • remove the pins 186/184 from the pinctrl_weim_gpio_1 property

Max