[PATCH v2 2/2] arm64: dts: imx943-evk: add Type-C and USB related nodes
From: Xu Yang
Date: Fri Mar 06 2026 - 05:30:16 EST
Add Type-C and USB related nodes. There are two Type-C ports, one is USB2
only and another is USB3.
Signed-off-by: Xu Yang <xu.yang_2@xxxxxxx>
---
Changes in v2:
- improve commit message
- add missing ptn5150 node
---
arch/arm64/boot/dts/freescale/imx943-evk.dts | 100 +++++++++++++++++++
1 file changed, 100 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx943-evk.dts b/arch/arm64/boot/dts/freescale/imx943-evk.dts
index c8ceabe3d923..0e2da43f9d62 100644
--- a/arch/arm64/boot/dts/freescale/imx943-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx943-evk.dts
@@ -6,6 +6,7 @@
/dts-v1/;
#include "imx943.dtsi"
+#include <dt-bindings/usb/pd.h>
/ {
compatible = "fsl,imx943-evk", "fsl,imx94";
@@ -230,6 +231,48 @@ pca9670_i2c3: gpio@23 {
gpio-controller;
};
+ ptn5110: tcpc@50 {
+ compatible = "nxp,ptn5110", "tcpci";
+ reg = <0x50>;
+ interrupt-parent = <&gpio3>;
+ interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_typec>;
+
+ typec_con: connector {
+ compatible = "usb-c-connector";
+ label = "USB-C";
+ power-role = "dual";
+ data-role = "dual";
+ try-power-role = "sink";
+ source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+ sink-pdos = <PDO_FIXED(5000, 0, PDO_FIXED_USB_COMM)>;
+ op-sink-microwatt = <0>;
+ self-powered;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ typec_con_hs: endpoint {
+ remote-endpoint = <&usb3_data_hs>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ typec_con_ss: endpoint {
+ remote-endpoint = <&usb3_data_ss>;
+ };
+ };
+ };
+ };
+ };
+
pca9548_i2c3: i2c-mux@77 {
compatible = "nxp,pca9548";
reg = <0x77>;
@@ -286,6 +329,14 @@ wm8962: codec@1a {
SPKVDD1-supply = <®_audio_pwr>;
SPKVDD2-supply = <®_audio_pwr>;
};
+
+ ptn5150: tcpc@3d {
+ compatible = "nxp,ptn5150";
+ reg = <0x3d>;
+ interrupt-parent = <&pcal6408_i2c3_u172>;
+ interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
+ status = "disabled";
+ };
};
i2c@5 {
@@ -680,6 +731,12 @@ IMX94_PAD_GPIO_IO47__SAI3_TX_DATA0 0x31e
>;
};
+ pinctrl_typec: typecgrp {
+ fsl,pins = <
+ IMX94_PAD_GPIO_IO44__GPIO3_IO12 0x30e
+ >;
+ };
+
pinctrl_uart1: uart1grp {
fsl,pins = <
IMX94_PAD_UART1_TXD__LPUART1_TX 0x31e
@@ -821,6 +878,49 @@ IMX94_PAD_XSPI1_DQS__XSPI1_A_DQS 0x3fe
};
};
+&usb2 {
+ dr_mode = "otg";
+ disable-over-current;
+ adp-disable;
+ hnp-disable;
+ srp-disable;
+ samsung,picophy-dc-vol-level-adjust = <10>;
+ status = "okay";
+};
+
+&usb3 {
+ dr_mode = "otg";
+ adp-disable;
+ hnp-disable;
+ srp-disable;
+ usb-role-switch;
+ snps,dis-u1-entry-quirk;
+ snps,dis-u2-entry-quirk;
+ status = "okay";
+
+ port {
+ usb3_data_hs: endpoint {
+ remote-endpoint = <&typec_con_hs>;
+ };
+ };
+};
+
+&usb3_phy {
+ fsl,phy-pcs-tx-deemph-3p5db-attenuation-db = <17>;
+ fsl,phy-pcs-tx-swing-full-percent = <100>;
+ fsl,phy-tx-preemp-amp-tune-microamp = <600>;
+ fsl,phy-tx-vboost-level-microvolt = <1156>;
+ fsl,phy-tx-vref-tune-percent = <100>;
+ orientation-switch;
+ status = "okay";
+
+ port {
+ usb3_data_ss: endpoint {
+ remote-endpoint = <&typec_con_ss>;
+ };
+ };
+};
+
&usdhc1 {
pinctrl-0 = <&pinctrl_usdhc1>;
pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
--
2.34.1