xref: /freebsd-src/sys/contrib/device-tree/Bindings/mmc/exynos-dw-mshc.txt (revision e67e85659c0de33e617e5fbf1028c6e8b49eee53)
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