1c66ec88fSEmmanuel Vadot* Samsung Exynos specific extensions to the Synopsys Designware Mobile 2c66ec88fSEmmanuel Vadot Storage Host Controller 3c66ec88fSEmmanuel Vadot 4c66ec88fSEmmanuel VadotThe Synopsys designware mobile storage host controller is used to interface 5c66ec88fSEmmanuel Vadota SoC with storage medium such as eMMC or SD/MMC cards. This file documents 6c66ec88fSEmmanuel Vadotdifferences between the core Synopsys dw mshc controller properties described 7c66ec88fSEmmanuel Vadotby synopsys-dw-mshc.txt and the properties used by the Samsung Exynos specific 8c66ec88fSEmmanuel Vadotextensions to the Synopsys Designware Mobile Storage Host Controller. 9c66ec88fSEmmanuel Vadot 10c66ec88fSEmmanuel VadotRequired Properties: 11c66ec88fSEmmanuel Vadot 12c66ec88fSEmmanuel Vadot* compatible: should be 13c66ec88fSEmmanuel Vadot - "samsung,exynos4210-dw-mshc": for controllers with Samsung Exynos4210 14c66ec88fSEmmanuel Vadot specific extensions. 15c66ec88fSEmmanuel Vadot - "samsung,exynos4412-dw-mshc": for controllers with Samsung Exynos4412 16c66ec88fSEmmanuel Vadot specific extensions. 17c66ec88fSEmmanuel Vadot - "samsung,exynos5250-dw-mshc": for controllers with Samsung Exynos5250 18c66ec88fSEmmanuel Vadot specific extensions. 19c66ec88fSEmmanuel Vadot - "samsung,exynos5420-dw-mshc": for controllers with Samsung Exynos5420 20c66ec88fSEmmanuel Vadot specific extensions. 21c66ec88fSEmmanuel Vadot - "samsung,exynos7-dw-mshc": for controllers with Samsung Exynos7 22c66ec88fSEmmanuel Vadot specific extensions. 23c66ec88fSEmmanuel Vadot - "samsung,exynos7-dw-mshc-smu": for controllers with Samsung Exynos7 24c66ec88fSEmmanuel Vadot specific extensions having an SMU. 25*e67e8565SEmmanuel Vadot - "axis,artpec8-dw-mshc": for controllers with ARTPEC-8 specific 26*e67e8565SEmmanuel Vadot extensions. 27c66ec88fSEmmanuel Vadot 28c66ec88fSEmmanuel Vadot* samsung,dw-mshc-ciu-div: Specifies the divider value for the card interface 29c66ec88fSEmmanuel Vadot unit (ciu) clock. This property is applicable only for Exynos5 SoC's and 30c66ec88fSEmmanuel Vadot ignored for Exynos4 SoC's. The valid range of divider value is 0 to 7. 31c66ec88fSEmmanuel Vadot 32c66ec88fSEmmanuel Vadot* samsung,dw-mshc-sdr-timing: Specifies the value of CIU clock phase shift value 33c66ec88fSEmmanuel Vadot in transmit mode and CIU clock phase shift value in receive mode for single 34c66ec88fSEmmanuel Vadot data rate mode operation. Refer notes below for the order of the cells and the 35c66ec88fSEmmanuel Vadot valid values. 36c66ec88fSEmmanuel Vadot 37c66ec88fSEmmanuel Vadot* samsung,dw-mshc-ddr-timing: Specifies the value of CUI clock phase shift value 38c66ec88fSEmmanuel Vadot in transmit mode and CIU clock phase shift value in receive mode for double 39c66ec88fSEmmanuel Vadot data rate mode operation. Refer notes below for the order of the cells and the 40c66ec88fSEmmanuel Vadot valid values. 41c66ec88fSEmmanuel Vadot* samsung,dw-mshc-hs400-timing: Specifies the value of CIU TX and RX clock phase 42c66ec88fSEmmanuel Vadot shift value for hs400 mode operation. 43c66ec88fSEmmanuel Vadot 44c66ec88fSEmmanuel Vadot Notes for the sdr-timing and ddr-timing values: 45c66ec88fSEmmanuel Vadot 46c66ec88fSEmmanuel Vadot The order of the cells should be 47c66ec88fSEmmanuel Vadot - First Cell: CIU clock phase shift value for tx mode. 48c66ec88fSEmmanuel Vadot - Second Cell: CIU clock phase shift value for rx mode. 49c66ec88fSEmmanuel Vadot 50c66ec88fSEmmanuel Vadot Valid values for SDR and DDR CIU clock timing for Exynos5250: 51c66ec88fSEmmanuel Vadot - valid value for tx phase shift and rx phase shift is 0 to 7. 52c66ec88fSEmmanuel Vadot - when CIU clock divider value is set to 3, all possible 8 phase shift 53c66ec88fSEmmanuel Vadot values can be used. 54c66ec88fSEmmanuel Vadot - if CIU clock divider value is 0 (that is divide by 1), both tx and rx 55c66ec88fSEmmanuel Vadot phase shift clocks should be 0. 56c66ec88fSEmmanuel Vadot 57c66ec88fSEmmanuel Vadot* samsung,read-strobe-delay: RCLK (Data strobe) delay to control HS400 mode 58c66ec88fSEmmanuel Vadot (Latency value for delay line in Read path) 59c66ec88fSEmmanuel Vadot 60c66ec88fSEmmanuel VadotRequired properties for a slot (Deprecated - Recommend to use one slot per host): 61c66ec88fSEmmanuel Vadot 62c66ec88fSEmmanuel Vadot* gpios: specifies a list of gpios used for command, clock and data bus. The 63c66ec88fSEmmanuel Vadot first gpio is the command line and the second gpio is the clock line. The 64c66ec88fSEmmanuel Vadot rest of the gpios (depending on the bus-width property) are the data lines in 65c66ec88fSEmmanuel Vadot no particular order. The format of the gpio specifier depends on the gpio 66c66ec88fSEmmanuel Vadot controller. 67c66ec88fSEmmanuel Vadot(Deprecated - Refer to Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt) 68c66ec88fSEmmanuel Vadot 69c66ec88fSEmmanuel VadotExample: 70c66ec88fSEmmanuel Vadot 71c66ec88fSEmmanuel Vadot The MSHC controller node can be split into two portions, SoC specific and 72c66ec88fSEmmanuel Vadot board specific portions as listed below. 73c66ec88fSEmmanuel Vadot 74c66ec88fSEmmanuel Vadot dwmmc0@12200000 { 75c66ec88fSEmmanuel Vadot compatible = "samsung,exynos5250-dw-mshc"; 76c66ec88fSEmmanuel Vadot reg = <0x12200000 0x1000>; 77c66ec88fSEmmanuel Vadot interrupts = <0 75 0>; 78c66ec88fSEmmanuel Vadot #address-cells = <1>; 79c66ec88fSEmmanuel Vadot #size-cells = <0>; 80c66ec88fSEmmanuel Vadot }; 81c66ec88fSEmmanuel Vadot 82c66ec88fSEmmanuel Vadot dwmmc0@12200000 { 83c66ec88fSEmmanuel Vadot cap-mmc-highspeed; 84c66ec88fSEmmanuel Vadot cap-sd-highspeed; 85c66ec88fSEmmanuel Vadot broken-cd; 86c66ec88fSEmmanuel Vadot fifo-depth = <0x80>; 87c66ec88fSEmmanuel Vadot card-detect-delay = <200>; 88c66ec88fSEmmanuel Vadot samsung,dw-mshc-ciu-div = <3>; 89c66ec88fSEmmanuel Vadot samsung,dw-mshc-sdr-timing = <2 3>; 90c66ec88fSEmmanuel Vadot samsung,dw-mshc-ddr-timing = <1 2>; 91c66ec88fSEmmanuel Vadot samsung,dw-mshc-hs400-timing = <0 2>; 92c66ec88fSEmmanuel Vadot samsung,read-strobe-delay = <90>; 93c66ec88fSEmmanuel Vadot bus-width = <8>; 94c66ec88fSEmmanuel Vadot }; 95