Skip to content

Commit ceb39e1

Browse files
Krishna Kurapatiandersson
authored andcommitted
arm64: dts: qcom: qcs8300: Add support for usb nodes
Add support for USB controllers on QCS8300. The second controller is only High Speed capable. Signed-off-by: Krishna Kurapati <[email protected]> Reviewed-by: Konrad Dybcio <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Bjorn Andersson <[email protected]>
1 parent 795255c commit ceb39e1

File tree

1 file changed

+187
-0
lines changed

1 file changed

+187
-0
lines changed

arch/arm64/boot/dts/qcom/qcs8300.dtsi

Lines changed: 187 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2594,6 +2594,63 @@
25942594
clock-names = "apb_pclk";
25952595
};
25962596

2597+
usb_1_hsphy: phy@8904000 {
2598+
compatible = "qcom,qcs8300-usb-hs-phy",
2599+
"qcom,usb-snps-hs-7nm-phy";
2600+
reg = <0x0 0x08904000 0x0 0x400>;
2601+
2602+
clocks = <&rpmhcc RPMH_CXO_CLK>;
2603+
clock-names = "ref";
2604+
2605+
resets = <&gcc GCC_USB2_PHY_PRIM_BCR>;
2606+
2607+
#phy-cells = <0>;
2608+
2609+
status = "disabled";
2610+
};
2611+
2612+
usb_2_hsphy: phy@8906000 {
2613+
compatible = "qcom,qcs8300-usb-hs-phy",
2614+
"qcom,usb-snps-hs-7nm-phy";
2615+
reg = <0x0 0x08906000 0x0 0x400>;
2616+
2617+
clocks = <&rpmhcc RPMH_CXO_CLK>;
2618+
clock-names = "ref";
2619+
2620+
resets = <&gcc GCC_USB2_PHY_SEC_BCR>;
2621+
2622+
#phy-cells = <0>;
2623+
2624+
status = "disabled";
2625+
};
2626+
2627+
usb_qmpphy: phy@8907000 {
2628+
compatible = "qcom,qcs8300-qmp-usb3-uni-phy";
2629+
reg = <0x0 0x08907000 0x0 0x2000>;
2630+
2631+
clocks = <&gcc GCC_USB3_PRIM_PHY_AUX_CLK>,
2632+
<&gcc GCC_USB_CLKREF_EN>,
2633+
<&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>,
2634+
<&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
2635+
clock-names = "aux",
2636+
"ref",
2637+
"com_aux",
2638+
"pipe";
2639+
2640+
resets = <&gcc GCC_USB3_PHY_PRIM_BCR>,
2641+
<&gcc GCC_USB3PHY_PHY_PRIM_BCR>;
2642+
reset-names = "phy", "phy_phy";
2643+
2644+
power-domains = <&gcc GCC_USB30_PRIM_GDSC>;
2645+
2646+
#clock-cells = <0>;
2647+
clock-output-names = "usb3_prim_phy_pipe_clk_src";
2648+
2649+
#phy-cells = <0>;
2650+
2651+
status = "disabled";
2652+
};
2653+
25972654
serdes0: phy@8909000 {
25982655
compatible = "qcom,qcs8300-dwmac-sgmii-phy", "qcom,sa8775p-dwmac-sgmii-phy";
25992656
reg = <0x0 0x08909000 0x0 0x00000e10>;
@@ -2742,6 +2799,136 @@
27422799
interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>;
27432800
};
27442801

