HDMI Hotplug Extcon

We have a custom carrier card for an Orin NX SOM that utilizes HDMI. Our previous Xavier NX Carrier card utilized the extcon functionality to trigger a udev event when HDMI hotplug was detected. This does not work on Orin for some reason (extcon shows up in /sys/class/ but extcon0 is not there), does someone have a workaround for this?

I have applied the following changes to try to get this working:

  1. Switched DCB by including “tegra234-dcb-p3767-0000-hdmi.dtsi”
  2. Updated pinmux to make GPIO M0 an input (hpd pin)
  3. Added display@13800000 to the device tree:
display@13800000 {
+            	status = "okay";
+            	os_gpio_hotplug_a = <&tegra_main_gpio TEGRA234_MAIN_GPIO(M, 0) GPIO_ACTIVE_LOW>;
+        };
  1. added external connection to the device tree:
external-connection {
+        		disp-state {
+             			compatible = "extcon-disp-state";
+             			#extcon-cells = <1>;
+         		};
+     	};  
  1. Applied the SCR patch described in https://developer.download.nvidia.com/embedded/L4T/r35_Release_v4.1/docs/Jetson_Linux_Release_Notes_r35.4.1.pdf

Any help would be extremely useful

Hi,

As I know ,our driver by default does not use any extcon event on Orin display anymore. I wonder your if your adding there has no effect.

Hi Wayne!

Thank you for the quick response.
This is what I suspected from my research.
Can you propose a way around this? One of the features on our board relies on the ability to trigger a udev event when HDMI is plugged in.

Thanks again,
-Eryk

Hi Wayne,

Just checking in again to see if you can recommend a way around this limitation.

Maybe try to monitor the GPIO status from /sys/kernel/debug/gpio first?

My plan is to do something similar involving polling, but I would prefer to have this triggered by udev if possible. Is there a way to have a udev event triggered when a GPIO pin is changed?