* [PATCH v3 0/4] Add DT Support for USB on Shikra
@ 2026-07-16 16:29 Krishna Kurapati
2026-07-16 16:29 ` [PATCH v3 1/4] arm64: dts: qcom: Add support for usb nodes " Krishna Kurapati
` (3 more replies)
0 siblings, 4 replies; 11+ messages in thread
From: Krishna Kurapati @ 2026-07-16 16:29 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Krishna Kurapati
Shikra has two USB controllers. Adding both USB controllers support
in this series.
Only the primary port has been enabled in peripheral mode for both CQS and
CQM platforms as I got access to a remote setup and was able to verify
only primary controller. On IQS platform, both the controllers were tested.
Changes in v3:
- USB changes were sent as part of consolidated submission in v2, but
they were later dropped since bindings had to be updated.
- Remove double vote on USB3_PRIM_CLKREF and also removed xo clock.
- Uses &mpm as interrupt reference (sashiko bot)
Link to v2:
https://lore.kernel.org/all/20260519-shikra-dt-v2-0-c01b90fb4395@oss.qualcomm.com/
Changes in v2:
- Moved to using mpm interrupt handler for ss phy irq (sashiko bot)
Link to v1:
https://lore.kernel.org/all/20260512-shikra-dt-v1-0-716438330dd0@oss.qualcomm.com/
Binding dependencies:
- USB controller: https://lore.kernel.org/all/20260711-usb-shikra-v4-v4-1-9d59b9d9aff7@oss.qualcomm.com/ - (RB'd)
- QUSB2 Phy: https://lore.kernel.org/all/20260712-usb-shikra-phy-v6-v6-1-1b3e51bf1541@oss.qualcomm.com/ - (RB'd)
- QMP Phy: https://lore.kernel.org/all/20260712-usb-shikra-phy-v6-v6-2-1b3e51bf1541@oss.qualcomm.com/ - Under review
Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
---
Krishna Kurapati (4):
arm64: dts: qcom: Add support for usb nodes on Shikra
arm64: dts: qcom: Enable Primary USB controller on Shikra CQS platform
arm64: dts: qcom: Enable Primary USB controller on Shikra CQM platform
arm64: dts: qcom: Enable USB controllers on Shikra IQS platform
arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts | 19 +++
arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts | 19 +++
arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts | 35 +++++
arch/arm64/boot/dts/qcom/shikra.dtsi | 221 ++++++++++++++++++++++++++++
4 files changed, 294 insertions(+)
---
base-commit: a99b3734e51c5a737205dd42c35334be1c5746dc
change-id: 20260716-shikra-usb-dt-v3-16e187393c78
Best regards,
--
Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v3 1/4] arm64: dts: qcom: Add support for usb nodes on Shikra
2026-07-16 16:29 [PATCH v3 0/4] Add DT Support for USB on Shikra Krishna Kurapati
@ 2026-07-16 16:29 ` Krishna Kurapati
2026-07-16 16:46 ` sashiko-bot
2026-07-16 16:29 ` [PATCH v3 2/4] arm64: dts: qcom: Enable Primary USB controller on Shikra CQS platform Krishna Kurapati
` (2 subsequent siblings)
3 siblings, 1 reply; 11+ messages in thread
From: Krishna Kurapati @ 2026-07-16 16:29 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Krishna Kurapati
Add support for both USB controllers and their respective phys on Shikra.
Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/shikra.dtsi | 221 +++++++++++++++++++++++++++++++++++
1 file changed, 221 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/shikra.dtsi b/arch/arm64/boot/dts/qcom/shikra.dtsi
index 4e5bc9e17c8e..493c5d999d87 100644
--- a/arch/arm64/boot/dts/qcom/shikra.dtsi
+++ b/arch/arm64/boot/dts/qcom/shikra.dtsi
@@ -9,6 +9,7 @@
#include <dt-bindings/interconnect/qcom,rpm-icc.h>
#include <dt-bindings/interconnect/qcom,shikra.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/phy/phy-qcom-qmp.h>
#include <dt-bindings/power/qcom-rpmpd.h>
/ {
@@ -442,6 +443,85 @@ gcc: clock-controller@1400000 {
#power-domain-cells = <1>;
};
+ usb_1_hsphy: phy@1613000 {
+ compatible = "qcom,shikra-qusb2-phy";
+ reg = <0x0 0x01613000 0x0 0x180>;
+
+ clocks = <&gcc GCC_AHB2PHY_USB_CLK>,
+ <&rpmcc RPM_SMD_XO_CLK_SRC>;
+ clock-names = "cfg_ahb", "ref";
+
+ resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
+ nvmem-cells = <&qusb2_hstx_trim_1>;
+ #phy-cells = <0>;
+
+ status = "disabled";
+ };
+
+ usb_2_hsphy: phy@1617000 {
+ compatible = "qcom,shikra-qusb2-phy";
+ reg = <0x0 0x01617000 0x0 0x180>;
+
+ clocks = <&gcc GCC_AHB2PHY_USB_CLK>,
+ <&rpmcc RPM_SMD_XO_CLK_SRC>;
+ clock-names = "cfg_ahb", "ref";
+
+ resets = <&gcc GCC_QUSB2PHY_SEC_BCR>;
+ nvmem-cells = <&qusb2_hstx_trim_2>;
+ #phy-cells = <0>;
+
+ status = "disabled";
+ };
+
+ usb_qmpphy: phy@1615000 {
+ compatible = "qcom,shikra-qmp-usb3-dp-phy";
+ reg = <0x0 0x01615000 0x0 0x2000>;
+
+ clocks = <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>,
+ <&gcc GCC_USB3_PRIM_CLKREF_EN>,
+ <&gcc GCC_AHB2PHY_USB_CLK>,
+ <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
+ clock-names = "aux",
+ "ref",
+ "cfg_ahb",
+ "pipe";
+
+ resets = <&gcc GCC_USB3PHY_PHY_PRIM_SP0_BCR>,
+ <&gcc GCC_USB3_DP_PHY_PRIM_BCR>,
+ <&gcc GCC_USB3_PHY_PRIM_SP0_BCR>;
+ reset-names = "phy_phy",
+ "dp_phy",
+ "phy";
+
+ #clock-cells = <1>;
+ #phy-cells = <1>;
+ orientation-switch;
+
+ qcom,tcsr-reg = <&tcsr_regs 0xb244 0xb248>;
+
+ status = "disabled";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ usb_qmpphy_out: endpoint {
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ usb_qmpphy_usb_ss_in: endpoint {
+ remote-endpoint = <&usb_1_dwc3_ss>;
+ };
+ };
+ };
+ };
+
system_noc: interconnect@1880000 {
compatible = "qcom,shikra-sys-noc";
reg = <0x0 0x01880000 0x0 0x6a080>;
@@ -493,6 +573,11 @@ qusb2_hstx_trim_1: hstx-trim@25b {
bits = <1 4>;
};
+ qusb2_hstx_trim_2: hstx-trim@25a {
+ reg = <0x25a 0x1>;
+ bits = <4 4>;
+ };
+
gpu_speed_bin: gpu-speed-bin@2006 {
reg = <0x2006 0x2>;
bits = <5 8>;
@@ -640,6 +725,142 @@ &clk_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
};
};
+ usb_2: usb@4c00000 {
+ compatible = "qcom,shikra-dwc3", "qcom,snps-dwc3";
+ reg = <0x0 0x04c00000 0x0 0xfc100>;
+
+ clocks = <&gcc GCC_CFG_NOC_USB2_PRIM_AXI_CLK>,
+ <&gcc GCC_USB20_MASTER_CLK>,
+ <&gcc GCC_CFG_NOC_USB2_PRIM_AXI_CLK>,
+ <&gcc GCC_USB20_SLEEP_CLK>,
+ <&gcc GCC_USB20_MOCK_UTMI_CLK>;
+ clock-names = "cfg_noc",
+ "core",
+ "iface",
+ "sleep",
+ "mock_utmi";
+
+ assigned-clocks = <&gcc GCC_USB20_MOCK_UTMI_CLK>,
+ <&gcc GCC_USB20_MASTER_CLK>;
+ assigned-clock-rates = <19200000>, <133333333>;
+
+ interrupts-extended = <&intc GIC_SPI 507 IRQ_TYPE_LEVEL_HIGH 0>,
+ <&intc GIC_SPI 509 IRQ_TYPE_LEVEL_HIGH 0>,
+ <&intc GIC_SPI 508 IRQ_TYPE_LEVEL_HIGH 0>,
+ <&mpm 59 IRQ_TYPE_LEVEL_HIGH>,
+ <&mpm 58 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "dwc_usb3",
+ "pwr_event",
+ "hs_phy_irq",
+ "dp_hs_phy_irq",
+ "dm_hs_phy_irq";
+
+ iommus = <&apps_smmu 0x140 0x0>;
+
+ maximum-speed = "high-speed";
+
+ phys = <&usb_2_hsphy>;
+ phy-names = "usb2-phy";
+
+ power-domains = <&gcc GCC_USB20_GDSC>;
+
+ qcom,select-utmi-as-pipe-clk;
+ resets = <&gcc GCC_USB20_BCR>;
+
+ snps,dis_u2_susphy_quirk;
+ snps,dis_enblslpm_quirk;
+ snps,has-lpm-erratum;
+ snps,hird-threshold = /bits/ 8 <0x10>;
+
+ usb-role-switch;
+ wakeup-source;
+
+ status = "disabled";
+
+ port {
+ usb_2_dwc3_hs: endpoint {
+ };
+ };
+ };
+
+ usb_1: usb@4e00000 {
+ compatible = "qcom,shikra-dwc3", "qcom,snps-dwc3";
+ reg = <0x0 0x04e00000 0x0 0xfc100>;
+
+ clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
+ <&gcc GCC_USB30_PRIM_MASTER_CLK>,
+ <&gcc GCC_SYS_NOC_USB3_PRIM_AXI_CLK>,
+ <&gcc GCC_USB30_PRIM_SLEEP_CLK>,
+ <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>;
+ clock-names = "cfg_noc",
+ "core",
+ "iface",
+ "sleep",
+ "mock_utmi";
+
+ assigned-clocks = <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
+ <&gcc GCC_USB30_PRIM_MASTER_CLK>;
+ assigned-clock-rates = <19200000>, <133333333>;
+
+ interrupts-extended = <&intc GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH 0>,
+ <&intc GIC_SPI 302 IRQ_TYPE_LEVEL_HIGH 0>,
+ <&intc GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH 0>,
+ <&mpm 91 IRQ_TYPE_LEVEL_HIGH>,
+ <&mpm 90 IRQ_TYPE_LEVEL_HIGH>,
+ <&mpm 12 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "dwc_usb3",
+ "pwr_event",
+ "hs_phy_irq",
+ "dp_hs_phy_irq",
+ "dm_hs_phy_irq",
+ "ss_phy_irq";
+
+ iommus = <&apps_smmu 0x120 0x0>;
+
+ phys = <&usb_1_hsphy>, <&usb_qmpphy QMP_USB43DP_USB3_PHY>;
+ phy-names = "usb2-phy", "usb3-phy";
+
+ power-domains = <&gcc GCC_USB30_PRIM_GDSC>;
+
+ resets = <&gcc GCC_USB30_PRIM_BCR>;
+
+ snps,dis-u1-entry-quirk;
+ snps,dis-u2-entry-quirk;
+ snps,dis_u2_susphy_quirk;
+ snps,dis_u3_susphy_quirk;
+ snps,dis_enblslpm_quirk;
+ snps,has-lpm-erratum;
+ snps,hird-threshold = /bits/ 8 <0x10>;
+ snps,usb3_lpm_capable;
+ snps,parkmode-disable-ss-quirk;
+
+ usb-role-switch;
+
+ wakeup-source;
+
+ status = "disabled";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ usb_1_dwc3_hs: endpoint {
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ usb_1_dwc3_ss: endpoint {
+ remote-endpoint = <&usb_qmpphy_usb_ss_in>;
+ };
+ };
+ };
+ };
+
sram@c11e000 {
compatible = "qcom,shikra-imem", "mmio-sram";
reg = <0x0 0x0c11e000 0x0 0x1000>;
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v3 2/4] arm64: dts: qcom: Enable Primary USB controller on Shikra CQS platform
2026-07-16 16:29 [PATCH v3 0/4] Add DT Support for USB on Shikra Krishna Kurapati
2026-07-16 16:29 ` [PATCH v3 1/4] arm64: dts: qcom: Add support for usb nodes " Krishna Kurapati
@ 2026-07-16 16:29 ` Krishna Kurapati
2026-07-16 16:41 ` sashiko-bot
2026-07-16 17:38 ` Konrad Dybcio
2026-07-16 16:29 ` [PATCH v3 3/4] arm64: dts: qcom: Enable Primary USB controller on Shikra CQM platform Krishna Kurapati
2026-07-16 16:29 ` [PATCH v3 4/4] arm64: dts: qcom: Enable USB controllers on Shikra IQS platform Krishna Kurapati
3 siblings, 2 replies; 11+ messages in thread
From: Krishna Kurapati @ 2026-07-16 16:29 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Krishna Kurapati
Enable primary USB controller in device mode on Shikra CQS platform.
Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts b/arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts
index b3f19a64d7ae..2e96dadd650a 100644
--- a/arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts
+++ b/arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts
@@ -38,3 +38,22 @@ &sdhc_1 {
status = "okay";
};
+
+&usb_1 {
+ status = "okay";
+};
+
+&usb_1_hsphy {
+ vdd-supply = <&pm4125_l12>;
+ vdda-pll-supply = <&pm4125_l13>;
+ vdda-phy-dpdm-supply = <&pm4125_l21>;
+
+ status = "okay";
+};
+
+&usb_qmpphy {
+ vdda-phy-supply = <&pm4125_l8>;
+ vdda-pll-supply = <&pm4125_l13>;
+
+ status = "okay";
+};
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v3 3/4] arm64: dts: qcom: Enable Primary USB controller on Shikra CQM platform
2026-07-16 16:29 [PATCH v3 0/4] Add DT Support for USB on Shikra Krishna Kurapati
2026-07-16 16:29 ` [PATCH v3 1/4] arm64: dts: qcom: Add support for usb nodes " Krishna Kurapati
2026-07-16 16:29 ` [PATCH v3 2/4] arm64: dts: qcom: Enable Primary USB controller on Shikra CQS platform Krishna Kurapati
@ 2026-07-16 16:29 ` Krishna Kurapati
2026-07-16 16:51 ` sashiko-bot
2026-07-16 17:38 ` Konrad Dybcio
2026-07-16 16:29 ` [PATCH v3 4/4] arm64: dts: qcom: Enable USB controllers on Shikra IQS platform Krishna Kurapati
3 siblings, 2 replies; 11+ messages in thread
From: Krishna Kurapati @ 2026-07-16 16:29 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Krishna Kurapati
Enable primary USB controller in device mode on Shikra CQM platform.
Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts b/arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts
index 0a52ab9b7a4c..9867160470a8 100644
--- a/arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts
+++ b/arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts
@@ -38,3 +38,22 @@ &sdhc_1 {
status = "okay";
};
+
+&usb_1 {
+ status = "okay";
+};
+
+&usb_1_hsphy {
+ vdd-supply = <&pm4125_l12>;
+ vdda-pll-supply = <&pm4125_l13>;
+ vdda-phy-dpdm-supply = <&pm4125_l21>;
+
+ status = "okay";
+};
+
+&usb_qmpphy {
+ vdda-phy-supply = <&pm4125_l8>;
+ vdda-pll-supply = <&pm4125_l13>;
+
+ status = "okay";
+};
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v3 4/4] arm64: dts: qcom: Enable USB controllers on Shikra IQS platform
2026-07-16 16:29 [PATCH v3 0/4] Add DT Support for USB on Shikra Krishna Kurapati
` (2 preceding siblings ...)
2026-07-16 16:29 ` [PATCH v3 3/4] arm64: dts: qcom: Enable Primary USB controller on Shikra CQM platform Krishna Kurapati
@ 2026-07-16 16:29 ` Krishna Kurapati
2026-07-16 17:40 ` Konrad Dybcio
3 siblings, 1 reply; 11+ messages in thread
From: Krishna Kurapati @ 2026-07-16 16:29 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Krishna Kurapati
Enable both usb controllers in device mode on Shikra IQS platform.
Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts | 35 +++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts b/arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts
index 3003a47bd759..2d4e34ec3b82 100644
--- a/arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts
+++ b/arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts
@@ -38,3 +38,38 @@ &sdhc_1 {
status = "okay";
};
+
+&usb_1 {
+ dr_mode = "peripheral";
+
+ status = "okay";
+};
+
+&usb_1_hsphy {
+ vdd-supply = <&pm8150_l4>;
+ vdda-pll-supply = <&pm8150_l12>;
+ vdda-phy-dpdm-supply = <&pm8150_l13>;
+
+ status = "okay";
+};
+
+&usb_qmpphy {
+ vdda-phy-supply = <&pm8150_l6>;
+ vdda-pll-supply = <&pm8150_l12>;
+
+ status = "okay";
+};
+
+&usb_2 {
+ dr_mode = "peripheral";
+
+ status = "okay";
+};
+
+&usb_2_hsphy {
+ vdd-supply = <&pm8150_l4>;
+ vdda-pll-supply = <&pm8150_l12>;
+ vdda-phy-dpdm-supply = <&pm8150_l13>;
+
+ status = "okay";
+};
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v3 2/4] arm64: dts: qcom: Enable Primary USB controller on Shikra CQS platform
2026-07-16 16:29 ` [PATCH v3 2/4] arm64: dts: qcom: Enable Primary USB controller on Shikra CQS platform Krishna Kurapati
@ 2026-07-16 16:41 ` sashiko-bot
2026-07-16 17:38 ` Konrad Dybcio
1 sibling, 0 replies; 11+ messages in thread
From: sashiko-bot @ 2026-07-16 16:41 UTC (permalink / raw)
To: Krishna Kurapati; +Cc: robh, conor+dt, devicetree
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Missing `dr_mode = "peripheral"` prevents the USB controller from defaulting to device mode as intended.
--
--- Patch [2]: [PATCH v3 2/4] arm64: dts: qcom: Enable Primary USB controller on Shikra CQS platform ---
commit 2bd6f1e7b8937d47916fb8392363e93f8f9b7c35
Author: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
arm64: dts: qcom: Enable Primary USB controller on Shikra CQS platform
This commit enables the primary USB controller and its associated PHYs on
the Shikra CQS platform, with the stated intent of configuring it in
device mode.
> diff --git a/arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts b/arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts
> index b3f19a64d7aed..2e96dadd650a7 100644
> --- a/arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts
> +++ b/arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts
[ ... ]
> @@ -38,3 +38,22 @@ &sdhc_1 {
>
> status = "okay";
> };
> +
> +&usb_1 {
> + status = "okay";
> +};
[Severity: Medium]
The commit message indicates the intent is to enable the primary USB
controller in device mode, but there is no dr_mode property specified here.
Does this missing property cause the dwc3 driver to default to OTG mode
during boot?
If there is no dynamic role switch defined to drive the role (like a Type-C
connector or extcon), will the controller just wait for a role switch event
and fail to function as a peripheral out of the box?
Should a dr_mode property be explicitly added to this node to ensure
it matches the behavior described in the commit message?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260716-shikra-usb-dt-v3-v3-0-13f73a0571bb@oss.qualcomm.com?part=2
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 1/4] arm64: dts: qcom: Add support for usb nodes on Shikra
2026-07-16 16:29 ` [PATCH v3 1/4] arm64: dts: qcom: Add support for usb nodes " Krishna Kurapati
@ 2026-07-16 16:46 ` sashiko-bot
0 siblings, 0 replies; 11+ messages in thread
From: sashiko-bot @ 2026-07-16 16:46 UTC (permalink / raw)
To: Krishna Kurapati; +Cc: conor+dt, devicetree, robh
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] The 'usb_2' node incorrectly assigns the Configuration NOC clock to the 'iface' clock instead of the System NOC clock.
- [High] The newly added USB PHY nodes specify SoC-specific compatible strings without driver support, and the QMP PHY uses non-standard clock/reset names causing fatal probe failures.
--
--- Patch [1]: [PATCH v3 1/4] arm64: dts: qcom: Add support for usb nodes on Shikra ---
commit 9325329fd1f5c498b9188ae6a3b6adc14bd363e9
Author: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
arm64: dts: qcom: Add support for usb nodes on Shikra
This commit adds support for both USB controllers and their respective phys
on the Shikra platform.
> diff --git a/arch/arm64/boot/dts/qcom/shikra.dtsi b/arch/arm64/boot/dts/qcom/shikra.dtsi
> --- a/arch/arm64/boot/dts/qcom/shikra.dtsi
> +++ b/arch/arm64/boot/dts/qcom/shikra.dtsi
> @@ -442,6 +443,85 @@ gcc: clock-controller@1400000 {
> #power-domain-cells = <1>;
> };
>
> + usb_1_hsphy: phy@1613000 {
> + compatible = "qcom,shikra-qusb2-phy";
[Severity: High]
Does this compatible string have driver support merged, or should it include
a generic fallback? Using an SoC-specific compatible without a matching driver
implementation will prevent the PHY driver from probing.
[ ... ]
> + usb_qmpphy: phy@1615000 {
> + compatible = "qcom,shikra-qmp-usb3-dp-phy";
> + reg = <0x0 0x01615000 0x0 0x2000>;
> +
> + clocks = <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>,
> + <&gcc GCC_USB3_PRIM_CLKREF_EN>,
> + <&gcc GCC_AHB2PHY_USB_CLK>,
> + <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
> + clock-names = "aux",
> + "ref",
> + "cfg_ahb",
> + "pipe";
[Severity: High]
Should the clock name "pipe" be "usb3_pipe" instead?
The upstream QMP combo PHY driver strictly looks up "usb3_pipe" using
devm_clk_get(), and failing to find it will cause a probe failure with
-ENOENT.
> +
> + resets = <&gcc GCC_USB3PHY_PHY_PRIM_SP0_BCR>,
> + <&gcc GCC_USB3_DP_PHY_PRIM_BCR>,
> + <&gcc GCC_USB3_PHY_PRIM_SP0_BCR>;
> + reset-names = "phy_phy",
> + "dp_phy",
> + "phy";
[Severity: High]
Do these reset names deviate from what the QMP combo PHY driver expects?
The driver typically requires "phy" and "common". Deviating from this
list may prevent successful probing of the PHY and the dependent DWC3
controller, causing the USB subsystem to break.
[ ... ]
> + usb_2: usb@4c00000 {
> + compatible = "qcom,shikra-dwc3", "qcom,snps-dwc3";
> + reg = <0x0 0x04c00000 0x0 0xfc100>;
> +
> + clocks = <&gcc GCC_CFG_NOC_USB2_PRIM_AXI_CLK>,
> + <&gcc GCC_USB20_MASTER_CLK>,
> + <&gcc GCC_CFG_NOC_USB2_PRIM_AXI_CLK>,
[Severity: High]
Is the Configuration NOC clock intentionally duplicated here for the "iface"
slot?
The "iface" clock index usually expects the System NOC AXI interconnect clock.
Leaving the System NOC clock unvoted during USB2 operations could lead to
unclocked AXI transactions, potentially causing silent DMA failures or severe
interconnect bus hangs when the controller attempts to access system memory.
> + <&gcc GCC_USB20_SLEEP_CLK>,
> + <&gcc GCC_USB20_MOCK_UTMI_CLK>;
> + clock-names = "cfg_noc",
> + "core",
> + "iface",
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260716-shikra-usb-dt-v3-v3-0-13f73a0571bb@oss.qualcomm.com?part=1
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 3/4] arm64: dts: qcom: Enable Primary USB controller on Shikra CQM platform
2026-07-16 16:29 ` [PATCH v3 3/4] arm64: dts: qcom: Enable Primary USB controller on Shikra CQM platform Krishna Kurapati
@ 2026-07-16 16:51 ` sashiko-bot
2026-07-16 17:38 ` Konrad Dybcio
1 sibling, 0 replies; 11+ messages in thread
From: sashiko-bot @ 2026-07-16 16:51 UTC (permalink / raw)
To: Krishna Kurapati; +Cc: conor+dt, robh, devicetree
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] The `usb_2` controller incorrectly assigns `GCC_CFG_NOC_USB2_PRIM_AXI_CLK` to its `iface` clock instead of the correct system NOC clock `GCC_SYS_NOC_USB2_PRIM_AXI_CLK`.
- [Medium] Missing `dr_mode = "peripheral"` property in the `usb_1` node overlay, causing the controller to fail to initialize in device mode.
--
--- Patch [3]: [PATCH v3 3/4] arm64: dts: qcom: Enable Primary USB controller on Shikra CQM platform ---
commit e2592f76c437910744ef5b9caed7e31cf607381b
Author: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
arm64: dts: qcom: Enable Primary USB controller on Shikra CQM platform
This commit enables the primary USB controller in device mode on the
Shikra CQM platform. It enables the usb_1, usb_1_hsphy, and usb_qmpphy
nodes with their respective supply regulators.
> diff --git a/arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts b/arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts
> index 0a52ab9b7a4c3..9867160470a8e 100644
> --- a/arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts
> +++ b/arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts
> @@ -38,3 +38,22 @@ &sdhc_1 {
>
> status = "okay";
> };
> +
> +&usb_1 {
> + status = "okay";
> +};
[Severity: Medium]
The commit message mentions enabling the primary USB controller in device
mode, but this node doesn't specify the mode.
Without dr_mode = "peripheral", won't the DWC3 core default to OTG mode
and prevent the Qualcomm specific VBUS override from being enabled, causing
the port to fail to enumerate as a device?
Should dr_mode = "peripheral" be added here to ensure it operates in device
mode as intended?
[ ... ]
The following issue was also found in arch/arm64/boot/dts/qcom/shikra.dtsi:
> clocks = <&gcc GCC_CFG_NOC_USB2_PRIM_AXI_CLK>,
> <&gcc GCC_USB20_MASTER_CLK>,
> <&gcc GCC_CFG_NOC_USB2_PRIM_AXI_CLK>,
[Severity: High]
Does this code incorrectly assign GCC_CFG_NOC_USB2_PRIM_AXI_CLK to the usb_2
iface clock instead of the correct system NOC clock
GCC_SYS_NOC_USB2_PRIM_AXI_CLK?
Supplying the configuration NOC clock instead of the system NOC clock for the
iface clock will result in the SYS_NOC clock not being appropriately enabled
during USB AXI transactions. Can this cause AXI bus hangs or access faults,
which could lead to system panics or freezes?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260716-shikra-usb-dt-v3-v3-0-13f73a0571bb@oss.qualcomm.com?part=3
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 2/4] arm64: dts: qcom: Enable Primary USB controller on Shikra CQS platform
2026-07-16 16:29 ` [PATCH v3 2/4] arm64: dts: qcom: Enable Primary USB controller on Shikra CQS platform Krishna Kurapati
2026-07-16 16:41 ` sashiko-bot
@ 2026-07-16 17:38 ` Konrad Dybcio
1 sibling, 0 replies; 11+ messages in thread
From: Konrad Dybcio @ 2026-07-16 17:38 UTC (permalink / raw)
To: Krishna Kurapati, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel
On 7/16/26 6:29 PM, Krishna Kurapati wrote:
> Enable primary USB controller in device mode on Shikra CQS platform.
>
> Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 3/4] arm64: dts: qcom: Enable Primary USB controller on Shikra CQM platform
2026-07-16 16:29 ` [PATCH v3 3/4] arm64: dts: qcom: Enable Primary USB controller on Shikra CQM platform Krishna Kurapati
2026-07-16 16:51 ` sashiko-bot
@ 2026-07-16 17:38 ` Konrad Dybcio
1 sibling, 0 replies; 11+ messages in thread
From: Konrad Dybcio @ 2026-07-16 17:38 UTC (permalink / raw)
To: Krishna Kurapati, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel
On 7/16/26 6:29 PM, Krishna Kurapati wrote:
> Enable primary USB controller in device mode on Shikra CQM platform.
>
> Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 4/4] arm64: dts: qcom: Enable USB controllers on Shikra IQS platform
2026-07-16 16:29 ` [PATCH v3 4/4] arm64: dts: qcom: Enable USB controllers on Shikra IQS platform Krishna Kurapati
@ 2026-07-16 17:40 ` Konrad Dybcio
0 siblings, 0 replies; 11+ messages in thread
From: Konrad Dybcio @ 2026-07-16 17:40 UTC (permalink / raw)
To: Krishna Kurapati, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel
On 7/16/26 6:29 PM, Krishna Kurapati wrote:
> Enable both usb controllers in device mode on Shikra IQS platform.
>
> Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts | 35 +++++++++++++++++++++++++++++
> 1 file changed, 35 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts b/arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts
> index 3003a47bd759..2d4e34ec3b82 100644
> --- a/arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts
> +++ b/arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts
> @@ -38,3 +38,38 @@ &sdhc_1 {
>
> status = "okay";
> };
> +
> +&usb_1 {
> + dr_mode = "peripheral";
Why does this one have to be peripheral if the other boards are otg?
[...]
> +&usb_2 {
> + dr_mode = "peripheral";
> +
> + status = "okay";
And why do the other boards lack the secondary USB?
Konrad
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2026-07-16 17:40 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-16 16:29 [PATCH v3 0/4] Add DT Support for USB on Shikra Krishna Kurapati
2026-07-16 16:29 ` [PATCH v3 1/4] arm64: dts: qcom: Add support for usb nodes " Krishna Kurapati
2026-07-16 16:46 ` sashiko-bot
2026-07-16 16:29 ` [PATCH v3 2/4] arm64: dts: qcom: Enable Primary USB controller on Shikra CQS platform Krishna Kurapati
2026-07-16 16:41 ` sashiko-bot
2026-07-16 17:38 ` Konrad Dybcio
2026-07-16 16:29 ` [PATCH v3 3/4] arm64: dts: qcom: Enable Primary USB controller on Shikra CQM platform Krishna Kurapati
2026-07-16 16:51 ` sashiko-bot
2026-07-16 17:38 ` Konrad Dybcio
2026-07-16 16:29 ` [PATCH v3 4/4] arm64: dts: qcom: Enable USB controllers on Shikra IQS platform Krishna Kurapati
2026-07-16 17:40 ` Konrad Dybcio
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox