* Qualcomm SDHCI controller (sdhci-msm)

This file documents differences between the core properties in mmc.txt
and the properties used by the sdhci-msm driver.

Required properties:
- compatible: Should contain a SoC-specific string and a IP version string:
	version strings:
		"qcom,sdhci-msm-v4" for sdcc versions less than 5.0
		"qcom,sdhci-msm-v5" for sdcc version 5.0
		For SDCC version 5.0.0, MCI registers are removed from SDCC
		interface and some registers are moved to HC. New compatible
		string is added to support this change - "qcom,sdhci-msm-v5".
	full compatible strings with SoC and version:
		"qcom,apq8084-sdhci", "qcom,sdhci-msm-v4"
		"qcom,msm8226-sdhci", "qcom,sdhci-msm-v4"
		"qcom,msm8974-sdhci", "qcom,sdhci-msm-v4"
		"qcom,msm8916-sdhci", "qcom,sdhci-msm-v4"
		"qcom,msm8992-sdhci", "qcom,sdhci-msm-v4"
		"qcom,msm8996-sdhci", "qcom,sdhci-msm-v4"
		"qcom,qcs404-sdhci", "qcom,sdhci-msm-v5"
		"qcom,sc7180-sdhci", "qcom,sdhci-msm-v5";
		"qcom,sc7280-sdhci", "qcom,sdhci-msm-v5";
		"qcom,sdm845-sdhci", "qcom,sdhci-msm-v5"
		"qcom,sdx55-sdhci", "qcom,sdhci-msm-v5";
		"qcom,sm8250-sdhci", "qcom,sdhci-msm-v5"
	NOTE that some old device tree files may be floating around that only
	have the string "qcom,sdhci-msm-v4" without the SoC compatible string
	but doing that should be considered a deprecated practice.

- reg: Base address and length of the register in the following order:
	- Host controller register map (required)
	- SD Core register map (required for controllers earlier than msm-v5)
	- CQE register map (Optional, CQE support is present on SDHC instance meant
	                    for eMMC and version v4.2 and above)
	- Inline Crypto Engine register map (optional)
- reg-names: When CQE register map is supplied, below reg-names are required
	- "hc" for Host controller register map
	- "core" for SD core register map
	- "cqhci" for CQE register map
	- "ice" for Inline Crypto Engine register map (optional)
- interrupts: Should contain an interrupt-specifiers for the interrupts:
	- Host controller interrupt (required)
- pinctrl-names: Should contain only one value - "default".
- pinctrl-0: Should specify pin control groups used for this controller.
- clocks: A list of phandle + clock-specifier pairs for the clocks listed in clock-names.
- clock-names: Should contain the following:
	"iface" - Main peripheral bus clock (PCLK/HCLK - AHB Bus clock) (required)
	"core"	- SDC MMC clock (MCLK) (required)
	"bus"	- SDCC bus voter clock (optional)
	"xo"	- TCXO clock (optional)
	"cal"	- reference clock for RCLK delay calibration (optional)
	"sleep"	- sleep clock for RCLK delay calibration (optional)
	"ice" - clock for Inline Crypto Engine (optional)

- qcom,ddr-config: Certain chipsets and platforms require particular settings
	for the DDR_CONFIG register. Use this field to specify the register
	value as per the Hardware Programming Guide.

- qcom,dll-config: Chipset and Platform specific value. Use this field to
	specify the DLL_CONFIG register value as per Hardware Programming Guide.

Optional Properties:
* Following bus parameters are required for interconnect bandwidth scaling:
- interconnects: Pairs of phandles and interconnect provider specifier
		 to denote the edge source and destination ports of
		 the interconnect path.

- interconnect-names: For sdhc, we have two main paths.
		1. Data path : sdhc to ddr
		2. Config path : cpu to sdhc
		For Data interconnect path the name supposed to be
		is "sdhc-ddr" and for config interconnect path it is
		"cpu-sdhc".
		Please refer to Documentation/devicetree/bindings/
		interconnect/ for more details.

Example:

	sdhc_1: sdhci@f9824900 {
		compatible = "qcom,msm8974-sdhci", "qcom,sdhci-msm-v4";
		reg = <0xf9824900 0x11c>, <0xf9824000 0x800>;
		interrupts = <0 123 0>;
		bus-width = <8>;
		non-removable;

		vmmc-supply = <&pm8941_l20>;
		vqmmc-supply = <&pm8941_s3>;

		pinctrl-names = "default";
		pinctrl-0 = <&sdc1_clk &sdc1_cmd &sdc1_data>;

		clocks = <&gcc GCC_SDCC1_APPS_CLK>, <&gcc GCC_SDCC1_AHB_CLK>;
		clock-names = "core", "iface";
		interconnects = <&qnoc MASTER_SDCC_ID &qnoc SLAVE_DDR_ID>,
				<&qnoc MASTER_CPU_ID &qnoc SLAVE_SDCC_ID>;
		interconnect-names = "sdhc-ddr","cpu-sdhc";

		qcom,dll-config = <0x000f642c>;
		qcom,ddr-config = <0x80040868>;
	};

	sdhc_2: sdhci@f98a4900 {
		compatible = "qcom,msm8974-sdhci", "qcom,sdhci-msm-v4";
		reg = <0xf98a4900 0x11c>, <0xf98a4000 0x800>;
		interrupts = <0 125 0>;
		bus-width = <4>;
		cd-gpios = <&msmgpio 62 0x1>;

		vmmc-supply = <&pm8941_l21>;
		vqmmc-supply = <&pm8941_l13>;

		pinctrl-names = "default";
		pinctrl-0 = <&sdc2_clk &sdc2_cmd &sdc2_data>;

		clocks = <&gcc GCC_SDCC2_APPS_CLK>, <&gcc GCC_SDCC2_AHB_CLK>;
		clock-names = "core", "iface";

		qcom,dll-config = <0x0007642c>;
		qcom,ddr-config = <0x80040868>;
	};
