Previously, we followed instructions on this guide and successfully enabled the two can buses on our custom Jetson Xavier carrier board in JetPack 4.3 and JetPack 4.4 DP.
However, when we upgrade to JetPack 4.4, we cannot “modprobe mttcan” successfully. The error message in dmesg is
[ 578.264270] mttcan c310000.mttcan: unable to set CAN_CLK parent
[ 578.280785] mttcan c310000.mttcan: probe failed
We do appreciate for your any possible solutions or related experience.
Hi kaichu,
Did you make any changes in kernel?
Please also share the contents of device-tree mttcan node.
cat /proc/device-tree/mttcan@c310000/pll_source
xxd /proc/device-tree/mttcan@c310000/clocks
Hi,
In DT, it is changed to osc clock. Now, it is no more using pllaon to save power.
It should have reflected in J4.4, I am not sure in your case, why it is still pllaon.
Please change it to pll_c in device-tree.
pll_source = “pllc”;
clocks = <0x4 0x11c 0x4 0xa 0x4 0x9 0x4 0x13a>;
clock-names = “can_core”, “can_host”, “can”, “pllc”;
Thanks for your clues. We have solved the solutions by updating the pll_source.
The reason we used “pllaon” instead of “pllc” as pll_sources is that we took the device tree in JetPack 4.4 DP to JetPack 4.4 directly. For future JetPack version update, we will do a carefully dts comparsion.