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