diff options
author | Peter Chen <peter.chen@nxp.com> | 2020-07-15 15:14:02 +0800 |
---|---|---|
committer | Dong Aisheng <aisheng.dong@nxp.com> | 2021-11-02 16:52:40 +0800 |
commit | 613381a2387be1ce148d15bb376ea9717f1e0ea1 (patch) | |
tree | 034ce9aa4834cc2ed7ae4766f7552548b7d463dd /arch/arm64/boot/dts | |
parent | a6761e17c999bd6ff84e4b3c03c22bbfd2abd395 (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.dtsi | 49 | ||||
-rw-r--r-- | arch/arm64/boot/dts/freescale/imx8qm-mek-domu.dts | 5 | ||||
-rw-r--r-- | arch/arm64/boot/dts/freescale/imx8qm-mek-inmate.dts | 4 | ||||
-rwxr-xr-x | arch/arm64/boot/dts/freescale/imx8qm-mek.dts | 20 | ||||
-rw-r--r-- | arch/arm64/boot/dts/freescale/imx8qm-ss-conn.dtsi | 4 | ||||
-rw-r--r-- | arch/arm64/boot/dts/freescale/imx8qm-xen.dtsi | 4 | ||||
-rwxr-xr-x | arch/arm64/boot/dts/freescale/imx8qxp-mek-rpmsg.dts | 6 | ||||
-rwxr-xr-x | arch/arm64/boot/dts/freescale/imx8qxp-mek.dts | 20 |
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 { |