* Rockchip specific extensions to the Synopsys Designware Mobile Storage Host Controller 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 Rockchip specific extensions to the Synopsys Designware Mobile Storage Host Controller. Required Properties: * compatible: should be - "rockchip,rk2928-dw-mshc": for Rockchip RK2928 and following, before RK3288 - "rockchip,rk3288-dw-mshc": for Rockchip RK3288 - "rockchip,rv1108-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RV1108 - "rockchip,px30-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip PX30 - "rockchip,rk3036-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK3036 - "rockchip,rk3228-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK322x - "rockchip,rk3328-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK3328 - "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK3368 - "rockchip,rk3399-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK3399 Optional Properties: * clocks: from common clock binding: if ciu-drive and ciu-sample are specified in clock-names, should contain handles to these clocks. * clock-names: Apart from the clock-names described in synopsys-dw-mshc.txt two more clocks "ciu-drive" and "ciu-sample" are supported. They are used to control the clock phases, "ciu-sample" is required for tuning high- speed modes. * rockchip,default-sample-phase: The default phase to set ciu-sample at probing, low speeds or in case where all phases work at tuning time. If not specified 0 deg will be used. * rockchip,desired-num-phases: The desired number of times that the host execute tuning when needed. If not specified, the host will do tuning for 360 times, namely tuning for each degree. * pinctrl-names: should be "default" or "normal" combined with "idle". For SDIO or eMMC devices, recommend to use "default". For SD/MMC cards, recommend to use "normal" combined with "idle" to prevent power leak if vqmmc can't be powered off. "normal" state is the same as "default" state, but "idle" state should define the clk/cmd/data line to be pulled down or pulled none. Example: rkdwmmc0@12200000 { compatible = "rockchip,rk3288-dw-mshc"; reg = <0x12200000 0x1000>; interrupts = <0 75 0>; #address-cells = <1>; #size-cells = <0>; }; /* "default" pinctrl */ &rkdwmmc0{ ... pinctrl-names = "default" pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_det &sdmmc0_bus4>; ... }; /* "normal" combined with "idle" pinctrl */ sdmmc_idle_gpios: sdmmc-idle-gpios { rockchip,pins = <3 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>, <3 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>, <3 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>, <3 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>, <3 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>, <3 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>; }; &rkdwmmc0{ ... pinctrl-names = "normal", "idle"; pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_det &sdmmc0_bus4>; pinctrl-1 = <&sdmmc_idle_gpios &sdmmc0_det>; ... }