Is there an example to access the Jetson K1 expansion i/o specifically the GPIOs?

I’m looking for several ways to access the GPIO_PU0-6 pins. Mostly to change their output high or low.

Currently, I see linux drivers for the gpio controller 1 but none of the pinmux (pinctrl-tegra124?)other than what found in the devicetree for the Jetson k1 board.

Is there any plans to provide support or I have to write my own way to access it?

My .config has

Pin controllers

CONFIG_PINMUX=y
CONFIG_PINCONF=y
CONFIG_GENERIC_PINCONF=y

CONFIG_DEBUG_PINCTRL is not set

CONFIG_PINCTRL_SINGLE is not set

CONFIG_PINCTRL_TEGRA=y
CONFIG_PINCTRL_TEGRA124=y

CONFIG_PINCTRL_EXYNOS is not set

CONFIG_PINCTRL_EXYNOS5440 is not set

CONFIG_PINCTRL_MAX77660 is not set

CONFIG_PINCTRL_PALMAS=y
CONFIG_PINCTRL_AS3722=y
CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
CONFIG_ARCH_REQUIRE_GPIOLIB=y
CONFIG_GPIO_DEVRES=y
CONFIG_GPIOLIB=y
CONFIG_OF_GPIO=y
CONFIG_DEBUG_GPIO=y
CONFIG_GPIO_SYSFS=y


Looking at the tegra124-pm375 device tree does contain the pinmux entries and the drivers for it looks valid but no usable device node. Can’t tell if it is running though, not listed via lsmod.

However, I’m able to access their registers and so far it matches the dts presets.
No idea how to set the value though as there is no field for it according to the TRM.

I posted some info about GPIO on the Wiki at http://elinux.org/Jetson/GPIO

Thanks for confirming.
I test it later on.

Different route :P … I thinking by direct register access. But that would do.


Here’s the part number on the Jetson K1 Board.

J3A1 (SKT2X25_THR_R 50-pin 2-row 2mm-spaced socket) [ SQW-125-01-F-D ]
J3A2 (SKT3X25_THR_R 75-pin 3-row 2mm-spaced socket). [ SQW-125-01-F-T ]

Confirmed on my end.

I’m also able to R/W the GPIO via direct register access as well.