On the same carrier board, Pin#118 can be controlled normally in Nano but not in Xavier NX

In our carrier board, we can normally use Nano pin#118 CAM_AF_EN (GPIO3_PS.05) for DO(digit output), but when we use Xavier NX, we cannot control the same pin#118 GPIO01 (GPIO3_PQ.05). The GPIO01 is always high.

Nano pin#118 CAM_AF_EN (GPIO3_PS.05) pin mapping is gpio149
Xavier NX pin#118 GPIO01 (GPIO3_PQ.05) pin mapping is gpio421

Could you share result from below command?

sudo -s
cat /sys/kernel/debug/gpio

Default:

gpiochip2: GPIOs 240-247, parent: platform/max77620-gpio, max77620-gpio, can sleep:
gpio-246 ( |gpio_default ) out hi
gpio-247 ( |gpio_default ) out hi

gpiochip1: GPIOs 248-287, parent: platform/c2f0000.gpio, tegra-gpio-aon:
gpio-253 ( |pex-refclk-sel-low ) out lo
gpio-266 ( |vdd-usb2-5v ) out hi
gpio-267 ( |i2c-mux-gpio ) out hi
gpio-268 ( |pwm-dimmer-enable ) out lo
gpio-284 ( |power-key ) in hi

gpiochip0: GPIOs 288-511, parent: platform/2200000.gpio, tegra-gpio:
gpio-289 ( |pcie-reg-enable ) out lo
gpio-336 ( |force-recovery ) in hi
gpio-338 ( |vdd-sdmmc1-sw ) out lo
gpio-339 ( |wifi-enable ) out hi
gpio-378 ( |pcie_wake ) in hi
gpio-385 ( |hdmi2.0_hpd ) in lo
gpio-390 ( |reset_gpio ) out lo
gpio-391 ( |bt_ext_wake ) out hi
gpio-392 ( |avdd-cam-2v8 ) out lo
gpio-412 ( |cam_reset_gpio ) out lo
gpio-413 ( |cam_reset_gpio ) out lo
gpio-425 ( |eqos_phy_reset ) out hi
gpio-480 ( |bt_host_wake ) in hi
gpio-489 ( |external-connection:) in hi
gpio-490 ( |pcie-reg-enable ) out hi

========================================
After export gpio421 :
gpiochip2: GPIOs 240-247, parent: platform/max77620-gpio, max77620-gpio, can sleep:
gpio-246 ( |gpio_default ) out hi
gpio-247 ( |gpio_default ) out hi

gpiochip1: GPIOs 248-287, parent: platform/c2f0000.gpio, tegra-gpio-aon:
gpio-253 ( |pex-refclk-sel-low ) out lo
gpio-266 ( |vdd-usb2-5v ) out hi
gpio-267 ( |i2c-mux-gpio ) out hi
gpio-268 ( |pwm-dimmer-enable ) out lo
gpio-284 ( |power-key ) in hi

gpiochip0: GPIOs 288-511, parent: platform/2200000.gpio, tegra-gpio:
gpio-289 ( |pcie-reg-enable ) out lo
gpio-336 ( |force-recovery ) in hi
gpio-338 ( |vdd-sdmmc1-sw ) out lo
gpio-339 ( |wifi-enable ) out hi
gpio-378 ( |pcie_wake ) in hi
gpio-385 ( |hdmi2.0_hpd ) in lo
gpio-390 ( |reset_gpio ) out lo
gpio-391 ( |bt_ext_wake ) out hi
gpio-392 ( |avdd-cam-2v8 ) out lo
gpio-412 ( |cam_reset_gpio ) out lo
gpio-413 ( |cam_reset_gpio ) out lo
gpio-421 ( |sysfs ) out lo
gpio-425 ( |eqos_phy_reset ) out hi
gpio-480 ( |bt_host_wake ) in hi
gpio-489 ( |external-connection:) in hi
gpio-490 ( |pcie-reg-enable ) out hi

But the status of this gpio shows low. Could you share which pin are you measuring now?

gpio-421 ( |sysfs ) out lo

Xavier NX pin#118 GPIO01 (GPIO3_PQ.05)

hsu.y.y,

Will you see the status in /sys/kernel/debug/gpio changed if you toggle the pin?

Yes

Our carrier board have two DO pins(pin#118 and pin#216),
pin#216 GPIO11 (GPIO3_PQ.06) can normally control but pin#118 cannot.
These two pins configuration are the same.

Hi,
Can you give dump of this register 0x02430028?
Also, when you exported pin 421, it’s showing low, what voltage do you measure at this time?
It should be 0.
can you try toggling value and check voltage?
echo 1 > /sys/class/gpio/gpio421/value
***** Voltage here should be 3.3V
echo 0 > /sys/class/gpio/gpio421/value
***** Voltage here should be 0V

Hi hsu.y.y,

Have you clarified the cause and resolved the problem? Any result can be shared?
Thanks

Because the internal resistance of nano and NX are different, we re-tune GPIO load to resolve this problem.

May I know how you are re-tuning the GPIO Load?