The board has two Type-C ports: one USB 2.0 and one USB 3.0. Enable the
usb2 and usb3 nodes and add the corresponding Type-C connector nodes.

Signed-off-by: Elena Popa <[email protected]>
---
 arch/arm/dts/imx95-navq.dts | 138 ++++++++++++++++++++++++++++++++++++
 1 file changed, 138 insertions(+)

diff --git a/arch/arm/dts/imx95-navq.dts b/arch/arm/dts/imx95-navq.dts
index d140664c211..3926021490a 100644
--- a/arch/arm/dts/imx95-navq.dts
+++ b/arch/arm/dts/imx95-navq.dts
@@ -5,6 +5,7 @@
 
 /dts-v1/;
 
+#include <dt-bindings/usb/pd.h>
 #include "imx95.dtsi"
 
 #define FALLING_EDGE                   1
@@ -115,6 +116,83 @@
                reg = <0x23>;
                vcc-supply = <&reg_3p3v>;
        };
+
+       ptn5110_usb3: tcpc@50 {
+               compatible = "nxp,ptn5110", "tcpci";
+               reg = <0x50>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_typec_int>;
+               interrupt-parent = <&gpio4>;
+               interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
+
+               typec3_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, 3000, PDO_FIXED_USB_COMM)
+                                    PDO_VAR(5000, 20000, 3000)>;
+                       op-sink-microwatt = <0>;
+                       self-powered;
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       typec3_con_hs: endpoint {
+                                               remote-endpoint = 
<&usb3_data_hs>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       typec3_con_ss: endpoint {
+                                               remote-endpoint = 
<&usb3_data_ss>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       ptn5110_usb2: tcpc@51 {
+               compatible = "nxp,ptn5110", "tcpci";
+               reg = <0x51>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_typec_int>;
+               interrupt-parent = <&gpio4>;
+               interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
+
+               typec2_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>;
+
+                                       typec2_con_hs: endpoint {
+                                               remote-endpoint = 
<&usb2_drd_sw>;
+                                       };
+                               };
+                       };
+               };
+       };
 };
 
 &lpuart1 {
@@ -182,6 +260,12 @@
                >;
        };
 
+       pinctrl_typec_int: typecintgrp {
+               fsl,pins = <
+                       IMX95_PAD_ENET2_RD1__GPIO4_IO_BIT25                     
0x31e
+               >;
+       };
+
        pinctrl_uart1: uart1grp {
                fsl,pins = <
                        IMX95_PAD_UART1_RXD__AONMIX_TOP_LPUART1_RX              
0x31e
@@ -388,6 +472,60 @@
        };
 };
 
+&usb2 {
+       dr_mode = "otg";
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+       usb-role-switch;
+       disable-over-current;
+       status = "okay";
+
+       port {
+               usb2_drd_sw: endpoint {
+                       remote-endpoint = <&typec2_con_hs>;
+               };
+       };
+};
+
+&usb3 {
+       status = "okay";
+};
+
+&usb3_dwc3 {
+       dr_mode = "otg";
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+       usb-role-switch;
+       role-switch-default-mode = "peripheral";
+       snps,dis-u1-entry-quirk;
+       snps,dis-u2-entry-quirk;
+       status = "okay";
+
+       port {
+               usb3_data_hs: endpoint {
+                       remote-endpoint = <&typec3_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 = <&typec3_con_ss>;
+               };
+       };
+};
+
 &usdhc1 {
        pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
        pinctrl-0 = <&pinctrl_usdhc1>;
-- 
2.43.0

Reply via email to