tegrakernel/hardware/nvidia/soc/t210/kernel-dts/tegra210-soc/tegra210-sdhci.dtsi

179 lines
5.7 KiB
Plaintext

/*
* Copyright (c) 2014-2017, NVIDIA CORPORATION. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#include "tegra210-pin-drive-sdmmc-common.dtsi"
/ {
aliases {
sdhci0 = &sdmmc1;
sdhci1 = &sdmmc2;
sdhci2 = &sdmmc3;
sdhci3 = &sdmmc4;
};
sdmmc4: sdhci@700b0600 {
tap-delay = <4>;
trim-delay = <8>;
nvidia,is-ddr-tap-delay;
nvidia,ddr-tap-delay = <0>;
mmc-ocr-mask = <0>;
max-clk-limit = <199680000>;
bus-width = <8>;
built-in;
calib-3v3-offsets = <0x0505>;
calib-1v8-offsets = <0x0505>;
compad-vref-3v3 = <0x7>;
compad-vref-1v8 = <0x7>;
nvidia,en-io-trim-volt;
nvidia,is-emmc;
nvidia,enable-cq;
ignore-pm-notify;
keep-power-in-suspend;
non-removable;
cap-mmc-highspeed;
cap-sd-highspeed;
mmc-ddr-1_8v;
mmc-hs200-1_8v;
mmc-hs400-1_8v;
nvidia,enable-strobe-mode;
mmc-hs400-enhanced-strobe;
nvidia,min-tap-delay = <106>;
nvidia,max-tap-delay = <185>;
pll_source = "pll_p", "pll_c4_out0";
resets = <&tegra_car TEGRA210_CLK_SDMMC4>;
reset-names = "sdhci";
clocks = <&tegra_car TEGRA210_CLK_SDMMC4>,
<&tegra_car TEGRA210_CLK_PLL_P>,
<&tegra_car TEGRA210_CLK_PLL_C4_OUT0>,
<&tegra_car TEGRA210_CLK_SDMMC_LEGACY>;
clock-names = "sdmmc", "pll_p", "pll_c4_out0", "sdmmc_legacy_tm";
};
sdmmc3: sdhci@700b0400 {
tap-delay = <1>;
trim-delay = <3>;
mmc-ocr-mask = <0>;
max-clk-limit = <204000000>;
ddr-clk-limit = <48000000>;
bus-width = <4>;
calib-3v3-offsets = <0x007D>;
calib-1v8-offsets = <0x7B7B>;
compad-vref-3v3 = <0x7>;
compad-vref-1v8 = <0x7>;
pll_source = "pll_p", "pll_c4_out2";
resets = <&tegra_car TEGRA210_CLK_SDMMC3>;
reset-names = "sdhci";
clocks = <&tegra_car TEGRA210_CLK_SDMMC3>,
<&tegra_car TEGRA210_CLK_PLL_P>,
<&tegra_car TEGRA210_CLK_PLL_C4_OUT2>,
<&tegra_car TEGRA210_CLK_SDMMC_LEGACY>;
clock-names = "sdmmc", "pll_p", "pll_c4_out2", "sdmmc_legacy_tm";
keep-power-in-suspend;
ignore-pm-notify;
non-removable;
cap-mmc-highspeed;
cap-sd-highspeed;
nvidia,en-io-trim-volt;
nvidia,en-periodic-calib;
cd-inverted;
wp-inverted;
pwrdet-support;
nvidia,min-tap-delay = <106>;
nvidia,max-tap-delay = <185>;
pinctrl-names = "sdmmc_schmitt_enable", "sdmmc_schmitt_disable", "sdmmc_clk_schmitt_enable", "sdmmc_clk_schmitt_disable", "sdmmc_drv_code", "sdmmc_default_drv_code", "sdmmc_e_33v_enable", "sdmmc_e_33v_disable";
pinctrl-0 = <&sdmmc3_schmitt_enable_state>;
pinctrl-1 = <&sdmmc3_schmitt_disable_state>;
pinctrl-2 = <&sdmmc3_clk_schmitt_enable_state>;
pinctrl-3 = <&sdmmc3_clk_schmitt_disable_state>;
pinctrl-4 = <&sdmmc3_drv_code_1_8V>;
pinctrl-5 = <&sdmmc3_default_drv_code_3_3V>;
pinctrl-6 = <&sdmmc3_e_33V_enable>;
pinctrl-7 = <&sdmmc3_e_33V_disable>;
};
sdmmc2: sdhci@700b0200 {
tap-delay = <4>;
trim-delay = <8>;
mmc-ocr-mask = <0>;
max-clk-limit = <204000000>;
ddr-clk-limit = <41000000>;
bus-width = <4>;
calib-3v3-offsets = <0x0505>;
calib-1v8-offsets = <0x0505>;
compad-vref-3v3 = <0x7>;
compad-vref-1v8 = <0x7>;
default-drive-type = <1>;
nvidia,min-tap-delay = <106>;
nvidia,max-tap-delay = <185>;
pll_source = "pll_p";
resets = <&tegra_car TEGRA210_CLK_SDMMC2>;
reset-names = "sdhci";
clocks = <&tegra_car TEGRA210_CLK_SDMMC2>,
<&tegra_car TEGRA210_CLK_PLL_P>,
<&tegra_car TEGRA210_CLK_SDMMC_LEGACY>;
clock-names = "sdmmc", "pll_p", "sdmmc_legacy_tm";
non-removable;
cap-mmc-highspeed;
cap-sd-highspeed;
keep-power-in-suspend;
ignore-pm-notify;
nvidia,en-io-trim-volt;
};
sdmmc1: sdhci@700b0000 {
tap-delay = <4>;
trim-delay = <2>;
max-clk-limit = <204000000>;
ddr-clk-limit = <48000000>;
bus-width = <4>;
mmc-ocr-mask = <3>;
calib-3v3-offsets = <0x007D>;
calib-1v8-offsets = <0x7B7B>;
compad-vref-3v3 = <0x7>;
compad-vref-1v8 = <0x7>;
cd-gpios = <&gpio TEGRA_GPIO(Z, 1) 0>;
pll_source = "pll_p";
cap-mmc-highspeed;
cap-sd-highspeed;
nvidia,en-io-trim-volt;
nvidia,en-periodic-calib;
keep-power-in-suspend;
ignore-pm-notify;
cd-inverted;
wp-inverted;
nvidia,min-tap-delay = <106>;
nvidia,max-tap-delay = <185>;
resets = <&tegra_car TEGRA210_CLK_SDMMC1>;
reset-names = "sdhci";
clocks = <&tegra_car TEGRA210_CLK_SDMMC1>,
<&tegra_car TEGRA210_CLK_PLL_P>,
<&tegra_car TEGRA210_CLK_SDMMC_LEGACY>;
clock-names = "sdmmc", "pll_p", "sdmmc_legacy_tm";
pwrdet-support;
pinctrl-names = "sdmmc_schmitt_enable", "sdmmc_schmitt_disable", "sdmmc_clk_schmitt_enable", "sdmmc_clk_schmitt_disable", "sdmmc_drv_code", "sdmmc_default_drv_code", "sdmmc_e_33v_enable", "sdmmc_e_33v_disable";
pinctrl-0 = <&sdmmc1_schmitt_enable_state>;
pinctrl-1 = <&sdmmc1_schmitt_disable_state>;
pinctrl-2 = <&sdmmc1_clk_schmitt_enable_state>;
pinctrl-3 = <&sdmmc1_clk_schmitt_disable_state>;
pinctrl-4 = <&sdmmc1_drv_code_1_8V>;
pinctrl-5 = <&sdmmc1_default_drv_code_3_3V>;
pinctrl-6 = <&sdmmc1_e_33V_enable>;
pinctrl-7 = <&sdmmc1_e_33V_disable>;
};
};