[PATCH v3 3/9] arm64: dts: exynos: ExynosAutov920: add USB and USB-phy nodes
Pritam Manohar Sutar
pritam.sutar at samsung.com
Thu Jun 12 22:56:07 PDT 2025
Add USB controller and USB PHY controller nodes for this SoC.
The USB controller has following features:
* Dual Role Device (DRD) controller
* DWC3 compatible
* Supports USB 3.0 host and USB 3.0 device interfaces but phy
controller capability is limited to USB 2.0.
* Supports full-speed (12 Mbps) and high-speed (480 Mbps) modes with
USB device 2.0 interface
* Supports on-chip USB PHY transceiver
* Supports up to 16 bi-directional endpoints (that includes control
endpoint 0)
* Complies with xHCI 1.1 specification
Signed-off-by: Pritam Manohar Sutar <pritam.sutar at samsung.com>
---
.../boot/dts/exynos/exynosautov920-sadk.dts | 37 ++++++
.../arm64/boot/dts/exynos/exynosautov920.dtsi | 108 ++++++++++++++++++
2 files changed, 145 insertions(+)
diff --git a/arch/arm64/boot/dts/exynos/exynosautov920-sadk.dts b/arch/arm64/boot/dts/exynos/exynosautov920-sadk.dts
index a397f068ed53..984e899a2ebf 100644
--- a/arch/arm64/boot/dts/exynos/exynosautov920-sadk.dts
+++ b/arch/arm64/boot/dts/exynos/exynosautov920-sadk.dts
@@ -86,3 +86,40 @@ &usi_0 {
&xtcxo {
clock-frequency = <38400000>;
};
+
+/* usb */
+&usbdrd20_phy0 {
+ status = "okay";
+};
+
+&usbdrd20_dwc3_0 {
+ dr_mode = "peripheral";
+};
+
+&usbdrd20_0 {
+ status = "okay";
+};
+
+&usbdrd20_phy1 {
+ status = "okay";
+};
+
+&usbdrd20_dwc3_1 {
+ dr_mode = "peripheral";
+};
+
+&usbdrd20_1 {
+ status = "okay";
+};
+
+&usbdrd20_phy2 {
+ status = "okay";
+};
+
+&usbdrd20_dwc3_2 {
+ dr_mode = "peripheral";
+};
+
+&usbdrd20_2 {
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/exynos/exynosautov920.dtsi b/arch/arm64/boot/dts/exynos/exynosautov920.dtsi
index 2cb8041c8a9f..b1a9d1da47f6 100644
--- a/arch/arm64/boot/dts/exynos/exynosautov920.dtsi
+++ b/arch/arm64/boot/dts/exynos/exynosautov920.dtsi
@@ -1048,6 +1048,114 @@ pinctrl_hsi1: pinctrl at 16450000 {
interrupts = <GIC_SPI 456 IRQ_TYPE_LEVEL_HIGH>;
};
+ usbdrd20_phy0: phy at 16500000 {
+ compatible = "samsung,exynosautov920-usbdrd-phy";
+ reg = <0x16500000 0x0200>;
+ clocks = <&cmu_hsi1 CLK_MOUT_HSI1_NOC_USER>,
+ <&cmu_hsi1 CLK_MOUT_HSI1_USBDRD>;
+ clock-names = "phy", "ref";
+ #phy-cells = <1>;
+ samsung,pmu-syscon = <&pmu_system_controller>;
+ status = "disabled";
+ };
+
+ usbdrd20_phy1: phy at 16510000 {
+ compatible = "samsung,exynosautov920-usbdrd-phy";
+ reg = <0x16510000 0x0200>;
+ clocks = <&cmu_hsi1 CLK_MOUT_HSI1_NOC_USER>,
+ <&cmu_hsi1 CLK_MOUT_HSI1_USBDRD>;
+ clock-names = "phy", "ref";
+ #phy-cells = <1>;
+ samsung,pmu-syscon = <&pmu_system_controller>;
+ status = "disabled";
+ };
+
+ usbdrd20_phy2: phy at 16520000 {
+ compatible = "samsung,exynosautov920-usbdrd-phy";
+ reg = <0x16520000 0x0200>;
+ clocks = <&cmu_hsi1 CLK_MOUT_HSI1_NOC_USER>,
+ <&cmu_hsi1 CLK_MOUT_HSI1_USBDRD>;
+ clock-names = "phy", "ref";
+ #phy-cells = <1>;
+ samsung,pmu-syscon = <&pmu_system_controller>;
+ status = "disabled";
+ };
+
+ usbdrd20_0: usb at 16700000 {
+ compatible = "samsung,exynosautov920-dwusb3";
+ ranges = <0x0 0x16700000 0x10000>;
+ clocks = <&cmu_hsi1 CLK_MOUT_HSI1_USBDRD>,
+ <&cmu_hsi1 CLK_MOUT_HSI1_USBDRD>;
+ clock-names = "ref", "susp_clk";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ status = "disabled";
+
+ usbdrd20_dwc3_0: usb at 0 {
+ compatible = "snps,dwc3";
+ reg = <0x0 0x10000>;
+ clocks = <&cmu_hsi1 CLK_MOUT_HSI1_USBDRD>,
+ <&cmu_hsi1 CLK_MOUT_HSI1_USBDRD>;
+ clock-names = "ref", "susp_clk";
+ interrupts = <GIC_SPI 479 IRQ_TYPE_LEVEL_HIGH>;
+ phys = <&usbdrd20_phy0 0>;
+ phy-names = "usb2-phy";
+ snps,has-lpm-erratum;
+ snps,dis_u2_susphy_quirk;
+ snps,dis_u3_susphy_quirk;
+ };
+ };
+
+ usbdrd20_1: usb at 16800000 {
+ compatible = "samsung,exynosautov920-dwusb3";
+ ranges = <0x0 0x16800000 0x10000>;
+ clocks = <&cmu_hsi1 CLK_MOUT_HSI1_USBDRD>,
+ <&cmu_hsi1 CLK_MOUT_HSI1_USBDRD>;
+ clock-names = "ref", "susp_clk";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ status = "disabled";
+
+ usbdrd20_dwc3_1: usb at 0 {
+ compatible = "snps,dwc3";
+ reg = <0x0 0x10000>;
+ clocks = <&cmu_hsi1 CLK_MOUT_HSI1_USBDRD>,
+ <&cmu_hsi1 CLK_MOUT_HSI1_USBDRD>;
+ clock-names = "ref", "susp_clk";
+ interrupts = <GIC_SPI 481 IRQ_TYPE_LEVEL_HIGH>;
+ phys = <&usbdrd20_phy1 0>;
+ phy-names = "usb2-phy";
+ snps,has-lpm-erratum;
+ snps,dis_u2_susphy_quirk;
+ snps,dis_u3_susphy_quirk;
+ };
+ };
+
+ usbdrd20_2: usb at 16900000 {
+ compatible = "samsung,exynosautov920-dwusb3";
+ ranges = <0x0 0x16900000 0x10000>;
+ clocks = <&cmu_hsi1 CLK_MOUT_HSI1_USBDRD>,
+ <&cmu_hsi1 CLK_MOUT_HSI1_USBDRD>;
+ clock-names = "ref", "susp_clk";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ status = "disabled";
+
+ usbdrd20_dwc3_2: usb at 0 {
+ compatible = "snps,dwc3";
+ reg = <0x0 0x10000>;
+ clocks = <&cmu_hsi1 CLK_MOUT_HSI1_USBDRD>,
+ <&cmu_hsi1 CLK_MOUT_HSI1_USBDRD>;
+ clock-names = "ref", "susp_clk";
+ interrupts = <GIC_SPI 483 IRQ_TYPE_LEVEL_HIGH>;
+ phys = <&usbdrd20_phy2 0>;
+ phy-names = "usb2-phy";
+ snps,has-lpm-erratum;
+ snps,dis_u2_susphy_quirk;
+ snps,dis_u3_susphy_quirk;
+ };
+ };
+
pinctrl_hsi2: pinctrl at 16c10000 {
compatible = "samsung,exynosautov920-pinctrl";
reg = <0x16c10000 0x10000>;
--
2.34.1
More information about the linux-arm-kernel
mailing list