Lines Matching full:emc

3  * Based on drivers/clk/tegra/clk-emc.c
10 #define pr_fmt(fmt) "tegra-emc-clk: " fmt
56 struct tegra_clk_emc *emc = to_tegra_clk_emc(hw); in emc_recalc_rate() local
59 val = readl_relaxed(emc->reg); in emc_recalc_rate()
67 struct tegra_clk_emc *emc = to_tegra_clk_emc(hw); in emc_get_parent() local
69 return readl_relaxed(emc->reg) >> CLK_SOURCE_EMC_2X_CLK_SRC_SHIFT; in emc_get_parent()
74 struct tegra_clk_emc *emc = to_tegra_clk_emc(hw); in emc_set_parent() local
77 val = readl_relaxed(emc->reg); in emc_set_parent()
83 if (index == EMC_SRC_PLL_M && div == 0 && emc->want_low_jitter) in emc_set_parent()
88 if (emc->mc_same_freq) in emc_set_parent()
93 writel_relaxed(val, emc->reg); in emc_set_parent()
95 fence_udelay(1, emc->reg); in emc_set_parent()
103 struct tegra_clk_emc *emc = to_tegra_clk_emc(hw); in emc_set_rate() local
109 val = readl_relaxed(emc->reg); in emc_set_rate()
115 if (index == EMC_SRC_PLL_M && div == 0 && emc->want_low_jitter) in emc_set_rate()
120 if (emc->mc_same_freq) in emc_set_rate()
125 writel_relaxed(val, emc->reg); in emc_set_rate()
127 fence_udelay(1, emc->reg); in emc_set_rate()
137 struct tegra_clk_emc *emc = to_tegra_clk_emc(hw); in emc_set_rate_and_parent() local
142 val = readl_relaxed(emc->reg); in emc_set_rate_and_parent()
150 if (index == EMC_SRC_PLL_M && div == 0 && emc->want_low_jitter) in emc_set_rate_and_parent()
155 if (emc->mc_same_freq) in emc_set_rate_and_parent()
160 writel_relaxed(val, emc->reg); in emc_set_rate_and_parent()
162 fence_udelay(1, emc->reg); in emc_set_rate_and_parent()
169 struct tegra_clk_emc *emc = to_tegra_clk_emc(hw); in emc_determine_rate() local
177 emc_rate = emc->round_cb(req->rate, req->min_rate, req->max_rate, in emc_determine_rate()
178 emc->cb_arg); in emc_determine_rate()
226 struct clk *clk = __clk_lookup("emc"); in tegra20_clk_set_emc_round_callback()
227 struct tegra_clk_emc *emc; in tegra20_clk_set_emc_round_callback() local
232 emc = to_tegra_clk_emc(hw); in tegra20_clk_set_emc_round_callback()
234 emc->round_cb = round_cb; in tegra20_clk_set_emc_round_callback()
235 emc->cb_arg = cb_arg; in tegra20_clk_set_emc_round_callback()
246 struct tegra_clk_emc *emc; in tegra20_clk_register_emc() local
250 emc = kzalloc(sizeof(*emc), GFP_KERNEL); in tegra20_clk_register_emc()
251 if (!emc) in tegra20_clk_register_emc()
255 * EMC stands for External Memory Controller. in tegra20_clk_register_emc()
257 * We don't want EMC clock to be disabled ever by gating its in tegra20_clk_register_emc()
261 init.name = "emc"; in tegra20_clk_register_emc()
267 emc->reg = ioaddr; in tegra20_clk_register_emc()
268 emc->hw.init = &init; in tegra20_clk_register_emc()
269 emc->want_low_jitter = low_jitter; in tegra20_clk_register_emc()
271 clk = clk_register(NULL, &emc->hw); in tegra20_clk_register_emc()
273 kfree(emc); in tegra20_clk_register_emc()
282 struct tegra_clk_emc *emc; in tegra20_clk_prepare_emc_mc_same_freq() local
289 emc = to_tegra_clk_emc(hw); in tegra20_clk_prepare_emc_mc_same_freq()
290 emc->mc_same_freq = same; in tegra20_clk_prepare_emc_mc_same_freq()