Feature request: Add CAN pin configuration to jetson-io.py

The jetson-io.py tool allows modifying the pin configuration of the 40-pin header (on the Orin Nano Dev Kit), the CSI-2 connector, and the M.2 Key E slot. But not the CAN bus pins (or CSI-1 camera connector, for that matter).

The default system install should probably pre-configure the CAN pins when using the Dev Kit, since one is unlikely to use those pins for anything else, and if they do, they can always be changed.

But perhaps at the very least, the config tool can offer customization for those pins?

Hi rmann,

Jetson-IO is just used to enable the functions on some connectors.
For other module(like AGX Orin), there’s CAN option on 40-header pins could be enabled through Jetson-IO.

As you know, the following pins have been configured for CAN0 usage as default for Orin Nano.


You could also check the option of Customer Usage in pinmux spreadsheet for these pins.
They could be used as either CAN or GPIO(PAA.00, PAA.01).

To enable CAN on Orin Nano devkit, you just need to write the correct pinmux register value for 2 pins.
Controller Area Network (CAN) — Pinmux

$ sudo busybox devmem 0x0c303018 w 0xc458
$ sudo busybox devmem 0x0c303010 w 0xc400
1 Like

Ah, okay, right. And calling devmem is the only way to set the pinmux? That means I need to call it in a script at boot (rc.local, perhaps), or in a wrapper script for my application, because it doesn’t otherwise persist across reboot.

You can also configure pinmux in <Linux_for_Tegra>/bootloader/t186ref/BCT/tegra234-mb1-bct-pinmux-p3767-dp-a03.dtsi before flash the board so that you don’t need to write register during every boot.

1 Like

Ah, yeah, this is what I’m looking for. Is it possible to edit the .dtsi file and recompile the .dtbo (is that the output, I think so?), and just copy that file to the right place on the filesystem? I don’t want to completely wipe my Orin Nano.

For the method to modify pinmux dtsi in BSP package, you should flash the whole board to apply it because it will compile into dtb during flash.

Or you can refer to the following steps to modify the dtb on your board.

  1. decompile the /boot/dtb/XXXX.dtb to XXX.dts
  2. find the node in dts for pinmux you want to modify
  3. assemble it back to dtb
  4. reboot
1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.