Agx Orin - Some GPIO pins could not configured as 'Bidirectional'

Hi,

We have developed custom carrier board based for Jetson AGX ORIN(32GB). In that, Some of the GPIO pins can be configured only as ‘Output’ direction not as Input/Bidirectional.

JetPack - 5.1.1 (L4T35.3.1)
GPIO Pins(can’t configure as bi-directional) - GPIO3_PR.02(K53)
- GPIO3_PH.03(L5)
- GPIO3_PH.05(L4)
- GPIO3_PY.05(C58)
- GPIO3_PY.07(G58)

We would like to use these pins as bidirectional. Is that possible to use those pins as bidirectional?

Hi annaprabu.

How did you configure these pins in pinmux spreadsheet?

How do you verify it could not configured as “bi-directional”?
Could you share the steps you used to verify?

In pinmux sheet, If I changed pin direction from ‘Output’ to ‘Bidirectional/Input’, it shows an error “GPIO3_PR.02 Should not be set as Bidirectional/input”. So, I have manually changed the pinmux in the dtsi file as below.

i configured these gpio as input and loopback with another output gpio (set output value as high). if i read the input gpio value , it always show as LOW.

/* dtsi */
Example:

uart1_tx_pr2 {
		nvidia,pins = "uart1_tx_pr2";
		nvidia,function = "rsvd1";
		nvidia,pull = <TEGRA_PIN_PULL_NONE>;
		nvidia,tristate = <TEGRA_PIN_DISABLE>;
		nvidia,enable-input = <TEGRA_PIN_ENABLE>; /* Changed */
		nvidia,lpdr = <TEGRA_PIN_DISABLE>;
	};

uart4_tx_ph3 {
	nvidia,pins = "uart4_tx_ph3";
	nvidia,function = "rsvd2";
	nvidia,pull = <TEGRA_PIN_PULL_NONE>;
	nvidia,tristate = <TEGRA_PIN_ENABLE>;
	nvidia,enable-input = <TEGRA_PIN_ENABLE>;/* Changed */
	nvidia,lpdr = <TEGRA_PIN_DISABLE>;
};

uart4_rts_ph5 {
	nvidia,pins = "uart4_rts_ph5";
	nvidia,function = "rsvd2";
	nvidia,pull = <TEGRA_PIN_PULL_NONE>;
	nvidia,tristate = <TEGRA_PIN_DISABLE>;
	nvidia,enable-input = <TEGRA_PIN_ENABLE>;/* Changed */
	nvidia,lpdr = <TEGRA_PIN_DISABLE>;
};

uart5_tx_py5 {
	nvidia,pins = "uart5_tx_py5";
	nvidia,function = "rsvd1";
	nvidia,pull = <TEGRA_PIN_PULL_NONE>;
	nvidia,tristate = <TEGRA_PIN_DISABLE>;
	nvidia,enable-input = <TEGRA_PIN_ENABLE>;/* changed */
	nvidia,lpdr = <TEGRA_PIN_DISABLE>;
};

uart5_rts_py7 {
	nvidia,pins = "uart5_rts_py7";
	nvidia,function = "rsvd1";
	nvidia,pull = <TEGRA_PIN_PULL_NONE>;
	nvidia,tristate = <TEGRA_PIN_DISABLE>;
	nvidia,enable-input = <TEGRA_PIN_ENABLE>;/* Changed */
	nvidia,lpdr = <TEGRA_PIN_DISABLE>;
};

Are you using v1.8 Jetson_AGX_Orin_Series_Pinmux_Config_Template.xlsm?

It seems I could configure PR.02 as following:

			uart1_tx_pr2 {
				nvidia,pins = "uart1_tx_pr2";
				nvidia,function = "rsvd1";
				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
				nvidia,tristate = <TEGRA_PIN_DISABLE>;
				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
				nvidia,lpdr = <TEGRA_PIN_DISABLE>;
			};

Could you try to remove Drive 0 in Req. Initial State?

Yes, I’m using v1.8 of Jetson_AGX_Orin_Series_Pinmux_Config_Template.xlsm.

I can configure PR.02 as ‘bidirectional’ by using spreadsheet but it was not working as input. Even, other GPIO’s (PH.03, PH.05, PY.05 and PY.07) can’t be configure as bi-directional in Spreadsheet as well as dtb(The changes was not reflected) .

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