]> www.infradead.org Git - linux.git/commitdiff
arm64: dts: qcom: qcs615: add SDHC1 and SDHC2
authorYuanjie Yang <quic_yuanjiey@quicinc.com>
Tue, 17 Dec 2024 10:10:16 +0000 (18:10 +0800)
committerBjorn Andersson <andersson@kernel.org>
Tue, 7 Jan 2025 00:11:51 +0000 (18:11 -0600)
Add SDHC1 and SDHC2 support to the QCS615 Ride platform.

Signed-off-by: Yuanjie Yang <quic_yuanjiey@quicinc.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20241217101017.2933587-2-quic_yuanjiey@quicinc.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/qcs615.dtsi

index 6f87e3072069b7bdc8dba9cbd615471b2003ee10..a1d75d8cb39ef1f64fd830e8100aef9f94148026 100644 (file)
                        };
                };
 
+               sdhc_1: mmc@7c4000 {
+                       compatible = "qcom,qcs615-sdhci", "qcom,sdhci-msm-v5";
+                       reg = <0x0 0x007c4000 0x0 0x1000>,
+                             <0x0 0x007c5000 0x0 0x1000>,
+                             <0x0 0x007c8000 0x0 0x8000>;
+                       reg-names = "hc",
+                                   "cqhci",
+                                   "ice";
+
+                       interrupts = <GIC_SPI 641 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 644 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "hc_irq",
+                                         "pwr_irq";
+
+                       clocks = <&gcc GCC_SDCC1_AHB_CLK>,
+                                <&gcc GCC_SDCC1_APPS_CLK>,
+                                <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_SDCC1_ICE_CORE_CLK>;
+                       clock-names = "iface",
+                                     "core",
+                                     "xo",
+                                     "ice";
+
+                       resets = <&gcc GCC_SDCC1_BCR>;
+
+                       power-domains = <&rpmhpd RPMHPD_CX>;
+                       operating-points-v2 = <&sdhc1_opp_table>;
+                       iommus = <&apps_smmu 0x02c0 0x0>;
+                       interconnects = <&aggre1_noc MASTER_SDCC_1 QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+                                       <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &config_noc SLAVE_SDCC_1 QCOM_ICC_TAG_ACTIVE_ONLY>;
+                       interconnect-names = "sdhc-ddr",
+                                            "cpu-sdhc";
+
+                       qcom,dll-config = <0x000f642c>;
+                       qcom,ddr-config = <0x80040868>;
+                       supports-cqe;
+                       dma-coherent;
+
+                       status = "disabled";
+
+                       sdhc1_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-50000000 {
+                                       opp-hz = /bits/ 64 <50000000>;
+                                       required-opps = <&rpmhpd_opp_low_svs>;
+                               };
+
+                               opp-100000000 {
+                                       opp-hz = /bits/ 64 <100000000>;
+                                       required-opps = <&rpmhpd_opp_svs>;
+                               };
+
+                               opp-200000000 {
+                                       opp-hz = /bits/ 64 <200000000>;
+                                       required-opps = <&rpmhpd_opp_svs_l1>;
+                               };
+
+                               opp-384000000 {
+                                       opp-hz = /bits/ 64 <384000000>;
+                                       required-opps = <&rpmhpd_opp_nom>;
+                               };
+                       };
+               };
+
                gpi_dma0: dma-controller@800000  {
                        compatible = "qcom,qcs615-gpi-dma", "qcom,sdm845-gpi-dma";
                        reg = <0x0 0x800000 0x0 0x60000>;
                                pins = "gpio13";
                                function = "qup1";
                        };
