// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (C) 2017-2021 NVIDIA CORPORATION.  All rights reserved.
 */

#include <linux/io.h>
#include <linux/iommu.h>
#include <linux/module.h>
#include <linux/mod_devicetable.h>
#include <linux/of_device.h>
#include <linux/platform_device.h>

#include <soc/tegra/mc.h>

#if defined(CONFIG_ARCH_TEGRA_186_SOC)
#include <dt-bindings/memory/tegra186-mc.h>
#endif

#include "mc.h"

#define MC_SID_STREAMID_OVERRIDE_MASK GENMASK(7, 0)
#define MC_SID_STREAMID_SECURITY_WRITE_ACCESS_DISABLED BIT(16)
#define MC_SID_STREAMID_SECURITY_OVERRIDE BIT(8)

static void tegra186_mc_program_sid(struct tegra_mc *mc)
{
	unsigned int i;

	for (i = 0; i < mc->soc->num_clients; i++) {
		const struct tegra_mc_client *client = &mc->soc->clients[i];
		u32 override, security;

		override = readl(mc->regs + client->regs.sid.override);
		security = readl(mc->regs + client->regs.sid.security);

		dev_dbg(mc->dev, "client %s: override: %x security: %x\n",
			client->name, override, security);

		dev_dbg(mc->dev, "setting SID %u for %s\n", client->sid,
			client->name);
		writel(client->sid, mc->regs + client->regs.sid.override);

		override = readl(mc->regs + client->regs.sid.override);
		security = readl(mc->regs + client->regs.sid.security);

		dev_dbg(mc->dev, "client %s: override: %x security: %x\n",
			client->name, override, security);
	}
}

static int tegra186_mc_probe(struct tegra_mc *mc)
{
	struct platform_device *pdev = to_platform_device(mc->dev);
	unsigned int i;
	char name[8];
	int err;

	mc->bcast_ch_regs = devm_platform_ioremap_resource_byname(pdev, "broadcast");
	if (IS_ERR(mc->bcast_ch_regs)) {
		if (PTR_ERR(mc->bcast_ch_regs) == -EINVAL) {
			dev_warn(&pdev->dev,
				 "Broadcast channel is missing, please update your device-tree\n");
			mc->bcast_ch_regs = NULL;
			goto populate;
		}

		return PTR_ERR(mc->bcast_ch_regs);
	}

	mc->ch_regs = devm_kcalloc(mc->dev, mc->soc->num_channels, sizeof(*mc->ch_regs),
				   GFP_KERNEL);
	if (!mc->ch_regs)
		return -ENOMEM;

	for (i = 0; i < mc->soc->num_channels; i++) {
		snprintf(name, sizeof(name), "ch%u", i);

		mc->ch_regs[i] = devm_platform_ioremap_resource_byname(pdev, name);
		if (IS_ERR(mc->ch_regs[i]))
			return PTR_ERR(mc->ch_regs[i]);
	}

populate:
	err = of_platform_populate(mc->dev->of_node, NULL, NULL, mc->dev);
	if (err < 0)
		return err;

	tegra186_mc_program_sid(mc);

	return 0;
}

static void tegra186_mc_remove(struct tegra_mc *mc)
{
	of_platform_depopulate(mc->dev);
}

static int tegra186_mc_resume(struct tegra_mc *mc)
{
	tegra186_mc_program_sid(mc);

	return 0;
}

#if IS_ENABLED(CONFIG_IOMMU_API)
static void tegra186_mc_client_sid_override(struct tegra_mc *mc,
					    const struct tegra_mc_client *client,
					    unsigned int sid)
{
	u32 value, old;

	value = readl(mc->regs + client->regs.sid.security);
	if ((value & MC_SID_STREAMID_SECURITY_OVERRIDE) == 0) {
		/*
		 * If the secure firmware has locked this down the override
		 * for this memory client, there's nothing we can do here.
		 */
		if (value & MC_SID_STREAMID_SECURITY_WRITE_ACCESS_DISABLED)
			return;

		/*
		 * Otherwise, try to set the override itself. Typically the
		 * secure firmware will never have set this configuration.
		 * Instead, it will either have disabled write access to
		 * this field, or it will already have set an explicit
		 * override itself.
		 */
		WARN_ON((value & MC_SID_STREAMID_SECURITY_OVERRIDE) == 0);

		value |= MC_SID_STREAMID_SECURITY_OVERRIDE;
		writel(value, mc->regs + client->regs.sid.security);
	}

	value = readl(mc->regs + client->regs.sid.override);
	old = value & MC_SID_STREAMID_OVERRIDE_MASK;

	if (old != sid) {
		dev_dbg(mc->dev, "overriding SID %x for %s with %x\n", old,
			client->name, sid);
		writel(sid, mc->regs + client->regs.sid.override);
	}
}
#endif

