~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/mmc/nvidia,tegra20-sdhci.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2 %YAML 1.2
  3 ---
  4 $id: http://devicetree.org/schemas/mmc/nvidia,tegra20-sdhci.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: NVIDIA Tegra Secure Digital Host Controller
  8 
  9 maintainers:
 10   - Thierry Reding <thierry.reding@gmail.com>
 11   - Jon Hunter <jonathanh@nvidia.com>
 12 
 13 description: |
 14   This controller on Tegra family SoCs provides an interface for MMC, SD, and
 15   SDIO types of memory cards.
 16 
 17   This file documents differences between the core properties described by
 18   mmc-controller.yaml and the properties for the Tegra SDHCI controller.
 19 
 20 properties:
 21   compatible:
 22     oneOf:
 23       - enum:
 24           - nvidia,tegra20-sdhci
 25           - nvidia,tegra30-sdhci
 26           - nvidia,tegra114-sdhci
 27           - nvidia,tegra124-sdhci
 28           - nvidia,tegra210-sdhci
 29           - nvidia,tegra186-sdhci
 30           - nvidia,tegra194-sdhci
 31 
 32       - items:
 33           - const: nvidia,tegra132-sdhci
 34           - const: nvidia,tegra124-sdhci
 35 
 36       - items:
 37           - enum:
 38               - nvidia,tegra194-sdhci
 39               - nvidia,tegra234-sdhci
 40           - const: nvidia,tegra186-sdhci
 41 
 42   reg:
 43     maxItems: 1
 44 
 45   interrupts:
 46     maxItems: 1
 47 
 48   assigned-clocks: true
 49   assigned-clock-parents: true
 50   assigned-clock-rates: true
 51 
 52   clocks:
 53     minItems: 1
 54     maxItems: 2
 55 
 56   clock-names:
 57     minItems: 1
 58     maxItems: 2
 59 
 60   resets:
 61     items:
 62       - description: module reset
 63 
 64   reset-names:
 65     items:
 66       - const: sdhci
 67 
 68   power-gpios:
 69     description: specify GPIOs for power control
 70     maxItems: 1
 71 
 72   interconnects:
 73     items:
 74       - description: memory read client
 75       - description: memory write client
 76 
 77   interconnect-names:
 78     items:
 79       - const: dma-mem # read
 80       - const: write
 81 
 82   iommus:
 83     maxItems: 1
 84 
 85   operating-points-v2: true
 86 
 87   power-domains:
 88     items:
 89       - description: phandle to the core power domain
 90 
 91   nvidia,default-tap:
 92     description: Specify the default inbound sampling clock trimmer value for
 93       non-tunable modes.
 94 
 95       The values are used for compensating trace length differences by
 96       adjusting the sampling point. The values are programmed to the Vendor
 97       Clock Control Register. Please refer to the reference manual of the SoC
 98       for correct values.
 99 
