arm64: dts: imx8qm-mek: add usb 3.0 and related type C nodes
authorFrank Li <Frank.Li@nxp.com>
Mon, 1 Jul 2024 15:03:34 +0000 (11:03 -0400)
committerShawn Guo <shawnguo@kernel.org>
Wed, 4 Sep 2024 09:36:23 +0000 (17:36 +0800)
Enable usb3.0 and related usb type C nodes.

Signed-off-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm64/boot/dts/freescale/imx8qm-mek.dts

index ecc7ac5ece4d774924bcb65ac0330d6ce72e811e..62203eed6a6cb144dde3cfc59173f74e8f068ccb 100644 (file)
@@ -6,6 +6,7 @@
 
 /dts-v1/;
 
+#include <dt-bindings/usb/pd.h>
 #include "imx8qm.dtsi"
 
 / {
                default-brightness-level = <80>;
        };
 
+       mux-controller {
+               compatible = "nxp,cbdtu02043", "gpio-sbu-mux";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_typec_mux>;
+               select-gpios = <&lsio_gpio4 6 GPIO_ACTIVE_LOW>;
+               enable-gpios = <&lsio_gpio4 19 GPIO_ACTIVE_HIGH>;
+               orientation-switch;
+
+               port {
+                       usb3_data_ss: endpoint {
+                               remote-endpoint = <&typec_con_ss>;
+                       };
+               };
+       };
+
        reg_usdhc2_vmmc: usdhc2-vmmc {
                compatible = "regulator-fixed";
                regulator-name = "SD1_SPWR";
                compatible = "st,l3g4200d-gyro";
                reg = <0x69>;
        };
+
+       ptn5110: tcpc@51 {
+               compatible = "nxp,ptn5110", "tcpci";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_typec>;
+               reg = <0x51>;
+               interrupt-parent = <&lsio_gpio4>;
+               interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
+               status = "okay";
+
+               usb_con1: connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C";
+                       power-role = "source";
+                       data-role = "dual";
+                       source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       typec_dr_sw: endpoint {
+                                               remote-endpoint = <&usb3_drd_sw>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                                       typec_con_ss: endpoint {
+                                               remote-endpoint = <&usb3_data_ss>;
+                                       };
+                               };
+                       };
+               };
+       };
 };
 
 &i2c1 {
        status = "okay";
 };
 
+&usb3_phy {
+       status = "okay";
+};
+
+&usbotg3 {
+       status = "okay";
+};
+
+&usbotg3_cdns3 {
+       dr_mode = "otg";
+       usb-role-switch;
+       status = "okay";
+
+       port {
+               usb3_drd_sw: endpoint {
+                       remote-endpoint = <&typec_dr_sw>;
+               };
+       };
+};
+
 &sai0 {
        #sound-dai-cells = <0>;
        assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>,
                >;
        };
 
+       pinctrl_typec: typecgrp {
+               fsl,pins = <
+                       IMX8QM_QSPI1A_DATA0_LSIO_GPIO4_IO26             0x00000021
+               >;
+       };
+
+       pinctrl_typec_mux: typecmuxgrp {
+               fsl,pins = <
+                       IMX8QM_QSPI1A_SS0_B_LSIO_GPIO4_IO19             0x60
+                       IMX8QM_USB_SS3_TC3_LSIO_GPIO4_IO06              0x60
+               >;
+       };
+
        pinctrl_usdhc1: usdhc1grp {
                fsl,pins = <
                        IMX8QM_EMMC0_CLK_CONN_EMMC0_CLK                         0x06000041