blob: 346c6095a6155138ad01f2d39374a8ed97224d12 [file] [log] [blame]
Dinh Nguyen53126a22013-09-16 15:57:48 -05001* Synopsys Designware Mobile Storage Host Controller
Thomas Abrahamc91eab42012-09-17 18:16:40 +00002
Dinh Nguyen53126a22013-09-16 15:57:48 -05003The Synopsys designware mobile storage host controller is used to interface
Thomas Abrahamc91eab42012-09-17 18:16:40 +00004a SoC with storage medium such as eMMC or SD/MMC cards. This file documents
5differences between the core mmc properties described by mmc.txt and the
Dinh Nguyen53126a22013-09-16 15:57:48 -05006properties used by the Synopsys Designware Mobile Storage Host Controller.
Thomas Abrahamc91eab42012-09-17 18:16:40 +00007
8Required Properties:
9
10* compatible: should be
Dinh Nguyen53126a22013-09-16 15:57:48 -050011 - snps,dw-mshc: for controllers compliant with synopsys dw-mshc.
Thomas Abrahamc91eab42012-09-17 18:16:40 +000012* #address-cells: should be 1.
13* #size-cells: should be 0.
14
15# Slots: The slot specific information are contained within child-nodes with
16 each child-node representing a supported slot. There should be atleast one
17 child node representing a card slot. The name of the child node representing
18 the slot is recommended to be slot@n where n is the unique number of the slot
19 connnected to the controller. The following are optional properties which
20 can be included in the slot child node.
21
22 * reg: specifies the physical slot number. The valid values of this
23 property is 0 to (num-slots -1), where num-slots is the value
24 specified by the num-slots property.
25
26 * bus-width: as documented in mmc core bindings.
27
28 * wp-gpios: specifies the write protect gpio line. The format of the
Doug Andersona70aaa62013-01-11 17:03:50 +000029 gpio specifier depends on the gpio controller. If a GPIO is not used
30 for write-protect, this property is optional.
31
32 * disable-wp: If the wp-gpios property isn't present then (by default)
33 we'd assume that the write protect is hooked up directly to the
34 controller's special purpose write protect line (accessible via
35 the WRTPRT register). However, it's possible that we simply don't
36 want write protect. In that case specify 'disable-wp'.
37 NOTE: This property is not required for slots known to always
38 connect to eMMC or SDIO cards.
Thomas Abrahamc91eab42012-09-17 18:16:40 +000039
40Optional properties:
41
Doug Anderson3c6d89e2013-06-07 10:28:30 -070042* clocks: from common clock binding: handle to biu and ciu clocks for the
43 bus interface unit clock and the card interface unit clock.
44
45* clock-names: from common clock binding: Shall be "biu" and "ciu".
46 If the biu clock is missing we'll simply skip enabling it. If the
47 ciu clock is missing we'll just assume that the clock is running at
48 clock-frequency. It is an error to omit both the ciu clock and the
49 clock-frequency.
50
51* clock-frequency: should be the frequency (in Hz) of the ciu clock. If this
52 is specified and the ciu clock is specified then we'll try to set the ciu
53 clock to this at probe time.
54
Linus Torvaldsc2ac2ae2013-11-18 14:47:30 -080055* clock-freq-min-max: Minimum and Maximum clock frequency for card output
56 clock(cclk_out). If it's not specified, max is 200MHZ and min is 400KHz by default.
57
Thomas Abrahamc91eab42012-09-17 18:16:40 +000058* num-slots: specifies the number of slots supported by the controller.
59 The number of physical slots actually used could be equal or less than the
60 value specified by num-slots. If this property is not specified, the value
61 of num-slot property is assumed to be 1.
62
63* fifo-depth: The maximum size of the tx/rx fifo's. If this property is not
64 specified, the default value of the fifo size is determined from the
65 controller registers.
66
67* card-detect-delay: Delay in milli-seconds before detecting card after card
68 insert event. The default value is 0.
69
Jaehoon Chungc83c8732014-08-07 16:37:59 +090070* supports-highspeed (DEPRECATED): Enables support for high speed cards (up to 50MHz)
71 (use "cap-mmc-highspeed" or "cap-sd-highspeed" instead)
Thomas Abrahamc91eab42012-09-17 18:16:40 +000072
73* broken-cd: as documented in mmc core bindings.
74
Doug Anderson870556a2013-06-07 10:28:29 -070075* vmmc-supply: The phandle to the regulator to use for vmmc. If this is
76 specified we'll defer probe until we can find this regulator.
77
Thomas Abrahamc91eab42012-09-17 18:16:40 +000078Aliases:
79
80- All the MSHC controller nodes should be represented in the aliases node using
81 the following format 'mshc{n}' where n is a unique number for the alias.
82
83Example:
84
85The MSHC controller node can be split into two portions, SoC specific and
86board specific portions as listed below.
87
88 dwmmc0@12200000 {
89 compatible = "snps,dw-mshc";
Doug Anderson3c6d89e2013-06-07 10:28:30 -070090 clocks = <&clock 351>, <&clock 132>;
91 clock-names = "biu", "ciu";
Thomas Abrahamc91eab42012-09-17 18:16:40 +000092 reg = <0x12200000 0x1000>;
93 interrupts = <0 75 0>;
94 #address-cells = <1>;
95 #size-cells = <0>;
96 };
97
98 dwmmc0@12200000 {
Doug Anderson3c6d89e2013-06-07 10:28:30 -070099 clock-frequency = <400000000>;
Linus Torvaldsc2ac2ae2013-11-18 14:47:30 -0800100 clock-freq-min-max = <400000 200000000>;
Thomas Abrahamc91eab42012-09-17 18:16:40 +0000101 num-slots = <1>;
Thomas Abrahamc91eab42012-09-17 18:16:40 +0000102 broken-cd;
103 fifo-depth = <0x80>;
104 card-detect-delay = <200>;
Doug Anderson870556a2013-06-07 10:28:29 -0700105 vmmc-supply = <&buck8>;
Jaehoon Chungc83c8732014-08-07 16:37:59 +0900106 bus-width = <8>;
107 cap-mmc-highspeed;
108 cap-sd-highspeed;
Thomas Abrahamc91eab42012-09-17 18:16:40 +0000109 };