Hardware GPIO-PWM in JP 6.0

I’m trying to update all the code of our systems from the old sysfs method to the new libgpiod suggested in JP 6.0, but after reading here in the forums for a while I’ve not seen a way to toggle hardware PWM in pins 15, 32 and 33.

I know I can software-pwm any pin, but I’d like the hardware gpio abilities of these old pins, as the “configure-and-go” means we do not need to time or thread a loop ourselves to toggle the pins.

Is there any link, document, tutorial or similar to achieve this?

Also, using “gpioinfo” shows no info on any pin, like “SDA, GND, SPI, etc” shows in the Raspberry Pi. What am I missing?

Thanks

You need to first make sure these pins are configured as PWM in the pinmux spreadsheet:
https://docs.nvidia.com/jetson/archives/r36.2/DeveloperGuide/HR/JetsonModuleAdaptationAndBringUp/JetsonOrinNxNanoSeries.html#mb1-configuration-changes

Hi DaveYYY thanks for your response.

So from JP 6.0 on, jetson-io to set up GPIO functionality is also deprecated? That means any change of functionality in the GPIO needs a reflash?

Jetson-IO should still work.
https://docs.nvidia.com/jetson/archives/r36.2/DeveloperGuide/HR/ConfiguringTheJetsonExpansionHeaders.html

Ok ok, that makes it much easier.

Going back to libgpiod, supposing the pins are configured as PWM using jetson-io, it lacks support for hardware PWM. Does that mean we should still use sysfs for hardware PWM related work?

You can use Jetson-GPIO for your task:

Perfect!!

I thought Jetson-GPIO was also going to be deprecated because the last time I checked it it was using sysfs to control the GPIO. Should have checked it again…

Thanks a lot DaveYYY, and sorry for the inconvenience

It’s the sysfs part for changing the function of a pin that is deprecated, but if the pin is configured correctly, all other things of Jetson.GPIO should still work.

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