Where is pinmux gpio configuration file for Orin?

Hi,
The doc
https://docs.nvidia.com/jetson/archives/r35.1/DeveloperGuide/text/AR/BootArchitecture/Mb1PlatformConfiguration.html#pinmux-gpio-configuration
says:
"
The pinmux/GPIO configuration file contains pinmux and GPIO configuration information. It is stored at:

Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-bct-pinmux-gpio-p2972-.cfg
is the device’s board name:
p3701 for NVIDIA® Jetson AGX Orin™
"
But:
sudo find ~/nvidia/nvidia_sdk/JetPack_5.0.2_Linux_JETSON_AGX_ORIN_TARGETS/Linux_for_Tegra/bootloader/t186ref/BCT -name “pinmux
brings these:
tegra19x-mb1-pinmux-p2888-0008-b01-p2822-0000-jaxi.cfg
tegra19x-mb1-pinmux-p2888-0004-e3900-0000.cfg
tegra19x-mb1-pinmux-p2888-0000-p2822-0000.cfg
tegra234-mb1-bct-pinmux-p3701-0000.dtsi
tegra234-mb1-bct-pinmux-p3701-0000-a04.dtsi
tegra19x-mb1-pinmux-p2888-0000-a04-p2822-0000-b01.cfg
tegra19x-mb1-pinmux-p2888-0000-a00-p2822-0000-a00.cfg
tegra19x-mb1-pinmux-p3668-a01.cfg
tegra19x-mb1-pinmux-p2888-slvs-0000-a00-p2822-0000-a00.cfg
tegra234-mb1-bct-pinmux-p3701-0002-P3711-0000.dtsi

So, which of these files is the pinmux config on Orin?

Thank you

hello jhnlmn,

AGX Orin series is using tegra234-mb1-bct-pinmux-p3701-0000-a04.dtsi for pinmux configuration.

Hi,
According to “NVIDIA Jetson AGX Xavier Series and Jetson AGX Orin Series Camera Module Hardware Design Guide”
there should be a way to generate camera FSYNC signal using PWM from Orin DevKit.
But it is not clear what pins can be used to generate this PWM and how to configure it.
There are some old posts, like:

but they are for Xavier.
Can you tell me how to enable PWM pins on Orin?
Thank you

hello jhnlmn,

for example, 40-pin header Pin-13, you should modify pinmux spreadsheets to toggle the pin as… GP_PWM8 / Output / Int PD.
please create the pinmux configuration, and use the created pinmux configuration file to re-flash the target.
note, you should exclude "-r" options to have complete flash process.

please also check device tree sources,
i.e. $public_sources/kernel_src/hardware/nvidia/soc/t23x/kernel-dts/tegra234-soc/tegra234-soc-pwm.dtsi
please update the status settings, and update the device tree file.

 	tegra_pwm8: pwm@32f0000 {
 	...
 		status = "okay";

after that,
please populate the channel ID via sysfs. $ echo <channel_id> > /sys/class/pwm/<pwmchip instantiated>/export
for example, $ echo 0 > /sys/class/pwm/pwmchip4/export

a new channel-id will create under pwmchip4, path… /sys/class/pwm/pwmchip4/pwm0
please configure duty_cycle, period, and toggle enable to enable PWM.

BTW,
you may check possible clock parents of pwmN.
$ cat /sys/kernel/debug/bpmp/debug/clk/pwm8/possible_parents
also, current rate of pwmN (in Hz):
$ cat /sys/kernel/debug/bpmp/debug/clk/pwmN/rate

Alas, so far I was not able to run “Generate DT File” macro on Jetson_AGX_Orin_Series_Pinmux_Config_Template.xlsm using libreoffice.
It gives error: “BASIC syntax error. Symbol expected”.
Is there an easier way to configure pinmux without having to learn BASIC? Would be nice to have a python script for that.

Do I understand correctly that pins on Jetson can only be configured either for GPIO or for some function (like PWM, UART, etc)?
And every function, like PWM1 can only be attached to a single pin? There are no multiple connection choices, like in microcontrollers?

Is there a way to change that configuration directly in some config file without using the broken macro?

Thank you

hello jhnlmn,

is it possible to use windowsOS to open pinmux spreadsheets for creation DT files?

Windows - yes, MS Excel - no -. this antique does not exist anymore.
Anyway, I need to understand how to configure my device without using some obscure visual basic macros.