162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) 2014 NVIDIA CORPORATION. All rights reserved. 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#include <linux/of.h> 762306a36Sopenharmony_ci#include <linux/mm.h> 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#include <dt-bindings/memory/tegra114-mc.h> 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#include "mc.h" 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_cistatic const struct tegra_mc_client tegra114_mc_clients[] = { 1462306a36Sopenharmony_ci { 1562306a36Sopenharmony_ci .id = 0x00, 1662306a36Sopenharmony_ci .name = "ptcr", 1762306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_PTC, 1862306a36Sopenharmony_ci .regs = { 1962306a36Sopenharmony_ci .la = { 2062306a36Sopenharmony_ci .reg = 0x34c, 2162306a36Sopenharmony_ci .shift = 0, 2262306a36Sopenharmony_ci .mask = 0xff, 2362306a36Sopenharmony_ci .def = 0x0, 2462306a36Sopenharmony_ci }, 2562306a36Sopenharmony_ci }, 2662306a36Sopenharmony_ci }, { 2762306a36Sopenharmony_ci .id = 0x01, 2862306a36Sopenharmony_ci .name = "display0a", 2962306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_DC, 3062306a36Sopenharmony_ci .regs = { 3162306a36Sopenharmony_ci .smmu = { 3262306a36Sopenharmony_ci .reg = 0x228, 3362306a36Sopenharmony_ci .bit = 1, 3462306a36Sopenharmony_ci }, 3562306a36Sopenharmony_ci .la = { 3662306a36Sopenharmony_ci .reg = 0x2e8, 3762306a36Sopenharmony_ci .shift = 0, 3862306a36Sopenharmony_ci .mask = 0xff, 3962306a36Sopenharmony_ci .def = 0x4e, 4062306a36Sopenharmony_ci }, 4162306a36Sopenharmony_ci }, 4262306a36Sopenharmony_ci }, { 4362306a36Sopenharmony_ci .id = 0x02, 4462306a36Sopenharmony_ci .name = "display0ab", 4562306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_DCB, 4662306a36Sopenharmony_ci .regs = { 4762306a36Sopenharmony_ci .smmu = { 4862306a36Sopenharmony_ci .reg = 0x228, 4962306a36Sopenharmony_ci .bit = 2, 5062306a36Sopenharmony_ci }, 5162306a36Sopenharmony_ci .la = { 5262306a36Sopenharmony_ci .reg = 0x2f4, 5362306a36Sopenharmony_ci .shift = 0, 5462306a36Sopenharmony_ci .mask = 0xff, 5562306a36Sopenharmony_ci .def = 0x4e, 5662306a36Sopenharmony_ci }, 5762306a36Sopenharmony_ci }, 5862306a36Sopenharmony_ci }, { 5962306a36Sopenharmony_ci .id = 0x03, 6062306a36Sopenharmony_ci .name = "display0b", 6162306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_DC, 6262306a36Sopenharmony_ci .regs = { 6362306a36Sopenharmony_ci .smmu = { 6462306a36Sopenharmony_ci .reg = 0x228, 6562306a36Sopenharmony_ci .bit = 3, 6662306a36Sopenharmony_ci }, 6762306a36Sopenharmony_ci .la = { 6862306a36Sopenharmony_ci .reg = 0x2e8, 6962306a36Sopenharmony_ci .shift = 16, 7062306a36Sopenharmony_ci .mask = 0xff, 7162306a36Sopenharmony_ci .def = 0x4e, 7262306a36Sopenharmony_ci }, 7362306a36Sopenharmony_ci }, 7462306a36Sopenharmony_ci }, { 7562306a36Sopenharmony_ci .id = 0x04, 7662306a36Sopenharmony_ci .name = "display0bb", 7762306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_DCB, 7862306a36Sopenharmony_ci .regs = { 7962306a36Sopenharmony_ci .smmu = { 8062306a36Sopenharmony_ci .reg = 0x228, 8162306a36Sopenharmony_ci .bit = 4, 8262306a36Sopenharmony_ci }, 8362306a36Sopenharmony_ci .la = { 8462306a36Sopenharmony_ci .reg = 0x2f4, 8562306a36Sopenharmony_ci .shift = 16, 8662306a36Sopenharmony_ci .mask = 0xff, 8762306a36Sopenharmony_ci .def = 0x4e, 8862306a36Sopenharmony_ci }, 8962306a36Sopenharmony_ci }, 9062306a36Sopenharmony_ci }, { 9162306a36Sopenharmony_ci .id = 0x05, 9262306a36Sopenharmony_ci .name = "display0c", 9362306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_DC, 9462306a36Sopenharmony_ci .regs = { 9562306a36Sopenharmony_ci .smmu = { 9662306a36Sopenharmony_ci .reg = 0x228, 9762306a36Sopenharmony_ci .bit = 5, 9862306a36Sopenharmony_ci }, 9962306a36Sopenharmony_ci .la = { 10062306a36Sopenharmony_ci .reg = 0x2ec, 10162306a36Sopenharmony_ci .shift = 0, 10262306a36Sopenharmony_ci .mask = 0xff, 10362306a36Sopenharmony_ci .def = 0x4e, 10462306a36Sopenharmony_ci }, 10562306a36Sopenharmony_ci }, 10662306a36Sopenharmony_ci }, { 10762306a36Sopenharmony_ci .id = 0x06, 10862306a36Sopenharmony_ci .name = "display0cb", 10962306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_DCB, 11062306a36Sopenharmony_ci .regs = { 11162306a36Sopenharmony_ci .smmu = { 11262306a36Sopenharmony_ci .reg = 0x228, 11362306a36Sopenharmony_ci .bit = 6, 11462306a36Sopenharmony_ci }, 11562306a36Sopenharmony_ci .la = { 11662306a36Sopenharmony_ci .reg = 0x2f8, 11762306a36Sopenharmony_ci .shift = 0, 11862306a36Sopenharmony_ci .mask = 0xff, 11962306a36Sopenharmony_ci .def = 0x4e, 12062306a36Sopenharmony_ci }, 12162306a36Sopenharmony_ci }, 12262306a36Sopenharmony_ci }, { 12362306a36Sopenharmony_ci .id = 0x09, 12462306a36Sopenharmony_ci .name = "eppup", 12562306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_EPP, 12662306a36Sopenharmony_ci .regs = { 12762306a36Sopenharmony_ci .smmu = { 12862306a36Sopenharmony_ci .reg = 0x228, 12962306a36Sopenharmony_ci .bit = 9, 13062306a36Sopenharmony_ci }, 13162306a36Sopenharmony_ci .la = { 13262306a36Sopenharmony_ci .reg = 0x300, 13362306a36Sopenharmony_ci .shift = 0, 13462306a36Sopenharmony_ci .mask = 0xff, 13562306a36Sopenharmony_ci .def = 0x33, 13662306a36Sopenharmony_ci }, 13762306a36Sopenharmony_ci }, 13862306a36Sopenharmony_ci }, { 13962306a36Sopenharmony_ci .id = 0x0a, 14062306a36Sopenharmony_ci .name = "g2pr", 14162306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_G2, 14262306a36Sopenharmony_ci .regs = { 14362306a36Sopenharmony_ci .smmu = { 14462306a36Sopenharmony_ci .reg = 0x228, 14562306a36Sopenharmony_ci .bit = 10, 14662306a36Sopenharmony_ci }, 14762306a36Sopenharmony_ci .la = { 14862306a36Sopenharmony_ci .reg = 0x308, 14962306a36Sopenharmony_ci .shift = 0, 15062306a36Sopenharmony_ci .mask = 0xff, 15162306a36Sopenharmony_ci .def = 0x09, 15262306a36Sopenharmony_ci }, 15362306a36Sopenharmony_ci }, 15462306a36Sopenharmony_ci }, { 15562306a36Sopenharmony_ci .id = 0x0b, 15662306a36Sopenharmony_ci .name = "g2sr", 15762306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_G2, 15862306a36Sopenharmony_ci .regs = { 15962306a36Sopenharmony_ci .smmu = { 16062306a36Sopenharmony_ci .reg = 0x228, 16162306a36Sopenharmony_ci .bit = 11, 16262306a36Sopenharmony_ci }, 16362306a36Sopenharmony_ci .la = { 16462306a36Sopenharmony_ci .reg = 0x308, 16562306a36Sopenharmony_ci .shift = 16, 16662306a36Sopenharmony_ci .mask = 0xff, 16762306a36Sopenharmony_ci .def = 0x09, 16862306a36Sopenharmony_ci }, 16962306a36Sopenharmony_ci }, 17062306a36Sopenharmony_ci }, { 17162306a36Sopenharmony_ci .id = 0x0f, 17262306a36Sopenharmony_ci .name = "avpcarm7r", 17362306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_AVPC, 17462306a36Sopenharmony_ci .regs = { 17562306a36Sopenharmony_ci .smmu = { 17662306a36Sopenharmony_ci .reg = 0x228, 17762306a36Sopenharmony_ci .bit = 15, 17862306a36Sopenharmony_ci }, 17962306a36Sopenharmony_ci .la = { 18062306a36Sopenharmony_ci .reg = 0x2e4, 18162306a36Sopenharmony_ci .shift = 0, 18262306a36Sopenharmony_ci .mask = 0xff, 18362306a36Sopenharmony_ci .def = 0x04, 18462306a36Sopenharmony_ci }, 18562306a36Sopenharmony_ci }, 18662306a36Sopenharmony_ci }, { 18762306a36Sopenharmony_ci .id = 0x10, 18862306a36Sopenharmony_ci .name = "displayhc", 18962306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_DC, 19062306a36Sopenharmony_ci .regs = { 19162306a36Sopenharmony_ci .smmu = { 19262306a36Sopenharmony_ci .reg = 0x228, 19362306a36Sopenharmony_ci .bit = 16, 19462306a36Sopenharmony_ci }, 19562306a36Sopenharmony_ci .la = { 19662306a36Sopenharmony_ci .reg = 0x2f0, 19762306a36Sopenharmony_ci .shift = 0, 19862306a36Sopenharmony_ci .mask = 0xff, 19962306a36Sopenharmony_ci .def = 0x68, 20062306a36Sopenharmony_ci }, 20162306a36Sopenharmony_ci }, 20262306a36Sopenharmony_ci }, { 20362306a36Sopenharmony_ci .id = 0x11, 20462306a36Sopenharmony_ci .name = "displayhcb", 20562306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_DCB, 20662306a36Sopenharmony_ci .regs = { 20762306a36Sopenharmony_ci .smmu = { 20862306a36Sopenharmony_ci .reg = 0x228, 20962306a36Sopenharmony_ci .bit = 17, 21062306a36Sopenharmony_ci }, 21162306a36Sopenharmony_ci .la = { 21262306a36Sopenharmony_ci .reg = 0x2fc, 21362306a36Sopenharmony_ci .shift = 0, 21462306a36Sopenharmony_ci .mask = 0xff, 21562306a36Sopenharmony_ci .def = 0x68, 21662306a36Sopenharmony_ci }, 21762306a36Sopenharmony_ci }, 21862306a36Sopenharmony_ci }, { 21962306a36Sopenharmony_ci .id = 0x12, 22062306a36Sopenharmony_ci .name = "fdcdrd", 22162306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_NV, 22262306a36Sopenharmony_ci .regs = { 22362306a36Sopenharmony_ci .smmu = { 22462306a36Sopenharmony_ci .reg = 0x228, 22562306a36Sopenharmony_ci .bit = 18, 22662306a36Sopenharmony_ci }, 22762306a36Sopenharmony_ci .la = { 22862306a36Sopenharmony_ci .reg = 0x334, 22962306a36Sopenharmony_ci .shift = 0, 23062306a36Sopenharmony_ci .mask = 0xff, 23162306a36Sopenharmony_ci .def = 0x0c, 23262306a36Sopenharmony_ci }, 23362306a36Sopenharmony_ci }, 23462306a36Sopenharmony_ci }, { 23562306a36Sopenharmony_ci .id = 0x13, 23662306a36Sopenharmony_ci .name = "fdcdrd2", 23762306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_NV, 23862306a36Sopenharmony_ci .regs = { 23962306a36Sopenharmony_ci .smmu = { 24062306a36Sopenharmony_ci .reg = 0x228, 24162306a36Sopenharmony_ci .bit = 19, 24262306a36Sopenharmony_ci }, 24362306a36Sopenharmony_ci .la = { 24462306a36Sopenharmony_ci .reg = 0x33c, 24562306a36Sopenharmony_ci .shift = 0, 24662306a36Sopenharmony_ci .mask = 0xff, 24762306a36Sopenharmony_ci .def = 0x0c, 24862306a36Sopenharmony_ci }, 24962306a36Sopenharmony_ci }, 25062306a36Sopenharmony_ci }, { 25162306a36Sopenharmony_ci .id = 0x14, 25262306a36Sopenharmony_ci .name = "g2dr", 25362306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_G2, 25462306a36Sopenharmony_ci .regs = { 25562306a36Sopenharmony_ci .smmu = { 25662306a36Sopenharmony_ci .reg = 0x228, 25762306a36Sopenharmony_ci .bit = 20, 25862306a36Sopenharmony_ci }, 25962306a36Sopenharmony_ci .la = { 26062306a36Sopenharmony_ci .reg = 0x30c, 26162306a36Sopenharmony_ci .shift = 0, 26262306a36Sopenharmony_ci .mask = 0xff, 26362306a36Sopenharmony_ci .def = 0x0a, 26462306a36Sopenharmony_ci }, 26562306a36Sopenharmony_ci }, 26662306a36Sopenharmony_ci }, { 26762306a36Sopenharmony_ci .id = 0x15, 26862306a36Sopenharmony_ci .name = "hdar", 26962306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_HDA, 27062306a36Sopenharmony_ci .regs = { 27162306a36Sopenharmony_ci .smmu = { 27262306a36Sopenharmony_ci .reg = 0x228, 27362306a36Sopenharmony_ci .bit = 21, 27462306a36Sopenharmony_ci }, 27562306a36Sopenharmony_ci .la = { 27662306a36Sopenharmony_ci .reg = 0x318, 27762306a36Sopenharmony_ci .shift = 0, 27862306a36Sopenharmony_ci .mask = 0xff, 27962306a36Sopenharmony_ci .def = 0xff, 28062306a36Sopenharmony_ci }, 28162306a36Sopenharmony_ci }, 28262306a36Sopenharmony_ci }, { 28362306a36Sopenharmony_ci .id = 0x16, 28462306a36Sopenharmony_ci .name = "host1xdmar", 28562306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_HC, 28662306a36Sopenharmony_ci .regs = { 28762306a36Sopenharmony_ci .smmu = { 28862306a36Sopenharmony_ci .reg = 0x228, 28962306a36Sopenharmony_ci .bit = 22, 29062306a36Sopenharmony_ci }, 29162306a36Sopenharmony_ci .la = { 29262306a36Sopenharmony_ci .reg = 0x310, 29362306a36Sopenharmony_ci .shift = 0, 29462306a36Sopenharmony_ci .mask = 0xff, 29562306a36Sopenharmony_ci .def = 0x10, 29662306a36Sopenharmony_ci }, 29762306a36Sopenharmony_ci }, 29862306a36Sopenharmony_ci }, { 29962306a36Sopenharmony_ci .id = 0x17, 30062306a36Sopenharmony_ci .name = "host1xr", 30162306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_HC, 30262306a36Sopenharmony_ci .regs = { 30362306a36Sopenharmony_ci .smmu = { 30462306a36Sopenharmony_ci .reg = 0x228, 30562306a36Sopenharmony_ci .bit = 23, 30662306a36Sopenharmony_ci }, 30762306a36Sopenharmony_ci .la = { 30862306a36Sopenharmony_ci .reg = 0x310, 30962306a36Sopenharmony_ci .shift = 16, 31062306a36Sopenharmony_ci .mask = 0xff, 31162306a36Sopenharmony_ci .def = 0xa5, 31262306a36Sopenharmony_ci }, 31362306a36Sopenharmony_ci }, 31462306a36Sopenharmony_ci }, { 31562306a36Sopenharmony_ci .id = 0x18, 31662306a36Sopenharmony_ci .name = "idxsrd", 31762306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_NV, 31862306a36Sopenharmony_ci .regs = { 31962306a36Sopenharmony_ci .smmu = { 32062306a36Sopenharmony_ci .reg = 0x228, 32162306a36Sopenharmony_ci .bit = 24, 32262306a36Sopenharmony_ci }, 32362306a36Sopenharmony_ci .la = { 32462306a36Sopenharmony_ci .reg = 0x334, 32562306a36Sopenharmony_ci .shift = 16, 32662306a36Sopenharmony_ci .mask = 0xff, 32762306a36Sopenharmony_ci .def = 0x0b, 32862306a36Sopenharmony_ci }, 32962306a36Sopenharmony_ci }, 33062306a36Sopenharmony_ci }, { 33162306a36Sopenharmony_ci .id = 0x1c, 33262306a36Sopenharmony_ci .name = "msencsrd", 33362306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_MSENC, 33462306a36Sopenharmony_ci .regs = { 33562306a36Sopenharmony_ci .smmu = { 33662306a36Sopenharmony_ci .reg = 0x228, 33762306a36Sopenharmony_ci .bit = 28, 33862306a36Sopenharmony_ci }, 33962306a36Sopenharmony_ci .la = { 34062306a36Sopenharmony_ci .reg = 0x328, 34162306a36Sopenharmony_ci .shift = 0, 34262306a36Sopenharmony_ci .mask = 0xff, 34362306a36Sopenharmony_ci .def = 0x80, 34462306a36Sopenharmony_ci }, 34562306a36Sopenharmony_ci }, 34662306a36Sopenharmony_ci }, { 34762306a36Sopenharmony_ci .id = 0x1d, 34862306a36Sopenharmony_ci .name = "ppcsahbdmar", 34962306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_PPCS, 35062306a36Sopenharmony_ci .regs = { 35162306a36Sopenharmony_ci .smmu = { 35262306a36Sopenharmony_ci .reg = 0x228, 35362306a36Sopenharmony_ci .bit = 29, 35462306a36Sopenharmony_ci }, 35562306a36Sopenharmony_ci .la = { 35662306a36Sopenharmony_ci .reg = 0x344, 35762306a36Sopenharmony_ci .shift = 0, 35862306a36Sopenharmony_ci .mask = 0xff, 35962306a36Sopenharmony_ci .def = 0x50, 36062306a36Sopenharmony_ci }, 36162306a36Sopenharmony_ci }, 36262306a36Sopenharmony_ci }, { 36362306a36Sopenharmony_ci .id = 0x1e, 36462306a36Sopenharmony_ci .name = "ppcsahbslvr", 36562306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_PPCS, 36662306a36Sopenharmony_ci .regs = { 36762306a36Sopenharmony_ci .smmu = { 36862306a36Sopenharmony_ci .reg = 0x228, 36962306a36Sopenharmony_ci .bit = 30, 37062306a36Sopenharmony_ci }, 37162306a36Sopenharmony_ci .la = { 37262306a36Sopenharmony_ci .reg = 0x344, 37362306a36Sopenharmony_ci .shift = 16, 37462306a36Sopenharmony_ci .mask = 0xff, 37562306a36Sopenharmony_ci .def = 0xe8, 37662306a36Sopenharmony_ci }, 37762306a36Sopenharmony_ci }, 37862306a36Sopenharmony_ci }, { 37962306a36Sopenharmony_ci .id = 0x20, 38062306a36Sopenharmony_ci .name = "texl2srd", 38162306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_NV, 38262306a36Sopenharmony_ci .regs = { 38362306a36Sopenharmony_ci .smmu = { 38462306a36Sopenharmony_ci .reg = 0x22c, 38562306a36Sopenharmony_ci .bit = 0, 38662306a36Sopenharmony_ci }, 38762306a36Sopenharmony_ci .la = { 38862306a36Sopenharmony_ci .reg = 0x338, 38962306a36Sopenharmony_ci .shift = 0, 39062306a36Sopenharmony_ci .mask = 0xff, 39162306a36Sopenharmony_ci .def = 0x0c, 39262306a36Sopenharmony_ci }, 39362306a36Sopenharmony_ci }, 39462306a36Sopenharmony_ci }, { 39562306a36Sopenharmony_ci .id = 0x22, 39662306a36Sopenharmony_ci .name = "vdebsevr", 39762306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_VDE, 39862306a36Sopenharmony_ci .regs = { 39962306a36Sopenharmony_ci .smmu = { 40062306a36Sopenharmony_ci .reg = 0x22c, 40162306a36Sopenharmony_ci .bit = 2, 40262306a36Sopenharmony_ci }, 40362306a36Sopenharmony_ci .la = { 40462306a36Sopenharmony_ci .reg = 0x354, 40562306a36Sopenharmony_ci .shift = 0, 40662306a36Sopenharmony_ci .mask = 0xff, 40762306a36Sopenharmony_ci .def = 0xff, 40862306a36Sopenharmony_ci }, 40962306a36Sopenharmony_ci }, 41062306a36Sopenharmony_ci }, { 41162306a36Sopenharmony_ci .id = 0x23, 41262306a36Sopenharmony_ci .name = "vdember", 41362306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_VDE, 41462306a36Sopenharmony_ci .regs = { 41562306a36Sopenharmony_ci .smmu = { 41662306a36Sopenharmony_ci .reg = 0x22c, 41762306a36Sopenharmony_ci .bit = 3, 41862306a36Sopenharmony_ci }, 41962306a36Sopenharmony_ci .la = { 42062306a36Sopenharmony_ci .reg = 0x354, 42162306a36Sopenharmony_ci .shift = 16, 42262306a36Sopenharmony_ci .mask = 0xff, 42362306a36Sopenharmony_ci .def = 0xff, 42462306a36Sopenharmony_ci }, 42562306a36Sopenharmony_ci }, 42662306a36Sopenharmony_ci }, { 42762306a36Sopenharmony_ci .id = 0x24, 42862306a36Sopenharmony_ci .name = "vdemcer", 42962306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_VDE, 43062306a36Sopenharmony_ci .regs = { 43162306a36Sopenharmony_ci .smmu = { 43262306a36Sopenharmony_ci .reg = 0x22c, 43362306a36Sopenharmony_ci .bit = 4, 43462306a36Sopenharmony_ci }, 43562306a36Sopenharmony_ci .la = { 43662306a36Sopenharmony_ci .reg = 0x358, 43762306a36Sopenharmony_ci .shift = 0, 43862306a36Sopenharmony_ci .mask = 0xff, 43962306a36Sopenharmony_ci .def = 0xb8, 44062306a36Sopenharmony_ci }, 44162306a36Sopenharmony_ci }, 44262306a36Sopenharmony_ci }, { 44362306a36Sopenharmony_ci .id = 0x25, 44462306a36Sopenharmony_ci .name = "vdetper", 44562306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_VDE, 44662306a36Sopenharmony_ci .regs = { 44762306a36Sopenharmony_ci .smmu = { 44862306a36Sopenharmony_ci .reg = 0x22c, 44962306a36Sopenharmony_ci .bit = 5, 45062306a36Sopenharmony_ci }, 45162306a36Sopenharmony_ci .la = { 45262306a36Sopenharmony_ci .reg = 0x358, 45362306a36Sopenharmony_ci .shift = 16, 45462306a36Sopenharmony_ci .mask = 0xff, 45562306a36Sopenharmony_ci .def = 0xee, 45662306a36Sopenharmony_ci }, 45762306a36Sopenharmony_ci }, 45862306a36Sopenharmony_ci }, { 45962306a36Sopenharmony_ci .id = 0x26, 46062306a36Sopenharmony_ci .name = "mpcorelpr", 46162306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_MPCORELP, 46262306a36Sopenharmony_ci .regs = { 46362306a36Sopenharmony_ci .la = { 46462306a36Sopenharmony_ci .reg = 0x324, 46562306a36Sopenharmony_ci .shift = 0, 46662306a36Sopenharmony_ci .mask = 0xff, 46762306a36Sopenharmony_ci .def = 0x04, 46862306a36Sopenharmony_ci }, 46962306a36Sopenharmony_ci }, 47062306a36Sopenharmony_ci }, { 47162306a36Sopenharmony_ci .id = 0x27, 47262306a36Sopenharmony_ci .name = "mpcorer", 47362306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_MPCORE, 47462306a36Sopenharmony_ci .regs = { 47562306a36Sopenharmony_ci .la = { 47662306a36Sopenharmony_ci .reg = 0x320, 47762306a36Sopenharmony_ci .shift = 0, 47862306a36Sopenharmony_ci .mask = 0xff, 47962306a36Sopenharmony_ci .def = 0x04, 48062306a36Sopenharmony_ci }, 48162306a36Sopenharmony_ci }, 48262306a36Sopenharmony_ci }, { 48362306a36Sopenharmony_ci .id = 0x28, 48462306a36Sopenharmony_ci .name = "eppu", 48562306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_EPP, 48662306a36Sopenharmony_ci .regs = { 48762306a36Sopenharmony_ci .smmu = { 48862306a36Sopenharmony_ci .reg = 0x22c, 48962306a36Sopenharmony_ci .bit = 8, 49062306a36Sopenharmony_ci }, 49162306a36Sopenharmony_ci .la = { 49262306a36Sopenharmony_ci .reg = 0x300, 49362306a36Sopenharmony_ci .shift = 16, 49462306a36Sopenharmony_ci .mask = 0xff, 49562306a36Sopenharmony_ci .def = 0x33, 49662306a36Sopenharmony_ci }, 49762306a36Sopenharmony_ci }, 49862306a36Sopenharmony_ci }, { 49962306a36Sopenharmony_ci .id = 0x29, 50062306a36Sopenharmony_ci .name = "eppv", 50162306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_EPP, 50262306a36Sopenharmony_ci .regs = { 50362306a36Sopenharmony_ci .smmu = { 50462306a36Sopenharmony_ci .reg = 0x22c, 50562306a36Sopenharmony_ci .bit = 9, 50662306a36Sopenharmony_ci }, 50762306a36Sopenharmony_ci .la = { 50862306a36Sopenharmony_ci .reg = 0x304, 50962306a36Sopenharmony_ci .shift = 0, 51062306a36Sopenharmony_ci .mask = 0xff, 51162306a36Sopenharmony_ci .def = 0x6c, 51262306a36Sopenharmony_ci }, 51362306a36Sopenharmony_ci }, 51462306a36Sopenharmony_ci }, { 51562306a36Sopenharmony_ci .id = 0x2a, 51662306a36Sopenharmony_ci .name = "eppy", 51762306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_EPP, 51862306a36Sopenharmony_ci .regs = { 51962306a36Sopenharmony_ci .smmu = { 52062306a36Sopenharmony_ci .reg = 0x22c, 52162306a36Sopenharmony_ci .bit = 10, 52262306a36Sopenharmony_ci }, 52362306a36Sopenharmony_ci .la = { 52462306a36Sopenharmony_ci .reg = 0x304, 52562306a36Sopenharmony_ci .shift = 16, 52662306a36Sopenharmony_ci .mask = 0xff, 52762306a36Sopenharmony_ci .def = 0x6c, 52862306a36Sopenharmony_ci }, 52962306a36Sopenharmony_ci }, 53062306a36Sopenharmony_ci }, { 53162306a36Sopenharmony_ci .id = 0x2b, 53262306a36Sopenharmony_ci .name = "msencswr", 53362306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_MSENC, 53462306a36Sopenharmony_ci .regs = { 53562306a36Sopenharmony_ci .smmu = { 53662306a36Sopenharmony_ci .reg = 0x22c, 53762306a36Sopenharmony_ci .bit = 11, 53862306a36Sopenharmony_ci }, 53962306a36Sopenharmony_ci .la = { 54062306a36Sopenharmony_ci .reg = 0x328, 54162306a36Sopenharmony_ci .shift = 16, 54262306a36Sopenharmony_ci .mask = 0xff, 54362306a36Sopenharmony_ci .def = 0x80, 54462306a36Sopenharmony_ci }, 54562306a36Sopenharmony_ci }, 54662306a36Sopenharmony_ci }, { 54762306a36Sopenharmony_ci .id = 0x2c, 54862306a36Sopenharmony_ci .name = "viwsb", 54962306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_VI, 55062306a36Sopenharmony_ci .regs = { 55162306a36Sopenharmony_ci .smmu = { 55262306a36Sopenharmony_ci .reg = 0x22c, 55362306a36Sopenharmony_ci .bit = 12, 55462306a36Sopenharmony_ci }, 55562306a36Sopenharmony_ci .la = { 55662306a36Sopenharmony_ci .reg = 0x364, 55762306a36Sopenharmony_ci .shift = 0, 55862306a36Sopenharmony_ci .mask = 0xff, 55962306a36Sopenharmony_ci .def = 0x47, 56062306a36Sopenharmony_ci }, 56162306a36Sopenharmony_ci }, 56262306a36Sopenharmony_ci }, { 56362306a36Sopenharmony_ci .id = 0x2d, 56462306a36Sopenharmony_ci .name = "viwu", 56562306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_VI, 56662306a36Sopenharmony_ci .regs = { 56762306a36Sopenharmony_ci .smmu = { 56862306a36Sopenharmony_ci .reg = 0x22c, 56962306a36Sopenharmony_ci .bit = 13, 57062306a36Sopenharmony_ci }, 57162306a36Sopenharmony_ci .la = { 57262306a36Sopenharmony_ci .reg = 0x368, 57362306a36Sopenharmony_ci .shift = 0, 57462306a36Sopenharmony_ci .mask = 0xff, 57562306a36Sopenharmony_ci .def = 0xff, 57662306a36Sopenharmony_ci }, 57762306a36Sopenharmony_ci }, 57862306a36Sopenharmony_ci }, { 57962306a36Sopenharmony_ci .id = 0x2e, 58062306a36Sopenharmony_ci .name = "viwv", 58162306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_VI, 58262306a36Sopenharmony_ci .regs = { 58362306a36Sopenharmony_ci .smmu = { 58462306a36Sopenharmony_ci .reg = 0x22c, 58562306a36Sopenharmony_ci .bit = 14, 58662306a36Sopenharmony_ci }, 58762306a36Sopenharmony_ci .la = { 58862306a36Sopenharmony_ci .reg = 0x368, 58962306a36Sopenharmony_ci .shift = 16, 59062306a36Sopenharmony_ci .mask = 0xff, 59162306a36Sopenharmony_ci .def = 0xff, 59262306a36Sopenharmony_ci }, 59362306a36Sopenharmony_ci }, 59462306a36Sopenharmony_ci }, { 59562306a36Sopenharmony_ci .id = 0x2f, 59662306a36Sopenharmony_ci .name = "viwy", 59762306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_VI, 59862306a36Sopenharmony_ci .regs = { 59962306a36Sopenharmony_ci .smmu = { 60062306a36Sopenharmony_ci .reg = 0x22c, 60162306a36Sopenharmony_ci .bit = 15, 60262306a36Sopenharmony_ci }, 60362306a36Sopenharmony_ci .la = { 60462306a36Sopenharmony_ci .reg = 0x36c, 60562306a36Sopenharmony_ci .shift = 0, 60662306a36Sopenharmony_ci .mask = 0xff, 60762306a36Sopenharmony_ci .def = 0x47, 60862306a36Sopenharmony_ci }, 60962306a36Sopenharmony_ci }, 61062306a36Sopenharmony_ci }, { 61162306a36Sopenharmony_ci .id = 0x30, 61262306a36Sopenharmony_ci .name = "g2dw", 61362306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_G2, 61462306a36Sopenharmony_ci .regs = { 61562306a36Sopenharmony_ci .smmu = { 61662306a36Sopenharmony_ci .reg = 0x22c, 61762306a36Sopenharmony_ci .bit = 16, 61862306a36Sopenharmony_ci }, 61962306a36Sopenharmony_ci .la = { 62062306a36Sopenharmony_ci .reg = 0x30c, 62162306a36Sopenharmony_ci .shift = 16, 62262306a36Sopenharmony_ci .mask = 0xff, 62362306a36Sopenharmony_ci .def = 0x9, 62462306a36Sopenharmony_ci }, 62562306a36Sopenharmony_ci }, 62662306a36Sopenharmony_ci }, { 62762306a36Sopenharmony_ci .id = 0x32, 62862306a36Sopenharmony_ci .name = "avpcarm7w", 62962306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_AVPC, 63062306a36Sopenharmony_ci .regs = { 63162306a36Sopenharmony_ci .smmu = { 63262306a36Sopenharmony_ci .reg = 0x22c, 63362306a36Sopenharmony_ci .bit = 18, 63462306a36Sopenharmony_ci }, 63562306a36Sopenharmony_ci .la = { 63662306a36Sopenharmony_ci .reg = 0x2e4, 63762306a36Sopenharmony_ci .shift = 16, 63862306a36Sopenharmony_ci .mask = 0xff, 63962306a36Sopenharmony_ci .def = 0x0e, 64062306a36Sopenharmony_ci }, 64162306a36Sopenharmony_ci }, 64262306a36Sopenharmony_ci }, { 64362306a36Sopenharmony_ci .id = 0x33, 64462306a36Sopenharmony_ci .name = "fdcdwr", 64562306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_NV, 64662306a36Sopenharmony_ci .regs = { 64762306a36Sopenharmony_ci .smmu = { 64862306a36Sopenharmony_ci .reg = 0x22c, 64962306a36Sopenharmony_ci .bit = 19, 65062306a36Sopenharmony_ci }, 65162306a36Sopenharmony_ci .la = { 65262306a36Sopenharmony_ci .reg = 0x338, 65362306a36Sopenharmony_ci .shift = 16, 65462306a36Sopenharmony_ci .mask = 0xff, 65562306a36Sopenharmony_ci .def = 0x10, 65662306a36Sopenharmony_ci }, 65762306a36Sopenharmony_ci }, 65862306a36Sopenharmony_ci }, { 65962306a36Sopenharmony_ci .id = 0x34, 66062306a36Sopenharmony_ci .name = "fdcdwr2", 66162306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_NV, 66262306a36Sopenharmony_ci .regs = { 66362306a36Sopenharmony_ci .smmu = { 66462306a36Sopenharmony_ci .reg = 0x22c, 66562306a36Sopenharmony_ci .bit = 20, 66662306a36Sopenharmony_ci }, 66762306a36Sopenharmony_ci .la = { 66862306a36Sopenharmony_ci .reg = 0x340, 66962306a36Sopenharmony_ci .shift = 0, 67062306a36Sopenharmony_ci .mask = 0xff, 67162306a36Sopenharmony_ci .def = 0x10, 67262306a36Sopenharmony_ci }, 67362306a36Sopenharmony_ci }, 67462306a36Sopenharmony_ci }, { 67562306a36Sopenharmony_ci .id = 0x35, 67662306a36Sopenharmony_ci .name = "hdaw", 67762306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_HDA, 67862306a36Sopenharmony_ci .regs = { 67962306a36Sopenharmony_ci .smmu = { 68062306a36Sopenharmony_ci .reg = 0x22c, 68162306a36Sopenharmony_ci .bit = 21, 68262306a36Sopenharmony_ci }, 68362306a36Sopenharmony_ci .la = { 68462306a36Sopenharmony_ci .reg = 0x318, 68562306a36Sopenharmony_ci .shift = 16, 68662306a36Sopenharmony_ci .mask = 0xff, 68762306a36Sopenharmony_ci .def = 0xff, 68862306a36Sopenharmony_ci }, 68962306a36Sopenharmony_ci }, 69062306a36Sopenharmony_ci }, { 69162306a36Sopenharmony_ci .id = 0x36, 69262306a36Sopenharmony_ci .name = "host1xw", 69362306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_HC, 69462306a36Sopenharmony_ci .regs = { 69562306a36Sopenharmony_ci .smmu = { 69662306a36Sopenharmony_ci .reg = 0x22c, 69762306a36Sopenharmony_ci .bit = 22, 69862306a36Sopenharmony_ci }, 69962306a36Sopenharmony_ci .la = { 70062306a36Sopenharmony_ci .reg = 0x314, 70162306a36Sopenharmony_ci .shift = 0, 70262306a36Sopenharmony_ci .mask = 0xff, 70362306a36Sopenharmony_ci .def = 0x25, 70462306a36Sopenharmony_ci }, 70562306a36Sopenharmony_ci }, 70662306a36Sopenharmony_ci }, { 70762306a36Sopenharmony_ci .id = 0x37, 70862306a36Sopenharmony_ci .name = "ispw", 70962306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_ISP, 71062306a36Sopenharmony_ci .regs = { 71162306a36Sopenharmony_ci .smmu = { 71262306a36Sopenharmony_ci .reg = 0x22c, 71362306a36Sopenharmony_ci .bit = 23, 71462306a36Sopenharmony_ci }, 71562306a36Sopenharmony_ci .la = { 71662306a36Sopenharmony_ci .reg = 0x31c, 71762306a36Sopenharmony_ci .shift = 0, 71862306a36Sopenharmony_ci .mask = 0xff, 71962306a36Sopenharmony_ci .def = 0xff, 72062306a36Sopenharmony_ci }, 72162306a36Sopenharmony_ci }, 72262306a36Sopenharmony_ci }, { 72362306a36Sopenharmony_ci .id = 0x38, 72462306a36Sopenharmony_ci .name = "mpcorelpw", 72562306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_MPCORELP, 72662306a36Sopenharmony_ci .regs = { 72762306a36Sopenharmony_ci .la = { 72862306a36Sopenharmony_ci .reg = 0x324, 72962306a36Sopenharmony_ci .shift = 16, 73062306a36Sopenharmony_ci .mask = 0xff, 73162306a36Sopenharmony_ci .def = 0x80, 73262306a36Sopenharmony_ci }, 73362306a36Sopenharmony_ci }, 73462306a36Sopenharmony_ci }, { 73562306a36Sopenharmony_ci .id = 0x39, 73662306a36Sopenharmony_ci .name = "mpcorew", 73762306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_MPCORE, 73862306a36Sopenharmony_ci .regs = { 73962306a36Sopenharmony_ci .la = { 74062306a36Sopenharmony_ci .reg = 0x320, 74162306a36Sopenharmony_ci .shift = 16, 74262306a36Sopenharmony_ci .mask = 0xff, 74362306a36Sopenharmony_ci .def = 0x0e, 74462306a36Sopenharmony_ci }, 74562306a36Sopenharmony_ci }, 74662306a36Sopenharmony_ci }, { 74762306a36Sopenharmony_ci .id = 0x3b, 74862306a36Sopenharmony_ci .name = "ppcsahbdmaw", 74962306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_PPCS, 75062306a36Sopenharmony_ci .regs = { 75162306a36Sopenharmony_ci .smmu = { 75262306a36Sopenharmony_ci .reg = 0x22c, 75362306a36Sopenharmony_ci .bit = 27, 75462306a36Sopenharmony_ci }, 75562306a36Sopenharmony_ci .la = { 75662306a36Sopenharmony_ci .reg = 0x348, 75762306a36Sopenharmony_ci .shift = 0, 75862306a36Sopenharmony_ci .mask = 0xff, 75962306a36Sopenharmony_ci .def = 0xa5, 76062306a36Sopenharmony_ci }, 76162306a36Sopenharmony_ci }, 76262306a36Sopenharmony_ci }, { 76362306a36Sopenharmony_ci .id = 0x3c, 76462306a36Sopenharmony_ci .name = "ppcsahbslvw", 76562306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_PPCS, 76662306a36Sopenharmony_ci .regs = { 76762306a36Sopenharmony_ci .smmu = { 76862306a36Sopenharmony_ci .reg = 0x22c, 76962306a36Sopenharmony_ci .bit = 28, 77062306a36Sopenharmony_ci }, 77162306a36Sopenharmony_ci .la = { 77262306a36Sopenharmony_ci .reg = 0x348, 77362306a36Sopenharmony_ci .shift = 16, 77462306a36Sopenharmony_ci .mask = 0xff, 77562306a36Sopenharmony_ci .def = 0xe8, 77662306a36Sopenharmony_ci }, 77762306a36Sopenharmony_ci }, 77862306a36Sopenharmony_ci }, { 77962306a36Sopenharmony_ci .id = 0x3e, 78062306a36Sopenharmony_ci .name = "vdebsevw", 78162306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_VDE, 78262306a36Sopenharmony_ci .regs = { 78362306a36Sopenharmony_ci .smmu = { 78462306a36Sopenharmony_ci .reg = 0x22c, 78562306a36Sopenharmony_ci .bit = 30, 78662306a36Sopenharmony_ci }, 78762306a36Sopenharmony_ci .la = { 78862306a36Sopenharmony_ci .reg = 0x35c, 78962306a36Sopenharmony_ci .shift = 0, 79062306a36Sopenharmony_ci .mask = 0xff, 79162306a36Sopenharmony_ci .def = 0xff, 79262306a36Sopenharmony_ci }, 79362306a36Sopenharmony_ci }, 79462306a36Sopenharmony_ci }, { 79562306a36Sopenharmony_ci .id = 0x3f, 79662306a36Sopenharmony_ci .name = "vdedbgw", 79762306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_VDE, 79862306a36Sopenharmony_ci .regs = { 79962306a36Sopenharmony_ci .smmu = { 80062306a36Sopenharmony_ci .reg = 0x22c, 80162306a36Sopenharmony_ci .bit = 31, 80262306a36Sopenharmony_ci }, 80362306a36Sopenharmony_ci .la = { 80462306a36Sopenharmony_ci .reg = 0x35c, 80562306a36Sopenharmony_ci .shift = 16, 80662306a36Sopenharmony_ci .mask = 0xff, 80762306a36Sopenharmony_ci .def = 0xff, 80862306a36Sopenharmony_ci }, 80962306a36Sopenharmony_ci }, 81062306a36Sopenharmony_ci }, { 81162306a36Sopenharmony_ci .id = 0x40, 81262306a36Sopenharmony_ci .name = "vdembew", 81362306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_VDE, 81462306a36Sopenharmony_ci .regs = { 81562306a36Sopenharmony_ci .smmu = { 81662306a36Sopenharmony_ci .reg = 0x230, 81762306a36Sopenharmony_ci .bit = 0, 81862306a36Sopenharmony_ci }, 81962306a36Sopenharmony_ci .la = { 82062306a36Sopenharmony_ci .reg = 0x360, 82162306a36Sopenharmony_ci .shift = 0, 82262306a36Sopenharmony_ci .mask = 0xff, 82362306a36Sopenharmony_ci .def = 0x89, 82462306a36Sopenharmony_ci }, 82562306a36Sopenharmony_ci }, 82662306a36Sopenharmony_ci }, { 82762306a36Sopenharmony_ci .id = 0x41, 82862306a36Sopenharmony_ci .name = "vdetpmw", 82962306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_VDE, 83062306a36Sopenharmony_ci .regs = { 83162306a36Sopenharmony_ci .smmu = { 83262306a36Sopenharmony_ci .reg = 0x230, 83362306a36Sopenharmony_ci .bit = 1, 83462306a36Sopenharmony_ci }, 83562306a36Sopenharmony_ci .la = { 83662306a36Sopenharmony_ci .reg = 0x360, 83762306a36Sopenharmony_ci .shift = 16, 83862306a36Sopenharmony_ci .mask = 0xff, 83962306a36Sopenharmony_ci .def = 0x59, 84062306a36Sopenharmony_ci }, 84162306a36Sopenharmony_ci }, 84262306a36Sopenharmony_ci }, { 84362306a36Sopenharmony_ci .id = 0x4a, 84462306a36Sopenharmony_ci .name = "xusb_hostr", 84562306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_XUSB_HOST, 84662306a36Sopenharmony_ci .regs = { 84762306a36Sopenharmony_ci .smmu = { 84862306a36Sopenharmony_ci .reg = 0x230, 84962306a36Sopenharmony_ci .bit = 10, 85062306a36Sopenharmony_ci }, 85162306a36Sopenharmony_ci .la = { 85262306a36Sopenharmony_ci .reg = 0x37c, 85362306a36Sopenharmony_ci .shift = 0, 85462306a36Sopenharmony_ci .mask = 0xff, 85562306a36Sopenharmony_ci .def = 0xa5, 85662306a36Sopenharmony_ci }, 85762306a36Sopenharmony_ci }, 85862306a36Sopenharmony_ci }, { 85962306a36Sopenharmony_ci .id = 0x4b, 86062306a36Sopenharmony_ci .name = "xusb_hostw", 86162306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_XUSB_HOST, 86262306a36Sopenharmony_ci .regs = { 86362306a36Sopenharmony_ci .smmu = { 86462306a36Sopenharmony_ci .reg = 0x230, 86562306a36Sopenharmony_ci .bit = 11, 86662306a36Sopenharmony_ci }, 86762306a36Sopenharmony_ci .la = { 86862306a36Sopenharmony_ci .reg = 0x37c, 86962306a36Sopenharmony_ci .shift = 16, 87062306a36Sopenharmony_ci .mask = 0xff, 87162306a36Sopenharmony_ci .def = 0xa5, 87262306a36Sopenharmony_ci }, 87362306a36Sopenharmony_ci }, 87462306a36Sopenharmony_ci }, { 87562306a36Sopenharmony_ci .id = 0x4c, 87662306a36Sopenharmony_ci .name = "xusb_devr", 87762306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_XUSB_DEV, 87862306a36Sopenharmony_ci .regs = { 87962306a36Sopenharmony_ci .smmu = { 88062306a36Sopenharmony_ci .reg = 0x230, 88162306a36Sopenharmony_ci .bit = 12, 88262306a36Sopenharmony_ci }, 88362306a36Sopenharmony_ci .la = { 88462306a36Sopenharmony_ci .reg = 0x380, 88562306a36Sopenharmony_ci .shift = 0, 88662306a36Sopenharmony_ci .mask = 0xff, 88762306a36Sopenharmony_ci .def = 0xa5, 88862306a36Sopenharmony_ci }, 88962306a36Sopenharmony_ci }, 89062306a36Sopenharmony_ci }, { 89162306a36Sopenharmony_ci .id = 0x4d, 89262306a36Sopenharmony_ci .name = "xusb_devw", 89362306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_XUSB_DEV, 89462306a36Sopenharmony_ci .regs = { 89562306a36Sopenharmony_ci .smmu = { 89662306a36Sopenharmony_ci .reg = 0x230, 89762306a36Sopenharmony_ci .bit = 13, 89862306a36Sopenharmony_ci }, 89962306a36Sopenharmony_ci .la = { 90062306a36Sopenharmony_ci .reg = 0x380, 90162306a36Sopenharmony_ci .shift = 16, 90262306a36Sopenharmony_ci .mask = 0xff, 90362306a36Sopenharmony_ci .def = 0xa5, 90462306a36Sopenharmony_ci }, 90562306a36Sopenharmony_ci }, 90662306a36Sopenharmony_ci }, { 90762306a36Sopenharmony_ci .id = 0x4e, 90862306a36Sopenharmony_ci .name = "fdcdwr3", 90962306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_NV, 91062306a36Sopenharmony_ci .regs = { 91162306a36Sopenharmony_ci .smmu = { 91262306a36Sopenharmony_ci .reg = 0x230, 91362306a36Sopenharmony_ci .bit = 14, 91462306a36Sopenharmony_ci }, 91562306a36Sopenharmony_ci .la = { 91662306a36Sopenharmony_ci .reg = 0x388, 91762306a36Sopenharmony_ci .shift = 0, 91862306a36Sopenharmony_ci .mask = 0xff, 91962306a36Sopenharmony_ci .def = 0x10, 92062306a36Sopenharmony_ci }, 92162306a36Sopenharmony_ci }, 92262306a36Sopenharmony_ci }, { 92362306a36Sopenharmony_ci .id = 0x4f, 92462306a36Sopenharmony_ci .name = "fdcdrd3", 92562306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_NV, 92662306a36Sopenharmony_ci .regs = { 92762306a36Sopenharmony_ci .smmu = { 92862306a36Sopenharmony_ci .reg = 0x230, 92962306a36Sopenharmony_ci .bit = 15, 93062306a36Sopenharmony_ci }, 93162306a36Sopenharmony_ci .la = { 93262306a36Sopenharmony_ci .reg = 0x384, 93362306a36Sopenharmony_ci .shift = 0, 93462306a36Sopenharmony_ci .mask = 0xff, 93562306a36Sopenharmony_ci .def = 0x0c, 93662306a36Sopenharmony_ci }, 93762306a36Sopenharmony_ci }, 93862306a36Sopenharmony_ci }, { 93962306a36Sopenharmony_ci .id = 0x50, 94062306a36Sopenharmony_ci .name = "fdcwr4", 94162306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_NV, 94262306a36Sopenharmony_ci .regs = { 94362306a36Sopenharmony_ci .smmu = { 94462306a36Sopenharmony_ci .reg = 0x230, 94562306a36Sopenharmony_ci .bit = 16, 94662306a36Sopenharmony_ci }, 94762306a36Sopenharmony_ci .la = { 94862306a36Sopenharmony_ci .reg = 0x388, 94962306a36Sopenharmony_ci .shift = 16, 95062306a36Sopenharmony_ci .mask = 0xff, 95162306a36Sopenharmony_ci .def = 0x10, 95262306a36Sopenharmony_ci }, 95362306a36Sopenharmony_ci }, 95462306a36Sopenharmony_ci }, { 95562306a36Sopenharmony_ci .id = 0x51, 95662306a36Sopenharmony_ci .name = "fdcrd4", 95762306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_NV, 95862306a36Sopenharmony_ci .regs = { 95962306a36Sopenharmony_ci .smmu = { 96062306a36Sopenharmony_ci .reg = 0x230, 96162306a36Sopenharmony_ci .bit = 17, 96262306a36Sopenharmony_ci }, 96362306a36Sopenharmony_ci .la = { 96462306a36Sopenharmony_ci .reg = 0x384, 96562306a36Sopenharmony_ci .shift = 16, 96662306a36Sopenharmony_ci .mask = 0xff, 96762306a36Sopenharmony_ci .def = 0x0c, 96862306a36Sopenharmony_ci }, 96962306a36Sopenharmony_ci }, 97062306a36Sopenharmony_ci }, { 97162306a36Sopenharmony_ci .id = 0x52, 97262306a36Sopenharmony_ci .name = "emucifr", 97362306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_EMUCIF, 97462306a36Sopenharmony_ci .regs = { 97562306a36Sopenharmony_ci .la = { 97662306a36Sopenharmony_ci .reg = 0x38c, 97762306a36Sopenharmony_ci .shift = 0, 97862306a36Sopenharmony_ci .mask = 0xff, 97962306a36Sopenharmony_ci .def = 0x04, 98062306a36Sopenharmony_ci }, 98162306a36Sopenharmony_ci }, 98262306a36Sopenharmony_ci }, { 98362306a36Sopenharmony_ci .id = 0x53, 98462306a36Sopenharmony_ci .name = "emucifw", 98562306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_EMUCIF, 98662306a36Sopenharmony_ci .regs = { 98762306a36Sopenharmony_ci .la = { 98862306a36Sopenharmony_ci .reg = 0x38c, 98962306a36Sopenharmony_ci .shift = 16, 99062306a36Sopenharmony_ci .mask = 0xff, 99162306a36Sopenharmony_ci .def = 0x0e, 99262306a36Sopenharmony_ci }, 99362306a36Sopenharmony_ci }, 99462306a36Sopenharmony_ci }, { 99562306a36Sopenharmony_ci .id = 0x54, 99662306a36Sopenharmony_ci .name = "tsecsrd", 99762306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_TSEC, 99862306a36Sopenharmony_ci .regs = { 99962306a36Sopenharmony_ci .smmu = { 100062306a36Sopenharmony_ci .reg = 0x230, 100162306a36Sopenharmony_ci .bit = 20, 100262306a36Sopenharmony_ci }, 100362306a36Sopenharmony_ci .la = { 100462306a36Sopenharmony_ci .reg = 0x390, 100562306a36Sopenharmony_ci .shift = 0, 100662306a36Sopenharmony_ci .mask = 0xff, 100762306a36Sopenharmony_ci .def = 0x50, 100862306a36Sopenharmony_ci }, 100962306a36Sopenharmony_ci }, 101062306a36Sopenharmony_ci }, { 101162306a36Sopenharmony_ci .id = 0x55, 101262306a36Sopenharmony_ci .name = "tsecswr", 101362306a36Sopenharmony_ci .swgroup = TEGRA_SWGROUP_TSEC, 101462306a36Sopenharmony_ci .regs = { 101562306a36Sopenharmony_ci .smmu = { 101662306a36Sopenharmony_ci .reg = 0x230, 101762306a36Sopenharmony_ci .bit = 21, 101862306a36Sopenharmony_ci }, 101962306a36Sopenharmony_ci .la = { 102062306a36Sopenharmony_ci .reg = 0x390, 102162306a36Sopenharmony_ci .shift = 16, 102262306a36Sopenharmony_ci .mask = 0xff, 102362306a36Sopenharmony_ci .def = 0x50, 102462306a36Sopenharmony_ci }, 102562306a36Sopenharmony_ci }, 102662306a36Sopenharmony_ci }, 102762306a36Sopenharmony_ci}; 102862306a36Sopenharmony_ci 102962306a36Sopenharmony_cistatic const struct tegra_smmu_swgroup tegra114_swgroups[] = { 103062306a36Sopenharmony_ci { .name = "dc", .swgroup = TEGRA_SWGROUP_DC, .reg = 0x240 }, 103162306a36Sopenharmony_ci { .name = "dcb", .swgroup = TEGRA_SWGROUP_DCB, .reg = 0x244 }, 103262306a36Sopenharmony_ci { .name = "epp", .swgroup = TEGRA_SWGROUP_EPP, .reg = 0x248 }, 103362306a36Sopenharmony_ci { .name = "g2", .swgroup = TEGRA_SWGROUP_G2, .reg = 0x24c }, 103462306a36Sopenharmony_ci { .name = "avpc", .swgroup = TEGRA_SWGROUP_AVPC, .reg = 0x23c }, 103562306a36Sopenharmony_ci { .name = "nv", .swgroup = TEGRA_SWGROUP_NV, .reg = 0x268 }, 103662306a36Sopenharmony_ci { .name = "hda", .swgroup = TEGRA_SWGROUP_HDA, .reg = 0x254 }, 103762306a36Sopenharmony_ci { .name = "hc", .swgroup = TEGRA_SWGROUP_HC, .reg = 0x250 }, 103862306a36Sopenharmony_ci { .name = "msenc", .swgroup = TEGRA_SWGROUP_MSENC, .reg = 0x264 }, 103962306a36Sopenharmony_ci { .name = "ppcs", .swgroup = TEGRA_SWGROUP_PPCS, .reg = 0x270 }, 104062306a36Sopenharmony_ci { .name = "vde", .swgroup = TEGRA_SWGROUP_VDE, .reg = 0x27c }, 104162306a36Sopenharmony_ci { .name = "vi", .swgroup = TEGRA_SWGROUP_VI, .reg = 0x280 }, 104262306a36Sopenharmony_ci { .name = "isp", .swgroup = TEGRA_SWGROUP_ISP, .reg = 0x258 }, 104362306a36Sopenharmony_ci { .name = "xusb_host", .swgroup = TEGRA_SWGROUP_XUSB_HOST, .reg = 0x288 }, 104462306a36Sopenharmony_ci { .name = "xusb_dev", .swgroup = TEGRA_SWGROUP_XUSB_DEV, .reg = 0x28c }, 104562306a36Sopenharmony_ci { .name = "tsec", .swgroup = TEGRA_SWGROUP_TSEC, .reg = 0x294 }, 104662306a36Sopenharmony_ci}; 104762306a36Sopenharmony_ci 104862306a36Sopenharmony_cistatic const unsigned int tegra114_group_drm[] = { 104962306a36Sopenharmony_ci TEGRA_SWGROUP_DC, 105062306a36Sopenharmony_ci TEGRA_SWGROUP_DCB, 105162306a36Sopenharmony_ci TEGRA_SWGROUP_G2, 105262306a36Sopenharmony_ci TEGRA_SWGROUP_NV, 105362306a36Sopenharmony_ci}; 105462306a36Sopenharmony_ci 105562306a36Sopenharmony_cistatic const struct tegra_smmu_group_soc tegra114_groups[] = { 105662306a36Sopenharmony_ci { 105762306a36Sopenharmony_ci .name = "drm", 105862306a36Sopenharmony_ci .swgroups = tegra114_group_drm, 105962306a36Sopenharmony_ci .num_swgroups = ARRAY_SIZE(tegra114_group_drm), 106062306a36Sopenharmony_ci }, 106162306a36Sopenharmony_ci}; 106262306a36Sopenharmony_ci 106362306a36Sopenharmony_cistatic const struct tegra_smmu_soc tegra114_smmu_soc = { 106462306a36Sopenharmony_ci .clients = tegra114_mc_clients, 106562306a36Sopenharmony_ci .num_clients = ARRAY_SIZE(tegra114_mc_clients), 106662306a36Sopenharmony_ci .swgroups = tegra114_swgroups, 106762306a36Sopenharmony_ci .num_swgroups = ARRAY_SIZE(tegra114_swgroups), 106862306a36Sopenharmony_ci .groups = tegra114_groups, 106962306a36Sopenharmony_ci .num_groups = ARRAY_SIZE(tegra114_groups), 107062306a36Sopenharmony_ci .supports_round_robin_arbitration = false, 107162306a36Sopenharmony_ci .supports_request_limit = false, 107262306a36Sopenharmony_ci .num_tlb_lines = 32, 107362306a36Sopenharmony_ci .num_asids = 4, 107462306a36Sopenharmony_ci}; 107562306a36Sopenharmony_ci 107662306a36Sopenharmony_ci#define TEGRA114_MC_RESET(_name, _control, _status, _bit) \ 107762306a36Sopenharmony_ci { \ 107862306a36Sopenharmony_ci .name = #_name, \ 107962306a36Sopenharmony_ci .id = TEGRA114_MC_RESET_##_name, \ 108062306a36Sopenharmony_ci .control = _control, \ 108162306a36Sopenharmony_ci .status = _status, \ 108262306a36Sopenharmony_ci .bit = _bit, \ 108362306a36Sopenharmony_ci } 108462306a36Sopenharmony_ci 108562306a36Sopenharmony_cistatic const struct tegra_mc_reset tegra114_mc_resets[] = { 108662306a36Sopenharmony_ci TEGRA114_MC_RESET(AVPC, 0x200, 0x204, 1), 108762306a36Sopenharmony_ci TEGRA114_MC_RESET(DC, 0x200, 0x204, 2), 108862306a36Sopenharmony_ci TEGRA114_MC_RESET(DCB, 0x200, 0x204, 3), 108962306a36Sopenharmony_ci TEGRA114_MC_RESET(EPP, 0x200, 0x204, 4), 109062306a36Sopenharmony_ci TEGRA114_MC_RESET(2D, 0x200, 0x204, 5), 109162306a36Sopenharmony_ci TEGRA114_MC_RESET(HC, 0x200, 0x204, 6), 109262306a36Sopenharmony_ci TEGRA114_MC_RESET(HDA, 0x200, 0x204, 7), 109362306a36Sopenharmony_ci TEGRA114_MC_RESET(ISP, 0x200, 0x204, 8), 109462306a36Sopenharmony_ci TEGRA114_MC_RESET(MPCORE, 0x200, 0x204, 9), 109562306a36Sopenharmony_ci TEGRA114_MC_RESET(MPCORELP, 0x200, 0x204, 10), 109662306a36Sopenharmony_ci TEGRA114_MC_RESET(MPE, 0x200, 0x204, 11), 109762306a36Sopenharmony_ci TEGRA114_MC_RESET(3D, 0x200, 0x204, 12), 109862306a36Sopenharmony_ci TEGRA114_MC_RESET(3D2, 0x200, 0x204, 13), 109962306a36Sopenharmony_ci TEGRA114_MC_RESET(PPCS, 0x200, 0x204, 14), 110062306a36Sopenharmony_ci TEGRA114_MC_RESET(VDE, 0x200, 0x204, 16), 110162306a36Sopenharmony_ci TEGRA114_MC_RESET(VI, 0x200, 0x204, 17), 110262306a36Sopenharmony_ci}; 110362306a36Sopenharmony_ci 110462306a36Sopenharmony_ciconst struct tegra_mc_soc tegra114_mc_soc = { 110562306a36Sopenharmony_ci .clients = tegra114_mc_clients, 110662306a36Sopenharmony_ci .num_clients = ARRAY_SIZE(tegra114_mc_clients), 110762306a36Sopenharmony_ci .num_address_bits = 32, 110862306a36Sopenharmony_ci .atom_size = 32, 110962306a36Sopenharmony_ci .client_id_mask = 0x7f, 111062306a36Sopenharmony_ci .smmu = &tegra114_smmu_soc, 111162306a36Sopenharmony_ci .intmask = MC_INT_INVALID_SMMU_PAGE | MC_INT_SECURITY_VIOLATION | 111262306a36Sopenharmony_ci MC_INT_DECERR_EMEM, 111362306a36Sopenharmony_ci .reset_ops = &tegra_mc_reset_ops_common, 111462306a36Sopenharmony_ci .resets = tegra114_mc_resets, 111562306a36Sopenharmony_ci .num_resets = ARRAY_SIZE(tegra114_mc_resets), 111662306a36Sopenharmony_ci .ops = &tegra30_mc_ops, 111762306a36Sopenharmony_ci}; 1118