hc
2023-12-08 01573e231f18eb2d99162747186f59511f56b64d
kernel/Documentation/devicetree/bindings/mmc/sdhci-msm.txt
....@@ -4,15 +4,38 @@
44 and the properties used by the sdhci-msm driver.
55
66 Required properties:
7
-- compatible: Should contain:
7
+- compatible: Should contain a SoC-specific string and a IP version string:
8
+ version strings:
89 "qcom,sdhci-msm-v4" for sdcc versions less than 5.0
9
- "qcom,sdhci-msm-v5" for sdcc versions >= 5.0
10
+ "qcom,sdhci-msm-v5" for sdcc version 5.0
1011 For SDCC version 5.0.0, MCI registers are removed from SDCC
1112 interface and some registers are moved to HC. New compatible
1213 string is added to support this change - "qcom,sdhci-msm-v5".
14
+ full compatible strings with SoC and version:
15
+ "qcom,apq8084-sdhci", "qcom,sdhci-msm-v4"
16
+ "qcom,msm8974-sdhci", "qcom,sdhci-msm-v4"
17
+ "qcom,msm8916-sdhci", "qcom,sdhci-msm-v4"
18
+ "qcom,msm8992-sdhci", "qcom,sdhci-msm-v4"
19
+ "qcom,msm8996-sdhci", "qcom,sdhci-msm-v4"
20
+ "qcom,sm8250-sdhci", "qcom,sdhci-msm-v5"
21
+ "qcom,sdm845-sdhci", "qcom,sdhci-msm-v5"
22
+ "qcom,qcs404-sdhci", "qcom,sdhci-msm-v5"
23
+ "qcom,sc7180-sdhci", "qcom,sdhci-msm-v5";
24
+ NOTE that some old device tree files may be floating around that only
25
+ have the string "qcom,sdhci-msm-v4" without the SoC compatible string
26
+ but doing that should be considered a deprecated practice.
27
+
1328 - reg: Base address and length of the register in the following order:
1429 - Host controller register map (required)
15
- - SD Core register map (required)
30
+ - SD Core register map (required for controllers earlier than msm-v5)
31
+ - CQE register map (Optional, CQE support is present on SDHC instance meant
32
+ for eMMC and version v4.2 and above)
33
+ - Inline Crypto Engine register map (optional)
34
+- reg-names: When CQE register map is supplied, below reg-names are required
35
+ - "hc" for Host controller register map
36
+ - "core" for SD core register map
37
+ - "cqhci" for CQE register map
38
+ - "ice" for Inline Crypto Engine register map (optional)
1639 - interrupts: Should contain an interrupt-specifiers for the interrupts:
1740 - Host controller interrupt (required)
1841 - pinctrl-names: Should contain only one value - "default".
....@@ -25,11 +48,34 @@
2548 "xo" - TCXO clock (optional)
2649 "cal" - reference clock for RCLK delay calibration (optional)
2750 "sleep" - sleep clock for RCLK delay calibration (optional)
51
+ "ice" - clock for Inline Crypto Engine (optional)
52
+
53
+- qcom,ddr-config: Certain chipsets and platforms require particular settings
54
+ for the DDR_CONFIG register. Use this field to specify the register
55
+ value as per the Hardware Programming Guide.
56
+
57
+- qcom,dll-config: Chipset and Platform specific value. Use this field to
58
+ specify the DLL_CONFIG register value as per Hardware Programming Guide.
59
+
60
+Optional Properties:
61
+* Following bus parameters are required for interconnect bandwidth scaling:
62
+- interconnects: Pairs of phandles and interconnect provider specifier
63
+ to denote the edge source and destination ports of
64
+ the interconnect path.
65
+
66
+- interconnect-names: For sdhc, we have two main paths.
67
+ 1. Data path : sdhc to ddr
68
+ 2. Config path : cpu to sdhc
69
+ For Data interconnect path the name supposed to be
70
+ is "sdhc-ddr" and for config interconnect path it is
71
+ "cpu-sdhc".
72
+ Please refer to Documentation/devicetree/bindings/
73
+ interconnect/ for more details.
2874
2975 Example:
3076
3177 sdhc_1: sdhci@f9824900 {
32
- compatible = "qcom,sdhci-msm-v4";
78
+ compatible = "qcom,msm8974-sdhci", "qcom,sdhci-msm-v4";
3379 reg = <0xf9824900 0x11c>, <0xf9824000 0x800>;
3480 interrupts = <0 123 0>;
3581 bus-width = <8>;
....@@ -43,10 +89,16 @@
4389
4490 clocks = <&gcc GCC_SDCC1_APPS_CLK>, <&gcc GCC_SDCC1_AHB_CLK>;
4591 clock-names = "core", "iface";
92
+ interconnects = <&qnoc MASTER_SDCC_ID &qnoc SLAVE_DDR_ID>,
93
+ <&qnoc MASTER_CPU_ID &qnoc SLAVE_SDCC_ID>;
94
+ interconnect-names = "sdhc-ddr","cpu-sdhc";
95
+
96
+ qcom,dll-config = <0x000f642c>;
97
+ qcom,ddr-config = <0x80040868>;
4698 };
4799
48100 sdhc_2: sdhci@f98a4900 {
49
- compatible = "qcom,sdhci-msm-v4";
101
+ compatible = "qcom,msm8974-sdhci", "qcom,sdhci-msm-v4";
50102 reg = <0xf98a4900 0x11c>, <0xf98a4000 0x800>;
51103 interrupts = <0 125 0>;
52104 bus-width = <4>;
....@@ -60,4 +112,7 @@
60112
61113 clocks = <&gcc GCC_SDCC2_APPS_CLK>, <&gcc GCC_SDCC2_AHB_CLK>;
62114 clock-names = "core", "iface";
115
+
116
+ qcom,dll-config = <0x0007642c>;
117
+ qcom,ddr-config = <0x80040868>;
63118 };