Lines Matching refs:imx_data

262 	struct pltfm_imx_data *imx_data = pltfm_host->priv;  in esdhc_readl_le()  local
277 if (imx_data->socdata->flags & ESDHC_FLAG_HAVE_CAP1) in esdhc_readl_le()
294 if (esdhc_is_usdhc(imx_data)) { in esdhc_readl_le()
295 if (imx_data->socdata->flags & ESDHC_FLAG_HAVE_CAP1) in esdhc_readl_le()
303 if (imx_data->socdata->flags & ESDHC_FLAG_HS400) in esdhc_readl_le()
308 if (unlikely(reg == SDHCI_MAX_CURRENT) && esdhc_is_usdhc(imx_data)) { in esdhc_readl_le()
325 if ((imx_data->multiblock_status == WAIT_FOR_INT) && in esdhc_readl_le()
330 imx_data->multiblock_status = NO_CMD_PENDING; in esdhc_readl_le()
340 struct pltfm_imx_data *imx_data = pltfm_host->priv; in esdhc_writel_le() local
344 if ((val & SDHCI_INT_CARD_INT) && !esdhc_is_usdhc(imx_data)) { in esdhc_writel_le()
366 if (unlikely((imx_data->socdata->flags & ESDHC_FLAG_MULTIBLK_NO_INT) in esdhc_writel_le()
374 if (imx_data->multiblock_status == MULTIBLK_IN_PROCESS) in esdhc_writel_le()
380 imx_data->multiblock_status = WAIT_FOR_INT; in esdhc_writel_le()
390 struct pltfm_imx_data *imx_data = pltfm_host->priv; in esdhc_readw_le() local
396 if (esdhc_is_usdhc(imx_data)) { in esdhc_readw_le()
410 if (esdhc_is_usdhc(imx_data)) { in esdhc_readw_le()
411 if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING) in esdhc_readw_le()
413 else if (imx_data->socdata->flags & ESDHC_FLAG_STD_TUNING) in esdhc_readw_le()
429 if (esdhc_is_usdhc(imx_data)) { in esdhc_readw_le()
450 struct pltfm_imx_data *imx_data = pltfm_host->priv; in esdhc_writew_le() local
469 if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING) { in esdhc_writew_le()
476 } else if (imx_data->socdata->flags & ESDHC_FLAG_STD_TUNING) { in esdhc_writew_le()
492 if (imx_data->boarddata.tuning_step) in esdhc_writew_le()
493 tuning_ctrl |= imx_data->boarddata.tuning_step << ESDHC_TUNING_STEP_SHIFT; in esdhc_writew_le()
504 if ((imx_data->socdata->flags & ESDHC_FLAG_MULTIBLK_NO_INT) in esdhc_writew_le()
514 if (esdhc_is_usdhc(imx_data)) { in esdhc_writew_le()
528 imx_data->scratchpad = val; in esdhc_writew_le()
536 (imx_data->socdata->flags & ESDHC_FLAG_MULTIBLK_NO_INT)) in esdhc_writew_le()
537 imx_data->multiblock_status = MULTIBLK_IN_PROCESS; in esdhc_writew_le()
539 if (esdhc_is_usdhc(imx_data)) in esdhc_writew_le()
543 writel(val << 16 | imx_data->scratchpad, in esdhc_writew_le()
556 struct pltfm_imx_data *imx_data = pltfm_host->priv; in esdhc_writeb_le() local
573 if (!is_imx25_esdhc(imx_data)) { in esdhc_writeb_le()
605 if (esdhc_is_usdhc(imx_data)) { in esdhc_writeb_le()
610 imx_data->is_ddr = 0; in esdhc_writeb_le()
633 struct pltfm_imx_data *imx_data = pltfm_host->priv; in esdhc_pltfm_set_clock() local
642 if (esdhc_is_usdhc(imx_data)) { in esdhc_pltfm_set_clock()
650 if (esdhc_is_usdhc(imx_data) && !imx_data->is_ddr) in esdhc_pltfm_set_clock()
668 if (imx_data->is_ddr) in esdhc_pltfm_set_clock()
680 if (esdhc_is_usdhc(imx_data)) { in esdhc_pltfm_set_clock()
692 struct pltfm_imx_data *imx_data = pltfm_host->priv; in esdhc_pltfm_get_ro() local
693 struct esdhc_platform_data *boarddata = &imx_data->boarddata; in esdhc_pltfm_get_ro()
794 struct pltfm_imx_data *imx_data = pltfm_host->priv; in esdhc_change_pinstate() local
799 if (IS_ERR(imx_data->pinctrl) || in esdhc_change_pinstate()
800 IS_ERR(imx_data->pins_default) || in esdhc_change_pinstate()
801 IS_ERR(imx_data->pins_100mhz) || in esdhc_change_pinstate()
802 IS_ERR(imx_data->pins_200mhz)) in esdhc_change_pinstate()
807 pinctrl = imx_data->pins_100mhz; in esdhc_change_pinstate()
812 pinctrl = imx_data->pins_200mhz; in esdhc_change_pinstate()
816 pinctrl = imx_data->pins_default; in esdhc_change_pinstate()
819 return pinctrl_select_state(imx_data->pinctrl, pinctrl); in esdhc_change_pinstate()
864 struct pltfm_imx_data *imx_data = pltfm_host->priv; in esdhc_set_uhs_signaling() local
865 struct esdhc_platform_data *boarddata = &imx_data->boarddata; in esdhc_set_uhs_signaling()
870 imx_data->is_ddr = 0; in esdhc_set_uhs_signaling()
884 imx_data->is_ddr = 1; in esdhc_set_uhs_signaling()
890 if (is_imx53_esdhc(imx_data)) in esdhc_set_uhs_signaling()
898 imx_data->is_ddr = 1; in esdhc_set_uhs_signaling()
917 struct pltfm_imx_data *imx_data = pltfm_host->priv; in esdhc_get_max_timeout_count() local
919 return esdhc_is_usdhc(imx_data) ? 1 << 28 : 1 << 27; in esdhc_get_max_timeout_count()
925 struct pltfm_imx_data *imx_data = pltfm_host->priv; in esdhc_set_timeout() local
928 sdhci_writeb(host, esdhc_is_usdhc(imx_data) ? 0xF : 0xE, in esdhc_set_timeout()
961 struct pltfm_imx_data *imx_data) in sdhci_esdhc_imx_probe_dt() argument
964 struct esdhc_platform_data *boarddata = &imx_data->boarddata; in sdhci_esdhc_imx_probe_dt()
987 if ((boarddata->support_vsel) && esdhc_is_usdhc(imx_data) && in sdhci_esdhc_imx_probe_dt()
988 !IS_ERR(imx_data->pins_default)) { in sdhci_esdhc_imx_probe_dt()
989 imx_data->pins_100mhz = pinctrl_lookup_state(imx_data->pinctrl, in sdhci_esdhc_imx_probe_dt()
991 imx_data->pins_200mhz = pinctrl_lookup_state(imx_data->pinctrl, in sdhci_esdhc_imx_probe_dt()
993 if (IS_ERR(imx_data->pins_100mhz) || in sdhci_esdhc_imx_probe_dt()
994 IS_ERR(imx_data->pins_200mhz)) { in sdhci_esdhc_imx_probe_dt()
1020 struct pltfm_imx_data *imx_data) in sdhci_esdhc_imx_probe_dt() argument
1028 struct pltfm_imx_data *imx_data) in sdhci_esdhc_imx_probe_nondt() argument
1030 struct esdhc_platform_data *boarddata = &imx_data->boarddata; in sdhci_esdhc_imx_probe_nondt()
1038 imx_data->boarddata = *((struct esdhc_platform_data *) in sdhci_esdhc_imx_probe_nondt()
1098 struct pltfm_imx_data *imx_data; in sdhci_esdhc_imx_probe() local
1106 imx_data = devm_kzalloc(&pdev->dev, sizeof(*imx_data), GFP_KERNEL); in sdhci_esdhc_imx_probe()
1107 if (!imx_data) { in sdhci_esdhc_imx_probe()
1112 imx_data->socdata = of_id ? of_id->data : (struct esdhc_soc_data *) in sdhci_esdhc_imx_probe()
1114 pltfm_host->priv = imx_data; in sdhci_esdhc_imx_probe()
1116 imx_data->clk_ipg = devm_clk_get(&pdev->dev, "ipg"); in sdhci_esdhc_imx_probe()
1117 if (IS_ERR(imx_data->clk_ipg)) { in sdhci_esdhc_imx_probe()
1118 err = PTR_ERR(imx_data->clk_ipg); in sdhci_esdhc_imx_probe()
1122 imx_data->clk_ahb = devm_clk_get(&pdev->dev, "ahb"); in sdhci_esdhc_imx_probe()
1123 if (IS_ERR(imx_data->clk_ahb)) { in sdhci_esdhc_imx_probe()
1124 err = PTR_ERR(imx_data->clk_ahb); in sdhci_esdhc_imx_probe()
1128 imx_data->clk_per = devm_clk_get(&pdev->dev, "per"); in sdhci_esdhc_imx_probe()
1129 if (IS_ERR(imx_data->clk_per)) { in sdhci_esdhc_imx_probe()
1130 err = PTR_ERR(imx_data->clk_per); in sdhci_esdhc_imx_probe()
1134 pltfm_host->clk = imx_data->clk_per; in sdhci_esdhc_imx_probe()
1136 clk_prepare_enable(imx_data->clk_per); in sdhci_esdhc_imx_probe()
1137 clk_prepare_enable(imx_data->clk_ipg); in sdhci_esdhc_imx_probe()
1138 clk_prepare_enable(imx_data->clk_ahb); in sdhci_esdhc_imx_probe()
1140 imx_data->pinctrl = devm_pinctrl_get(&pdev->dev); in sdhci_esdhc_imx_probe()
1141 if (IS_ERR(imx_data->pinctrl)) { in sdhci_esdhc_imx_probe()
1142 err = PTR_ERR(imx_data->pinctrl); in sdhci_esdhc_imx_probe()
1146 imx_data->pins_default = pinctrl_lookup_state(imx_data->pinctrl, in sdhci_esdhc_imx_probe()
1148 if (IS_ERR(imx_data->pins_default)) in sdhci_esdhc_imx_probe()
1153 if (imx_data->socdata->flags & ESDHC_FLAG_ENGCM07207) in sdhci_esdhc_imx_probe()
1162 if (esdhc_is_usdhc(imx_data)) { in sdhci_esdhc_imx_probe()
1183 if (!(imx_data->socdata->flags & ESDHC_FLAG_HS200)) in sdhci_esdhc_imx_probe()
1194 if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING) in sdhci_esdhc_imx_probe()
1198 if (imx_data->socdata->flags & ESDHC_FLAG_STD_TUNING) in sdhci_esdhc_imx_probe()
1203 if (imx_data->socdata->flags & ESDHC_FLAG_ERR004536) in sdhci_esdhc_imx_probe()
1206 if (imx_data->socdata->flags & ESDHC_FLAG_HS400) in sdhci_esdhc_imx_probe()
1210 err = sdhci_esdhc_imx_probe_dt(pdev, host, imx_data); in sdhci_esdhc_imx_probe()
1212 err = sdhci_esdhc_imx_probe_nondt(pdev, host, imx_data); in sdhci_esdhc_imx_probe()
1229 clk_disable_unprepare(imx_data->clk_per); in sdhci_esdhc_imx_probe()
1230 clk_disable_unprepare(imx_data->clk_ipg); in sdhci_esdhc_imx_probe()
1231 clk_disable_unprepare(imx_data->clk_ahb); in sdhci_esdhc_imx_probe()
1241 struct pltfm_imx_data *imx_data = pltfm_host->priv; in sdhci_esdhc_imx_remove() local
1250 clk_disable_unprepare(imx_data->clk_per); in sdhci_esdhc_imx_remove()
1251 clk_disable_unprepare(imx_data->clk_ipg); in sdhci_esdhc_imx_remove()
1252 clk_disable_unprepare(imx_data->clk_ahb); in sdhci_esdhc_imx_remove()
1264 struct pltfm_imx_data *imx_data = pltfm_host->priv; in sdhci_esdhc_runtime_suspend() local
1270 clk_disable_unprepare(imx_data->clk_per); in sdhci_esdhc_runtime_suspend()
1271 clk_disable_unprepare(imx_data->clk_ipg); in sdhci_esdhc_runtime_suspend()
1273 clk_disable_unprepare(imx_data->clk_ahb); in sdhci_esdhc_runtime_suspend()
1282 struct pltfm_imx_data *imx_data = pltfm_host->priv; in sdhci_esdhc_runtime_resume() local
1285 clk_prepare_enable(imx_data->clk_per); in sdhci_esdhc_runtime_resume()
1286 clk_prepare_enable(imx_data->clk_ipg); in sdhci_esdhc_runtime_resume()
1288 clk_prepare_enable(imx_data->clk_ahb); in sdhci_esdhc_runtime_resume()