* [PATCH v4 0/2] Add Devicetree support for USB controllers on QCS8300
@ 2024-11-14 5:51 Krishna Kurapati
2024-11-14 5:51 ` [PATCH v4 1/2] arm64: dts: qcom: Add support for usb nodes " Krishna Kurapati
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Krishna Kurapati @ 2024-11-14 5:51 UTC (permalink / raw)
To: Krzysztof Kozlowski, Rob Herring, Bjorn Andersson, Konrad Dybcio,
Conor Dooley, Dmitry Baryshkov
Cc: linux-kernel, linux-arm-msm, devicetree, quic_ppratap, quic_jackp,
Krishna Kurapati
This series aims at enabling USB on QCS8300 which has 2 USB controllers.
The primary controller is SuperSpeed capable and secondary one is
High Speed only capable. Both the High Speed Phys are Femto phys and the
SuperSpeed Phy is a QMP Uni Phy.
Base DT Support has been added for both controllers while only one has
been enabled on Ride Platform. The primary controller has been configured
in device mode. The secondary controller will be enabled in host mode post
addition of SPMI Node which allows control over PMIC Gpios for providing
vbus to connected peripherals.
This series depends on the following series ACKed by upstream maintainers:
Base DT: https://lore.kernel.org/all/20240925-qcs8300_initial_dtsi-v2-0-494c40fa2a42@quicinc.com/
Bindings patches posted at:
https://lore.kernel.org/all/20241009195348.2649368-1-quic_kriskura@quicinc.com/
Link to v1:
https://lore.kernel.org/all/20241009195636.2649952-1-quic_kriskura@quicinc.com/
Link to v2:
https://lore.kernel.org/all/20241011074619.796580-1-quic_kriskura@quicinc.com/
Link to v3:
https://lore.kernel.org/all/20241105164946.2357821-1-quic_kriskura@quicinc.com/
Changes in v4:
Moved properties to match dwc3 node on x1e80100.
Added maximum-speed property.
v4 has only been compile tested since only cosmetic changes have been done.
Krishna Kurapati (2):
arm64: dts: qcom: Add support for usb nodes on QCS8300
arm64: dts: qcom: Enable USB controllers for QCS8300
arch/arm64/boot/dts/qcom/qcs8300-ride.dts | 23 +++
arch/arm64/boot/dts/qcom/qcs8300.dtsi | 187 ++++++++++++++++++++++
2 files changed, 210 insertions(+)
--
2.34.1
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH v4 1/2] arm64: dts: qcom: Add support for usb nodes on QCS8300 2024-11-14 5:51 [PATCH v4 0/2] Add Devicetree support for USB controllers on QCS8300 Krishna Kurapati @ 2024-11-14 5:51 ` Krishna Kurapati 2024-11-14 15:29 ` Konrad Dybcio 2024-11-14 5:51 ` [PATCH v4 2/2] arm64: dts: qcom: Enable USB controllers for QCS8300 Krishna Kurapati 2025-01-08 4:54 ` [PATCH v4 0/2] Add Devicetree support for USB controllers on QCS8300 Bjorn Andersson 2 siblings, 1 reply; 6+ messages in thread From: Krishna Kurapati @ 2024-11-14 5:51 UTC (permalink / raw) To: Krzysztof Kozlowski, Rob Herring, Bjorn Andersson, Konrad Dybcio, Conor Dooley, Dmitry Baryshkov Cc: linux-kernel, linux-arm-msm, devicetree, quic_ppratap, quic_jackp, Krishna Kurapati Add support for USB controllers on QCS8300. The second controller is only High Speed capable. Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com> --- arch/arm64/boot/dts/qcom/qcs8300.dtsi | 187 ++++++++++++++++++++++++++ 1 file changed, 187 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/qcs8300.dtsi b/arch/arm64/boot/dts/qcom/qcs8300.dtsi index 2c35f96c3f28..b4116ce68f4f 100644 --- a/arch/arm64/boot/dts/qcom/qcs8300.dtsi +++ b/arch/arm64/boot/dts/qcom/qcs8300.dtsi @@ -1363,6 +1363,193 @@ IPCC_MPROC_SIGNAL_GLINK_QMP qcom,remote-pid = <5>; }; }; + + usb_1_hsphy: phy@8904000 { + compatible = "qcom,qcs8300-usb-hs-phy", + "qcom,usb-snps-hs-7nm-phy"; + reg = <0x0 0x08904000 0x0 0x400>; + + clocks = <&rpmhcc RPMH_CXO_CLK>; + clock-names = "ref"; + + resets = <&gcc GCC_USB2_PHY_PRIM_BCR>; + + #phy-cells = <0>; + + status = "disabled"; + }; + + usb_2_hsphy: phy@8906000 { + compatible = "qcom,qcs8300-usb-hs-phy", + "qcom,usb-snps-hs-7nm-phy"; + reg = <0x0 0x08906000 0x0 0x400>; + + clocks = <&rpmhcc RPMH_CXO_CLK>; + clock-names = "ref"; + + resets = <&gcc GCC_USB2_PHY_SEC_BCR>; + + #phy-cells = <0>; + + status = "disabled"; + }; + + usb_qmpphy: phy@8907000 { + compatible = "qcom,qcs8300-qmp-usb3-uni-phy"; + reg = <0x0 0x08907000 0x0 0x2000>; + + clocks = <&gcc GCC_USB3_PRIM_PHY_AUX_CLK>, + <&gcc GCC_USB_CLKREF_EN>, + <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>, + <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>; + clock-names = "aux", + "ref", + "com_aux", + "pipe"; + + resets = <&gcc GCC_USB3_PHY_PRIM_BCR>, + <&gcc GCC_USB3PHY_PHY_PRIM_BCR>; + reset-names = "phy", "phy_phy"; + + power-domains = <&gcc GCC_USB30_PRIM_GDSC>; + + #clock-cells = <0>; + clock-output-names = "usb3_prim_phy_pipe_clk_src"; + + #phy-cells = <0>; + + status = "disabled"; + }; + + usb_1: usb@a6f8800 { + compatible = "qcom,qcs8300-dwc3", "qcom,dwc3"; + reg = <0x0 0x0a6f8800 0x0 0x400>; + + clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>, + <&gcc GCC_USB30_PRIM_MASTER_CLK>, + <&gcc GCC_AGGRE_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>, <200000000>; + + interrupts-extended = <&intc GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>, + <&intc GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>, + <&pdc 14 IRQ_TYPE_EDGE_BOTH>, + <&pdc 15 IRQ_TYPE_EDGE_BOTH>, + <&pdc 12 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "pwr_event", + "hs_phy_irq", + "dp_hs_phy_irq", + "dm_hs_phy_irq", + "ss_phy_irq"; + + power-domains = <&gcc GCC_USB30_PRIM_GDSC>; + required-opps = <&rpmhpd_opp_nom>; + + resets = <&gcc GCC_USB30_PRIM_BCR>; + interconnects = <&aggre1_noc MASTER_USB3_0 QCOM_ICC_TAG_ALWAYS + &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>, + <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS + &config_noc SLAVE_USB3_0 QCOM_ICC_TAG_ALWAYS>; + interconnect-names = "usb-ddr", "apps-usb"; + + wakeup-source; + + #address-cells = <2>; + #size-cells = <2>; + ranges; + + status = "disabled"; + + usb_1_dwc3: usb@a600000 { + compatible = "snps,dwc3"; + reg = <0x0 0x0a600000 0x0 0xe000>; + interrupts = <GIC_SPI 292 IRQ_TYPE_LEVEL_HIGH>; + iommus = <&apps_smmu 0x80 0x0>; + phys = <&usb_1_hsphy>, <&usb_qmpphy>; + phy-names = "usb2-phy", "usb3-phy"; + snps,dis_enblslpm_quirk; + snps,dis-u1-entry-quirk; + snps,dis-u2-entry-quirk; + snps,dis_u2_susphy_quirk; + snps,dis_u3_susphy_quirk; + }; + }; + + usb_2: usb@a4f8800 { + compatible = "qcom,qcs8300-dwc3", "qcom,dwc3"; + reg = <0x0 0x0a4f8800 0x0 0x400>; + + clocks = <&gcc GCC_CFG_NOC_USB2_PRIM_AXI_CLK>, + <&gcc GCC_USB20_MASTER_CLK>, + <&gcc GCC_AGGRE_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>, <120000000>; + + interrupts-extended = <&intc GIC_SPI 444 IRQ_TYPE_LEVEL_HIGH>, + <&intc GIC_SPI 443 IRQ_TYPE_LEVEL_HIGH>, + <&pdc 10 IRQ_TYPE_EDGE_BOTH>, + <&pdc 9 IRQ_TYPE_EDGE_BOTH>; + interrupt-names = "pwr_event", + "hs_phy_irq", + "dp_hs_phy_irq", + "dm_hs_phy_irq"; + + power-domains = <&gcc GCC_USB20_PRIM_GDSC>; + required-opps = <&rpmhpd_opp_nom>; + + resets = <&gcc GCC_USB20_PRIM_BCR>; + + interconnects = <&aggre1_noc MASTER_USB2 QCOM_ICC_TAG_ALWAYS + &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>, + <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS + &config_noc SLAVE_USB2 QCOM_ICC_TAG_ALWAYS>; + interconnect-names = "usb-ddr", "apps-usb"; + + qcom,select-utmi-as-pipe-clk; + wakeup-source; + + #address-cells = <2>; + #size-cells = <2>; + ranges; + + status = "disabled"; + + usb_2_dwc3: usb@a400000 { + compatible = "snps,dwc3"; + reg = <0x0 0x0a400000 0x0 0xe000>; + + interrupts = <GIC_SPI 442 IRQ_TYPE_LEVEL_HIGH>; + iommus = <&apps_smmu 0x20 0x0>; + + phys = <&usb_2_hsphy>; + phy-names = "usb2-phy"; + maximum-speed = "high-speed"; + + snps,dis-u1-entry-quirk; + snps,dis-u2-entry-quirk; + snps,dis_u2_susphy_quirk; + snps,dis_u3_susphy_quirk; + snps,dis_enblslpm_quirk; + }; + }; }; arch_timer: timer { -- 2.34.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v4 1/2] arm64: dts: qcom: Add support for usb nodes on QCS8300 2024-11-14 5:51 ` [PATCH v4 1/2] arm64: dts: qcom: Add support for usb nodes " Krishna Kurapati @ 2024-11-14 15:29 ` Konrad Dybcio 0 siblings, 0 replies; 6+ messages in thread From: Konrad Dybcio @ 2024-11-14 15:29 UTC (permalink / raw) To: Krishna Kurapati, Krzysztof Kozlowski, Rob Herring, Bjorn Andersson, Konrad Dybcio, Conor Dooley, Dmitry Baryshkov Cc: linux-kernel, linux-arm-msm, devicetree, quic_ppratap, quic_jackp On 14.11.2024 6:51 AM, Krishna Kurapati wrote: > Add support for USB controllers on QCS8300. The second > controller is only High Speed capable. > > Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com> > --- Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Konrad ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v4 2/2] arm64: dts: qcom: Enable USB controllers for QCS8300 2024-11-14 5:51 [PATCH v4 0/2] Add Devicetree support for USB controllers on QCS8300 Krishna Kurapati 2024-11-14 5:51 ` [PATCH v4 1/2] arm64: dts: qcom: Add support for usb nodes " Krishna Kurapati @ 2024-11-14 5:51 ` Krishna Kurapati 2024-11-25 15:55 ` Konrad Dybcio 2025-01-08 4:54 ` [PATCH v4 0/2] Add Devicetree support for USB controllers on QCS8300 Bjorn Andersson 2 siblings, 1 reply; 6+ messages in thread From: Krishna Kurapati @ 2024-11-14 5:51 UTC (permalink / raw) To: Krzysztof Kozlowski, Rob Herring, Bjorn Andersson, Konrad Dybcio, Conor Dooley, Dmitry Baryshkov Cc: linux-kernel, linux-arm-msm, devicetree, quic_ppratap, quic_jackp, Krishna Kurapati Enable primary USB controller on QCS8300 Ride platform. The primary USB controller is made "peripheral", as this is intended to be connected to a host for debugging use cases. For using the controller in host mode, changing the dr_mode and adding appropriate pinctrl nodes to provide vbus would be sufficient. Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com> --- arch/arm64/boot/dts/qcom/qcs8300-ride.dts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts index 7eed19a694c3..3e925228379c 100644 --- a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts +++ b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts @@ -265,3 +265,26 @@ &ufs_mem_phy { vdda-pll-supply = <&vreg_l5a>; status = "okay"; }; + +&usb_1_hsphy { + vdda-pll-supply = <&vreg_l7a>; + vdda18-supply = <&vreg_l7c>; + vdda33-supply = <&vreg_l9a>; + + status = "okay"; +}; + +&usb_qmpphy { + vdda-phy-supply = <&vreg_l7a>; + vdda-pll-supply = <&vreg_l5a>; + + status = "okay"; +}; + +&usb_1 { + status = "okay"; +}; + +&usb_1_dwc3 { + dr_mode = "peripheral"; +}; -- 2.34.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v4 2/2] arm64: dts: qcom: Enable USB controllers for QCS8300 2024-11-14 5:51 ` [PATCH v4 2/2] arm64: dts: qcom: Enable USB controllers for QCS8300 Krishna Kurapati @ 2024-11-25 15:55 ` Konrad Dybcio 0 siblings, 0 replies; 6+ messages in thread From: Konrad Dybcio @ 2024-11-25 15:55 UTC (permalink / raw) To: Krishna Kurapati, Krzysztof Kozlowski, Rob Herring, Bjorn Andersson, Konrad Dybcio, Conor Dooley, Dmitry Baryshkov Cc: linux-kernel, linux-arm-msm, devicetree, quic_ppratap, quic_jackp On 14.11.2024 6:51 AM, Krishna Kurapati wrote: subject: "arm64: dts: qcom: qcs8300-ride: Enable USB controllers" > Enable primary USB controller on QCS8300 Ride platform. The primary USB > controller is made "peripheral", as this is intended to be connected to > a host for debugging use cases. > > For using the controller in host mode, changing the dr_mode and adding > appropriate pinctrl nodes to provide vbus would be sufficient. > > Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com> > --- With that: Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Konrad ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v4 0/2] Add Devicetree support for USB controllers on QCS8300 2024-11-14 5:51 [PATCH v4 0/2] Add Devicetree support for USB controllers on QCS8300 Krishna Kurapati 2024-11-14 5:51 ` [PATCH v4 1/2] arm64: dts: qcom: Add support for usb nodes " Krishna Kurapati 2024-11-14 5:51 ` [PATCH v4 2/2] arm64: dts: qcom: Enable USB controllers for QCS8300 Krishna Kurapati @ 2025-01-08 4:54 ` Bjorn Andersson 2 siblings, 0 replies; 6+ messages in thread From: Bjorn Andersson @ 2025-01-08 4:54 UTC (permalink / raw) To: Krzysztof Kozlowski, Rob Herring, Konrad Dybcio, Conor Dooley, Dmitry Baryshkov, Krishna Kurapati Cc: linux-kernel, linux-arm-msm, devicetree, quic_ppratap, quic_jackp On Thu, 14 Nov 2024 11:21:50 +0530, Krishna Kurapati wrote: > This series aims at enabling USB on QCS8300 which has 2 USB controllers. > The primary controller is SuperSpeed capable and secondary one is > High Speed only capable. Both the High Speed Phys are Femto phys and the > SuperSpeed Phy is a QMP Uni Phy. > > Base DT Support has been added for both controllers while only one has > been enabled on Ride Platform. The primary controller has been configured > in device mode. The secondary controller will be enabled in host mode post > addition of SPMI Node which allows control over PMIC Gpios for providing > vbus to connected peripherals. > > [...] Applied, thanks! [1/2] arm64: dts: qcom: Add support for usb nodes on QCS8300 commit: ceb39e1ea327a96cdd9fcc54c65664f0659cd9b7 [2/2] arm64: dts: qcom: Enable USB controllers for QCS8300 commit: 46ee6177b76736b49b1f34bec1244e4996fd199c Best regards, -- Bjorn Andersson <andersson@kernel.org> ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-01-08 4:54 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-11-14 5:51 [PATCH v4 0/2] Add Devicetree support for USB controllers on QCS8300 Krishna Kurapati 2024-11-14 5:51 ` [PATCH v4 1/2] arm64: dts: qcom: Add support for usb nodes " Krishna Kurapati 2024-11-14 15:29 ` Konrad Dybcio 2024-11-14 5:51 ` [PATCH v4 2/2] arm64: dts: qcom: Enable USB controllers for QCS8300 Krishna Kurapati 2024-11-25 15:55 ` Konrad Dybcio 2025-01-08 4:54 ` [PATCH v4 0/2] Add Devicetree support for USB controllers on QCS8300 Bjorn Andersson
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox