Configure the type-c port and do not use the Cypress PD controller

Dear NVIDIA,The self-designed board removes the Cypress PD controller, and the type-c port used for flash image can be updated for mirroring, but after the system boots, the type-c port cannot use USB3.0 and USB2.0. If I want to burn the type-c port of the image, use USB 3.0 and USB 2.0 normally after the system boots, and support OTG, how should I configure the device tree? CC detection is used.

All in all, after removing the Cypress PD controller, the usb type-c function does not work properly, how can I modify the device tree, I hope I can help. Thank you

Hello,I have a guide document, but I don’t know how to remove the PD controller and support the OTG function.
https://docs.nvidia.com/jetson/archives/r35.2.1/DeveloperGuide/text/HR/JetsonModuleAdaptationAndBringUp/JetsonAgxXavierSeries.html#for-an-otg-on-the-go-port

Dear NVIDIA,I modified the device tree, removed the PD controller, added a HUSB311PD controller, now USB 3.0 and USB2.0, Type-C forward and reverse plug and insert can work normally.But the Type-C to DP display does not work properly yet. How should I modify the device tree?
My device tree is modified as follows

/*
 * Copyright (c) 2018-2020, NVIDIA CORPORATION.  All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms and conditions of the GNU General Public License,
 * version 2, as published by the Free Software Foundation.
 *
 * This program is distributed in the hope it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 * more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

/*
 * Common include DTS file for CVM:P2888-0001 and CVB:P2822-0000 variants.
 */

#include "dt-bindings/extcon-ids.h"
#include "tegra194-p2888-0000-a00.dtsi"
#include <t19x-common-platforms/tegra194-platforms-eqos.dtsi>
#include "tegra194-p2822-0000-a00.dtsi"
#include "tegra194-power-tree-p2888-0001-p2822-1000.dtsi"
#include <t19x-common-platforms/tegra194-comms.dtsi>
#include "tegra194-thermal-p2888.dtsi"
#include "tegra194-plugin-manager-p2888-0000.dtsi"
#include "tegra194-plugin-manager-p2822-0000.dtsi"
#include "tegra194-super-module-e2614-p2888-0000.dtsi"
#include <t19x-common-platforms/tegra194-no-pll-aon-clock.dtsi>
#include "dt-bindings/usb/pd.h"

