Devicetree
 help / color / mirror / Atom feed
From: Bjorn Andersson <andersson@kernel.org>
To: Xilin Wu <sophon@radxa.com>
Cc: Konrad Dybcio <konradybcio@kernel.org>,
	Rob Herring <robh@kernel.org>,
	 Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	 linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] arm64: dts: qcom: sc8280xp: Flatten usb controller nodes
Date: Thu, 7 May 2026 09:31:21 -0500	[thread overview]
Message-ID: <afyh9nOoTT4wlzaY@baldur> (raw)
In-Reply-To: <20260507-sc8280xp-flatten-dwc3-v1-1-b18be56bebba@radxa.com>

On Thu, May 07, 2026 at 10:29:24PM +0800, Xilin Wu wrote:
> Flatten usb controller nodes and update to using latest bindings
> and flattened driver approach.
> 

Can you please confirm that we survive a system suspend cycle with this?

Also, start your commit message with describing the problem you're
solving, not by describing an action.

Regards,
Bjorn

> Signed-off-by: Xilin Wu <sophon@radxa.com>
> ---
>  arch/arm64/boot/dts/qcom/sa8295p-adp.dts           |  12 +-
>  arch/arm64/boot/dts/qcom/sa8540p-ride.dts          |   6 +-
>  arch/arm64/boot/dts/qcom/sc8280xp-crd.dts          |  12 +-
>  .../boot/dts/qcom/sc8280xp-huawei-gaokun3.dts      |  12 +-
>  .../dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts     |  12 +-
>  .../boot/dts/qcom/sc8280xp-microsoft-arcata.dts    |  12 +-
>  .../boot/dts/qcom/sc8280xp-microsoft-blackrock.dts |  18 +--
>  arch/arm64/boot/dts/qcom/sc8280xp.dtsi             | 156 +++++++++------------
>  8 files changed, 97 insertions(+), 143 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/qcom/sa8295p-adp.dts b/arch/arm64/boot/dts/qcom/sa8295p-adp.dts
> index d28d69162427..abd0f6a64b11 100644
> --- a/arch/arm64/boot/dts/qcom/sa8295p-adp.dts
> +++ b/arch/arm64/boot/dts/qcom/sa8295p-adp.dts
> @@ -587,12 +587,10 @@ &ufs_card_phy {
>  };
>  
>  &usb_0 {
> -	status = "okay";
> -};
> -
> -&usb_0_dwc3 {
>  	/* TODO: Define USB-C connector properly */
>  	dr_mode = "peripheral";
> +
> +	status = "okay";
>  };
>  
>  &usb_0_hsphy {
> @@ -611,12 +609,10 @@ &usb_0_qmpphy {
>  };
>  
>  &usb_1 {
> -	status = "okay";
> -};
> -
> -&usb_1_dwc3 {
>  	/* TODO: Define USB-C connector properly */
>  	dr_mode = "host";
> +
> +	status = "okay";
>  };
>  
>  &usb_1_hsphy {
> diff --git a/arch/arm64/boot/dts/qcom/sa8540p-ride.dts b/arch/arm64/boot/dts/qcom/sa8540p-ride.dts
> index 44177e9b64b5..e794689f0777 100644
> --- a/arch/arm64/boot/dts/qcom/sa8540p-ride.dts
> +++ b/arch/arm64/boot/dts/qcom/sa8540p-ride.dts
> @@ -462,11 +462,9 @@ &ufs_mem_phy {
>  };
>  
>  &usb_0 {
> -	status = "okay";
> -};
> -
> -&usb_0_dwc3 {
>  	dr_mode = "peripheral";
> +
> +	status = "okay";
>  };
>  
>  &usb_0_hsphy {
> diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts b/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts
> index c53e00cae465..3b624544b676 100644
> --- a/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts
> +++ b/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts
> @@ -816,11 +816,9 @@ &ufs_mem_phy {
>  };
>  
>  &usb_0 {
> -	status = "okay";
> -};
> -
> -&usb_0_dwc3 {
>  	dr_mode = "host";
> +
> +	status = "okay";
>  };
>  
>  &usb_0_dwc3_hs {
> @@ -853,11 +851,9 @@ &usb_0_qmpphy_out {
>  };
>  
>  &usb_1 {
> -	status = "okay";
> -};
> -
> -&usb_1_dwc3 {
>  	dr_mode = "host";
> +
> +	status = "okay";
>  };
>  
>  &usb_1_dwc3_hs {
> diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts b/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts
> index 9819454abe13..dfc1341ccc5d 100644
> --- a/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts
> +++ b/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts
> @@ -1129,11 +1129,9 @@ bluetooth {
>  };
>  
>  &usb_0 {
> -	status = "okay";
> -};
> -
> -&usb_0_dwc3 {
>  	dr_mode = "host";
> +
> +	status = "okay";
>  };
>  
>  &usb_0_dwc3_hs {
> @@ -1166,11 +1164,9 @@ &usb_0_qmpphy_out {
>  };
>  
>  &usb_1 {
> -	status = "okay";
> -};
> -
> -&usb_1_dwc3 {
>  	dr_mode = "host";
> +
> +	status = "okay";
>  };
>  
>  &usb_1_dwc3_hs {
> diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
> index d84ca010ab9d..a1e8e75fc553 100644
> --- a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
> +++ b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
> @@ -1338,11 +1338,9 @@ bluetooth {
>  };
>  
>  &usb_0 {
> -	status = "okay";
> -};
> -
> -&usb_0_dwc3 {
>  	dr_mode = "host";
> +
> +	status = "okay";
>  };
>  
>  &usb_0_dwc3_hs {
> @@ -1376,11 +1374,9 @@ &usb_0_qmpphy_out {
>  };
>  
>  &usb_1 {
> -	status = "okay";
> -};
> -
> -&usb_1_dwc3 {
>  	dr_mode = "host";
> +
> +	status = "okay";
>  };
>  
>  &usb_1_dwc3_hs {
> diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-microsoft-arcata.dts b/arch/arm64/boot/dts/qcom/sc8280xp-microsoft-arcata.dts
> index f2b4470d4407..207c13adcb9d 100644
> --- a/arch/arm64/boot/dts/qcom/sc8280xp-microsoft-arcata.dts
> +++ b/arch/arm64/boot/dts/qcom/sc8280xp-microsoft-arcata.dts
> @@ -755,11 +755,9 @@ embedded-controller {
>  };
>  
>  &usb_0 {
> -	status = "okay";
> -};
> -
> -&usb_0_dwc3 {
>  	dr_mode = "host";
> +
> +	status = "okay";
>  };
>  
>  &usb_0_dwc3_hs {
> @@ -792,11 +790,9 @@ &usb_0_qmpphy_out {
>  };
>  
>  &usb_1 {
> -	status = "okay";
> -};
> -
> -&usb_1_dwc3 {
>  	dr_mode = "host";
> +
> +	status = "okay";
>  };
>  
>  &usb_1_dwc3_hs {
> diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-microsoft-blackrock.dts b/arch/arm64/boot/dts/qcom/sc8280xp-microsoft-blackrock.dts
> index 00bbeeef6f14..0cfd69201cae 100644
> --- a/arch/arm64/boot/dts/qcom/sc8280xp-microsoft-blackrock.dts
> +++ b/arch/arm64/boot/dts/qcom/sc8280xp-microsoft-blackrock.dts
> @@ -983,11 +983,9 @@ bluetooth {
>  };
>  
>  &usb_0 {
> -	status = "okay";
> -};
> -
> -&usb_0_dwc3 {
>  	dr_mode = "host";
> +
> +	status = "okay";
>  };
>  
>  &usb_0_dwc3_hs {
> @@ -1020,11 +1018,9 @@ &usb_0_qmpphy_out {
>  };
>  
>  &usb_1 {
> -	status = "okay";
> -};
> -
> -&usb_1_dwc3 {
>  	dr_mode = "host";
> +
> +	status = "okay";
>  };
>  
>  &usb_1_dwc3_hs {
> @@ -1060,12 +1056,10 @@ &usb_2 {
>  	pinctrl-0 = <&usb2_en_state>;
>  	pinctrl-names = "default";
>  
> -	status = "okay";
> -};
> -
> -&usb_2_dwc3 {
>  	phys = <&usb_2_hsphy0>, <&usb_2_qmpphy0>;
>  	phy-names = "usb2-0", "usb3-0";
> +
> +	status = "okay";
>  };
>  
>  &usb_2_hsphy0 {
> diff --git a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi
> index 761f229e8f47..ecfc64d864fc 100644
> --- a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi
> @@ -3940,12 +3940,9 @@ system-cache-controller@9200000 {
>  			interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>;
>  		};
>  
> -		usb_2: usb@a4f8800 {
> -			compatible = "qcom,sc8280xp-dwc3-mp", "qcom,dwc3";
> -			reg = <0 0x0a4f8800 0 0x400>;
> -			#address-cells = <2>;
> -			#size-cells = <2>;
> -			ranges;
> +		usb_2: usb@a400000 {
> +			compatible = "qcom,sc8280xp-dwc3-mp", "qcom,snps-dwc3";
> +			reg = <0 0x0a400000 0 0xfc100>;
>  
>  			clocks = <&gcc GCC_CFG_NOC_USB3_MP_AXI_CLK>,
>  				 <&gcc GCC_USB30_MP_MASTER_CLK>,
> @@ -3963,7 +3960,8 @@ usb_2: usb@a4f8800 {
>  					  <&gcc GCC_USB30_MP_MASTER_CLK>;
>  			assigned-clock-rates = <19200000>, <200000000>;
>  
> -			interrupts-extended = <&intc GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
> +			interrupts-extended = <&intc GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
> +					      <&intc GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
>  					      <&intc GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
>  					      <&intc GIC_SPI 857 IRQ_TYPE_LEVEL_HIGH>,
>  					      <&intc GIC_SPI 856 IRQ_TYPE_LEVEL_HIGH>,
> @@ -3982,7 +3980,8 @@ usb_2: usb@a4f8800 {
>  					      <&pdc 16 IRQ_TYPE_LEVEL_HIGH>,
>  					      <&pdc 17 IRQ_TYPE_LEVEL_HIGH>;
>  
> -			interrupt-names = "pwr_event_1", "pwr_event_2",
> +			interrupt-names = "dwc_usb3",
> +					  "pwr_event_1", "pwr_event_2",
>  					  "pwr_event_3", "pwr_event_4",
>  					  "hs_phy_1",	 "hs_phy_2",
>  					  "hs_phy_3",	 "hs_phy_4",
> @@ -4003,33 +4002,25 @@ usb_2: usb@a4f8800 {
>  
>  			wakeup-source;
>  
> +			iommus = <&apps_smmu 0x800 0x0>;
> +			phys = <&usb_2_hsphy0>, <&usb_2_qmpphy0>,
> +			       <&usb_2_hsphy1>, <&usb_2_qmpphy1>,
> +			       <&usb_2_hsphy2>,
> +			       <&usb_2_hsphy3>;
> +			phy-names = "usb2-0", "usb3-0",
> +				    "usb2-1", "usb3-1",
> +				    "usb2-2",
> +				    "usb2-3";
> +			dr_mode = "host";
> +			snps,dis-u1-entry-quirk;
> +			snps,dis-u2-entry-quirk;
> +
>  			status = "disabled";
> +		};
>  
> -			usb_2_dwc3: usb@a400000 {
> -				compatible = "snps,dwc3";
> -				reg = <0 0x0a400000 0 0xcd00>;
> -				interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
> -				iommus = <&apps_smmu 0x800 0x0>;
> -				phys = <&usb_2_hsphy0>, <&usb_2_qmpphy0>,
> -				       <&usb_2_hsphy1>, <&usb_2_qmpphy1>,
> -				       <&usb_2_hsphy2>,
> -				       <&usb_2_hsphy3>;
> -				phy-names = "usb2-0", "usb3-0",
> -					    "usb2-1", "usb3-1",
> -					    "usb2-2",
> -					    "usb2-3";
> -				dr_mode = "host";
> -				snps,dis-u1-entry-quirk;
> -				snps,dis-u2-entry-quirk;
> -			};
> -		};
> -
> -		usb_0: usb@a6f8800 {
> -			compatible = "qcom,sc8280xp-dwc3", "qcom,dwc3";
> -			reg = <0 0x0a6f8800 0 0x400>;
> -			#address-cells = <2>;
> -			#size-cells = <2>;
> -			ranges;
> +		usb_0: usb@a600000 {
> +			compatible = "qcom,sc8280xp-dwc3", "qcom,snps-dwc3";
> +			reg = <0 0x0a600000 0 0xfc100>;
>  
>  			clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
>  				 <&gcc GCC_USB30_PRIM_MASTER_CLK>,
> @@ -4047,12 +4038,14 @@ usb_0: usb@a6f8800 {
>  					  <&gcc GCC_USB30_PRIM_MASTER_CLK>;
>  			assigned-clock-rates = <19200000>, <200000000>;
>  
> -			interrupts-extended = <&intc GIC_SPI 804 IRQ_TYPE_LEVEL_HIGH>,
> +			interrupts-extended = <&intc GIC_SPI 803 IRQ_TYPE_LEVEL_HIGH>,
> +					      <&intc GIC_SPI 804 IRQ_TYPE_LEVEL_HIGH>,
>  					      <&intc GIC_SPI 805 IRQ_TYPE_LEVEL_HIGH>,
>  					      <&pdc 14 IRQ_TYPE_EDGE_BOTH>,
>  					      <&pdc 15 IRQ_TYPE_EDGE_BOTH>,
>  					      <&pdc 138 IRQ_TYPE_LEVEL_HIGH>;
> -			interrupt-names = "pwr_event",
> +			interrupt-names = "dwc_usb3",
> +					  "pwr_event",
>  					  "hs_phy_irq",
>  					  "dp_hs_phy_irq",
>  					  "dm_hs_phy_irq",
> @@ -4069,46 +4062,38 @@ usb_0: usb@a6f8800 {
>  
>  			wakeup-source;
>  
> -			status = "disabled";
> +			iommus = <&apps_smmu 0x820 0x0>;
> +			phys = <&usb_0_hsphy>, <&usb_0_qmpphy QMP_USB43DP_USB3_PHY>;
> +			phy-names = "usb2-phy", "usb3-phy";
> +			snps,dis-u1-entry-quirk;
> +			snps,dis-u2-entry-quirk;
>  
> -			usb_0_dwc3: usb@a600000 {
> -				compatible = "snps,dwc3";
> -				reg = <0 0x0a600000 0 0xcd00>;
> -				interrupts = <GIC_SPI 803 IRQ_TYPE_LEVEL_HIGH>;
> -				iommus = <&apps_smmu 0x820 0x0>;
> -				phys = <&usb_0_hsphy>, <&usb_0_qmpphy QMP_USB43DP_USB3_PHY>;
> -				phy-names = "usb2-phy", "usb3-phy";
> -				snps,dis-u1-entry-quirk;
> -				snps,dis-u2-entry-quirk;
> +			status = "disabled";
>  
> -				ports {
> -					#address-cells = <1>;
> -					#size-cells = <0>;
> +			ports {
> +				#address-cells = <1>;
> +				#size-cells = <0>;
>  
> -					port@0 {
> -						reg = <0>;
> +				port@0 {
> +					reg = <0>;
>  
> -						usb_0_dwc3_hs: endpoint {
> -						};
> +					usb_0_dwc3_hs: endpoint {
>  					};
> +				};
>  
> -					port@1 {
> -						reg = <1>;
> +				port@1 {
> +					reg = <1>;
>  
> -						usb_0_dwc3_ss: endpoint {
> -							remote-endpoint = <&usb_0_qmpphy_usb_ss_in>;
> -						};
> +					usb_0_dwc3_ss: endpoint {
> +						remote-endpoint = <&usb_0_qmpphy_usb_ss_in>;
>  					};
>  				};
>  			};
>  		};
>  
> -		usb_1: usb@a8f8800 {
> -			compatible = "qcom,sc8280xp-dwc3", "qcom,dwc3";
> -			reg = <0 0x0a8f8800 0 0x400>;
> -			#address-cells = <2>;
> -			#size-cells = <2>;
> -			ranges;
> +		usb_1: usb@a800000 {
> +			compatible = "qcom,sc8280xp-dwc3", "qcom,snps-dwc3";
> +			reg = <0 0x0a800000 0 0xfc100>;
>  
>  			clocks = <&gcc GCC_CFG_NOC_USB3_SEC_AXI_CLK>,
>  				 <&gcc GCC_USB30_SEC_MASTER_CLK>,
> @@ -4126,12 +4111,14 @@ usb_1: usb@a8f8800 {
>  					  <&gcc GCC_USB30_SEC_MASTER_CLK>;
>  			assigned-clock-rates = <19200000>, <200000000>;
>  
> -			interrupts-extended = <&intc GIC_SPI 811 IRQ_TYPE_LEVEL_HIGH>,
> +			interrupts-extended = <&intc GIC_SPI 810 IRQ_TYPE_LEVEL_HIGH>,
> +					      <&intc GIC_SPI 811 IRQ_TYPE_LEVEL_HIGH>,
>  					      <&intc GIC_SPI 790 IRQ_TYPE_LEVEL_HIGH>,
>  					      <&pdc 12 IRQ_TYPE_EDGE_BOTH>,
>  					      <&pdc 13 IRQ_TYPE_EDGE_BOTH>,
>  					      <&pdc 136 IRQ_TYPE_LEVEL_HIGH>;
> -			interrupt-names = "pwr_event",
> +			interrupt-names = "dwc_usb3",
> +					  "pwr_event",
>  					  "hs_phy_irq",
>  					  "dp_hs_phy_irq",
>  					  "dm_hs_phy_irq",
> @@ -4148,35 +4135,30 @@ usb_1: usb@a8f8800 {
>  
>  			wakeup-source;
>  
> -			status = "disabled";
> +			iommus = <&apps_smmu 0x860 0x0>;
> +			phys = <&usb_1_hsphy>, <&usb_1_qmpphy QMP_USB43DP_USB3_PHY>;
> +			phy-names = "usb2-phy", "usb3-phy";
> +			snps,dis-u1-entry-quirk;
> +			snps,dis-u2-entry-quirk;
>  
> -			usb_1_dwc3: usb@a800000 {
> -				compatible = "snps,dwc3";
> -				reg = <0 0x0a800000 0 0xcd00>;
> -				interrupts = <GIC_SPI 810 IRQ_TYPE_LEVEL_HIGH>;
> -				iommus = <&apps_smmu 0x860 0x0>;
> -				phys = <&usb_1_hsphy>, <&usb_1_qmpphy QMP_USB43DP_USB3_PHY>;
> -				phy-names = "usb2-phy", "usb3-phy";
> -				snps,dis-u1-entry-quirk;
> -				snps,dis-u2-entry-quirk;
> +			status = "disabled";
>  
> -				ports {
> -					#address-cells = <1>;
> -					#size-cells = <0>;
> +			ports {
> +				#address-cells = <1>;
> +				#size-cells = <0>;
>  
> -					port@0 {
> -						reg = <0>;
> +				port@0 {
> +					reg = <0>;
>  
> -						usb_1_dwc3_hs: endpoint {
> -						};
> +					usb_1_dwc3_hs: endpoint {
>  					};
> +				};
>  
> -					port@1 {
> -						reg = <1>;
> +				port@1 {
> +					reg = <1>;
>  
> -						usb_1_dwc3_ss: endpoint {
> -							remote-endpoint = <&usb_1_qmpphy_usb_ss_in>;
> -						};
> +					usb_1_dwc3_ss: endpoint {
> +						remote-endpoint = <&usb_1_qmpphy_usb_ss_in>;
>  					};
>  				};
>  			};
> 
> ---
> base-commit: 735d2f48cadaa9a87e7c7601667878de70c771c5
> change-id: 20260507-sc8280xp-flatten-dwc3-2151039b64ba
> 
> Best regards,
> --  
> Xilin Wu <sophon@radxa.com>
> 

  reply	other threads:[~2026-05-07 14:31 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-07 14:29 [PATCH] arm64: dts: qcom: sc8280xp: Flatten usb controller nodes Xilin Wu
2026-05-07 14:31 ` Bjorn Andersson [this message]
2026-05-07 14:41   ` Xilin Wu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=afyh9nOoTT4wlzaY@baldur \
    --to=andersson@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=konradybcio@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=robh@kernel.org \
    --cc=sophon@radxa.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox