* [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
* 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
* [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
* 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 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
* [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
* 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 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
* [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 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