GPIO2 (P.06) can't output high level

Hello,

I’ve a problem similar to this one. A support member from Nvidia asks me to create a new post.

L4T : R35.3.1

GPIO02(Orin NX pin124,GPIO3_PP.06) can’t output high level.

$ echo PP.06 > /sys/class/gpio/export
$ echo out > /sys/class/gpio/PP.06/direction
$ echo 1 > /sys/class/gpio/PP.06/value (can not get high level)

Modified Pinmux:

			soc_gpio25_pp6 {
				nvidia,pins = "soc_gpio25_pp6";
				nvidia,function = "vi0";
				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
				nvidia,tristate = <TEGRA_PIN_DISABLE>;
				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
				nvidia,io-high-voltage = <TEGRA_PIN_ENABLE>;
				nvidia,lpdr = <TEGRA_PIN_DISABLE>;
			};

Default GPIO:

gpio@2200000 {
		gpio-init-names = "default";
		gpio-init-0 = <&gpio_main_default>;

		gpio_main_default: default {
			gpio-input = <
				TEGRA234_MAIN_GPIO(B, 0)
				TEGRA234_MAIN_GPIO(X, 7)
				TEGRA234_MAIN_GPIO(Y, 3)
				TEGRA234_MAIN_GPIO(Z, 1)
				TEGRA234_MAIN_GPIO(P, 2)
				TEGRA234_MAIN_GPIO(P, 3)
				TEGRA234_MAIN_GPIO(Q, 2)
				TEGRA234_MAIN_GPIO(Q, 6)
				TEGRA234_MAIN_GPIO(M, 0)
				TEGRA234_MAIN_GPIO(N, 1)
				TEGRA234_MAIN_GPIO(G, 0)
				TEGRA234_MAIN_GPIO(G, 6)
				TEGRA234_MAIN_GPIO(G, 7)
				TEGRA234_MAIN_GPIO(H, 7)
				TEGRA234_MAIN_GPIO(AC, 0)
				TEGRA234_MAIN_GPIO(AC, 6)
				TEGRA234_MAIN_GPIO(L, 2)
				TEGRA234_MAIN_GPIO(A, 4)
				TEGRA234_MAIN_GPIO(A, 5)
				TEGRA234_MAIN_GPIO(A, 7)
				>;
			gpio-output-low = <
				TEGRA234_MAIN_GPIO(X, 6)
				TEGRA234_MAIN_GPIO(Y, 4)
				TEGRA234_MAIN_GPIO(Z, 6)
				TEGRA234_MAIN_GPIO(Z, 7)
				TEGRA234_MAIN_GPIO(P, 1)
				TEGRA234_MAIN_GPIO(I, 0)
				TEGRA234_MAIN_GPIO(I, 1)
				TEGRA234_MAIN_GPIO(I, 5)
				TEGRA234_MAIN_GPIO(K, 4)
				TEGRA234_MAIN_GPIO(K, 5)
				TEGRA234_MAIN_GPIO(A, 6)
				>;
			gpio-output-high = <
				TEGRA234_MAIN_GPIO(P, 0)
				TEGRA234_MAIN_GPIO(P, 6)
				TEGRA234_MAIN_GPIO(Q, 3)
				TEGRA234_MAIN_GPIO(Q, 5)
				TEGRA234_MAIN_GPIO(H, 6)
				TEGRA234_MAIN_GPIO(I, 2)
				TEGRA234_MAIN_GPIO(A, 0)
				>;
		};
	};

I take a screenshot from the oscilloscope where we saw that there is a difference (10mV) between 0 and 1 (changed with /sys/class/gpio)

Set to 0:

Set to 1:

Thank you

Hi jbzp00y,

What’s your carrier board for Orin NX?

Do you mean that you can’t get the value become 1 after write 1 into it?

Could you help to provide the result of the following command?

$sudo busybox devmem 0x02430030

Yes, the value become 1.

root@ubuntu:/home/nvidia# busybox devmem 0x02430030
0x00000020

Do you mean the value become 1 but it is still low from oscilloscope?
Or you mean the value is still 0 even if you write 1 to it?

Yes, like you can see on my second capture, the voltage switch from 0.000V to 0.011V.

If I perform /sys/class/gpio/PP.06/value, the result is 1 as expected.

Since you are using the custom carrier board for Orin NX, do you connect a 47k resistor for this pin?

It’s mandatory to use an external 45k resistor ?

This GPIO output is not push/pull?

Hi, are you testing on devkit or custom board? If latter, can you please share the design of pin 124 for check?

We don’t have any devkit of this board. Can you check on your side ?

Nothing is connected to the J1 connector. So, this IO is not connected during our test.

Thank you,

Jean

Hi jbzp00y,

Could you help to provide the current pinmux speadsheet for further check?

Hi, please try “nvidia,io-high-voltage = <TEGRA_PIN_DISABLE>;”

Hi @jbzp00y , any update?

Sorry I don’t still take the time to make a full reflash of my board. I change to another GPIO to bypass the problem.
I’ll keep you in touch.

Thanks, please do it when you have time so that we can confirm if it is hw or sw issue.

Hello all,
We tested the solution solved in this post and found that it didn’t work,
[GPIO02 can’t output high level - Jetson & Embedded Systems / Jetson Orin NX - NVIDIA Developer Forums]

I added the following sentence based on the above post

Then GPIO02 functioned normally.

But there is still a question, in the test, the board without 47K resistance can work normally, so whether the 47K resistance must be added?

It is not must. Please try removing it.

Does that mean get remove of the 47K resistor? We have tested the board without 47K resistance, it can work completely.

In our tests, the following sentence must be added to the device tree.

Yes, it can be removed if set io-high-voltage to disable. For the setting of enable io-high-voltage, the external pull-up is necessary.

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