Xavier PWM GPIO35


I’m trying to use PWM on Xavier devkit at pin 18 which I’ve found labelled as GPIO35_PWM3.

I’m new to this and would like to avoid HW damage =)

Which chip is used for PWM3? 2 or 3?

jetson-xavier ~ # ll /sys/class/pwm/ 
lrwxrwxrwx  1 root root 0 Sep 20 10:43 pwmchip0 -> ../../devices/3280000.pwm/pwm/pwmchip0/
lrwxrwxrwx  1 root root 0 Sep 20 10:43 pwmchip1 -> ../../devices/c340000.pwm/pwm/pwmchip1/
lrwxrwxrwx  1 root root 0 Sep 20 10:43 pwmchip2 -> ../../devices/32c0000.pwm/pwm/pwmchip2/
lrwxrwxrwx  1 root root 0 Sep 20 10:43 pwmchip3 -> ../../devices/32f0000.pwm/pwm/pwmchip3/
lrwxrwxrwx  1 root root 0 Sep 20 10:43 pwmchip4 -> ../../devices/39c0000.tachometer/pwm/pwmchip4/

I have the following script

echo 0 > /sys/class/pwm/pwmchip${1}/export
echo 1000000 > /sys/class/pwm/pwmchip${1}/pwm0/period
echo  500000 > /sys/class/pwm/pwmchip${1}/pwm0/duty_cycle
echo 1 > /sys/class/pwm/pwmchip${1}/pwm0/enable
echo "Beep"
sleep 1
echo 0 > /sys/class/pwm/pwmchip${1}/pwm0/enable
echo 0 > /sys/class/pwm/pwmchip${1}/unexport

used as ./beep.sh [2 or 3 for the controller]

For both controllers I get no error but also no signal as output

In the device tree sources I see

	pwm@32c0000 {
		status = "okay";

	pwm@32f0000 {
		status = "okay";

But no other configuration.

I downloaded the pinmux for Xavier but I’m not sure how to use it.

Is it OK to change for GPIO35:

  • Customer usage: GPIO3_PH.00 → GP_PWM3
  • Pin direction: Input → Ouput

But then, there’s a Ball name > UART > GP_PWM3 which has no signal name but is set to Customer usage GP_PWM3. Same for GP_PWM2. What should I do there?

What I need is to be able to out PWM signal (3.3V if possible) on pin 18.

Any hint or guidance would be very appreciated =)


hello damien.lefevre,

according to Jetson AGX Xavier Pinmux, GPIO35 has default configured as GPIO pin (GPIO3_PH.00). there’s pin muxing to configure it as PWM pin (GP_PWM5).
please refer to Pinmux Changes session to change the pinmux configuration applied by the software. you must customize the spreadsheet for the configuration of your board, and updating the cfg file by flashing the target.