118 lines
4.7 KiB
Plaintext
118 lines
4.7 KiB
Plaintext
|
* NVIDIA Tegra Secure Digital Host Controller
|
||
|
|
||
|
This controller on Tegra family SoCs provides an interface for MMC, SD,
|
||
|
and SDIO types of memory cards.
|
||
|
|
||
|
This file documents differences between the core properties described
|
||
|
by mmc.txt and the properties used by the sdhci-tegra driver.
|
||
|
|
||
|
Required properties:
|
||
|
- compatible : should be one of:
|
||
|
- "nvidia,tegra20-sdhci": for Tegra20
|
||
|
- "nvidia,tegra30-sdhci": for Tegra30
|
||
|
- "nvidia,tegra114-sdhci": for Tegra114
|
||
|
- "nvidia,tegra124-sdhci": for Tegra124 and Tegra132
|
||
|
- "nvidia,tegra210-sdhci": for Tegra210
|
||
|
- "nvidia,tegra186-sdhci": for Tegra186
|
||
|
- "nvidia,tegra194-sdhci": for Tegra194
|
||
|
- clocks : Must contain one entry, for the module clock.
|
||
|
See ../clocks/clock-bindings.txt for details.
|
||
|
- resets : Must contain an entry for each entry in reset-names.
|
||
|
See ../reset/reset.txt for details.
|
||
|
- reset-names : Must include the following entries:
|
||
|
- sdhci
|
||
|
|
||
|
Optional properties:
|
||
|
- power-gpios : Specify GPIOs for power control
|
||
|
|
||
|
Example:
|
||
|
|
||
|
sdhci@c8000200 {
|
||
|
compatible = "nvidia,tegra20-sdhci";
|
||
|
reg = <0xc8000200 0x200>;
|
||
|
interrupts = <47>;
|
||
|
clocks = <&tegra_car 14>;
|
||
|
resets = <&tegra_car 14>;
|
||
|
reset-names = "sdhci";
|
||
|
cd-gpios = <&gpio 69 0>; /* gpio PI5 */
|
||
|
wp-gpios = <&gpio 57 0>; /* gpio PH1 */
|
||
|
power-gpios = <&gpio 155 0>; /* gpio PT3 */
|
||
|
bus-width = <8>;
|
||
|
};
|
||
|
|
||
|
Optional properties for Tegra210, Tegra186 and Tegra194:
|
||
|
- pinctrl-names, pinctrl-0, pinctrl-1 : Specify pad voltage
|
||
|
configurations. Valid pinctrl-names are "sdmmc-3v3" and "sdmmc-1v8"
|
||
|
for controllers supporting multiple voltage levels. The order of names
|
||
|
should correspond to the pin configuration states in pinctrl-0 and
|
||
|
pinctrl-1.
|
||
|
- pinctrl-names : "sdmmc-3v3-drv" and "sdmmc-1v8-drv" are applicable for
|
||
|
Tegra210 where pad config registers are in the pinmux register domain
|
||
|
for pull-up-strength and pull-down-strength values configuration when
|
||
|
using pads at 3V3 and 1V8 levels.
|
||
|
- nvidia,only-1-8-v : The presence of this property indicates that the
|
||
|
controller operates at a 1.8 V fixed I/O voltage.
|
||
|
- nvidia,pad-autocal-pull-up-offset-3v3,
|
||
|
nvidia,pad-autocal-pull-down-offset-3v3 : Specify drive strength
|
||
|
calibration offsets for 3.3 V signaling modes.
|
||
|
- nvidia,pad-autocal-pull-up-offset-1v8,
|
||
|
nvidia,pad-autocal-pull-down-offset-1v8 : Specify drive strength
|
||
|
calibration offsets for 1.8 V signaling modes.
|
||
|
- nvidia,pad-autocal-pull-up-offset-3v3-timeout,
|
||
|
nvidia,pad-autocal-pull-down-offset-3v3-timeout : Specify drive
|
||
|
strength used as a fallback in case the automatic calibration times
|
||
|
out on a 3.3 V signaling mode.
|
||
|
- nvidia,pad-autocal-pull-up-offset-1v8-timeout,
|
||
|
nvidia,pad-autocal-pull-down-offset-1v8-timeout : Specify drive
|
||
|
strength used as a fallback in case the automatic calibration times
|
||
|
out on a 1.8 V signaling mode.
|
||
|
- nvidia,pad-autocal-pull-up-offset-sdr104,
|
||
|
nvidia,pad-autocal-pull-down-offset-sdr104 : Specify drive strength
|
||
|
calibration offsets for SDR104 mode.
|
||
|
- nvidia,pad-autocal-pull-up-offset-hs400,
|
||
|
nvidia,pad-autocal-pull-down-offset-hs400 : Specify drive strength
|
||
|
calibration offsets for HS400 mode.
|
||
|
- nvidia,default-tap : Specify the default inbound sampling clock
|
||
|
trimmer value for non-tunable modes.
|
||
|
- nvidia,default-trim : Specify the default outbound clock trimmer
|
||
|
value.
|
||
|
- nvidia,dqs-trim : Specify DQS trim value for HS400 timing
|
||
|
|
||
|
Notes on the pad calibration pull up and pulldown offset values:
|
||
|
- The property values are drive codes which are programmed into the
|
||
|
PD_OFFSET and PU_OFFSET sections of the
|
||
|
SDHCI_TEGRA_AUTO_CAL_CONFIG register.
|
||
|
- A higher value corresponds to higher drive strength. Please refer
|
||
|
to the reference manual of the SoC for correct values.
|
||
|
- The SDR104 and HS400 timing specific values are used in
|
||
|
corresponding modes if specified.
|
||
|
|
||
|
Notes on tap and trim values:
|
||
|
- The values are used for compensating trace length differences
|
||
|
by adjusting the sampling point.
|
||
|
- The values are programmed to the Vendor Clock Control Register.
|
||
|
Please refer to the reference manual of the SoC for correct
|
||
|
values.
|
||
|
- The DQS trim values are only used on controllers which support
|
||
|
HS400 timing. Only SDMMC4 on Tegra210 and Tegra 186 supports
|
||
|
HS400.
|
||
|
|
||
|
Example:
|
||
|
sdhci@700b0000 {
|
||
|
compatible = "nvidia,tegra210-sdhci", "nvidia,tegra124-sdhci";
|
||
|
reg = <0x0 0x700b0000 0x0 0x200>;
|
||
|
interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
|
||
|
clocks = <&tegra_car TEGRA210_CLK_SDMMC1>;
|
||
|
clock-names = "sdhci";
|
||
|
resets = <&tegra_car 14>;
|
||
|
reset-names = "sdhci";
|
||
|
pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
|
||
|
pinctrl-0 = <&sdmmc1_3v3>;
|
||
|
pinctrl-1 = <&sdmmc1_1v8>;
|
||
|
nvidia,pad-autocal-pull-up-offset-3v3 = <0x00>;
|
||
|
nvidia,pad-autocal-pull-down-offset-3v3 = <0x7d>;
|
||
|
nvidia,pad-autocal-pull-up-offset-1v8 = <0x7b>;
|
||
|
nvidia,pad-autocal-pull-down-offset-1v8 = <0x7b>;
|
||
|
status = "disabled";
|
||
|
};
|