Lines Matching refs:esdhc

27 #include "sdhci-esdhc.h"
65 { .compatible = "fsl,ls1021a-esdhc", .data = &ls1021a_esdhc_clk},
66 { .compatible = "fsl,ls1046a-esdhc", .data = &ls1046a_esdhc_clk},
67 { .compatible = "fsl,ls1012a-esdhc", .data = &ls1012a_esdhc_clk},
68 { .compatible = "fsl,p1010-esdhc", .data = &p1010_esdhc_clk},
69 { .compatible = "fsl,mpc8379-esdhc" },
70 { .compatible = "fsl,mpc8536-esdhc" },
71 { .compatible = "fsl,esdhc" },
112 struct sdhci_esdhc *esdhc = sdhci_pltfm_priv(pltfm_host);
124 if (esdhc->vendor_ver > VENDOR_V_22) {
149 if (esdhc->quirk_ignore_data_inhibit)
173 struct sdhci_esdhc *esdhc = sdhci_pltfm_priv(pltfm_host);
188 (esdhc->quirk_incorrect_hostver))
419 struct sdhci_esdhc *esdhc = sdhci_pltfm_priv(pltfm_host);
434 esdhc->in_sw_tuning) {
445 struct sdhci_esdhc *esdhc = sdhci_pltfm_priv(pltfm_host);
460 esdhc->in_sw_tuning) {
500 struct sdhci_esdhc *esdhc = sdhci_pltfm_priv(pltfm_host);
507 (esdhc->vendor_ver == VENDOR_V_23);
529 if (of_device_is_compatible(dev->of_node, "fsl,ls1043a-esdhc") ||
530 of_device_is_compatible(dev->of_node, "fsl,ls1046a-esdhc")) {
550 struct sdhci_esdhc *esdhc = sdhci_pltfm_priv(pltfm_host);
552 if (esdhc->peripheral_clock)
553 return esdhc->peripheral_clock;
561 struct sdhci_esdhc *esdhc = sdhci_pltfm_priv(pltfm_host);
564 if (esdhc->peripheral_clock)
565 clock = esdhc->peripheral_clock;
574 struct sdhci_esdhc *esdhc = sdhci_pltfm_priv(pltfm_host);
584 if (esdhc->vendor_ver <= VENDOR_V_22)
602 while (esdhc->vendor_ver > VENDOR_V_22) {
645 struct sdhci_esdhc *esdhc = sdhci_pltfm_priv(pltfm_host);
658 if (esdhc->vendor_ver < VENDOR_V_23)
663 esdhc->clk_fixup && host->mmc->ios.timing == MMC_TIMING_LEGACY)
664 clock_fixup = esdhc->clk_fixup->sd_dflt_max_clk;
665 else if (esdhc->clk_fixup)
666 clock_fixup = esdhc->clk_fixup->max_clk[host->mmc->ios.timing];
678 esdhc->div_ratio = pre_div * div;
681 if (esdhc->quirk_limited_clk_division &&
685 if (esdhc->div_ratio <= 4) {
688 } else if (esdhc->div_ratio <= 8) {
691 } else if (esdhc->div_ratio <= 12) {
698 esdhc->div_ratio = pre_div * div;
701 host->mmc->actual_clock = host->max_clk / esdhc->div_ratio;
723 while (esdhc->vendor_ver > VENDOR_V_22) {
799 struct sdhci_esdhc *esdhc = sdhci_pltfm_priv(pltfm_host);
806 if (esdhc->quirk_delay_before_data_reset &&
816 (esdhc->vendor_ver <= VENDOR_V_22)) {
828 (esdhc->vendor_ver <= VENDOR_V_22)) {
843 (esdhc->spec_ver >= SDHCI_SPEC_300)) {
852 if (esdhc->quirk_unreliable_pulse_detection) {
997 struct sdhci_esdhc *esdhc = sdhci_pltfm_priv(pltfm_host);
1000 if (esdhc->quirk_tuning_erratum_type1) {
1001 *window_start = 5 * esdhc->div_ratio;
1002 *window_end = 3 * esdhc->div_ratio;
1019 if (abs(start_ptr - end_ptr) > (4 * esdhc->div_ratio + 2)) {
1020 *window_start = 8 * esdhc->div_ratio;
1021 *window_end = 4 * esdhc->div_ratio;
1023 *window_start = 5 * esdhc->div_ratio;
1024 *window_end = 3 * esdhc->div_ratio;
1033 struct sdhci_esdhc *esdhc = sdhci_pltfm_priv(pltfm_host);
1049 esdhc->in_sw_tuning = true;
1051 esdhc->in_sw_tuning = false;
1059 struct sdhci_esdhc *esdhc = sdhci_pltfm_priv(pltfm_host);
1069 clk = esdhc->peripheral_clock / 3;
1089 if (esdhc->quirk_limited_clk_division &&
1107 if (esdhc->quirk_tuning_erratum_type2 &&
1112 (4 * esdhc->div_ratio + 2))
1121 (esdhc->quirk_tuning_erratum_type1 ||
1122 esdhc->quirk_tuning_erratum_type2)) {
1144 clk = host->max_clk / (esdhc->div_ratio + 1);
1213 struct sdhci_esdhc *esdhc = sdhci_pltfm_priv(pltfm_host);
1216 if (esdhc->quirk_trans_complete_erratum) {
1339 struct sdhci_esdhc *esdhc;
1346 esdhc = sdhci_pltfm_priv(pltfm_host);
1349 esdhc->vendor_ver = (host_ver & SDHCI_VENDOR_VER_MASK) >>
1351 esdhc->spec_ver = host_ver & SDHCI_SPEC_VER_MASK;
1353 esdhc->quirk_incorrect_hostver = true;
1355 esdhc->quirk_incorrect_hostver = false;
1358 esdhc->quirk_limited_clk_division = true;
1360 esdhc->quirk_limited_clk_division = false;
1363 esdhc->quirk_unreliable_pulse_detection = true;
1365 esdhc->quirk_unreliable_pulse_detection = false;
1369 esdhc->clk_fixup = match->data;
1372 if (of_device_is_compatible(np, "fsl,p2020-esdhc")) {
1373 esdhc->quirk_delay_before_data_reset = true;
1374 esdhc->quirk_trans_complete_erratum = true;
1380 * esdhc->peripheral_clock would be assigned with a value
1386 if (of_device_is_compatible(np, "fsl,ls1046a-esdhc") ||
1387 of_device_is_compatible(np, "fsl,ls1028a-esdhc") ||
1388 of_device_is_compatible(np, "fsl,ls1088a-esdhc"))
1389 esdhc->peripheral_clock = clk_get_rate(clk) / 2;
1391 esdhc->peripheral_clock = clk_get_rate(clk);
1403 if (esdhc->peripheral_clock)
1422 struct sdhci_esdhc *esdhc;
1448 esdhc = sdhci_pltfm_priv(pltfm_host);
1450 esdhc->quirk_tuning_erratum_type1 = true;
1452 esdhc->quirk_tuning_erratum_type1 = false;
1455 esdhc->quirk_tuning_erratum_type2 = true;
1457 esdhc->quirk_tuning_erratum_type2 = false;
1459 if (esdhc->vendor_ver == VENDOR_V_22)
1462 if (esdhc->vendor_ver > VENDOR_V_22)
1465 if (of_find_compatible_node(NULL, NULL, "fsl,p2020-esdhc")) {
1470 if (of_device_is_compatible(np, "fsl,p5040-esdhc") ||
1471 of_device_is_compatible(np, "fsl,p5020-esdhc") ||
1472 of_device_is_compatible(np, "fsl,p4080-esdhc") ||
1473 of_device_is_compatible(np, "fsl,p1020-esdhc") ||
1474 of_device_is_compatible(np, "fsl,t1040-esdhc"))
1477 if (of_device_is_compatible(np, "fsl,ls1021a-esdhc"))
1480 esdhc->quirk_ignore_data_inhibit = false;
1481 if (of_device_is_compatible(np, "fsl,p2020-esdhc")) {
1487 esdhc->quirk_ignore_data_inhibit = true;
1509 .name = "sdhci-esdhc",