1* Qualcomm SDHCI controller (sdhci-msm) 2 3This file documents differences between the core properties in mmc.txt 4and the properties used by the sdhci-msm driver. 5 6Required properties: 7- compatible: Should contain a SoC-specific string and a IP version string: 8 version strings: 9 "qcom,sdhci-msm-v4" for sdcc versions less than 5.0 10 "qcom,sdhci-msm-v5" for sdcc version 5.0 11 For SDCC version 5.0.0, MCI registers are removed from SDCC 12 interface and some registers are moved to HC. New compatible 13 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 28- reg: Base address and length of the register in the following order: 29 - Host controller 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- reg-names: When CQE register map is supplied, below reg-names are required 34 - "hc" for Host controller register map 35 - "core" for SD core register map 36 - "cqhci" for CQE register map 37- interrupts: Should contain an interrupt-specifiers for the interrupts: 38 - Host controller interrupt (required) 39- pinctrl-names: Should contain only one value - "default". 40- pinctrl-0: Should specify pin control groups used for this controller. 41- clocks: A list of phandle + clock-specifier pairs for the clocks listed in clock-names. 42- clock-names: Should contain the following: 43 "iface" - Main peripheral bus clock (PCLK/HCLK - AHB Bus clock) (required) 44 "core" - SDC MMC clock (MCLK) (required) 45 "bus" - SDCC bus voter clock (optional) 46 "xo" - TCXO clock (optional) 47 "cal" - reference clock for RCLK delay calibration (optional) 48 "sleep" - sleep clock for RCLK delay calibration (optional) 49 50- qcom,ddr-config: Certain chipsets and platforms require particular settings 51 for the DDR_CONFIG register. Use this field to specify the register 52 value as per the Hardware Programming Guide. 53 54- qcom,dll-config: Chipset and Platform specific value. Use this field to 55 specify the DLL_CONFIG register value as per Hardware Programming Guide. 56 57Optional Properties: 58* Following bus parameters are required for interconnect bandwidth scaling: 59- interconnects: Pairs of phandles and interconnect provider specifier 60 to denote the edge source and destination ports of 61 the interconnect path. 62 63- interconnect-names: For sdhc, we have two main paths. 64 1. Data path : sdhc to ddr 65 2. Config path : cpu to sdhc 66 For Data interconnect path the name supposed to be 67 is "sdhc-ddr" and for config interconnect path it is 68 "cpu-sdhc". 69 Please refer to Documentation/devicetree/bindings/ 70 interconnect/ for more details. 71 72Example: 73 74 sdhc_1: sdhci@f9824900 { 75 compatible = "qcom,msm8974-sdhci", "qcom,sdhci-msm-v4"; 76 reg = <0xf9824900 0x11c>, <0xf9824000 0x800>; 77 interrupts = <0 123 0>; 78 bus-width = <8>; 79 non-removable; 80 81 vmmc-supply = <&pm8941_l20>; 82 vqmmc-supply = <&pm8941_s3>; 83 84 pinctrl-names = "default"; 85 pinctrl-0 = <&sdc1_clk &sdc1_cmd &sdc1_data>; 86 87 clocks = <&gcc GCC_SDCC1_APPS_CLK>, <&gcc GCC_SDCC1_AHB_CLK>; 88 clock-names = "core", "iface"; 89 interconnects = <&qnoc MASTER_SDCC_ID &qnoc SLAVE_DDR_ID>, 90 <&qnoc MASTER_CPU_ID &qnoc SLAVE_SDCC_ID>; 91 interconnect-names = "sdhc-ddr","cpu-sdhc"; 92 93 qcom,dll-config = <0x000f642c>; 94 qcom,ddr-config = <0x80040868>; 95 }; 96 97 sdhc_2: sdhci@f98a4900 { 98 compatible = "qcom,msm8974-sdhci", "qcom,sdhci-msm-v4"; 99 reg = <0xf98a4900 0x11c>, <0xf98a4000 0x800>; 100 interrupts = <0 125 0>; 101 bus-width = <4>; 102 cd-gpios = <&msmgpio 62 0x1>; 103 104 vmmc-supply = <&pm8941_l21>; 105 vqmmc-supply = <&pm8941_l13>; 106 107 pinctrl-names = "default"; 108 pinctrl-0 = <&sdc2_clk &sdc2_cmd &sdc2_data>; 109 110 clocks = <&gcc GCC_SDCC2_APPS_CLK>, <&gcc GCC_SDCC2_AHB_CLK>; 111 clock-names = "core", "iface"; 112 113 qcom,dll-config = <0x0007642c>; 114 qcom,ddr-config = <0x80040868>; 115 }; 116