Lines Matching refs:msm_host
128 #define msm_host_readl(msm_host, host, offset) \ argument
129 msm_host->var_ops->msm_readl_relaxed(host, offset)
131 #define msm_host_writel(msm_host, val, host, offset) \ argument
132 msm_host->var_ops->msm_writel_relaxed(val, host, offset)
266 struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host); in sdhci_priv_msm_offset() local
268 return msm_host->offset; in sdhci_priv_msm_offset()
279 struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host); in sdhci_msm_mci_variant_readl_relaxed() local
281 return readl_relaxed(msm_host->core_mem + offset); in sdhci_msm_mci_variant_readl_relaxed()
294 struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host); in sdhci_msm_mci_variant_writel_relaxed() local
296 writel_relaxed(val, msm_host->core_mem + offset); in sdhci_msm_mci_variant_writel_relaxed()
327 struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host); in msm_set_clock_rate_for_bus_mode() local
329 struct clk *core_clk = msm_host->bulk_clks[0].clk; in msm_set_clock_rate_for_bus_mode()
340 msm_host->clk_rate = clock; in msm_set_clock_rate_for_bus_mode()
581 struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host); in msm_init_cm_dll() local
586 msm_host->offset; in msm_init_cm_dll()
599 if (msm_host->use_14lpp_dll_reset) { in msm_init_cm_dll()
626 if (msm_host->use_14lpp_dll_reset && in msm_init_cm_dll()
627 !IS_ERR_OR_NULL(msm_host->xo_clk)) { in msm_init_cm_dll()
635 clk_get_rate(msm_host->xo_clk)); in msm_init_cm_dll()
638 clk_get_rate(msm_host->xo_clk)); in msm_init_cm_dll()
663 if (msm_host->use_14lpp_dll_reset) { in msm_init_cm_dll()
704 struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host); in msm_hc_select_default() local
707 msm_host->offset; in msm_hc_select_default()
709 if (!msm_host->use_cdclp533) { in msm_hc_select_default()
744 struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host); in msm_hc_select_hs400() local
749 msm_host->offset; in msm_hc_select_hs400()
761 if ((msm_host->tuning_done || ios.enhanced_strobe) && in msm_hc_select_hs400()
762 !msm_host->calibration_done) { in msm_hc_select_hs400()
770 if (!msm_host->clk_rate && !msm_host->use_cdclp533) { in msm_hc_select_hs400()
826 struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host); in sdhci_msm_cdclp533_calibration() local
830 msm_host->offset; in sdhci_msm_cdclp533_calibration()
843 ret = msm_config_cm_dll_phase(host, msm_host->saved_tuning_phase); in sdhci_msm_cdclp533_calibration()
988 struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host); in sdhci_msm_hs400_dll_calibration() local
993 msm_host->offset; in sdhci_msm_hs400_dll_calibration()
1008 msm_host->saved_tuning_phase); in sdhci_msm_hs400_dll_calibration()
1018 if (msm_host->use_cdclp533) in sdhci_msm_hs400_dll_calibration()
1036 struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host); in sdhci_msm_execute_tuning() local
1072 msm_host->saved_tuning_phase = phase; in sdhci_msm_execute_tuning()
1109 msm_host->tuning_done = true; in sdhci_msm_execute_tuning()
1122 struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host); in sdhci_msm_hs400() local
1126 (msm_host->tuning_done || ios->enhanced_strobe) && in sdhci_msm_hs400()
1127 !msm_host->calibration_done) { in sdhci_msm_hs400()
1130 msm_host->calibration_done = true; in sdhci_msm_hs400()
1142 struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host); in sdhci_msm_set_uhs_signaling() local
1146 msm_host->offset; in sdhci_msm_set_uhs_signaling()
1203 msm_host->calibration_done = false; in sdhci_msm_set_uhs_signaling()
1214 static inline void sdhci_msm_init_pwr_irq_wait(struct sdhci_msm_host *msm_host) in sdhci_msm_init_pwr_irq_wait() argument
1216 init_waitqueue_head(&msm_host->pwr_irq_wait); in sdhci_msm_init_pwr_irq_wait()
1220 struct sdhci_msm_host *msm_host) in sdhci_msm_complete_pwr_irq_wait() argument
1222 wake_up(&msm_host->pwr_irq_wait); in sdhci_msm_complete_pwr_irq_wait()
1237 struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host); in sdhci_msm_check_power_status() local
1241 msm_host->offset; in sdhci_msm_check_power_status()
1245 msm_host->curr_pwr_state, msm_host->curr_io_level); in sdhci_msm_check_power_status()
1253 if (!msm_host->mci_removed) in sdhci_msm_check_power_status()
1254 val = msm_host_readl(msm_host, host, in sdhci_msm_check_power_status()
1278 if ((req_type & msm_host->curr_pwr_state) || in sdhci_msm_check_power_status()
1279 (req_type & msm_host->curr_io_level)) in sdhci_msm_check_power_status()
1288 if (!wait_event_timeout(msm_host->pwr_irq_wait, in sdhci_msm_check_power_status()
1289 msm_host->pwr_irq_flag, in sdhci_msm_check_power_status()
1291 dev_warn(&msm_host->pdev->dev, in sdhci_msm_check_power_status()
1302 struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host); in sdhci_msm_dump_pwr_ctrl_regs() local
1304 msm_host->offset; in sdhci_msm_dump_pwr_ctrl_regs()
1308 msm_host_readl(msm_host, host, msm_offset->core_pwrctl_status), in sdhci_msm_dump_pwr_ctrl_regs()
1309 msm_host_readl(msm_host, host, msm_offset->core_pwrctl_mask), in sdhci_msm_dump_pwr_ctrl_regs()
1310 msm_host_readl(msm_host, host, msm_offset->core_pwrctl_ctl)); in sdhci_msm_dump_pwr_ctrl_regs()
1316 struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host); in sdhci_msm_handle_pwr_irq() local
1321 const struct sdhci_msm_offset *msm_offset = msm_host->offset; in sdhci_msm_handle_pwr_irq()
1323 irq_status = msm_host_readl(msm_host, host, in sdhci_msm_handle_pwr_irq()
1327 msm_host_writel(msm_host, irq_status, host, in sdhci_msm_handle_pwr_irq()
1337 while (irq_status & msm_host_readl(msm_host, host, in sdhci_msm_handle_pwr_irq()
1346 msm_host_writel(msm_host, irq_status, host, in sdhci_msm_handle_pwr_irq()
1378 msm_host_writel(msm_host, irq_ack, host, in sdhci_msm_handle_pwr_irq()
1385 if (msm_host->caps_0 & CORE_VOLT_SUPPORT) { in sdhci_msm_handle_pwr_irq()
1403 (msm_host->caps_0 & CORE_3_0V_SUPPORT)) in sdhci_msm_handle_pwr_irq()
1406 (msm_host->caps_0 & CORE_1_8V_SUPPORT)) in sdhci_msm_handle_pwr_irq()
1415 msm_host->curr_pwr_state = pwr_state; in sdhci_msm_handle_pwr_irq()
1417 msm_host->curr_io_level = io_level; in sdhci_msm_handle_pwr_irq()
1420 mmc_hostname(msm_host->mmc), __func__, irq, irq_status, in sdhci_msm_handle_pwr_irq()
1428 struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host); in sdhci_msm_pwr_irq() local
1431 msm_host->pwr_irq_flag = 1; in sdhci_msm_pwr_irq()
1432 sdhci_msm_complete_pwr_irq_wait(msm_host); in sdhci_msm_pwr_irq()
1441 struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host); in sdhci_msm_get_max_clock() local
1442 struct clk *core_clk = msm_host->bulk_clks[0].clk; in sdhci_msm_get_max_clock()
1489 struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host); in sdhci_msm_set_clock() local
1492 msm_host->clk_rate = clock; in sdhci_msm_set_clock()
1513 struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host); in __sdhci_msm_check_write() local
1531 msm_host->pwr_irq_flag = 0; in __sdhci_msm_check_write()
1566 static void sdhci_msm_set_regulator_caps(struct sdhci_msm_host *msm_host) in sdhci_msm_set_regulator_caps() argument
1568 struct mmc_host *mmc = msm_host->mmc; in sdhci_msm_set_regulator_caps()
1572 const struct sdhci_msm_offset *msm_offset = msm_host->offset; in sdhci_msm_set_regulator_caps()
1590 u32 io_level = msm_host->curr_io_level; in sdhci_msm_set_regulator_caps()
1604 msm_host->caps_0 |= caps; in sdhci_msm_set_regulator_caps()
1661 struct sdhci_msm_host *msm_host; in sdhci_msm_probe() local
1671 host = sdhci_pltfm_init(pdev, &sdhci_msm_pdata, sizeof(*msm_host)); in sdhci_msm_probe()
1677 msm_host = sdhci_pltfm_priv(pltfm_host); in sdhci_msm_probe()
1678 msm_host->mmc = host->mmc; in sdhci_msm_probe()
1679 msm_host->pdev = pdev; in sdhci_msm_probe()
1691 msm_host->mci_removed = var_info->mci_removed; in sdhci_msm_probe()
1692 msm_host->var_ops = var_info->var_ops; in sdhci_msm_probe()
1693 msm_host->offset = var_info->offset; in sdhci_msm_probe()
1695 msm_offset = msm_host->offset; in sdhci_msm_probe()
1699 msm_host->saved_tuning_phase = INVALID_TUNING_PHASE; in sdhci_msm_probe()
1702 msm_host->bus_clk = devm_clk_get(&pdev->dev, "bus"); in sdhci_msm_probe()
1703 if (!IS_ERR(msm_host->bus_clk)) { in sdhci_msm_probe()
1705 ret = clk_set_rate(msm_host->bus_clk, INT_MAX); in sdhci_msm_probe()
1708 ret = clk_prepare_enable(msm_host->bus_clk); in sdhci_msm_probe()
1720 msm_host->bulk_clks[1].clk = clk; in sdhci_msm_probe()
1729 msm_host->bulk_clks[0].clk = clk; in sdhci_msm_probe()
1739 msm_host->bulk_clks[2].clk = clk; in sdhci_msm_probe()
1744 msm_host->bulk_clks[3].clk = clk; in sdhci_msm_probe()
1746 ret = clk_bulk_prepare_enable(ARRAY_SIZE(msm_host->bulk_clks), in sdhci_msm_probe()
1747 msm_host->bulk_clks); in sdhci_msm_probe()
1755 msm_host->xo_clk = devm_clk_get(&pdev->dev, "xo"); in sdhci_msm_probe()
1756 if (IS_ERR(msm_host->xo_clk)) { in sdhci_msm_probe()
1757 ret = PTR_ERR(msm_host->xo_clk); in sdhci_msm_probe()
1761 if (!msm_host->mci_removed) { in sdhci_msm_probe()
1763 msm_host->core_mem = devm_ioremap_resource(&pdev->dev, in sdhci_msm_probe()
1766 if (IS_ERR(msm_host->core_mem)) { in sdhci_msm_probe()
1767 ret = PTR_ERR(msm_host->core_mem); in sdhci_msm_probe()
1776 if (!msm_host->mci_removed) { in sdhci_msm_probe()
1778 msm_host_writel(msm_host, HC_MODE_EN, host, in sdhci_msm_probe()
1780 config = msm_host_readl(msm_host, host, in sdhci_msm_probe()
1783 msm_host_writel(msm_host, config, host, in sdhci_msm_probe()
1792 core_version = msm_host_readl(msm_host, host, in sdhci_msm_probe()
1801 msm_host->use_14lpp_dll_reset = true; in sdhci_msm_probe()
1808 msm_host->use_cdclp533 = true; in sdhci_msm_probe()
1837 msm_host->pwr_irq = platform_get_irq_byname(pdev, "pwr_irq"); in sdhci_msm_probe()
1838 if (msm_host->pwr_irq < 0) { in sdhci_msm_probe()
1840 msm_host->pwr_irq); in sdhci_msm_probe()
1841 ret = msm_host->pwr_irq; in sdhci_msm_probe()
1845 sdhci_msm_init_pwr_irq_wait(msm_host); in sdhci_msm_probe()
1847 msm_host_writel(msm_host, INT_MASK, host, in sdhci_msm_probe()
1850 ret = devm_request_threaded_irq(&pdev->dev, msm_host->pwr_irq, NULL, in sdhci_msm_probe()
1869 sdhci_msm_set_regulator_caps(msm_host); in sdhci_msm_probe()
1881 clk_bulk_disable_unprepare(ARRAY_SIZE(msm_host->bulk_clks), in sdhci_msm_probe()
1882 msm_host->bulk_clks); in sdhci_msm_probe()
1884 if (!IS_ERR(msm_host->bus_clk)) in sdhci_msm_probe()
1885 clk_disable_unprepare(msm_host->bus_clk); in sdhci_msm_probe()
1895 struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host); in sdhci_msm_remove() local
1905 clk_bulk_disable_unprepare(ARRAY_SIZE(msm_host->bulk_clks), in sdhci_msm_remove()
1906 msm_host->bulk_clks); in sdhci_msm_remove()
1907 if (!IS_ERR(msm_host->bus_clk)) in sdhci_msm_remove()
1908 clk_disable_unprepare(msm_host->bus_clk); in sdhci_msm_remove()
1918 struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host); in sdhci_msm_runtime_suspend() local
1920 clk_bulk_disable_unprepare(ARRAY_SIZE(msm_host->bulk_clks), in sdhci_msm_runtime_suspend()
1921 msm_host->bulk_clks); in sdhci_msm_runtime_suspend()
1930 struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host); in sdhci_msm_runtime_resume() local
1932 return clk_bulk_prepare_enable(ARRAY_SIZE(msm_host->bulk_clks), in sdhci_msm_runtime_resume()
1933 msm_host->bulk_clks); in sdhci_msm_runtime_resume()