Lines Matching defs:mc

14 #include <soc/tegra/mc.h>
17 #include <dt-bindings/memory/tegra186-mc.h>
20 #include "mc.h"
26 static int tegra186_mc_probe(struct tegra_mc *mc)
28 struct platform_device *pdev = to_platform_device(mc->dev);
33 mc->bcast_ch_regs = devm_platform_ioremap_resource_byname(pdev, "broadcast");
34 if (IS_ERR(mc->bcast_ch_regs)) {
35 if (PTR_ERR(mc->bcast_ch_regs) == -EINVAL) {
38 mc->bcast_ch_regs = NULL;
42 return PTR_ERR(mc->bcast_ch_regs);
45 mc->ch_regs = devm_kcalloc(mc->dev, mc->soc->num_channels, sizeof(*mc->ch_regs),
47 if (!mc->ch_regs)
50 for (i = 0; i < mc->soc->num_channels; i++) {
53 mc->ch_regs[i] = devm_platform_ioremap_resource_byname(pdev, name);
54 if (IS_ERR(mc->ch_regs[i]))
55 return PTR_ERR(mc->ch_regs[i]);
59 err = of_platform_populate(mc->dev->of_node, NULL, NULL, mc->dev);
66 static void tegra186_mc_remove(struct tegra_mc *mc)
68 of_platform_depopulate(mc->dev);
72 static void tegra186_mc_client_sid_override(struct tegra_mc *mc,
81 value = readl(mc->regs + client->regs.sid.security);
100 writel(value, mc->regs + client->regs.sid.security);
103 value = readl(mc->regs + client->regs.sid.override);
107 dev_dbg(mc->dev, "overriding SID %x for %s with %x\n", old,
109 writel(sid, mc->regs + client->regs.sid.override);
114 static int tegra186_mc_probe_device(struct tegra_mc *mc, struct device *dev)
126 if (args.np == mc->dev->of_node && args.args_count != 0) {
127 for (i = 0; i < mc->soc->num_clients; i++) {
128 const struct tegra_mc_client *client = &mc->soc->clients[i];
132 mc, client,
144 static int tegra186_mc_resume(struct tegra_mc *mc)
149 for (i = 0; i < mc->soc->num_clients; i++) {
150 const struct tegra_mc_client *client = &mc->soc->clients[i];
152 tegra186_mc_client_sid_override(mc, client, client->sid);