* Freescale Enhanced Secure Digital Host Controller (eSDHC)

The Enhanced Secure Digital Host Controller provides an interface
for MMC, SD, and SDIO types of memory cards.

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

Required properties:
  - compatible : should be "fsl,esdhc", or "fsl,<chip>-esdhc".
    Possible compatibles for PowerPC:
	"fsl,mpc8536-esdhc"
	"fsl,mpc8378-esdhc"
	"fsl,p2020-esdhc"
	"fsl,p4080-esdhc"
	"fsl,t1040-esdhc"
	"fsl,t4240-esdhc"
    Possible compatibles for ARM:
	"fsl,ls1012a-esdhc"
	"fsl,ls1028a-esdhc"
	"fsl,ls1088a-esdhc"
	"fsl,ls1043a-esdhc"
	"fsl,ls1046a-esdhc"
	"fsl,ls2080a-esdhc"
  - clock-frequency : specifies eSDHC base clock frequency.

Optional properties:
  - sdhci,wp-inverted : specifies that eSDHC controller reports
    inverted write-protect state; New devices should use the generic
    "wp-inverted" property.
  - sdhci,1-bit-only : specifies that a controller can only handle
    1-bit data transfers. New devices should use the generic
    "bus-width = <1>" property.
  - sdhci,auto-cmd12: specifies that a controller can only handle auto
    CMD12.
  - voltage-ranges : two cells are required, first cell specifies minimum
    slot voltage (mV), second cell specifies maximum slot voltage (mV).
    Several ranges could be specified.
  - little-endian : If the host controller is little-endian mode, specify
    this property. The default endian mode is big-endian.

Example:

sdhci@2e000 {
	compatible = "fsl,mpc8378-esdhc", "fsl,esdhc";
	reg = <0x2e000 0x1000>;
	interrupts = <42 0x8>;
	interrupt-parent = <&ipic>;
	/* Filled in by U-Boot */
	clock-frequency = <0>;
	voltage-ranges = <3300 3300>;
};
