xref: /freebsd/sys/contrib/device-tree/Bindings/mmc/mmci.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel Vadot* ARM PrimeCell MultiMedia Card Interface (MMCI) PL180/1
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotThe ARM PrimeCell MMCI PL180 and PL181 provides an interface for
4*c66ec88fSEmmanuel Vadotreading and writing to MultiMedia and SD cards alike.
5*c66ec88fSEmmanuel Vadot
6*c66ec88fSEmmanuel VadotThis file documents differences between the core properties described
7*c66ec88fSEmmanuel Vadotby mmc.txt and the properties used by the mmci driver. Using "st" as
8*c66ec88fSEmmanuel Vadotthe prefix for a property, indicates support by the ST Micro variant.
9*c66ec88fSEmmanuel Vadot
10*c66ec88fSEmmanuel VadotRequired properties:
11*c66ec88fSEmmanuel Vadot- compatible             : contains "arm,pl18x", "arm,primecell".
12*c66ec88fSEmmanuel Vadot- vmmc-supply            : phandle to the regulator device tree node, mentioned
13*c66ec88fSEmmanuel Vadot                           as the VCC/VDD supply in the eMMC/SD specs.
14*c66ec88fSEmmanuel Vadot
15*c66ec88fSEmmanuel VadotOptional properties:
16*c66ec88fSEmmanuel Vadot- arm,primecell-periphid : contains the PrimeCell Peripheral ID, it overrides
17*c66ec88fSEmmanuel Vadot                           the ID provided by the HW
18*c66ec88fSEmmanuel Vadot- resets                 : phandle to internal reset line.
19*c66ec88fSEmmanuel Vadot			   Should be defined for sdmmc variant.
20*c66ec88fSEmmanuel Vadot- vqmmc-supply           : phandle to the regulator device tree node, mentioned
21*c66ec88fSEmmanuel Vadot                           as the VCCQ/VDD_IO supply in the eMMC/SD specs.
22*c66ec88fSEmmanuel Vadotspecific for ux500 variant:
23*c66ec88fSEmmanuel Vadot- st,sig-dir-dat0        : bus signal direction pin used for DAT[0].
24*c66ec88fSEmmanuel Vadot- st,sig-dir-dat2        : bus signal direction pin used for DAT[2].
25*c66ec88fSEmmanuel Vadot- st,sig-dir-dat31       : bus signal direction pin used for DAT[3] and DAT[1].
26*c66ec88fSEmmanuel Vadot- st,sig-dir-dat74       : bus signal direction pin used for DAT[4] to DAT[7].
27*c66ec88fSEmmanuel Vadot- st,sig-dir-cmd         : cmd signal direction pin used for CMD.
28*c66ec88fSEmmanuel Vadot- st,sig-pin-fbclk       : feedback clock signal pin used.
29*c66ec88fSEmmanuel Vadot
30*c66ec88fSEmmanuel Vadotspecific for sdmmc variant:
31*c66ec88fSEmmanuel Vadot- reg			 : a second base register may be defined if a delay
32*c66ec88fSEmmanuel Vadot                           block is present and used for tuning.
33*c66ec88fSEmmanuel Vadot- st,sig-dir             : signal direction polarity used for cmd, dat0 dat123.
34*c66ec88fSEmmanuel Vadot- st,neg-edge            : data & command phase relation, generated on
35*c66ec88fSEmmanuel Vadot                           sd clock falling edge.
36*c66ec88fSEmmanuel Vadot- st,use-ckin            : use ckin pin from an external driver to sample
37*c66ec88fSEmmanuel Vadot                           the receive data (example: with voltage
38*c66ec88fSEmmanuel Vadot			   switch transceiver).
39*c66ec88fSEmmanuel Vadot
40*c66ec88fSEmmanuel VadotDeprecated properties:
41*c66ec88fSEmmanuel Vadot- mmc-cap-mmc-highspeed  : indicates whether MMC is high speed capable.
42*c66ec88fSEmmanuel Vadot- mmc-cap-sd-highspeed   : indicates whether SD is high speed capable.
43*c66ec88fSEmmanuel Vadot
44*c66ec88fSEmmanuel VadotExample:
45*c66ec88fSEmmanuel Vadot
46*c66ec88fSEmmanuel Vadotsdi0_per1@80126000 {
47*c66ec88fSEmmanuel Vadot	compatible = "arm,pl18x", "arm,primecell";
48*c66ec88fSEmmanuel Vadot	reg = <0x80126000 0x1000>;
49*c66ec88fSEmmanuel Vadot	interrupts = <0 60 IRQ_TYPE_LEVEL_HIGH>;
50*c66ec88fSEmmanuel Vadot
51*c66ec88fSEmmanuel Vadot	dmas = <&dma 29 0 0x2>, /* Logical - DevToMem */
52*c66ec88fSEmmanuel Vadot	       <&dma 29 0 0x0>; /* Logical - MemToDev */
53*c66ec88fSEmmanuel Vadot	dma-names = "rx", "tx";
54*c66ec88fSEmmanuel Vadot
55*c66ec88fSEmmanuel Vadot	clocks = <&prcc_kclk 1 5>, <&prcc_pclk 1 5>;
56*c66ec88fSEmmanuel Vadot	clock-names = "sdi", "apb_pclk";
57*c66ec88fSEmmanuel Vadot
58*c66ec88fSEmmanuel Vadot	max-frequency = <100000000>;
59*c66ec88fSEmmanuel Vadot	bus-width = <4>;
60*c66ec88fSEmmanuel Vadot	cap-sd-highspeed;
61*c66ec88fSEmmanuel Vadot	cap-mmc-highspeed;
62*c66ec88fSEmmanuel Vadot	cd-gpios  = <&gpio2 31 0x4>; // 95
63*c66ec88fSEmmanuel Vadot	st,sig-dir-dat0;
64*c66ec88fSEmmanuel Vadot	st,sig-dir-dat2;
65*c66ec88fSEmmanuel Vadot	st,sig-dir-cmd;
66*c66ec88fSEmmanuel Vadot	st,sig-pin-fbclk;
67*c66ec88fSEmmanuel Vadot
68*c66ec88fSEmmanuel Vadot	vmmc-supply = <&ab8500_ldo_aux3_reg>;
69*c66ec88fSEmmanuel Vadot	vqmmc-supply = <&vmmci>;
70*c66ec88fSEmmanuel Vadot
71*c66ec88fSEmmanuel Vadot	pinctrl-names = "default", "sleep";
72*c66ec88fSEmmanuel Vadot	pinctrl-0 = <&sdi0_default_mode>;
73*c66ec88fSEmmanuel Vadot	pinctrl-1 = <&sdi0_sleep_mode>;
74*c66ec88fSEmmanuel Vadot};
75