Lines Matching refs:imx_data
457 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_readl_le() local
472 if (imx_data->socdata->flags & ESDHC_FLAG_HAVE_CAP1) in esdhc_readl_le()
489 if (esdhc_is_usdhc(imx_data)) { in esdhc_readl_le()
490 if (imx_data->socdata->flags & ESDHC_FLAG_HAVE_CAP1) in esdhc_readl_le()
504 if (IS_ERR_OR_NULL(imx_data->pins_100mhz)) in esdhc_readl_le()
506 if (IS_ERR_OR_NULL(imx_data->pins_200mhz)) in esdhc_readl_le()
511 if (unlikely(reg == SDHCI_MAX_CURRENT) && esdhc_is_usdhc(imx_data)) { in esdhc_readl_le()
528 if ((imx_data->multiblock_status == WAIT_FOR_INT) && in esdhc_readl_le()
533 imx_data->multiblock_status = NO_CMD_PENDING; in esdhc_readl_le()
543 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_writel_le() local
548 if ((val & SDHCI_INT_CARD_INT) && !esdhc_is_usdhc(imx_data)) { in esdhc_writel_le()
570 if (unlikely((imx_data->socdata->flags & ESDHC_FLAG_MULTIBLK_NO_INT) in esdhc_writel_le()
578 if (imx_data->multiblock_status == MULTIBLK_IN_PROCESS) in esdhc_writel_le()
584 imx_data->multiblock_status = WAIT_FOR_INT; in esdhc_writel_le()
594 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_readw_le() local
600 if (esdhc_is_usdhc(imx_data)) { in esdhc_readw_le()
614 if (esdhc_is_usdhc(imx_data)) { in esdhc_readw_le()
615 if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING) in esdhc_readw_le()
617 else if (imx_data->socdata->flags & ESDHC_FLAG_STD_TUNING) in esdhc_readw_le()
633 if (esdhc_is_usdhc(imx_data)) { in esdhc_readw_le()
654 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_writew_le() local
675 if (imx_data->socdata->flags & ESDHC_FLAG_STD_TUNING) { in esdhc_writew_le()
700 if ((imx_data->socdata->flags & ESDHC_FLAG_MULTIBLK_NO_INT) in esdhc_writew_le()
710 if (esdhc_is_usdhc(imx_data)) { in esdhc_writew_le()
754 imx_data->scratchpad = val; in esdhc_writew_le()
762 (imx_data->socdata->flags & ESDHC_FLAG_MULTIBLK_NO_INT)) in esdhc_writew_le()
763 imx_data->multiblock_status = MULTIBLK_IN_PROCESS; in esdhc_writew_le()
765 if (esdhc_is_usdhc(imx_data)) in esdhc_writew_le()
769 writel(val << 16 | imx_data->scratchpad, in esdhc_writew_le()
801 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_writeb_le() local
818 if (!is_imx25_esdhc(imx_data)) { in esdhc_writeb_le()
856 if (esdhc_is_usdhc(imx_data)) { in esdhc_writeb_le()
863 imx_data->is_ddr = 0; in esdhc_writeb_le()
895 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_pltfm_set_clock() local
897 int ddr_pre_div = imx_data->is_ddr ? 2 : 1; in esdhc_pltfm_set_clock()
903 if (esdhc_is_usdhc(imx_data)) { in esdhc_pltfm_set_clock()
916 if (is_imx53_esdhc(imx_data)) { in esdhc_pltfm_set_clock()
934 if (imx_data->socdata->flags & ESDHC_FLAG_ERR010450) { in esdhc_pltfm_set_clock()
937 max_clock = imx_data->is_ddr ? 45000000 : 150000000; in esdhc_pltfm_set_clock()
968 if (esdhc_is_usdhc(imx_data)) { in esdhc_pltfm_set_clock()
979 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_pltfm_get_ro() local
980 struct esdhc_platform_data *boarddata = &imx_data->boarddata; in esdhc_pltfm_get_ro()
1121 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_change_pinstate() local
1126 if (IS_ERR(imx_data->pinctrl) || in esdhc_change_pinstate()
1127 IS_ERR(imx_data->pins_100mhz) || in esdhc_change_pinstate()
1128 IS_ERR(imx_data->pins_200mhz)) in esdhc_change_pinstate()
1134 pinctrl = imx_data->pins_100mhz; in esdhc_change_pinstate()
1139 pinctrl = imx_data->pins_200mhz; in esdhc_change_pinstate()
1146 return pinctrl_select_state(imx_data->pinctrl, pinctrl); in esdhc_change_pinstate()
1161 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_set_strobe_dll() local
1182 if (imx_data->boarddata.strobe_dll_delay_target) in esdhc_set_strobe_dll()
1183 strobe_delay = imx_data->boarddata.strobe_dll_delay_target; in esdhc_set_strobe_dll()
1202 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_reset_tuning() local
1207 if (esdhc_is_usdhc(imx_data)) { in esdhc_reset_tuning()
1208 if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING) { in esdhc_reset_tuning()
1214 } else if (imx_data->socdata->flags & ESDHC_FLAG_STD_TUNING) { in esdhc_reset_tuning()
1241 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_set_uhs_signaling() local
1242 struct esdhc_platform_data *boarddata = &imx_data->boarddata; in esdhc_set_uhs_signaling()
1247 imx_data->is_ddr = 0; in esdhc_set_uhs_signaling()
1262 imx_data->is_ddr = 1; in esdhc_set_uhs_signaling()
1268 if (is_imx53_esdhc(imx_data)) in esdhc_set_uhs_signaling()
1276 imx_data->is_ddr = 1; in esdhc_set_uhs_signaling()
1301 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_get_max_timeout_count() local
1304 return esdhc_is_usdhc(imx_data) ? 1 << 29 : 1 << 27; in esdhc_get_max_timeout_count()
1310 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in esdhc_set_timeout() local
1314 esdhc_is_usdhc(imx_data) ? 0xF : 0xE, in esdhc_set_timeout()
1362 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in sdhci_esdhc_imx_hwinit() local
1366 if (esdhc_is_usdhc(imx_data)) { in sdhci_esdhc_imx_hwinit()
1392 if (!(imx_data->socdata->flags & ESDHC_FLAG_SKIP_ERR004536)) { in sdhci_esdhc_imx_hwinit()
1409 if (imx_data->socdata->flags & ESDHC_FLAG_CQHCI) { in sdhci_esdhc_imx_hwinit()
1417 if (imx_data->socdata->flags & ESDHC_FLAG_STD_TUNING) { in sdhci_esdhc_imx_hwinit()
1421 if (imx_data->boarddata.tuning_start_tap) { in sdhci_esdhc_imx_hwinit()
1423 tmp |= imx_data->boarddata.tuning_start_tap; in sdhci_esdhc_imx_hwinit()
1426 if (imx_data->boarddata.tuning_step) { in sdhci_esdhc_imx_hwinit()
1428 tmp |= imx_data->boarddata.tuning_step in sdhci_esdhc_imx_hwinit()
1444 } else if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING) { in sdhci_esdhc_imx_hwinit()
1537 struct pltfm_imx_data *imx_data) in sdhci_esdhc_imx_probe_dt() argument
1540 struct esdhc_platform_data *boarddata = &imx_data->boarddata; in sdhci_esdhc_imx_probe_dt()
1568 if (esdhc_is_usdhc(imx_data) && !IS_ERR(imx_data->pinctrl)) { in sdhci_esdhc_imx_probe_dt()
1569 imx_data->pins_100mhz = pinctrl_lookup_state(imx_data->pinctrl, in sdhci_esdhc_imx_probe_dt()
1571 imx_data->pins_200mhz = pinctrl_lookup_state(imx_data->pinctrl, in sdhci_esdhc_imx_probe_dt()
1592 struct pltfm_imx_data *imx_data; in sdhci_esdhc_imx_probe() local
1595 sizeof(*imx_data)); in sdhci_esdhc_imx_probe()
1601 imx_data = sdhci_pltfm_priv(pltfm_host); in sdhci_esdhc_imx_probe()
1603 imx_data->socdata = device_get_match_data(&pdev->dev); in sdhci_esdhc_imx_probe()
1605 if (imx_data->socdata->flags & ESDHC_FLAG_PMQOS) in sdhci_esdhc_imx_probe()
1606 cpu_latency_qos_add_request(&imx_data->pm_qos_req, 0); in sdhci_esdhc_imx_probe()
1608 imx_data->clk_ipg = devm_clk_get(&pdev->dev, "ipg"); in sdhci_esdhc_imx_probe()
1609 if (IS_ERR(imx_data->clk_ipg)) { in sdhci_esdhc_imx_probe()
1610 err = PTR_ERR(imx_data->clk_ipg); in sdhci_esdhc_imx_probe()
1614 imx_data->clk_ahb = devm_clk_get(&pdev->dev, "ahb"); in sdhci_esdhc_imx_probe()
1615 if (IS_ERR(imx_data->clk_ahb)) { in sdhci_esdhc_imx_probe()
1616 err = PTR_ERR(imx_data->clk_ahb); in sdhci_esdhc_imx_probe()
1620 imx_data->clk_per = devm_clk_get(&pdev->dev, "per"); in sdhci_esdhc_imx_probe()
1621 if (IS_ERR(imx_data->clk_per)) { in sdhci_esdhc_imx_probe()
1622 err = PTR_ERR(imx_data->clk_per); in sdhci_esdhc_imx_probe()
1626 pltfm_host->clk = imx_data->clk_per; in sdhci_esdhc_imx_probe()
1628 err = clk_prepare_enable(imx_data->clk_per); in sdhci_esdhc_imx_probe()
1631 err = clk_prepare_enable(imx_data->clk_ipg); in sdhci_esdhc_imx_probe()
1634 err = clk_prepare_enable(imx_data->clk_ahb); in sdhci_esdhc_imx_probe()
1638 imx_data->pinctrl = devm_pinctrl_get(&pdev->dev); in sdhci_esdhc_imx_probe()
1639 if (IS_ERR(imx_data->pinctrl)) in sdhci_esdhc_imx_probe()
1642 if (esdhc_is_usdhc(imx_data)) { in sdhci_esdhc_imx_probe()
1649 if (!(imx_data->socdata->flags & ESDHC_FLAG_HS200)) in sdhci_esdhc_imx_probe()
1664 err = sdhci_esdhc_imx_probe_dt(pdev, host, imx_data); in sdhci_esdhc_imx_probe()
1668 if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING) in sdhci_esdhc_imx_probe()
1672 if (imx_data->socdata->flags & ESDHC_FLAG_ERR004536) in sdhci_esdhc_imx_probe()
1676 imx_data->socdata->flags & ESDHC_FLAG_HS400) in sdhci_esdhc_imx_probe()
1679 if (imx_data->socdata->flags & ESDHC_FLAG_BROKEN_AUTO_CMD23) in sdhci_esdhc_imx_probe()
1683 imx_data->socdata->flags & ESDHC_FLAG_HS400_ES) { in sdhci_esdhc_imx_probe()
1689 if (imx_data->socdata->flags & ESDHC_FLAG_CQHCI) { in sdhci_esdhc_imx_probe()
1728 clk_disable_unprepare(imx_data->clk_ahb); in sdhci_esdhc_imx_probe()
1730 clk_disable_unprepare(imx_data->clk_ipg); in sdhci_esdhc_imx_probe()
1732 clk_disable_unprepare(imx_data->clk_per); in sdhci_esdhc_imx_probe()
1734 if (imx_data->socdata->flags & ESDHC_FLAG_PMQOS) in sdhci_esdhc_imx_probe()
1735 cpu_latency_qos_remove_request(&imx_data->pm_qos_req); in sdhci_esdhc_imx_probe()
1744 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in sdhci_esdhc_imx_remove() local
1754 clk_disable_unprepare(imx_data->clk_per); in sdhci_esdhc_imx_remove()
1755 clk_disable_unprepare(imx_data->clk_ipg); in sdhci_esdhc_imx_remove()
1756 clk_disable_unprepare(imx_data->clk_ahb); in sdhci_esdhc_imx_remove()
1758 if (imx_data->socdata->flags & ESDHC_FLAG_PMQOS) in sdhci_esdhc_imx_remove()
1759 cpu_latency_qos_remove_request(&imx_data->pm_qos_req); in sdhci_esdhc_imx_remove()
1771 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in sdhci_esdhc_suspend() local
1780 if ((imx_data->socdata->flags & ESDHC_FLAG_STATE_LOST_IN_LPMODE) && in sdhci_esdhc_suspend()
1833 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in sdhci_esdhc_runtime_suspend() local
1849 imx_data->actual_clock = host->mmc->actual_clock; in sdhci_esdhc_runtime_suspend()
1851 clk_disable_unprepare(imx_data->clk_per); in sdhci_esdhc_runtime_suspend()
1852 clk_disable_unprepare(imx_data->clk_ipg); in sdhci_esdhc_runtime_suspend()
1853 clk_disable_unprepare(imx_data->clk_ahb); in sdhci_esdhc_runtime_suspend()
1855 if (imx_data->socdata->flags & ESDHC_FLAG_PMQOS) in sdhci_esdhc_runtime_suspend()
1856 cpu_latency_qos_remove_request(&imx_data->pm_qos_req); in sdhci_esdhc_runtime_suspend()
1865 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host); in sdhci_esdhc_runtime_resume() local
1868 if (imx_data->socdata->flags & ESDHC_FLAG_PMQOS) in sdhci_esdhc_runtime_resume()
1869 cpu_latency_qos_add_request(&imx_data->pm_qos_req, 0); in sdhci_esdhc_runtime_resume()
1871 if (imx_data->socdata->flags & ESDHC_FLAG_CLK_RATE_LOST_IN_PM_RUNTIME) in sdhci_esdhc_runtime_resume()
1872 clk_set_rate(imx_data->clk_per, pltfm_host->clock); in sdhci_esdhc_runtime_resume()
1874 err = clk_prepare_enable(imx_data->clk_ahb); in sdhci_esdhc_runtime_resume()
1878 err = clk_prepare_enable(imx_data->clk_per); in sdhci_esdhc_runtime_resume()
1882 err = clk_prepare_enable(imx_data->clk_ipg); in sdhci_esdhc_runtime_resume()
1886 esdhc_pltfm_set_clock(host, imx_data->actual_clock); in sdhci_esdhc_runtime_resume()
1898 clk_disable_unprepare(imx_data->clk_ipg); in sdhci_esdhc_runtime_resume()
1900 clk_disable_unprepare(imx_data->clk_per); in sdhci_esdhc_runtime_resume()
1902 clk_disable_unprepare(imx_data->clk_ahb); in sdhci_esdhc_runtime_resume()
1904 if (imx_data->socdata->flags & ESDHC_FLAG_PMQOS) in sdhci_esdhc_runtime_resume()
1905 cpu_latency_qos_remove_request(&imx_data->pm_qos_req); in sdhci_esdhc_runtime_resume()