Remux PIN to simple output pin

Hello,

I’m trying to remux an pin “SODIMM_19” (PWM_3) on the IVY carrier board to just an output pin (routed to zif-connector J15).
So i disabled the “epwm1” and “hdmi-connector” that claimed the pin and tried to set this pin but inside my docker-container when i do gpioinfo it still shows up as “input”, labels are being set correctly, what i’m missing in my overlay?

my TDX-INFO:
Bootloader: U-Boot
Kernel version: 6.6.106-7.4.0-g650792253644 #1-Torizon SMP PREEMPT Thu Sep 18 20:27:33 UTC 2025
Kernel command line: root=LABEL=otaroot rootfstype=ext4 quiet logo.nologo vt.global_cursor_default=0 plymouth.ignore-serial-consoles splash fbcon=map:3 ostree=/ostree/boot.1/torizon/6b36e16ddb207e21a6ecdd3fb321f28b4b7011647d17492c05c9399a723250d7/0
Distro name: NAME=“Torizon OS”
Distro version: VERSION_ID=7.4.0-build.28
Distro variant: VARIANT=“Docker”
Hostname: verdin-am62-15403666

Hardware info

HW model: Toradex Verdin AM62 on Ivy Board
Toradex version: 0071 V1.1C
Serial number: 15403666
Processor arch: aarch64

Overlay:

verdin-am62_ltc2635_overlay.dts (1.3 KB)

tcbuild.yaml:

tcbuild.yaml (733 Bytes)

Hi, I’m the Toradex AI Assistant.

I might make mistakes or occasionally get you wrong. Our support team will step in if needed.


To configure SODIMM_19 (PWM_3) as a GPIO output pin on your Verdin AM62 with Ivy carrier board, you need to create a proper device tree overlay that includes the pinmux configuration and enables the GPIO controller(1).

Key Steps for GPIO Configuration

1. Create a Function Multiplexing Group

For the Verdin AM62, you need to create a pinctrl group in the &main_pmx0 node(1). The overlay should include:

&main_pmx0 {
    pinctrl_sodimm_19_gpio: sodimm_19_gpio_grp {
        pinctrl-single,pins = <
            AM62X_IOPAD(0x00f4, PIN_OUTPUT, 7) /* (V24) GPMC0_CSn2.GPIO0_61 */ /* SODIMM 19 */
        >;
    };
};

(1)

2. Activate the Group

You need to add your pinctrl group to the appropriate GPIO controller. For SODIMM 19, this would typically be &main_gpio0(1):

&main_gpio0 {
    pinctrl-0 = <&pinctrl_ctrl_sleep_moci>,
                <&pinctrl_gpio_5>,
                <&pinctrl_gpio_6>,
                <&pinctrl_gpio_7>,
                <&pinctrl_gpio_8>,
                <&pinctrl_sodimm_19_gpio>;
};

(1)

3. Disable Conflicting Peripherals

Make sure to disable any conflicting peripherals in your overlay(1):

&epwm1 {
    status = "disabled";
};

(1)

Important Notes

  • The pin configuration uses PIN_OUTPUT flag to set the pin as output(1)
  • The function value 7 typically corresponds to GPIO mode(1)
  • You need to include the proper header files like k3-pinctrl.h in your overlay(1)

Troubleshooting

If the pin still shows as “input” in gpioinfo, verify:

  1. The overlay was successfully applied(1)
  2. The correct GPIO controller is being configured(1)
  3. All conflicting peripherals are disabled(1)
  4. The pinmux configuration uses the correct register offset and function value(1)

Since you mentioned the labels are being set correctly but the direction is still “input”, the issue is likely in the pinctrl configuration - specifically ensuring the PIN_OUTPUT flag is used and the GPIO controller is properly configured with your pinctrl group(1).

Best regards, Toradex AI Assistant.


Did you like my answer? :+1: :-1:

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.

Hi @bkennis!

The answer given by the Toradex AI seems to be a good starting point. Please try the suggested approach and see if it works.

Additionally, if the pin is accessible on the board (i.e., exposed), you can measure it with a multimeter. I usually test the pin this way (when possible) to verify that it is producing the expected output.

Best regards.