Lines Matching +full:tegra186 +full:- +full:mc
1 // SPDX-License-Identifier: GPL-2.0-only
13 #include <dt-bindings/memory/tegra186-mc.h>
17 #include <dt-bindings/memory/tegra194-mc.h>
41 static void tegra186_mc_program_sid(struct tegra186_mc *mc) in tegra186_mc_program_sid() argument
45 for (i = 0; i < mc->soc->num_clients; i++) { in tegra186_mc_program_sid()
46 const struct tegra186_mc_client *client = &mc->soc->clients[i]; in tegra186_mc_program_sid()
49 override = readl(mc->regs + client->regs.override); in tegra186_mc_program_sid()
50 security = readl(mc->regs + client->regs.security); in tegra186_mc_program_sid()
52 dev_dbg(mc->dev, "client %s: override: %x security: %x\n", in tegra186_mc_program_sid()
53 client->name, override, security); in tegra186_mc_program_sid()
55 dev_dbg(mc->dev, "setting SID %u for %s\n", client->sid, in tegra186_mc_program_sid()
56 client->name); in tegra186_mc_program_sid()
57 writel(client->sid, mc->regs + client->regs.override); in tegra186_mc_program_sid()
59 override = readl(mc->regs + client->regs.override); in tegra186_mc_program_sid()
60 security = readl(mc->regs + client->regs.security); in tegra186_mc_program_sid()
62 dev_dbg(mc->dev, "client %s: override: %x security: %x\n", in tegra186_mc_program_sid()
63 client->name, override, security); in tegra186_mc_program_sid()
1526 struct tegra186_mc *mc; in tegra186_mc_probe() local
1530 mc = devm_kzalloc(&pdev->dev, sizeof(*mc), GFP_KERNEL); in tegra186_mc_probe()
1531 if (!mc) in tegra186_mc_probe()
1532 return -ENOMEM; in tegra186_mc_probe()
1534 mc->soc = of_device_get_match_data(&pdev->dev); in tegra186_mc_probe()
1537 mc->regs = devm_ioremap_resource(&pdev->dev, res); in tegra186_mc_probe()
1538 if (IS_ERR(mc->regs)) in tegra186_mc_probe()
1539 return PTR_ERR(mc->regs); in tegra186_mc_probe()
1541 mc->dev = &pdev->dev; in tegra186_mc_probe()
1543 err = of_platform_populate(pdev->dev.of_node, NULL, NULL, &pdev->dev); in tegra186_mc_probe()
1547 platform_set_drvdata(pdev, mc); in tegra186_mc_probe()
1548 tegra186_mc_program_sid(mc); in tegra186_mc_probe()
1555 struct tegra186_mc *mc = platform_get_drvdata(pdev); in tegra186_mc_remove() local
1557 of_platform_depopulate(mc->dev); in tegra186_mc_remove()
1564 { .compatible = "nvidia,tegra186-mc", .data = &tegra186_mc_soc },
1567 { .compatible = "nvidia,tegra194-mc", .data = &tegra194_mc_soc },
1580 struct tegra186_mc *mc = dev_get_drvdata(dev); in tegra186_mc_resume() local
1582 tegra186_mc_program_sid(mc); in tegra186_mc_resume()
1593 .name = "tegra186-mc",
1604 MODULE_DESCRIPTION("NVIDIA Tegra186 Memory Controller driver");