2802+
usb_1: usb@a6f8800 {
2803+
compatible = "qcom,qcs8300-dwc3", "qcom,dwc3";
2804+
reg = <0x0 0x0a6f8800 0x0 0x400>;
2805+
2806+
clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
2807+
<&gcc GCC_USB30_PRIM_MASTER_CLK>,
2808+
<&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>,
2809+
<&gcc GCC_USB30_PRIM_SLEEP_CLK>,
2810+
<&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>;
2811+
clock-names = "cfg_noc",
2812+
"core",
2813+
"iface",
2814+
"sleep",
2815+
"mock_utmi";
2816+
2817+
assigned-clocks = <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
2818+
<&gcc GCC_USB30_PRIM_MASTER_CLK>;
2819+
assigned-clock-rates = <19200000>, <200000000>;
2820+
2821+
interrupts-extended = <&intc GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>,
2822+
<&intc GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>,
2823+
<&pdc 14 IRQ_TYPE_EDGE_BOTH>,
2824+
<&pdc 15 IRQ_TYPE_EDGE_BOTH>,
2825+
<&pdc 12 IRQ_TYPE_LEVEL_HIGH>;
2826+
interrupt-names = "pwr_event",
2827+
"hs_phy_irq",
2828+
"dp_hs_phy_irq",
2829+
"dm_hs_phy_irq",
2830+
"ss_phy_irq";
2831+
2832+
power-domains = <&gcc GCC_USB30_PRIM_GDSC>;
2833+
required-opps = <&rpmhpd_opp_nom>;
2834+
2835+
resets = <&gcc GCC_USB30_PRIM_BCR>;
2836+
interconnects = <&aggre1_noc MASTER_USB3_0 QCOM_ICC_TAG_ALWAYS
2837+
&mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
2838+
<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
2839+
&config_noc SLAVE_USB3_0 QCOM_ICC_TAG_ALWAYS>;
2840+
interconnect-names = "usb-ddr", "apps-usb";
2841+
2842+
wakeup-source;
2843+
2844+
#address-cells = <2>;
2845+
#size-cells = <2>;
2846+
ranges;
2847+
2848+
status = "disabled";
2849+
2850+
usb_1_dwc3: usb@a600000 {
2851+
compatible = "snps,dwc3";
2852+
reg = <0x0 0x0a600000 0x0 0xe000>;
2853+
interrupts = <GIC_SPI 292 IRQ_TYPE_LEVEL_HIGH>;
2854+
iommus = <&apps_smmu 0x80 0x0>;
2855+
phys = <&usb_1_hsphy>, <&usb_qmpphy>;
2856+
phy-names = "usb2-phy", "usb3-phy";
2857+
snps,dis_enblslpm_quirk;
2858+
snps,dis-u1-entry-quirk;
2859+
snps,dis-u2-entry-quirk;
2860+
snps,dis_u2_susphy_quirk;
2861+
snps,dis_u3_susphy_quirk;
2862+
};
2863+
};
2864+
2865+
usb_2: usb@a4f8800 {
2866+
compatible = "qcom,qcs8300-dwc3", "qcom,dwc3";
2867+
reg = <0x0 0x0a4f8800 0x0 0x400>;
2868+
2869+
clocks = <&gcc GCC_CFG_NOC_USB2_PRIM_AXI_CLK>,
2870+
<&gcc GCC_USB20_MASTER_CLK>,
2871+
<&gcc GCC_AGGRE_USB2_PRIM_AXI_CLK>,
2872+
<&gcc GCC_USB20_SLEEP_CLK>,
2873+
<&gcc GCC_USB20_MOCK_UTMI_CLK>;
2874+
clock-names = "cfg_noc",
2875+
"core",
2876+
"iface",
2877+
"sleep",
2878+
"mock_utmi";
2879+
2880+
assigned-clocks = <&gcc GCC_USB20_MOCK_UTMI_CLK>,
2881+
<&gcc GCC_USB20_MASTER_CLK>;
2882+
assigned-clock-rates = <19200000>, <120000000>;
2883+
2884+
interrupts-extended = <&intc GIC_SPI 444 IRQ_TYPE_LEVEL_HIGH>,
2885+
<&intc GIC_SPI 443 IRQ_TYPE_LEVEL_HIGH>,
2886+
<&pdc 10 IRQ_TYPE_EDGE_BOTH>,
2887+
<&pdc 9 IRQ_TYPE_EDGE_BOTH>;
2888+
interrupt-names = "pwr_event",
2889+
"hs_phy_irq",
2890+
"dp_hs_phy_irq",
2891+
"dm_hs_phy_irq";
2892+
2893+
power-domains = <&gcc GCC_USB20_PRIM_GDSC>;
2894+
required-opps = <&rpmhpd_opp_nom>;
2895+
2896+
resets = <&gcc GCC_USB20_PRIM_BCR>;
2897+
2898+
interconnects = <&aggre1_noc MASTER_USB2 QCOM_ICC_TAG_ALWAYS
2899+
&mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
2900+
<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
2901+
&config_noc SLAVE_USB2 QCOM_ICC_TAG_ALWAYS>;
2902+
interconnect-names = "usb-ddr", "apps-usb";
2903+
2904+
qcom,select-utmi-as-pipe-clk;
2905+
wakeup-source;
2906+
2907+
#address-cells = <2>;
2908+
#size-cells = <2>;
2909+
ranges;
2910+
2911+
status = "disabled";
2912+
2913+
usb_2_dwc3: usb@a400000 {
2914+
compatible = "snps,dwc3";
2915+
reg = <0x0 0x0a400000 0x0 0xe000>;
2916+
2917+
interrupts = <GIC_SPI 442 IRQ_TYPE_LEVEL_HIGH>;
2918+
iommus = <&apps_smmu 0x20 0x0>;
2919+
2920+
phys = <&usb_2_hsphy>;
2921+
phy-names = "usb2-phy";
2922+
maximum-speed = "high-speed";
2923+
2924+
snps,dis-u1-entry-quirk;
2925+
snps,dis-u2-entry-quirk;
2926+
snps,dis_u2_susphy_quirk;
2927+
snps,dis_u3_susphy_quirk;
2928+
snps,dis_enblslpm_quirk;
2929+
};
2930+
};
2931+
27452932
videocc: clock-controller@abf0000 {
27462933
compatible = "qcom,qcs8300-videocc";
27472934
reg = <0x0 0x0abf0000 0x0 0x10000>;

0 commit comments

Comments
 (0)