Enable optional CAN bus in Jetson Xavier NX

Hi vijeshagnair,
This is the issue with J4.4 and will be fixed in our next release.
For now, you can solve it in 2 ways:

  1. Use osc clock as parent clock of can:
    Go to Linux_for_Tegra/kernel/dtb/
    in jetson-nx dtb, replace mttcan@c310000:
    replace clock properties under this node as below:
    pll_source = “osc”;
    clocks = <0x4 0x11c 0x4 0xa 0x4 0x9 0x4 0x5b>;
    clock-names = “can_core”, “can_host”, “can”, “osc”;

Compile the dtb and use this dtb to flash the device again.

  1. Use pllaon clock as parent clock, this will take efforts/time.
    Follow this:
    Here is the documentation available to change CAN parent clock to PLLAON.

https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide%2Fclocks.html%23wwpID0E06B0HA

Check “ To use PLLAON as clock source” section

With PLLAON, users will be able to achieve 50MHz CAN core clock rate and 1Mbps exact bitrate settings as well.

To set 40MHz clock rate, I just replied in this thread, please check it out.

How to change frequency of CAN interface Jetson Xavier NX

Let me know if you face any issues.

Thanks,
Shubhi