162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) 2017-2021 NVIDIA CORPORATION. All rights reserved. 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#include <linux/io.h> 762306a36Sopenharmony_ci#include <linux/iommu.h> 862306a36Sopenharmony_ci#include <linux/module.h> 962306a36Sopenharmony_ci#include <linux/mod_devicetable.h> 1062306a36Sopenharmony_ci#include <linux/of.h> 1162306a36Sopenharmony_ci#include <linux/of_platform.h> 1262306a36Sopenharmony_ci#include <linux/platform_device.h> 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci#include <soc/tegra/mc.h> 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci#if defined(CONFIG_ARCH_TEGRA_186_SOC) 1762306a36Sopenharmony_ci#include <dt-bindings/memory/tegra186-mc.h> 1862306a36Sopenharmony_ci#endif 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci#include "mc.h" 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci#define MC_SID_STREAMID_OVERRIDE_MASK GENMASK(7, 0) 2362306a36Sopenharmony_ci#define MC_SID_STREAMID_SECURITY_WRITE_ACCESS_DISABLED BIT(16) 2462306a36Sopenharmony_ci#define MC_SID_STREAMID_SECURITY_OVERRIDE BIT(8) 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_cistatic int tegra186_mc_probe(struct tegra_mc *mc) 2762306a36Sopenharmony_ci{ 2862306a36Sopenharmony_ci struct platform_device *pdev = to_platform_device(mc->dev); 2962306a36Sopenharmony_ci unsigned int i; 3062306a36Sopenharmony_ci char name[8]; 3162306a36Sopenharmony_ci int err; 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci mc->bcast_ch_regs = devm_platform_ioremap_resource_byname(pdev, "broadcast"); 3462306a36Sopenharmony_ci if (IS_ERR(mc->bcast_ch_regs)) { 3562306a36Sopenharmony_ci if (PTR_ERR(mc->bcast_ch_regs) == -EINVAL) { 3662306a36Sopenharmony_ci dev_warn(&pdev->dev, 3762306a36Sopenharmony_ci "Broadcast channel is missing, please update your device-tree\n"); 3862306a36Sopenharmony_ci mc->bcast_ch_regs = NULL; 3962306a36Sopenharmony_ci goto populate; 4062306a36Sopenharmony_ci } 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci return PTR_ERR(mc->bcast_ch_regs); 4362306a36Sopenharmony_ci } 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ci mc->ch_regs = devm_kcalloc(mc->dev, mc->soc->num_channels, sizeof(*mc->ch_regs), 4662306a36Sopenharmony_ci GFP_KERNEL); 4762306a36Sopenharmony_ci if (!mc->ch_regs) 4862306a36Sopenharmony_ci return -ENOMEM; 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci for (i = 0; i < mc->soc->num_channels; i++) { 5162306a36Sopenharmony_ci snprintf(name, sizeof(name), "ch%u", i); 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ci mc->ch_regs[i] = devm_platform_ioremap_resource_byname(pdev, name); 5462306a36Sopenharmony_ci if (IS_ERR(mc->ch_regs[i])) 5562306a36Sopenharmony_ci return PTR_ERR(mc->ch_regs[i]); 5662306a36Sopenharmony_ci } 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_cipopulate: 5962306a36Sopenharmony_ci err = of_platform_populate(mc->dev->of_node, NULL, NULL, mc->dev); 6062306a36Sopenharmony_ci if (err < 0) 6162306a36Sopenharmony_ci return err; 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ci return 0; 6462306a36Sopenharmony_ci} 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_cistatic void tegra186_mc_remove(struct tegra_mc *mc) 6762306a36Sopenharmony_ci{ 6862306a36Sopenharmony_ci of_platform_depopulate(mc->dev); 6962306a36Sopenharmony_ci} 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci#if IS_ENABLED(CONFIG_IOMMU_API) 7262306a36Sopenharmony_cistatic void tegra186_mc_client_sid_override(struct tegra_mc *mc, 7362306a36Sopenharmony_ci const struct tegra_mc_client *client, 7462306a36Sopenharmony_ci unsigned int sid) 7562306a36Sopenharmony_ci{ 7662306a36Sopenharmony_ci u32 value, old; 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_ci value = readl(mc->regs + client->regs.sid.security); 7962306a36Sopenharmony_ci if ((value & MC_SID_STREAMID_SECURITY_OVERRIDE) == 0) { 8062306a36Sopenharmony_ci /* 8162306a36Sopenharmony_ci * If the secure firmware has locked this down the override 8262306a36Sopenharmony_ci * for this memory client, there's nothing we can do here. 8362306a36Sopenharmony_ci */ 8462306a36Sopenharmony_ci if (value & MC_SID_STREAMID_SECURITY_WRITE_ACCESS_DISABLED) 8562306a36Sopenharmony_ci return; 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci /* 8862306a36Sopenharmony_ci * Otherwise, try to set the override itself. Typically the 8962306a36Sopenharmony_ci * secure firmware will never have set this configuration. 9062306a36Sopenharmony_ci * Instead, it will either have disabled write access to 9162306a36Sopenharmony_ci * this field, or it will already have set an explicit 9262306a36Sopenharmony_ci * override itself. 9362306a36Sopenharmony_ci */ 9462306a36Sopenharmony_ci WARN_ON((value & MC_SID_STREAMID_SECURITY_OVERRIDE) == 0); 9562306a36Sopenharmony_ci 9662306a36Sopenharmony_ci value |= MC_SID_STREAMID_SECURITY_OVERRIDE; 9762306a36Sopenharmony_ci writel(value, mc->regs + client->regs.sid.security); 9862306a36Sopenharmony_ci } 9962306a36Sopenharmony_ci 10062306a36Sopenharmony_ci value = readl(mc->regs + client->regs.sid.override); 10162306a36Sopenharmony_ci old = value & MC_SID_STREAMID_OVERRIDE_MASK; 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_ci if (old != sid) { 10462306a36Sopenharmony_ci dev_dbg(mc->dev, "overriding SID %x for %s with %x\n", old, 10562306a36Sopenharmony_ci client->name, sid); 10662306a36Sopenharmony_ci writel(sid, mc->regs + client->regs.sid.override); 10762306a36Sopenharmony_ci } 10862306a36Sopenharmony_ci} 10962306a36Sopenharmony_ci#endif 11062306a36Sopenharmony_ci 11162306a36Sopenharmony_cistatic int tegra186_mc_probe_device(struct tegra_mc *mc, struct device *dev) 11262306a36Sopenharmony_ci{ 11362306a36Sopenharmony_ci#if IS_ENABLED(CONFIG_IOMMU_API) 11462306a36Sopenharmony_ci struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev); 11562306a36Sopenharmony_ci struct of_phandle_args args; 11662306a36Sopenharmony_ci unsigned int i, index = 0; 11762306a36Sopenharmony_ci 11862306a36Sopenharmony_ci while (!of_parse_phandle_with_args(dev->of_node, "interconnects", "#interconnect-cells", 11962306a36Sopenharmony_ci index, &args)) { 12062306a36Sopenharmony_ci if (args.np == mc->dev->of_node && args.args_count != 0) { 12162306a36Sopenharmony_ci for (i = 0; i < mc->soc->num_clients; i++) { 12262306a36Sopenharmony_ci const struct tegra_mc_client *client = &mc->soc->clients[i]; 12362306a36Sopenharmony_ci 12462306a36Sopenharmony_ci if (client->id == args.args[0]) { 12562306a36Sopenharmony_ci u32 sid = fwspec->ids[0] & MC_SID_STREAMID_OVERRIDE_MASK; 12662306a36Sopenharmony_ci 12762306a36Sopenharmony_ci tegra186_mc_client_sid_override(mc, client, sid); 12862306a36Sopenharmony_ci } 12962306a36Sopenharmony_ci } 13062306a36Sopenharmony_ci } 13162306a36Sopenharmony_ci 13262306a36Sopenharmony_ci index++; 13362306a36Sopenharmony_ci } 13462306a36Sopenharmony_ci#endif 13562306a36Sopenharmony_ci 13662306a36Sopenharmony_ci return 0; 13762306a36Sopenharmony_ci} 13862306a36Sopenharmony_ci 13962306a36Sopenharmony_ciconst struct tegra_mc_ops tegra186_mc_ops = { 14062306a36Sopenharmony_ci .probe = tegra186_mc_probe, 14162306a36Sopenharmony_ci .remove = tegra186_mc_remove, 14262306a36Sopenharmony_ci .probe_device = tegra186_mc_probe_device, 14362306a36Sopenharmony_ci .handle_irq = tegra30_mc_handle_irq, 14462306a36Sopenharmony_ci}; 14562306a36Sopenharmony_ci 14662306a36Sopenharmony_ci#if defined(CONFIG_ARCH_TEGRA_186_SOC) 14762306a36Sopenharmony_cistatic const struct tegra_mc_client tegra186_mc_clients[] = { 14862306a36Sopenharmony_ci { 14962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_PTCR, 15062306a36Sopenharmony_ci .name = "ptcr", 15162306a36Sopenharmony_ci .sid = TEGRA186_SID_PASSTHROUGH, 15262306a36Sopenharmony_ci .regs = { 15362306a36Sopenharmony_ci .sid = { 15462306a36Sopenharmony_ci .override = 0x000, 15562306a36Sopenharmony_ci .security = 0x004, 15662306a36Sopenharmony_ci }, 15762306a36Sopenharmony_ci }, 15862306a36Sopenharmony_ci }, { 15962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_AFIR, 16062306a36Sopenharmony_ci .name = "afir", 16162306a36Sopenharmony_ci .sid = TEGRA186_SID_AFI, 16262306a36Sopenharmony_ci .regs = { 16362306a36Sopenharmony_ci .sid = { 16462306a36Sopenharmony_ci .override = 0x070, 16562306a36Sopenharmony_ci .security = 0x074, 16662306a36Sopenharmony_ci }, 16762306a36Sopenharmony_ci }, 16862306a36Sopenharmony_ci }, { 16962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_HDAR, 17062306a36Sopenharmony_ci .name = "hdar", 17162306a36Sopenharmony_ci .sid = TEGRA186_SID_HDA, 17262306a36Sopenharmony_ci .regs = { 17362306a36Sopenharmony_ci .sid = { 17462306a36Sopenharmony_ci .override = 0x0a8, 17562306a36Sopenharmony_ci .security = 0x0ac, 17662306a36Sopenharmony_ci }, 17762306a36Sopenharmony_ci }, 17862306a36Sopenharmony_ci }, { 17962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_HOST1XDMAR, 18062306a36Sopenharmony_ci .name = "host1xdmar", 18162306a36Sopenharmony_ci .sid = TEGRA186_SID_HOST1X, 18262306a36Sopenharmony_ci .regs = { 18362306a36Sopenharmony_ci .sid = { 18462306a36Sopenharmony_ci .override = 0x0b0, 18562306a36Sopenharmony_ci .security = 0x0b4, 18662306a36Sopenharmony_ci }, 18762306a36Sopenharmony_ci }, 18862306a36Sopenharmony_ci }, { 18962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_NVENCSRD, 19062306a36Sopenharmony_ci .name = "nvencsrd", 19162306a36Sopenharmony_ci .sid = TEGRA186_SID_NVENC, 19262306a36Sopenharmony_ci .regs = { 19362306a36Sopenharmony_ci .sid = { 19462306a36Sopenharmony_ci .override = 0x0e0, 19562306a36Sopenharmony_ci .security = 0x0e4, 19662306a36Sopenharmony_ci }, 19762306a36Sopenharmony_ci }, 19862306a36Sopenharmony_ci }, { 19962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_SATAR, 20062306a36Sopenharmony_ci .name = "satar", 20162306a36Sopenharmony_ci .sid = TEGRA186_SID_SATA, 20262306a36Sopenharmony_ci .regs = { 20362306a36Sopenharmony_ci .sid = { 20462306a36Sopenharmony_ci .override = 0x0f8, 20562306a36Sopenharmony_ci .security = 0x0fc, 20662306a36Sopenharmony_ci }, 20762306a36Sopenharmony_ci }, 20862306a36Sopenharmony_ci }, { 20962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_MPCORER, 21062306a36Sopenharmony_ci .name = "mpcorer", 21162306a36Sopenharmony_ci .sid = TEGRA186_SID_PASSTHROUGH, 21262306a36Sopenharmony_ci .regs = { 21362306a36Sopenharmony_ci .sid = { 21462306a36Sopenharmony_ci .override = 0x138, 21562306a36Sopenharmony_ci .security = 0x13c, 21662306a36Sopenharmony_ci }, 21762306a36Sopenharmony_ci }, 21862306a36Sopenharmony_ci }, { 21962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_NVENCSWR, 22062306a36Sopenharmony_ci .name = "nvencswr", 22162306a36Sopenharmony_ci .sid = TEGRA186_SID_NVENC, 22262306a36Sopenharmony_ci .regs = { 22362306a36Sopenharmony_ci .sid = { 22462306a36Sopenharmony_ci .override = 0x158, 22562306a36Sopenharmony_ci .security = 0x15c, 22662306a36Sopenharmony_ci }, 22762306a36Sopenharmony_ci }, 22862306a36Sopenharmony_ci }, { 22962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_AFIW, 23062306a36Sopenharmony_ci .name = "afiw", 23162306a36Sopenharmony_ci .sid = TEGRA186_SID_AFI, 23262306a36Sopenharmony_ci .regs = { 23362306a36Sopenharmony_ci .sid = { 23462306a36Sopenharmony_ci .override = 0x188, 23562306a36Sopenharmony_ci .security = 0x18c, 23662306a36Sopenharmony_ci }, 23762306a36Sopenharmony_ci }, 23862306a36Sopenharmony_ci }, { 23962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_HDAW, 24062306a36Sopenharmony_ci .name = "hdaw", 24162306a36Sopenharmony_ci .sid = TEGRA186_SID_HDA, 24262306a36Sopenharmony_ci .regs = { 24362306a36Sopenharmony_ci .sid = { 24462306a36Sopenharmony_ci .override = 0x1a8, 24562306a36Sopenharmony_ci .security = 0x1ac, 24662306a36Sopenharmony_ci }, 24762306a36Sopenharmony_ci }, 24862306a36Sopenharmony_ci }, { 24962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_MPCOREW, 25062306a36Sopenharmony_ci .name = "mpcorew", 25162306a36Sopenharmony_ci .sid = TEGRA186_SID_PASSTHROUGH, 25262306a36Sopenharmony_ci .regs = { 25362306a36Sopenharmony_ci .sid = { 25462306a36Sopenharmony_ci .override = 0x1c8, 25562306a36Sopenharmony_ci .security = 0x1cc, 25662306a36Sopenharmony_ci }, 25762306a36Sopenharmony_ci }, 25862306a36Sopenharmony_ci }, { 25962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_SATAW, 26062306a36Sopenharmony_ci .name = "sataw", 26162306a36Sopenharmony_ci .sid = TEGRA186_SID_SATA, 26262306a36Sopenharmony_ci .regs = { 26362306a36Sopenharmony_ci .sid = { 26462306a36Sopenharmony_ci .override = 0x1e8, 26562306a36Sopenharmony_ci .security = 0x1ec, 26662306a36Sopenharmony_ci }, 26762306a36Sopenharmony_ci }, 26862306a36Sopenharmony_ci }, { 26962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_ISPRA, 27062306a36Sopenharmony_ci .name = "ispra", 27162306a36Sopenharmony_ci .sid = TEGRA186_SID_ISP, 27262306a36Sopenharmony_ci .regs = { 27362306a36Sopenharmony_ci .sid = { 27462306a36Sopenharmony_ci .override = 0x220, 27562306a36Sopenharmony_ci .security = 0x224, 27662306a36Sopenharmony_ci }, 27762306a36Sopenharmony_ci }, 27862306a36Sopenharmony_ci }, { 27962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_ISPWA, 28062306a36Sopenharmony_ci .name = "ispwa", 28162306a36Sopenharmony_ci .sid = TEGRA186_SID_ISP, 28262306a36Sopenharmony_ci .regs = { 28362306a36Sopenharmony_ci .sid = { 28462306a36Sopenharmony_ci .override = 0x230, 28562306a36Sopenharmony_ci .security = 0x234, 28662306a36Sopenharmony_ci }, 28762306a36Sopenharmony_ci }, 28862306a36Sopenharmony_ci }, { 28962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_ISPWB, 29062306a36Sopenharmony_ci .name = "ispwb", 29162306a36Sopenharmony_ci .sid = TEGRA186_SID_ISP, 29262306a36Sopenharmony_ci .regs = { 29362306a36Sopenharmony_ci .sid = { 29462306a36Sopenharmony_ci .override = 0x238, 29562306a36Sopenharmony_ci .security = 0x23c, 29662306a36Sopenharmony_ci }, 29762306a36Sopenharmony_ci }, 29862306a36Sopenharmony_ci }, { 29962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_XUSB_HOSTR, 30062306a36Sopenharmony_ci .name = "xusb_hostr", 30162306a36Sopenharmony_ci .sid = TEGRA186_SID_XUSB_HOST, 30262306a36Sopenharmony_ci .regs = { 30362306a36Sopenharmony_ci .sid = { 30462306a36Sopenharmony_ci .override = 0x250, 30562306a36Sopenharmony_ci .security = 0x254, 30662306a36Sopenharmony_ci }, 30762306a36Sopenharmony_ci }, 30862306a36Sopenharmony_ci }, { 30962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_XUSB_HOSTW, 31062306a36Sopenharmony_ci .name = "xusb_hostw", 31162306a36Sopenharmony_ci .sid = TEGRA186_SID_XUSB_HOST, 31262306a36Sopenharmony_ci .regs = { 31362306a36Sopenharmony_ci .sid = { 31462306a36Sopenharmony_ci .override = 0x258, 31562306a36Sopenharmony_ci .security = 0x25c, 31662306a36Sopenharmony_ci }, 31762306a36Sopenharmony_ci }, 31862306a36Sopenharmony_ci }, { 31962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_XUSB_DEVR, 32062306a36Sopenharmony_ci .name = "xusb_devr", 32162306a36Sopenharmony_ci .sid = TEGRA186_SID_XUSB_DEV, 32262306a36Sopenharmony_ci .regs = { 32362306a36Sopenharmony_ci .sid = { 32462306a36Sopenharmony_ci .override = 0x260, 32562306a36Sopenharmony_ci .security = 0x264, 32662306a36Sopenharmony_ci }, 32762306a36Sopenharmony_ci }, 32862306a36Sopenharmony_ci }, { 32962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_XUSB_DEVW, 33062306a36Sopenharmony_ci .name = "xusb_devw", 33162306a36Sopenharmony_ci .sid = TEGRA186_SID_XUSB_DEV, 33262306a36Sopenharmony_ci .regs = { 33362306a36Sopenharmony_ci .sid = { 33462306a36Sopenharmony_ci .override = 0x268, 33562306a36Sopenharmony_ci .security = 0x26c, 33662306a36Sopenharmony_ci }, 33762306a36Sopenharmony_ci }, 33862306a36Sopenharmony_ci }, { 33962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_TSECSRD, 34062306a36Sopenharmony_ci .name = "tsecsrd", 34162306a36Sopenharmony_ci .sid = TEGRA186_SID_TSEC, 34262306a36Sopenharmony_ci .regs = { 34362306a36Sopenharmony_ci .sid = { 34462306a36Sopenharmony_ci .override = 0x2a0, 34562306a36Sopenharmony_ci .security = 0x2a4, 34662306a36Sopenharmony_ci }, 34762306a36Sopenharmony_ci }, 34862306a36Sopenharmony_ci }, { 34962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_TSECSWR, 35062306a36Sopenharmony_ci .name = "tsecswr", 35162306a36Sopenharmony_ci .sid = TEGRA186_SID_TSEC, 35262306a36Sopenharmony_ci .regs = { 35362306a36Sopenharmony_ci .sid = { 35462306a36Sopenharmony_ci .override = 0x2a8, 35562306a36Sopenharmony_ci .security = 0x2ac, 35662306a36Sopenharmony_ci }, 35762306a36Sopenharmony_ci }, 35862306a36Sopenharmony_ci }, { 35962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_GPUSRD, 36062306a36Sopenharmony_ci .name = "gpusrd", 36162306a36Sopenharmony_ci .sid = TEGRA186_SID_GPU, 36262306a36Sopenharmony_ci .regs = { 36362306a36Sopenharmony_ci .sid = { 36462306a36Sopenharmony_ci .override = 0x2c0, 36562306a36Sopenharmony_ci .security = 0x2c4, 36662306a36Sopenharmony_ci }, 36762306a36Sopenharmony_ci }, 36862306a36Sopenharmony_ci }, { 36962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_GPUSWR, 37062306a36Sopenharmony_ci .name = "gpuswr", 37162306a36Sopenharmony_ci .sid = TEGRA186_SID_GPU, 37262306a36Sopenharmony_ci .regs = { 37362306a36Sopenharmony_ci .sid = { 37462306a36Sopenharmony_ci .override = 0x2c8, 37562306a36Sopenharmony_ci .security = 0x2cc, 37662306a36Sopenharmony_ci }, 37762306a36Sopenharmony_ci }, 37862306a36Sopenharmony_ci }, { 37962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_SDMMCRA, 38062306a36Sopenharmony_ci .name = "sdmmcra", 38162306a36Sopenharmony_ci .sid = TEGRA186_SID_SDMMC1, 38262306a36Sopenharmony_ci .regs = { 38362306a36Sopenharmony_ci .sid = { 38462306a36Sopenharmony_ci .override = 0x300, 38562306a36Sopenharmony_ci .security = 0x304, 38662306a36Sopenharmony_ci }, 38762306a36Sopenharmony_ci }, 38862306a36Sopenharmony_ci }, { 38962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_SDMMCRAA, 39062306a36Sopenharmony_ci .name = "sdmmcraa", 39162306a36Sopenharmony_ci .sid = TEGRA186_SID_SDMMC2, 39262306a36Sopenharmony_ci .regs = { 39362306a36Sopenharmony_ci .sid = { 39462306a36Sopenharmony_ci .override = 0x308, 39562306a36Sopenharmony_ci .security = 0x30c, 39662306a36Sopenharmony_ci }, 39762306a36Sopenharmony_ci }, 39862306a36Sopenharmony_ci }, { 39962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_SDMMCR, 40062306a36Sopenharmony_ci .name = "sdmmcr", 40162306a36Sopenharmony_ci .sid = TEGRA186_SID_SDMMC3, 40262306a36Sopenharmony_ci .regs = { 40362306a36Sopenharmony_ci .sid = { 40462306a36Sopenharmony_ci .override = 0x310, 40562306a36Sopenharmony_ci .security = 0x314, 40662306a36Sopenharmony_ci }, 40762306a36Sopenharmony_ci }, 40862306a36Sopenharmony_ci }, { 40962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_SDMMCRAB, 41062306a36Sopenharmony_ci .name = "sdmmcrab", 41162306a36Sopenharmony_ci .sid = TEGRA186_SID_SDMMC4, 41262306a36Sopenharmony_ci .regs = { 41362306a36Sopenharmony_ci .sid = { 41462306a36Sopenharmony_ci .override = 0x318, 41562306a36Sopenharmony_ci .security = 0x31c, 41662306a36Sopenharmony_ci }, 41762306a36Sopenharmony_ci }, 41862306a36Sopenharmony_ci }, { 41962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_SDMMCWA, 42062306a36Sopenharmony_ci .name = "sdmmcwa", 42162306a36Sopenharmony_ci .sid = TEGRA186_SID_SDMMC1, 42262306a36Sopenharmony_ci .regs = { 42362306a36Sopenharmony_ci .sid = { 42462306a36Sopenharmony_ci .override = 0x320, 42562306a36Sopenharmony_ci .security = 0x324, 42662306a36Sopenharmony_ci }, 42762306a36Sopenharmony_ci }, 42862306a36Sopenharmony_ci }, { 42962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_SDMMCWAA, 43062306a36Sopenharmony_ci .name = "sdmmcwaa", 43162306a36Sopenharmony_ci .sid = TEGRA186_SID_SDMMC2, 43262306a36Sopenharmony_ci .regs = { 43362306a36Sopenharmony_ci .sid = { 43462306a36Sopenharmony_ci .override = 0x328, 43562306a36Sopenharmony_ci .security = 0x32c, 43662306a36Sopenharmony_ci }, 43762306a36Sopenharmony_ci }, 43862306a36Sopenharmony_ci }, { 43962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_SDMMCW, 44062306a36Sopenharmony_ci .name = "sdmmcw", 44162306a36Sopenharmony_ci .sid = TEGRA186_SID_SDMMC3, 44262306a36Sopenharmony_ci .regs = { 44362306a36Sopenharmony_ci .sid = { 44462306a36Sopenharmony_ci .override = 0x330, 44562306a36Sopenharmony_ci .security = 0x334, 44662306a36Sopenharmony_ci }, 44762306a36Sopenharmony_ci }, 44862306a36Sopenharmony_ci }, { 44962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_SDMMCWAB, 45062306a36Sopenharmony_ci .name = "sdmmcwab", 45162306a36Sopenharmony_ci .sid = TEGRA186_SID_SDMMC4, 45262306a36Sopenharmony_ci .regs = { 45362306a36Sopenharmony_ci .sid = { 45462306a36Sopenharmony_ci .override = 0x338, 45562306a36Sopenharmony_ci .security = 0x33c, 45662306a36Sopenharmony_ci }, 45762306a36Sopenharmony_ci }, 45862306a36Sopenharmony_ci }, { 45962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_VICSRD, 46062306a36Sopenharmony_ci .name = "vicsrd", 46162306a36Sopenharmony_ci .sid = TEGRA186_SID_VIC, 46262306a36Sopenharmony_ci .regs = { 46362306a36Sopenharmony_ci .sid = { 46462306a36Sopenharmony_ci .override = 0x360, 46562306a36Sopenharmony_ci .security = 0x364, 46662306a36Sopenharmony_ci }, 46762306a36Sopenharmony_ci }, 46862306a36Sopenharmony_ci }, { 46962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_VICSWR, 47062306a36Sopenharmony_ci .name = "vicswr", 47162306a36Sopenharmony_ci .sid = TEGRA186_SID_VIC, 47262306a36Sopenharmony_ci .regs = { 47362306a36Sopenharmony_ci .sid = { 47462306a36Sopenharmony_ci .override = 0x368, 47562306a36Sopenharmony_ci .security = 0x36c, 47662306a36Sopenharmony_ci }, 47762306a36Sopenharmony_ci }, 47862306a36Sopenharmony_ci }, { 47962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_VIW, 48062306a36Sopenharmony_ci .name = "viw", 48162306a36Sopenharmony_ci .sid = TEGRA186_SID_VI, 48262306a36Sopenharmony_ci .regs = { 48362306a36Sopenharmony_ci .sid = { 48462306a36Sopenharmony_ci .override = 0x390, 48562306a36Sopenharmony_ci .security = 0x394, 48662306a36Sopenharmony_ci }, 48762306a36Sopenharmony_ci }, 48862306a36Sopenharmony_ci }, { 48962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_NVDECSRD, 49062306a36Sopenharmony_ci .name = "nvdecsrd", 49162306a36Sopenharmony_ci .sid = TEGRA186_SID_NVDEC, 49262306a36Sopenharmony_ci .regs = { 49362306a36Sopenharmony_ci .sid = { 49462306a36Sopenharmony_ci .override = 0x3c0, 49562306a36Sopenharmony_ci .security = 0x3c4, 49662306a36Sopenharmony_ci }, 49762306a36Sopenharmony_ci }, 49862306a36Sopenharmony_ci }, { 49962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_NVDECSWR, 50062306a36Sopenharmony_ci .name = "nvdecswr", 50162306a36Sopenharmony_ci .sid = TEGRA186_SID_NVDEC, 50262306a36Sopenharmony_ci .regs = { 50362306a36Sopenharmony_ci .sid = { 50462306a36Sopenharmony_ci .override = 0x3c8, 50562306a36Sopenharmony_ci .security = 0x3cc, 50662306a36Sopenharmony_ci }, 50762306a36Sopenharmony_ci }, 50862306a36Sopenharmony_ci }, { 50962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_APER, 51062306a36Sopenharmony_ci .name = "aper", 51162306a36Sopenharmony_ci .sid = TEGRA186_SID_APE, 51262306a36Sopenharmony_ci .regs = { 51362306a36Sopenharmony_ci .sid = { 51462306a36Sopenharmony_ci .override = 0x3d0, 51562306a36Sopenharmony_ci .security = 0x3d4, 51662306a36Sopenharmony_ci }, 51762306a36Sopenharmony_ci }, 51862306a36Sopenharmony_ci }, { 51962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_APEW, 52062306a36Sopenharmony_ci .name = "apew", 52162306a36Sopenharmony_ci .sid = TEGRA186_SID_APE, 52262306a36Sopenharmony_ci .regs = { 52362306a36Sopenharmony_ci .sid = { 52462306a36Sopenharmony_ci .override = 0x3d8, 52562306a36Sopenharmony_ci .security = 0x3dc, 52662306a36Sopenharmony_ci }, 52762306a36Sopenharmony_ci }, 52862306a36Sopenharmony_ci }, { 52962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_NVJPGSRD, 53062306a36Sopenharmony_ci .name = "nvjpgsrd", 53162306a36Sopenharmony_ci .sid = TEGRA186_SID_NVJPG, 53262306a36Sopenharmony_ci .regs = { 53362306a36Sopenharmony_ci .sid = { 53462306a36Sopenharmony_ci .override = 0x3f0, 53562306a36Sopenharmony_ci .security = 0x3f4, 53662306a36Sopenharmony_ci }, 53762306a36Sopenharmony_ci }, 53862306a36Sopenharmony_ci }, { 53962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_NVJPGSWR, 54062306a36Sopenharmony_ci .name = "nvjpgswr", 54162306a36Sopenharmony_ci .sid = TEGRA186_SID_NVJPG, 54262306a36Sopenharmony_ci .regs = { 54362306a36Sopenharmony_ci .sid = { 54462306a36Sopenharmony_ci .override = 0x3f8, 54562306a36Sopenharmony_ci .security = 0x3fc, 54662306a36Sopenharmony_ci }, 54762306a36Sopenharmony_ci }, 54862306a36Sopenharmony_ci }, { 54962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_SESRD, 55062306a36Sopenharmony_ci .name = "sesrd", 55162306a36Sopenharmony_ci .sid = TEGRA186_SID_SE, 55262306a36Sopenharmony_ci .regs = { 55362306a36Sopenharmony_ci .sid = { 55462306a36Sopenharmony_ci .override = 0x400, 55562306a36Sopenharmony_ci .security = 0x404, 55662306a36Sopenharmony_ci }, 55762306a36Sopenharmony_ci }, 55862306a36Sopenharmony_ci }, { 55962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_SESWR, 56062306a36Sopenharmony_ci .name = "seswr", 56162306a36Sopenharmony_ci .sid = TEGRA186_SID_SE, 56262306a36Sopenharmony_ci .regs = { 56362306a36Sopenharmony_ci .sid = { 56462306a36Sopenharmony_ci .override = 0x408, 56562306a36Sopenharmony_ci .security = 0x40c, 56662306a36Sopenharmony_ci }, 56762306a36Sopenharmony_ci }, 56862306a36Sopenharmony_ci }, { 56962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_ETRR, 57062306a36Sopenharmony_ci .name = "etrr", 57162306a36Sopenharmony_ci .sid = TEGRA186_SID_ETR, 57262306a36Sopenharmony_ci .regs = { 57362306a36Sopenharmony_ci .sid = { 57462306a36Sopenharmony_ci .override = 0x420, 57562306a36Sopenharmony_ci .security = 0x424, 57662306a36Sopenharmony_ci }, 57762306a36Sopenharmony_ci }, 57862306a36Sopenharmony_ci }, { 57962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_ETRW, 58062306a36Sopenharmony_ci .name = "etrw", 58162306a36Sopenharmony_ci .sid = TEGRA186_SID_ETR, 58262306a36Sopenharmony_ci .regs = { 58362306a36Sopenharmony_ci .sid = { 58462306a36Sopenharmony_ci .override = 0x428, 58562306a36Sopenharmony_ci .security = 0x42c, 58662306a36Sopenharmony_ci }, 58762306a36Sopenharmony_ci }, 58862306a36Sopenharmony_ci }, { 58962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_TSECSRDB, 59062306a36Sopenharmony_ci .name = "tsecsrdb", 59162306a36Sopenharmony_ci .sid = TEGRA186_SID_TSECB, 59262306a36Sopenharmony_ci .regs = { 59362306a36Sopenharmony_ci .sid = { 59462306a36Sopenharmony_ci .override = 0x430, 59562306a36Sopenharmony_ci .security = 0x434, 59662306a36Sopenharmony_ci }, 59762306a36Sopenharmony_ci }, 59862306a36Sopenharmony_ci }, { 59962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_TSECSWRB, 60062306a36Sopenharmony_ci .name = "tsecswrb", 60162306a36Sopenharmony_ci .sid = TEGRA186_SID_TSECB, 60262306a36Sopenharmony_ci .regs = { 60362306a36Sopenharmony_ci .sid = { 60462306a36Sopenharmony_ci .override = 0x438, 60562306a36Sopenharmony_ci .security = 0x43c, 60662306a36Sopenharmony_ci }, 60762306a36Sopenharmony_ci }, 60862306a36Sopenharmony_ci }, { 60962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_GPUSRD2, 61062306a36Sopenharmony_ci .name = "gpusrd2", 61162306a36Sopenharmony_ci .sid = TEGRA186_SID_GPU, 61262306a36Sopenharmony_ci .regs = { 61362306a36Sopenharmony_ci .sid = { 61462306a36Sopenharmony_ci .override = 0x440, 61562306a36Sopenharmony_ci .security = 0x444, 61662306a36Sopenharmony_ci }, 61762306a36Sopenharmony_ci }, 61862306a36Sopenharmony_ci }, { 61962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_GPUSWR2, 62062306a36Sopenharmony_ci .name = "gpuswr2", 62162306a36Sopenharmony_ci .sid = TEGRA186_SID_GPU, 62262306a36Sopenharmony_ci .regs = { 62362306a36Sopenharmony_ci .sid = { 62462306a36Sopenharmony_ci .override = 0x448, 62562306a36Sopenharmony_ci .security = 0x44c, 62662306a36Sopenharmony_ci }, 62762306a36Sopenharmony_ci }, 62862306a36Sopenharmony_ci }, { 62962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_AXISR, 63062306a36Sopenharmony_ci .name = "axisr", 63162306a36Sopenharmony_ci .sid = TEGRA186_SID_GPCDMA_0, 63262306a36Sopenharmony_ci .regs = { 63362306a36Sopenharmony_ci .sid = { 63462306a36Sopenharmony_ci .override = 0x460, 63562306a36Sopenharmony_ci .security = 0x464, 63662306a36Sopenharmony_ci }, 63762306a36Sopenharmony_ci }, 63862306a36Sopenharmony_ci }, { 63962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_AXISW, 64062306a36Sopenharmony_ci .name = "axisw", 64162306a36Sopenharmony_ci .sid = TEGRA186_SID_GPCDMA_0, 64262306a36Sopenharmony_ci .regs = { 64362306a36Sopenharmony_ci .sid = { 64462306a36Sopenharmony_ci .override = 0x468, 64562306a36Sopenharmony_ci .security = 0x46c, 64662306a36Sopenharmony_ci }, 64762306a36Sopenharmony_ci }, 64862306a36Sopenharmony_ci }, { 64962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_EQOSR, 65062306a36Sopenharmony_ci .name = "eqosr", 65162306a36Sopenharmony_ci .sid = TEGRA186_SID_EQOS, 65262306a36Sopenharmony_ci .regs = { 65362306a36Sopenharmony_ci .sid = { 65462306a36Sopenharmony_ci .override = 0x470, 65562306a36Sopenharmony_ci .security = 0x474, 65662306a36Sopenharmony_ci }, 65762306a36Sopenharmony_ci }, 65862306a36Sopenharmony_ci }, { 65962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_EQOSW, 66062306a36Sopenharmony_ci .name = "eqosw", 66162306a36Sopenharmony_ci .sid = TEGRA186_SID_EQOS, 66262306a36Sopenharmony_ci .regs = { 66362306a36Sopenharmony_ci .sid = { 66462306a36Sopenharmony_ci .override = 0x478, 66562306a36Sopenharmony_ci .security = 0x47c, 66662306a36Sopenharmony_ci }, 66762306a36Sopenharmony_ci }, 66862306a36Sopenharmony_ci }, { 66962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_UFSHCR, 67062306a36Sopenharmony_ci .name = "ufshcr", 67162306a36Sopenharmony_ci .sid = TEGRA186_SID_UFSHC, 67262306a36Sopenharmony_ci .regs = { 67362306a36Sopenharmony_ci .sid = { 67462306a36Sopenharmony_ci .override = 0x480, 67562306a36Sopenharmony_ci .security = 0x484, 67662306a36Sopenharmony_ci }, 67762306a36Sopenharmony_ci }, 67862306a36Sopenharmony_ci }, { 67962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_UFSHCW, 68062306a36Sopenharmony_ci .name = "ufshcw", 68162306a36Sopenharmony_ci .sid = TEGRA186_SID_UFSHC, 68262306a36Sopenharmony_ci .regs = { 68362306a36Sopenharmony_ci .sid = { 68462306a36Sopenharmony_ci .override = 0x488, 68562306a36Sopenharmony_ci .security = 0x48c, 68662306a36Sopenharmony_ci }, 68762306a36Sopenharmony_ci }, 68862306a36Sopenharmony_ci }, { 68962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_NVDISPLAYR, 69062306a36Sopenharmony_ci .name = "nvdisplayr", 69162306a36Sopenharmony_ci .sid = TEGRA186_SID_NVDISPLAY, 69262306a36Sopenharmony_ci .regs = { 69362306a36Sopenharmony_ci .sid = { 69462306a36Sopenharmony_ci .override = 0x490, 69562306a36Sopenharmony_ci .security = 0x494, 69662306a36Sopenharmony_ci }, 69762306a36Sopenharmony_ci }, 69862306a36Sopenharmony_ci }, { 69962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_BPMPR, 70062306a36Sopenharmony_ci .name = "bpmpr", 70162306a36Sopenharmony_ci .sid = TEGRA186_SID_BPMP, 70262306a36Sopenharmony_ci .regs = { 70362306a36Sopenharmony_ci .sid = { 70462306a36Sopenharmony_ci .override = 0x498, 70562306a36Sopenharmony_ci .security = 0x49c, 70662306a36Sopenharmony_ci }, 70762306a36Sopenharmony_ci }, 70862306a36Sopenharmony_ci }, { 70962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_BPMPW, 71062306a36Sopenharmony_ci .name = "bpmpw", 71162306a36Sopenharmony_ci .sid = TEGRA186_SID_BPMP, 71262306a36Sopenharmony_ci .regs = { 71362306a36Sopenharmony_ci .sid = { 71462306a36Sopenharmony_ci .override = 0x4a0, 71562306a36Sopenharmony_ci .security = 0x4a4, 71662306a36Sopenharmony_ci }, 71762306a36Sopenharmony_ci }, 71862306a36Sopenharmony_ci }, { 71962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_BPMPDMAR, 72062306a36Sopenharmony_ci .name = "bpmpdmar", 72162306a36Sopenharmony_ci .sid = TEGRA186_SID_BPMP, 72262306a36Sopenharmony_ci .regs = { 72362306a36Sopenharmony_ci .sid = { 72462306a36Sopenharmony_ci .override = 0x4a8, 72562306a36Sopenharmony_ci .security = 0x4ac, 72662306a36Sopenharmony_ci }, 72762306a36Sopenharmony_ci }, 72862306a36Sopenharmony_ci }, { 72962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_BPMPDMAW, 73062306a36Sopenharmony_ci .name = "bpmpdmaw", 73162306a36Sopenharmony_ci .sid = TEGRA186_SID_BPMP, 73262306a36Sopenharmony_ci .regs = { 73362306a36Sopenharmony_ci .sid = { 73462306a36Sopenharmony_ci .override = 0x4b0, 73562306a36Sopenharmony_ci .security = 0x4b4, 73662306a36Sopenharmony_ci }, 73762306a36Sopenharmony_ci }, 73862306a36Sopenharmony_ci }, { 73962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_AONR, 74062306a36Sopenharmony_ci .name = "aonr", 74162306a36Sopenharmony_ci .sid = TEGRA186_SID_AON, 74262306a36Sopenharmony_ci .regs = { 74362306a36Sopenharmony_ci .sid = { 74462306a36Sopenharmony_ci .override = 0x4b8, 74562306a36Sopenharmony_ci .security = 0x4bc, 74662306a36Sopenharmony_ci }, 74762306a36Sopenharmony_ci }, 74862306a36Sopenharmony_ci }, { 74962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_AONW, 75062306a36Sopenharmony_ci .name = "aonw", 75162306a36Sopenharmony_ci .sid = TEGRA186_SID_AON, 75262306a36Sopenharmony_ci .regs = { 75362306a36Sopenharmony_ci .sid = { 75462306a36Sopenharmony_ci .override = 0x4c0, 75562306a36Sopenharmony_ci .security = 0x4c4, 75662306a36Sopenharmony_ci }, 75762306a36Sopenharmony_ci }, 75862306a36Sopenharmony_ci }, { 75962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_AONDMAR, 76062306a36Sopenharmony_ci .name = "aondmar", 76162306a36Sopenharmony_ci .sid = TEGRA186_SID_AON, 76262306a36Sopenharmony_ci .regs = { 76362306a36Sopenharmony_ci .sid = { 76462306a36Sopenharmony_ci .override = 0x4c8, 76562306a36Sopenharmony_ci .security = 0x4cc, 76662306a36Sopenharmony_ci }, 76762306a36Sopenharmony_ci }, 76862306a36Sopenharmony_ci }, { 76962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_AONDMAW, 77062306a36Sopenharmony_ci .name = "aondmaw", 77162306a36Sopenharmony_ci .sid = TEGRA186_SID_AON, 77262306a36Sopenharmony_ci .regs = { 77362306a36Sopenharmony_ci .sid = { 77462306a36Sopenharmony_ci .override = 0x4d0, 77562306a36Sopenharmony_ci .security = 0x4d4, 77662306a36Sopenharmony_ci }, 77762306a36Sopenharmony_ci }, 77862306a36Sopenharmony_ci }, { 77962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_SCER, 78062306a36Sopenharmony_ci .name = "scer", 78162306a36Sopenharmony_ci .sid = TEGRA186_SID_SCE, 78262306a36Sopenharmony_ci .regs = { 78362306a36Sopenharmony_ci .sid = { 78462306a36Sopenharmony_ci .override = 0x4d8, 78562306a36Sopenharmony_ci .security = 0x4dc, 78662306a36Sopenharmony_ci }, 78762306a36Sopenharmony_ci }, 78862306a36Sopenharmony_ci }, { 78962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_SCEW, 79062306a36Sopenharmony_ci .name = "scew", 79162306a36Sopenharmony_ci .sid = TEGRA186_SID_SCE, 79262306a36Sopenharmony_ci .regs = { 79362306a36Sopenharmony_ci .sid = { 79462306a36Sopenharmony_ci .override = 0x4e0, 79562306a36Sopenharmony_ci .security = 0x4e4, 79662306a36Sopenharmony_ci }, 79762306a36Sopenharmony_ci }, 79862306a36Sopenharmony_ci }, { 79962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_SCEDMAR, 80062306a36Sopenharmony_ci .name = "scedmar", 80162306a36Sopenharmony_ci .sid = TEGRA186_SID_SCE, 80262306a36Sopenharmony_ci .regs = { 80362306a36Sopenharmony_ci .sid = { 80462306a36Sopenharmony_ci .override = 0x4e8, 80562306a36Sopenharmony_ci .security = 0x4ec, 80662306a36Sopenharmony_ci }, 80762306a36Sopenharmony_ci }, 80862306a36Sopenharmony_ci }, { 80962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_SCEDMAW, 81062306a36Sopenharmony_ci .name = "scedmaw", 81162306a36Sopenharmony_ci .sid = TEGRA186_SID_SCE, 81262306a36Sopenharmony_ci .regs = { 81362306a36Sopenharmony_ci .sid = { 81462306a36Sopenharmony_ci .override = 0x4f0, 81562306a36Sopenharmony_ci .security = 0x4f4, 81662306a36Sopenharmony_ci }, 81762306a36Sopenharmony_ci }, 81862306a36Sopenharmony_ci }, { 81962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_APEDMAR, 82062306a36Sopenharmony_ci .name = "apedmar", 82162306a36Sopenharmony_ci .sid = TEGRA186_SID_APE, 82262306a36Sopenharmony_ci .regs = { 82362306a36Sopenharmony_ci .sid = { 82462306a36Sopenharmony_ci .override = 0x4f8, 82562306a36Sopenharmony_ci .security = 0x4fc, 82662306a36Sopenharmony_ci }, 82762306a36Sopenharmony_ci }, 82862306a36Sopenharmony_ci }, { 82962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_APEDMAW, 83062306a36Sopenharmony_ci .name = "apedmaw", 83162306a36Sopenharmony_ci .sid = TEGRA186_SID_APE, 83262306a36Sopenharmony_ci .regs = { 83362306a36Sopenharmony_ci .sid = { 83462306a36Sopenharmony_ci .override = 0x500, 83562306a36Sopenharmony_ci .security = 0x504, 83662306a36Sopenharmony_ci }, 83762306a36Sopenharmony_ci }, 83862306a36Sopenharmony_ci }, { 83962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_NVDISPLAYR1, 84062306a36Sopenharmony_ci .name = "nvdisplayr1", 84162306a36Sopenharmony_ci .sid = TEGRA186_SID_NVDISPLAY, 84262306a36Sopenharmony_ci .regs = { 84362306a36Sopenharmony_ci .sid = { 84462306a36Sopenharmony_ci .override = 0x508, 84562306a36Sopenharmony_ci .security = 0x50c, 84662306a36Sopenharmony_ci }, 84762306a36Sopenharmony_ci }, 84862306a36Sopenharmony_ci }, { 84962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_VICSRD1, 85062306a36Sopenharmony_ci .name = "vicsrd1", 85162306a36Sopenharmony_ci .sid = TEGRA186_SID_VIC, 85262306a36Sopenharmony_ci .regs = { 85362306a36Sopenharmony_ci .sid = { 85462306a36Sopenharmony_ci .override = 0x510, 85562306a36Sopenharmony_ci .security = 0x514, 85662306a36Sopenharmony_ci }, 85762306a36Sopenharmony_ci }, 85862306a36Sopenharmony_ci }, { 85962306a36Sopenharmony_ci .id = TEGRA186_MEMORY_CLIENT_NVDECSRD1, 86062306a36Sopenharmony_ci .name = "nvdecsrd1", 86162306a36Sopenharmony_ci .sid = TEGRA186_SID_NVDEC, 86262306a36Sopenharmony_ci .regs = { 86362306a36Sopenharmony_ci .sid = { 86462306a36Sopenharmony_ci .override = 0x518, 86562306a36Sopenharmony_ci .security = 0x51c, 86662306a36Sopenharmony_ci }, 86762306a36Sopenharmony_ci }, 86862306a36Sopenharmony_ci }, 86962306a36Sopenharmony_ci}; 87062306a36Sopenharmony_ci 87162306a36Sopenharmony_ciconst struct tegra_mc_soc tegra186_mc_soc = { 87262306a36Sopenharmony_ci .num_clients = ARRAY_SIZE(tegra186_mc_clients), 87362306a36Sopenharmony_ci .clients = tegra186_mc_clients, 87462306a36Sopenharmony_ci .num_address_bits = 40, 87562306a36Sopenharmony_ci .num_channels = 4, 87662306a36Sopenharmony_ci .client_id_mask = 0xff, 87762306a36Sopenharmony_ci .intmask = MC_INT_DECERR_GENERALIZED_CARVEOUT | MC_INT_DECERR_MTS | 87862306a36Sopenharmony_ci MC_INT_SECERR_SEC | MC_INT_DECERR_VPR | 87962306a36Sopenharmony_ci MC_INT_SECURITY_VIOLATION | MC_INT_DECERR_EMEM, 88062306a36Sopenharmony_ci .ops = &tegra186_mc_ops, 88162306a36Sopenharmony_ci .ch_intmask = 0x0000000f, 88262306a36Sopenharmony_ci .global_intstatus_channel_shift = 0, 88362306a36Sopenharmony_ci}; 88462306a36Sopenharmony_ci#endif 885