arm64: dts: imx8mp-evk: add typec node
authorLi Jun <jun.li@nxp.com>
Mon, 3 Aug 2020 02:20:52 +0000 (10:20 +0800)
committerDong Aisheng <aisheng.dong@nxp.com>
Mon, 14 Dec 2020 03:23:02 +0000 (11:23 +0800)
The first port of USB with type-C connector, which has dual data
role and dual power role.

Signed-off-by: Li Jun <jun.li@nxp.com>
arch/arm64/boot/dts/freescale/imx8mp-evk.dts

index 21b0b3f..6a6f649 100644 (file)
@@ -5,6 +5,7 @@
 
 /dts-v1/;
 
+#include <dt-bindings/usb/pd.h>
 #include "imx8mp.dtsi"
 
 / {
                                    100>;
                default-brightness-level = <80>;
        };
+
+       cbtl04gp {
+               compatible = "nxp,cbtl04gp";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_typec_mux>;
+               switch-gpios = <&gpio4 20 GPIO_ACTIVE_LOW>;
+               orientation-switch;
+
+               port {
+                       usb3_data_ss: endpoint {
+                               remote-endpoint = <&typec_con_ss>;
+                       };
+               };
+       };
 };
 
 &A53_0 {
                        };
                };
        };
+
+       ptn5110: tcpc@50 {
+               compatible = "nxp,ptn5110";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_typec>;
+               reg = <0x50>;
+               interrupt-parent = <&gpio4>;
+               interrupts = <19 8>;
+
+               port {
+                       typec_dr_sw: endpoint {
+                               remote-endpoint = <&usb3_drd_sw>;
+                       };
+               };
+
+               usb_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 = <15000000>;
+                       self-powered;
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@1 {
+                                       reg = <1>;
+                                       typec_con_ss: endpoint {
+                                               remote-endpoint = <&usb3_data_ss>;
+                                       };
+                               };
+                       };
+               };
+       };
 };
 
 &i2c3 {
        status = "okay";
 };
 
+&usb3_phy0 {
+       status = "okay";
+};
+
+&usb3_0 {
+       status = "okay";
+};
+
+&usb_dwc3_0 {
+       dr_mode = "otg";
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+       usb-role-switch;
+       status = "okay";
+
+       port {
+               usb3_drd_sw: endpoint {
+                       remote-endpoint = <&typec_dr_sw>;
+               };
+       };
+};
+
 &usb3_phy1 {
        status = "okay";
 };
                >;
        };
 
+       pinctrl_typec: typec1grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SAI1_TXD7__GPIO4_IO19      0x1c4
+               >;
+       };
+
+       pinctrl_typec_mux: typec1muxgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SAI1_MCLK__GPIO4_IO20      0x16
+               >;
+       };
+
        pinctrl_uart2: uart2grp {
                fsl,pins = <
                        MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX    0x49