Lines Matching full:mc

6 #include <dt-bindings/memory/tegra20-mc.h>
8 #include "mc.h"
198 static int tegra20_mc_hotreset_assert(struct tegra_mc *mc, in tegra20_mc_hotreset_assert() argument
204 spin_lock_irqsave(&mc->lock, flags); in tegra20_mc_hotreset_assert()
206 value = mc_readl(mc, rst->reset); in tegra20_mc_hotreset_assert()
207 mc_writel(mc, value & ~BIT(rst->bit), rst->reset); in tegra20_mc_hotreset_assert()
209 spin_unlock_irqrestore(&mc->lock, flags); in tegra20_mc_hotreset_assert()
214 static int tegra20_mc_hotreset_deassert(struct tegra_mc *mc, in tegra20_mc_hotreset_deassert() argument
220 spin_lock_irqsave(&mc->lock, flags); in tegra20_mc_hotreset_deassert()
222 value = mc_readl(mc, rst->reset); in tegra20_mc_hotreset_deassert()
223 mc_writel(mc, value | BIT(rst->bit), rst->reset); in tegra20_mc_hotreset_deassert()
225 spin_unlock_irqrestore(&mc->lock, flags); in tegra20_mc_hotreset_deassert()
230 static int tegra20_mc_block_dma(struct tegra_mc *mc, in tegra20_mc_block_dma() argument
236 spin_lock_irqsave(&mc->lock, flags); in tegra20_mc_block_dma()
238 value = mc_readl(mc, rst->control) & ~BIT(rst->bit); in tegra20_mc_block_dma()
239 mc_writel(mc, value, rst->control); in tegra20_mc_block_dma()
241 spin_unlock_irqrestore(&mc->lock, flags); in tegra20_mc_block_dma()
246 static bool tegra20_mc_dma_idling(struct tegra_mc *mc, in tegra20_mc_dma_idling() argument
249 return mc_readl(mc, rst->status) == 0; in tegra20_mc_dma_idling()
252 static int tegra20_mc_reset_status(struct tegra_mc *mc, in tegra20_mc_reset_status() argument
255 return (mc_readl(mc, rst->reset) & BIT(rst->bit)) == 0; in tegra20_mc_reset_status()
258 static int tegra20_mc_unblock_dma(struct tegra_mc *mc, in tegra20_mc_unblock_dma() argument
264 spin_lock_irqsave(&mc->lock, flags); in tegra20_mc_unblock_dma()
266 value = mc_readl(mc, rst->control) | BIT(rst->bit); in tegra20_mc_unblock_dma()
267 mc_writel(mc, value, rst->control); in tegra20_mc_unblock_dma()
269 spin_unlock_irqrestore(&mc->lock, flags); in tegra20_mc_unblock_dma()