18c2ecf20Sopenharmony_ci* Samsung Exynos specific extensions to the Synopsys Designware Mobile 28c2ecf20Sopenharmony_ci Storage Host Controller 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ciThe Synopsys designware mobile storage host controller is used to interface 58c2ecf20Sopenharmony_cia SoC with storage medium such as eMMC or SD/MMC cards. This file documents 68c2ecf20Sopenharmony_cidifferences between the core Synopsys dw mshc controller properties described 78c2ecf20Sopenharmony_ciby synopsys-dw-mshc.txt and the properties used by the Samsung Exynos specific 88c2ecf20Sopenharmony_ciextensions to the Synopsys Designware Mobile Storage Host Controller. 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ciRequired Properties: 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci* compatible: should be 138c2ecf20Sopenharmony_ci - "samsung,exynos4210-dw-mshc": for controllers with Samsung Exynos4210 148c2ecf20Sopenharmony_ci specific extensions. 158c2ecf20Sopenharmony_ci - "samsung,exynos4412-dw-mshc": for controllers with Samsung Exynos4412 168c2ecf20Sopenharmony_ci specific extensions. 178c2ecf20Sopenharmony_ci - "samsung,exynos5250-dw-mshc": for controllers with Samsung Exynos5250 188c2ecf20Sopenharmony_ci specific extensions. 198c2ecf20Sopenharmony_ci - "samsung,exynos5420-dw-mshc": for controllers with Samsung Exynos5420 208c2ecf20Sopenharmony_ci specific extensions. 218c2ecf20Sopenharmony_ci - "samsung,exynos7-dw-mshc": for controllers with Samsung Exynos7 228c2ecf20Sopenharmony_ci specific extensions. 238c2ecf20Sopenharmony_ci - "samsung,exynos7-dw-mshc-smu": for controllers with Samsung Exynos7 248c2ecf20Sopenharmony_ci specific extensions having an SMU. 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ci* samsung,dw-mshc-ciu-div: Specifies the divider value for the card interface 278c2ecf20Sopenharmony_ci unit (ciu) clock. This property is applicable only for Exynos5 SoC's and 288c2ecf20Sopenharmony_ci ignored for Exynos4 SoC's. The valid range of divider value is 0 to 7. 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci* samsung,dw-mshc-sdr-timing: Specifies the value of CIU clock phase shift value 318c2ecf20Sopenharmony_ci in transmit mode and CIU clock phase shift value in receive mode for single 328c2ecf20Sopenharmony_ci data rate mode operation. Refer notes below for the order of the cells and the 338c2ecf20Sopenharmony_ci valid values. 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ci* samsung,dw-mshc-ddr-timing: Specifies the value of CUI clock phase shift value 368c2ecf20Sopenharmony_ci in transmit mode and CIU clock phase shift value in receive mode for double 378c2ecf20Sopenharmony_ci data rate mode operation. Refer notes below for the order of the cells and the 388c2ecf20Sopenharmony_ci valid values. 398c2ecf20Sopenharmony_ci* samsung,dw-mshc-hs400-timing: Specifies the value of CIU TX and RX clock phase 408c2ecf20Sopenharmony_ci shift value for hs400 mode operation. 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ci Notes for the sdr-timing and ddr-timing values: 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ci The order of the cells should be 458c2ecf20Sopenharmony_ci - First Cell: CIU clock phase shift value for tx mode. 468c2ecf20Sopenharmony_ci - Second Cell: CIU clock phase shift value for rx mode. 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci Valid values for SDR and DDR CIU clock timing for Exynos5250: 498c2ecf20Sopenharmony_ci - valid value for tx phase shift and rx phase shift is 0 to 7. 508c2ecf20Sopenharmony_ci - when CIU clock divider value is set to 3, all possible 8 phase shift 518c2ecf20Sopenharmony_ci values can be used. 528c2ecf20Sopenharmony_ci - if CIU clock divider value is 0 (that is divide by 1), both tx and rx 538c2ecf20Sopenharmony_ci phase shift clocks should be 0. 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_ci* samsung,read-strobe-delay: RCLK (Data strobe) delay to control HS400 mode 568c2ecf20Sopenharmony_ci (Latency value for delay line in Read path) 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ciRequired properties for a slot (Deprecated - Recommend to use one slot per host): 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_ci* gpios: specifies a list of gpios used for command, clock and data bus. The 618c2ecf20Sopenharmony_ci first gpio is the command line and the second gpio is the clock line. The 628c2ecf20Sopenharmony_ci rest of the gpios (depending on the bus-width property) are the data lines in 638c2ecf20Sopenharmony_ci no particular order. The format of the gpio specifier depends on the gpio 648c2ecf20Sopenharmony_ci controller. 658c2ecf20Sopenharmony_ci(Deprecated - Refer to Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt) 668c2ecf20Sopenharmony_ci 678c2ecf20Sopenharmony_ciExample: 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_ci The MSHC controller node can be split into two portions, SoC specific and 708c2ecf20Sopenharmony_ci board specific portions as listed below. 718c2ecf20Sopenharmony_ci 728c2ecf20Sopenharmony_ci dwmmc0@12200000 { 738c2ecf20Sopenharmony_ci compatible = "samsung,exynos5250-dw-mshc"; 748c2ecf20Sopenharmony_ci reg = <0x12200000 0x1000>; 758c2ecf20Sopenharmony_ci interrupts = <0 75 0>; 768c2ecf20Sopenharmony_ci #address-cells = <1>; 778c2ecf20Sopenharmony_ci #size-cells = <0>; 788c2ecf20Sopenharmony_ci }; 798c2ecf20Sopenharmony_ci 808c2ecf20Sopenharmony_ci dwmmc0@12200000 { 818c2ecf20Sopenharmony_ci cap-mmc-highspeed; 828c2ecf20Sopenharmony_ci cap-sd-highspeed; 838c2ecf20Sopenharmony_ci broken-cd; 848c2ecf20Sopenharmony_ci fifo-depth = <0x80>; 858c2ecf20Sopenharmony_ci card-detect-delay = <200>; 868c2ecf20Sopenharmony_ci samsung,dw-mshc-ciu-div = <3>; 878c2ecf20Sopenharmony_ci samsung,dw-mshc-sdr-timing = <2 3>; 888c2ecf20Sopenharmony_ci samsung,dw-mshc-ddr-timing = <1 2>; 898c2ecf20Sopenharmony_ci samsung,dw-mshc-hs400-timing = <0 2>; 908c2ecf20Sopenharmony_ci samsung,read-strobe-delay = <90>; 918c2ecf20Sopenharmony_ci bus-width = <8>; 928c2ecf20Sopenharmony_ci }; 93