* [PATCH v3 00/10] Flatten USB Controller Nodes on IPQ SoCs
@ 2026-09-06 4:46 George Moussalem via B4 Relay
2026-09-06 4:46 ` [PATCH v3 01/10] usb: dwc3: core: Allow glue layer to pass reference clock rate George Moussalem via B4 Relay
` (9 more replies)
0 siblings, 10 replies; 20+ messages in thread
From: George Moussalem via B4 Relay @ 2026-09-06 4:46 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Wesley Cheng, Thinh Nguyen, Bjorn Andersson,
Konrad Dybcio
Cc: linux-arm-msm, linux-usb, devicetree, linux-kernel,
Varadarajan Narayanan, George Moussalem, Konrad Dybcio
Add ability to pass the UTMI clock rate to the DWC3 core to calculate
the right values for the period and frame length adjustment. This is
required for USB controllers on chipsets where the computed values for
the period and frame length adjustment differ from hardware defaults
based on the UTMI clock rate.
Flatten usb controller node and update to using latest bindings and
flattened driver approach.
In addition, set the right UTMI clock rate and override any clock
rate inherited from the bootloader.
I've split these patches from a larger patch set to add USB3 support on
IPQ5018 and IPQ5332 SoCs where these patches are required to ensure new
functionality is added to the new flattened driver and binding model.
link: https://lore.kernel.org/all/20260812-ipq5018-usb3-v2-0-8f355d7ff0ef@outlook.com/
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
---
Changes in v3:
- Re-added dr_mode back to the controller node in ipq6018-cp01-c1.dts
after having removed it in patch 6.
- Swap interrupts for dp_hs_phy_irq and dm_hs_phy_irq for ipq9574 as per
order in updated binding.
- Only set the ref_clk_rate in the probe_data structure if the UTMI clock
is available.
- Also referring to changes below in v2 (v2 wasn't reviewed yet).
- Link to v2: https://lore.kernel.org/r/20260906-ipq-flatten-usb-v2-0-dab83120b10a@outlook.com
Changes in v2:
- Dropped the "qcom,select-utmi-as-ref-clk" property from the binding
and DTS nodes since it is no longer needed. If the UTMI clock is
available, the glue layer will pass its clock rate to the core
unconditionally.
- Added separate patches to move the DR mode to the relevant board DTS
files as per Konrad's request.
- Picked up RB tags
- Link to v1: https://lore.kernel.org/r/20260825-ipq-flatten-usb-v1-0-5c1f3170bbe9@outlook.com
---
George Moussalem (10):
usb: dwc3: core: Allow glue layer to pass reference clock rate
usb: dwc3: qcom: Add support for selecting UTMI as reference clock
arm64: dts: qcom: ipq5018: Flatten usb controller node
arm64: dts: qcom: ipq5332: Flatten usb controller node
arm64: dts: qcom: ipq5424: Flatten usb controller nodes
arm64: dts: qcom: ipq6018: move DR mode to board DTS
arm64: dts: qcom: ipq6018: Flatten usb controller nodes
arm64: dts: qcom: ipq8074: move DR mode to board DTS
arm64: dts: qcom: ipq8074: Flatten usb controller nodes
arm64: dts: qcom: ipq9574: Flatten usb controller node
arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts | 6 +-
arch/arm64/boot/dts/qcom/ipq5018.dtsi | 51 +++++------
arch/arm64/boot/dts/qcom/ipq5332-rdp468.dts | 6 +-
arch/arm64/boot/dts/qcom/ipq5332.dtsi | 57 ++++++------
arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts | 12 +--
arch/arm64/boot/dts/qcom/ipq5424.dtsi | 86 ++++++++----------
arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dts | 2 +
arch/arm64/boot/dts/qcom/ipq6018.dtsi | 95 +++++++++-----------
arch/arm64/boot/dts/qcom/ipq8074-hk01.dts | 4 +
arch/arm64/boot/dts/qcom/ipq8074.dtsi | 110 +++++++++++------------
arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi | 6 +-
arch/arm64/boot/dts/qcom/ipq9574.dtsi | 48 +++++-----
drivers/usb/dwc3/core.c | 6 ++
drivers/usb/dwc3/core.h | 2 +
drivers/usb/dwc3/dwc3-qcom.c | 9 ++
drivers/usb/dwc3/glue.h | 4 +
16 files changed, 236 insertions(+), 268 deletions(-)
---
base-commit: 32b6ef9a5d0eca44f9cd91f52f4faa89f145a0de
change-id: 20260825-ipq-flatten-usb-c7d7f15f3966
Best regards,
--
George Moussalem <george.moussalem@outlook.com>
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH v3 01/10] usb: dwc3: core: Allow glue layer to pass reference clock rate
2026-09-06 4:46 [PATCH v3 00/10] Flatten USB Controller Nodes on IPQ SoCs George Moussalem via B4 Relay
@ 2026-09-06 4:46 ` George Moussalem via B4 Relay
2026-09-07 5:05 ` Varadarajan Narayanan
2026-09-06 4:46 ` [PATCH v3 02/10] usb: dwc3: qcom: Add support for selecting UTMI as reference clock George Moussalem via B4 Relay
` (8 subsequent siblings)
9 siblings, 1 reply; 20+ messages in thread
From: George Moussalem via B4 Relay @ 2026-09-06 4:46 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Wesley Cheng, Thinh Nguyen, Bjorn Andersson,
Konrad Dybcio
Cc: linux-arm-msm, linux-usb, devicetree, linux-kernel,
Varadarajan Narayanan, George Moussalem
From: George Moussalem <george.moussalem@outlook.com>
Add ability to pass the reference clock rate from the glue layer to the
DWC3 core driver. The core calculates the reference clock period and
frame length adjustment based on the reference clock rate.
In the flattened snsp-dwc3 model, it is currently not possible to pass a
reference clock that differs from the default since:
commit 613a2e655d4d ("usb: dwc3: core: Expose core driver as library")
The new glue layers (incl. Qualcomm's) set the ignore_clocks_and_resets
flag in dwc3_probe_data to true, which disables the core driver's clock
management, thus it also doesn't acquire the reference clock from the
devicetree needed in dwc3_ref_clk_period.
There's an existing DT property 'snps,ref-clock-period-ns', but that's
been deprecated. In addition, basing the rate from the period is often
not accurate enough to derive the frame length adjustment value.
This prevents moving chipsets such as IPQ5018, IPQ6018, IPQ5332, IPQ5424
and IPQ9574 with a reference clock rate that computes values for the
period and frame length adjustment different from the hardware default
from moving to the flattened model.
So, add ability to set the reference clock rate in dwc3_probe_data, then
have the core obtain the clock rate and use that to calculate the
required period and frame length adjustment.
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
---
drivers/usb/dwc3/core.c | 6 ++++++
drivers/usb/dwc3/core.h | 2 ++
drivers/usb/dwc3/glue.h | 4 ++++
3 files changed, 12 insertions(+)
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index fd5c2cd36c59..6ff0e4822b49 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -420,6 +420,9 @@ static void dwc3_ref_clk_period(struct dwc3 *dwc)
} else if (dwc->ref_clk_per) {
period = dwc->ref_clk_per;
rate = NSEC_PER_SEC / period;
+ } else if (dwc->ref_clk_rate) {
+ rate = dwc->ref_clk_rate;
+ period = NSEC_PER_SEC / rate;
} else {
return;
}
@@ -2334,6 +2337,9 @@ int dwc3_core_probe(const struct dwc3_probe_data *data)
goto err_put_psy;
}
+ if (data->ref_clk_rate > 0)
+ dwc->ref_clk_rate = data->ref_clk_rate;
+
ret = reset_control_deassert(dwc->reset);
if (ret)
goto err_put_psy;
diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
index 608daeb7ef10..4181d57a6cd3 100644
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
@@ -1032,6 +1032,7 @@ struct dwc3_glue_ops {
* @regs_size: address space size
* @fladj: frame length adjustment
* @ref_clk_per: reference clock period configuration
+ * @ref_clk_rate: reference clock rate provided by glue layer
* @irq_gadget: peripheral controller's IRQ number
* @otg_irq: IRQ number for OTG IRQs
* @current_otg_role: current role of operation while using the OTG block
@@ -1261,6 +1262,7 @@ struct dwc3 {
u32 fladj;
u32 ref_clk_per;
+ unsigned long ref_clk_rate;
u32 irq_gadget;
u32 otg_irq;
u32 current_otg_role;
diff --git a/drivers/usb/dwc3/glue.h b/drivers/usb/dwc3/glue.h
index d738e1739ae0..ed96b10d8cd8 100644
--- a/drivers/usb/dwc3/glue.h
+++ b/drivers/usb/dwc3/glue.h
@@ -33,6 +33,9 @@ struct dwc3_properties {
* @skip_core_init_mode: Skip the finial initialization of the target mode, as
* it must be managed by the glue
* @properties: dwc3 software manage properties
+ * @ref_clk_rate: optional reference clock rate for the DWC3 core to compute the
+ * period and frame length adjustment required if these values
+ * differ from the hardware default.
*/
struct dwc3_probe_data {
struct dwc3 *dwc;
@@ -40,6 +43,7 @@ struct dwc3_probe_data {
bool ignore_clocks_and_resets;
bool skip_core_init_mode;
struct dwc3_properties properties;
+ unsigned long ref_clk_rate;
};
/**
--
2.53.0
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v3 02/10] usb: dwc3: qcom: Add support for selecting UTMI as reference clock
2026-09-06 4:46 [PATCH v3 00/10] Flatten USB Controller Nodes on IPQ SoCs George Moussalem via B4 Relay
2026-09-06 4:46 ` [PATCH v3 01/10] usb: dwc3: core: Allow glue layer to pass reference clock rate George Moussalem via B4 Relay
@ 2026-09-06 4:46 ` George Moussalem via B4 Relay
2026-09-07 4:06 ` Varadarajan Narayanan
2026-09-06 4:46 ` [PATCH v3 03/10] arm64: dts: qcom: ipq5018: Flatten usb controller node George Moussalem via B4 Relay
` (7 subsequent siblings)
9 siblings, 1 reply; 20+ messages in thread
From: George Moussalem via B4 Relay @ 2026-09-06 4:46 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Wesley Cheng, Thinh Nguyen, Bjorn Andersson,
Konrad Dybcio
Cc: linux-arm-msm, linux-usb, devicetree, linux-kernel,
Varadarajan Narayanan, George Moussalem
From: George Moussalem <george.moussalem@outlook.com>
On many Qualcomm chipsets, the UTMI clock is used as the reference clock
(ex. IPQ5018, IPQ6018, and IPQ9574 and more). Since moving to the new
flattened snps-dwc3 model, it is no longer possible to pass the
reference clock to the dwc3 core driver.
The clock rate is used by the dwc3 core to compute the reference clock
period and frame length adjustment. This is needed when the reference
clock rate used computes values that deviate from the hardware defaults.
Above mentioned SoCs require values different from the defaults and, as
such, the core initializes with the wrong values which leads to
non-functional USB operation.
In Qualcomm chipsets, if available, the UTMI clock is used as the
reference clock. Therefore, acquire the reference clock by name
('mock_utmi') and pass its clock rate to the core using the probe_data
structure.
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
---
drivers/usb/dwc3/dwc3-qcom.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/usb/dwc3/dwc3-qcom.c b/drivers/usb/dwc3/dwc3-qcom.c
index ac68b4218b56..8c1aca40c810 100644
--- a/drivers/usb/dwc3/dwc3-qcom.c
+++ b/drivers/usb/dwc3/dwc3-qcom.c
@@ -617,6 +617,7 @@ static int dwc3_qcom_probe(struct platform_device *pdev)
int ret;
bool ignore_pipe_clk;
bool wakeup_source;
+ struct clk *ref_clk;
qcom = devm_kzalloc(&pdev->dev, sizeof(*qcom), GFP_KERNEL);
if (!qcom)
@@ -698,6 +699,14 @@ static int dwc3_qcom_probe(struct platform_device *pdev)
qcom->current_role = USB_ROLE_DEVICE;
}
+ ref_clk = devm_clk_get_optional(dev, "mock_utmi");
+ if (IS_ERR(ref_clk)) {
+ ret = dev_err_probe(dev, PTR_ERR(ref_clk), "failed to get ref clock\n");
+ goto clk_disable;
+ } else if (ref_clk) {
+ probe_data.ref_clk_rate = clk_get_rate(ref_clk);
+ }
+
qcom->dwc.glue_ops = &dwc3_qcom_glue_ops;
qcom->dwc.dev = dev;
--
2.53.0
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v3 03/10] arm64: dts: qcom: ipq5018: Flatten usb controller node
2026-09-06 4:46 [PATCH v3 00/10] Flatten USB Controller Nodes on IPQ SoCs George Moussalem via B4 Relay
2026-09-06 4:46 ` [PATCH v3 01/10] usb: dwc3: core: Allow glue layer to pass reference clock rate George Moussalem via B4 Relay
2026-09-06 4:46 ` [PATCH v3 02/10] usb: dwc3: qcom: Add support for selecting UTMI as reference clock George Moussalem via B4 Relay
@ 2026-09-06 4:46 ` George Moussalem via B4 Relay
2026-09-06 4:46 ` [PATCH v3 04/10] arm64: dts: qcom: ipq5332: " George Moussalem via B4 Relay
` (6 subsequent siblings)
9 siblings, 0 replies; 20+ messages in thread
From: George Moussalem via B4 Relay @ 2026-09-06 4:46 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Wesley Cheng, Thinh Nguyen, Bjorn Andersson,
Konrad Dybcio
Cc: linux-arm-msm, linux-usb, devicetree, linux-kernel,
Varadarajan Narayanan, George Moussalem, Konrad Dybcio
From: George Moussalem <george.moussalem@outlook.com>
Flatten usb controller node and update to using latest bindings and
flattened driver approach.
In addition, set the right UTMI clock rate and override any clock
rate inherited from the bootloader.
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts | 6 +--
arch/arm64/boot/dts/qcom/ipq5018.dtsi | 51 ++++++++++++--------------
2 files changed, 25 insertions(+), 32 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts b/arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts
index 33eef92b19b1..8efb2b21ed9e 100644
--- a/arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts
+++ b/arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts
@@ -110,11 +110,9 @@ data-pins {
};
&usb {
- status = "okay";
-};
-
-&usb_dwc {
dr_mode = "host";
+
+ status = "okay";
};
&usbphy0 {
diff --git a/arch/arm64/boot/dts/qcom/ipq5018.dtsi b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
index 4fc627b47fe7..956d3217ec52 100644
--- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
@@ -580,16 +580,9 @@ qpic_nand: spi@79b0000 {
status = "disabled";
};
- usb: usb@8af8800 {
- compatible = "qcom,ipq5018-dwc3", "qcom,dwc3";
- reg = <0x08af8800 0x400>;
-
- interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-names = "pwr_event",
- "dp_hs_phy_irq",
- "dm_hs_phy_irq";
+ usb: usb@8a00000 {
+ compatible = "qcom,ipq5018-dwc3", "qcom,snps-dwc3";
+ reg = <0x08a00000 0xfc100>;
clocks = <&gcc GCC_USB0_MASTER_CLK>,
<&gcc GCC_SYS_NOC_USB0_AXI_CLK>,
@@ -599,30 +592,32 @@ usb: usb@8af8800 {
"iface",
"sleep",
"mock_utmi";
+ assigned-clocks = <&gcc GCC_USB0_MOCK_UTMI_CLK>;
+ assigned-clock-rates = <60000000>;
+
+ interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "dwc_usb3",
+ "pwr_event",
+ "dp_hs_phy_irq",
+ "dm_hs_phy_irq";
resets = <&gcc GCC_USB0_BCR>;
+ phys = <&usbphy0>;
+ phy-names = "usb2-phy";
+
qcom,select-utmi-as-pipe-clk;
- #address-cells = <1>;
- #size-cells = <1>;
- ranges;
- status = "disabled";
+ tx-fifo-resize;
+ snps,is-utmi-l1-suspend;
+ snps,hird-threshold = /bits/ 8 <0x0>;
+ snps,dis_u2_susphy_quirk;
+ snps,dis_u3_susphy_quirk;
- usb_dwc: usb@8a00000 {
- compatible = "snps,dwc3";
- reg = <0x08a00000 0xe000>;
- clocks = <&gcc GCC_USB0_MOCK_UTMI_CLK>;
- clock-names = "ref";
- interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
- phy-names = "usb2-phy";
- phys = <&usbphy0>;
- tx-fifo-resize;
- snps,is-utmi-l1-suspend;
- snps,hird-threshold = /bits/ 8 <0x0>;
- snps,dis_u2_susphy_quirk;
- snps,dis_u3_susphy_quirk;
- };
+ status = "disabled";
};
intc: interrupt-controller@b000000 {
--
2.53.0
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v3 04/10] arm64: dts: qcom: ipq5332: Flatten usb controller node
2026-09-06 4:46 [PATCH v3 00/10] Flatten USB Controller Nodes on IPQ SoCs George Moussalem via B4 Relay
` (2 preceding siblings ...)
2026-09-06 4:46 ` [PATCH v3 03/10] arm64: dts: qcom: ipq5018: Flatten usb controller node George Moussalem via B4 Relay
@ 2026-09-06 4:46 ` George Moussalem via B4 Relay
2026-09-06 4:46 ` [PATCH v3 05/10] arm64: dts: qcom: ipq5424: Flatten usb controller nodes George Moussalem via B4 Relay
` (5 subsequent siblings)
9 siblings, 0 replies; 20+ messages in thread
From: George Moussalem via B4 Relay @ 2026-09-06 4:46 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Wesley Cheng, Thinh Nguyen, Bjorn Andersson,
Konrad Dybcio
Cc: linux-arm-msm, linux-usb, devicetree, linux-kernel,
Varadarajan Narayanan, George Moussalem, Konrad Dybcio
From: George Moussalem <george.moussalem@outlook.com>
Flatten usb controller node and update to using latest bindings and
flattened driver approach.
In addition, set the right UTMI clock rate and override any clock rate
inherited from the bootloader.
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/ipq5332-rdp468.dts | 6 +--
arch/arm64/boot/dts/qcom/ipq5332.dtsi | 57 +++++++++++++----------------
2 files changed, 28 insertions(+), 35 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/ipq5332-rdp468.dts b/arch/arm64/boot/dts/qcom/ipq5332-rdp468.dts
index c224ffc65b08..25a70cd884c0 100644
--- a/arch/arm64/boot/dts/qcom/ipq5332-rdp468.dts
+++ b/arch/arm64/boot/dts/qcom/ipq5332-rdp468.dts
@@ -90,11 +90,9 @@ spi_0_cs_pins: spi-0-cs-state {
};
&usb {
- status = "okay";
-};
-
-&usb_dwc {
dr_mode = "host";
+
+ status = "okay";
};
&usbphy0 {
diff --git a/arch/arm64/boot/dts/qcom/ipq5332.dtsi b/arch/arm64/boot/dts/qcom/ipq5332.dtsi
index 74d9de8d7641..b8c54c75b161 100644
--- a/arch/arm64/boot/dts/qcom/ipq5332.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq5332.dtsi
@@ -493,16 +493,9 @@ qpic_nand: spi@79b0000 {
status = "disabled";
};
- usb: usb@8af8800 {
- compatible = "qcom,ipq5332-dwc3", "qcom,dwc3";
- reg = <0x08af8800 0x400>;
-
- interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-names = "pwr_event",
- "dp_hs_phy_irq",
- "dm_hs_phy_irq";
+ usb: usb@8a00000 {
+ compatible = "qcom,ipq5332-dwc3", "qcom,snps-dwc3";
+ reg = <0x08a00000 0xfc100>;
clocks = <&gcc GCC_USB0_MASTER_CLK>,
<&gcc GCC_USB0_SLEEP_CLK>,
@@ -510,34 +503,36 @@ usb: usb@8af8800 {
clock-names = "core",
"sleep",
"mock_utmi";
+ assigned-clocks = <&gcc GCC_USB0_MOCK_UTMI_CLK>;
+ assigned-clock-rates = <60000000>;
- resets = <&gcc GCC_USB_BCR>;
-
- qcom,select-utmi-as-pipe-clk;
+ interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "dwc_usb3",
+ "pwr_event",
+ "dp_hs_phy_irq",
+ "dm_hs_phy_irq";
- #address-cells = <1>;
- #size-cells = <1>;
- ranges;
interconnects = <&gcc MASTER_SNOC_USB &gcc SLAVE_SNOC_USB>,
<&gcc MASTER_SNOC_USB &gcc SLAVE_SNOC_USB>;
interconnect-names = "usb-ddr", "apps-usb";
- status = "disabled";
+ resets = <&gcc GCC_USB_BCR>;
- usb_dwc: usb@8a00000 {
- compatible = "snps,dwc3";
- reg = <0x08a00000 0xe000>;
- clocks = <&gcc GCC_USB0_MOCK_UTMI_CLK>;
- clock-names = "ref";
- interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
- phy-names = "usb2-phy";
- phys = <&usbphy0>;
- tx-fifo-resize;
- snps,is-utmi-l1-suspend;
- snps,hird-threshold = /bits/ 8 <0x0>;
- snps,dis_u2_susphy_quirk;
- snps,dis_u3_susphy_quirk;
- };
+ phys = <&usbphy0>;
+ phy-names = "usb2-phy";
+
+ qcom,select-utmi-as-pipe-clk;
+
+ tx-fifo-resize;
+ snps,is-utmi-l1-suspend;
+ snps,hird-threshold = /bits/ 8 <0x0>;
+ snps,dis_u2_susphy_quirk;
+ snps,dis_u3_susphy_quirk;
+
+ status = "disabled";
};
intc: interrupt-controller@b000000 {
--
2.53.0
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v3 05/10] arm64: dts: qcom: ipq5424: Flatten usb controller nodes
2026-09-06 4:46 [PATCH v3 00/10] Flatten USB Controller Nodes on IPQ SoCs George Moussalem via B4 Relay
` (3 preceding siblings ...)
2026-09-06 4:46 ` [PATCH v3 04/10] arm64: dts: qcom: ipq5332: " George Moussalem via B4 Relay
@ 2026-09-06 4:46 ` George Moussalem via B4 Relay
2026-09-07 12:58 ` Konrad Dybcio
2026-09-06 4:46 ` [PATCH v3 06/10] arm64: dts: qcom: ipq6018: move DR mode to board DTS George Moussalem via B4 Relay
` (4 subsequent siblings)
9 siblings, 1 reply; 20+ messages in thread
From: George Moussalem via B4 Relay @ 2026-09-06 4:46 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Wesley Cheng, Thinh Nguyen, Bjorn Andersson,
Konrad Dybcio
Cc: linux-arm-msm, linux-usb, devicetree, linux-kernel,
Varadarajan Narayanan, George Moussalem
From: George Moussalem <george.moussalem@outlook.com>
Flatten usb controller nodes and update to using latest bindings and
flattened driver approach.
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
---
arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts | 12 ++--
arch/arm64/boot/dts/qcom/ipq5424.dtsi | 86 +++++++++++++----------------
2 files changed, 41 insertions(+), 57 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts b/arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts
index be8657239c46..dfd6a124686a 100644
--- a/arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts
+++ b/arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts
@@ -74,14 +74,6 @@ vreg_misc_0p925: regulator-usb-0p925 {
};
};
-&dwc_0 {
- dr_mode = "host";
-};
-
-&dwc_1 {
- dr_mode = "host";
-};
-
&pcie2 {
pinctrl-0 = <&pcie2_default_state>;
pinctrl-names = "default";
@@ -282,10 +274,14 @@ &uart1 {
};
&usb2 {
+ dr_mode = "host";
+
status = "okay";
};
&usb3 {
+ dr_mode = "host";
+
status = "okay";
};
diff --git a/arch/arm64/boot/dts/qcom/ipq5424.dtsi b/arch/arm64/boot/dts/qcom/ipq5424.dtsi
index 702061e16a58..de795ca2a905 100644
--- a/arch/arm64/boot/dts/qcom/ipq5424.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq5424.dtsi
@@ -639,12 +639,9 @@ qusb_phy_1: phy@71000 {
status = "disabled";
};
- usb2: usb2@1ef8800 {
- compatible = "qcom,ipq5424-dwc3", "qcom,dwc3";
- reg = <0 0x01ef8800 0 0x400>;
- #address-cells = <2>;
- #size-cells = <2>;
- ranges;
+ usb2: usb2@1e00000 {
+ compatible = "qcom,ipq5424-dwc3", "qcom,snps-dwc3";
+ reg = <0 0x01e00000 0 0xfc100>;
clocks = <&gcc GCC_USB1_MASTER_CLK>,
<&gcc GCC_USB1_SLEEP_CLK>,
@@ -663,33 +660,31 @@ usb2: usb2@1ef8800 {
assigned-clock-rates = <200000000>,
<24000000>;
- interrupts-extended = <&intc GIC_SPI 395 IRQ_TYPE_LEVEL_HIGH>,
+ interrupts-extended = <&intc GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH>,
+ <&intc GIC_SPI 395 IRQ_TYPE_LEVEL_HIGH>,
<&intc GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH>,
<&intc GIC_SPI 387 IRQ_TYPE_LEVEL_HIGH>,
<&intc GIC_SPI 388 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-names = "pwr_event",
+ interrupt-names = "dwc_usb3",
+ "pwr_event",
"qusb2_phy",
"dm_hs_phy_irq",
"dp_hs_phy_irq";
resets = <&gcc GCC_USB1_BCR>;
+
+ phys = <&qusb_phy_1>;
+ phy-names = "usb2-phy";
+
qcom,select-utmi-as-pipe-clk;
- status = "disabled";
- dwc_1: usb@1e00000 {
- compatible = "snps,dwc3";
- reg = <0 0x01e00000 0 0xe000>;
- clocks = <&gcc GCC_USB1_MOCK_UTMI_CLK>;
- clock-names = "ref";
- interrupts = <GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH>;
- phys = <&qusb_phy_1>;
- phy-names = "usb2-phy";
- tx-fifo-resize;
- snps,is-utmi-l1-suspend;
- snps,hird-threshold = /bits/ 8 <0x0>;
- snps,dis_u2_susphy_quirk;
- snps,dis_u3_susphy_quirk;
- };
+ tx-fifo-resize;
+ snps,is-utmi-l1-suspend;
+ snps,hird-threshold = /bits/ 8 <0x0>;
+ snps,dis_u2_susphy_quirk;
+ snps,dis_u3_susphy_quirk;
+
+ status = "disabled";
};
qusb_phy_0: phy@7b000 {
@@ -730,13 +725,9 @@ ssphy_0: phy@7d000 {
status = "disabled";
};
- usb3: usb3@8af8800 {
- compatible = "qcom,ipq5424-dwc3", "qcom,dwc3";
- reg = <0 0x08af8800 0 0x400>;
-
- #address-cells = <2>;
- #size-cells = <2>;
- ranges;
+ usb3: usb3@8a00000 {
+ compatible = "qcom,ipq5424-dwc3", "qcom,snps-dwc3";
+ reg = <0 0x08a00000 0 0xfc100>;
clocks = <&gcc GCC_USB0_MASTER_CLK>,
<&gcc GCC_USB0_SLEEP_CLK>,
@@ -755,34 +746,31 @@ usb3: usb3@8af8800 {
assigned-clock-rates = <200000000>,
<24000000>;
- interrupts-extended = <&intc GIC_SPI 412 IRQ_TYPE_LEVEL_HIGH>,
+ interrupts-extended = <&intc GIC_SPI 409 IRQ_TYPE_LEVEL_HIGH>,
+ <&intc GIC_SPI 412 IRQ_TYPE_LEVEL_HIGH>,
<&intc GIC_SPI 414 IRQ_TYPE_LEVEL_HIGH>,
<&intc GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>,
<&intc GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-names = "pwr_event",
+ interrupt-names = "dwc_usb3",
+ "pwr_event",
"qusb2_phy",
"dm_hs_phy_irq",
"dp_hs_phy_irq";
resets = <&gcc GCC_USB_BCR>;
- status = "disabled";
- dwc_0: usb@8a00000 {
- compatible = "snps,dwc3";
- reg = <0 0x08a00000 0 0xcd00>;
- clocks = <&gcc GCC_USB0_MOCK_UTMI_CLK>;
- clock-names = "ref";
- interrupts = <GIC_SPI 409 IRQ_TYPE_LEVEL_HIGH>;
- phys = <&qusb_phy_0>, <&ssphy_0>;
- phy-names = "usb2-phy", "usb3-phy";
- tx-fifo-resize;
- snps,is-utmi-l1-suspend;
- snps,hird-threshold = /bits/ 8 <0x0>;
- snps,dis_u2_susphy_quirk;
- snps,dis_u3_susphy_quirk;
- snps,dis-u1-entry-quirk;
- snps,dis-u2-entry-quirk;
- };
+ phys = <&qusb_phy_0>, <&ssphy_0>;
+ phy-names = "usb2-phy", "usb3-phy";
+
+ tx-fifo-resize;
+ snps,is-utmi-l1-suspend;
+ snps,hird-threshold = /bits/ 8 <0x0>;
+ snps,dis_u2_susphy_quirk;
+ snps,dis_u3_susphy_quirk;
+ snps,dis-u1-entry-quirk;
+ snps,dis-u2-entry-quirk;
+
+ status = "disabled";
};
timer@f420000 {
--
2.53.0
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v3 06/10] arm64: dts: qcom: ipq6018: move DR mode to board DTS
2026-09-06 4:46 [PATCH v3 00/10] Flatten USB Controller Nodes on IPQ SoCs George Moussalem via B4 Relay
` (4 preceding siblings ...)
2026-09-06 4:46 ` [PATCH v3 05/10] arm64: dts: qcom: ipq5424: Flatten usb controller nodes George Moussalem via B4 Relay
@ 2026-09-06 4:46 ` George Moussalem via B4 Relay
2026-09-07 12:57 ` Konrad Dybcio
2026-09-06 4:46 ` [PATCH v3 07/10] arm64: dts: qcom: ipq6018: Flatten usb controller nodes George Moussalem via B4 Relay
` (3 subsequent siblings)
9 siblings, 1 reply; 20+ messages in thread
From: George Moussalem via B4 Relay @ 2026-09-06 4:46 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Wesley Cheng, Thinh Nguyen, Bjorn Andersson,
Konrad Dybcio
Cc: linux-arm-msm, linux-usb, devicetree, linux-kernel,
Varadarajan Narayanan, George Moussalem
From: George Moussalem <george.moussalem@outlook.com>
The controller is DRD capable, but it's currently set to host mode in
the SoC dtsi. Unset it in the SoC dtsi and set it as host mode in the
cp01-c1 board DTS file.
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
---
arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dts | 4 ++++
arch/arm64/boot/dts/qcom/ipq6018.dtsi | 2 --
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dts b/arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dts
index 9c69d3027b43..a366be17c251 100644
--- a/arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dts
+++ b/arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dts
@@ -48,6 +48,10 @@ flash@0 {
};
};
+&dwc_1 {
+ dr_mode = "host";
+};
+
&tlmm {
i2c_1_pins: i2c-1-state {
pins = "gpio42", "gpio43";
diff --git a/arch/arm64/boot/dts/qcom/ipq6018.dtsi b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
index 0701517275d4..c02110ad9cb0 100644
--- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
@@ -460,7 +460,6 @@ dwc_1: usb@7000000 {
snps,hird-threshold = /bits/ 8 <0x0>;
snps,dis_u2_susphy_quirk;
snps,dis_u3_susphy_quirk;
- dr_mode = "host";
};
};
@@ -716,7 +715,6 @@ dwc_0: usb@8a00000 {
snps,hird-threshold = /bits/ 8 <0x0>;
snps,dis_u2_susphy_quirk;
snps,dis_u3_susphy_quirk;
- dr_mode = "host";
};
};
--
2.53.0
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v3 07/10] arm64: dts: qcom: ipq6018: Flatten usb controller nodes
2026-09-06 4:46 [PATCH v3 00/10] Flatten USB Controller Nodes on IPQ SoCs George Moussalem via B4 Relay
` (5 preceding siblings ...)
2026-09-06 4:46 ` [PATCH v3 06/10] arm64: dts: qcom: ipq6018: move DR mode to board DTS George Moussalem via B4 Relay
@ 2026-09-06 4:46 ` George Moussalem via B4 Relay
2026-09-07 12:58 ` Konrad Dybcio
2026-09-06 4:46 ` [PATCH v3 08/10] arm64: dts: qcom: ipq8074: move DR mode to board DTS George Moussalem via B4 Relay
` (2 subsequent siblings)
9 siblings, 1 reply; 20+ messages in thread
From: George Moussalem via B4 Relay @ 2026-09-06 4:46 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Wesley Cheng, Thinh Nguyen, Bjorn Andersson,
Konrad Dybcio
Cc: linux-arm-msm, linux-usb, devicetree, linux-kernel,
Varadarajan Narayanan, George Moussalem
From: George Moussalem <george.moussalem@outlook.com>
Flatten usb controller nodes and update to using latest bindings and
flattened driver approach.
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
---
arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dts | 6 +-
arch/arm64/boot/dts/qcom/ipq6018.dtsi | 93 +++++++++++++---------------
2 files changed, 44 insertions(+), 55 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dts b/arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dts
index a366be17c251..dfc3aac955e8 100644
--- a/arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dts
+++ b/arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dts
@@ -48,10 +48,6 @@ flash@0 {
};
};
-&dwc_1 {
- dr_mode = "host";
-};
-
&tlmm {
i2c_1_pins: i2c-1-state {
pins = "gpio42", "gpio43";
@@ -88,5 +84,7 @@ &qusb_phy_1 {
};
&usb2 {
+ dr_mode = "host";
+
status = "okay";
};
diff --git a/arch/arm64/boot/dts/qcom/ipq6018.dtsi b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
index c02110ad9cb0..4f5f8b628bf2 100644
--- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
@@ -423,12 +423,10 @@ pwm: pwm@1941010 {
status = "disabled";
};
- usb2: usb@70f8800 {
- compatible = "qcom,ipq6018-dwc3", "qcom,dwc3";
- reg = <0x0 0x070f8800 0x0 0x400>;
- #address-cells = <2>;
- #size-cells = <2>;
- ranges;
+ usb2: usb@7000000 {
+ compatible = "qcom,ipq6018-dwc3", "qcom,snps-dwc3";
+ reg = <0x0 0x07000000 0x0 0xfc100>;
+
clocks = <&gcc GCC_USB1_MASTER_CLK>,
<&gcc GCC_USB1_SLEEP_CLK>,
<&gcc GCC_USB1_MOCK_UTMI_CLK>;
@@ -441,26 +439,25 @@ usb2: usb@70f8800 {
assigned-clock-rates = <133330000>,
<24000000>;
- interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+ interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-names = "pwr_event",
+ interrupt-names = "dwc_usb3",
+ "pwr_event",
"qusb2_phy";
resets = <&gcc GCC_USB1_BCR>;
- status = "disabled";
- dwc_1: usb@7000000 {
- compatible = "snps,dwc3";
- reg = <0x0 0x07000000 0x0 0xcd00>;
- interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
- phys = <&qusb_phy_1>;
- phy-names = "usb2-phy";
- tx-fifo-resize;
- snps,is-utmi-l1-suspend;
- snps,hird-threshold = /bits/ 8 <0x0>;
- snps,dis_u2_susphy_quirk;
- snps,dis_u3_susphy_quirk;
- };
+ phys = <&qusb_phy_1>;
+ phy-names = "usb2-phy";
+
+ tx-fifo-resize;
+ snps,is-utmi-l1-suspend;
+ snps,hird-threshold = /bits/ 8 <0x0>;
+ snps,dis_u2_susphy_quirk;
+ snps,dis_u3_susphy_quirk;
+
+ status = "disabled";
};
sdhc: mmc@7804000 {
@@ -668,21 +665,18 @@ qpic_nand: nand-controller@79b0000 {
status = "disabled";
};
- usb3: usb@8af8800 {
- compatible = "qcom,ipq6018-dwc3", "qcom,dwc3";
- reg = <0x0 0x08af8800 0x0 0x400>;
- #address-cells = <2>;
- #size-cells = <2>;
- ranges;
+ usb3: usb@8a00000 {
+ compatible = "qcom,ipq6018-dwc3", "qcom,snps-dwc3";
+ reg = <0x0 0x08a00000 0x0 0xfc100>;
clocks = <&gcc GCC_SYS_NOC_USB0_AXI_CLK>,
- <&gcc GCC_USB0_MASTER_CLK>,
- <&gcc GCC_USB0_SLEEP_CLK>,
- <&gcc GCC_USB0_MOCK_UTMI_CLK>;
+ <&gcc GCC_USB0_MASTER_CLK>,
+ <&gcc GCC_USB0_SLEEP_CLK>,
+ <&gcc GCC_USB0_MOCK_UTMI_CLK>;
clock-names = "cfg_noc",
- "core",
- "sleep",
- "mock_utmi";
+ "core",
+ "sleep",
+ "mock_utmi";
assigned-clocks = <&gcc GCC_SYS_NOC_USB0_AXI_CLK>,
<&gcc GCC_USB0_MASTER_CLK>,
@@ -691,31 +685,28 @@ usb3: usb@8af8800 {
<133330000>,
<24000000>;
- interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
+ interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-names = "pwr_event",
+ interrupt-names = "dwc_usb3",
+ "pwr_event",
"qusb2_phy",
"ss_phy_irq";
resets = <&gcc GCC_USB0_BCR>;
- status = "disabled";
- dwc_0: usb@8a00000 {
- compatible = "snps,dwc3";
- reg = <0x0 0x08a00000 0x0 0xcd00>;
- interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
- phys = <&qusb_phy_0>, <&ssphy_0>;
- phy-names = "usb2-phy", "usb3-phy";
- clocks = <&xo>;
- clock-names = "ref";
- tx-fifo-resize;
- snps,parkmode-disable-ss-quirk;
- snps,is-utmi-l1-suspend;
- snps,hird-threshold = /bits/ 8 <0x0>;
- snps,dis_u2_susphy_quirk;
- snps,dis_u3_susphy_quirk;
- };
+ phys = <&qusb_phy_0>, <&ssphy_0>;
+ phy-names = "usb2-phy", "usb3-phy";
+
+ tx-fifo-resize;
+ snps,parkmode-disable-ss-quirk;
+ snps,is-utmi-l1-suspend;
+ snps,hird-threshold = /bits/ 8 <0x0>;
+ snps,dis_u2_susphy_quirk;
+ snps,dis_u3_susphy_quirk;
+
+ status = "disabled";
};
intc: interrupt-controller@b000000 {
--
2.53.0
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v3 08/10] arm64: dts: qcom: ipq8074: move DR mode to board DTS
2026-09-06 4:46 [PATCH v3 00/10] Flatten USB Controller Nodes on IPQ SoCs George Moussalem via B4 Relay
` (6 preceding siblings ...)
2026-09-06 4:46 ` [PATCH v3 07/10] arm64: dts: qcom: ipq6018: Flatten usb controller nodes George Moussalem via B4 Relay
@ 2026-09-06 4:46 ` George Moussalem via B4 Relay
2026-09-07 12:57 ` Konrad Dybcio
2026-09-06 4:46 ` [PATCH v3 09/10] arm64: dts: qcom: ipq8074: Flatten usb controller nodes George Moussalem via B4 Relay
2026-09-06 4:46 ` [PATCH v3 10/10] arm64: dts: qcom: ipq9574: Flatten usb controller node George Moussalem via B4 Relay
9 siblings, 1 reply; 20+ messages in thread
From: George Moussalem via B4 Relay @ 2026-09-06 4:46 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Wesley Cheng, Thinh Nguyen, Bjorn Andersson,
Konrad Dybcio
Cc: linux-arm-msm, linux-usb, devicetree, linux-kernel,
Varadarajan Narayanan, George Moussalem
From: George Moussalem <george.moussalem@outlook.com>
Both controllers are DRD capable, but DR mode currently set to host mode
in the SoC dtsi. Unset it in the SoC dtsi and set it as host mode in the
hk01 board DTS file.
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
---
arch/arm64/boot/dts/qcom/ipq8074-hk01.dts | 8 ++++++++
arch/arm64/boot/dts/qcom/ipq8074.dtsi | 2 --
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/ipq8074-hk01.dts b/arch/arm64/boot/dts/qcom/ipq8074-hk01.dts
index dea5ece600d4..75827676bde9 100644
--- a/arch/arm64/boot/dts/qcom/ipq8074-hk01.dts
+++ b/arch/arm64/boot/dts/qcom/ipq8074-hk01.dts
@@ -52,6 +52,14 @@ &blsp1_uart5 {
status = "okay";
};
+&dwc_0 {
+ dr_mode = "host";
+};
+
+&dwc_1 {
+ dr_mode = "host";
+};
+
&pcie0 {
status = "okay";
};
diff --git a/arch/arm64/boot/dts/qcom/ipq8074.dtsi b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
index 75a5ae30d966..5c57d9cd72fc 100644
--- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
@@ -671,7 +671,6 @@ dwc_0: usb@8a00000 {
snps,hird-threshold = /bits/ 8 <0x0>;
snps,dis_u2_susphy_quirk;
snps,dis_u3_susphy_quirk;
- dr_mode = "host";
};
};
@@ -721,7 +720,6 @@ dwc_1: usb@8c00000 {
snps,hird-threshold = /bits/ 8 <0x0>;
snps,dis_u2_susphy_quirk;
snps,dis_u3_susphy_quirk;
- dr_mode = "host";
};
};
--
2.53.0
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v3 09/10] arm64: dts: qcom: ipq8074: Flatten usb controller nodes
2026-09-06 4:46 [PATCH v3 00/10] Flatten USB Controller Nodes on IPQ SoCs George Moussalem via B4 Relay
` (7 preceding siblings ...)
2026-09-06 4:46 ` [PATCH v3 08/10] arm64: dts: qcom: ipq8074: move DR mode to board DTS George Moussalem via B4 Relay
@ 2026-09-06 4:46 ` George Moussalem via B4 Relay
2026-09-07 13:00 ` Konrad Dybcio
2026-09-06 4:46 ` [PATCH v3 10/10] arm64: dts: qcom: ipq9574: Flatten usb controller node George Moussalem via B4 Relay
9 siblings, 1 reply; 20+ messages in thread
From: George Moussalem via B4 Relay @ 2026-09-06 4:46 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Wesley Cheng, Thinh Nguyen, Bjorn Andersson,
Konrad Dybcio
Cc: linux-arm-msm, linux-usb, devicetree, linux-kernel,
Varadarajan Narayanan, George Moussalem
From: George Moussalem <george.moussalem@outlook.com>
Flatten usb controller nodes and update to using latest bindings and
flattened driver approach.
In addition, fix indentation of properties in both nodes.
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
---
arch/arm64/boot/dts/qcom/ipq8074-hk01.dts | 12 ++--
arch/arm64/boot/dts/qcom/ipq8074.dtsi | 108 ++++++++++++++----------------
2 files changed, 54 insertions(+), 66 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/ipq8074-hk01.dts b/arch/arm64/boot/dts/qcom/ipq8074-hk01.dts
index 75827676bde9..2a3b497f9598 100644
--- a/arch/arm64/boot/dts/qcom/ipq8074-hk01.dts
+++ b/arch/arm64/boot/dts/qcom/ipq8074-hk01.dts
@@ -52,14 +52,6 @@ &blsp1_uart5 {
status = "okay";
};
-&dwc_0 {
- dr_mode = "host";
-};
-
-&dwc_1 {
- dr_mode = "host";
-};
-
&pcie0 {
status = "okay";
};
@@ -125,9 +117,13 @@ &ssphy_1 {
};
&usb_0 {
+ dr_mode = "host";
+
status = "okay";
};
&usb_1 {
+ dr_mode = "host";
+
status = "okay";
};
diff --git a/arch/arm64/boot/dts/qcom/ipq8074.dtsi b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
index 5c57d9cd72fc..45745b58495c 100644
--- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
@@ -625,102 +625,94 @@ qpic_nand: nand-controller@79b0000 {
status = "disabled";
};
- usb_0: usb@8af8800 {
- compatible = "qcom,ipq8074-dwc3", "qcom,dwc3";
- reg = <0x08af8800 0x400>;
- #address-cells = <1>;
- #size-cells = <1>;
- ranges;
+ usb_0: usb@8a00000 {
+ compatible = "qcom,ipq8074-dwc3", "qcom,snps-dwc3";
+ reg = <0x08a00000 0xfc100>;
clocks = <&gcc GCC_SYS_NOC_USB0_AXI_CLK>,
- <&gcc GCC_USB0_MASTER_CLK>,
- <&gcc GCC_USB0_SLEEP_CLK>,
- <&gcc GCC_USB0_MOCK_UTMI_CLK>;
+ <&gcc GCC_USB0_MASTER_CLK>,
+ <&gcc GCC_USB0_SLEEP_CLK>,
+ <&gcc GCC_USB0_MOCK_UTMI_CLK>;
clock-names = "cfg_noc",
- "core",
- "sleep",
- "mock_utmi";
+ "core",
+ "sleep",
+ "mock_utmi";
assigned-clocks = <&gcc GCC_SYS_NOC_USB0_AXI_CLK>,
<&gcc GCC_USB0_MASTER_CLK>,
<&gcc GCC_USB0_MOCK_UTMI_CLK>;
assigned-clock-rates = <133330000>,
- <133330000>,
- <19200000>;
+ <133330000>,
+ <19200000>;
- interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
+ interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-names = "pwr_event",
+ interrupt-names = "dwc_usb3",
+ "pwr_event",
"qusb2_phy",
"ss_phy_irq";
power-domains = <&gcc USB0_GDSC>;
+ phys = <&qusb_phy_0>, <&ssphy_0>;
+ phy-names = "usb2-phy", "usb3-phy";
+
+ snps,parkmode-disable-ss-quirk;
+ snps,is-utmi-l1-suspend;
+ snps,hird-threshold = /bits/ 8 <0x0>;
+ snps,dis_u2_susphy_quirk;
+ snps,dis_u3_susphy_quirk;
+
resets = <&gcc GCC_USB0_BCR>;
- status = "disabled";
- dwc_0: usb@8a00000 {
- compatible = "snps,dwc3";
- reg = <0x8a00000 0xcd00>;
- interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
- phys = <&qusb_phy_0>, <&ssphy_0>;
- phy-names = "usb2-phy", "usb3-phy";
- snps,parkmode-disable-ss-quirk;
- snps,is-utmi-l1-suspend;
- snps,hird-threshold = /bits/ 8 <0x0>;
- snps,dis_u2_susphy_quirk;
- snps,dis_u3_susphy_quirk;
- };
+ status = "disabled";
};
- usb_1: usb@8cf8800 {
- compatible = "qcom,ipq8074-dwc3", "qcom,dwc3";
- reg = <0x08cf8800 0x400>;
- #address-cells = <1>;
- #size-cells = <1>;
- ranges;
+ usb_1: usb@8c00000 {
+ compatible = "qcom,ipq8074-dwc3", "qcom,snps-dwc3";
+ reg = <0x08c00000 0xfc100>;
clocks = <&gcc GCC_SYS_NOC_USB1_AXI_CLK>,
- <&gcc GCC_USB1_MASTER_CLK>,
- <&gcc GCC_USB1_SLEEP_CLK>,
- <&gcc GCC_USB1_MOCK_UTMI_CLK>;
+ <&gcc GCC_USB1_MASTER_CLK>,
+ <&gcc GCC_USB1_SLEEP_CLK>,
+ <&gcc GCC_USB1_MOCK_UTMI_CLK>;
clock-names = "cfg_noc",
- "core",
- "sleep",
- "mock_utmi";
+ "core",
+ "sleep",
+ "mock_utmi";
assigned-clocks = <&gcc GCC_SYS_NOC_USB1_AXI_CLK>,
<&gcc GCC_USB1_MASTER_CLK>,
<&gcc GCC_USB1_MOCK_UTMI_CLK>;
assigned-clock-rates = <133330000>,
- <133330000>,
- <19200000>;
+ <133330000>,
+ <19200000>;
- interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+ interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-names = "pwr_event",
+ interrupt-names = "dwc_usb3",
+ "pwr_event",
"qusb2_phy",
"ss_phy_irq";
power-domains = <&gcc USB1_GDSC>;
+ phys = <&qusb_phy_1>, <&ssphy_1>;
+ phy-names = "usb2-phy", "usb3-phy";
+
+ snps,parkmode-disable-ss-quirk;
+ snps,is-utmi-l1-suspend;
+ snps,hird-threshold = /bits/ 8 <0x0>;
+ snps,dis_u2_susphy_quirk;
+ snps,dis_u3_susphy_quirk;
+
resets = <&gcc GCC_USB1_BCR>;
- status = "disabled";
- dwc_1: usb@8c00000 {
- compatible = "snps,dwc3";
- reg = <0x8c00000 0xcd00>;
- interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
- phys = <&qusb_phy_1>, <&ssphy_1>;
- phy-names = "usb2-phy", "usb3-phy";
- snps,parkmode-disable-ss-quirk;
- snps,is-utmi-l1-suspend;
- snps,hird-threshold = /bits/ 8 <0x0>;
- snps,dis_u2_susphy_quirk;
- snps,dis_u3_susphy_quirk;
- };
+ status = "disabled";
};
intc: interrupt-controller@b000000 {
--
2.53.0
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v3 10/10] arm64: dts: qcom: ipq9574: Flatten usb controller node
2026-09-06 4:46 [PATCH v3 00/10] Flatten USB Controller Nodes on IPQ SoCs George Moussalem via B4 Relay
` (8 preceding siblings ...)
2026-09-06 4:46 ` [PATCH v3 09/10] arm64: dts: qcom: ipq8074: Flatten usb controller nodes George Moussalem via B4 Relay
@ 2026-09-06 4:46 ` George Moussalem via B4 Relay
2026-09-07 13:34 ` Abel Vesa
2026-09-09 9:09 ` Konrad Dybcio
9 siblings, 2 replies; 20+ messages in thread
From: George Moussalem via B4 Relay @ 2026-09-06 4:46 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Wesley Cheng, Thinh Nguyen, Bjorn Andersson,
Konrad Dybcio
Cc: linux-arm-msm, linux-usb, devicetree, linux-kernel,
Varadarajan Narayanan, George Moussalem
From: George Moussalem <george.moussalem@outlook.com>
Flatten usb controller nodes and update to using latest bindings and
flattened driver approach.
In addition, swap interrupts for dp_hs_phy_irq and dm_hs_phy_irq as
per order in updated binding.
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
---
arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi | 6 +--
arch/arm64/boot/dts/qcom/ipq9574.dtsi | 48 +++++++++++-------------
2 files changed, 23 insertions(+), 31 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi b/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi
index 62877b46f9b3..0d06a838c233 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi
@@ -252,10 +252,6 @@ flash@0 {
};
};
-&usb_0_dwc3 {
- dr_mode = "host";
-};
-
&usb_0_qmpphy {
vdda-pll-supply = <&mp5496_l5>;
vdda-phy-supply = <®ulator_fixed_0p925>;
@@ -272,6 +268,8 @@ &usb_0_qusbphy {
};
&usb3 {
+ dr_mode = "host";
+
status = "okay";
};
diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
index 5a5bda5f21a1..199ec0c2ae9e 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
@@ -756,12 +756,9 @@ usb_0_qmpphy: phy@7d000 {
status = "disabled";
};
- usb3: usb@8af8800 {
- compatible = "qcom,ipq9574-dwc3", "qcom,dwc3";
- reg = <0x08af8800 0x400>;
- #address-cells = <1>;
- #size-cells = <1>;
- ranges;
+ usb3: usb@8a00000 {
+ compatible = "qcom,ipq9574-dwc3", "qcom,snps-dwc3";
+ reg = <0x08a00000 0xfc100>;
clocks = <&gcc GCC_SNOC_USB_CLK>,
<&gcc GCC_USB0_MASTER_CLK>,
@@ -780,32 +777,29 @@ usb3: usb@8af8800 {
assigned-clock-rates = <200000000>,
<24000000>;
- interrupts-extended = <&intc GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
+ interrupts-extended = <&intc GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
+ <&intc GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
<&intc GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
- <&intc GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
- <&intc GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-names = "pwr_event",
+ <&intc GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
+ <&intc GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "dwc_usb3",
+ "pwr_event",
"qusb2_phy",
- "dm_hs_phy_irq",
- "dp_hs_phy_irq";
+ "dp_hs_phy_irq",
+ "dm_hs_phy_irq";
resets = <&gcc GCC_USB_BCR>;
- status = "disabled";
- usb_0_dwc3: usb@8a00000 {
- compatible = "snps,dwc3";
- reg = <0x8a00000 0xcd00>;
- clocks = <&gcc GCC_USB0_MOCK_UTMI_CLK>;
- clock-names = "ref";
- interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
- phys = <&usb_0_qusbphy>, <&usb_0_qmpphy>;
- phy-names = "usb2-phy", "usb3-phy";
- tx-fifo-resize;
- snps,is-utmi-l1-suspend;
- snps,hird-threshold = /bits/ 8 <0x0>;
- snps,dis_u2_susphy_quirk;
- snps,dis_u3_susphy_quirk;
- };
+ phys = <&usb_0_qusbphy>, <&usb_0_qmpphy>;
+ phy-names = "usb2-phy", "usb3-phy";
+
+ tx-fifo-resize;
+ snps,is-utmi-l1-suspend;
+ snps,hird-threshold = /bits/ 8 <0x0>;
+ snps,dis_u2_susphy_quirk;
+ snps,dis_u3_susphy_quirk;
+
+ status = "disabled";
};
intc: interrupt-controller@b000000 {
--
2.53.0
^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [PATCH v3 02/10] usb: dwc3: qcom: Add support for selecting UTMI as reference clock
2026-09-06 4:46 ` [PATCH v3 02/10] usb: dwc3: qcom: Add support for selecting UTMI as reference clock George Moussalem via B4 Relay
@ 2026-09-07 4:06 ` Varadarajan Narayanan
0 siblings, 0 replies; 20+ messages in thread
From: Varadarajan Narayanan @ 2026-09-07 4:06 UTC (permalink / raw)
To: george.moussalem
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Wesley Cheng, Thinh Nguyen, Bjorn Andersson,
Konrad Dybcio, linux-arm-msm, linux-usb, devicetree, linux-kernel
On Sun, Sep 06, 2026 at 08:46:41AM +0400, George Moussalem via B4 Relay wrote:
> From: George Moussalem <george.moussalem@outlook.com>
>
> On many Qualcomm chipsets, the UTMI clock is used as the reference clock
> (ex. IPQ5018, IPQ6018, and IPQ9574 and more). Since moving to the new
> flattened snps-dwc3 model, it is no longer possible to pass the
> reference clock to the dwc3 core driver.
>
> The clock rate is used by the dwc3 core to compute the reference clock
> period and frame length adjustment. This is needed when the reference
> clock rate used computes values that deviate from the hardware defaults.
> Above mentioned SoCs require values different from the defaults and, as
> such, the core initializes with the wrong values which leads to
> non-functional USB operation.
>
> In Qualcomm chipsets, if available, the UTMI clock is used as the
> reference clock. Therefore, acquire the reference clock by name
> ('mock_utmi') and pass its clock rate to the core using the probe_data
> structure.
>
> Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Reviewed-by: Varadarajan Narayanan <varadarajan.narayanan@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v3 01/10] usb: dwc3: core: Allow glue layer to pass reference clock rate
2026-09-06 4:46 ` [PATCH v3 01/10] usb: dwc3: core: Allow glue layer to pass reference clock rate George Moussalem via B4 Relay
@ 2026-09-07 5:05 ` Varadarajan Narayanan
0 siblings, 0 replies; 20+ messages in thread
From: Varadarajan Narayanan @ 2026-09-07 5:05 UTC (permalink / raw)
To: george.moussalem
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Wesley Cheng, Thinh Nguyen, Bjorn Andersson,
Konrad Dybcio, linux-arm-msm, linux-usb, devicetree, linux-kernel
On Sun, Sep 06, 2026 at 08:46:40AM +0400, George Moussalem via B4 Relay wrote:
> From: George Moussalem <george.moussalem@outlook.com>
>
> Add ability to pass the reference clock rate from the glue layer to the
> DWC3 core driver. The core calculates the reference clock period and
> frame length adjustment based on the reference clock rate.
>
> In the flattened snsp-dwc3 model, it is currently not possible to pass a
> reference clock that differs from the default since:
> commit 613a2e655d4d ("usb: dwc3: core: Expose core driver as library")
>
> The new glue layers (incl. Qualcomm's) set the ignore_clocks_and_resets
> flag in dwc3_probe_data to true, which disables the core driver's clock
> management, thus it also doesn't acquire the reference clock from the
> devicetree needed in dwc3_ref_clk_period.
>
> There's an existing DT property 'snps,ref-clock-period-ns', but that's
> been deprecated. In addition, basing the rate from the period is often
> not accurate enough to derive the frame length adjustment value.
>
> This prevents moving chipsets such as IPQ5018, IPQ6018, IPQ5332, IPQ5424
> and IPQ9574 with a reference clock rate that computes values for the
> period and frame length adjustment different from the hardware default
> from moving to the flattened model.
>
> So, add ability to set the reference clock rate in dwc3_probe_data, then
> have the core obtain the clock rate and use that to calculate the
> required period and frame length adjustment.
>
> Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Reviewed-by: Varadarajan Narayanan <varadarajan.narayanan@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v3 06/10] arm64: dts: qcom: ipq6018: move DR mode to board DTS
2026-09-06 4:46 ` [PATCH v3 06/10] arm64: dts: qcom: ipq6018: move DR mode to board DTS George Moussalem via B4 Relay
@ 2026-09-07 12:57 ` Konrad Dybcio
0 siblings, 0 replies; 20+ messages in thread
From: Konrad Dybcio @ 2026-09-07 12:57 UTC (permalink / raw)
To: george.moussalem, Greg Kroah-Hartman, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Wesley Cheng, Thinh Nguyen,
Bjorn Andersson, Konrad Dybcio
Cc: linux-arm-msm, linux-usb, devicetree, linux-kernel,
Varadarajan Narayanan
On 9/6/26 6:46 AM, George Moussalem via B4 Relay wrote:
> From: George Moussalem <george.moussalem@outlook.com>
>
> The controller is DRD capable, but it's currently set to host mode in
> the SoC dtsi. Unset it in the SoC dtsi and set it as host mode in the
> cp01-c1 board DTS file.
>
> Signed-off-by: George Moussalem <george.moussalem@outlook.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v3 08/10] arm64: dts: qcom: ipq8074: move DR mode to board DTS
2026-09-06 4:46 ` [PATCH v3 08/10] arm64: dts: qcom: ipq8074: move DR mode to board DTS George Moussalem via B4 Relay
@ 2026-09-07 12:57 ` Konrad Dybcio
0 siblings, 0 replies; 20+ messages in thread
From: Konrad Dybcio @ 2026-09-07 12:57 UTC (permalink / raw)
To: george.moussalem, Greg Kroah-Hartman, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Wesley Cheng, Thinh Nguyen,
Bjorn Andersson, Konrad Dybcio
Cc: linux-arm-msm, linux-usb, devicetree, linux-kernel,
Varadarajan Narayanan
On 9/6/26 6:46 AM, George Moussalem via B4 Relay wrote:
> From: George Moussalem <george.moussalem@outlook.com>
>
> Both controllers are DRD capable, but DR mode currently set to host mode
> in the SoC dtsi. Unset it in the SoC dtsi and set it as host mode in the
> hk01 board DTS file.
>
> Signed-off-by: George Moussalem <george.moussalem@outlook.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v3 05/10] arm64: dts: qcom: ipq5424: Flatten usb controller nodes
2026-09-06 4:46 ` [PATCH v3 05/10] arm64: dts: qcom: ipq5424: Flatten usb controller nodes George Moussalem via B4 Relay
@ 2026-09-07 12:58 ` Konrad Dybcio
0 siblings, 0 replies; 20+ messages in thread
From: Konrad Dybcio @ 2026-09-07 12:58 UTC (permalink / raw)
To: george.moussalem, Greg Kroah-Hartman, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Wesley Cheng, Thinh Nguyen,
Bjorn Andersson, Konrad Dybcio
Cc: linux-arm-msm, linux-usb, devicetree, linux-kernel,
Varadarajan Narayanan
On 9/6/26 6:46 AM, George Moussalem via B4 Relay wrote:
> From: George Moussalem <george.moussalem@outlook.com>
>
> Flatten usb controller nodes and update to using latest bindings and
> flattened driver approach.
>
> Signed-off-by: George Moussalem <george.moussalem@outlook.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v3 07/10] arm64: dts: qcom: ipq6018: Flatten usb controller nodes
2026-09-06 4:46 ` [PATCH v3 07/10] arm64: dts: qcom: ipq6018: Flatten usb controller nodes George Moussalem via B4 Relay
@ 2026-09-07 12:58 ` Konrad Dybcio
0 siblings, 0 replies; 20+ messages in thread
From: Konrad Dybcio @ 2026-09-07 12:58 UTC (permalink / raw)
To: george.moussalem, Greg Kroah-Hartman, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Wesley Cheng, Thinh Nguyen,
Bjorn Andersson, Konrad Dybcio
Cc: linux-arm-msm, linux-usb, devicetree, linux-kernel,
Varadarajan Narayanan
On 9/6/26 6:46 AM, George Moussalem via B4 Relay wrote:
> From: George Moussalem <george.moussalem@outlook.com>
>
> Flatten usb controller nodes and update to using latest bindings and
> flattened driver approach.
>
> Signed-off-by: George Moussalem <george.moussalem@outlook.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v3 09/10] arm64: dts: qcom: ipq8074: Flatten usb controller nodes
2026-09-06 4:46 ` [PATCH v3 09/10] arm64: dts: qcom: ipq8074: Flatten usb controller nodes George Moussalem via B4 Relay
@ 2026-09-07 13:00 ` Konrad Dybcio
0 siblings, 0 replies; 20+ messages in thread
From: Konrad Dybcio @ 2026-09-07 13:00 UTC (permalink / raw)
To: george.moussalem, Greg Kroah-Hartman, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Wesley Cheng, Thinh Nguyen,
Bjorn Andersson, Konrad Dybcio
Cc: linux-arm-msm, linux-usb, devicetree, linux-kernel,
Varadarajan Narayanan
On 9/6/26 6:46 AM, George Moussalem via B4 Relay wrote:
> From: George Moussalem <george.moussalem@outlook.com>
>
> Flatten usb controller nodes and update to using latest bindings and
> flattened driver approach.
>
> In addition, fix indentation of properties in both nodes.
>
> Signed-off-by: George Moussalem <george.moussalem@outlook.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v3 10/10] arm64: dts: qcom: ipq9574: Flatten usb controller node
2026-09-06 4:46 ` [PATCH v3 10/10] arm64: dts: qcom: ipq9574: Flatten usb controller node George Moussalem via B4 Relay
@ 2026-09-07 13:34 ` Abel Vesa
2026-09-09 9:09 ` Konrad Dybcio
1 sibling, 0 replies; 20+ messages in thread
From: Abel Vesa @ 2026-09-07 13:34 UTC (permalink / raw)
To: george.moussalem
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Wesley Cheng, Thinh Nguyen, Bjorn Andersson,
Konrad Dybcio, linux-arm-msm, linux-usb, devicetree, linux-kernel,
Varadarajan Narayanan
On 26-09-06 08:46:49, George Moussalem via B4 Relay wrote:
> From: George Moussalem <george.moussalem@outlook.com>
>
> Flatten usb controller nodes and update to using latest bindings and
> flattened driver approach.
>
> In addition, swap interrupts for dp_hs_phy_irq and dm_hs_phy_irq as
> per order in updated binding.
>
> Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Reviewed-by: Abel Vesa <abel.vesa@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v3 10/10] arm64: dts: qcom: ipq9574: Flatten usb controller node
2026-09-06 4:46 ` [PATCH v3 10/10] arm64: dts: qcom: ipq9574: Flatten usb controller node George Moussalem via B4 Relay
2026-09-07 13:34 ` Abel Vesa
@ 2026-09-09 9:09 ` Konrad Dybcio
1 sibling, 0 replies; 20+ messages in thread
From: Konrad Dybcio @ 2026-09-09 9:09 UTC (permalink / raw)
To: george.moussalem, Greg Kroah-Hartman, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Wesley Cheng, Thinh Nguyen,
Bjorn Andersson, Konrad Dybcio
Cc: linux-arm-msm, linux-usb, devicetree, linux-kernel,
Varadarajan Narayanan
On 9/6/26 6:46 AM, George Moussalem via B4 Relay wrote:
> From: George Moussalem <george.moussalem@outlook.com>
>
> Flatten usb controller nodes and update to using latest bindings and
> flattened driver approach.
>
> In addition, swap interrupts for dp_hs_phy_irq and dm_hs_phy_irq as
> per order in updated binding.
>
> Signed-off-by: George Moussalem <george.moussalem@outlook.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2026-09-09 9:09 UTC | newest]
Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-06 4:46 [PATCH v3 00/10] Flatten USB Controller Nodes on IPQ SoCs George Moussalem via B4 Relay
2026-09-06 4:46 ` [PATCH v3 01/10] usb: dwc3: core: Allow glue layer to pass reference clock rate George Moussalem via B4 Relay
2026-09-07 5:05 ` Varadarajan Narayanan
2026-09-06 4:46 ` [PATCH v3 02/10] usb: dwc3: qcom: Add support for selecting UTMI as reference clock George Moussalem via B4 Relay
2026-09-07 4:06 ` Varadarajan Narayanan
2026-09-06 4:46 ` [PATCH v3 03/10] arm64: dts: qcom: ipq5018: Flatten usb controller node George Moussalem via B4 Relay
2026-09-06 4:46 ` [PATCH v3 04/10] arm64: dts: qcom: ipq5332: " George Moussalem via B4 Relay
2026-09-06 4:46 ` [PATCH v3 05/10] arm64: dts: qcom: ipq5424: Flatten usb controller nodes George Moussalem via B4 Relay
2026-09-07 12:58 ` Konrad Dybcio
2026-09-06 4:46 ` [PATCH v3 06/10] arm64: dts: qcom: ipq6018: move DR mode to board DTS George Moussalem via B4 Relay
2026-09-07 12:57 ` Konrad Dybcio
2026-09-06 4:46 ` [PATCH v3 07/10] arm64: dts: qcom: ipq6018: Flatten usb controller nodes George Moussalem via B4 Relay
2026-09-07 12:58 ` Konrad Dybcio
2026-09-06 4:46 ` [PATCH v3 08/10] arm64: dts: qcom: ipq8074: move DR mode to board DTS George Moussalem via B4 Relay
2026-09-07 12:57 ` Konrad Dybcio
2026-09-06 4:46 ` [PATCH v3 09/10] arm64: dts: qcom: ipq8074: Flatten usb controller nodes George Moussalem via B4 Relay
2026-09-07 13:00 ` Konrad Dybcio
2026-09-06 4:46 ` [PATCH v3 10/10] arm64: dts: qcom: ipq9574: Flatten usb controller node George Moussalem via B4 Relay
2026-09-07 13:34 ` Abel Vesa
2026-09-09 9:09 ` Konrad Dybcio
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).