UART4 Not Working on Custom Carrier Board

Jetpack: JP6.0 (R36.3)

1. Hardware Connection

2. Device Tree Configuration

serial@3130000 {
    resets = <0x03 0x67>;
    interrupts = <0x00 0x73 0x04>;
    clocks = <0x03 0x9e>;
    compatible = "nvidia,tegra194-hsuart";
    status = "okay";
    reg = <0x00 0x3130000 0x00 0x10000>;
    reset-names = "serial";
};

3. Pinmux Configuration:

127 (uart4_rx_ph4): 
	pull=0
	tristate=1
	enable-input=1
	open-drain=0
	io-reset=0
	rcv-sel=0
	io-hv=0
	schmitt=0
	pull-down-strength=0
	pull-up-strength=0
	drive-type=0
	gpio-mode=0
	function=uartd
128 (uart4_tx_ph3): 
	pull=0
	tristate=0
	enable-input=0
	open-drain=0
	io-reset=0
	rcv-sel=0
	io-hv=0
	schmitt=0
	pull-down-strength=0
	pull-up-strength=0
	drive-type=0
	gpio-mode=1
	function=uartd

4. dmesg log

5. GPIO Status

root@nvidia-desktop:/home/nvidia# cat /sys/kernel/debug/gpio | grep PH
gpio-391 (PH.00               )
gpio-392 (PH.01               )
gpio-393 (PH.02               )
gpio-394 (PH.03               )
gpio-395 (PH.04               )
gpio-396 (PH.05               )
gpio-397 (PH.06               )
gpio-398 (PH.07               )
root@nvidia-desktop:/home/nvidia#

6. Loopback Test

$ sudo su
# stty -F /dev/ttyTHS3 115200 raw -echo
# cat /dev/ttyTHS3 &
# echo "test" > /dev/ttyTHS3

Result: No data received.

Hi norman_xu,

I’m not sure why you added a level shift on your custom carrier board for UART4TX/RX and they become PCIE_3V3_EN and CAM_RST respectively.

Could you simply short UART4 TX/RX directly before performing the loopback test?

Test passed. It was a hardware issue. Thanks