/ {
	nvidia,dtsfilename = __FILE__;
	nvidia,dtbbuildtime = __DATE__, __TIME__;
	nvidia,fastboot-usb-vid = <0x0955>;
	nvidia,fastboot-usb-pid = <0xee1e>;

	compatible = "nvidia,galen", "nvidia,jetson-xavier", "nvidia,p2822-0000+p2888-0001", "nvidia,tegra194";

	chosen {
		bootargs ="console=ttyTCU0,115200 mem=62G@2G";
		board-has-eeprom;
	};

	firmware {
		android {
			compatible = "android,firmware";
			hardware = "galen";
			vbmeta {
				compatible = "android,vbmeta";
				parts = "vbmeta,kernel,kernel-dtb,APP,vendor,SOS";
			};
			fstab {
				compatible = "android,fstab";
				vendor {
					compatible = "android,vendor";
					dev = "/dev/block/platform/3460000.sdhci/by-name/vendor";
					type = "ext4";
					mnt_flags = "ro";
					fsmgr_flags = "wait,avb";
				};
				odm {
					compatible = "android,odm";
					dev = "/dev/block/platform/3460000.sdhci/by-name/odm";
					type = "ext4";
					mnt_flags = "ro";
					fsmgr_flags = "wait,avb";
				};
			};
		};
	};

	bluedroid_pm {
		compatible = "nvidia,tegra-bluedroid_pm";
		bluedroid_pm,reset-gpio = <&tegra_main_gpio TEGRA194_MAIN_GPIO(M, 6) 0>;
		bluedroid_pm,host-wake-gpio = <&tegra_main_gpio TEGRA194_MAIN_GPIO(Y, 0) 0>;
		bluedroid_pm,ext-wake-gpio = <&tegra_main_gpio TEGRA194_MAIN_GPIO(M, 7) 0>;
		interrupt-parent = <&tegra_main_gpio>;
		interrupts = <TEGRA194_MAIN_GPIO(Y, 0) IRQ_TYPE_EDGE_FALLING>;
	};

	spi@c260000 {
		status = "disabled";
	};

	spi@3210000 {
		status = "okay";
		spi@0 {
			compatible = "tegra-spidev";
			reg = <0x0>;
			spi-max-frequency = <33000000>;
			controller-data {
				nvidia,enable-hw-based-cs;
				nvidia,rx-clk-tap-delay = <0x11>;
			};
		};
		spi@1 {
			compatible = "tegra-spidev";
			reg = <0x1>;
			spi-max-frequency = <33000000>;
			controller-data {
				nvidia,enable-hw-based-cs;
				nvidia,rx-clk-tap-delay = <0x11>;
			};
		};
	};

	spi@3270000 {
		status = "disabled";
	};

	spi@3300000 {
		status = "disabled";
	};

#if TEGRA_PMC_VERSION >= DT_VERSION_2
	pmc@c360000 {
		nvidia,invert-interrupt;
	};
#else
	pmc@c370000 {
		nvidia,invert-interrupt;
	};
#endif
	// rt_pd_manager {
	// 	compatible = "richtek,rt-pd-manager";
	// };
	hdr40_i2c0: i2c@c240000 {


	husb311: husb311@4e {
		compatible = "hynetek,husb311";
		reg = <0x4e>;
		status = "okay";
		interrupt-parent = <&tegra_main_gpio>;
		interrupts = <TEGRA194_MAIN_GPIO(B, 2) IRQ_TYPE_LEVEL_LOW>;
		// vbus-supply = <&vcc5v0_typec>;
		// vbus-supply = <&battery_reg>;
		// typec-extcon {
		// 	typec_port0: port-0 {
		// 		status = "okay";
		// 		#extcon-cells = <1>;
		// 	};
		// 	typec_port1: port-1 {
		// 		status = "okay";
		// 		#extcon-cells = <1>;
		// 	};
		// };
		// typec-pd {
		// 	typec_pd: pd {
		// 		status = "okay";
		// 		#extcon-cells = <1>;
		// 	};
		// };
		usb_con: connector {
			compatible = "usb-c-connector";
			label = "USB-C";
			data-role = "dual";
			power-role = "dual";
			try-power-role = "sink";
			source-pdos = <PDO_FIXED(5000, 500, PDO_FIXED_USB_COMM)>;
			sink-pdos = <PDO_FIXED(5000, 500, PDO_FIXED_USB_COMM)
				PDO_VAR(5000, 5000, 1000)>;
			op-sink-microwatt = <10000000>;

			ports {
				#address-cells = <1>;
				#size-cells = <0>;
				port@1 {
					reg = <1>;
					husb311_ep: endpoint {				
						remote-endpoint = <&usb_role_switch1>;
					};
				};
			};
		};
		
	};

	// 	husb311: husb311@4e {
	// 		compatible = "hynetek,husb311";
	// 		reg = <0x4e>;
	// 		status = "okay";
	// 		// interrupt-parent = <&gpio>;
	// 		//interrupts = <15 0x8>;
	// 		interrupt-parent = <&tegra_main_gpio>;
	// 		interrupts = <TEGRA194_MAIN_GPIO(B, 2) IRQ_TYPE_LEVEL_LOW>;
	// 		tcpc-dual,supported_modes = <0>; /* 0: dfp/ufp, */
	// 						/* 1: dfp, 2: ufp */
	// 		tcpc,name = "type_c_port0"; /* tcpc_device's name */
	// 		tcpc,role_def = <4>; /* 0: SNK Only, 1: SRC Only, 2: DRP, */
	// 					/* 3: Try.SRC, 4: Try.SNK */
	// 		tcpc,rp_level = <0>; /* 0: Default, 1: 1.5, 2: 3.0 */
	// 		tcpc,vconn_supply  = <1>;  /* 0: Never, 1: Always, */
	// 						/* 2: EMarkOnly, 3: StartOnly */
	// #if (CONFIG_MTK_GAUGE_VERSION == 30)
	// 		tcpc,notifier_supply_num = <3>;
	// #else
	// 		tcpc,notifier_supply_num = <2>;
	// #endif
	// 		// husb311pd,intr_gpio = <&tegra_main_gpio>;
	// 		// husb311pd,intr_gpio_num = <15>;

	// 		gpio-controller;
	// 		//#gpio-cells = <2>;
	// 		pd-data {
	// 			pd,vid = <0x2e99>;
	// 			pd,pid = <0x0311>;
	// 			pd,source-cap-ext = <0x171129cf 0x00000000 0x00000000
	// 						0x00000000 0x00000000 0x02000000>;
	// 			pd,mfrs = "HynetekTCPC";

	// 			/*
	// 			*	VSAFE5V = 0, MAX_POWER = 1, CUSTOM = 2,
	// 			*	MAX_POWER_LV = 0x21, MAX_POWER_LVIC = 0x31
	// 			*	MAX_POWER_HV = 0x41, MAX_POWER_HVIC = 0x51
	// 			*/
	// 			pd,charging_policy= <0x31>;

	// 			/*
	// 			* Fixed 5V, 500 mA <0x00019032>
	// 			* Fixed 5V, 1A <0x00019064>
	// 			* Fixed 5V, 2A <0x000190c8>
	// 			* Fixed 5V, 3A <0x0001912c>
	// 			* Fixed 9V, 500 mA <0x0002d032>
	// 			* Fixed 9V, 1A <0x0002d064>
	// 			* Fixed 9V, 2A <0x0002d0c8>
	// 			* Fixed 9V, 3A <0x0002d12c>
	// 			* Variable 5-9V, 1A <0x8642d064>
	// 			* Variable 5-9V, 2A <0x8642d0c8>
	// 			* Variable 5-9V, 3A <0x8642d12c>
	// 			* PPS 3V~5.9V, 3A <0xC0761E3C>
	// 			*/
	// 			pd,source-pdo-size = <1>;
	// 			pd,source-pdo-data = <0x00019032>;
	// 			pd,sink-pdo-size = <1>;
	// 			pd,sink-pdo-data = <0x000190c8>;

	// 			/*
	// 			* No DP, host + device
	// 			*	pd,id-vdo-size = <3>;
	// 			*	pd,id-vdo-data = <0xd10029cf 0x0 0x17110000>;
	// 			* With DP
	// 			*	pd,id-vdo-size = <3>;
	// 			*	pd,id-vdo-data = <0xd60029cf 0x0 0x17110000
	// 			*/

	// 			pd,id-vdo-size = <3>;
	// 			pd,id-vdo-data = <0xd10029cf 0x0 0x17110000>;

	// 			bat,nr = <1>;
	// 			pd,country_nr = <0>;

	// 			bat-info0 {
	// 				bat,vid = <0x29cf>;
	// 				bat,pid = <0x1711>;
	// 				bat,mfrs = "bat1";
	// 				bat,design_cap = <3000>;
	// 			};

	// 			//bat-info1 {
	// 			//	bat,vid = <0x8abc>;
	// 			//	bat,pid = <0x5234>;
	// 			//	bat,mfrs = "bat2";
	// 			//	bat,design_cap = <4000>;
	// 			//};

	// 			//country0 {
	// 			//	pd,country_code = <0x5457>;
	// 			//	pd,country_len = <2>; /* max len = 26 */
	// 			//	pd,country_data = <0xff 0xff>;
	// 			//};

	// 			//country1 {
	// 			//	pd,country_code = <0x5553>;
	// 			//	pd,country_len = <3>; /* max len = 26 */
	// 			//	pd,country_data = <0xf1 0xf2 0xf3>;
	// 			//};
	// 		};
	// 		dpm_caps {
	// 			local_dr_power;
	// 			local_dr_data;
	// 			//local_ext_power;
	// 			local_usb_comm;
	// 			//local_usb_suspend;
	// 			//local_high_cap;
	// 			//local_give_back;
	// 			local_no_suspend;
	// 			local_vconn_supply;

	// 			//attemp_discover_cable_dfp;
	// 			attemp_enter_dp_mode;
	// 			attemp_discover_cable;
	// 			attemp_discover_id;

	// 			/* 0: disable, 1: prefer_snk, 2: prefer_src */
	// 			pr_check = <0>;
	// 			//pr_reject_as_source;
	// 			//pr_reject_as_sink;
	// 			//pr_check_gp_source;
	// 			//pr_check_gp_sink;

	// 			/* 0: disable, 1: prefer_ufp, 2: prefer_dfp */
	// 			dr_check = <0>;
	// 			//dr_reject_as_dfp;
	// 			//dr_reject_as_ufp;
	// 		};
	// 		displayport {
	// 			/* connection type = "both", "ufp_d", "dfp_d" */
	// 			1st_connection = "dfp_d";
	// 			2nd_connection = "dfp_d";
	// 			signal,dp_v13;
	// 			//signal,dp_gen2;
	// 			usbr20_not_used;
	// 			typec,receptacle;
	// 			ufp_d {
	// 				//pin_assignment,mode_a;
	// 				//pin_assignment,mode_b;
	// 				//pin_assignment,mode_c;
	// 				//pin_assignment,mode_d;
	// 				//pin_assignment,mode_e;
	// 			};
	// 			dfp_d {
	// 				/* Only support mode C & D */
	// 				//pin_assignment,mode_a;
	// 				//pin_assignment,mode_b;
	// 				pin_assignment,mode_c;
	// 				pin_assignment,mode_d;
	// 				pin_assignment,mode_e;
	// 				pin_assignment,mode_f;
	// 			};
	// 		};

	// 		usb_con: connector {
	// 			compatible = "usb-c-connector";
	// 			label = "USB-C";
	// 			// for usb communication (optional)
	// 			data-role = "dual";
	// 			//data-role = "ufp";
	// 			//data-role = "dfp";

	// 			// for power negotiation by typec pd communication
	// 			power-role = "dual";
	// 			//power-role = "source";
	// 			//power-role = "sink";

	// 			// power role prefer
	// 			try-power-role = "sink";
	// 			//try-power-role = "source";
	// 			// source-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_USB_COMM)>;
	// 			// sink-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_USB_COMM)>;

	// 			// source capability for power output,
	// 			// refer to power delivery spec data message capability chapter
	// 			source-pdos = <PDO_FIXED(5000, 3000, (0x1<<29)|(0x1<<25)) >;
	// 						//PDO_FIXED(9000, 2000, 0) >;
	// 			//source-pdos = <(PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)|(0x1<<29)|(0x1<<25))>;
	// 			sink-pdos = < PDO_FIXED(5000, 3000, (0x1<<29)|(0x1<<25))
	// 						PDO_FIXED(9000, 2000, 0) >;
	// 			//sink-pdos = < (PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)|(0x1<<29)|(0x1<<25))
	// 			//           PDO_FIXED(9000, 2000, 0) >;
	// 						//PDO_VAR(5000, 12000, 2000)>;
	// 			// for sink max drain power
	// 			op-sink-microwatt = <10000000>;

	// 			ports {
	// 				#address-cells = <1>;
	// 				#size-cells = <0>;

	// 				port@1 {
	// 						reg = <1>;
	// 						// husb311_ep: endpoint {				
	// 						// 	remote-endpoint = <&usb_role_switch1>;
	// 						// };
							
	// 				};
	// 			};
	// 		};
	// 	};
		
		bmi160@69 {
			compatible = "bmi,bmi160";
			reg = <0x69>;
			interrupt-parent = <&tegra_aon_gpio>;
			interrupts = <TEGRA194_AON_GPIO(AA, 2) GPIO_ACTIVE_LOW>;
			accelerometer_matrix    = [01 00 00 00 01 00 00 00 01];
			gyroscope_matrix        = [01 00 00 00 01 00 00 00 01];
			accelerometer_delay_us_min = <1250>;
			gyroscope_delay_us_min = <1250>;
			status = "disabled";
		};
		ucsi_ccg: ucsi_ccg@8 {
			status = "disabled";
#if TEGRA_XUSB_DT_VERSION == DT_VERSION_2
			typec-extcon {
				typec_port0: port-0 {
					status = "okay";
					#extcon-cells = <1>;
				};
				typec_port1: port-1 {
					status = "okay";
					#extcon-cells = <1>;
				};
			};
			typec-pd {
				typec_pd: pd {
					status = "okay";
					#extcon-cells = <1>;
				};
			};
#endif
#if TEGRA_XUSB_DT_VERSION >= DT_VERSION_3
			ccgx,firmware-build = "gn";
			ccg_typec_con0: connector@0 {
				compatible = "usb-c-connector";
				label = "USB-C";
				data-role = "dual";
				port {
					ucsi_ccg_p0: endpoint {
						remote-endpoint = <&usb_role_switch0>;
					};
				};
			};
#endif
		};
	};

	xusb_padctl: xusb_padctl@3520000 {
		status = "okay";

		pads {
			usb2 {
				lanes {
					usb2-0 {
						nvidia,function = "xusb";
						status = "okay";
					};
					usb2-1 {
						nvidia,function = "xusb";
						status = "okay";
					};
					usb2-2 {
						nvidia,function = "xusb";
						status = "okay";
					};
					usb2-3 {
						nvidia,function = "xusb";
						status = "okay";
					};
				};
			};
			usb3 {
				lanes {
					usb3-0 {
						nvidia,function = "xusb";
						status = "okay";
					};
					usb3-2 {
						nvidia,function = "xusb";
						status = "okay";
					};
					usb3-3 {
						nvidia,function = "xusb";
						status = "okay";
					};
				};
			};
		};

		ports {
			usb2-0 {
				// mode = "otg";
				mode = "host";
				usb-role-switch;
				// vbus-supply = <&battery_reg>;
				status = "okay";
#if TEGRA_XUSB_DT_VERSION >= DT_VERSION_3
				port {
					#address-cells = <1>;
					#size-cells = <0>;
					usb_role_switch0: endpoint@0 {
						reg = <0>;
						remote-endpoint = <&ucsi_ccg_p0>;
					};
					usb_role_switch1: endpoint@1 {
						reg = <1>;
						remote-endpoint = <&husb311_ep>;
					};
				};
#endif
			};
			usb2-1 {
				mode = "host";
				status = "okay";
			};
			usb2-2 {
				mode = "host";
				status = "okay";
			};
			usb2-3 {
				mode = "host";
				status = "okay";
			};
			usb3-0 {
				nvidia,usb2-companion = <1>;
				status = "okay";
			};
			usb3-2 {
				nvidia,usb2-companion = <0>;
				status = "okay";
			};
			usb3-3 {
				nvidia,usb2-companion = <3>;
				nvidia,usb3-gen1-only= <1>;
				status = "okay";
			};
		};
	};

	tegra_xudc: xudc@3550000 {
#if TEGRA_XUSB_DT_VERSION == DT_VERSION_2
		// extcon-cables = <&typec_port0 0>;
		// extcon-cable-names = "vbus";
		// #extcon-cells = <1>;
#endif
		phys = <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-0}>,
			<&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-2}>;
