Lines Matching refs:imx_data
387 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host);
402 if (imx_data->socdata->flags & ESDHC_FLAG_HAVE_CAP1)
419 if (esdhc_is_usdhc(imx_data)) {
420 if (imx_data->socdata->flags & ESDHC_FLAG_HAVE_CAP1)
430 if (imx_data->socdata->flags & ESDHC_FLAG_HS400)
437 if (IS_ERR_OR_NULL(imx_data->pins_100mhz) ||
438 IS_ERR_OR_NULL(imx_data->pins_200mhz))
444 if (unlikely(reg == SDHCI_MAX_CURRENT) && esdhc_is_usdhc(imx_data)) {
461 if ((imx_data->multiblock_status == WAIT_FOR_INT) &&
466 imx_data->multiblock_status = NO_CMD_PENDING;
476 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host);
481 if ((val & SDHCI_INT_CARD_INT) && !esdhc_is_usdhc(imx_data)) {
503 if (unlikely((imx_data->socdata->flags & ESDHC_FLAG_MULTIBLK_NO_INT)
511 if (imx_data->multiblock_status == MULTIBLK_IN_PROCESS)
517 imx_data->multiblock_status = WAIT_FOR_INT;
527 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host);
533 if (esdhc_is_usdhc(imx_data)) {
547 if (esdhc_is_usdhc(imx_data)) {
548 if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING)
550 else if (imx_data->socdata->flags & ESDHC_FLAG_STD_TUNING)
566 if (esdhc_is_usdhc(imx_data)) {
587 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host);
608 if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING) {
618 } else if (imx_data->socdata->flags & ESDHC_FLAG_STD_TUNING) {
642 if ((imx_data->socdata->flags & ESDHC_FLAG_MULTIBLK_NO_INT)
652 if (esdhc_is_usdhc(imx_data)) {
696 imx_data->scratchpad = val;
704 (imx_data->socdata->flags & ESDHC_FLAG_MULTIBLK_NO_INT))
705 imx_data->multiblock_status = MULTIBLK_IN_PROCESS;
707 if (esdhc_is_usdhc(imx_data))
711 writel(val << 16 | imx_data->scratchpad,
743 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host);
760 if (!is_imx25_esdhc(imx_data)) {
798 if (esdhc_is_usdhc(imx_data)) {
805 imx_data->is_ddr = 0;
837 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host);
839 int ddr_pre_div = imx_data->is_ddr ? 2 : 1;
845 if (esdhc_is_usdhc(imx_data)) {
858 if (is_imx53_esdhc(imx_data)) {
876 if ((imx_data->socdata->flags & ESDHC_FLAG_ERR010450) &&
880 max_clock = imx_data->is_ddr ? 45000000 : 150000000;
911 if (esdhc_is_usdhc(imx_data)) {
922 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host);
923 struct esdhc_platform_data *boarddata = &imx_data->boarddata;
1062 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host);
1067 if (IS_ERR(imx_data->pinctrl) ||
1068 IS_ERR(imx_data->pins_100mhz) ||
1069 IS_ERR(imx_data->pins_200mhz))
1075 pinctrl = imx_data->pins_100mhz;
1080 pinctrl = imx_data->pins_200mhz;
1087 return pinctrl_select_state(imx_data->pinctrl, pinctrl);
1102 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host);
1123 if (imx_data->boarddata.strobe_dll_delay_target)
1124 strobe_delay = imx_data->boarddata.strobe_dll_delay_target;
1143 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host);
1148 if (esdhc_is_usdhc(imx_data)) {
1149 if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING) {
1155 } else if (imx_data->socdata->flags & ESDHC_FLAG_STD_TUNING) {
1182 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host);
1183 struct esdhc_platform_data *boarddata = &imx_data->boarddata;
1188 imx_data->is_ddr = 0;
1203 imx_data->is_ddr = 1;
1209 if (is_imx53_esdhc(imx_data))
1217 imx_data->is_ddr = 1;
1242 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host);
1245 return esdhc_is_usdhc(imx_data) ? 1 << 29 : 1 << 27;
1251 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host);
1255 esdhc_is_usdhc(imx_data) ? 0xF : 0xE,
1303 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host);
1307 if (esdhc_is_usdhc(imx_data)) {
1348 if (imx_data->socdata->flags & ESDHC_FLAG_CQHCI) {
1356 if (imx_data->socdata->flags & ESDHC_FLAG_STD_TUNING) {
1365 if (imx_data->boarddata.tuning_start_tap)
1366 tmp |= imx_data->boarddata.tuning_start_tap;
1370 if (imx_data->boarddata.tuning_step) {
1371 tmp |= imx_data->boarddata.tuning_step
1390 } else if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING) {
1484 struct pltfm_imx_data *imx_data)
1487 struct esdhc_platform_data *boarddata = &imx_data->boarddata;
1515 if (esdhc_is_usdhc(imx_data) && !IS_ERR(imx_data->pinctrl)) {
1516 imx_data->pins_100mhz = pinctrl_lookup_state(imx_data->pinctrl,
1518 imx_data->pins_200mhz = pinctrl_lookup_state(imx_data->pinctrl,
1536 struct pltfm_imx_data *imx_data)
1550 struct pltfm_imx_data *imx_data;
1553 sizeof(*imx_data));
1559 imx_data = sdhci_pltfm_priv(pltfm_host);
1561 imx_data->socdata = of_id->data;
1563 if (imx_data->socdata->flags & ESDHC_FLAG_PMQOS)
1564 cpu_latency_qos_add_request(&imx_data->pm_qos_req, 0);
1566 imx_data->clk_ipg = devm_clk_get(&pdev->dev, "ipg");
1567 if (IS_ERR(imx_data->clk_ipg)) {
1568 err = PTR_ERR(imx_data->clk_ipg);
1572 imx_data->clk_ahb = devm_clk_get(&pdev->dev, "ahb");
1573 if (IS_ERR(imx_data->clk_ahb)) {
1574 err = PTR_ERR(imx_data->clk_ahb);
1578 imx_data->clk_per = devm_clk_get(&pdev->dev, "per");
1579 if (IS_ERR(imx_data->clk_per)) {
1580 err = PTR_ERR(imx_data->clk_per);
1584 pltfm_host->clk = imx_data->clk_per;
1586 err = clk_prepare_enable(imx_data->clk_per);
1589 err = clk_prepare_enable(imx_data->clk_ipg);
1592 err = clk_prepare_enable(imx_data->clk_ahb);
1596 imx_data->pinctrl = devm_pinctrl_get(&pdev->dev);
1597 if (IS_ERR(imx_data->pinctrl))
1600 if (esdhc_is_usdhc(imx_data)) {
1607 if (!(imx_data->socdata->flags & ESDHC_FLAG_HS200))
1622 err = sdhci_esdhc_imx_probe_dt(pdev, host, imx_data);
1626 if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING)
1630 if (imx_data->socdata->flags & ESDHC_FLAG_ERR004536)
1634 imx_data->socdata->flags & ESDHC_FLAG_HS400)
1637 if (imx_data->socdata->flags & ESDHC_FLAG_BROKEN_AUTO_CMD23)
1641 imx_data->socdata->flags & ESDHC_FLAG_HS400_ES) {
1647 if (imx_data->socdata->flags & ESDHC_FLAG_CQHCI) {
1678 clk_disable_unprepare(imx_data->clk_ahb);
1680 clk_disable_unprepare(imx_data->clk_ipg);
1682 clk_disable_unprepare(imx_data->clk_per);
1684 if (imx_data->socdata->flags & ESDHC_FLAG_PMQOS)
1685 cpu_latency_qos_remove_request(&imx_data->pm_qos_req);
1694 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host);
1704 clk_disable_unprepare(imx_data->clk_per);
1705 clk_disable_unprepare(imx_data->clk_ipg);
1706 clk_disable_unprepare(imx_data->clk_ahb);
1708 if (imx_data->socdata->flags & ESDHC_FLAG_PMQOS)
1709 cpu_latency_qos_remove_request(&imx_data->pm_qos_req);
1721 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host);
1730 if ((imx_data->socdata->flags & ESDHC_FLAG_STATE_LOST_IN_LPMODE) &&
1783 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host);
1799 imx_data->actual_clock = host->mmc->actual_clock;
1801 clk_disable_unprepare(imx_data->clk_per);
1802 clk_disable_unprepare(imx_data->clk_ipg);
1803 clk_disable_unprepare(imx_data->clk_ahb);
1805 if (imx_data->socdata->flags & ESDHC_FLAG_PMQOS)
1806 cpu_latency_qos_remove_request(&imx_data->pm_qos_req);
1815 struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host);
1818 if (imx_data->socdata->flags & ESDHC_FLAG_PMQOS)
1819 cpu_latency_qos_add_request(&imx_data->pm_qos_req, 0);
1821 if (imx_data->socdata->flags & ESDHC_FLAG_CLK_RATE_LOST_IN_PM_RUNTIME)
1822 clk_set_rate(imx_data->clk_per, pltfm_host->clock);
1824 err = clk_prepare_enable(imx_data->clk_ahb);
1828 err = clk_prepare_enable(imx_data->clk_per);
1832 err = clk_prepare_enable(imx_data->clk_ipg);
1836 esdhc_pltfm_set_clock(host, imx_data->actual_clock);
1848 clk_disable_unprepare(imx_data->clk_ipg);
1850 clk_disable_unprepare(imx_data->clk_per);
1852 clk_disable_unprepare(imx_data->clk_ahb);
1854 if (imx_data->socdata->flags & ESDHC_FLAG_PMQOS)
1855 cpu_latency_qos_remove_request(&imx_data->pm_qos_req);