xref: /openbmc/linux/drivers/memory/tegra/tegra234.c (revision f1773a10)
172c81bb6SThierry Reding // SPDX-License-Identifier: GPL-2.0-only
272c81bb6SThierry Reding /*
39a38cb27SSumit Gupta  * Copyright (C) 2022-2023, NVIDIA CORPORATION.  All rights reserved.
472c81bb6SThierry Reding  */
572c81bb6SThierry Reding 
672c81bb6SThierry Reding #include <soc/tegra/mc.h>
772c81bb6SThierry Reding 
872c81bb6SThierry Reding #include <dt-bindings/memory/tegra234-mc.h>
99a38cb27SSumit Gupta #include <linux/interconnect.h>
109a38cb27SSumit Gupta #include <linux/tegra-icc.h>
1172c81bb6SThierry Reding 
129a38cb27SSumit Gupta #include <soc/tegra/bpmp.h>
1372c81bb6SThierry Reding #include "mc.h"
1472c81bb6SThierry Reding 
156d0c4aa5SSumit Gupta /*
166d0c4aa5SSumit Gupta  * MC Client entries are sorted in the increasing order of the
176d0c4aa5SSumit Gupta  * override and security register offsets.
186d0c4aa5SSumit Gupta  */
1972c81bb6SThierry Reding static const struct tegra_mc_client tegra234_mc_clients[] = {
2072c81bb6SThierry Reding 	{
21aecc83f1SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_HDAR,
22aecc83f1SSumit Gupta 		.name = "hdar",
23aecc83f1SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_HDA,
24aecc83f1SSumit Gupta 		.type = TEGRA_ICC_ISO_AUDIO,
25aecc83f1SSumit Gupta 		.sid = TEGRA234_SID_HDA,
26aecc83f1SSumit Gupta 		.regs = {
27aecc83f1SSumit Gupta 			.sid = {
28aecc83f1SSumit Gupta 				.override = 0xa8,
29aecc83f1SSumit Gupta 				.security = 0xac,
30aecc83f1SSumit Gupta 			},
31aecc83f1SSumit Gupta 		},
32aecc83f1SSumit Gupta 	}, {
33b18e5259SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_NVENCSRD,
34b18e5259SSumit Gupta 		.name = "nvencsrd",
35b18e5259SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_NVENC,
36b18e5259SSumit Gupta 		.type = TEGRA_ICC_NISO,
37b18e5259SSumit Gupta 		.sid = TEGRA234_SID_NVENC,
38b18e5259SSumit Gupta 		.regs = {
39b18e5259SSumit Gupta 			.sid = {
40b18e5259SSumit Gupta 				.override = 0xe0,
41b18e5259SSumit Gupta 				.security = 0xe4,
42b18e5259SSumit Gupta 			},
43b18e5259SSumit Gupta 		},
44b18e5259SSumit Gupta 	}, {
456d0c4aa5SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_PCIE6AR,
466d0c4aa5SSumit Gupta 		.name = "pcie6ar",
476d0c4aa5SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_PCIE_6,
486d0c4aa5SSumit Gupta 		.type = TEGRA_ICC_NISO,
496d0c4aa5SSumit Gupta 		.sid = TEGRA234_SID_PCIE6,
506d0c4aa5SSumit Gupta 		.regs = {
516d0c4aa5SSumit Gupta 			.sid = {
526d0c4aa5SSumit Gupta 				.override = 0x140,
536d0c4aa5SSumit Gupta 				.security = 0x144,
546d0c4aa5SSumit Gupta 			},
556d0c4aa5SSumit Gupta 		},
566d0c4aa5SSumit Gupta 	}, {
576d0c4aa5SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_PCIE6AW,
586d0c4aa5SSumit Gupta 		.name = "pcie6aw",
596d0c4aa5SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_PCIE_6,
606d0c4aa5SSumit Gupta 		.type = TEGRA_ICC_NISO,
616d0c4aa5SSumit Gupta 		.sid = TEGRA234_SID_PCIE6,
626d0c4aa5SSumit Gupta 		.regs = {
636d0c4aa5SSumit Gupta 			.sid = {
646d0c4aa5SSumit Gupta 				.override = 0x148,
656d0c4aa5SSumit Gupta 				.security = 0x14c,
666d0c4aa5SSumit Gupta 			},
676d0c4aa5SSumit Gupta 		},
686d0c4aa5SSumit Gupta 	}, {
696d0c4aa5SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_PCIE7AR,
706d0c4aa5SSumit Gupta 		.name = "pcie7ar",
716d0c4aa5SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_PCIE_7,
726d0c4aa5SSumit Gupta 		.type = TEGRA_ICC_NISO,
736d0c4aa5SSumit Gupta 		.sid = TEGRA234_SID_PCIE7,
746d0c4aa5SSumit Gupta 		.regs = {
756d0c4aa5SSumit Gupta 			.sid = {
766d0c4aa5SSumit Gupta 				.override = 0x150,
776d0c4aa5SSumit Gupta 				.security = 0x154,
786d0c4aa5SSumit Gupta 			},
796d0c4aa5SSumit Gupta 		},
806d0c4aa5SSumit Gupta 	}, {
81b18e5259SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_NVENCSWR,
82b18e5259SSumit Gupta 		.name = "nvencswr",
83b18e5259SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_NVENC,
84b18e5259SSumit Gupta 		.type = TEGRA_ICC_NISO,
85b18e5259SSumit Gupta 		.sid = TEGRA234_SID_NVENC,
86b18e5259SSumit Gupta 		.regs = {
87b18e5259SSumit Gupta 			.sid = {
88b18e5259SSumit Gupta 				.override = 0x158,
89b18e5259SSumit Gupta 				.security = 0x15c,
90b18e5259SSumit Gupta 			},
91b18e5259SSumit Gupta 		},
92b18e5259SSumit Gupta 	}, {
936d0c4aa5SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_DLA0RDB,
946d0c4aa5SSumit Gupta 		.name = "dla0rdb",
956d0c4aa5SSumit Gupta 		.sid = TEGRA234_SID_NVDLA0,
966d0c4aa5SSumit Gupta 		.regs = {
976d0c4aa5SSumit Gupta 			.sid = {
986d0c4aa5SSumit Gupta 				.override = 0x160,
996d0c4aa5SSumit Gupta 				.security = 0x164,
1006d0c4aa5SSumit Gupta 			},
1016d0c4aa5SSumit Gupta 		},
1026d0c4aa5SSumit Gupta 	}, {
1036d0c4aa5SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_DLA0RDB1,
1046d0c4aa5SSumit Gupta 		.name = "dla0rdb1",
1056d0c4aa5SSumit Gupta 		.sid = TEGRA234_SID_NVDLA0,
1066d0c4aa5SSumit Gupta 		.regs = {
1076d0c4aa5SSumit Gupta 			.sid = {
1086d0c4aa5SSumit Gupta 				.override = 0x168,
1096d0c4aa5SSumit Gupta 				.security = 0x16c,
1106d0c4aa5SSumit Gupta 			},
1116d0c4aa5SSumit Gupta 		},
1126d0c4aa5SSumit Gupta 	}, {
1136d0c4aa5SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_DLA0WRB,
1146d0c4aa5SSumit Gupta 		.name = "dla0wrb",
1156d0c4aa5SSumit Gupta 		.sid = TEGRA234_SID_NVDLA0,
1166d0c4aa5SSumit Gupta 		.regs = {
1176d0c4aa5SSumit Gupta 			.sid = {
1186d0c4aa5SSumit Gupta 				.override = 0x170,
1196d0c4aa5SSumit Gupta 				.security = 0x174,
1206d0c4aa5SSumit Gupta 			},
1216d0c4aa5SSumit Gupta 		},
1226d0c4aa5SSumit Gupta 	}, {
1236d0c4aa5SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_DLA1RDB,
124*f1773a10SJon Hunter 		.name = "dla1rdb",
1256d0c4aa5SSumit Gupta 		.sid = TEGRA234_SID_NVDLA1,
1266d0c4aa5SSumit Gupta 		.regs = {
1276d0c4aa5SSumit Gupta 			.sid = {
1286d0c4aa5SSumit Gupta 				.override = 0x178,
1296d0c4aa5SSumit Gupta 				.security = 0x17c,
1306d0c4aa5SSumit Gupta 			},
1316d0c4aa5SSumit Gupta 		},
1326d0c4aa5SSumit Gupta 	}, {
1336d0c4aa5SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_PCIE7AW,
1346d0c4aa5SSumit Gupta 		.name = "pcie7aw",
1356d0c4aa5SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_PCIE_7,
1366d0c4aa5SSumit Gupta 		.type = TEGRA_ICC_NISO,
1376d0c4aa5SSumit Gupta 		.sid = TEGRA234_SID_PCIE7,
1386d0c4aa5SSumit Gupta 		.regs = {
1396d0c4aa5SSumit Gupta 			.sid = {
1406d0c4aa5SSumit Gupta 				.override = 0x180,
1416d0c4aa5SSumit Gupta 				.security = 0x184,
1426d0c4aa5SSumit Gupta 			},
1436d0c4aa5SSumit Gupta 		},
1446d0c4aa5SSumit Gupta 	}, {
1456d0c4aa5SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_PCIE8AR,
1466d0c4aa5SSumit Gupta 		.name = "pcie8ar",
1476d0c4aa5SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_PCIE_8,
1486d0c4aa5SSumit Gupta 		.type = TEGRA_ICC_NISO,
1496d0c4aa5SSumit Gupta 		.sid = TEGRA234_SID_PCIE8,
1506d0c4aa5SSumit Gupta 		.regs = {
1516d0c4aa5SSumit Gupta 			.sid = {
1526d0c4aa5SSumit Gupta 				.override = 0x190,
1536d0c4aa5SSumit Gupta 				.security = 0x194,
1546d0c4aa5SSumit Gupta 			},
1556d0c4aa5SSumit Gupta 		},
1566d0c4aa5SSumit Gupta 	}, {
157aecc83f1SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_HDAW,
158aecc83f1SSumit Gupta 		.name = "hdaw",
159aecc83f1SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_HDA,
160aecc83f1SSumit Gupta 		.type = TEGRA_ICC_ISO_AUDIO,
161aecc83f1SSumit Gupta 		.sid = TEGRA234_SID_HDA,
162aecc83f1SSumit Gupta 		.regs = {
163aecc83f1SSumit Gupta 			.sid = {
164aecc83f1SSumit Gupta 				.override = 0x1a8,
165aecc83f1SSumit Gupta 				.security = 0x1ac,
166aecc83f1SSumit Gupta 			},
167aecc83f1SSumit Gupta 		},
168aecc83f1SSumit Gupta 	}, {
1696d0c4aa5SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_PCIE8AW,
1706d0c4aa5SSumit Gupta 		.name = "pcie8aw",
1716d0c4aa5SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_PCIE_8,
1726d0c4aa5SSumit Gupta 		.type = TEGRA_ICC_NISO,
1736d0c4aa5SSumit Gupta 		.sid = TEGRA234_SID_PCIE8,
1746d0c4aa5SSumit Gupta 		.regs = {
1756d0c4aa5SSumit Gupta 			.sid = {
1766d0c4aa5SSumit Gupta 				.override = 0x1d8,
1776d0c4aa5SSumit Gupta 				.security = 0x1dc,
1786d0c4aa5SSumit Gupta 			},
1796d0c4aa5SSumit Gupta 		},
1806d0c4aa5SSumit Gupta 	}, {
1816d0c4aa5SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_PCIE9AR,
1826d0c4aa5SSumit Gupta 		.name = "pcie9ar",
1836d0c4aa5SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_PCIE_9,
1846d0c4aa5SSumit Gupta 		.type = TEGRA_ICC_NISO,
1856d0c4aa5SSumit Gupta 		.sid = TEGRA234_SID_PCIE9,
1866d0c4aa5SSumit Gupta 		.regs = {
1876d0c4aa5SSumit Gupta 			.sid = {
1886d0c4aa5SSumit Gupta 				.override = 0x1e0,
1896d0c4aa5SSumit Gupta 				.security = 0x1e4,
1906d0c4aa5SSumit Gupta 			},
1916d0c4aa5SSumit Gupta 		},
1926d0c4aa5SSumit Gupta 	}, {
1936d0c4aa5SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_PCIE6AR1,
1946d0c4aa5SSumit Gupta 		.name = "pcie6ar1",
1956d0c4aa5SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_PCIE_6,
1966d0c4aa5SSumit Gupta 		.type = TEGRA_ICC_NISO,
1976d0c4aa5SSumit Gupta 		.sid = TEGRA234_SID_PCIE6,
1986d0c4aa5SSumit Gupta 		.regs = {
1996d0c4aa5SSumit Gupta 			.sid = {
2006d0c4aa5SSumit Gupta 				.override = 0x1e8,
2016d0c4aa5SSumit Gupta 				.security = 0x1ec,
2026d0c4aa5SSumit Gupta 			},
2036d0c4aa5SSumit Gupta 		},
2046d0c4aa5SSumit Gupta 	}, {
2056d0c4aa5SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_PCIE9AW,
2066d0c4aa5SSumit Gupta 		.name = "pcie9aw",
2076d0c4aa5SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_PCIE_9,
2086d0c4aa5SSumit Gupta 		.type = TEGRA_ICC_NISO,
2096d0c4aa5SSumit Gupta 		.sid = TEGRA234_SID_PCIE9,
2106d0c4aa5SSumit Gupta 		.regs = {
2116d0c4aa5SSumit Gupta 			.sid = {
2126d0c4aa5SSumit Gupta 				.override = 0x1f0,
2136d0c4aa5SSumit Gupta 				.security = 0x1f4,
2146d0c4aa5SSumit Gupta 			},
2156d0c4aa5SSumit Gupta 		},
2166d0c4aa5SSumit Gupta 	}, {
2176d0c4aa5SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_PCIE10AR,
2186d0c4aa5SSumit Gupta 		.name = "pcie10ar",
2196d0c4aa5SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_PCIE_10,
2206d0c4aa5SSumit Gupta 		.type = TEGRA_ICC_NISO,
2216d0c4aa5SSumit Gupta 		.sid = TEGRA234_SID_PCIE10,
2226d0c4aa5SSumit Gupta 		.regs = {
2236d0c4aa5SSumit Gupta 			.sid = {
2246d0c4aa5SSumit Gupta 				.override = 0x1f8,
2256d0c4aa5SSumit Gupta 				.security = 0x1fc,
2266d0c4aa5SSumit Gupta 			},
2276d0c4aa5SSumit Gupta 		},
2286d0c4aa5SSumit Gupta 	}, {
2296d0c4aa5SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_PCIE10AW,
2306d0c4aa5SSumit Gupta 		.name = "pcie10aw",
2316d0c4aa5SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_PCIE_10,
2326d0c4aa5SSumit Gupta 		.type = TEGRA_ICC_NISO,
2336d0c4aa5SSumit Gupta 		.sid = TEGRA234_SID_PCIE10,
2346d0c4aa5SSumit Gupta 		.regs = {
2356d0c4aa5SSumit Gupta 			.sid = {
2366d0c4aa5SSumit Gupta 				.override = 0x200,
2376d0c4aa5SSumit Gupta 				.security = 0x204,
2386d0c4aa5SSumit Gupta 			},
2396d0c4aa5SSumit Gupta 		},
2406d0c4aa5SSumit Gupta 	}, {
2416d0c4aa5SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_PCIE10AR1,
2426d0c4aa5SSumit Gupta 		.name = "pcie10ar1",
2436d0c4aa5SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_PCIE_10,
2446d0c4aa5SSumit Gupta 		.type = TEGRA_ICC_NISO,
2456d0c4aa5SSumit Gupta 		.sid = TEGRA234_SID_PCIE10,
2466d0c4aa5SSumit Gupta 		.regs = {
2476d0c4aa5SSumit Gupta 			.sid = {
2486d0c4aa5SSumit Gupta 				.override = 0x240,
2496d0c4aa5SSumit Gupta 				.security = 0x244,
2506d0c4aa5SSumit Gupta 			},
2516d0c4aa5SSumit Gupta 		},
2526d0c4aa5SSumit Gupta 	}, {
2536d0c4aa5SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_PCIE7AR1,
2546d0c4aa5SSumit Gupta 		.name = "pcie7ar1",
2556d0c4aa5SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_PCIE_7,
2566d0c4aa5SSumit Gupta 		.type = TEGRA_ICC_NISO,
2576d0c4aa5SSumit Gupta 		.sid = TEGRA234_SID_PCIE7,
2586d0c4aa5SSumit Gupta 		.regs = {
2596d0c4aa5SSumit Gupta 			.sid = {
2606d0c4aa5SSumit Gupta 				.override = 0x248,
2616d0c4aa5SSumit Gupta 				.security = 0x24c,
2626d0c4aa5SSumit Gupta 			},
2636d0c4aa5SSumit Gupta 		},
2646d0c4aa5SSumit Gupta 	}, {
2655060237bSThierry Reding 		.id = TEGRA234_MEMORY_CLIENT_MGBEARD,
2665060237bSThierry Reding 		.name = "mgbeard",
2679a38cb27SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_EQOS,
2689a38cb27SSumit Gupta 		.type = TEGRA_ICC_NISO,
2695060237bSThierry Reding 		.sid = TEGRA234_SID_MGBE,
2705060237bSThierry Reding 		.regs = {
2715060237bSThierry Reding 			.sid = {
2725060237bSThierry Reding 				.override = 0x2c0,
2735060237bSThierry Reding 				.security = 0x2c4,
2745060237bSThierry Reding 			},
2755060237bSThierry Reding 		},
2765060237bSThierry Reding 	}, {
2775060237bSThierry Reding 		.id = TEGRA234_MEMORY_CLIENT_MGBEBRD,
2785060237bSThierry Reding 		.name = "mgbebrd",
2799a38cb27SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_EQOS,
2809a38cb27SSumit Gupta 		.type = TEGRA_ICC_NISO,
2815060237bSThierry Reding 		.sid = TEGRA234_SID_MGBE_VF1,
2825060237bSThierry Reding 		.regs = {
2835060237bSThierry Reding 			.sid = {
2845060237bSThierry Reding 				.override = 0x2c8,
2855060237bSThierry Reding 				.security = 0x2cc,
2865060237bSThierry Reding 			},
2875060237bSThierry Reding 		},
2885060237bSThierry Reding 	}, {
2895060237bSThierry Reding 		.id = TEGRA234_MEMORY_CLIENT_MGBECRD,
2905060237bSThierry Reding 		.name = "mgbecrd",
2919a38cb27SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_EQOS,
2929a38cb27SSumit Gupta 		.type = TEGRA_ICC_NISO,
2935060237bSThierry Reding 		.sid = TEGRA234_SID_MGBE_VF2,
2945060237bSThierry Reding 		.regs = {
2955060237bSThierry Reding 			.sid = {
2965060237bSThierry Reding 				.override = 0x2d0,
2975060237bSThierry Reding 				.security = 0x2d4,
2985060237bSThierry Reding 			},
2995060237bSThierry Reding 		},
3005060237bSThierry Reding 	}, {
3015060237bSThierry Reding 		.id = TEGRA234_MEMORY_CLIENT_MGBEDRD,
3025060237bSThierry Reding 		.name = "mgbedrd",
3039a38cb27SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_EQOS,
3049a38cb27SSumit Gupta 		.type = TEGRA_ICC_NISO,
3055060237bSThierry Reding 		.sid = TEGRA234_SID_MGBE_VF3,
3065060237bSThierry Reding 		.regs = {
3075060237bSThierry Reding 			.sid = {
3085060237bSThierry Reding 				.override = 0x2d8,
3095060237bSThierry Reding 				.security = 0x2dc,
3105060237bSThierry Reding 			},
3115060237bSThierry Reding 		},
3125060237bSThierry Reding 	}, {
3135060237bSThierry Reding 		.id = TEGRA234_MEMORY_CLIENT_MGBEAWR,
3149a38cb27SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_EQOS,
3159a38cb27SSumit Gupta 		.type = TEGRA_ICC_NISO,
3165060237bSThierry Reding 		.name = "mgbeawr",
3175060237bSThierry Reding 		.sid = TEGRA234_SID_MGBE,
3185060237bSThierry Reding 		.regs = {
3195060237bSThierry Reding 			.sid = {
3205060237bSThierry Reding 				.override = 0x2e0,
3215060237bSThierry Reding 				.security = 0x2e4,
3225060237bSThierry Reding 			},
3235060237bSThierry Reding 		},
3245060237bSThierry Reding 	}, {
3255060237bSThierry Reding 		.id = TEGRA234_MEMORY_CLIENT_MGBEBWR,
3265060237bSThierry Reding 		.name = "mgbebwr",
3279a38cb27SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_EQOS,
3289a38cb27SSumit Gupta 		.type = TEGRA_ICC_NISO,
3295060237bSThierry Reding 		.sid = TEGRA234_SID_MGBE_VF1,
3305060237bSThierry Reding 		.regs = {
3315060237bSThierry Reding 			.sid = {
3325060237bSThierry Reding 				.override = 0x2f8,
3335060237bSThierry Reding 				.security = 0x2fc,
3345060237bSThierry Reding 			},
3355060237bSThierry Reding 		},
3365060237bSThierry Reding 	}, {
3375060237bSThierry Reding 		.id = TEGRA234_MEMORY_CLIENT_MGBECWR,
3385060237bSThierry Reding 		.name = "mgbecwr",
3399a38cb27SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_EQOS,
3409a38cb27SSumit Gupta 		.type = TEGRA_ICC_NISO,
3415060237bSThierry Reding 		.sid = TEGRA234_SID_MGBE_VF2,
3425060237bSThierry Reding 		.regs = {
3435060237bSThierry Reding 			.sid = {
3445060237bSThierry Reding 				.override = 0x308,
3455060237bSThierry Reding 				.security = 0x30c,
3465060237bSThierry Reding 			},
3475060237bSThierry Reding 		},
3485060237bSThierry Reding 	}, {
34972c81bb6SThierry Reding 		.id = TEGRA234_MEMORY_CLIENT_SDMMCRAB,
35072c81bb6SThierry Reding 		.name = "sdmmcrab",
3519a38cb27SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_SDMMC_4,
3529a38cb27SSumit Gupta 		.type = TEGRA_ICC_NISO,
35372c81bb6SThierry Reding 		.sid = TEGRA234_SID_SDMMC4,
35472c81bb6SThierry Reding 		.regs = {
35572c81bb6SThierry Reding 			.sid = {
35672c81bb6SThierry Reding 				.override = 0x318,
35772c81bb6SThierry Reding 				.security = 0x31c,
35872c81bb6SThierry Reding 			},
35972c81bb6SThierry Reding 		},
36072c81bb6SThierry Reding 	}, {
3615060237bSThierry Reding 		.id = TEGRA234_MEMORY_CLIENT_MGBEDWR,
3625060237bSThierry Reding 		.name = "mgbedwr",
3639a38cb27SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_EQOS,
3649a38cb27SSumit Gupta 		.type = TEGRA_ICC_NISO,
3655060237bSThierry Reding 		.sid = TEGRA234_SID_MGBE_VF3,
3665060237bSThierry Reding 		.regs = {
3675060237bSThierry Reding 			.sid = {
3685060237bSThierry Reding 				.override = 0x328,
3695060237bSThierry Reding 				.security = 0x32c,
3705060237bSThierry Reding 			},
3715060237bSThierry Reding 		},
3725060237bSThierry Reding 	}, {
37372c81bb6SThierry Reding 		.id = TEGRA234_MEMORY_CLIENT_SDMMCWAB,
37472c81bb6SThierry Reding 		.name = "sdmmcwab",
3759a38cb27SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_SDMMC_4,
3769a38cb27SSumit Gupta 		.type = TEGRA_ICC_NISO,
37772c81bb6SThierry Reding 		.sid = TEGRA234_SID_SDMMC4,
37872c81bb6SThierry Reding 		.regs = {
37972c81bb6SThierry Reding 			.sid = {
38072c81bb6SThierry Reding 				.override = 0x338,
38172c81bb6SThierry Reding 				.security = 0x33c,
38272c81bb6SThierry Reding 			},
38372c81bb6SThierry Reding 		},
38472c81bb6SThierry Reding 	}, {
385b18e5259SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_VICSRD,
386b18e5259SSumit Gupta 		.name = "vicsrd",
387b18e5259SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_VIC,
388b18e5259SSumit Gupta 		.type = TEGRA_ICC_NISO,
389b18e5259SSumit Gupta 		.sid = TEGRA234_SID_VIC,
390b18e5259SSumit Gupta 		.regs = {
391b18e5259SSumit Gupta 			.sid = {
392b18e5259SSumit Gupta 				.override = 0x360,
393b18e5259SSumit Gupta 				.security = 0x364,
394b18e5259SSumit Gupta 			},
395b18e5259SSumit Gupta 		},
396b18e5259SSumit Gupta 	}, {
397b18e5259SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_VICSWR,
398b18e5259SSumit Gupta 		.name = "vicswr",
399b18e5259SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_VIC,
400b18e5259SSumit Gupta 		.type = TEGRA_ICC_NISO,
401b18e5259SSumit Gupta 		.sid = TEGRA234_SID_VIC,
402b18e5259SSumit Gupta 		.regs = {
403b18e5259SSumit Gupta 			.sid = {
404b18e5259SSumit Gupta 				.override = 0x368,
405b18e5259SSumit Gupta 				.security = 0x36c,
406b18e5259SSumit Gupta 			},
407b18e5259SSumit Gupta 		},
408b18e5259SSumit Gupta 	}, {
4096d0c4aa5SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_DLA1RDB1,
410*f1773a10SJon Hunter 		.name = "dla1rdb1",
4116d0c4aa5SSumit Gupta 		.sid = TEGRA234_SID_NVDLA1,
4126d0c4aa5SSumit Gupta 		.regs = {
4136d0c4aa5SSumit Gupta 			.sid = {
4146d0c4aa5SSumit Gupta 				.override = 0x370,
4156d0c4aa5SSumit Gupta 				.security = 0x374,
4166d0c4aa5SSumit Gupta 			},
4176d0c4aa5SSumit Gupta 		},
4186d0c4aa5SSumit Gupta 	}, {
4196d0c4aa5SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_DLA1WRB,
420*f1773a10SJon Hunter 		.name = "dla1wrb",
4216d0c4aa5SSumit Gupta 		.sid = TEGRA234_SID_NVDLA1,
4226d0c4aa5SSumit Gupta 		.regs = {
4236d0c4aa5SSumit Gupta 			.sid = {
4246d0c4aa5SSumit Gupta 				.override = 0x378,
4256d0c4aa5SSumit Gupta 				.security = 0x37c,
4266d0c4aa5SSumit Gupta 			},
4276d0c4aa5SSumit Gupta 		},
4286d0c4aa5SSumit Gupta 	}, {
429aecc83f1SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_VI2W,
430aecc83f1SSumit Gupta 		.name = "vi2w",
431aecc83f1SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_VI2,
432aecc83f1SSumit Gupta 		.type = TEGRA_ICC_ISO_VI,
433aecc83f1SSumit Gupta 		.sid = TEGRA234_SID_ISO_VI2,
434aecc83f1SSumit Gupta 		.regs = {
435aecc83f1SSumit Gupta 			.sid = {
436aecc83f1SSumit Gupta 				.override = 0x380,
437aecc83f1SSumit Gupta 				.security = 0x384,
438aecc83f1SSumit Gupta 			},
439aecc83f1SSumit Gupta 		},
440aecc83f1SSumit Gupta 	}, {
441aecc83f1SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_VI2FALR,
442aecc83f1SSumit Gupta 		.name = "vi2falr",
443aecc83f1SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_VI2FAL,
444aecc83f1SSumit Gupta 		.type = TEGRA_ICC_ISO_VIFAL,
445aecc83f1SSumit Gupta 		.sid = TEGRA234_SID_ISO_VI2FALC,
446aecc83f1SSumit Gupta 		.regs = {
447aecc83f1SSumit Gupta 			.sid = {
448aecc83f1SSumit Gupta 				.override = 0x388,
449aecc83f1SSumit Gupta 				.security = 0x38c,
450aecc83f1SSumit Gupta 			},
451aecc83f1SSumit Gupta 		},
452aecc83f1SSumit Gupta 	}, {
453b18e5259SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_NVDECSRD,
454b18e5259SSumit Gupta 		.name = "nvdecsrd",
455b18e5259SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_NVDEC,
456b18e5259SSumit Gupta 		.type = TEGRA_ICC_NISO,
457b18e5259SSumit Gupta 		.sid = TEGRA234_SID_NVDEC,
458b18e5259SSumit Gupta 		.regs = {
459b18e5259SSumit Gupta 			.sid = {
460b18e5259SSumit Gupta 				.override = 0x3c0,
461b18e5259SSumit Gupta 				.security = 0x3c4,
462b18e5259SSumit Gupta 			},
463b18e5259SSumit Gupta 		},
464b18e5259SSumit Gupta 	}, {
465b18e5259SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_NVDECSWR,
466b18e5259SSumit Gupta 		.name = "nvdecswr",
467b18e5259SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_NVDEC,
468b18e5259SSumit Gupta 		.type = TEGRA_ICC_NISO,
469b18e5259SSumit Gupta 		.sid = TEGRA234_SID_NVDEC,
470b18e5259SSumit Gupta 		.regs = {
471b18e5259SSumit Gupta 			.sid = {
472b18e5259SSumit Gupta 				.override = 0x3c8,
473b18e5259SSumit Gupta 				.security = 0x3cc,
474b18e5259SSumit Gupta 			},
475b18e5259SSumit Gupta 		},
476b18e5259SSumit Gupta 	}, {
477aecc83f1SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_APER,
478aecc83f1SSumit Gupta 		.name = "aper",
479aecc83f1SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_APE,
480aecc83f1SSumit Gupta 		.type = TEGRA_ICC_ISO_AUDIO,
481aecc83f1SSumit Gupta 		.sid = TEGRA234_SID_APE,
482aecc83f1SSumit Gupta 		.regs = {
483aecc83f1SSumit Gupta 			.sid = {
484aecc83f1SSumit Gupta 				.override = 0x3d0,
485aecc83f1SSumit Gupta 				.security = 0x3d4,
486aecc83f1SSumit Gupta 			},
487aecc83f1SSumit Gupta 		},
488aecc83f1SSumit Gupta 	}, {
489aecc83f1SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_APEW,
490aecc83f1SSumit Gupta 		.name = "apew",
491aecc83f1SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_APE,
492aecc83f1SSumit Gupta 		.type = TEGRA_ICC_ISO_AUDIO,
493aecc83f1SSumit Gupta 		.sid = TEGRA234_SID_APE,
494aecc83f1SSumit Gupta 		.regs = {
495aecc83f1SSumit Gupta 			.sid = {
496aecc83f1SSumit Gupta 				.override = 0x3d8,
497aecc83f1SSumit Gupta 				.security = 0x3dc,
498aecc83f1SSumit Gupta 			},
499aecc83f1SSumit Gupta 		},
500aecc83f1SSumit Gupta 	}, {
5016d0c4aa5SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_VI2FALW,
5026d0c4aa5SSumit Gupta 		.name = "vi2falw",
5036d0c4aa5SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_VI2FAL,
5046d0c4aa5SSumit Gupta 		.type = TEGRA_ICC_ISO_VIFAL,
5056d0c4aa5SSumit Gupta 		.sid = TEGRA234_SID_ISO_VI2FALC,
5066d0c4aa5SSumit Gupta 		.regs = {
5076d0c4aa5SSumit Gupta 			.sid = {
5086d0c4aa5SSumit Gupta 				.override = 0x3e0,
5096d0c4aa5SSumit Gupta 				.security = 0x3e4,
5106d0c4aa5SSumit Gupta 			},
5116d0c4aa5SSumit Gupta 		},
5126d0c4aa5SSumit Gupta 	}, {
513b18e5259SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_NVJPGSRD,
514b18e5259SSumit Gupta 		.name = "nvjpgsrd",
515b18e5259SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_NVJPG_0,
516b18e5259SSumit Gupta 		.type = TEGRA_ICC_NISO,
517b18e5259SSumit Gupta 		.sid = TEGRA234_SID_NVJPG,
518b18e5259SSumit Gupta 		.regs = {
519b18e5259SSumit Gupta 			.sid = {
520b18e5259SSumit Gupta 				.override = 0x3f0,
521b18e5259SSumit Gupta 				.security = 0x3f4,
522b18e5259SSumit Gupta 			},
523b18e5259SSumit Gupta 		},
524b18e5259SSumit Gupta 	}, {
525b18e5259SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_NVJPGSWR,
526b18e5259SSumit Gupta 		.name = "nvjpgswr",
527b18e5259SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_NVJPG_0,
528b18e5259SSumit Gupta 		.type = TEGRA_ICC_NISO,
529b18e5259SSumit Gupta 		.sid = TEGRA234_SID_NVJPG,
530b18e5259SSumit Gupta 			.regs = {
531b18e5259SSumit Gupta 			.sid = {
532b18e5259SSumit Gupta 				.override = 0x3f8,
533b18e5259SSumit Gupta 				.security = 0x3fc,
534b18e5259SSumit Gupta 			},
535b18e5259SSumit Gupta 		},
536b18e5259SSumit Gupta 	}, {
537aecc83f1SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_NVDISPLAYR,
538aecc83f1SSumit Gupta 		.name = "nvdisplayr",
539aecc83f1SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_DISPLAY,
540aecc83f1SSumit Gupta 		.type = TEGRA_ICC_ISO_DISPLAY,
541aecc83f1SSumit Gupta 		.sid = TEGRA234_SID_ISO_NVDISPLAY,
542aecc83f1SSumit Gupta 		.regs = {
543aecc83f1SSumit Gupta 			.sid = {
544aecc83f1SSumit Gupta 				.override = 0x490,
545aecc83f1SSumit Gupta 				.security = 0x494,
546aecc83f1SSumit Gupta 			},
547aecc83f1SSumit Gupta 		},
548aecc83f1SSumit Gupta 	}, {
54972c81bb6SThierry Reding 		.id = TEGRA234_MEMORY_CLIENT_BPMPR,
55072c81bb6SThierry Reding 		.name = "bpmpr",
55172c81bb6SThierry Reding 		.sid = TEGRA234_SID_BPMP,
55272c81bb6SThierry Reding 		.regs = {
55372c81bb6SThierry Reding 			.sid = {
55472c81bb6SThierry Reding 				.override = 0x498,
55572c81bb6SThierry Reding 				.security = 0x49c,
55672c81bb6SThierry Reding 			},
55772c81bb6SThierry Reding 		},
55872c81bb6SThierry Reding 	}, {
55972c81bb6SThierry Reding 		.id = TEGRA234_MEMORY_CLIENT_BPMPW,
56072c81bb6SThierry Reding 		.name = "bpmpw",
56172c81bb6SThierry Reding 		.sid = TEGRA234_SID_BPMP,
56272c81bb6SThierry Reding 		.regs = {
56372c81bb6SThierry Reding 			.sid = {
56472c81bb6SThierry Reding 				.override = 0x4a0,
56572c81bb6SThierry Reding 				.security = 0x4a4,
56672c81bb6SThierry Reding 			},
56772c81bb6SThierry Reding 		},
56872c81bb6SThierry Reding 	}, {
56972c81bb6SThierry Reding 		.id = TEGRA234_MEMORY_CLIENT_BPMPDMAR,
57072c81bb6SThierry Reding 		.name = "bpmpdmar",
57172c81bb6SThierry Reding 		.sid = TEGRA234_SID_BPMP,
57272c81bb6SThierry Reding 		.regs = {
57372c81bb6SThierry Reding 			.sid = {
57472c81bb6SThierry Reding 				.override = 0x4a8,
57572c81bb6SThierry Reding 				.security = 0x4ac,
57672c81bb6SThierry Reding 			},
57772c81bb6SThierry Reding 		},
57872c81bb6SThierry Reding 	}, {
57972c81bb6SThierry Reding 		.id = TEGRA234_MEMORY_CLIENT_BPMPDMAW,
58072c81bb6SThierry Reding 		.name = "bpmpdmaw",
58172c81bb6SThierry Reding 		.sid = TEGRA234_SID_BPMP,
58272c81bb6SThierry Reding 		.regs = {
58372c81bb6SThierry Reding 			.sid = {
58472c81bb6SThierry Reding 				.override = 0x4b0,
58572c81bb6SThierry Reding 				.security = 0x4b4,
58672c81bb6SThierry Reding 			},
58772c81bb6SThierry Reding 		},
588cc3d696cSSameer Pujar 	}, {
589cc3d696cSSameer Pujar 		.id = TEGRA234_MEMORY_CLIENT_APEDMAR,
590cc3d696cSSameer Pujar 		.name = "apedmar",
5919a38cb27SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_APEDMA,
5929a38cb27SSumit Gupta 		.type = TEGRA_ICC_ISO_AUDIO,
593cc3d696cSSameer Pujar 		.sid = TEGRA234_SID_APE,
594cc3d696cSSameer Pujar 		.regs = {
595cc3d696cSSameer Pujar 			.sid = {
596cc3d696cSSameer Pujar 				.override = 0x4f8,
597cc3d696cSSameer Pujar 				.security = 0x4fc,
598cc3d696cSSameer Pujar 			},
599cc3d696cSSameer Pujar 		},
600cc3d696cSSameer Pujar 	}, {
601cc3d696cSSameer Pujar 		.id = TEGRA234_MEMORY_CLIENT_APEDMAW,
602cc3d696cSSameer Pujar 		.name = "apedmaw",
6039a38cb27SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_APEDMA,
6049a38cb27SSumit Gupta 		.type = TEGRA_ICC_ISO_AUDIO,
605cc3d696cSSameer Pujar 		.sid = TEGRA234_SID_APE,
606cc3d696cSSameer Pujar 		.regs = {
607cc3d696cSSameer Pujar 			.sid = {
608cc3d696cSSameer Pujar 				.override = 0x500,
609cc3d696cSSameer Pujar 				.security = 0x504,
610cc3d696cSSameer Pujar 			},
611cc3d696cSSameer Pujar 		},
6125cd24ca0SJon Hunter 	}, {
6136d0c4aa5SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_NVDISPLAYR1,
6146d0c4aa5SSumit Gupta 		.name = "nvdisplayr1",
6156d0c4aa5SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_DISPLAY,
6166d0c4aa5SSumit Gupta 		.type = TEGRA_ICC_ISO_DISPLAY,
6176d0c4aa5SSumit Gupta 		.sid = TEGRA234_SID_ISO_NVDISPLAY,
6186d0c4aa5SSumit Gupta 		.regs = {
6196d0c4aa5SSumit Gupta 			.sid = {
6206d0c4aa5SSumit Gupta 				.override = 0x508,
6216d0c4aa5SSumit Gupta 				.security = 0x50c,
6226d0c4aa5SSumit Gupta 			},
6236d0c4aa5SSumit Gupta 		},
6246d0c4aa5SSumit Gupta 	}, {
6255cd24ca0SJon Hunter 		.id = TEGRA234_MEMORY_CLIENT_DLA0RDA,
6265cd24ca0SJon Hunter 		.name = "dla0rda",
6275cd24ca0SJon Hunter 		.sid = TEGRA234_SID_NVDLA0,
6285cd24ca0SJon Hunter 		.regs = {
6295cd24ca0SJon Hunter 			.sid = {
6305cd24ca0SJon Hunter 				.override = 0x5f0,
6315cd24ca0SJon Hunter 				.security = 0x5f4,
6325cd24ca0SJon Hunter 			},
6335cd24ca0SJon Hunter 		},
6345cd24ca0SJon Hunter 	}, {
6355cd24ca0SJon Hunter 		.id = TEGRA234_MEMORY_CLIENT_DLA0FALRDB,
6365cd24ca0SJon Hunter 		.name = "dla0falrdb",
6375cd24ca0SJon Hunter 		.sid = TEGRA234_SID_NVDLA0,
6385cd24ca0SJon Hunter 		.regs = {
6395cd24ca0SJon Hunter 			.sid = {
6405cd24ca0SJon Hunter 				.override = 0x5f8,
6415cd24ca0SJon Hunter 				.security = 0x5fc,
6425cd24ca0SJon Hunter 			},
6435cd24ca0SJon Hunter 		},
6445cd24ca0SJon Hunter 	}, {
6455cd24ca0SJon Hunter 		.id = TEGRA234_MEMORY_CLIENT_DLA0WRA,
6465cd24ca0SJon Hunter 		.name = "dla0wra",
6475cd24ca0SJon Hunter 		.sid = TEGRA234_SID_NVDLA0,
6485cd24ca0SJon Hunter 		.regs = {
6495cd24ca0SJon Hunter 			.sid = {
6505cd24ca0SJon Hunter 				.override = 0x600,
6515cd24ca0SJon Hunter 				.security = 0x604,
6525cd24ca0SJon Hunter 			},
6535cd24ca0SJon Hunter 		},
6545cd24ca0SJon Hunter 	}, {
6555cd24ca0SJon Hunter 		.id = TEGRA234_MEMORY_CLIENT_DLA0FALWRB,
6565cd24ca0SJon Hunter 		.name = "dla0falwrb",
6575cd24ca0SJon Hunter 		.sid = TEGRA234_SID_NVDLA0,
6585cd24ca0SJon Hunter 		.regs = {
6595cd24ca0SJon Hunter 			.sid = {
6605cd24ca0SJon Hunter 				.override = 0x608,
6615cd24ca0SJon Hunter 				.security = 0x60c,
6625cd24ca0SJon Hunter 			},
6635cd24ca0SJon Hunter 		},
6645cd24ca0SJon Hunter 	}, {
6655cd24ca0SJon Hunter 		.id = TEGRA234_MEMORY_CLIENT_DLA1RDA,
666*f1773a10SJon Hunter 		.name = "dla1rda",
6675cd24ca0SJon Hunter 		.sid = TEGRA234_SID_NVDLA1,
6685cd24ca0SJon Hunter 		.regs = {
6695cd24ca0SJon Hunter 			.sid = {
6705cd24ca0SJon Hunter 				.override = 0x610,
6715cd24ca0SJon Hunter 				.security = 0x614,
6725cd24ca0SJon Hunter 			},
6735cd24ca0SJon Hunter 		},
6745cd24ca0SJon Hunter 	}, {
6755cd24ca0SJon Hunter 		.id = TEGRA234_MEMORY_CLIENT_DLA1FALRDB,
676*f1773a10SJon Hunter 		.name = "dla1falrdb",
6775cd24ca0SJon Hunter 		.sid = TEGRA234_SID_NVDLA1,
6785cd24ca0SJon Hunter 		.regs = {
6795cd24ca0SJon Hunter 			.sid = {
6805cd24ca0SJon Hunter 				.override = 0x618,
6815cd24ca0SJon Hunter 				.security = 0x61c,
6825cd24ca0SJon Hunter 			},
6835cd24ca0SJon Hunter 		},
6845cd24ca0SJon Hunter 	}, {
6855cd24ca0SJon Hunter 		.id = TEGRA234_MEMORY_CLIENT_DLA1WRA,
686*f1773a10SJon Hunter 		.name = "dla1wra",
6875cd24ca0SJon Hunter 		.sid = TEGRA234_SID_NVDLA1,
6885cd24ca0SJon Hunter 		.regs = {
6895cd24ca0SJon Hunter 			.sid = {
6905cd24ca0SJon Hunter 				.override = 0x620,
6915cd24ca0SJon Hunter 				.security = 0x624,
6925cd24ca0SJon Hunter 			},
6935cd24ca0SJon Hunter 		},
6945cd24ca0SJon Hunter 	}, {
6955cd24ca0SJon Hunter 		.id = TEGRA234_MEMORY_CLIENT_DLA1FALWRB,
696*f1773a10SJon Hunter 		.name = "dla1falwrb",
6975cd24ca0SJon Hunter 		.sid = TEGRA234_SID_NVDLA1,
6985cd24ca0SJon Hunter 		.regs = {
6995cd24ca0SJon Hunter 			.sid = {
7005cd24ca0SJon Hunter 				.override = 0x628,
7015cd24ca0SJon Hunter 				.security = 0x62c,
7025cd24ca0SJon Hunter 			},
7035cd24ca0SJon Hunter 		},
7045cd24ca0SJon Hunter 	}, {
705aecc83f1SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_PCIE0R,
706aecc83f1SSumit Gupta 		.name = "pcie0r",
707aecc83f1SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_PCIE_0,
708aecc83f1SSumit Gupta 		.type = TEGRA_ICC_NISO,
709aecc83f1SSumit Gupta 		.sid = TEGRA234_SID_PCIE0,
710aecc83f1SSumit Gupta 		.regs = {
711aecc83f1SSumit Gupta 			.sid = {
712aecc83f1SSumit Gupta 				.override = 0x6c0,
713aecc83f1SSumit Gupta 				.security = 0x6c4,
714aecc83f1SSumit Gupta 			},
715aecc83f1SSumit Gupta 		},
716aecc83f1SSumit Gupta 	}, {
717aecc83f1SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_PCIE0W,
718aecc83f1SSumit Gupta 		.name = "pcie0w",
719aecc83f1SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_PCIE_0,
720aecc83f1SSumit Gupta 		.type = TEGRA_ICC_NISO,
721aecc83f1SSumit Gupta 		.sid = TEGRA234_SID_PCIE0,
722aecc83f1SSumit Gupta 		.regs = {
723aecc83f1SSumit Gupta 			.sid = {
724aecc83f1SSumit Gupta 				.override = 0x6c8,
725aecc83f1SSumit Gupta 				.security = 0x6cc,
726aecc83f1SSumit Gupta 			},
727aecc83f1SSumit Gupta 		},
728aecc83f1SSumit Gupta 	}, {
729aecc83f1SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_PCIE1R,
730aecc83f1SSumit Gupta 		.name = "pcie1r",
731aecc83f1SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_PCIE_1,
732aecc83f1SSumit Gupta 		.type = TEGRA_ICC_NISO,
733aecc83f1SSumit Gupta 		.sid = TEGRA234_SID_PCIE1,
734aecc83f1SSumit Gupta 		.regs = {
735aecc83f1SSumit Gupta 			.sid = {
736aecc83f1SSumit Gupta 				.override = 0x6d0,
737aecc83f1SSumit Gupta 				.security = 0x6d4,
738aecc83f1SSumit Gupta 			},
739aecc83f1SSumit Gupta 		},
740aecc83f1SSumit Gupta 	}, {
741aecc83f1SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_PCIE1W,
742aecc83f1SSumit Gupta 		.name = "pcie1w",
743aecc83f1SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_PCIE_1,
744aecc83f1SSumit Gupta 		.type = TEGRA_ICC_NISO,
745aecc83f1SSumit Gupta 		.sid = TEGRA234_SID_PCIE1,
746aecc83f1SSumit Gupta 		.regs = {
747aecc83f1SSumit Gupta 			.sid = {
748aecc83f1SSumit Gupta 				.override = 0x6d8,
749aecc83f1SSumit Gupta 				.security = 0x6dc,
750aecc83f1SSumit Gupta 			},
751aecc83f1SSumit Gupta 		},
752aecc83f1SSumit Gupta 	}, {
753aecc83f1SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_PCIE2AR,
754aecc83f1SSumit Gupta 		.name = "pcie2ar",
755aecc83f1SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_PCIE_2,
756aecc83f1SSumit Gupta 		.type = TEGRA_ICC_NISO,
757aecc83f1SSumit Gupta 		.sid = TEGRA234_SID_PCIE2,
758aecc83f1SSumit Gupta 		.regs = {
759aecc83f1SSumit Gupta 			.sid = {
760aecc83f1SSumit Gupta 				.override = 0x6e0,
761aecc83f1SSumit Gupta 				.security = 0x6e4,
762aecc83f1SSumit Gupta 			},
763aecc83f1SSumit Gupta 		},
764aecc83f1SSumit Gupta 	}, {
765aecc83f1SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_PCIE2AW,
766aecc83f1SSumit Gupta 		.name = "pcie2aw",
767aecc83f1SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_PCIE_2,
768aecc83f1SSumit Gupta 		.type = TEGRA_ICC_NISO,
769aecc83f1SSumit Gupta 		.sid = TEGRA234_SID_PCIE2,
770aecc83f1SSumit Gupta 		.regs = {
771aecc83f1SSumit Gupta 			.sid = {
772aecc83f1SSumit Gupta 				.override = 0x6e8,
773aecc83f1SSumit Gupta 				.security = 0x6ec,
774aecc83f1SSumit Gupta 			},
775aecc83f1SSumit Gupta 		},
776aecc83f1SSumit Gupta 	}, {
777aecc83f1SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_PCIE3R,
778aecc83f1SSumit Gupta 		.name = "pcie3r",
779aecc83f1SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_PCIE_3,
780aecc83f1SSumit Gupta 		.type = TEGRA_ICC_NISO,
781aecc83f1SSumit Gupta 		.sid = TEGRA234_SID_PCIE3,
782aecc83f1SSumit Gupta 		.regs = {
783aecc83f1SSumit Gupta 			.sid = {
784aecc83f1SSumit Gupta 				.override = 0x6f0,
785aecc83f1SSumit Gupta 				.security = 0x6f4,
786aecc83f1SSumit Gupta 			},
787aecc83f1SSumit Gupta 		},
788aecc83f1SSumit Gupta 	}, {
789aecc83f1SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_PCIE3W,
790aecc83f1SSumit Gupta 		.name = "pcie3w",
791aecc83f1SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_PCIE_3,
792aecc83f1SSumit Gupta 		.type = TEGRA_ICC_NISO,
793aecc83f1SSumit Gupta 		.sid = TEGRA234_SID_PCIE3,
794aecc83f1SSumit Gupta 		.regs = {
795aecc83f1SSumit Gupta 			.sid = {
796aecc83f1SSumit Gupta 				.override = 0x6f8,
797aecc83f1SSumit Gupta 				.security = 0x6fc,
798aecc83f1SSumit Gupta 			},
799aecc83f1SSumit Gupta 		},
800aecc83f1SSumit Gupta 	}, {
801aecc83f1SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_PCIE4R,
802aecc83f1SSumit Gupta 		.name = "pcie4r",
803aecc83f1SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_PCIE_4,
804aecc83f1SSumit Gupta 		.type = TEGRA_ICC_NISO,
805aecc83f1SSumit Gupta 		.sid = TEGRA234_SID_PCIE4,
806aecc83f1SSumit Gupta 		.regs = {
807aecc83f1SSumit Gupta 			.sid = {
808aecc83f1SSumit Gupta 				.override = 0x700,
809aecc83f1SSumit Gupta 				.security = 0x704,
810aecc83f1SSumit Gupta 			},
811aecc83f1SSumit Gupta 		},
812aecc83f1SSumit Gupta 	}, {
813aecc83f1SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_PCIE4W,
814aecc83f1SSumit Gupta 		.name = "pcie4w",
815aecc83f1SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_PCIE_4,
816aecc83f1SSumit Gupta 		.type = TEGRA_ICC_NISO,
817aecc83f1SSumit Gupta 		.sid = TEGRA234_SID_PCIE4,
818aecc83f1SSumit Gupta 		.regs = {
819aecc83f1SSumit Gupta 			.sid = {
820aecc83f1SSumit Gupta 				.override = 0x708,
821aecc83f1SSumit Gupta 				.security = 0x70c,
822aecc83f1SSumit Gupta 			},
823aecc83f1SSumit Gupta 		},
824aecc83f1SSumit Gupta 	}, {
825aecc83f1SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_PCIE5R,
826aecc83f1SSumit Gupta 		.name = "pcie5r",
827aecc83f1SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_PCIE_5,
828aecc83f1SSumit Gupta 		.type = TEGRA_ICC_NISO,
829aecc83f1SSumit Gupta 		.sid = TEGRA234_SID_PCIE5,
830aecc83f1SSumit Gupta 		.regs = {
831aecc83f1SSumit Gupta 			.sid = {
832aecc83f1SSumit Gupta 				.override = 0x710,
833aecc83f1SSumit Gupta 				.security = 0x714,
834aecc83f1SSumit Gupta 			},
835aecc83f1SSumit Gupta 		},
836aecc83f1SSumit Gupta 	}, {
837aecc83f1SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_PCIE5W,
838aecc83f1SSumit Gupta 		.name = "pcie5w",
839aecc83f1SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_PCIE_5,
840aecc83f1SSumit Gupta 		.type = TEGRA_ICC_NISO,
841aecc83f1SSumit Gupta 		.sid = TEGRA234_SID_PCIE5,
842aecc83f1SSumit Gupta 		.regs = {
843aecc83f1SSumit Gupta 			.sid = {
844aecc83f1SSumit Gupta 				.override = 0x718,
845aecc83f1SSumit Gupta 				.security = 0x71c,
846aecc83f1SSumit Gupta 			},
847aecc83f1SSumit Gupta 		},
848aecc83f1SSumit Gupta 	}, {
8496d0c4aa5SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_DLA0RDA1,
8506d0c4aa5SSumit Gupta 		.name = "dla0rda1",
8516d0c4aa5SSumit Gupta 		.sid = TEGRA234_SID_NVDLA0,
8526d0c4aa5SSumit Gupta 		.regs = {
8536d0c4aa5SSumit Gupta 			.sid = {
8546d0c4aa5SSumit Gupta 				.override = 0x748,
8556d0c4aa5SSumit Gupta 				.security = 0x74c,
8566d0c4aa5SSumit Gupta 			},
8576d0c4aa5SSumit Gupta 		},
8586d0c4aa5SSumit Gupta 	}, {
8596d0c4aa5SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_DLA1RDA1,
860*f1773a10SJon Hunter 		.name = "dla1rda1",
8616d0c4aa5SSumit Gupta 		.sid = TEGRA234_SID_NVDLA1,
8626d0c4aa5SSumit Gupta 		.regs = {
8636d0c4aa5SSumit Gupta 			.sid = {
8646d0c4aa5SSumit Gupta 				.override = 0x750,
8656d0c4aa5SSumit Gupta 				.security = 0x754,
8666d0c4aa5SSumit Gupta 			},
8676d0c4aa5SSumit Gupta 		},
8686d0c4aa5SSumit Gupta 	}, {
869aecc83f1SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_PCIE5R1,
870aecc83f1SSumit Gupta 		.name = "pcie5r1",
871aecc83f1SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_PCIE_5,
872aecc83f1SSumit Gupta 		.type = TEGRA_ICC_NISO,
873aecc83f1SSumit Gupta 		.sid = TEGRA234_SID_PCIE5,
874aecc83f1SSumit Gupta 		.regs = {
875aecc83f1SSumit Gupta 			.sid = {
876aecc83f1SSumit Gupta 				.override = 0x778,
877aecc83f1SSumit Gupta 				.security = 0x77c,
878aecc83f1SSumit Gupta 			},
879aecc83f1SSumit Gupta 		},
880aecc83f1SSumit Gupta 	}, {
881b18e5259SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_NVJPG1SRD,
882b18e5259SSumit Gupta 		.name = "nvjpg1srd",
883b18e5259SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_NVJPG_1,
884b18e5259SSumit Gupta 		.type = TEGRA_ICC_NISO,
885b18e5259SSumit Gupta 		.sid = TEGRA234_SID_NVJPG1,
886b18e5259SSumit Gupta 		.regs = {
887b18e5259SSumit Gupta 			.sid = {
888b18e5259SSumit Gupta 				.override = 0x918,
889b18e5259SSumit Gupta 				.security = 0x91c,
890b18e5259SSumit Gupta 			},
891b18e5259SSumit Gupta 		},
892b18e5259SSumit Gupta 	}, {
893b18e5259SSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_NVJPG1SWR,
894b18e5259SSumit Gupta 		.name = "nvjpg1swr",
895b18e5259SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_NVJPG_1,
896b18e5259SSumit Gupta 		.type = TEGRA_ICC_NISO,
897b18e5259SSumit Gupta 		.sid = TEGRA234_SID_NVJPG1,
898b18e5259SSumit Gupta 		.regs = {
899b18e5259SSumit Gupta 			.sid = {
900b18e5259SSumit Gupta 				.override = 0x920,
901b18e5259SSumit Gupta 				.security = 0x924,
902b18e5259SSumit Gupta 			},
903b18e5259SSumit Gupta 		},
904b18e5259SSumit Gupta 	}, {
90580b19e09SSumit Gupta 		.id = TEGRA_ICC_MC_CPU_CLUSTER0,
90680b19e09SSumit Gupta 		.name = "sw_cluster0",
90780b19e09SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_CPU_CLUSTER0,
90880b19e09SSumit Gupta 		.type = TEGRA_ICC_NISO,
90980b19e09SSumit Gupta 	}, {
91080b19e09SSumit Gupta 		.id = TEGRA_ICC_MC_CPU_CLUSTER1,
91180b19e09SSumit Gupta 		.name = "sw_cluster1",
91280b19e09SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_CPU_CLUSTER1,
91380b19e09SSumit Gupta 		.type = TEGRA_ICC_NISO,
91480b19e09SSumit Gupta 	}, {
91580b19e09SSumit Gupta 		.id = TEGRA_ICC_MC_CPU_CLUSTER2,
91680b19e09SSumit Gupta 		.name = "sw_cluster2",
91780b19e09SSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_CPU_CLUSTER2,
91880b19e09SSumit Gupta 		.type = TEGRA_ICC_NISO,
91935bd78cfSSumit Gupta 	}, {
92035bd78cfSSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_NVL1R,
92135bd78cfSSumit Gupta 		.name = "nvl1r",
92235bd78cfSSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_GPU,
92335bd78cfSSumit Gupta 		.type = TEGRA_ICC_NISO,
92435bd78cfSSumit Gupta 	}, {
92535bd78cfSSumit Gupta 		.id = TEGRA234_MEMORY_CLIENT_NVL1W,
92635bd78cfSSumit Gupta 		.name = "nvl1w",
92735bd78cfSSumit Gupta 		.bpmp_id = TEGRA_ICC_BPMP_GPU,
92835bd78cfSSumit Gupta 		.type = TEGRA_ICC_NISO,
92972c81bb6SThierry Reding 	},
93072c81bb6SThierry Reding };
93172c81bb6SThierry Reding 
9329a38cb27SSumit Gupta /*
9339a38cb27SSumit Gupta  * tegra234_mc_icc_set() - Pass MC client info to the BPMP-FW
9349a38cb27SSumit Gupta  * @src: ICC node for Memory Controller's (MC) Client
9359a38cb27SSumit Gupta  * @dst: ICC node for Memory Controller (MC)
9369a38cb27SSumit Gupta  *
9379a38cb27SSumit Gupta  * Passing the current request info from the MC to the BPMP-FW where
9389a38cb27SSumit Gupta  * LA and PTSA registers are accessed and the final EMC freq is set
9399a38cb27SSumit Gupta  * based on client_id, type, latency and bandwidth.
9409a38cb27SSumit Gupta  * icc_set_bw() makes set_bw calls for both MC and EMC providers in
9419a38cb27SSumit Gupta  * sequence. Both the calls are protected by 'mutex_lock(&icc_lock)'.
9429a38cb27SSumit Gupta  * So, the data passed won't be updated by concurrent set calls from
9439a38cb27SSumit Gupta  * other clients.
9449a38cb27SSumit Gupta  */
tegra234_mc_icc_set(struct icc_node * src,struct icc_node * dst)9459a38cb27SSumit Gupta static int tegra234_mc_icc_set(struct icc_node *src, struct icc_node *dst)
9469a38cb27SSumit Gupta {
9479a38cb27SSumit Gupta 	struct tegra_mc *mc = icc_provider_to_tegra_mc(dst->provider);
9489a38cb27SSumit Gupta 	struct mrq_bwmgr_int_request bwmgr_req = { 0 };
9499a38cb27SSumit Gupta 	struct mrq_bwmgr_int_response bwmgr_resp = { 0 };
9509a38cb27SSumit Gupta 	const struct tegra_mc_client *pclient = src->data;
9519a38cb27SSumit Gupta 	struct tegra_bpmp_message msg;
9529a38cb27SSumit Gupta 	int ret;
9539a38cb27SSumit Gupta 
9549a38cb27SSumit Gupta 	/*
9559a38cb27SSumit Gupta 	 * Same Src and Dst node will happen during boot from icc_node_add().
9569a38cb27SSumit Gupta 	 * This can be used to pre-initialize and set bandwidth for all clients
9579a38cb27SSumit Gupta 	 * before their drivers are loaded. We are skipping this case as for us,
9589a38cb27SSumit Gupta 	 * the pre-initialization already happened in Bootloader(MB2) and BPMP-FW.
9599a38cb27SSumit Gupta 	 */
9609a38cb27SSumit Gupta 	if (src->id == dst->id)
9619a38cb27SSumit Gupta 		return 0;
9629a38cb27SSumit Gupta 
9639a38cb27SSumit Gupta 	if (!mc->bwmgr_mrq_supported)
964faafd6caSSumit Gupta 		return 0;
9659a38cb27SSumit Gupta 
9669a38cb27SSumit Gupta 	if (!mc->bpmp) {
9679a38cb27SSumit Gupta 		dev_err(mc->dev, "BPMP reference NULL\n");
9689a38cb27SSumit Gupta 		return -ENOENT;
9699a38cb27SSumit Gupta 	}
9709a38cb27SSumit Gupta 
9719a38cb27SSumit Gupta 	if (pclient->type == TEGRA_ICC_NISO)
9729a38cb27SSumit Gupta 		bwmgr_req.bwmgr_calc_set_req.niso_bw = src->avg_bw;
9739a38cb27SSumit Gupta 	else
9749a38cb27SSumit Gupta 		bwmgr_req.bwmgr_calc_set_req.iso_bw = src->avg_bw;
9759a38cb27SSumit Gupta 
9769a38cb27SSumit Gupta 	bwmgr_req.bwmgr_calc_set_req.client_id = pclient->bpmp_id;
9779a38cb27SSumit Gupta 
9789a38cb27SSumit Gupta 	bwmgr_req.cmd = CMD_BWMGR_INT_CALC_AND_SET;
9799a38cb27SSumit Gupta 	bwmgr_req.bwmgr_calc_set_req.mc_floor = src->peak_bw;
9809a38cb27SSumit Gupta 	bwmgr_req.bwmgr_calc_set_req.floor_unit = BWMGR_INT_UNIT_KBPS;
9819a38cb27SSumit Gupta 
9829a38cb27SSumit Gupta 	memset(&msg, 0, sizeof(msg));
9839a38cb27SSumit Gupta 	msg.mrq = MRQ_BWMGR_INT;
9849a38cb27SSumit Gupta 	msg.tx.data = &bwmgr_req;
9859a38cb27SSumit Gupta 	msg.tx.size = sizeof(bwmgr_req);
9869a38cb27SSumit Gupta 	msg.rx.data = &bwmgr_resp;
9879a38cb27SSumit Gupta 	msg.rx.size = sizeof(bwmgr_resp);
9889a38cb27SSumit Gupta 
989e95076f9SThierry Reding 	if (pclient->bpmp_id >= TEGRA_ICC_BPMP_CPU_CLUSTER0 &&
990e95076f9SThierry Reding 	    pclient->bpmp_id <= TEGRA_ICC_BPMP_CPU_CLUSTER2)
991e95076f9SThierry Reding 		msg.flags = TEGRA_BPMP_MESSAGE_RESET;
992e95076f9SThierry Reding 
9939a38cb27SSumit Gupta 	ret = tegra_bpmp_transfer(mc->bpmp, &msg);
9949a38cb27SSumit Gupta 	if (ret < 0) {
9959a38cb27SSumit Gupta 		dev_err(mc->dev, "BPMP transfer failed: %d\n", ret);
9969a38cb27SSumit Gupta 		goto error;
9979a38cb27SSumit Gupta 	}
9989a38cb27SSumit Gupta 	if (msg.rx.ret < 0) {
9999a38cb27SSumit Gupta 		pr_err("failed to set bandwidth for %u: %d\n",
10009a38cb27SSumit Gupta 		       bwmgr_req.bwmgr_calc_set_req.client_id, msg.rx.ret);
10019a38cb27SSumit Gupta 		ret = -EINVAL;
10029a38cb27SSumit Gupta 	}
10039a38cb27SSumit Gupta 
10049a38cb27SSumit Gupta error:
10059a38cb27SSumit Gupta 	return ret;
10069a38cb27SSumit Gupta }
10079a38cb27SSumit Gupta 
tegra234_mc_icc_aggregate(struct icc_node * node,u32 tag,u32 avg_bw,u32 peak_bw,u32 * agg_avg,u32 * agg_peak)1008e852af72SSumit Gupta static int tegra234_mc_icc_aggregate(struct icc_node *node, u32 tag, u32 avg_bw,
1009e852af72SSumit Gupta 				     u32 peak_bw, u32 *agg_avg, u32 *agg_peak)
1010e852af72SSumit Gupta {
1011e852af72SSumit Gupta 	struct icc_provider *p = node->provider;
1012e852af72SSumit Gupta 	struct tegra_mc *mc = icc_provider_to_tegra_mc(p);
1013e852af72SSumit Gupta 
1014e852af72SSumit Gupta 	if (!mc->bwmgr_mrq_supported)
1015faafd6caSSumit Gupta 		return 0;
1016e852af72SSumit Gupta 
1017e852af72SSumit Gupta 	if (node->id == TEGRA_ICC_MC_CPU_CLUSTER0 ||
1018e852af72SSumit Gupta 	    node->id == TEGRA_ICC_MC_CPU_CLUSTER1 ||
1019e852af72SSumit Gupta 	    node->id == TEGRA_ICC_MC_CPU_CLUSTER2) {
1020e852af72SSumit Gupta 		if (mc)
1021e852af72SSumit Gupta 			peak_bw = peak_bw * mc->num_channels;
1022e852af72SSumit Gupta 	}
1023e852af72SSumit Gupta 
1024e852af72SSumit Gupta 	*agg_avg += avg_bw;
1025e852af72SSumit Gupta 	*agg_peak = max(*agg_peak, peak_bw);
1026e852af72SSumit Gupta 
1027e852af72SSumit Gupta 	return 0;
1028e852af72SSumit Gupta }
1029e852af72SSumit Gupta 
tegra234_mc_icc_get_init_bw(struct icc_node * node,u32 * avg,u32 * peak)10309a38cb27SSumit Gupta static int tegra234_mc_icc_get_init_bw(struct icc_node *node, u32 *avg, u32 *peak)
10319a38cb27SSumit Gupta {
10329a38cb27SSumit Gupta 	*avg = 0;
10339a38cb27SSumit Gupta 	*peak = 0;
10349a38cb27SSumit Gupta 
10359a38cb27SSumit Gupta 	return 0;
10369a38cb27SSumit Gupta }
10379a38cb27SSumit Gupta 
10389a38cb27SSumit Gupta static const struct tegra_mc_icc_ops tegra234_mc_icc_ops = {
1039d1478aeaSThierry Reding 	.xlate = tegra_mc_icc_xlate,
1040e852af72SSumit Gupta 	.aggregate = tegra234_mc_icc_aggregate,
10419a38cb27SSumit Gupta 	.get_bw = tegra234_mc_icc_get_init_bw,
10429a38cb27SSumit Gupta 	.set = tegra234_mc_icc_set,
10439a38cb27SSumit Gupta };
10449a38cb27SSumit Gupta 
104572c81bb6SThierry Reding const struct tegra_mc_soc tegra234_mc_soc = {
104672c81bb6SThierry Reding 	.num_clients = ARRAY_SIZE(tegra234_mc_clients),
104772c81bb6SThierry Reding 	.clients = tegra234_mc_clients,
104872c81bb6SThierry Reding 	.num_address_bits = 40,
1049a7cffa11SAshish Mhetre 	.num_channels = 16,
105054a85e09SAshish Mhetre 	.client_id_mask = 0x1ff,
105154a85e09SAshish Mhetre 	.intmask = MC_INT_DECERR_ROUTE_SANITY |
105254a85e09SAshish Mhetre 		   MC_INT_DECERR_GENERALIZED_CARVEOUT | MC_INT_DECERR_MTS |
105354a85e09SAshish Mhetre 		   MC_INT_SECERR_SEC | MC_INT_DECERR_VPR |
105454a85e09SAshish Mhetre 		   MC_INT_SECURITY_VIOLATION | MC_INT_DECERR_EMEM,
105554a85e09SAshish Mhetre 	.has_addr_hi_reg = true,
105672c81bb6SThierry Reding 	.ops = &tegra186_mc_ops,
10579a38cb27SSumit Gupta 	.icc_ops = &tegra234_mc_icc_ops,
105854a85e09SAshish Mhetre 	.ch_intmask = 0x0000ff00,
105954a85e09SAshish Mhetre 	.global_intstatus_channel_shift = 8,
10607946920dSMikko Perttunen 	/*
10617946920dSMikko Perttunen 	 * Additionally, there are lite carveouts but those are not currently
10627946920dSMikko Perttunen 	 * supported.
10637946920dSMikko Perttunen 	 */
10647946920dSMikko Perttunen 	.num_carveouts = 32,
106572c81bb6SThierry Reding };
1066