Lines Matching refs:imx_data

446 	struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host);  in usdhc_auto_tuning_mode_sel_and_en()  local
475 if (imx_data->init_card_type == MMC_TYPE_SDIO) in usdhc_auto_tuning_mode_sel_and_en()
490 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_readl_le() local
505 if (imx_data->socdata->flags & ESDHC_FLAG_HAVE_CAP1) in esdhc_readl_le()
522 if (esdhc_is_usdhc(imx_data)) { in esdhc_readl_le()
523 if (imx_data->socdata->flags & ESDHC_FLAG_HAVE_CAP1) in esdhc_readl_le()
537 if (IS_ERR_OR_NULL(imx_data->pins_100mhz)) in esdhc_readl_le()
539 if (IS_ERR_OR_NULL(imx_data->pins_200mhz)) in esdhc_readl_le()
544 if (unlikely(reg == SDHCI_MAX_CURRENT) && esdhc_is_usdhc(imx_data)) { in esdhc_readl_le()
561 if ((imx_data->multiblock_status == WAIT_FOR_INT) && in esdhc_readl_le()
566 imx_data->multiblock_status = NO_CMD_PENDING; in esdhc_readl_le()
576 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_writel_le() local
581 if ((val & SDHCI_INT_CARD_INT) && !esdhc_is_usdhc(imx_data)) { in esdhc_writel_le()
603 if (unlikely((imx_data->socdata->flags & ESDHC_FLAG_MULTIBLK_NO_INT) in esdhc_writel_le()
611 if (imx_data->multiblock_status == MULTIBLK_IN_PROCESS) in esdhc_writel_le()
617 imx_data->multiblock_status = WAIT_FOR_INT; in esdhc_writel_le()
627 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_readw_le() local
633 if (esdhc_is_usdhc(imx_data)) { in esdhc_readw_le()
647 if (esdhc_is_usdhc(imx_data)) { in esdhc_readw_le()
648 if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING) in esdhc_readw_le()
650 else if (imx_data->socdata->flags & ESDHC_FLAG_STD_TUNING) in esdhc_readw_le()
666 if (esdhc_is_usdhc(imx_data)) { in esdhc_readw_le()
687 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_writew_le() local
708 if (imx_data->socdata->flags & ESDHC_FLAG_STD_TUNING) { in esdhc_writew_le()
730 if ((imx_data->socdata->flags & ESDHC_FLAG_MULTIBLK_NO_INT) in esdhc_writew_le()
740 if (esdhc_is_usdhc(imx_data)) { in esdhc_writew_le()
784 imx_data->scratchpad = val; in esdhc_writew_le()
792 (imx_data->socdata->flags & ESDHC_FLAG_MULTIBLK_NO_INT)) in esdhc_writew_le()
793 imx_data->multiblock_status = MULTIBLK_IN_PROCESS; in esdhc_writew_le()
795 if (esdhc_is_usdhc(imx_data)) in esdhc_writew_le()
799 writel(val << 16 | imx_data->scratchpad, in esdhc_writew_le()
831 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_writeb_le() local
848 if (!is_imx25_esdhc(imx_data)) { in esdhc_writeb_le()
886 if (esdhc_is_usdhc(imx_data)) { in esdhc_writeb_le()
893 imx_data->is_ddr = 0; in esdhc_writeb_le()
925 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_pltfm_set_clock() local
927 int ddr_pre_div = imx_data->is_ddr ? 2 : 1; in esdhc_pltfm_set_clock()
933 if (esdhc_is_usdhc(imx_data)) { in esdhc_pltfm_set_clock()
946 if (is_imx53_esdhc(imx_data)) { in esdhc_pltfm_set_clock()
964 if ((imx_data->socdata->flags & ESDHC_FLAG_ERR010450) && in esdhc_pltfm_set_clock()
968 max_clock = imx_data->is_ddr ? 45000000 : 150000000; in esdhc_pltfm_set_clock()
999 if (esdhc_is_usdhc(imx_data)) { in esdhc_pltfm_set_clock()
1010 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_pltfm_get_ro() local
1011 struct esdhc_platform_data *boarddata = &imx_data->boarddata; in esdhc_pltfm_get_ro()
1049 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_reset_tuning() local
1054 if (esdhc_is_usdhc(imx_data)) { in esdhc_reset_tuning()
1057 if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING) { in esdhc_reset_tuning()
1062 } else if (imx_data->socdata->flags & ESDHC_FLAG_STD_TUNING) { in esdhc_reset_tuning()
1090 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in usdhc_init_card() local
1092 imx_data->init_card_type = card->type; in usdhc_init_card()
1210 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_change_pinstate() local
1215 if (IS_ERR(imx_data->pinctrl) || in esdhc_change_pinstate()
1216 IS_ERR(imx_data->pins_100mhz) || in esdhc_change_pinstate()
1217 IS_ERR(imx_data->pins_200mhz)) in esdhc_change_pinstate()
1223 pinctrl = imx_data->pins_100mhz; in esdhc_change_pinstate()
1228 pinctrl = imx_data->pins_200mhz; in esdhc_change_pinstate()
1235 return pinctrl_select_state(imx_data->pinctrl, pinctrl); in esdhc_change_pinstate()
1250 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_set_strobe_dll() local
1271 if (imx_data->boarddata.strobe_dll_delay_target) in esdhc_set_strobe_dll()
1272 strobe_delay = imx_data->boarddata.strobe_dll_delay_target; in esdhc_set_strobe_dll()
1292 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_set_uhs_signaling() local
1293 struct esdhc_platform_data *boarddata = &imx_data->boarddata; in esdhc_set_uhs_signaling()
1298 imx_data->is_ddr = 0; in esdhc_set_uhs_signaling()
1313 imx_data->is_ddr = 1; in esdhc_set_uhs_signaling()
1319 if (is_imx53_esdhc(imx_data)) in esdhc_set_uhs_signaling()
1327 imx_data->is_ddr = 1; in esdhc_set_uhs_signaling()
1352 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_get_max_timeout_count() local
1355 return esdhc_is_usdhc(imx_data) ? 1 << 29 : 1 << 27; in esdhc_get_max_timeout_count()
1361 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_set_timeout() local
1365 esdhc_is_usdhc(imx_data) ? 0xF : 0xE, in esdhc_set_timeout()
1413 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in sdhci_esdhc_imx_hwinit() local
1417 if (esdhc_is_usdhc(imx_data)) { in sdhci_esdhc_imx_hwinit()
1443 if (!(imx_data->socdata->flags & ESDHC_FLAG_SKIP_ERR004536)) { in sdhci_esdhc_imx_hwinit()
1460 if (imx_data->socdata->flags & ESDHC_FLAG_CQHCI) { in sdhci_esdhc_imx_hwinit()
1468 if (imx_data->socdata->flags & ESDHC_FLAG_STD_TUNING) { in sdhci_esdhc_imx_hwinit()
1477 if (imx_data->boarddata.tuning_start_tap) in sdhci_esdhc_imx_hwinit()
1478 tmp |= imx_data->boarddata.tuning_start_tap; in sdhci_esdhc_imx_hwinit()
1482 if (imx_data->boarddata.tuning_step) { in sdhci_esdhc_imx_hwinit()
1483 tmp |= imx_data->boarddata.tuning_step in sdhci_esdhc_imx_hwinit()
1502 } else if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING) { in sdhci_esdhc_imx_hwinit()
1595 struct pltfm_imx_data *imx_data) in sdhci_esdhc_imx_probe_dt() argument
1598 struct esdhc_platform_data *boarddata = &imx_data->boarddata; in sdhci_esdhc_imx_probe_dt()
1626 if (esdhc_is_usdhc(imx_data) && !IS_ERR(imx_data->pinctrl)) { in sdhci_esdhc_imx_probe_dt()
1627 imx_data->pins_100mhz = pinctrl_lookup_state(imx_data->pinctrl, in sdhci_esdhc_imx_probe_dt()
1629 imx_data->pins_200mhz = pinctrl_lookup_state(imx_data->pinctrl, in sdhci_esdhc_imx_probe_dt()
1654 struct pltfm_imx_data *imx_data; in sdhci_esdhc_imx_probe() local
1657 sizeof(*imx_data)); in sdhci_esdhc_imx_probe()
1663 imx_data = sdhci_pltfm_priv(pltfm_host); in sdhci_esdhc_imx_probe()
1665 imx_data->socdata = device_get_match_data(&pdev->dev); in sdhci_esdhc_imx_probe()
1667 if (imx_data->socdata->flags & ESDHC_FLAG_PMQOS) in sdhci_esdhc_imx_probe()
1668 cpu_latency_qos_add_request(&imx_data->pm_qos_req, 0); in sdhci_esdhc_imx_probe()
1670 imx_data->clk_ipg = devm_clk_get(&pdev->dev, "ipg"); in sdhci_esdhc_imx_probe()
1671 if (IS_ERR(imx_data->clk_ipg)) { in sdhci_esdhc_imx_probe()
1672 err = PTR_ERR(imx_data->clk_ipg); in sdhci_esdhc_imx_probe()
1676 imx_data->clk_ahb = devm_clk_get(&pdev->dev, "ahb"); in sdhci_esdhc_imx_probe()
1677 if (IS_ERR(imx_data->clk_ahb)) { in sdhci_esdhc_imx_probe()
1678 err = PTR_ERR(imx_data->clk_ahb); in sdhci_esdhc_imx_probe()
1682 imx_data->clk_per = devm_clk_get(&pdev->dev, "per"); in sdhci_esdhc_imx_probe()
1683 if (IS_ERR(imx_data->clk_per)) { in sdhci_esdhc_imx_probe()
1684 err = PTR_ERR(imx_data->clk_per); in sdhci_esdhc_imx_probe()
1688 pltfm_host->clk = imx_data->clk_per; in sdhci_esdhc_imx_probe()
1690 err = clk_prepare_enable(imx_data->clk_per); in sdhci_esdhc_imx_probe()
1693 err = clk_prepare_enable(imx_data->clk_ipg); in sdhci_esdhc_imx_probe()
1696 err = clk_prepare_enable(imx_data->clk_ahb); in sdhci_esdhc_imx_probe()
1700 imx_data->pinctrl = devm_pinctrl_get(&pdev->dev); in sdhci_esdhc_imx_probe()
1701 if (IS_ERR(imx_data->pinctrl)) in sdhci_esdhc_imx_probe()
1704 if (esdhc_is_usdhc(imx_data)) { in sdhci_esdhc_imx_probe()
1711 if (!(imx_data->socdata->flags & ESDHC_FLAG_HS200)) in sdhci_esdhc_imx_probe()
1732 if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING) in sdhci_esdhc_imx_probe()
1736 if (imx_data->socdata->flags & ESDHC_FLAG_ERR004536) in sdhci_esdhc_imx_probe()
1739 if (imx_data->socdata->flags & ESDHC_FLAG_HS400) in sdhci_esdhc_imx_probe()
1742 if (imx_data->socdata->flags & ESDHC_FLAG_BROKEN_AUTO_CMD23) in sdhci_esdhc_imx_probe()
1745 if (imx_data->socdata->flags & ESDHC_FLAG_HS400_ES) { in sdhci_esdhc_imx_probe()
1751 if (imx_data->socdata->flags & ESDHC_FLAG_CQHCI) { in sdhci_esdhc_imx_probe()
1767 err = sdhci_esdhc_imx_probe_dt(pdev, host, imx_data); in sdhci_esdhc_imx_probe()
1794 clk_disable_unprepare(imx_data->clk_ahb); in sdhci_esdhc_imx_probe()
1796 clk_disable_unprepare(imx_data->clk_ipg); in sdhci_esdhc_imx_probe()
1798 clk_disable_unprepare(imx_data->clk_per); in sdhci_esdhc_imx_probe()
1800 if (imx_data->socdata->flags & ESDHC_FLAG_PMQOS) in sdhci_esdhc_imx_probe()
1801 cpu_latency_qos_remove_request(&imx_data->pm_qos_req); in sdhci_esdhc_imx_probe()
1810 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in sdhci_esdhc_imx_remove() local
1820 clk_disable_unprepare(imx_data->clk_per); in sdhci_esdhc_imx_remove()
1821 clk_disable_unprepare(imx_data->clk_ipg); in sdhci_esdhc_imx_remove()
1822 clk_disable_unprepare(imx_data->clk_ahb); in sdhci_esdhc_imx_remove()
1824 if (imx_data->socdata->flags & ESDHC_FLAG_PMQOS) in sdhci_esdhc_imx_remove()
1825 cpu_latency_qos_remove_request(&imx_data->pm_qos_req); in sdhci_esdhc_imx_remove()
1835 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in sdhci_esdhc_suspend() local
1844 if ((imx_data->socdata->flags & ESDHC_FLAG_STATE_LOST_IN_LPMODE) && in sdhci_esdhc_suspend()
1897 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in sdhci_esdhc_runtime_suspend() local
1913 imx_data->actual_clock = host->mmc->actual_clock; in sdhci_esdhc_runtime_suspend()
1915 clk_disable_unprepare(imx_data->clk_per); in sdhci_esdhc_runtime_suspend()
1916 clk_disable_unprepare(imx_data->clk_ipg); in sdhci_esdhc_runtime_suspend()
1917 clk_disable_unprepare(imx_data->clk_ahb); in sdhci_esdhc_runtime_suspend()
1919 if (imx_data->socdata->flags & ESDHC_FLAG_PMQOS) in sdhci_esdhc_runtime_suspend()
1920 cpu_latency_qos_remove_request(&imx_data->pm_qos_req); in sdhci_esdhc_runtime_suspend()
1929 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in sdhci_esdhc_runtime_resume() local
1932 if (imx_data->socdata->flags & ESDHC_FLAG_PMQOS) in sdhci_esdhc_runtime_resume()
1933 cpu_latency_qos_add_request(&imx_data->pm_qos_req, 0); in sdhci_esdhc_runtime_resume()
1935 if (imx_data->socdata->flags & ESDHC_FLAG_CLK_RATE_LOST_IN_PM_RUNTIME) in sdhci_esdhc_runtime_resume()
1936 clk_set_rate(imx_data->clk_per, pltfm_host->clock); in sdhci_esdhc_runtime_resume()
1938 err = clk_prepare_enable(imx_data->clk_ahb); in sdhci_esdhc_runtime_resume()
1942 err = clk_prepare_enable(imx_data->clk_per); in sdhci_esdhc_runtime_resume()
1946 err = clk_prepare_enable(imx_data->clk_ipg); in sdhci_esdhc_runtime_resume()
1950 esdhc_pltfm_set_clock(host, imx_data->actual_clock); in sdhci_esdhc_runtime_resume()
1962 clk_disable_unprepare(imx_data->clk_ipg); in sdhci_esdhc_runtime_resume()
1964 clk_disable_unprepare(imx_data->clk_per); in sdhci_esdhc_runtime_resume()
1966 clk_disable_unprepare(imx_data->clk_ahb); in sdhci_esdhc_runtime_resume()
1968 if (imx_data->socdata->flags & ESDHC_FLAG_PMQOS) in sdhci_esdhc_runtime_resume()
1969 cpu_latency_qos_remove_request(&imx_data->pm_qos_req); in sdhci_esdhc_runtime_resume()