#if defined(LINUX_VERSION) && LINUX_VERSION > 414
		phy-names = "usb2-0", "usb3-2";
#else
		phy-names = "usb2", "usb3";
#endif
		nvidia,xusb-padctl = <&xusb_padctl>;
		nvidia,boost_cpu_freq = <1200>;
		status = "okay";
	};

	tegra_xhci: xhci@3610000 {
#if TEGRA_XUSB_DT_VERSION == DT_VERSION_2
		// extcon-cables = <&typec_port0 1>;
		// extcon-cable-names = "id";
		// #extcon-cells = <1>;
#endif
		phys = <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-0}>,
			<&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-1}>,
			<&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-3}>,
			<&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-2}>,
			<&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-2}>,
			<&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-0}>,
			<&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-3}>;
		phy-names = "usb2-0", "usb2-1", "usb2-3", "usb2-2",
			"usb3-2", "usb3-0", "usb3-3";
		nvidia,xusb-padctl = <&xusb_padctl>;
		nvidia,boost_emc_freq = <500>;
		status = "okay";
	};

	arm-pmu {
		status = "okay";
	};

	power-domain {
		status = "disabled";
	};

	interrupt-controller {
		status = "disabled";
	};

	mods-simple-bus {
		status = "disabled";
	};

	eeprom-manager {
		status = "disabled";
	};

	cpuidle {
		compatible = "nvidia,tegra19x-cpuidle";
		status = "okay";
	};

	thermal-zones {
		status = "disabled";
	};

	reserved-memory {
		ramoops_carveout {
			status = "okay";
		};
	};

	mttcan@c310000 {
		status = "okay";
	};

	mttcan@c320000 {
		status = "okay";
	};

	serial@3110000 {
		status = "okay";
	};

	pwm@3280000 {
		status = "okay";
	};

	pwm@32c0000 {
		status = "okay";
	};

	pwm@32f0000 {
		status = "okay";
	};

	hdr40_i2c1: i2c@31e0000 {
		pinctrl-names = "default";
		pinctrl-0 = <&dpaux_default>;
		bmi160@69 {
			compatible = "bmi,bmi160";
			reg = <0x69>;
			accelerometer_matrix    = [01 00 00 00 01 00 00 00 01];
			gyroscope_matrix        = [01 00 00 00 01 00 00 00 01];
			status = "disabled";
		};
	};

	host1x@13e00000 {
		dpaux@155F0000 {
			status = "okay";
			compatible = "nvidia,tegra194-dpaux3-padctl";
#if LINUX_VERSION <= 419
			/delete-property/ power-domains;
#endif
			dpaux_default: pinmux@0 {
				dpaux3_pins {
					pins = "dpaux3-3";
					function = "i2c";
				};
			};
		};
	};

	ufshci@2450000 {
		status = "disabled";
		nvidia,enable-hs-mode;
		nvidia,cd-gpios = <&tegra_aon_gpio TEGRA194_AON_GPIO(EE, 0) GPIO_ACTIVE_HIGH>;
		nvidia,cd-wakeup-capable;
	};
	pfsd {
		pwm_polarity= <PWM_POLARITY_NORMAL>;
		suspend_state = <0>;
	};

	efuse@3820000 {
#if LINUX_VERSION < 419
		efuse-burn {
			nvidia,tz = <&pllx>;
			nvidia,temp-range = <(-19000) 117000>;
			thermal-zone = <5>;
		};
#endif
	};

