Config PWM for GPIO

I saw another thread (How to use PWM on Xavier NX - #34 by Andrey1984) to configurate PWM for GPIO, but I still have some questions.

In that thread, just need use jetson-io to enable PWM pins, dont need modify pinmux spreadsheet and convert to cfg file. As I know the PWM pin configuration should be saved in HW configuraiton in bootloader. Will jetson-io tool be able to save the PWM pin configuration in bootloader configuration?

Another thing is if I use pinmux spreadsheet to modify and convert to cfg file, how can I just flash this cfg file to device? I dont want to flash all images like kernel and root filesystem?

no. jetson-io write the settings as device tree overlay, and this applied after boot into linux kernel.

you can’t update cfg file individually, it must fully flash to apply the cfg.

Thanks your prompt reply, @JerryChang

So jetson-io writes the setting in device tree file like under /boot. After reboot, the new setting can work, right? If so, I dont need use pinmux tool and flash cfg file. This is really convenient.

hello harry_xiaye,

to clarify, Jetson-IO is generated the device tree overlay, (i.e. *.dtbo ) to overwrite the default settings while kernel boot-up.

So jetson-io will generate the dtbo file and copy it to /boot ( or /boot/dtb?), when device reboots, it will read all dtbo files and apply them to make these overlay changes work, right?

yes, that’s correct

When run jetson-io, it will read dtb and dtbo files under /boot( or /boot/dtb) to collect IO configuration information and show them with current configuration?

On my device, I saw many dtb and dtbo files under /boot, but only one dtb file under /boot/dtb, how does bootloader use the dtb and dtbo files under /boot and /boot/dtb?

hello harry_xiaye,

you may dig into kernel logs, such as $ dmesg | grep DTS for the actual device tree binary the board is using.
it’s pinmux config file to program the init pin settings for bootloader; as I mentioned earlier, you cannot update cfg file individually, it must fully flash to apply the cfg.