100       The DQS trim values are only used on controllers which support HS400
101       timing. Only SDMMC4 on Tegra210 and Tegra186 supports HS400.
102     $ref: /schemas/types.yaml#/definitions/uint32
103 
104   nvidia,default-trim:
105     description: Specify the default outbound clock trimmer value.
106     $ref: /schemas/types.yaml#/definitions/uint32
107 
108   nvidia,dqs-trim:
109     description: Specify DQS trim value for HS400 timing.
110     $ref: /schemas/types.yaml#/definitions/uint32
111 
112   nvidia,pad-autocal-pull-down-offset-1v8:
113     description: Specify drive strength calibration offsets for 1.8 V
114       signaling modes.
115     $ref: /schemas/types.yaml#/definitions/uint32
116 
117   nvidia,pad-autocal-pull-down-offset-1v8-timeout:
118     description: Specify drive strength used as a fallback in case the
119       automatic calibration times out on a 1.8 V signaling mode.
120     $ref: /schemas/types.yaml#/definitions/uint32
121 
122   nvidia,pad-autocal-pull-down-offset-3v3:
123     description: Specify drive strength calibration offsets for 3.3 V
124       signaling modes.
125     $ref: /schemas/types.yaml#/definitions/uint32
126 
127   nvidia,pad-autocal-pull-down-offset-3v3-timeout:
128     description: Specify drive strength used as a fallback in case the
129       automatic calibration times out on a 3.3 V signaling mode.
130     $ref: /schemas/types.yaml#/definitions/uint32
131 
132   nvidia,pad-autocal-pull-down-offset-sdr104:
133     description: Specify drive strength calibration offsets for SDR104 mode.
134     $ref: /schemas/types.yaml#/definitions/uint32
135 
136   nvidia,pad-autocal-pull-down-offset-hs400:
137     description: Specify drive strength calibration offsets for HS400 mode.
138     $ref: /schemas/types.yaml#/definitions/uint32
139 
140   nvidia,pad-autocal-pull-up-offset-1v8:
141     description: Specify drive strength calibration offsets for 1.8 V
142       signaling modes.
143     $ref: /schemas/types.yaml#/definitions/uint32
144 
145   nvidia,pad-autocal-pull-up-offset-1v8-timeout:
146     description: Specify drive strength used as a fallback in case the
147       automatic calibration times out on a 1.8 V signaling mode.
148     $ref: /schemas/types.yaml#/definitions/uint32
149 
150   nvidia,pad-autocal-pull-up-offset-3v3:
151     description: Specify drive strength calibration offsets for 3.3 V
152       signaling modes.
153 
154       The property values are drive codes which are programmed into the
155       PD_OFFSET and PU_OFFSET sections of the SDHCI_TEGRA_AUTO_CAL_CONFIG
156       register. A higher value corresponds to higher drive strength. Please
157       refer to the reference manual of the SoC for correct values. The SDR104
158       and HS400 timing specific values are used in corresponding modes if
159       specified.
160     $ref: /schemas/types.yaml#/definitions/uint32
161 
162   nvidia,pad-autocal-pull-up-offset-3v3-timeout:
163     description: Specify drive strength used as a fallback in case the
164       automatic calibration times out on a 3.3 V signaling mode.
165     $ref: /schemas/types.yaml#/definitions/uint32
166 
167   nvidia,pad-autocal-pull-up-offset-sdr104:
168     description: Specify drive strength calibration offsets for SDR104 mode.
169     $ref: /schemas/types.yaml#/definitions/uint32
170 
171   nvidia,pad-autocal-pull-up-offset-hs400:
172     description: Specify drive strength calibration offsets for HS400 mode.
173     $ref: /schemas/types.yaml#/definitions/uint32
174 
175   nvidia,only-1-8v:
176     description: The presence of this property indicates that the controller
177       operates at a 1.8 V fixed I/O voltage.
178     $ref: /schemas/types.yaml#/definitions/flag
179 
180 required:
181   - compatible
182   - reg
183   - interrupts
184   - clocks
185   - resets
186   - reset-names
187 
188 allOf:
189   - $ref: mmc-controller.yaml
190   - if:
191       properties:
192         compatible:
193           contains:
194             enum:
195               - nvidia,tegra20-sdhci
196               - nvidia,tegra30-sdhci
197               - nvidia,tegra114-sdhci
198               - nvidia,tegra124-sdhci
199     then:
200       properties:
201         clocks:
202           items:
203             - description: module clock
204     else:
205       properties:
206         clocks:
207           items:
208             - description: module clock
209             - description: timeout clock
210 
211         clock-names:
212           items:
213             - const: sdhci
214             - const: tmclk
215       required:
216         - clock-names
217 
218   - if:
219       properties:
220         compatible:
221           contains:
222             const: nvidia,tegra210-sdhci
223     then:
224       properties:
225         pinctrl-names:
226           oneOf:
227             - items:
228                 - const: sdmmc-3v3
229                   description: pad configuration for 3.3 V
230                 - const: sdmmc-1v8
231                   description: pad configuration for 1.8 V
232                 - const: sdmmc-3v3-drv
233                   description: pull-up/down configuration for 3.3 V
234                 - const: sdmmc-1v8-drv
235                   description: pull-up/down configuration for 1.8 V
236             - items:
237                 - const: sdmmc-3v3-drv
238                   description: pull-up/down configuration for 3.3 V
239                 - const: sdmmc-1v8-drv
240                   description: pull-up/down configuration for 1.8 V
241             - items:
242                 - const: sdmmc-1v8-drv
243                   description: pull-up/down configuration for 1.8 V
244       required:
245         - clock-names
246   - if:
247       properties:
248         compatible:
249           contains:
250             enum:
251               - nvidia,tegra186-sdhci
252               - nvidia,tegra194-sdhci
253     then:
254       properties:
255         pinctrl-names:
256           items:
257             - const: sdmmc-3v3
258               description: pad configuration for 3.3 V
259             - const: sdmmc-1v8
260               description: pad configuration for 1.8 V
261       required:
262         - clock-names
263 
264 unevaluatedProperties: false
265 
266 examples:
267   - |
268     #include <dt-bindings/interrupt-controller/arm-gic.h>
269 
270     mmc@c8000200 {
271         compatible = "nvidia,tegra20-sdhci";
272         reg = <0xc8000200 0x200>;
273         interrupts = <47>;
274         clocks = <&tegra_car 14>;
275         resets = <&tegra_car 14>;
276         reset-names = "sdhci";
277         cd-gpios = <&gpio 69 0>; /* gpio PI5 */
278         wp-gpios = <&gpio 57 0>; /* gpio PH1 */
279         power-gpios = <&gpio 155 0>; /* gpio PT3 */
280         bus-width = <8>;
281     };
282 
283   - |
284     #include <dt-bindings/clock/tegra210-car.h>
285     #include <dt-bindings/interrupt-controller/arm-gic.h>
286 
287     mmc@700b0000 {
288         compatible = "nvidia,tegra210-sdhci";
289         reg = <0x700b0000 0x200>;
290         interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
291         clocks = <&tegra_car TEGRA210_CLK_SDMMC1>,
292                  <&tegra_car TEGRA210_CLK_SDMMC_LEGACY>;
293         clock-names = "sdhci", "tmclk";
294         resets = <&tegra_car 14>;
295         reset-names = "sdhci";
296         pinctrl-names = "sdmmc-3v3", "sdmmc-1v8",
297                         "sdmmc-3v3-drv", "sdmmc-1v8-drv";
298         pinctrl-0 = <&sdmmc1_3v3>;
299         pinctrl-1 = <&sdmmc1_1v8>;
300         pinctrl-2 = <&sdmmc1_3v3_drv>;
301         pinctrl-3 = <&sdmmc1_1v8_drv>;
302         nvidia,pad-autocal-pull-up-offset-3v3 = <0x00>;
303         nvidia,pad-autocal-pull-down-offset-3v3 = <0x7d>;
304         nvidia,pad-autocal-pull-up-offset-1v8 = <0x7b>;
305         nvidia,pad-autocal-pull-down-offset-1v8 = <0x7b>;
306         nvidia,default-tap = <0x2>;
307         nvidia,default-trim = <0x4>;
308         assigned-clocks = <&tegra_car TEGRA210_CLK_SDMMC4>,
309                           <&tegra_car TEGRA210_CLK_PLL_C4_OUT0>,
310                           <&tegra_car TEGRA210_CLK_PLL_C4>;
311         assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_C4_OUT0>;
312         assigned-clock-rates = <200000000>, <1000000000>, <1000000000>;
313     };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php