#if LINUX_VERSION >= 419
	efuse-burn {
		nvidia,tz = <&pllx>;
		nvidia,temp-range = <(-19000) 117000>;
	};
#endif

	tegra_udrm: tegra_udrm {
		compatible = "nvidia,tegra-udrm";
		status = "okay";
	};

	nvsciipc-kernel {
		compatible = "nvidia,nvsciipc";
		status = "okay";
	};

	clocks-init {
		compatible = "nvidia,clocks-config";
		status = "okay";
		disable {
			clocks = <&aon_clks TEGRA194_CLK_PLLAON>,
				<&bpmp_clks TEGRA194_CLK_CAN1>,
				<&bpmp_clks TEGRA194_CLK_CAN2>;
		};
	};
};

#if TEGRA_XUSB_DT_VERSION == DT_VERSION_2
// &head0 {
// 	extcon-cables = <&typec_port0 2 &typec_port1 2>;
// 	extcon-cable-names = "typec0", "typec1";
// 	#extcon-cells = <1>;
// };

// &head1 {
// 	extcon-cables = <&typec_port0 2 &typec_port1 2>;
// 	extcon-cable-names = "typec0", "typec1";
// 	#extcon-cells = <1>;
// };

// &head2 {
// 	extcon-cables = <&typec_port0 2 &typec_port1 2>;
// 	extcon-cable-names = "typec0", "typec1";
// 	#extcon-cells = <1>;
// };

