1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright (C) 2021-2022, NVIDIA CORPORATION. All rights reserved.
6 #include <soc/tegra/mc.h>
8 #include <dt-bindings/memory/tegra234-mc.h>
12 static const struct tegra_mc_client tegra234_mc_clients[] = {
14 .id = TEGRA234_MEMORY_CLIENT_MGBEARD,
16 .sid = TEGRA234_SID_MGBE,
24 .id = TEGRA234_MEMORY_CLIENT_MGBEBRD,
26 .sid = TEGRA234_SID_MGBE_VF1,
34 .id = TEGRA234_MEMORY_CLIENT_MGBECRD,
36 .sid = TEGRA234_SID_MGBE_VF2,
44 .id = TEGRA234_MEMORY_CLIENT_MGBEDRD,
46 .sid = TEGRA234_SID_MGBE_VF3,
54 .id = TEGRA234_MEMORY_CLIENT_MGBEAWR,
56 .sid = TEGRA234_SID_MGBE,
64 .id = TEGRA234_MEMORY_CLIENT_MGBEBWR,
66 .sid = TEGRA234_SID_MGBE_VF1,
74 .id = TEGRA234_MEMORY_CLIENT_MGBECWR,
76 .sid = TEGRA234_SID_MGBE_VF2,
84 .id = TEGRA234_MEMORY_CLIENT_SDMMCRAB,
86 .sid = TEGRA234_SID_SDMMC4,
94 .id = TEGRA234_MEMORY_CLIENT_MGBEDWR,
96 .sid = TEGRA234_SID_MGBE_VF3,
104 .id = TEGRA234_MEMORY_CLIENT_SDMMCWAB,
106 .sid = TEGRA234_SID_SDMMC4,
114 .id = TEGRA234_MEMORY_CLIENT_BPMPR,
116 .sid = TEGRA234_SID_BPMP,
124 .id = TEGRA234_MEMORY_CLIENT_BPMPW,
126 .sid = TEGRA234_SID_BPMP,
134 .id = TEGRA234_MEMORY_CLIENT_BPMPDMAR,
136 .sid = TEGRA234_SID_BPMP,
144 .id = TEGRA234_MEMORY_CLIENT_BPMPDMAW,
146 .sid = TEGRA234_SID_BPMP,
154 .id = TEGRA234_MEMORY_CLIENT_APEDMAR,
156 .sid = TEGRA234_SID_APE,
164 .id = TEGRA234_MEMORY_CLIENT_APEDMAW,
166 .sid = TEGRA234_SID_APE,
176 const struct tegra_mc_soc tegra234_mc_soc = {
177 .num_clients = ARRAY_SIZE(tegra234_mc_clients),
178 .clients = tegra234_mc_clients,
179 .num_address_bits = 40,
181 .client_id_mask = 0x1ff,
182 .intmask = MC_INT_DECERR_ROUTE_SANITY |
183 MC_INT_DECERR_GENERALIZED_CARVEOUT | MC_INT_DECERR_MTS |
184 MC_INT_SECERR_SEC | MC_INT_DECERR_VPR |
185 MC_INT_SECURITY_VIOLATION | MC_INT_DECERR_EMEM,
186 .has_addr_hi_reg = true,
187 .ops = &tegra186_mc_ops,
188 .ch_intmask = 0x0000ff00,
189 .global_intstatus_channel_shift = 8,