summaryrefslogtreecommitdiff
path: root/arch/arm64/boot/dts
diff options
context:
space:
mode:
authorPeter Chen <peter.chen@nxp.com>2020-07-15 15:14:02 +0800
committerDong Aisheng <aisheng.dong@nxp.com>2021-11-02 16:52:40 +0800
commit613381a2387be1ce148d15bb376ea9717f1e0ea1 (patch)
tree034ce9aa4834cc2ed7ae4766f7552548b7d463dd /arch/arm64/boot/dts
parenta6761e17c999bd6ff84e4b3c03c22bbfd2abd395 (diff)
arm64: dts: imx8-ss-conn: apply changes for upstream Cadence USB3 driver
Change board dts as well to avoid bisect break, the main changes are as belows: - Add iommus phandle for core device - delete core device node for xen dts - Support mek board by adding Type-C support Reviewed-by: Jun Li <jun.li@nxp.com> Signed-off-by: Peter Chen <peter.chen@nxp.com>
Diffstat (limited to 'arch/arm64/boot/dts')
-rw-r--r--arch/arm64/boot/dts/freescale/imx8-ss-conn.dtsi49
-rw-r--r--arch/arm64/boot/dts/freescale/imx8qm-mek-domu.dts5
-rw-r--r--arch/arm64/boot/dts/freescale/imx8qm-mek-inmate.dts4
-rwxr-xr-xarch/arm64/boot/dts/freescale/imx8qm-mek.dts20
-rw-r--r--arch/arm64/boot/dts/freescale/imx8qm-ss-conn.dtsi4
-rw-r--r--arch/arm64/boot/dts/freescale/imx8qm-xen.dtsi4
-rwxr-xr-xarch/arm64/boot/dts/freescale/imx8qxp-mek-rpmsg.dts6
-rwxr-xr-xarch/arm64/boot/dts/freescale/imx8qxp-mek.dts20
8 files changed, 94 insertions, 18 deletions
diff --git a/arch/arm64/boot/dts/freescale/imx8-ss-conn.dtsi b/arch/arm64/boot/dts/freescale/imx8-ss-conn.dtsi
index 23f536cab8b1..997fe00d91f9 100644
--- a/arch/arm64/boot/dts/freescale/imx8-ss-conn.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8-ss-conn.dtsi
@@ -165,23 +165,22 @@ conn_subsys: bus@5b000000 {
status = "disabled";
};
- usb3phynop1: usb3-phy {
- compatible = "usb-nop-xceiv";
+ usb3_phy: usb-phy@5b160000 {
+ compatible = "nxp,salvo-phy";
+ reg = <0x5B160000 0x40000>;
clocks = <&usb3_lpcg 4>;
- clock-names = "main_clk";
+ clock-names = "salvo_phy_clk";
power-domains = <&pd IMX_SC_R_USB_2_PHY>;
+ #phy-cells = <0>;
status = "disabled";
- };
+ };
- usbotg3: usb3@5b110000 {
- compatible = "Cadence,usb3";
- reg = <0x5B110000 0x10000>,
- <0x5B130000 0x10000>,
- <0x5B140000 0x10000>,
- <0x5B160000 0x40000>,
- <0x5B120000 0x10000>;
- interrupt-parent = <&gic>;
- interrupts = <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>;
+ usbotg3: usb@5b110000 {
+ compatible = "fsl,imx8qm-usb3";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+ reg = <0x5B110000 0x10000>;
clocks = <&usb3_lpcg 1>,
<&usb3_lpcg 0>,
<&usb3_lpcg 5>,
@@ -189,9 +188,31 @@ conn_subsys: bus@5b000000 {
<&usb3_lpcg 3>;
clock-names = "usb3_lpm_clk", "usb3_bus_clk", "usb3_aclk",
"usb3_ipg_clk", "usb3_core_pclk";
+ assigned-clocks = <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_PER>,
+ <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MISC>,
+ <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>;
+ assigned-clock-rates = <125000000>, <12000000>, <250000000>;
power-domains = <&pd IMX_SC_R_USB_2>;
- cdns3,usbphy = <&usb3phynop1>;
status = "disabled";
+
+ usbotg3_cdns3: usb@5b120000 {
+ compatible = "cdns,usb3";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ interrupt-parent = <&gic>;
+ interrupts = <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "host", "peripheral", "otg", "wakeup";
+ reg = <0x5B130000 0x10000>, /* memory area for HOST registers */
+ <0x5B140000 0x10000>, /* memory area for DEVICE registers */
+ <0x5B120000 0x10000>; /* memory area for OTG/DRD registers */
+ reg-names = "xhci", "dev", "otg";
+ phys = <&usb3_phy>;
+ phy-names = "cdns3,usb3-phy";
+ status = "disabled";
+ };
};
/* LPCG clocks */
diff --git a/arch/arm64/boot/dts/freescale/imx8qm-mek-domu.dts b/arch/arm64/boot/dts/freescale/imx8qm-mek-domu.dts
index f24b204615f2..476d1a04dbfc 100644
--- a/arch/arm64/boot/dts/freescale/imx8qm-mek-domu.dts
+++ b/arch/arm64/boot/dts/freescale/imx8qm-mek-domu.dts
@@ -469,3 +469,8 @@
/delete-property/ iommus;
status = "disabled";
};
+
+&usbotg3_cdns3 {
+ /delete-property/ iommus;
+ status = "disabled";
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8qm-mek-inmate.dts b/arch/arm64/boot/dts/freescale/imx8qm-mek-inmate.dts
index 3567d67e4b58..edf8a532f69e 100644
--- a/arch/arm64/boot/dts/freescale/imx8qm-mek-inmate.dts
+++ b/arch/arm64/boot/dts/freescale/imx8qm-mek-inmate.dts
@@ -231,6 +231,10 @@
/delete-property/ iommus;
};
+&usbotg3_cdns3 {
+ /delete-property/ iommus;
+};
+
&iomuxc {
pinctrl_lpuart2: lpuart2grp {
fsl,pins = <
diff --git a/arch/arm64/boot/dts/freescale/imx8qm-mek.dts b/arch/arm64/boot/dts/freescale/imx8qm-mek.dts
index ae9b7e355502..a3d238a13286 100755
--- a/arch/arm64/boot/dts/freescale/imx8qm-mek.dts
+++ b/arch/arm64/boot/dts/freescale/imx8qm-mek.dts
@@ -912,14 +912,24 @@
status = "okay";
};
-&usb3phynop1 {
+&usb3_phy {
status = "okay";
};
&usbotg3 {
+ status = "okay";
+};
+
+&usbotg3_cdns3 {
dr_mode = "otg";
- extcon = <&ptn5110>;
+ usb-role-switch;
status = "okay";
+
+ port {
+ usb3_drd_sw: endpoint {
+ remote-endpoint = <&typec_dr_sw>;
+ };
+ };
};
&usdhc1 {
@@ -1000,6 +1010,12 @@
interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
status = "okay";
+ port {
+ typec_dr_sw: endpoint {
+ remote-endpoint = <&usb3_drd_sw>;
+ };
+ };
+
usb_con1: connector {
compatible = "usb-c-connector";
label = "USB-C";
diff --git a/arch/arm64/boot/dts/freescale/imx8qm-ss-conn.dtsi b/arch/arm64/boot/dts/freescale/imx8qm-ss-conn.dtsi
index 231c158dc045..4b06fc0be608 100644
--- a/arch/arm64/boot/dts/freescale/imx8qm-ss-conn.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8qm-ss-conn.dtsi
@@ -32,3 +32,7 @@
&usbotg3 {
iommus = <&smmu 0x4 0x7f80>;
};
+
+&usbotg3_cdns3 {
+ iommus = <&smmu 0x4 0x7f80>;
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8qm-xen.dtsi b/arch/arm64/boot/dts/freescale/imx8qm-xen.dtsi
index 96656584b53b..46be6f9dbd4b 100644
--- a/arch/arm64/boot/dts/freescale/imx8qm-xen.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8qm-xen.dtsi
@@ -35,6 +35,10 @@
/delete-property/ iommus;
};
+&usbotg3_cdns3 {
+ /delete-property/ iommus;
+};
+
&smmu {
/* xen only supports legacy bindings for now */
#iommu-cells = <0>;
diff --git a/arch/arm64/boot/dts/freescale/imx8qxp-mek-rpmsg.dts b/arch/arm64/boot/dts/freescale/imx8qxp-mek-rpmsg.dts
index 3e3ba0ab5b7b..36af4064b928 100755
--- a/arch/arm64/boot/dts/freescale/imx8qxp-mek-rpmsg.dts
+++ b/arch/arm64/boot/dts/freescale/imx8qxp-mek-rpmsg.dts
@@ -26,6 +26,12 @@
interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
status = "okay";
+ port {
+ typec_dr_sw: endpoint {
+ remote-endpoint = <&usb3_drd_sw>;
+ };
+ };
+
usb_con1: connector {
compatible = "usb-c-connector";
label = "USB-C";
diff --git a/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts b/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts
index 0a90bfa55c64..be18715f336b 100755
--- a/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts
+++ b/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts
@@ -818,6 +818,12 @@
interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
status = "okay";
+ port {
+ typec_dr_sw: endpoint {
+ remote-endpoint = <&usb3_drd_sw>;
+ };
+ };
+
usb_con1: connector {
compatible = "usb-c-connector";
label = "USB-C";
@@ -936,14 +942,24 @@
status = "okay";
};
-&usb3phynop1 {
+&usb3_phy {
status = "okay";
};
&usbotg3 {
+ status = "okay";
+};
+
+&usbotg3_cdns3 {
dr_mode = "otg";
- extcon = <&ptn5110>;
+ usb-role-switch;
status = "okay";
+
+ port {
+ usb3_drd_sw: endpoint {
+ remote-endpoint = <&typec_dr_sw>;
+ };
+ };
};
&usdhc1 {