Lines Matching refs:imx_data
386 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_readl_le() local
401 if (imx_data->socdata->flags & ESDHC_FLAG_HAVE_CAP1) in esdhc_readl_le()
418 if (esdhc_is_usdhc(imx_data)) { in esdhc_readl_le()
419 if (imx_data->socdata->flags & ESDHC_FLAG_HAVE_CAP1) in esdhc_readl_le()
429 if (imx_data->socdata->flags & ESDHC_FLAG_HS400) in esdhc_readl_le()
436 if (IS_ERR_OR_NULL(imx_data->pins_100mhz) || in esdhc_readl_le()
437 IS_ERR_OR_NULL(imx_data->pins_200mhz)) in esdhc_readl_le()
443 if (unlikely(reg == SDHCI_MAX_CURRENT) && esdhc_is_usdhc(imx_data)) { in esdhc_readl_le()
460 if ((imx_data->multiblock_status == WAIT_FOR_INT) && in esdhc_readl_le()
465 imx_data->multiblock_status = NO_CMD_PENDING; in esdhc_readl_le()
475 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_writel_le() local
480 if ((val & SDHCI_INT_CARD_INT) && !esdhc_is_usdhc(imx_data)) { in esdhc_writel_le()
502 if (unlikely((imx_data->socdata->flags & ESDHC_FLAG_MULTIBLK_NO_INT) in esdhc_writel_le()
510 if (imx_data->multiblock_status == MULTIBLK_IN_PROCESS) in esdhc_writel_le()
516 imx_data->multiblock_status = WAIT_FOR_INT; in esdhc_writel_le()
526 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_readw_le() local
532 if (esdhc_is_usdhc(imx_data)) { in esdhc_readw_le()
546 if (esdhc_is_usdhc(imx_data)) { in esdhc_readw_le()
547 if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING) in esdhc_readw_le()
549 else if (imx_data->socdata->flags & ESDHC_FLAG_STD_TUNING) in esdhc_readw_le()
565 if (esdhc_is_usdhc(imx_data)) { in esdhc_readw_le()
586 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_writew_le() local
607 if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING) { in esdhc_writew_le()
617 } else if (imx_data->socdata->flags & ESDHC_FLAG_STD_TUNING) { in esdhc_writew_le()
641 if ((imx_data->socdata->flags & ESDHC_FLAG_MULTIBLK_NO_INT) in esdhc_writew_le()
651 if (esdhc_is_usdhc(imx_data)) { in esdhc_writew_le()
695 imx_data->scratchpad = val; in esdhc_writew_le()
703 (imx_data->socdata->flags & ESDHC_FLAG_MULTIBLK_NO_INT)) in esdhc_writew_le()
704 imx_data->multiblock_status = MULTIBLK_IN_PROCESS; in esdhc_writew_le()
706 if (esdhc_is_usdhc(imx_data)) in esdhc_writew_le()
710 writel(val << 16 | imx_data->scratchpad, in esdhc_writew_le()
742 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_writeb_le() local
759 if (!is_imx25_esdhc(imx_data)) { in esdhc_writeb_le()
797 if (esdhc_is_usdhc(imx_data)) { in esdhc_writeb_le()
804 imx_data->is_ddr = 0; in esdhc_writeb_le()
836 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_pltfm_set_clock() local
838 int ddr_pre_div = imx_data->is_ddr ? 2 : 1; in esdhc_pltfm_set_clock()
844 if (esdhc_is_usdhc(imx_data)) { in esdhc_pltfm_set_clock()
857 if (is_imx53_esdhc(imx_data)) { in esdhc_pltfm_set_clock()
875 if (imx_data->socdata->flags & ESDHC_FLAG_ERR010450) { in esdhc_pltfm_set_clock()
878 max_clock = imx_data->is_ddr ? 45000000 : 150000000; in esdhc_pltfm_set_clock()
909 if (esdhc_is_usdhc(imx_data)) { in esdhc_pltfm_set_clock()
920 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_pltfm_get_ro() local
921 struct esdhc_platform_data *boarddata = &imx_data->boarddata; in esdhc_pltfm_get_ro()
1060 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_change_pinstate() local
1065 if (IS_ERR(imx_data->pinctrl) || in esdhc_change_pinstate()
1066 IS_ERR(imx_data->pins_100mhz) || in esdhc_change_pinstate()
1067 IS_ERR(imx_data->pins_200mhz)) in esdhc_change_pinstate()
1073 pinctrl = imx_data->pins_100mhz; in esdhc_change_pinstate()
1078 pinctrl = imx_data->pins_200mhz; in esdhc_change_pinstate()
1085 return pinctrl_select_state(imx_data->pinctrl, pinctrl); in esdhc_change_pinstate()
1100 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_set_strobe_dll() local
1121 if (imx_data->boarddata.strobe_dll_delay_target) in esdhc_set_strobe_dll()
1122 strobe_delay = imx_data->boarddata.strobe_dll_delay_target; in esdhc_set_strobe_dll()
1141 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_reset_tuning() local
1146 if (esdhc_is_usdhc(imx_data)) { in esdhc_reset_tuning()
1147 if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING) { in esdhc_reset_tuning()
1153 } else if (imx_data->socdata->flags & ESDHC_FLAG_STD_TUNING) { in esdhc_reset_tuning()
1180 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_set_uhs_signaling() local
1181 struct esdhc_platform_data *boarddata = &imx_data->boarddata; in esdhc_set_uhs_signaling()
1186 imx_data->is_ddr = 0; in esdhc_set_uhs_signaling()
1201 imx_data->is_ddr = 1; in esdhc_set_uhs_signaling()
1207 if (is_imx53_esdhc(imx_data)) in esdhc_set_uhs_signaling()
1215 imx_data->is_ddr = 1; in esdhc_set_uhs_signaling()
1240 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_get_max_timeout_count() local
1243 return esdhc_is_usdhc(imx_data) ? 1 << 29 : 1 << 27; in esdhc_get_max_timeout_count()
1249 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_set_timeout() local
1253 esdhc_is_usdhc(imx_data) ? 0xF : 0xE, in esdhc_set_timeout()
1301 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in sdhci_esdhc_imx_hwinit() local
1305 if (esdhc_is_usdhc(imx_data)) { in sdhci_esdhc_imx_hwinit()
1346 if (imx_data->socdata->flags & ESDHC_FLAG_CQHCI) { in sdhci_esdhc_imx_hwinit()
1354 if (imx_data->socdata->flags & ESDHC_FLAG_STD_TUNING) { in sdhci_esdhc_imx_hwinit()
1358 if (imx_data->boarddata.tuning_start_tap) { in sdhci_esdhc_imx_hwinit()
1360 tmp |= imx_data->boarddata.tuning_start_tap; in sdhci_esdhc_imx_hwinit()
1363 if (imx_data->boarddata.tuning_step) { in sdhci_esdhc_imx_hwinit()
1365 tmp |= imx_data->boarddata.tuning_step in sdhci_esdhc_imx_hwinit()
1381 } else if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING) { in sdhci_esdhc_imx_hwinit()
1475 struct pltfm_imx_data *imx_data) in sdhci_esdhc_imx_probe_dt() argument
1478 struct esdhc_platform_data *boarddata = &imx_data->boarddata; in sdhci_esdhc_imx_probe_dt()
1506 if (esdhc_is_usdhc(imx_data) && !IS_ERR(imx_data->pinctrl)) { in sdhci_esdhc_imx_probe_dt()
1507 imx_data->pins_100mhz = pinctrl_lookup_state(imx_data->pinctrl, in sdhci_esdhc_imx_probe_dt()
1509 imx_data->pins_200mhz = pinctrl_lookup_state(imx_data->pinctrl, in sdhci_esdhc_imx_probe_dt()
1527 struct pltfm_imx_data *imx_data) in sdhci_esdhc_imx_probe_dt() argument
1541 struct pltfm_imx_data *imx_data; in sdhci_esdhc_imx_probe() local
1544 sizeof(*imx_data)); in sdhci_esdhc_imx_probe()
1550 imx_data = sdhci_pltfm_priv(pltfm_host); in sdhci_esdhc_imx_probe()
1552 imx_data->socdata = of_id->data; in sdhci_esdhc_imx_probe()
1554 if (imx_data->socdata->flags & ESDHC_FLAG_PMQOS) in sdhci_esdhc_imx_probe()
1555 cpu_latency_qos_add_request(&imx_data->pm_qos_req, 0); in sdhci_esdhc_imx_probe()
1557 imx_data->clk_ipg = devm_clk_get(&pdev->dev, "ipg"); in sdhci_esdhc_imx_probe()
1558 if (IS_ERR(imx_data->clk_ipg)) { in sdhci_esdhc_imx_probe()
1559 err = PTR_ERR(imx_data->clk_ipg); in sdhci_esdhc_imx_probe()
1563 imx_data->clk_ahb = devm_clk_get(&pdev->dev, "ahb"); in sdhci_esdhc_imx_probe()
1564 if (IS_ERR(imx_data->clk_ahb)) { in sdhci_esdhc_imx_probe()
1565 err = PTR_ERR(imx_data->clk_ahb); in sdhci_esdhc_imx_probe()
1569 imx_data->clk_per = devm_clk_get(&pdev->dev, "per"); in sdhci_esdhc_imx_probe()
1570 if (IS_ERR(imx_data->clk_per)) { in sdhci_esdhc_imx_probe()
1571 err = PTR_ERR(imx_data->clk_per); in sdhci_esdhc_imx_probe()
1575 pltfm_host->clk = imx_data->clk_per; in sdhci_esdhc_imx_probe()
1577 err = clk_prepare_enable(imx_data->clk_per); in sdhci_esdhc_imx_probe()
1580 err = clk_prepare_enable(imx_data->clk_ipg); in sdhci_esdhc_imx_probe()
1583 err = clk_prepare_enable(imx_data->clk_ahb); in sdhci_esdhc_imx_probe()
1587 imx_data->pinctrl = devm_pinctrl_get(&pdev->dev); in sdhci_esdhc_imx_probe()
1588 if (IS_ERR(imx_data->pinctrl)) in sdhci_esdhc_imx_probe()
1591 if (esdhc_is_usdhc(imx_data)) { in sdhci_esdhc_imx_probe()
1598 if (!(imx_data->socdata->flags & ESDHC_FLAG_HS200)) in sdhci_esdhc_imx_probe()
1613 err = sdhci_esdhc_imx_probe_dt(pdev, host, imx_data); in sdhci_esdhc_imx_probe()
1617 if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING) in sdhci_esdhc_imx_probe()
1621 if (imx_data->socdata->flags & ESDHC_FLAG_ERR004536) in sdhci_esdhc_imx_probe()
1625 imx_data->socdata->flags & ESDHC_FLAG_HS400) in sdhci_esdhc_imx_probe()
1628 if (imx_data->socdata->flags & ESDHC_FLAG_BROKEN_AUTO_CMD23) in sdhci_esdhc_imx_probe()
1632 imx_data->socdata->flags & ESDHC_FLAG_HS400_ES) { in sdhci_esdhc_imx_probe()
1638 if (imx_data->socdata->flags & ESDHC_FLAG_CQHCI) { in sdhci_esdhc_imx_probe()
1669 clk_disable_unprepare(imx_data->clk_ahb); in sdhci_esdhc_imx_probe()
1671 clk_disable_unprepare(imx_data->clk_ipg); in sdhci_esdhc_imx_probe()
1673 clk_disable_unprepare(imx_data->clk_per); in sdhci_esdhc_imx_probe()
1675 if (imx_data->socdata->flags & ESDHC_FLAG_PMQOS) in sdhci_esdhc_imx_probe()
1676 cpu_latency_qos_remove_request(&imx_data->pm_qos_req); in sdhci_esdhc_imx_probe()
1685 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in sdhci_esdhc_imx_remove() local
1695 clk_disable_unprepare(imx_data->clk_per); in sdhci_esdhc_imx_remove()
1696 clk_disable_unprepare(imx_data->clk_ipg); in sdhci_esdhc_imx_remove()
1697 clk_disable_unprepare(imx_data->clk_ahb); in sdhci_esdhc_imx_remove()
1699 if (imx_data->socdata->flags & ESDHC_FLAG_PMQOS) in sdhci_esdhc_imx_remove()
1700 cpu_latency_qos_remove_request(&imx_data->pm_qos_req); in sdhci_esdhc_imx_remove()
1712 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in sdhci_esdhc_suspend() local
1721 if ((imx_data->socdata->flags & ESDHC_FLAG_STATE_LOST_IN_LPMODE) && in sdhci_esdhc_suspend()
1774 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in sdhci_esdhc_runtime_suspend() local
1790 imx_data->actual_clock = host->mmc->actual_clock; in sdhci_esdhc_runtime_suspend()
1792 clk_disable_unprepare(imx_data->clk_per); in sdhci_esdhc_runtime_suspend()
1793 clk_disable_unprepare(imx_data->clk_ipg); in sdhci_esdhc_runtime_suspend()
1794 clk_disable_unprepare(imx_data->clk_ahb); in sdhci_esdhc_runtime_suspend()
1796 if (imx_data->socdata->flags & ESDHC_FLAG_PMQOS) in sdhci_esdhc_runtime_suspend()
1797 cpu_latency_qos_remove_request(&imx_data->pm_qos_req); in sdhci_esdhc_runtime_suspend()
1806 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in sdhci_esdhc_runtime_resume() local
1809 if (imx_data->socdata->flags & ESDHC_FLAG_PMQOS) in sdhci_esdhc_runtime_resume()
1810 cpu_latency_qos_add_request(&imx_data->pm_qos_req, 0); in sdhci_esdhc_runtime_resume()
1812 if (imx_data->socdata->flags & ESDHC_FLAG_CLK_RATE_LOST_IN_PM_RUNTIME) in sdhci_esdhc_runtime_resume()
1813 clk_set_rate(imx_data->clk_per, pltfm_host->clock); in sdhci_esdhc_runtime_resume()
1815 err = clk_prepare_enable(imx_data->clk_ahb); in sdhci_esdhc_runtime_resume()
1819 err = clk_prepare_enable(imx_data->clk_per); in sdhci_esdhc_runtime_resume()
1823 err = clk_prepare_enable(imx_data->clk_ipg); in sdhci_esdhc_runtime_resume()
1827 esdhc_pltfm_set_clock(host, imx_data->actual_clock); in sdhci_esdhc_runtime_resume()
1839 clk_disable_unprepare(imx_data->clk_ipg); in sdhci_esdhc_runtime_resume()
1841 clk_disable_unprepare(imx_data->clk_per); in sdhci_esdhc_runtime_resume()
1843 clk_disable_unprepare(imx_data->clk_ahb); in sdhci_esdhc_runtime_resume()
1845 if (imx_data->socdata->flags & ESDHC_FLAG_PMQOS) in sdhci_esdhc_runtime_resume()
1846 cpu_latency_qos_remove_request(&imx_data->pm_qos_req); in sdhci_esdhc_runtime_resume()