static int tegra186_mc_probe_device(struct tegra_mc *mc, struct device *dev)
{
#if IS_ENABLED(CONFIG_IOMMU_API)
	struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev);
	struct of_phandle_args args;
	unsigned int i, index = 0;

	while (!of_parse_phandle_with_args(dev->of_node, "interconnects", "#interconnect-cells",
					   index, &args)) {
		if (args.np == mc->dev->of_node && args.args_count != 0) {
			for (i = 0; i < mc->soc->num_clients; i++) {
				const struct tegra_mc_client *client = &mc->soc->clients[i];

				if (client->id == args.args[0]) {
					u32 sid = fwspec->ids[0] & MC_SID_STREAMID_OVERRIDE_MASK;

					tegra186_mc_client_sid_override(mc, client, sid);
				}
			}
		}

		index++;
	}
#endif

	return 0;
}

const struct tegra_mc_ops tegra186_mc_ops = {
	.probe = tegra186_mc_probe,
	.remove = tegra186_mc_remove,
	.resume = tegra186_mc_resume,
	.probe_device = tegra186_mc_probe_device,
	.handle_irq = tegra30_mc_handle_irq,
};

#if defined(CONFIG_ARCH_TEGRA_186_SOC)
static const struct tegra_mc_client tegra186_mc_clients[] = {
	{
		.id = TEGRA186_MEMORY_CLIENT_PTCR,
		.name = "ptcr",
		.sid = TEGRA186_SID_PASSTHROUGH,
		.regs = {
			.sid = {
				.override = 0x000,
				.security = 0x004,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_AFIR,
		.name = "afir",
		.sid = TEGRA186_SID_AFI,
		.regs = {
			.sid = {
				.override = 0x070,
				.security = 0x074,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_HDAR,
		.name = "hdar",
		.sid = TEGRA186_SID_HDA,
		.regs = {
			.sid = {
				.override = 0x0a8,
				.security = 0x0ac,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_HOST1XDMAR,
		.name = "host1xdmar",
		.sid = TEGRA186_SID_HOST1X,
		.regs = {
			.sid = {
				.override = 0x0b0,
				.security = 0x0b4,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_NVENCSRD,
		.name = "nvencsrd",
		.sid = TEGRA186_SID_NVENC,
		.regs = {
			.sid = {
				.override = 0x0e0,
				.security = 0x0e4,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_SATAR,
		.name = "satar",
		.sid = TEGRA186_SID_SATA,
		.regs = {
			.sid = {
				.override = 0x0f8,
				.security = 0x0fc,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_MPCORER,
		.name = "mpcorer",
		.sid = TEGRA186_SID_PASSTHROUGH,
		.regs = {
			.sid = {
				.override = 0x138,
				.security = 0x13c,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_NVENCSWR,
		.name = "nvencswr",
		.sid = TEGRA186_SID_NVENC,
		.regs = {
			.sid = {
				.override = 0x158,
				.security = 0x15c,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_AFIW,
		.name = "afiw",
		.sid = TEGRA186_SID_AFI,
		.regs = {
			.sid = {
				.override = 0x188,
				.security = 0x18c,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_HDAW,
		.name = "hdaw",
		.sid = TEGRA186_SID_HDA,
		.regs = {
			.sid = {
				.override = 0x1a8,
				.security = 0x1ac,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_MPCOREW,
		.name = "mpcorew",
		.sid = TEGRA186_SID_PASSTHROUGH,
		.regs = {
			.sid = {
				.override = 0x1c8,
				.security = 0x1cc,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_SATAW,
		.name = "sataw",
		.sid = TEGRA186_SID_SATA,
		.regs = {
			.sid = {
				.override = 0x1e8,
				.security = 0x1ec,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_ISPRA,
		.name = "ispra",
		.sid = TEGRA186_SID_ISP,
		.regs = {
			.sid = {
				.override = 0x220,
				.security = 0x224,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_ISPWA,
		.name = "ispwa",
		.sid = TEGRA186_SID_ISP,
		.regs = {
			.sid = {
				.override = 0x230,
				.security = 0x234,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_ISPWB,
		.name = "ispwb",
		.sid = TEGRA186_SID_ISP,
		.regs = {
			.sid = {
				.override = 0x238,
				.security = 0x23c,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_XUSB_HOSTR,
		.name = "xusb_hostr",
		.sid = TEGRA186_SID_XUSB_HOST,
		.regs = {
			.sid = {
				.override = 0x250,
				.security = 0x254,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_XUSB_HOSTW,
		.name = "xusb_hostw",
		.sid = TEGRA186_SID_XUSB_HOST,
		.regs = {
			.sid = {
				.override = 0x258,
				.security = 0x25c,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_XUSB_DEVR,
		.name = "xusb_devr",
		.sid = TEGRA186_SID_XUSB_DEV,
		.regs = {
			.sid = {
				.override = 0x260,
				.security = 0x264,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_XUSB_DEVW,
		.name = "xusb_devw",
		.sid = TEGRA186_SID_XUSB_DEV,
		.regs = {
			.sid = {
				.override = 0x268,
				.security = 0x26c,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_TSECSRD,
		.name = "tsecsrd",
		.sid = TEGRA186_SID_TSEC,
		.regs = {
			.sid = {
				.override = 0x2a0,
				.security = 0x2a4,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_TSECSWR,
		.name = "tsecswr",
		.sid = TEGRA186_SID_TSEC,
		.regs = {
			.sid = {
				.override = 0x2a8,
				.security = 0x2ac,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_GPUSRD,
		.name = "gpusrd",
		.sid = TEGRA186_SID_GPU,
		.regs = {
			.sid = {
				.override = 0x2c0,
				.security = 0x2c4,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_GPUSWR,
		.name = "gpuswr",
		.sid = TEGRA186_SID_GPU,
		.regs = {
			.sid = {
				.override = 0x2c8,
				.security = 0x2cc,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_SDMMCRA,
		.name = "sdmmcra",
		.sid = TEGRA186_SID_SDMMC1,
		.regs = {
			.sid = {
				.override = 0x300,
				.security = 0x304,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_SDMMCRAA,
		.name = "sdmmcraa",
		.sid = TEGRA186_SID_SDMMC2,
		.regs = {
			.sid = {
				.override = 0x308,
				.security = 0x30c,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_SDMMCR,
		.name = "sdmmcr",
		.sid = TEGRA186_SID_SDMMC3,
		.regs = {
			.sid = {
				.override = 0x310,
				.security = 0x314,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_SDMMCRAB,
		.name = "sdmmcrab",
		.sid = TEGRA186_SID_SDMMC4,
		.regs = {
			.sid = {
				.override = 0x318,
				.security = 0x31c,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_SDMMCWA,
		.name = "sdmmcwa",
		.sid = TEGRA186_SID_SDMMC1,
		.regs = {
			.sid = {
				.override = 0x320,
				.security = 0x324,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_SDMMCWAA,
		.name = "sdmmcwaa",
		.sid = TEGRA186_SID_SDMMC2,
		.regs = {
			.sid = {
				.override = 0x328,
				.security = 0x32c,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_SDMMCW,
		.name = "sdmmcw",
		.sid = TEGRA186_SID_SDMMC3,
		.regs = {
			.sid = {
				.override = 0x330,
				.security = 0x334,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_SDMMCWAB,
		.name = "sdmmcwab",
		.sid = TEGRA186_SID_SDMMC4,
		.regs = {
			.sid = {
				.override = 0x338,
				.security = 0x33c,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_VICSRD,
		.name = "vicsrd",
		.sid = TEGRA186_SID_VIC,
		.regs = {
			.sid = {
				.override = 0x360,
				.security = 0x364,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_VICSWR,
		.name = "vicswr",
		.sid = TEGRA186_SID_VIC,
		.regs = {
			.sid = {
				.override = 0x368,
				.security = 0x36c,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_VIW,
		.name = "viw",
		.sid = TEGRA186_SID_VI,
		.regs = {
			.sid = {
				.override = 0x390,
				.security = 0x394,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_NVDECSRD,
		.name = "nvdecsrd",
		.sid = TEGRA186_SID_NVDEC,
		.regs = {
			.sid = {
				.override = 0x3c0,
				.security = 0x3c4,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_NVDECSWR,
		.name = "nvdecswr",
		.sid = TEGRA186_SID_NVDEC,
		.regs = {
			.sid = {
				.override = 0x3c8,
				.security = 0x3cc,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_APER,
		.name = "aper",
		.sid = TEGRA186_SID_APE,
		.regs = {
			.sid = {
				.override = 0x3d0,
				.security = 0x3d4,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_APEW,
		.name = "apew",
		.sid = TEGRA186_SID_APE,
		.regs = {
			.sid = {
				.override = 0x3d8,
				.security = 0x3dc,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_NVJPGSRD,
		.name = "nvjpgsrd",
		.sid = TEGRA186_SID_NVJPG,
		.regs = {
			.sid = {
				.override = 0x3f0,
				.security = 0x3f4,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_NVJPGSWR,
		.name = "nvjpgswr",
		.sid = TEGRA186_SID_NVJPG,
		.regs = {
			.sid = {
				.override = 0x3f8,
				.security = 0x3fc,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_SESRD,
		.name = "sesrd",
		.sid = TEGRA186_SID_SE,
		.regs = {
			.sid = {
				.override = 0x400,
				.security = 0x404,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_SESWR,
		.name = "seswr",
		.sid = TEGRA186_SID_SE,
		.regs = {
			.sid = {
				.override = 0x408,
				.security = 0x40c,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_ETRR,
		.name = "etrr",
		.sid = TEGRA186_SID_ETR,
		.regs = {
			.sid = {
				.override = 0x420,
				.security = 0x424,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_ETRW,
		.name = "etrw",
		.sid = TEGRA186_SID_ETR,
		.regs = {
			.sid = {
				.override = 0x428,
				.security = 0x42c,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_TSECSRDB,
		.name = "tsecsrdb",
		.sid = TEGRA186_SID_TSECB,
		.regs = {
			.sid = {
				.override = 0x430,
				.security = 0x434,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_TSECSWRB,
		.name = "tsecswrb",
		.sid = TEGRA186_SID_TSECB,
		.regs = {
			.sid = {
				.override = 0x438,
				.security = 0x43c,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_GPUSRD2,
		.name = "gpusrd2",
		.sid = TEGRA186_SID_GPU,
		.regs = {
			.sid = {
				.override = 0x440,
				.security = 0x444,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_GPUSWR2,
		.name = "gpuswr2",
		.sid = TEGRA186_SID_GPU,
		.regs = {
			.sid = {
				.override = 0x448,
				.security = 0x44c,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_AXISR,
		.name = "axisr",
		.sid = TEGRA186_SID_GPCDMA_0,
		.regs = {
			.sid = {
				.override = 0x460,
				.security = 0x464,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_AXISW,
		.name = "axisw",
		.sid = TEGRA186_SID_GPCDMA_0,
		.regs = {
			.sid = {
				.override = 0x468,
				.security = 0x46c,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_EQOSR,
		.name = "eqosr",
		.sid = TEGRA186_SID_EQOS,
		.regs = {
			.sid = {
				.override = 0x470,
				.security = 0x474,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_EQOSW,
		.name = "eqosw",
		.sid = TEGRA186_SID_EQOS,
		.regs = {
			.sid = {
				.override = 0x478,
				.security = 0x47c,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_UFSHCR,
		.name = "ufshcr",
		.sid = TEGRA186_SID_UFSHC,
		.regs = {
			.sid = {
				.override = 0x480,
				.security = 0x484,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_UFSHCW,
		.name = "ufshcw",
		.sid = TEGRA186_SID_UFSHC,
		.regs = {
			.sid = {
				.override = 0x488,
				.security = 0x48c,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_NVDISPLAYR,
		.name = "nvdisplayr",
		.sid = TEGRA186_SID_NVDISPLAY,
		.regs = {
			.sid = {
				.override = 0x490,
				.security = 0x494,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_BPMPR,
		.name = "bpmpr",
		.sid = TEGRA186_SID_BPMP,
		.regs = {
			.sid = {
				.override = 0x498,
				.security = 0x49c,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_BPMPW,
		.name = "bpmpw",
		.sid = TEGRA186_SID_BPMP,
		.regs = {
			.sid = {
				.override = 0x4a0,
				.security = 0x4a4,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_BPMPDMAR,
		.name = "bpmpdmar",
		.sid = TEGRA186_SID_BPMP,
		.regs = {
			.sid = {
				.override = 0x4a8,
				.security = 0x4ac,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_BPMPDMAW,
		.name = "bpmpdmaw",
		.sid = TEGRA186_SID_BPMP,
		.regs = {
			.sid = {
				.override = 0x4b0,
				.security = 0x4b4,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_AONR,
		.name = "aonr",
		.sid = TEGRA186_SID_AON,
		.regs = {
			.sid = {
				.override = 0x4b8,
				.security = 0x4bc,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_AONW,
		.name = "aonw",
		.sid = TEGRA186_SID_AON,
		.regs = {
			.sid = {
				.override = 0x4c0,
				.security = 0x4c4,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_AONDMAR,
		.name = "aondmar",
		.sid = TEGRA186_SID_AON,
		.regs = {
			.sid = {
				.override = 0x4c8,
				.security = 0x4cc,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_AONDMAW,
		.name = "aondmaw",
		.sid = TEGRA186_SID_AON,
		.regs = {
			.sid = {
				.override = 0x4d0,
				.security = 0x4d4,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_SCER,
		.name = "scer",
		.sid = TEGRA186_SID_SCE,
		.regs = {
			.sid = {
				.override = 0x4d8,
				.security = 0x4dc,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_SCEW,
		.name = "scew",
		.sid = TEGRA186_SID_SCE,
		.regs = {
			.sid = {
				.override = 0x4e0,
				.security = 0x4e4,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_SCEDMAR,
		.name = "scedmar",
		.sid = TEGRA186_SID_SCE,
		.regs = {
			.sid = {
				.override = 0x4e8,
				.security = 0x4ec,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_SCEDMAW,
		.name = "scedmaw",
		.sid = TEGRA186_SID_SCE,
		.regs = {
			.sid = {
				.override = 0x4f0,
				.security = 0x4f4,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_APEDMAR,
		.name = "apedmar",
		.sid = TEGRA186_SID_APE,
		.regs = {
			.sid = {
				.override = 0x4f8,
				.security = 0x4fc,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_APEDMAW,
		.name = "apedmaw",
		.sid = TEGRA186_SID_APE,
		.regs = {
			.sid = {
				.override = 0x500,
				.security = 0x504,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_NVDISPLAYR1,
		.name = "nvdisplayr1",
		.sid = TEGRA186_SID_NVDISPLAY,
		.regs = {
			.sid = {
				.override = 0x508,
				.security = 0x50c,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_VICSRD1,
		.name = "vicsrd1",
		.sid = TEGRA186_SID_VIC,
		.regs = {
			.sid = {
				.override = 0x510,
				.security = 0x514,
			},
		},
	}, {
		.id = TEGRA186_MEMORY_CLIENT_NVDECSRD1,
		.name = "nvdecsrd1",
		.sid = TEGRA186_SID_NVDEC,
		.regs = {
			.sid = {
				.override = 0x518,
				.security = 0x51c,
			},
		},
	},
};

const struct tegra_mc_soc tegra186_mc_soc = {
	.num_clients = ARRAY_SIZE(tegra186_mc_clients),
	.clients = tegra186_mc_clients,
	.num_address_bits = 40,
	.num_channels = 4,
	.client_id_mask = 0xff,
	.intmask = MC_INT_DECERR_GENERALIZED_CARVEOUT | MC_INT_DECERR_MTS |
		   MC_INT_SECERR_SEC | MC_INT_DECERR_VPR |
		   MC_INT_SECURITY_VIOLATION | MC_INT_DECERR_EMEM,
	.ops = &tegra186_mc_ops,
	.ch_intmask = 0x0000000f,
	.global_intstatus_channel_shift = 0,
};
#endif
