Serial Port Setup in Device Tree

I’m currently using a custom carrier board that has 2 serial ports. I’m using UART1 and UART2 and these go out to 2 DB9 connectors. We are using a SP3243EUEA-L transceiver on our board for RS232. Are there any device tree changes I need to do to activate these ports? I have changed the pinmux to add these ports, and I’m seeing both ttyTHS1 and ttyTHS2 inside of Ubuntu. I did a dump on the pinmux pins, but the uart mux is saying unclaimed for some reason. Is there anything else I need to add to the device tree, or is something wrong in my pinmux?

pinmux.txt (65.8 KB)

tegra234-p3737-0000+p3701-0000.txt (11.9 KB)

Hi woods.little,

What’s the Jetpack version in use?

How did you configure the pinmux from pinmux spreadsheet for these pins?

Please also share the full dmesg and device tree for further check.

Hey Kevin,

We are using Jetpack 36.4.4. I used the newest spreadsheet for the pinmux that was available on the download center. Below is the active device tree output from Linux and the dmesg log you requested.

dmesg_log.txt (87.6 KB)

active_device_tree.txt (999.3 KB)

Please share the screenshot of the pinmux spreadsheet with your configuration for those pins.

I have checked the dmesg you shared.

[2026-01-07 08:55:59.301] [    0.136952] Serial: AMBA PL011 UART driver
[2026-01-07 08:55:59.301] [    0.149115] 31d0000.serial: ttyAMA0 at MMIO 0x31d0000 (irq = 118, base_baud = 0) is a SBSA
[2026-01-07 08:55:59.657] [    0.284712] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[2026-01-07 08:55:59.657] [    0.286823] msm_serial: driver initialized
[2026-01-07 08:56:00.343] [    4.060742] serial-tegra 3100000.serial: RX in PIO mode
[2026-01-07 08:56:00.343] [    4.060748] serial-tegra 3100000.serial: TX in PIO mode
[2026-01-07 08:56:00.343] [    4.060859] 3100000.serial: ttyTHS1 at MMIO 0x3100000 (irq = 112, base_baud = 0) is a TEGRA_UART
[2026-01-07 08:56:00.343] [    4.062568] serial-tegra 3110000.serial: RX in PIO mode
[2026-01-07 08:56:00.343] [    4.062573] serial-tegra 3110000.serial: TX in PIO mode
[2026-01-07 08:56:00.343] [    4.062648] 3110000.serial: ttyTHS2 at MMIO 0x3110000 (irq = 206, base_baud = 0) is a TEGRA_UART
[2026-01-07 08:56:01.385] [    8.999631] systemd[1]: Created slice Slice /system/serial-getty.

Are you using UART1(3100000.serial) and UART2(3110000.serial) for RS232?
I think you don’t need to care about the reporting from /sys/kernel/debug/pinctrl/c300000.pinmux/pinmux-pins.
If so, have you verified the UART loopback test for both interfaces?

# stty -F /dev/ttyTHS1 115200 raw -echo
# cat /dev/ttyTHS1 &
# echo "test" > /dev/ttyTHS1

# stty -F /dev/ttyTHS2 115200 raw -echo
# cat /dev/ttyTHS2 &
# echo "test" > /dev/ttyTHS2

Hey Kevin,

Here is the screenshot of the 2 serial port config in the pinmux tables

UART1

UART2

I have tried running a loopback on both of these ports, but not receiving “test” back from the ports.

Do you short TX/RX externally before the loopback test?
If so, please get a scope to measure the signal on that line.

Hey Kevin, we use an Serial DB9 Loopback plug, which connects pins to the proper pinout for loopback for RS232.

I was suggesting just verifying the UART loopback test through shoring UART-TX/UART-RX before you connect the DB9 for RS232.