Merge tag '5.1-rc-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / mmc / nvidia,tegra20-sdhci.txt
1 * NVIDIA Tegra Secure Digital Host Controller
2
3 This controller on Tegra family SoCs provides an interface for MMC, SD,
4 and SDIO types of memory cards.
5
6 This file documents differences between the core properties described
7 by mmc.txt and the properties used by the sdhci-tegra driver.
8
9 Required properties:
10 - compatible : should be one of:
11   - "nvidia,tegra20-sdhci": for Tegra20
12   - "nvidia,tegra30-sdhci": for Tegra30
13   - "nvidia,tegra114-sdhci": for Tegra114
14   - "nvidia,tegra124-sdhci": for Tegra124 and Tegra132
15   - "nvidia,tegra210-sdhci": for Tegra210
16   - "nvidia,tegra186-sdhci": for Tegra186
17 - clocks : Must contain one entry, for the module clock.
18   See ../clocks/clock-bindings.txt for details.
19 - resets : Must contain an entry for each entry in reset-names.
20   See ../reset/reset.txt for details.
21 - reset-names : Must include the following entries:
22   - sdhci
23
24 Optional properties:
25 - power-gpios : Specify GPIOs for power control
26
27 Example:
28
29 sdhci@c8000200 {
30         compatible = "nvidia,tegra20-sdhci";
31         reg = <0xc8000200 0x200>;
32         interrupts = <47>;
33         clocks = <&tegra_car 14>;
34         resets = <&tegra_car 14>;
35         reset-names = "sdhci";
36         cd-gpios = <&gpio 69 0>; /* gpio PI5 */
37         wp-gpios = <&gpio 57 0>; /* gpio PH1 */
38         power-gpios = <&gpio 155 0>; /* gpio PT3 */
39         bus-width = <8>;
40 };
41
42 Optional properties for Tegra210, Tegra186 and Tegra194:
43 - pinctrl-names, pinctrl-0, pinctrl-1 : Specify pad voltage
44   configurations. Valid pinctrl-names are "sdmmc-3v3" and "sdmmc-1v8"
45   for controllers supporting multiple voltage levels. The order of names
46   should correspond to the pin configuration states in pinctrl-0 and
47   pinctrl-1.
48 - pinctrl-names : "sdmmc-3v3-drv" and "sdmmc-1v8-drv" are applicable for
49   Tegra210 where pad config registers are in the pinmux register domain
50   for pull-up-strength and pull-down-strength values configuration when
51   using pads at 3V3 and 1V8 levels.
52 - nvidia,only-1-8-v : The presence of this property indicates that the
53   controller operates at a 1.8 V fixed I/O voltage.
54 - nvidia,pad-autocal-pull-up-offset-3v3,
55   nvidia,pad-autocal-pull-down-offset-3v3 : Specify drive strength
56   calibration offsets for 3.3 V signaling modes.
57 - nvidia,pad-autocal-pull-up-offset-1v8,
58   nvidia,pad-autocal-pull-down-offset-1v8 : Specify drive strength
59   calibration offsets for 1.8 V signaling modes.
60 - nvidia,pad-autocal-pull-up-offset-3v3-timeout,
61   nvidia,pad-autocal-pull-down-offset-3v3-timeout : Specify drive
62   strength used as a fallback in case the automatic calibration times
63   out on a 3.3 V signaling mode.
64 - nvidia,pad-autocal-pull-up-offset-1v8-timeout,
65   nvidia,pad-autocal-pull-down-offset-1v8-timeout : Specify drive
66   strength used as a fallback in case the automatic calibration times
67   out on a 1.8 V signaling mode.
68 - nvidia,pad-autocal-pull-up-offset-sdr104,
69   nvidia,pad-autocal-pull-down-offset-sdr104 : Specify drive strength
70   calibration offsets for SDR104 mode.
71 - nvidia,pad-autocal-pull-up-offset-hs400,
72   nvidia,pad-autocal-pull-down-offset-hs400 : Specify drive strength
73   calibration offsets for HS400 mode.
74 - nvidia,default-tap : Specify the default inbound sampling clock
75   trimmer value for non-tunable modes.
76 - nvidia,default-trim : Specify the default outbound clock trimmer
77   value.
78 - nvidia,dqs-trim : Specify DQS trim value for HS400 timing
79
80   Notes on the pad calibration pull up and pulldown offset values:
81     - The property values are drive codes which are programmed into the
82       PD_OFFSET and PU_OFFSET sections of the
83       SDHCI_TEGRA_AUTO_CAL_CONFIG register.
84     - A higher value corresponds to higher drive strength. Please refer
85       to the reference manual of the SoC for correct values.
86     - The SDR104 and HS400 timing specific values are used in
87       corresponding modes if specified.
88
89   Notes on tap and trim values:
90     - The values are used for compensating trace length differences
91       by adjusting the sampling point.
92     - The values are programmed to the Vendor Clock Control Register.
93       Please refer to the reference manual of the SoC for correct
94       values.
95     - The DQS trim values are only used on controllers which support
96       HS400 timing. Only SDMMC4 on Tegra210 and Tegra 186 supports
97       HS400.
98
99 Example:
100 sdhci@700b0000 {
101         compatible = "nvidia,tegra210-sdhci", "nvidia,tegra124-sdhci";
102         reg = <0x0 0x700b0000 0x0 0x200>;
103         interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
104         clocks = <&tegra_car TEGRA210_CLK_SDMMC1>;
105         clock-names = "sdhci";
106         resets = <&tegra_car 14>;
107         reset-names = "sdhci";
108         pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
109         pinctrl-0 = <&sdmmc1_3v3>;
110         pinctrl-1 = <&sdmmc1_1v8>;
111         nvidia,pad-autocal-pull-up-offset-3v3 = <0x00>;
112         nvidia,pad-autocal-pull-down-offset-3v3 = <0x7d>;
113         nvidia,pad-autocal-pull-up-offset-1v8 = <0x7b>;
114         nvidia,pad-autocal-pull-down-offset-1v8 = <0x7b>;
115         status = "disabled";
116 };