Update the USB 3.1 DRD controller and USB31DRD phy nodes to support
SS combo phy for this soc.
The USB 3.1 DRD controller has the following features:
* DWC3 compatible
* compliant with both USB device 3.1 and USB device 2.0 standards
* compliant with USB host 3.1 and USB host 2.0 standards
* supports USB device 3.1 and USB device 2.0 interfaces
* supports USB host 3.1 and USB host 2.0 interfaces
* full-speed (12 Mbps) and high-speed (480 Mbps) modes with USB device
2.0 interface
* super-speed (5 Gbps) mode with USB device 3.1 Gen1 interface
* super-speed plus (10 Gbps) mode with USB device 3.1 Gen2 interface
* single USB port which can be used for USB 3.1 or USB 2.0
* on-chip USB PHY transceiver
* supports up to 16 bi-directional endpoints
* compliant with xHCI 1.1 specification
USB3.1 SSP+(10Gbps) is supported in this commit and SS phy in combo
phy only supports PIPE3 interface and it is added in index 0 of SS phy.
UTMI+ and PIPE3 PHY interfaces are specified in "phys" property,
UTMI+ (index 0 HS phy) and PIPE3 (index 0 SS phy).
Signed-off-by: Pritam Manohar Sutar <pritam.sutar@samsung.com>
---
.../arm64/boot/dts/exynos/exynosautov920-sadk.dts | 4 ++++
arch/arm64/boot/dts/exynos/exynosautov920.dtsi | 15 +++++++++++++--
2 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/exynos/exynosautov920-sadk.dts b/arch/arm64/boot/dts/exynos/exynosautov920-sadk.dts
index a21386bd9af3..40588f7c9998 100644
--- a/arch/arm64/boot/dts/exynos/exynosautov920-sadk.dts
+++ b/arch/arm64/boot/dts/exynos/exynosautov920-sadk.dts
@@ -88,6 +88,10 @@ &xtcxo {
};
/* usb */
+&usbdrd31_ssphy {
+ status = "okay";
+};
+
&usbdrd31_hsphy {
status = "okay";
};
diff --git a/arch/arm64/boot/dts/exynos/exynosautov920.dtsi b/arch/arm64/boot/dts/exynos/exynosautov920.dtsi
index 4efc005cae80..5ee7fad346b9 100644
--- a/arch/arm64/boot/dts/exynos/exynosautov920.dtsi
+++ b/arch/arm64/boot/dts/exynos/exynosautov920.dtsi
@@ -1048,6 +1048,17 @@ pinctrl_hsi1: pinctrl@16450000 {
interrupts = <GIC_SPI 456 IRQ_TYPE_LEVEL_HIGH>;
};
+ usbdrd31_ssphy: phy@16480000 {
+ compatible = "samsung,exynosautov920-usb31drd-ssphy";
+ reg = <0x16480000 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";
+ };
+
usbdrd31_hsphy: phy@16490000 {
compatible = "samsung,exynosautov920-usbdrd-hsphy";
reg = <0x16490000 0x0200>;
@@ -1109,8 +1120,8 @@ usbdrd31_dwc3: usb@0 {
<&cmu_hsi1 CLK_MOUT_HSI1_USBDRD>;
clock-names = "ref", "susp_clk";
interrupts = <GIC_SPI 491 IRQ_TYPE_LEVEL_HIGH>;
- phys = <&usbdrd31_hsphy 0>;
- phy-names = "usb2-phy";
+ phys = <&usbdrd31_hsphy 0>, <&usbdrd31_ssphy 0>;
+ phy-names = "usb2-phy", "usb3-phy";
snps,has-lpm-erratum;
snps,dis_u2_susphy_quirk;
snps,dis_u3_susphy_quirk;
--
2.34.1
On 13/06/2025 07:56, Pritam Manohar Sutar wrote: > Update the USB 3.1 DRD controller and USB31DRD phy nodes to support > SS combo phy for this soc. > > The USB 3.1 DRD controller has the following features: > * DWC3 compatible > * compliant with both USB device 3.1 and USB device 2.0 standards > * compliant with USB host 3.1 and USB host 2.0 standards > * supports USB device 3.1 and USB device 2.0 interfaces > * supports USB host 3.1 and USB host 2.0 interfaces > * full-speed (12 Mbps) and high-speed (480 Mbps) modes with USB device > 2.0 interface > * super-speed (5 Gbps) mode with USB device 3.1 Gen1 interface > * super-speed plus (10 Gbps) mode with USB device 3.1 Gen2 interface > * single USB port which can be used for USB 3.1 or USB 2.0 > * on-chip USB PHY transceiver > * supports up to 16 bi-directional endpoints > * compliant with xHCI 1.1 specification > > USB3.1 SSP+(10Gbps) is supported in this commit and SS phy in combo > phy only supports PIPE3 interface and it is added in index 0 of SS phy. > UTMI+ and PIPE3 PHY interfaces are specified in "phys" property, > UTMI+ (index 0 HS phy) and PIPE3 (index 0 SS phy). > > Signed-off-by: Pritam Manohar Sutar <pritam.sutar@samsung.com> > --- > .../arm64/boot/dts/exynos/exynosautov920-sadk.dts | 4 ++++ > arch/arm64/boot/dts/exynos/exynosautov920.dtsi | 15 +++++++++++++-- > 2 files changed, 17 insertions(+), 2 deletions(-) > > diff --git a/arch/arm64/boot/dts/exynos/exynosautov920-sadk.dts b/arch/arm64/boot/dts/exynos/exynosautov920-sadk.dts > index a21386bd9af3..40588f7c9998 100644 > --- a/arch/arm64/boot/dts/exynos/exynosautov920-sadk.dts > +++ b/arch/arm64/boot/dts/exynos/exynosautov920-sadk.dts > @@ -88,6 +88,10 @@ &xtcxo { > }; > > /* usb */ > +&usbdrd31_ssphy { > + status = "okay"; > +}; > + > &usbdrd31_hsphy { > status = "okay"; > }; > diff --git a/arch/arm64/boot/dts/exynos/exynosautov920.dtsi b/arch/arm64/boot/dts/exynos/exynosautov920.dtsi > index 4efc005cae80..5ee7fad346b9 100644 > --- a/arch/arm64/boot/dts/exynos/exynosautov920.dtsi > +++ b/arch/arm64/boot/dts/exynos/exynosautov920.dtsi > @@ -1048,6 +1048,17 @@ pinctrl_hsi1: pinctrl@16450000 { > interrupts = <GIC_SPI 456 IRQ_TYPE_LEVEL_HIGH>; > }; > > + usbdrd31_ssphy: phy@16480000 { > + compatible = "samsung,exynosautov920-usb31drd-ssphy"; > + reg = <0x16480000 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"; > + }; > + > usbdrd31_hsphy: phy@16490000 { > compatible = "samsung,exynosautov920-usbdrd-hsphy"; > reg = <0x16490000 0x0200>; > @@ -1109,8 +1120,8 @@ usbdrd31_dwc3: usb@0 { > <&cmu_hsi1 CLK_MOUT_HSI1_USBDRD>; > clock-names = "ref", "susp_clk"; > interrupts = <GIC_SPI 491 IRQ_TYPE_LEVEL_HIGH>; > - phys = <&usbdrd31_hsphy 0>; > - phy-names = "usb2-phy"; > + phys = <&usbdrd31_hsphy 0>, <&usbdrd31_ssphy 0>; > + phy-names = "usb2-phy", "usb3-phy"; > snps,has-lpm-erratum; > snps,dis_u2_susphy_quirk; > snps,dis_u3_susphy_quirk; I think at least patch 6 & 9 should be squashed. Neil
Hi Neil, > -----Original Message----- > From: neil.armstrong@linaro.org <neil.armstrong@linaro.org> > Sent: 13 June 2025 02:42 PM > To: Pritam Manohar Sutar <pritam.sutar@samsung.com>; vkoul@kernel.org; > kishon@kernel.org; robh@kernel.org; krzk+dt@kernel.org; > conor+dt@kernel.org; alim.akhtar@samsung.com; andre.draszik@linaro.org; > peter.griffin@linaro.org; kauschluss@disroot.org; > ivo.ivanov.ivanov1@gmail.com; m.szyprowski@samsung.com; > s.nawrocki@samsung.com > Cc: linux-phy@lists.infradead.org; devicetree@vger.kernel.org; linux- > kernel@vger.kernel.org; linux-arm-kernel@lists.infradead.org; linux- > samsung-soc@vger.kernel.org; rosa.pila@samsung.com; > dev.tailor@samsung.com; faraz.ata@samsung.com; > muhammed.ali@samsung.com; selvarasu.g@samsung.com > Subject: Re: [PATCH v3 9/9] arm64: dts: exynos: ExynosAutov920: add USB > and USB SS combo phy nodes > > On 13/06/2025 07:56, Pritam Manohar Sutar wrote: > > Update the USB 3.1 DRD controller and USB31DRD phy nodes to support SS > > combo phy for this soc. > > > > The USB 3.1 DRD controller has the following features: > > * DWC3 compatible > > * compliant with both USB device 3.1 and USB device 2.0 standards > > * compliant with USB host 3.1 and USB host 2.0 standards > > * supports USB device 3.1 and USB device 2.0 interfaces > > * supports USB host 3.1 and USB host 2.0 interfaces > > * full-speed (12 Mbps) and high-speed (480 Mbps) modes with USB device > > 2.0 interface > > * super-speed (5 Gbps) mode with USB device 3.1 Gen1 interface > > * super-speed plus (10 Gbps) mode with USB device 3.1 Gen2 interface > > * single USB port which can be used for USB 3.1 or USB 2.0 > > * on-chip USB PHY transceiver > > * supports up to 16 bi-directional endpoints > > * compliant with xHCI 1.1 specification > > > > USB3.1 SSP+(10Gbps) is supported in this commit and SS phy in combo > > phy only supports PIPE3 interface and it is added in index 0 of SS phy. > > UTMI+ and PIPE3 PHY interfaces are specified in "phys" property, > > UTMI+ (index 0 HS phy) and PIPE3 (index 0 SS phy). > > > > Signed-off-by: Pritam Manohar Sutar <pritam.sutar@samsung.com> > > --- > > .../arm64/boot/dts/exynos/exynosautov920-sadk.dts | 4 ++++ > > arch/arm64/boot/dts/exynos/exynosautov920.dtsi | 15 > +++++++++++++-- > > 2 files changed, 17 insertions(+), 2 deletions(-) > > > > diff --git a/arch/arm64/boot/dts/exynos/exynosautov920-sadk.dts > > b/arch/arm64/boot/dts/exynos/exynosautov920-sadk.dts > > index a21386bd9af3..40588f7c9998 100644 > > --- a/arch/arm64/boot/dts/exynos/exynosautov920-sadk.dts > > +++ b/arch/arm64/boot/dts/exynos/exynosautov920-sadk.dts > > @@ -88,6 +88,10 @@ &xtcxo { > > }; > > > > /* usb */ > > +&usbdrd31_ssphy { > > + status = "okay"; > > +}; > > + > > &usbdrd31_hsphy { > > status = "okay"; > > }; > > diff --git a/arch/arm64/boot/dts/exynos/exynosautov920.dtsi > > b/arch/arm64/boot/dts/exynos/exynosautov920.dtsi > > index 4efc005cae80..5ee7fad346b9 100644 > > --- a/arch/arm64/boot/dts/exynos/exynosautov920.dtsi > > +++ b/arch/arm64/boot/dts/exynos/exynosautov920.dtsi > > @@ -1048,6 +1048,17 @@ pinctrl_hsi1: pinctrl@16450000 { > > interrupts = <GIC_SPI 456 IRQ_TYPE_LEVEL_HIGH>; > > }; > > > > + usbdrd31_ssphy: phy@16480000 { > > + compatible = "samsung,exynosautov920-usb31drd- > ssphy"; > > + reg = <0x16480000 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"; > > + }; > > + > > usbdrd31_hsphy: phy@16490000 { > > compatible = "samsung,exynosautov920-usbdrd- > hsphy"; > > reg = <0x16490000 0x0200>; > > @@ -1109,8 +1120,8 @@ usbdrd31_dwc3: usb@0 { > > <&cmu_hsi1 > CLK_MOUT_HSI1_USBDRD>; > > clock-names = "ref", "susp_clk"; > > interrupts = <GIC_SPI 491 > IRQ_TYPE_LEVEL_HIGH>; > > - phys = <&usbdrd31_hsphy 0>; > > - phy-names = "usb2-phy"; > > + phys = <&usbdrd31_hsphy 0>, > <&usbdrd31_ssphy 0>; > > + phy-names = "usb2-phy", "usb3-phy"; > > snps,has-lpm-erratum; > > snps,dis_u2_susphy_quirk; > > snps,dis_u3_susphy_quirk; > > I think at least patch 6 & 9 should be squashed. > Patch 6 and 9 are posted to add support for HS and SS phys in combo phy separately. We will squash them in next version of patch-set (v4). > Neil Thank you. Regards, Pritam
On Fri, Jun 13, 2025 at 11:12:26AM GMT, neil.armstrong@linaro.org wrote: > On 13/06/2025 07:56, Pritam Manohar Sutar wrote: > > usbdrd31_hsphy: phy@16490000 { > > compatible = "samsung,exynosautov920-usbdrd-hsphy"; > > reg = <0x16490000 0x0200>; > > @@ -1109,8 +1120,8 @@ usbdrd31_dwc3: usb@0 { > > <&cmu_hsi1 CLK_MOUT_HSI1_USBDRD>; > > clock-names = "ref", "susp_clk"; > > interrupts = <GIC_SPI 491 IRQ_TYPE_LEVEL_HIGH>; > > - phys = <&usbdrd31_hsphy 0>; > > - phy-names = "usb2-phy"; > > + phys = <&usbdrd31_hsphy 0>, <&usbdrd31_ssphy 0>; > > + phy-names = "usb2-phy", "usb3-phy"; > > snps,has-lpm-erratum; > > snps,dis_u2_susphy_quirk; > > snps,dis_u3_susphy_quirk; > > I think at least patch 6 & 9 should be squashed. Yes. Changing lines which were just added is a strong hint, that patchset is incorrectly organized. > > Neil
Hi Krzysztof, > -----Original Message----- > From: Krzysztof Kozlowski <krzk@kernel.org> > Sent: 16 June 2025 01:39 PM > To: Neil Armstrong <neil.armstrong@linaro.org> > Cc: Pritam Manohar Sutar <pritam.sutar@samsung.com>; vkoul@kernel.org; > kishon@kernel.org; robh@kernel.org; krzk+dt@kernel.org; > conor+dt@kernel.org; alim.akhtar@samsung.com; andre.draszik@linaro.org; > peter.griffin@linaro.org; kauschluss@disroot.org; > ivo.ivanov.ivanov1@gmail.com; m.szyprowski@samsung.com; > s.nawrocki@samsung.com; linux-phy@lists.infradead.org; > devicetree@vger.kernel.org; linux-kernel@vger.kernel.org; linux-arm- > kernel@lists.infradead.org; linux-samsung-soc@vger.kernel.org; > rosa.pila@samsung.com; dev.tailor@samsung.com; > faraz.ata@samsung.com; muhammed.ali@samsung.com; > selvarasu.g@samsung.com > Subject: Re: [PATCH v3 9/9] arm64: dts: exynos: ExynosAutov920: add USB > and USB SS combo phy nodes > > On Fri, Jun 13, 2025 at 11:12:26AM GMT, neil.armstrong@linaro.org wrote: > > On 13/06/2025 07:56, Pritam Manohar Sutar wrote: > > > usbdrd31_hsphy: phy@16490000 { > > > compatible = "samsung,exynosautov920-usbdrd- > hsphy"; > > > reg = <0x16490000 0x0200>; > > > @@ -1109,8 +1120,8 @@ usbdrd31_dwc3: usb@0 { > > > <&cmu_hsi1 > CLK_MOUT_HSI1_USBDRD>; > > > clock-names = "ref", "susp_clk"; > > > interrupts = <GIC_SPI 491 > IRQ_TYPE_LEVEL_HIGH>; > > > - phys = <&usbdrd31_hsphy 0>; > > > - phy-names = "usb2-phy"; > > > + phys = <&usbdrd31_hsphy 0>, > <&usbdrd31_ssphy 0>; > > > + phy-names = "usb2-phy", "usb3-phy"; > > > snps,has-lpm-erratum; > > > snps,dis_u2_susphy_quirk; > > > snps,dis_u3_susphy_quirk; > > > > I think at least patch 6 & 9 should be squashed. > > Yes. Changing lines which were just added is a strong hint, that patchset is > incorrectly organized. we will squash these 2 patches in next version of the patch-set (v4). > > > > > Neil Thank you. Regards, Pritam
© 2016 - 2025 Red Hat, Inc.