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