// &sor0 {
// 	nvidia,typec-port = /bits/ 8 <0>;
// };

// &sor1 {
// 	nvidia,typec-port = /bits/ 8 <1>;
// };
#endif

#if LINUX_VERSION >= 414
#include <tegra194-linux-4.14.dtsi>
#endif
````Preformatted text`

Is this based on rel-32 or rel-35?

Do you still need display port or not? What kind of design is that?

Hello,Based on REL-35, Type-C’s USB function now works properly. It is like this, instead of designing the display port, but connecting the Type-C adapter through the Type-C port, the DP port of the Type-C adapter is connected to the monitor and does not work.

Hi,

Of course it would not work… Did you read the design guide document or not?

Partially read, but some did not understand. I modified the device tree above, the original USB function is also abnormal, after I modified, USB can be, but DP is not yet possible, so I want to ask for advice.

Hello,I refer to this link, remove the PD controller.
https://elinux.org/Jetson/FAQ/BSP/Remove_TypeC

Can you tell me how to modify the device tree configuration of DP? Thank you so much.

Hi,

please clarify if you are still expecting usb to output DP signal…

The DP can work fine on usb port on devkit just because there is a converter on the carrier board…

Of course, I expect usb to output DP signal

Please share us your schematic…

Hi,

I just want to clarify this first. Jetson doesn’t have software or hardware support of “DP-> usb”.

This is the flowchart, mainly by the tusb1046 to achieve dp and usb switching. We mainly replaced the Cypress PD controller with the husb311 pd controller, but the pins were connected according to the original default pins.



Just a reminder. You already disabled the original type C connection between display driver and usb port.

// &head0 {
// 	extcon-cables = <&typec_port0 2 &typec_port1 2>;
// 	extcon-cable-names = "typec0", "typec1";
// 	#extcon-cells = <1>;
// };

// &head1 {
// 	extcon-cables = <&typec_port0 2 &typec_port1 2>;
// 	extcon-cable-names = "typec0", "typec1";
// 	#extcon-cells = <1>;
// };

// &head2 {
// 	extcon-cables = <&typec_port0 2 &typec_port1 2>;
// 	extcon-cable-names = "typec0", "typec1";
// 	#extcon-cells = <1>;
// };

// &sor0 {
// 	nvidia,typec-port = /bits/ 8 <0>;
// };

// &sor1 {
// 	nvidia,typec-port = /bits/ 8 <1>;
// };
1 Like

I guess that mainly the physical link of the dp and the link of the device tree should be able to path, right?

Yes, because I didn’t know how to associate type-c with the husb311pd controller, it was disabled.thank you.

Because the jetson platform was designed without a Cypress PD controller, it was replaced with a husb311pd controller, and I disabled it, which I refer to here https://elinux.org/Jetson/FAQ/BSP/Remove_TypeC

Could you have a monitor connected to one of the usb type C port and share me the dmesg?