* Hisilicon specific extensions to the Synopsys Designware Mobile
  Storage Host Controller

Read synopsys-dw-mshc.txt for more details

The Synopsys designware mobile storage host controller is used to interface
a SoC with storage medium such as eMMC or SD/MMC cards. This file documents
differences between the core Synopsys dw mshc controller properties described
by synopsys-dw-mshc.txt and the properties used by the Hisilicon specific
extensions to the Synopsys Designware Mobile Storage Host Controller.

Required Properties:

* compatible: should be one of the following.
  - "hisilicon,hi3660-dw-mshc": for controllers with hi3660 specific extensions.
  - "hisilicon,hi4511-dw-mshc": for controllers with hi4511 specific extensions.
  - "hisilicon,hi6220-dw-mshc": for controllers with hi6220 specific extensions.

Optional Properties:
- hisilicon,peripheral-syscon: phandle of syscon used to control peripheral.

Example:

	/* for Hi3620 */

	/* SoC portion */
	dwmmc_0: dwmmc0@fcd03000 {
		compatible = "hisilicon,hi4511-dw-mshc";
		reg = <0xfcd03000 0x1000>;
		interrupts = <0 16 4>;
		#address-cells = <1>;
		#size-cells = <0>;
		clocks = <&mmc_clock HI3620_SD_CIUCLK>, <&clock HI3620_DDRC_PER_CLK>;
		clock-names = "ciu", "biu";
	};

	/* Board portion */
	dwmmc0@fcd03000 {
		vmmc-supply = <&ldo12>;
		fifo-depth = <0x100>;
		pinctrl-names = "default";
		pinctrl-0 = <&sd_pmx_pins &sd_cfg_func1 &sd_cfg_func2>;
		bus-width = <4>;
		disable-wp;
		cd-gpios = <&gpio10 3 0>;
		cap-mmc-highspeed;
		cap-sd-highspeed;
	};

	/* for Hi6220 */

	dwmmc_1: dwmmc1@f723e000 {
		compatible = "hisilicon,hi6220-dw-mshc";
		bus-width = <0x4>;
		disable-wp;
		cap-sd-highspeed;
		sd-uhs-sdr12;
		sd-uhs-sdr25;
		card-detect-delay = <200>;
		hisilicon,peripheral-syscon = <&ao_ctrl>;
		reg = <0x0 0xf723e000 0x0 0x1000>;
		interrupts = <0x0 0x49 0x4>;
		clocks = <&clock_sys HI6220_MMC1_CIUCLK>, <&clock_sys HI6220_MMC1_CLK>;
		clock-names = "ciu", "biu";
		cd-gpios = <&gpio1 0 1>;
		pinctrl-names = "default", "idle";
		pinctrl-0 = <&sd_pmx_func &sd_clk_cfg_func &sd_cfg_func>;
		pinctrl-1 = <&sd_pmx_idle &sd_clk_cfg_idle &sd_cfg_idle>;
		vqmmc-supply = <&ldo7>;
		vmmc-supply = <&ldo10>;
	};
