xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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