^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) // SPDX-License-Identifier: GPL-2.0-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * Copyright (C) 2014 NVIDIA CORPORATION. All rights reserved.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) #include <linux/of.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #include <linux/mm.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #include <dt-bindings/memory/tegra30-mc.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #include "mc.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) static const unsigned long tegra30_mc_emem_regs[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) MC_EMEM_ARB_CFG,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) MC_EMEM_ARB_OUTSTANDING_REQ,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) MC_EMEM_ARB_TIMING_RCD,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) MC_EMEM_ARB_TIMING_RP,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) MC_EMEM_ARB_TIMING_RC,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) MC_EMEM_ARB_TIMING_RAS,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) MC_EMEM_ARB_TIMING_FAW,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) MC_EMEM_ARB_TIMING_RRD,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) MC_EMEM_ARB_TIMING_RAP2PRE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) MC_EMEM_ARB_TIMING_WAP2PRE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) MC_EMEM_ARB_TIMING_R2R,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) MC_EMEM_ARB_TIMING_W2W,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) MC_EMEM_ARB_TIMING_R2W,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) MC_EMEM_ARB_TIMING_W2R,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) MC_EMEM_ARB_DA_TURNS,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) MC_EMEM_ARB_DA_COVERS,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) MC_EMEM_ARB_MISC0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) MC_EMEM_ARB_RING1_THROTTLE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) static const struct tegra_mc_client tegra30_mc_clients[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) .id = 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) .name = "ptcr",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) .swgroup = TEGRA_SWGROUP_PTC,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) .id = 0x01,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) .name = "display0a",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) .swgroup = TEGRA_SWGROUP_DC,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) .bit = 1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) .reg = 0x2e8,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) .def = 0x4e,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) .id = 0x02,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) .name = "display0ab",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) .swgroup = TEGRA_SWGROUP_DCB,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) .bit = 2,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) .reg = 0x2f4,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) .def = 0x4e,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) .id = 0x03,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) .name = "display0b",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) .swgroup = TEGRA_SWGROUP_DC,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) .bit = 3,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) .reg = 0x2e8,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) .shift = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) .def = 0x4e,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) .id = 0x04,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) .name = "display0bb",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) .swgroup = TEGRA_SWGROUP_DCB,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) .bit = 4,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) .reg = 0x2f4,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) .shift = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) .def = 0x4e,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) .id = 0x05,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) .name = "display0c",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) .swgroup = TEGRA_SWGROUP_DC,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) .bit = 5,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) .reg = 0x2ec,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) .def = 0x4e,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) .id = 0x06,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) .name = "display0cb",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) .swgroup = TEGRA_SWGROUP_DCB,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) .bit = 6,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) .reg = 0x2f8,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) .def = 0x4e,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) .id = 0x07,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) .name = "display1b",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) .swgroup = TEGRA_SWGROUP_DC,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) .bit = 7,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) .reg = 0x2ec,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) .shift = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) .def = 0x4e,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) .id = 0x08,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) .name = "display1bb",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) .swgroup = TEGRA_SWGROUP_DCB,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) .bit = 8,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) .reg = 0x2f8,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) .shift = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) .def = 0x4e,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) .id = 0x09,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) .name = "eppup",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) .swgroup = TEGRA_SWGROUP_EPP,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) .bit = 9,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) .reg = 0x300,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) .def = 0x17,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) .id = 0x0a,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) .name = "g2pr",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) .swgroup = TEGRA_SWGROUP_G2,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) .bit = 10,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) .reg = 0x308,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) .def = 0x09,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) .id = 0x0b,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) .name = "g2sr",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) .swgroup = TEGRA_SWGROUP_G2,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) .bit = 11,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) .reg = 0x308,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) .shift = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) .def = 0x09,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) .id = 0x0c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) .name = "mpeunifbr",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) .swgroup = TEGRA_SWGROUP_MPE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) .bit = 12,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) .reg = 0x328,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) .def = 0x50,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) .id = 0x0d,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) .name = "viruv",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) .swgroup = TEGRA_SWGROUP_VI,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) .bit = 13,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) .reg = 0x364,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) .def = 0x2c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) .id = 0x0e,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) .name = "afir",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) .swgroup = TEGRA_SWGROUP_AFI,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) .bit = 14,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) .reg = 0x2e0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) .def = 0x10,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) .id = 0x0f,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) .name = "avpcarm7r",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) .swgroup = TEGRA_SWGROUP_AVPC,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) .bit = 15,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) .reg = 0x2e4,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) .def = 0x04,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) .id = 0x10,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) .name = "displayhc",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) .swgroup = TEGRA_SWGROUP_DC,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) .bit = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) .reg = 0x2f0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) .def = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) .id = 0x11,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) .name = "displayhcb",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) .swgroup = TEGRA_SWGROUP_DCB,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) .bit = 17,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) .reg = 0x2fc,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) .def = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) .id = 0x12,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) .name = "fdcdrd",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) .swgroup = TEGRA_SWGROUP_NV,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) .bit = 18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) .reg = 0x334,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) .def = 0x0a,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) .id = 0x13,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) .name = "fdcdrd2",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) .swgroup = TEGRA_SWGROUP_NV2,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) .bit = 19,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) .reg = 0x33c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) .def = 0x0a,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) .id = 0x14,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) .name = "g2dr",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) .swgroup = TEGRA_SWGROUP_G2,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) .bit = 20,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) .reg = 0x30c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) .def = 0x0a,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) .id = 0x15,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) .name = "hdar",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) .swgroup = TEGRA_SWGROUP_HDA,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) .bit = 21,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) .reg = 0x318,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) .def = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) .id = 0x16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) .name = "host1xdmar",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) .swgroup = TEGRA_SWGROUP_HC,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) .bit = 22,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) .reg = 0x310,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) .def = 0x05,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) .id = 0x17,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) .name = "host1xr",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) .swgroup = TEGRA_SWGROUP_HC,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) .bit = 23,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) .reg = 0x310,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) .shift = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) .def = 0x50,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) .id = 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) .name = "idxsrd",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) .swgroup = TEGRA_SWGROUP_NV,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) .bit = 24,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370) .reg = 0x334,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) .shift = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373) .def = 0x13,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376) .id = 0x19,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) .name = "idxsrd2",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) .swgroup = TEGRA_SWGROUP_NV2,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381) .bit = 25,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) .reg = 0x33c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) .shift = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) .def = 0x13,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) .id = 0x1a,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) .name = "mpe_ipred",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) .swgroup = TEGRA_SWGROUP_MPE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) .bit = 26,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) .reg = 0x328,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399) .shift = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) .def = 0x80,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404) .id = 0x1b,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) .name = "mpeamemrd",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406) .swgroup = TEGRA_SWGROUP_MPE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409) .bit = 27,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412) .reg = 0x32c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415) .def = 0x42,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418) .id = 0x1c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419) .name = "mpecsrd",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420) .swgroup = TEGRA_SWGROUP_MPE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423) .bit = 28,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426) .reg = 0x32c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427) .shift = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429) .def = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432) .id = 0x1d,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433) .name = "ppcsahbdmar",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434) .swgroup = TEGRA_SWGROUP_PPCS,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437) .bit = 29,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440) .reg = 0x344,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443) .def = 0x10,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446) .id = 0x1e,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447) .name = "ppcsahbslvr",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448) .swgroup = TEGRA_SWGROUP_PPCS,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451) .bit = 30,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454) .reg = 0x344,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455) .shift = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457) .def = 0x12,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460) .id = 0x1f,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461) .name = "satar",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462) .swgroup = TEGRA_SWGROUP_SATA,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464) .reg = 0x228,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 465) .bit = 31,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 466) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 467) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 468) .reg = 0x350,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 469) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 470) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 471) .def = 0x33,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 472) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 473) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 474) .id = 0x20,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 475) .name = "texsrd",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 476) .swgroup = TEGRA_SWGROUP_NV,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 477) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 478) .reg = 0x22c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 479) .bit = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 480) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 481) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 482) .reg = 0x338,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 483) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 484) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 485) .def = 0x13,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 486) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 487) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 488) .id = 0x21,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 489) .name = "texsrd2",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 490) .swgroup = TEGRA_SWGROUP_NV2,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 491) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 492) .reg = 0x22c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 493) .bit = 1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 494) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 495) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 496) .reg = 0x340,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 497) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 498) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 499) .def = 0x13,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 500) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 501) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 502) .id = 0x22,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 503) .name = "vdebsevr",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 504) .swgroup = TEGRA_SWGROUP_VDE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 505) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 506) .reg = 0x22c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 507) .bit = 2,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 508) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 509) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 510) .reg = 0x354,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 511) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 512) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 513) .def = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 514) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 515) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 516) .id = 0x23,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 517) .name = "vdember",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 518) .swgroup = TEGRA_SWGROUP_VDE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 519) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 520) .reg = 0x22c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 521) .bit = 3,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 522) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 523) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 524) .reg = 0x354,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 525) .shift = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 526) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 527) .def = 0xd0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 528) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 529) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 530) .id = 0x24,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 531) .name = "vdemcer",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 532) .swgroup = TEGRA_SWGROUP_VDE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 533) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 534) .reg = 0x22c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 535) .bit = 4,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 536) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 537) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 538) .reg = 0x358,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 539) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 540) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 541) .def = 0x2a,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 542) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 543) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 544) .id = 0x25,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 545) .name = "vdetper",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 546) .swgroup = TEGRA_SWGROUP_VDE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 547) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 548) .reg = 0x22c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 549) .bit = 5,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 550) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 551) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 552) .reg = 0x358,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 553) .shift = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 554) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 555) .def = 0x74,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 556) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 557) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 558) .id = 0x26,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 559) .name = "mpcorelpr",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 560) .swgroup = TEGRA_SWGROUP_MPCORELP,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 561) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 562) .reg = 0x324,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 563) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 564) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 565) .def = 0x04,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 566) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 567) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 568) .id = 0x27,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 569) .name = "mpcorer",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 570) .swgroup = TEGRA_SWGROUP_MPCORE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 571) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 572) .reg = 0x320,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 573) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 574) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 575) .def = 0x04,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 576) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 577) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 578) .id = 0x28,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 579) .name = "eppu",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 580) .swgroup = TEGRA_SWGROUP_EPP,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 581) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 582) .reg = 0x22c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 583) .bit = 8,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 584) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 585) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 586) .reg = 0x300,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 587) .shift = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 588) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 589) .def = 0x6c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 590) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 591) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 592) .id = 0x29,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 593) .name = "eppv",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 594) .swgroup = TEGRA_SWGROUP_EPP,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 595) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 596) .reg = 0x22c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 597) .bit = 9,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 598) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 599) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 600) .reg = 0x304,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 601) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 602) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 603) .def = 0x6c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 604) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 605) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 606) .id = 0x2a,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 607) .name = "eppy",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 608) .swgroup = TEGRA_SWGROUP_EPP,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 609) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 610) .reg = 0x22c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 611) .bit = 10,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 612) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 613) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 614) .reg = 0x304,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 615) .shift = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 616) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 617) .def = 0x6c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 618) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 619) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 620) .id = 0x2b,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 621) .name = "mpeunifbw",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 622) .swgroup = TEGRA_SWGROUP_MPE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 623) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 624) .reg = 0x22c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 625) .bit = 11,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 626) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 627) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 628) .reg = 0x330,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 629) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 630) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 631) .def = 0x13,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 632) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 633) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 634) .id = 0x2c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 635) .name = "viwsb",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 636) .swgroup = TEGRA_SWGROUP_VI,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 637) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 638) .reg = 0x22c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 639) .bit = 12,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 640) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 641) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 642) .reg = 0x364,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 643) .shift = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 644) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 645) .def = 0x12,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 646) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 647) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 648) .id = 0x2d,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 649) .name = "viwu",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 650) .swgroup = TEGRA_SWGROUP_VI,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 651) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 652) .reg = 0x22c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 653) .bit = 13,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 654) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 655) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 656) .reg = 0x368,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 657) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 658) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 659) .def = 0xb2,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 660) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 661) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 662) .id = 0x2e,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 663) .name = "viwv",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 664) .swgroup = TEGRA_SWGROUP_VI,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 665) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 666) .reg = 0x22c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 667) .bit = 14,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 668) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 669) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 670) .reg = 0x368,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 671) .shift = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 672) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 673) .def = 0xb2,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 674) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 675) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 676) .id = 0x2f,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 677) .name = "viwy",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 678) .swgroup = TEGRA_SWGROUP_VI,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 679) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 680) .reg = 0x22c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 681) .bit = 15,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 682) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 683) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 684) .reg = 0x36c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 685) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 686) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 687) .def = 0x12,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 688) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 689) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 690) .id = 0x30,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 691) .name = "g2dw",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 692) .swgroup = TEGRA_SWGROUP_G2,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 693) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 694) .reg = 0x22c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 695) .bit = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 696) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 697) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 698) .reg = 0x30c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 699) .shift = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 700) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 701) .def = 0x9,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 702) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 703) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 704) .id = 0x31,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 705) .name = "afiw",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 706) .swgroup = TEGRA_SWGROUP_AFI,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 707) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 708) .reg = 0x22c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 709) .bit = 17,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 710) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 711) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 712) .reg = 0x2e0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 713) .shift = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 714) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 715) .def = 0x0c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 716) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 717) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 718) .id = 0x32,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 719) .name = "avpcarm7w",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 720) .swgroup = TEGRA_SWGROUP_AVPC,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 721) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 722) .reg = 0x22c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 723) .bit = 18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 724) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 725) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 726) .reg = 0x2e4,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 727) .shift = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 728) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 729) .def = 0x0e,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 730) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 731) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 732) .id = 0x33,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 733) .name = "fdcdwr",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 734) .swgroup = TEGRA_SWGROUP_NV,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 735) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 736) .reg = 0x22c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 737) .bit = 19,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 738) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 739) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 740) .reg = 0x338,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 741) .shift = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 742) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 743) .def = 0x0a,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 744) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 745) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 746) .id = 0x34,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 747) .name = "fdcdwr2",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 748) .swgroup = TEGRA_SWGROUP_NV2,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 749) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 750) .reg = 0x22c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 751) .bit = 20,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 752) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 753) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 754) .reg = 0x340,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 755) .shift = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 756) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 757) .def = 0x0a,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 758) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 759) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 760) .id = 0x35,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 761) .name = "hdaw",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 762) .swgroup = TEGRA_SWGROUP_HDA,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 763) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 764) .reg = 0x22c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 765) .bit = 21,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 766) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 767) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 768) .reg = 0x318,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 769) .shift = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 770) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 771) .def = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 772) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 773) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 774) .id = 0x36,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 775) .name = "host1xw",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 776) .swgroup = TEGRA_SWGROUP_HC,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 777) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 778) .reg = 0x22c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 779) .bit = 22,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 780) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 781) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 782) .reg = 0x314,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 783) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 784) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 785) .def = 0x10,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 786) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 787) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 788) .id = 0x37,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 789) .name = "ispw",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 790) .swgroup = TEGRA_SWGROUP_ISP,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 791) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 792) .reg = 0x22c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 793) .bit = 23,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 794) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 795) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 796) .reg = 0x31c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 797) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 798) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 799) .def = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 800) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 801) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 802) .id = 0x38,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 803) .name = "mpcorelpw",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 804) .swgroup = TEGRA_SWGROUP_MPCORELP,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 805) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 806) .reg = 0x324,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 807) .shift = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 808) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 809) .def = 0x0e,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 810) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 811) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 812) .id = 0x39,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 813) .name = "mpcorew",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 814) .swgroup = TEGRA_SWGROUP_MPCORE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 815) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 816) .reg = 0x320,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 817) .shift = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 818) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 819) .def = 0x0e,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 820) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 821) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 822) .id = 0x3a,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 823) .name = "mpecswr",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 824) .swgroup = TEGRA_SWGROUP_MPE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 825) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 826) .reg = 0x22c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 827) .bit = 26,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 828) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 829) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 830) .reg = 0x330,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 831) .shift = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 832) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 833) .def = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 834) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 835) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 836) .id = 0x3b,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 837) .name = "ppcsahbdmaw",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 838) .swgroup = TEGRA_SWGROUP_PPCS,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 839) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 840) .reg = 0x22c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 841) .bit = 27,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 842) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 843) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 844) .reg = 0x348,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 845) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 846) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 847) .def = 0x10,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 848) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 849) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 850) .id = 0x3c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 851) .name = "ppcsahbslvw",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 852) .swgroup = TEGRA_SWGROUP_PPCS,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 853) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 854) .reg = 0x22c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 855) .bit = 28,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 856) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 857) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 858) .reg = 0x348,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 859) .shift = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 860) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 861) .def = 0x06,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 862) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 863) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 864) .id = 0x3d,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 865) .name = "sataw",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 866) .swgroup = TEGRA_SWGROUP_SATA,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 867) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 868) .reg = 0x22c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 869) .bit = 29,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 870) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 871) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 872) .reg = 0x350,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 873) .shift = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 874) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 875) .def = 0x33,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 876) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 877) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 878) .id = 0x3e,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 879) .name = "vdebsevw",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 880) .swgroup = TEGRA_SWGROUP_VDE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 881) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 882) .reg = 0x22c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 883) .bit = 30,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 884) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 885) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 886) .reg = 0x35c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 887) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 888) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 889) .def = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 890) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 891) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 892) .id = 0x3f,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 893) .name = "vdedbgw",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 894) .swgroup = TEGRA_SWGROUP_VDE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 895) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 896) .reg = 0x22c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 897) .bit = 31,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 898) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 899) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 900) .reg = 0x35c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 901) .shift = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 902) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 903) .def = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 904) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 905) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 906) .id = 0x40,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 907) .name = "vdembew",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 908) .swgroup = TEGRA_SWGROUP_VDE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 909) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 910) .reg = 0x230,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 911) .bit = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 912) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 913) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 914) .reg = 0x360,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 915) .shift = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 916) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 917) .def = 0x42,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 918) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 919) }, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 920) .id = 0x41,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 921) .name = "vdetpmw",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 922) .swgroup = TEGRA_SWGROUP_VDE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 923) .smmu = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 924) .reg = 0x230,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 925) .bit = 1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 926) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 927) .la = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 928) .reg = 0x360,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 929) .shift = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 930) .mask = 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 931) .def = 0x2a,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 932) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 933) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 934) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 935)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 936) static const struct tegra_smmu_swgroup tegra30_swgroups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 937) { .name = "dc", .swgroup = TEGRA_SWGROUP_DC, .reg = 0x240 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 938) { .name = "dcb", .swgroup = TEGRA_SWGROUP_DCB, .reg = 0x244 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 939) { .name = "epp", .swgroup = TEGRA_SWGROUP_EPP, .reg = 0x248 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 940) { .name = "g2", .swgroup = TEGRA_SWGROUP_G2, .reg = 0x24c },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 941) { .name = "mpe", .swgroup = TEGRA_SWGROUP_MPE, .reg = 0x264 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 942) { .name = "vi", .swgroup = TEGRA_SWGROUP_VI, .reg = 0x280 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 943) { .name = "afi", .swgroup = TEGRA_SWGROUP_AFI, .reg = 0x238 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 944) { .name = "avpc", .swgroup = TEGRA_SWGROUP_AVPC, .reg = 0x23c },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 945) { .name = "nv", .swgroup = TEGRA_SWGROUP_NV, .reg = 0x268 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 946) { .name = "nv2", .swgroup = TEGRA_SWGROUP_NV2, .reg = 0x26c },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 947) { .name = "hda", .swgroup = TEGRA_SWGROUP_HDA, .reg = 0x254 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 948) { .name = "hc", .swgroup = TEGRA_SWGROUP_HC, .reg = 0x250 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 949) { .name = "ppcs", .swgroup = TEGRA_SWGROUP_PPCS, .reg = 0x270 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 950) { .name = "sata", .swgroup = TEGRA_SWGROUP_SATA, .reg = 0x278 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 951) { .name = "vde", .swgroup = TEGRA_SWGROUP_VDE, .reg = 0x27c },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 952) { .name = "isp", .swgroup = TEGRA_SWGROUP_ISP, .reg = 0x258 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 953) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 954)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 955) static const unsigned int tegra30_group_drm[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 956) TEGRA_SWGROUP_DC,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 957) TEGRA_SWGROUP_DCB,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 958) TEGRA_SWGROUP_G2,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 959) TEGRA_SWGROUP_NV,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 960) TEGRA_SWGROUP_NV2,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 961) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 962)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 963) static const struct tegra_smmu_group_soc tegra30_groups[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 964) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 965) .name = "drm",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 966) .swgroups = tegra30_group_drm,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 967) .num_swgroups = ARRAY_SIZE(tegra30_group_drm),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 968) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 969) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 970)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 971) static const struct tegra_smmu_soc tegra30_smmu_soc = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 972) .clients = tegra30_mc_clients,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 973) .num_clients = ARRAY_SIZE(tegra30_mc_clients),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 974) .swgroups = tegra30_swgroups,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 975) .num_swgroups = ARRAY_SIZE(tegra30_swgroups),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 976) .groups = tegra30_groups,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 977) .num_groups = ARRAY_SIZE(tegra30_groups),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 978) .supports_round_robin_arbitration = false,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 979) .supports_request_limit = false,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 980) .num_tlb_lines = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 981) .num_asids = 4,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 982) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 983)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 984) #define TEGRA30_MC_RESET(_name, _control, _status, _bit) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 985) { \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 986) .name = #_name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 987) .id = TEGRA30_MC_RESET_##_name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 988) .control = _control, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 989) .status = _status, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 990) .bit = _bit, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 991) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 992)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 993) static const struct tegra_mc_reset tegra30_mc_resets[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 994) TEGRA30_MC_RESET(AFI, 0x200, 0x204, 0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 995) TEGRA30_MC_RESET(AVPC, 0x200, 0x204, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 996) TEGRA30_MC_RESET(DC, 0x200, 0x204, 2),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 997) TEGRA30_MC_RESET(DCB, 0x200, 0x204, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 998) TEGRA30_MC_RESET(EPP, 0x200, 0x204, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 999) TEGRA30_MC_RESET(2D, 0x200, 0x204, 5),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1000) TEGRA30_MC_RESET(HC, 0x200, 0x204, 6),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1001) TEGRA30_MC_RESET(HDA, 0x200, 0x204, 7),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1002) TEGRA30_MC_RESET(ISP, 0x200, 0x204, 8),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1003) TEGRA30_MC_RESET(MPCORE, 0x200, 0x204, 9),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1004) TEGRA30_MC_RESET(MPCORELP, 0x200, 0x204, 10),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1005) TEGRA30_MC_RESET(MPE, 0x200, 0x204, 11),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1006) TEGRA30_MC_RESET(3D, 0x200, 0x204, 12),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1007) TEGRA30_MC_RESET(3D2, 0x200, 0x204, 13),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1008) TEGRA30_MC_RESET(PPCS, 0x200, 0x204, 14),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1009) TEGRA30_MC_RESET(SATA, 0x200, 0x204, 15),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1010) TEGRA30_MC_RESET(VDE, 0x200, 0x204, 16),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1011) TEGRA30_MC_RESET(VI, 0x200, 0x204, 17),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1012) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1013)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1014) const struct tegra_mc_soc tegra30_mc_soc = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1015) .clients = tegra30_mc_clients,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1016) .num_clients = ARRAY_SIZE(tegra30_mc_clients),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1017) .num_address_bits = 32,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1018) .atom_size = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1019) .client_id_mask = 0x7f,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1020) .smmu = &tegra30_smmu_soc,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1021) .emem_regs = tegra30_mc_emem_regs,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1022) .num_emem_regs = ARRAY_SIZE(tegra30_mc_emem_regs),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1023) .intmask = MC_INT_INVALID_SMMU_PAGE | MC_INT_SECURITY_VIOLATION |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1024) MC_INT_DECERR_EMEM,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1025) .reset_ops = &tegra_mc_reset_ops_common,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1026) .resets = tegra30_mc_resets,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1027) .num_resets = ARRAY_SIZE(tegra30_mc_resets),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1028) };