+
+                       sdc1_state_on: sdc1-on-state {
+                               clk-pins {
+                                       pins = "sdc1_clk";
+                                       bias-disable;
+                                       drive-strength = <16>;
+                               };
+
+                               cmd-pins {
+                                       pins = "sdc1_cmd";
+                                       bias-pull-up;
+                                       drive-strength = <10>;
+                               };
+
+                               data-pins {
+                                       pins = "sdc1_data";
+                                       bias-pull-up;
+                                       drive-strength = <10>;
+                               };
+
+                               rclk-pins {
+                                       pins = "sdc1_rclk";
+                                       bias-pull-down;
+                               };
+                       };
+
+                       sdc1_state_off: sdc1-off-state {
+                               clk-pins {
+                                       pins = "sdc1_clk";
+                                       bias-disable;
+                                       drive-strength = <2>;
+                               };
+
+                               cmd-pins {
+                                       pins = "sdc1_cmd";
+                                       bias-pull-up;
+                                       drive-strength = <2>;
+                               };
+
+                               data-pins {
+                                       pins = "sdc1_data";
+                                       bias-pull-up;
+                                       drive-strength = <2>;
+                               };
+
+                               rclk-pins {
+                                       pins = "sdc1_rclk";
+                                       bias-pull-down;
+                               };
+                       };
+
+                       sdc2_state_on: sdc2-on-state {
+                               clk-pins {
+                                       pins = "sdc2_clk";
+                                       bias-disable;
+                                       drive-strength = <16>;
+                               };
+
+                               cmd-pins {
+                                       pins = "sdc2_cmd";
+                                       bias-pull-up;
+                                       drive-strength = <10>;
+                               };
+
+                               data-pins {
+                                       pins = "sdc2_data";
+                                       bias-pull-up;
+                                       drive-strength = <10>;
+                               };
+                       };
+
+                       sdc2_state_off: sdc2-off-state {
+                               clk-pins {
+                                       pins = "sdc2_clk";
+                                       bias-disable;
+                                       drive-strength = <2>;
+                               };
+
+                               cmd-pins {
+                                       pins = "sdc2_cmd";
+                                       bias-pull-up;
+                                       drive-strength = <2>;
+                               };
+
+                               data-pins {
+                                       pins = "sdc2_data";
+                                       bias-pull-up;
+                                       drive-strength = <2>;
+                               };
+                       };
                };
 
                stm@6002000 {
                        };
                };
 
+               sdhc_2: mmc@8804000 {
+                       compatible = "qcom,qcs615-sdhci", "qcom,sdhci-msm-v5";
+                       reg = <0x0 0x08804000 0x0 0x1000>;
+                       reg-names = "hc";
+
+                       interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "hc_irq",
+                                         "pwr_irq";
+
+                       clocks = <&gcc GCC_SDCC2_AHB_CLK>,
+                                <&gcc GCC_SDCC2_APPS_CLK>,
+                                <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "iface",
+                                     "core",
+                                     "xo";
+
+                       power-domains = <&rpmhpd RPMHPD_CX>;
+                       operating-points-v2 = <&sdhc2_opp_table>;
+                       iommus = <&apps_smmu 0x02a0 0x0>;
+                       resets = <&gcc GCC_SDCC2_BCR>;
+                       interconnects = <&aggre1_noc MASTER_SDCC_2 QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+                                       <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &config_noc SLAVE_SDCC_2 QCOM_ICC_TAG_ACTIVE_ONLY>;
+                       interconnect-names = "sdhc-ddr",
+                                            "cpu-sdhc";
+
+                       qcom,dll-config = <0x0007642c>;
+                       qcom,ddr-config = <0x80040868>;
+                       dma-coherent;
+
+                       status = "disabled";
+
+                       sdhc2_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-50000000 {
+                                       opp-hz = /bits/ 64 <50000000>;
+                                       required-opps = <&rpmhpd_opp_low_svs>;
+                               };
+
+                               opp-100000000 {
+                                       opp-hz = /bits/ 64 <100000000>;
+                                       required-opps = <&rpmhpd_opp_svs>;
+                               };
+
+                               opp-202000000 {
+                                       opp-hz = /bits/ 64 <202000000>;
+                                       required-opps = <&rpmhpd_opp_nom>;
+                               };
+                       };
+               };
+
                dc_noc: interconnect@9160000 {
                        reg = <0x0 0x09160000 0x0 0x3200>;
                        compatible = "qcom,qcs615-dc-noc";