162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) 2022-2023, NVIDIA CORPORATION. All rights reserved. 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#include <soc/tegra/mc.h> 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#include <dt-bindings/memory/tegra234-mc.h> 962306a36Sopenharmony_ci#include <linux/interconnect.h> 1062306a36Sopenharmony_ci#include <linux/tegra-icc.h> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci#include <soc/tegra/bpmp.h> 1362306a36Sopenharmony_ci#include "mc.h" 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci/* 1662306a36Sopenharmony_ci * MC Client entries are sorted in the increasing order of the 1762306a36Sopenharmony_ci * override and security register offsets. 1862306a36Sopenharmony_ci */ 1962306a36Sopenharmony_cistatic const struct tegra_mc_client tegra234_mc_clients[] = { 2062306a36Sopenharmony_ci { 2162306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_HDAR, 2262306a36Sopenharmony_ci .name = "hdar", 2362306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_HDA, 2462306a36Sopenharmony_ci .type = TEGRA_ICC_ISO_AUDIO, 2562306a36Sopenharmony_ci .sid = TEGRA234_SID_HDA, 2662306a36Sopenharmony_ci .regs = { 2762306a36Sopenharmony_ci .sid = { 2862306a36Sopenharmony_ci .override = 0xa8, 2962306a36Sopenharmony_ci .security = 0xac, 3062306a36Sopenharmony_ci }, 3162306a36Sopenharmony_ci }, 3262306a36Sopenharmony_ci }, { 3362306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_NVENCSRD, 3462306a36Sopenharmony_ci .name = "nvencsrd", 3562306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_NVENC, 3662306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 3762306a36Sopenharmony_ci .sid = TEGRA234_SID_NVENC, 3862306a36Sopenharmony_ci .regs = { 3962306a36Sopenharmony_ci .sid = { 4062306a36Sopenharmony_ci .override = 0xe0, 4162306a36Sopenharmony_ci .security = 0xe4, 4262306a36Sopenharmony_ci }, 4362306a36Sopenharmony_ci }, 4462306a36Sopenharmony_ci }, { 4562306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_PCIE6AR, 4662306a36Sopenharmony_ci .name = "pcie6ar", 4762306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_PCIE_6, 4862306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 4962306a36Sopenharmony_ci .sid = TEGRA234_SID_PCIE6, 5062306a36Sopenharmony_ci .regs = { 5162306a36Sopenharmony_ci .sid = { 5262306a36Sopenharmony_ci .override = 0x140, 5362306a36Sopenharmony_ci .security = 0x144, 5462306a36Sopenharmony_ci }, 5562306a36Sopenharmony_ci }, 5662306a36Sopenharmony_ci }, { 5762306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_PCIE6AW, 5862306a36Sopenharmony_ci .name = "pcie6aw", 5962306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_PCIE_6, 6062306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 6162306a36Sopenharmony_ci .sid = TEGRA234_SID_PCIE6, 6262306a36Sopenharmony_ci .regs = { 6362306a36Sopenharmony_ci .sid = { 6462306a36Sopenharmony_ci .override = 0x148, 6562306a36Sopenharmony_ci .security = 0x14c, 6662306a36Sopenharmony_ci }, 6762306a36Sopenharmony_ci }, 6862306a36Sopenharmony_ci }, { 6962306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_PCIE7AR, 7062306a36Sopenharmony_ci .name = "pcie7ar", 7162306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_PCIE_7, 7262306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 7362306a36Sopenharmony_ci .sid = TEGRA234_SID_PCIE7, 7462306a36Sopenharmony_ci .regs = { 7562306a36Sopenharmony_ci .sid = { 7662306a36Sopenharmony_ci .override = 0x150, 7762306a36Sopenharmony_ci .security = 0x154, 7862306a36Sopenharmony_ci }, 7962306a36Sopenharmony_ci }, 8062306a36Sopenharmony_ci }, { 8162306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_NVENCSWR, 8262306a36Sopenharmony_ci .name = "nvencswr", 8362306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_NVENC, 8462306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 8562306a36Sopenharmony_ci .sid = TEGRA234_SID_NVENC, 8662306a36Sopenharmony_ci .regs = { 8762306a36Sopenharmony_ci .sid = { 8862306a36Sopenharmony_ci .override = 0x158, 8962306a36Sopenharmony_ci .security = 0x15c, 9062306a36Sopenharmony_ci }, 9162306a36Sopenharmony_ci }, 9262306a36Sopenharmony_ci }, { 9362306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_DLA0RDB, 9462306a36Sopenharmony_ci .name = "dla0rdb", 9562306a36Sopenharmony_ci .sid = TEGRA234_SID_NVDLA0, 9662306a36Sopenharmony_ci .regs = { 9762306a36Sopenharmony_ci .sid = { 9862306a36Sopenharmony_ci .override = 0x160, 9962306a36Sopenharmony_ci .security = 0x164, 10062306a36Sopenharmony_ci }, 10162306a36Sopenharmony_ci }, 10262306a36Sopenharmony_ci }, { 10362306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_DLA0RDB1, 10462306a36Sopenharmony_ci .name = "dla0rdb1", 10562306a36Sopenharmony_ci .sid = TEGRA234_SID_NVDLA0, 10662306a36Sopenharmony_ci .regs = { 10762306a36Sopenharmony_ci .sid = { 10862306a36Sopenharmony_ci .override = 0x168, 10962306a36Sopenharmony_ci .security = 0x16c, 11062306a36Sopenharmony_ci }, 11162306a36Sopenharmony_ci }, 11262306a36Sopenharmony_ci }, { 11362306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_DLA0WRB, 11462306a36Sopenharmony_ci .name = "dla0wrb", 11562306a36Sopenharmony_ci .sid = TEGRA234_SID_NVDLA0, 11662306a36Sopenharmony_ci .regs = { 11762306a36Sopenharmony_ci .sid = { 11862306a36Sopenharmony_ci .override = 0x170, 11962306a36Sopenharmony_ci .security = 0x174, 12062306a36Sopenharmony_ci }, 12162306a36Sopenharmony_ci }, 12262306a36Sopenharmony_ci }, { 12362306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_DLA1RDB, 12462306a36Sopenharmony_ci .name = "dla1rdb", 12562306a36Sopenharmony_ci .sid = TEGRA234_SID_NVDLA1, 12662306a36Sopenharmony_ci .regs = { 12762306a36Sopenharmony_ci .sid = { 12862306a36Sopenharmony_ci .override = 0x178, 12962306a36Sopenharmony_ci .security = 0x17c, 13062306a36Sopenharmony_ci }, 13162306a36Sopenharmony_ci }, 13262306a36Sopenharmony_ci }, { 13362306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_PCIE7AW, 13462306a36Sopenharmony_ci .name = "pcie7aw", 13562306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_PCIE_7, 13662306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 13762306a36Sopenharmony_ci .sid = TEGRA234_SID_PCIE7, 13862306a36Sopenharmony_ci .regs = { 13962306a36Sopenharmony_ci .sid = { 14062306a36Sopenharmony_ci .override = 0x180, 14162306a36Sopenharmony_ci .security = 0x184, 14262306a36Sopenharmony_ci }, 14362306a36Sopenharmony_ci }, 14462306a36Sopenharmony_ci }, { 14562306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_PCIE8AR, 14662306a36Sopenharmony_ci .name = "pcie8ar", 14762306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_PCIE_8, 14862306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 14962306a36Sopenharmony_ci .sid = TEGRA234_SID_PCIE8, 15062306a36Sopenharmony_ci .regs = { 15162306a36Sopenharmony_ci .sid = { 15262306a36Sopenharmony_ci .override = 0x190, 15362306a36Sopenharmony_ci .security = 0x194, 15462306a36Sopenharmony_ci }, 15562306a36Sopenharmony_ci }, 15662306a36Sopenharmony_ci }, { 15762306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_HDAW, 15862306a36Sopenharmony_ci .name = "hdaw", 15962306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_HDA, 16062306a36Sopenharmony_ci .type = TEGRA_ICC_ISO_AUDIO, 16162306a36Sopenharmony_ci .sid = TEGRA234_SID_HDA, 16262306a36Sopenharmony_ci .regs = { 16362306a36Sopenharmony_ci .sid = { 16462306a36Sopenharmony_ci .override = 0x1a8, 16562306a36Sopenharmony_ci .security = 0x1ac, 16662306a36Sopenharmony_ci }, 16762306a36Sopenharmony_ci }, 16862306a36Sopenharmony_ci }, { 16962306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_PCIE8AW, 17062306a36Sopenharmony_ci .name = "pcie8aw", 17162306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_PCIE_8, 17262306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 17362306a36Sopenharmony_ci .sid = TEGRA234_SID_PCIE8, 17462306a36Sopenharmony_ci .regs = { 17562306a36Sopenharmony_ci .sid = { 17662306a36Sopenharmony_ci .override = 0x1d8, 17762306a36Sopenharmony_ci .security = 0x1dc, 17862306a36Sopenharmony_ci }, 17962306a36Sopenharmony_ci }, 18062306a36Sopenharmony_ci }, { 18162306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_PCIE9AR, 18262306a36Sopenharmony_ci .name = "pcie9ar", 18362306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_PCIE_9, 18462306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 18562306a36Sopenharmony_ci .sid = TEGRA234_SID_PCIE9, 18662306a36Sopenharmony_ci .regs = { 18762306a36Sopenharmony_ci .sid = { 18862306a36Sopenharmony_ci .override = 0x1e0, 18962306a36Sopenharmony_ci .security = 0x1e4, 19062306a36Sopenharmony_ci }, 19162306a36Sopenharmony_ci }, 19262306a36Sopenharmony_ci }, { 19362306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_PCIE6AR1, 19462306a36Sopenharmony_ci .name = "pcie6ar1", 19562306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_PCIE_6, 19662306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 19762306a36Sopenharmony_ci .sid = TEGRA234_SID_PCIE6, 19862306a36Sopenharmony_ci .regs = { 19962306a36Sopenharmony_ci .sid = { 20062306a36Sopenharmony_ci .override = 0x1e8, 20162306a36Sopenharmony_ci .security = 0x1ec, 20262306a36Sopenharmony_ci }, 20362306a36Sopenharmony_ci }, 20462306a36Sopenharmony_ci }, { 20562306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_PCIE9AW, 20662306a36Sopenharmony_ci .name = "pcie9aw", 20762306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_PCIE_9, 20862306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 20962306a36Sopenharmony_ci .sid = TEGRA234_SID_PCIE9, 21062306a36Sopenharmony_ci .regs = { 21162306a36Sopenharmony_ci .sid = { 21262306a36Sopenharmony_ci .override = 0x1f0, 21362306a36Sopenharmony_ci .security = 0x1f4, 21462306a36Sopenharmony_ci }, 21562306a36Sopenharmony_ci }, 21662306a36Sopenharmony_ci }, { 21762306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_PCIE10AR, 21862306a36Sopenharmony_ci .name = "pcie10ar", 21962306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_PCIE_10, 22062306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 22162306a36Sopenharmony_ci .sid = TEGRA234_SID_PCIE10, 22262306a36Sopenharmony_ci .regs = { 22362306a36Sopenharmony_ci .sid = { 22462306a36Sopenharmony_ci .override = 0x1f8, 22562306a36Sopenharmony_ci .security = 0x1fc, 22662306a36Sopenharmony_ci }, 22762306a36Sopenharmony_ci }, 22862306a36Sopenharmony_ci }, { 22962306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_PCIE10AW, 23062306a36Sopenharmony_ci .name = "pcie10aw", 23162306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_PCIE_10, 23262306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 23362306a36Sopenharmony_ci .sid = TEGRA234_SID_PCIE10, 23462306a36Sopenharmony_ci .regs = { 23562306a36Sopenharmony_ci .sid = { 23662306a36Sopenharmony_ci .override = 0x200, 23762306a36Sopenharmony_ci .security = 0x204, 23862306a36Sopenharmony_ci }, 23962306a36Sopenharmony_ci }, 24062306a36Sopenharmony_ci }, { 24162306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_PCIE10AR1, 24262306a36Sopenharmony_ci .name = "pcie10ar1", 24362306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_PCIE_10, 24462306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 24562306a36Sopenharmony_ci .sid = TEGRA234_SID_PCIE10, 24662306a36Sopenharmony_ci .regs = { 24762306a36Sopenharmony_ci .sid = { 24862306a36Sopenharmony_ci .override = 0x240, 24962306a36Sopenharmony_ci .security = 0x244, 25062306a36Sopenharmony_ci }, 25162306a36Sopenharmony_ci }, 25262306a36Sopenharmony_ci }, { 25362306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_PCIE7AR1, 25462306a36Sopenharmony_ci .name = "pcie7ar1", 25562306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_PCIE_7, 25662306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 25762306a36Sopenharmony_ci .sid = TEGRA234_SID_PCIE7, 25862306a36Sopenharmony_ci .regs = { 25962306a36Sopenharmony_ci .sid = { 26062306a36Sopenharmony_ci .override = 0x248, 26162306a36Sopenharmony_ci .security = 0x24c, 26262306a36Sopenharmony_ci }, 26362306a36Sopenharmony_ci }, 26462306a36Sopenharmony_ci }, { 26562306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_MGBEARD, 26662306a36Sopenharmony_ci .name = "mgbeard", 26762306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_EQOS, 26862306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 26962306a36Sopenharmony_ci .sid = TEGRA234_SID_MGBE, 27062306a36Sopenharmony_ci .regs = { 27162306a36Sopenharmony_ci .sid = { 27262306a36Sopenharmony_ci .override = 0x2c0, 27362306a36Sopenharmony_ci .security = 0x2c4, 27462306a36Sopenharmony_ci }, 27562306a36Sopenharmony_ci }, 27662306a36Sopenharmony_ci }, { 27762306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_MGBEBRD, 27862306a36Sopenharmony_ci .name = "mgbebrd", 27962306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_EQOS, 28062306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 28162306a36Sopenharmony_ci .sid = TEGRA234_SID_MGBE_VF1, 28262306a36Sopenharmony_ci .regs = { 28362306a36Sopenharmony_ci .sid = { 28462306a36Sopenharmony_ci .override = 0x2c8, 28562306a36Sopenharmony_ci .security = 0x2cc, 28662306a36Sopenharmony_ci }, 28762306a36Sopenharmony_ci }, 28862306a36Sopenharmony_ci }, { 28962306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_MGBECRD, 29062306a36Sopenharmony_ci .name = "mgbecrd", 29162306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_EQOS, 29262306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 29362306a36Sopenharmony_ci .sid = TEGRA234_SID_MGBE_VF2, 29462306a36Sopenharmony_ci .regs = { 29562306a36Sopenharmony_ci .sid = { 29662306a36Sopenharmony_ci .override = 0x2d0, 29762306a36Sopenharmony_ci .security = 0x2d4, 29862306a36Sopenharmony_ci }, 29962306a36Sopenharmony_ci }, 30062306a36Sopenharmony_ci }, { 30162306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_MGBEDRD, 30262306a36Sopenharmony_ci .name = "mgbedrd", 30362306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_EQOS, 30462306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 30562306a36Sopenharmony_ci .sid = TEGRA234_SID_MGBE_VF3, 30662306a36Sopenharmony_ci .regs = { 30762306a36Sopenharmony_ci .sid = { 30862306a36Sopenharmony_ci .override = 0x2d8, 30962306a36Sopenharmony_ci .security = 0x2dc, 31062306a36Sopenharmony_ci }, 31162306a36Sopenharmony_ci }, 31262306a36Sopenharmony_ci }, { 31362306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_MGBEAWR, 31462306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_EQOS, 31562306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 31662306a36Sopenharmony_ci .name = "mgbeawr", 31762306a36Sopenharmony_ci .sid = TEGRA234_SID_MGBE, 31862306a36Sopenharmony_ci .regs = { 31962306a36Sopenharmony_ci .sid = { 32062306a36Sopenharmony_ci .override = 0x2e0, 32162306a36Sopenharmony_ci .security = 0x2e4, 32262306a36Sopenharmony_ci }, 32362306a36Sopenharmony_ci }, 32462306a36Sopenharmony_ci }, { 32562306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_MGBEBWR, 32662306a36Sopenharmony_ci .name = "mgbebwr", 32762306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_EQOS, 32862306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 32962306a36Sopenharmony_ci .sid = TEGRA234_SID_MGBE_VF1, 33062306a36Sopenharmony_ci .regs = { 33162306a36Sopenharmony_ci .sid = { 33262306a36Sopenharmony_ci .override = 0x2f8, 33362306a36Sopenharmony_ci .security = 0x2fc, 33462306a36Sopenharmony_ci }, 33562306a36Sopenharmony_ci }, 33662306a36Sopenharmony_ci }, { 33762306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_MGBECWR, 33862306a36Sopenharmony_ci .name = "mgbecwr", 33962306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_EQOS, 34062306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 34162306a36Sopenharmony_ci .sid = TEGRA234_SID_MGBE_VF2, 34262306a36Sopenharmony_ci .regs = { 34362306a36Sopenharmony_ci .sid = { 34462306a36Sopenharmony_ci .override = 0x308, 34562306a36Sopenharmony_ci .security = 0x30c, 34662306a36Sopenharmony_ci }, 34762306a36Sopenharmony_ci }, 34862306a36Sopenharmony_ci }, { 34962306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_SDMMCRAB, 35062306a36Sopenharmony_ci .name = "sdmmcrab", 35162306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_SDMMC_4, 35262306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 35362306a36Sopenharmony_ci .sid = TEGRA234_SID_SDMMC4, 35462306a36Sopenharmony_ci .regs = { 35562306a36Sopenharmony_ci .sid = { 35662306a36Sopenharmony_ci .override = 0x318, 35762306a36Sopenharmony_ci .security = 0x31c, 35862306a36Sopenharmony_ci }, 35962306a36Sopenharmony_ci }, 36062306a36Sopenharmony_ci }, { 36162306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_MGBEDWR, 36262306a36Sopenharmony_ci .name = "mgbedwr", 36362306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_EQOS, 36462306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 36562306a36Sopenharmony_ci .sid = TEGRA234_SID_MGBE_VF3, 36662306a36Sopenharmony_ci .regs = { 36762306a36Sopenharmony_ci .sid = { 36862306a36Sopenharmony_ci .override = 0x328, 36962306a36Sopenharmony_ci .security = 0x32c, 37062306a36Sopenharmony_ci }, 37162306a36Sopenharmony_ci }, 37262306a36Sopenharmony_ci }, { 37362306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_SDMMCWAB, 37462306a36Sopenharmony_ci .name = "sdmmcwab", 37562306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_SDMMC_4, 37662306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 37762306a36Sopenharmony_ci .sid = TEGRA234_SID_SDMMC4, 37862306a36Sopenharmony_ci .regs = { 37962306a36Sopenharmony_ci .sid = { 38062306a36Sopenharmony_ci .override = 0x338, 38162306a36Sopenharmony_ci .security = 0x33c, 38262306a36Sopenharmony_ci }, 38362306a36Sopenharmony_ci }, 38462306a36Sopenharmony_ci }, { 38562306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_VICSRD, 38662306a36Sopenharmony_ci .name = "vicsrd", 38762306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_VIC, 38862306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 38962306a36Sopenharmony_ci .sid = TEGRA234_SID_VIC, 39062306a36Sopenharmony_ci .regs = { 39162306a36Sopenharmony_ci .sid = { 39262306a36Sopenharmony_ci .override = 0x360, 39362306a36Sopenharmony_ci .security = 0x364, 39462306a36Sopenharmony_ci }, 39562306a36Sopenharmony_ci }, 39662306a36Sopenharmony_ci }, { 39762306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_VICSWR, 39862306a36Sopenharmony_ci .name = "vicswr", 39962306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_VIC, 40062306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 40162306a36Sopenharmony_ci .sid = TEGRA234_SID_VIC, 40262306a36Sopenharmony_ci .regs = { 40362306a36Sopenharmony_ci .sid = { 40462306a36Sopenharmony_ci .override = 0x368, 40562306a36Sopenharmony_ci .security = 0x36c, 40662306a36Sopenharmony_ci }, 40762306a36Sopenharmony_ci }, 40862306a36Sopenharmony_ci }, { 40962306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_DLA1RDB1, 41062306a36Sopenharmony_ci .name = "dla1rdb1", 41162306a36Sopenharmony_ci .sid = TEGRA234_SID_NVDLA1, 41262306a36Sopenharmony_ci .regs = { 41362306a36Sopenharmony_ci .sid = { 41462306a36Sopenharmony_ci .override = 0x370, 41562306a36Sopenharmony_ci .security = 0x374, 41662306a36Sopenharmony_ci }, 41762306a36Sopenharmony_ci }, 41862306a36Sopenharmony_ci }, { 41962306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_DLA1WRB, 42062306a36Sopenharmony_ci .name = "dla1wrb", 42162306a36Sopenharmony_ci .sid = TEGRA234_SID_NVDLA1, 42262306a36Sopenharmony_ci .regs = { 42362306a36Sopenharmony_ci .sid = { 42462306a36Sopenharmony_ci .override = 0x378, 42562306a36Sopenharmony_ci .security = 0x37c, 42662306a36Sopenharmony_ci }, 42762306a36Sopenharmony_ci }, 42862306a36Sopenharmony_ci }, { 42962306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_VI2W, 43062306a36Sopenharmony_ci .name = "vi2w", 43162306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_VI2, 43262306a36Sopenharmony_ci .type = TEGRA_ICC_ISO_VI, 43362306a36Sopenharmony_ci .sid = TEGRA234_SID_ISO_VI2, 43462306a36Sopenharmony_ci .regs = { 43562306a36Sopenharmony_ci .sid = { 43662306a36Sopenharmony_ci .override = 0x380, 43762306a36Sopenharmony_ci .security = 0x384, 43862306a36Sopenharmony_ci }, 43962306a36Sopenharmony_ci }, 44062306a36Sopenharmony_ci }, { 44162306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_VI2FALR, 44262306a36Sopenharmony_ci .name = "vi2falr", 44362306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_VI2FAL, 44462306a36Sopenharmony_ci .type = TEGRA_ICC_ISO_VIFAL, 44562306a36Sopenharmony_ci .sid = TEGRA234_SID_ISO_VI2FALC, 44662306a36Sopenharmony_ci .regs = { 44762306a36Sopenharmony_ci .sid = { 44862306a36Sopenharmony_ci .override = 0x388, 44962306a36Sopenharmony_ci .security = 0x38c, 45062306a36Sopenharmony_ci }, 45162306a36Sopenharmony_ci }, 45262306a36Sopenharmony_ci }, { 45362306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_NVDECSRD, 45462306a36Sopenharmony_ci .name = "nvdecsrd", 45562306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_NVDEC, 45662306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 45762306a36Sopenharmony_ci .sid = TEGRA234_SID_NVDEC, 45862306a36Sopenharmony_ci .regs = { 45962306a36Sopenharmony_ci .sid = { 46062306a36Sopenharmony_ci .override = 0x3c0, 46162306a36Sopenharmony_ci .security = 0x3c4, 46262306a36Sopenharmony_ci }, 46362306a36Sopenharmony_ci }, 46462306a36Sopenharmony_ci }, { 46562306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_NVDECSWR, 46662306a36Sopenharmony_ci .name = "nvdecswr", 46762306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_NVDEC, 46862306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 46962306a36Sopenharmony_ci .sid = TEGRA234_SID_NVDEC, 47062306a36Sopenharmony_ci .regs = { 47162306a36Sopenharmony_ci .sid = { 47262306a36Sopenharmony_ci .override = 0x3c8, 47362306a36Sopenharmony_ci .security = 0x3cc, 47462306a36Sopenharmony_ci }, 47562306a36Sopenharmony_ci }, 47662306a36Sopenharmony_ci }, { 47762306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_APER, 47862306a36Sopenharmony_ci .name = "aper", 47962306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_APE, 48062306a36Sopenharmony_ci .type = TEGRA_ICC_ISO_AUDIO, 48162306a36Sopenharmony_ci .sid = TEGRA234_SID_APE, 48262306a36Sopenharmony_ci .regs = { 48362306a36Sopenharmony_ci .sid = { 48462306a36Sopenharmony_ci .override = 0x3d0, 48562306a36Sopenharmony_ci .security = 0x3d4, 48662306a36Sopenharmony_ci }, 48762306a36Sopenharmony_ci }, 48862306a36Sopenharmony_ci }, { 48962306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_APEW, 49062306a36Sopenharmony_ci .name = "apew", 49162306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_APE, 49262306a36Sopenharmony_ci .type = TEGRA_ICC_ISO_AUDIO, 49362306a36Sopenharmony_ci .sid = TEGRA234_SID_APE, 49462306a36Sopenharmony_ci .regs = { 49562306a36Sopenharmony_ci .sid = { 49662306a36Sopenharmony_ci .override = 0x3d8, 49762306a36Sopenharmony_ci .security = 0x3dc, 49862306a36Sopenharmony_ci }, 49962306a36Sopenharmony_ci }, 50062306a36Sopenharmony_ci }, { 50162306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_VI2FALW, 50262306a36Sopenharmony_ci .name = "vi2falw", 50362306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_VI2FAL, 50462306a36Sopenharmony_ci .type = TEGRA_ICC_ISO_VIFAL, 50562306a36Sopenharmony_ci .sid = TEGRA234_SID_ISO_VI2FALC, 50662306a36Sopenharmony_ci .regs = { 50762306a36Sopenharmony_ci .sid = { 50862306a36Sopenharmony_ci .override = 0x3e0, 50962306a36Sopenharmony_ci .security = 0x3e4, 51062306a36Sopenharmony_ci }, 51162306a36Sopenharmony_ci }, 51262306a36Sopenharmony_ci }, { 51362306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_NVJPGSRD, 51462306a36Sopenharmony_ci .name = "nvjpgsrd", 51562306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_NVJPG_0, 51662306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 51762306a36Sopenharmony_ci .sid = TEGRA234_SID_NVJPG, 51862306a36Sopenharmony_ci .regs = { 51962306a36Sopenharmony_ci .sid = { 52062306a36Sopenharmony_ci .override = 0x3f0, 52162306a36Sopenharmony_ci .security = 0x3f4, 52262306a36Sopenharmony_ci }, 52362306a36Sopenharmony_ci }, 52462306a36Sopenharmony_ci }, { 52562306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_NVJPGSWR, 52662306a36Sopenharmony_ci .name = "nvjpgswr", 52762306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_NVJPG_0, 52862306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 52962306a36Sopenharmony_ci .sid = TEGRA234_SID_NVJPG, 53062306a36Sopenharmony_ci .regs = { 53162306a36Sopenharmony_ci .sid = { 53262306a36Sopenharmony_ci .override = 0x3f8, 53362306a36Sopenharmony_ci .security = 0x3fc, 53462306a36Sopenharmony_ci }, 53562306a36Sopenharmony_ci }, 53662306a36Sopenharmony_ci }, { 53762306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_NVDISPLAYR, 53862306a36Sopenharmony_ci .name = "nvdisplayr", 53962306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_DISPLAY, 54062306a36Sopenharmony_ci .type = TEGRA_ICC_ISO_DISPLAY, 54162306a36Sopenharmony_ci .sid = TEGRA234_SID_ISO_NVDISPLAY, 54262306a36Sopenharmony_ci .regs = { 54362306a36Sopenharmony_ci .sid = { 54462306a36Sopenharmony_ci .override = 0x490, 54562306a36Sopenharmony_ci .security = 0x494, 54662306a36Sopenharmony_ci }, 54762306a36Sopenharmony_ci }, 54862306a36Sopenharmony_ci }, { 54962306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_BPMPR, 55062306a36Sopenharmony_ci .name = "bpmpr", 55162306a36Sopenharmony_ci .sid = TEGRA234_SID_BPMP, 55262306a36Sopenharmony_ci .regs = { 55362306a36Sopenharmony_ci .sid = { 55462306a36Sopenharmony_ci .override = 0x498, 55562306a36Sopenharmony_ci .security = 0x49c, 55662306a36Sopenharmony_ci }, 55762306a36Sopenharmony_ci }, 55862306a36Sopenharmony_ci }, { 55962306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_BPMPW, 56062306a36Sopenharmony_ci .name = "bpmpw", 56162306a36Sopenharmony_ci .sid = TEGRA234_SID_BPMP, 56262306a36Sopenharmony_ci .regs = { 56362306a36Sopenharmony_ci .sid = { 56462306a36Sopenharmony_ci .override = 0x4a0, 56562306a36Sopenharmony_ci .security = 0x4a4, 56662306a36Sopenharmony_ci }, 56762306a36Sopenharmony_ci }, 56862306a36Sopenharmony_ci }, { 56962306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_BPMPDMAR, 57062306a36Sopenharmony_ci .name = "bpmpdmar", 57162306a36Sopenharmony_ci .sid = TEGRA234_SID_BPMP, 57262306a36Sopenharmony_ci .regs = { 57362306a36Sopenharmony_ci .sid = { 57462306a36Sopenharmony_ci .override = 0x4a8, 57562306a36Sopenharmony_ci .security = 0x4ac, 57662306a36Sopenharmony_ci }, 57762306a36Sopenharmony_ci }, 57862306a36Sopenharmony_ci }, { 57962306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_BPMPDMAW, 58062306a36Sopenharmony_ci .name = "bpmpdmaw", 58162306a36Sopenharmony_ci .sid = TEGRA234_SID_BPMP, 58262306a36Sopenharmony_ci .regs = { 58362306a36Sopenharmony_ci .sid = { 58462306a36Sopenharmony_ci .override = 0x4b0, 58562306a36Sopenharmony_ci .security = 0x4b4, 58662306a36Sopenharmony_ci }, 58762306a36Sopenharmony_ci }, 58862306a36Sopenharmony_ci }, { 58962306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_APEDMAR, 59062306a36Sopenharmony_ci .name = "apedmar", 59162306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_APEDMA, 59262306a36Sopenharmony_ci .type = TEGRA_ICC_ISO_AUDIO, 59362306a36Sopenharmony_ci .sid = TEGRA234_SID_APE, 59462306a36Sopenharmony_ci .regs = { 59562306a36Sopenharmony_ci .sid = { 59662306a36Sopenharmony_ci .override = 0x4f8, 59762306a36Sopenharmony_ci .security = 0x4fc, 59862306a36Sopenharmony_ci }, 59962306a36Sopenharmony_ci }, 60062306a36Sopenharmony_ci }, { 60162306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_APEDMAW, 60262306a36Sopenharmony_ci .name = "apedmaw", 60362306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_APEDMA, 60462306a36Sopenharmony_ci .type = TEGRA_ICC_ISO_AUDIO, 60562306a36Sopenharmony_ci .sid = TEGRA234_SID_APE, 60662306a36Sopenharmony_ci .regs = { 60762306a36Sopenharmony_ci .sid = { 60862306a36Sopenharmony_ci .override = 0x500, 60962306a36Sopenharmony_ci .security = 0x504, 61062306a36Sopenharmony_ci }, 61162306a36Sopenharmony_ci }, 61262306a36Sopenharmony_ci }, { 61362306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_NVDISPLAYR1, 61462306a36Sopenharmony_ci .name = "nvdisplayr1", 61562306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_DISPLAY, 61662306a36Sopenharmony_ci .type = TEGRA_ICC_ISO_DISPLAY, 61762306a36Sopenharmony_ci .sid = TEGRA234_SID_ISO_NVDISPLAY, 61862306a36Sopenharmony_ci .regs = { 61962306a36Sopenharmony_ci .sid = { 62062306a36Sopenharmony_ci .override = 0x508, 62162306a36Sopenharmony_ci .security = 0x50c, 62262306a36Sopenharmony_ci }, 62362306a36Sopenharmony_ci }, 62462306a36Sopenharmony_ci }, { 62562306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_DLA0RDA, 62662306a36Sopenharmony_ci .name = "dla0rda", 62762306a36Sopenharmony_ci .sid = TEGRA234_SID_NVDLA0, 62862306a36Sopenharmony_ci .regs = { 62962306a36Sopenharmony_ci .sid = { 63062306a36Sopenharmony_ci .override = 0x5f0, 63162306a36Sopenharmony_ci .security = 0x5f4, 63262306a36Sopenharmony_ci }, 63362306a36Sopenharmony_ci }, 63462306a36Sopenharmony_ci }, { 63562306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_DLA0FALRDB, 63662306a36Sopenharmony_ci .name = "dla0falrdb", 63762306a36Sopenharmony_ci .sid = TEGRA234_SID_NVDLA0, 63862306a36Sopenharmony_ci .regs = { 63962306a36Sopenharmony_ci .sid = { 64062306a36Sopenharmony_ci .override = 0x5f8, 64162306a36Sopenharmony_ci .security = 0x5fc, 64262306a36Sopenharmony_ci }, 64362306a36Sopenharmony_ci }, 64462306a36Sopenharmony_ci }, { 64562306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_DLA0WRA, 64662306a36Sopenharmony_ci .name = "dla0wra", 64762306a36Sopenharmony_ci .sid = TEGRA234_SID_NVDLA0, 64862306a36Sopenharmony_ci .regs = { 64962306a36Sopenharmony_ci .sid = { 65062306a36Sopenharmony_ci .override = 0x600, 65162306a36Sopenharmony_ci .security = 0x604, 65262306a36Sopenharmony_ci }, 65362306a36Sopenharmony_ci }, 65462306a36Sopenharmony_ci }, { 65562306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_DLA0FALWRB, 65662306a36Sopenharmony_ci .name = "dla0falwrb", 65762306a36Sopenharmony_ci .sid = TEGRA234_SID_NVDLA0, 65862306a36Sopenharmony_ci .regs = { 65962306a36Sopenharmony_ci .sid = { 66062306a36Sopenharmony_ci .override = 0x608, 66162306a36Sopenharmony_ci .security = 0x60c, 66262306a36Sopenharmony_ci }, 66362306a36Sopenharmony_ci }, 66462306a36Sopenharmony_ci }, { 66562306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_DLA1RDA, 66662306a36Sopenharmony_ci .name = "dla1rda", 66762306a36Sopenharmony_ci .sid = TEGRA234_SID_NVDLA1, 66862306a36Sopenharmony_ci .regs = { 66962306a36Sopenharmony_ci .sid = { 67062306a36Sopenharmony_ci .override = 0x610, 67162306a36Sopenharmony_ci .security = 0x614, 67262306a36Sopenharmony_ci }, 67362306a36Sopenharmony_ci }, 67462306a36Sopenharmony_ci }, { 67562306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_DLA1FALRDB, 67662306a36Sopenharmony_ci .name = "dla1falrdb", 67762306a36Sopenharmony_ci .sid = TEGRA234_SID_NVDLA1, 67862306a36Sopenharmony_ci .regs = { 67962306a36Sopenharmony_ci .sid = { 68062306a36Sopenharmony_ci .override = 0x618, 68162306a36Sopenharmony_ci .security = 0x61c, 68262306a36Sopenharmony_ci }, 68362306a36Sopenharmony_ci }, 68462306a36Sopenharmony_ci }, { 68562306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_DLA1WRA, 68662306a36Sopenharmony_ci .name = "dla1wra", 68762306a36Sopenharmony_ci .sid = TEGRA234_SID_NVDLA1, 68862306a36Sopenharmony_ci .regs = { 68962306a36Sopenharmony_ci .sid = { 69062306a36Sopenharmony_ci .override = 0x620, 69162306a36Sopenharmony_ci .security = 0x624, 69262306a36Sopenharmony_ci }, 69362306a36Sopenharmony_ci }, 69462306a36Sopenharmony_ci }, { 69562306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_DLA1FALWRB, 69662306a36Sopenharmony_ci .name = "dla1falwrb", 69762306a36Sopenharmony_ci .sid = TEGRA234_SID_NVDLA1, 69862306a36Sopenharmony_ci .regs = { 69962306a36Sopenharmony_ci .sid = { 70062306a36Sopenharmony_ci .override = 0x628, 70162306a36Sopenharmony_ci .security = 0x62c, 70262306a36Sopenharmony_ci }, 70362306a36Sopenharmony_ci }, 70462306a36Sopenharmony_ci }, { 70562306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_PCIE0R, 70662306a36Sopenharmony_ci .name = "pcie0r", 70762306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_PCIE_0, 70862306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 70962306a36Sopenharmony_ci .sid = TEGRA234_SID_PCIE0, 71062306a36Sopenharmony_ci .regs = { 71162306a36Sopenharmony_ci .sid = { 71262306a36Sopenharmony_ci .override = 0x6c0, 71362306a36Sopenharmony_ci .security = 0x6c4, 71462306a36Sopenharmony_ci }, 71562306a36Sopenharmony_ci }, 71662306a36Sopenharmony_ci }, { 71762306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_PCIE0W, 71862306a36Sopenharmony_ci .name = "pcie0w", 71962306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_PCIE_0, 72062306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 72162306a36Sopenharmony_ci .sid = TEGRA234_SID_PCIE0, 72262306a36Sopenharmony_ci .regs = { 72362306a36Sopenharmony_ci .sid = { 72462306a36Sopenharmony_ci .override = 0x6c8, 72562306a36Sopenharmony_ci .security = 0x6cc, 72662306a36Sopenharmony_ci }, 72762306a36Sopenharmony_ci }, 72862306a36Sopenharmony_ci }, { 72962306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_PCIE1R, 73062306a36Sopenharmony_ci .name = "pcie1r", 73162306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_PCIE_1, 73262306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 73362306a36Sopenharmony_ci .sid = TEGRA234_SID_PCIE1, 73462306a36Sopenharmony_ci .regs = { 73562306a36Sopenharmony_ci .sid = { 73662306a36Sopenharmony_ci .override = 0x6d0, 73762306a36Sopenharmony_ci .security = 0x6d4, 73862306a36Sopenharmony_ci }, 73962306a36Sopenharmony_ci }, 74062306a36Sopenharmony_ci }, { 74162306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_PCIE1W, 74262306a36Sopenharmony_ci .name = "pcie1w", 74362306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_PCIE_1, 74462306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 74562306a36Sopenharmony_ci .sid = TEGRA234_SID_PCIE1, 74662306a36Sopenharmony_ci .regs = { 74762306a36Sopenharmony_ci .sid = { 74862306a36Sopenharmony_ci .override = 0x6d8, 74962306a36Sopenharmony_ci .security = 0x6dc, 75062306a36Sopenharmony_ci }, 75162306a36Sopenharmony_ci }, 75262306a36Sopenharmony_ci }, { 75362306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_PCIE2AR, 75462306a36Sopenharmony_ci .name = "pcie2ar", 75562306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_PCIE_2, 75662306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 75762306a36Sopenharmony_ci .sid = TEGRA234_SID_PCIE2, 75862306a36Sopenharmony_ci .regs = { 75962306a36Sopenharmony_ci .sid = { 76062306a36Sopenharmony_ci .override = 0x6e0, 76162306a36Sopenharmony_ci .security = 0x6e4, 76262306a36Sopenharmony_ci }, 76362306a36Sopenharmony_ci }, 76462306a36Sopenharmony_ci }, { 76562306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_PCIE2AW, 76662306a36Sopenharmony_ci .name = "pcie2aw", 76762306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_PCIE_2, 76862306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 76962306a36Sopenharmony_ci .sid = TEGRA234_SID_PCIE2, 77062306a36Sopenharmony_ci .regs = { 77162306a36Sopenharmony_ci .sid = { 77262306a36Sopenharmony_ci .override = 0x6e8, 77362306a36Sopenharmony_ci .security = 0x6ec, 77462306a36Sopenharmony_ci }, 77562306a36Sopenharmony_ci }, 77662306a36Sopenharmony_ci }, { 77762306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_PCIE3R, 77862306a36Sopenharmony_ci .name = "pcie3r", 77962306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_PCIE_3, 78062306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 78162306a36Sopenharmony_ci .sid = TEGRA234_SID_PCIE3, 78262306a36Sopenharmony_ci .regs = { 78362306a36Sopenharmony_ci .sid = { 78462306a36Sopenharmony_ci .override = 0x6f0, 78562306a36Sopenharmony_ci .security = 0x6f4, 78662306a36Sopenharmony_ci }, 78762306a36Sopenharmony_ci }, 78862306a36Sopenharmony_ci }, { 78962306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_PCIE3W, 79062306a36Sopenharmony_ci .name = "pcie3w", 79162306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_PCIE_3, 79262306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 79362306a36Sopenharmony_ci .sid = TEGRA234_SID_PCIE3, 79462306a36Sopenharmony_ci .regs = { 79562306a36Sopenharmony_ci .sid = { 79662306a36Sopenharmony_ci .override = 0x6f8, 79762306a36Sopenharmony_ci .security = 0x6fc, 79862306a36Sopenharmony_ci }, 79962306a36Sopenharmony_ci }, 80062306a36Sopenharmony_ci }, { 80162306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_PCIE4R, 80262306a36Sopenharmony_ci .name = "pcie4r", 80362306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_PCIE_4, 80462306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 80562306a36Sopenharmony_ci .sid = TEGRA234_SID_PCIE4, 80662306a36Sopenharmony_ci .regs = { 80762306a36Sopenharmony_ci .sid = { 80862306a36Sopenharmony_ci .override = 0x700, 80962306a36Sopenharmony_ci .security = 0x704, 81062306a36Sopenharmony_ci }, 81162306a36Sopenharmony_ci }, 81262306a36Sopenharmony_ci }, { 81362306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_PCIE4W, 81462306a36Sopenharmony_ci .name = "pcie4w", 81562306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_PCIE_4, 81662306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 81762306a36Sopenharmony_ci .sid = TEGRA234_SID_PCIE4, 81862306a36Sopenharmony_ci .regs = { 81962306a36Sopenharmony_ci .sid = { 82062306a36Sopenharmony_ci .override = 0x708, 82162306a36Sopenharmony_ci .security = 0x70c, 82262306a36Sopenharmony_ci }, 82362306a36Sopenharmony_ci }, 82462306a36Sopenharmony_ci }, { 82562306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_PCIE5R, 82662306a36Sopenharmony_ci .name = "pcie5r", 82762306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_PCIE_5, 82862306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 82962306a36Sopenharmony_ci .sid = TEGRA234_SID_PCIE5, 83062306a36Sopenharmony_ci .regs = { 83162306a36Sopenharmony_ci .sid = { 83262306a36Sopenharmony_ci .override = 0x710, 83362306a36Sopenharmony_ci .security = 0x714, 83462306a36Sopenharmony_ci }, 83562306a36Sopenharmony_ci }, 83662306a36Sopenharmony_ci }, { 83762306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_PCIE5W, 83862306a36Sopenharmony_ci .name = "pcie5w", 83962306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_PCIE_5, 84062306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 84162306a36Sopenharmony_ci .sid = TEGRA234_SID_PCIE5, 84262306a36Sopenharmony_ci .regs = { 84362306a36Sopenharmony_ci .sid = { 84462306a36Sopenharmony_ci .override = 0x718, 84562306a36Sopenharmony_ci .security = 0x71c, 84662306a36Sopenharmony_ci }, 84762306a36Sopenharmony_ci }, 84862306a36Sopenharmony_ci }, { 84962306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_DLA0RDA1, 85062306a36Sopenharmony_ci .name = "dla0rda1", 85162306a36Sopenharmony_ci .sid = TEGRA234_SID_NVDLA0, 85262306a36Sopenharmony_ci .regs = { 85362306a36Sopenharmony_ci .sid = { 85462306a36Sopenharmony_ci .override = 0x748, 85562306a36Sopenharmony_ci .security = 0x74c, 85662306a36Sopenharmony_ci }, 85762306a36Sopenharmony_ci }, 85862306a36Sopenharmony_ci }, { 85962306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_DLA1RDA1, 86062306a36Sopenharmony_ci .name = "dla1rda1", 86162306a36Sopenharmony_ci .sid = TEGRA234_SID_NVDLA1, 86262306a36Sopenharmony_ci .regs = { 86362306a36Sopenharmony_ci .sid = { 86462306a36Sopenharmony_ci .override = 0x750, 86562306a36Sopenharmony_ci .security = 0x754, 86662306a36Sopenharmony_ci }, 86762306a36Sopenharmony_ci }, 86862306a36Sopenharmony_ci }, { 86962306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_PCIE5R1, 87062306a36Sopenharmony_ci .name = "pcie5r1", 87162306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_PCIE_5, 87262306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 87362306a36Sopenharmony_ci .sid = TEGRA234_SID_PCIE5, 87462306a36Sopenharmony_ci .regs = { 87562306a36Sopenharmony_ci .sid = { 87662306a36Sopenharmony_ci .override = 0x778, 87762306a36Sopenharmony_ci .security = 0x77c, 87862306a36Sopenharmony_ci }, 87962306a36Sopenharmony_ci }, 88062306a36Sopenharmony_ci }, { 88162306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_NVJPG1SRD, 88262306a36Sopenharmony_ci .name = "nvjpg1srd", 88362306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_NVJPG_1, 88462306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 88562306a36Sopenharmony_ci .sid = TEGRA234_SID_NVJPG1, 88662306a36Sopenharmony_ci .regs = { 88762306a36Sopenharmony_ci .sid = { 88862306a36Sopenharmony_ci .override = 0x918, 88962306a36Sopenharmony_ci .security = 0x91c, 89062306a36Sopenharmony_ci }, 89162306a36Sopenharmony_ci }, 89262306a36Sopenharmony_ci }, { 89362306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_NVJPG1SWR, 89462306a36Sopenharmony_ci .name = "nvjpg1swr", 89562306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_NVJPG_1, 89662306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 89762306a36Sopenharmony_ci .sid = TEGRA234_SID_NVJPG1, 89862306a36Sopenharmony_ci .regs = { 89962306a36Sopenharmony_ci .sid = { 90062306a36Sopenharmony_ci .override = 0x920, 90162306a36Sopenharmony_ci .security = 0x924, 90262306a36Sopenharmony_ci }, 90362306a36Sopenharmony_ci }, 90462306a36Sopenharmony_ci }, { 90562306a36Sopenharmony_ci .id = TEGRA_ICC_MC_CPU_CLUSTER0, 90662306a36Sopenharmony_ci .name = "sw_cluster0", 90762306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_CPU_CLUSTER0, 90862306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 90962306a36Sopenharmony_ci }, { 91062306a36Sopenharmony_ci .id = TEGRA_ICC_MC_CPU_CLUSTER1, 91162306a36Sopenharmony_ci .name = "sw_cluster1", 91262306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_CPU_CLUSTER1, 91362306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 91462306a36Sopenharmony_ci }, { 91562306a36Sopenharmony_ci .id = TEGRA_ICC_MC_CPU_CLUSTER2, 91662306a36Sopenharmony_ci .name = "sw_cluster2", 91762306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_CPU_CLUSTER2, 91862306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 91962306a36Sopenharmony_ci }, { 92062306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_NVL1R, 92162306a36Sopenharmony_ci .name = "nvl1r", 92262306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_GPU, 92362306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 92462306a36Sopenharmony_ci }, { 92562306a36Sopenharmony_ci .id = TEGRA234_MEMORY_CLIENT_NVL1W, 92662306a36Sopenharmony_ci .name = "nvl1w", 92762306a36Sopenharmony_ci .bpmp_id = TEGRA_ICC_BPMP_GPU, 92862306a36Sopenharmony_ci .type = TEGRA_ICC_NISO, 92962306a36Sopenharmony_ci }, 93062306a36Sopenharmony_ci}; 93162306a36Sopenharmony_ci 93262306a36Sopenharmony_ci/* 93362306a36Sopenharmony_ci * tegra234_mc_icc_set() - Pass MC client info to the BPMP-FW 93462306a36Sopenharmony_ci * @src: ICC node for Memory Controller's (MC) Client 93562306a36Sopenharmony_ci * @dst: ICC node for Memory Controller (MC) 93662306a36Sopenharmony_ci * 93762306a36Sopenharmony_ci * Passing the current request info from the MC to the BPMP-FW where 93862306a36Sopenharmony_ci * LA and PTSA registers are accessed and the final EMC freq is set 93962306a36Sopenharmony_ci * based on client_id, type, latency and bandwidth. 94062306a36Sopenharmony_ci * icc_set_bw() makes set_bw calls for both MC and EMC providers in 94162306a36Sopenharmony_ci * sequence. Both the calls are protected by 'mutex_lock(&icc_lock)'. 94262306a36Sopenharmony_ci * So, the data passed won't be updated by concurrent set calls from 94362306a36Sopenharmony_ci * other clients. 94462306a36Sopenharmony_ci */ 94562306a36Sopenharmony_cistatic int tegra234_mc_icc_set(struct icc_node *src, struct icc_node *dst) 94662306a36Sopenharmony_ci{ 94762306a36Sopenharmony_ci struct tegra_mc *mc = icc_provider_to_tegra_mc(dst->provider); 94862306a36Sopenharmony_ci struct mrq_bwmgr_int_request bwmgr_req = { 0 }; 94962306a36Sopenharmony_ci struct mrq_bwmgr_int_response bwmgr_resp = { 0 }; 95062306a36Sopenharmony_ci const struct tegra_mc_client *pclient = src->data; 95162306a36Sopenharmony_ci struct tegra_bpmp_message msg; 95262306a36Sopenharmony_ci int ret; 95362306a36Sopenharmony_ci 95462306a36Sopenharmony_ci /* 95562306a36Sopenharmony_ci * Same Src and Dst node will happen during boot from icc_node_add(). 95662306a36Sopenharmony_ci * This can be used to pre-initialize and set bandwidth for all clients 95762306a36Sopenharmony_ci * before their drivers are loaded. We are skipping this case as for us, 95862306a36Sopenharmony_ci * the pre-initialization already happened in Bootloader(MB2) and BPMP-FW. 95962306a36Sopenharmony_ci */ 96062306a36Sopenharmony_ci if (src->id == dst->id) 96162306a36Sopenharmony_ci return 0; 96262306a36Sopenharmony_ci 96362306a36Sopenharmony_ci if (!mc->bwmgr_mrq_supported) 96462306a36Sopenharmony_ci return 0; 96562306a36Sopenharmony_ci 96662306a36Sopenharmony_ci if (!mc->bpmp) { 96762306a36Sopenharmony_ci dev_err(mc->dev, "BPMP reference NULL\n"); 96862306a36Sopenharmony_ci return -ENOENT; 96962306a36Sopenharmony_ci } 97062306a36Sopenharmony_ci 97162306a36Sopenharmony_ci if (pclient->type == TEGRA_ICC_NISO) 97262306a36Sopenharmony_ci bwmgr_req.bwmgr_calc_set_req.niso_bw = src->avg_bw; 97362306a36Sopenharmony_ci else 97462306a36Sopenharmony_ci bwmgr_req.bwmgr_calc_set_req.iso_bw = src->avg_bw; 97562306a36Sopenharmony_ci 97662306a36Sopenharmony_ci bwmgr_req.bwmgr_calc_set_req.client_id = pclient->bpmp_id; 97762306a36Sopenharmony_ci 97862306a36Sopenharmony_ci bwmgr_req.cmd = CMD_BWMGR_INT_CALC_AND_SET; 97962306a36Sopenharmony_ci bwmgr_req.bwmgr_calc_set_req.mc_floor = src->peak_bw; 98062306a36Sopenharmony_ci bwmgr_req.bwmgr_calc_set_req.floor_unit = BWMGR_INT_UNIT_KBPS; 98162306a36Sopenharmony_ci 98262306a36Sopenharmony_ci memset(&msg, 0, sizeof(msg)); 98362306a36Sopenharmony_ci msg.mrq = MRQ_BWMGR_INT; 98462306a36Sopenharmony_ci msg.tx.data = &bwmgr_req; 98562306a36Sopenharmony_ci msg.tx.size = sizeof(bwmgr_req); 98662306a36Sopenharmony_ci msg.rx.data = &bwmgr_resp; 98762306a36Sopenharmony_ci msg.rx.size = sizeof(bwmgr_resp); 98862306a36Sopenharmony_ci 98962306a36Sopenharmony_ci if (pclient->bpmp_id >= TEGRA_ICC_BPMP_CPU_CLUSTER0 && 99062306a36Sopenharmony_ci pclient->bpmp_id <= TEGRA_ICC_BPMP_CPU_CLUSTER2) 99162306a36Sopenharmony_ci msg.flags = TEGRA_BPMP_MESSAGE_RESET; 99262306a36Sopenharmony_ci 99362306a36Sopenharmony_ci ret = tegra_bpmp_transfer(mc->bpmp, &msg); 99462306a36Sopenharmony_ci if (ret < 0) { 99562306a36Sopenharmony_ci dev_err(mc->dev, "BPMP transfer failed: %d\n", ret); 99662306a36Sopenharmony_ci goto error; 99762306a36Sopenharmony_ci } 99862306a36Sopenharmony_ci if (msg.rx.ret < 0) { 99962306a36Sopenharmony_ci pr_err("failed to set bandwidth for %u: %d\n", 100062306a36Sopenharmony_ci bwmgr_req.bwmgr_calc_set_req.client_id, msg.rx.ret); 100162306a36Sopenharmony_ci ret = -EINVAL; 100262306a36Sopenharmony_ci } 100362306a36Sopenharmony_ci 100462306a36Sopenharmony_cierror: 100562306a36Sopenharmony_ci return ret; 100662306a36Sopenharmony_ci} 100762306a36Sopenharmony_ci 100862306a36Sopenharmony_cistatic int tegra234_mc_icc_aggregate(struct icc_node *node, u32 tag, u32 avg_bw, 100962306a36Sopenharmony_ci u32 peak_bw, u32 *agg_avg, u32 *agg_peak) 101062306a36Sopenharmony_ci{ 101162306a36Sopenharmony_ci struct icc_provider *p = node->provider; 101262306a36Sopenharmony_ci struct tegra_mc *mc = icc_provider_to_tegra_mc(p); 101362306a36Sopenharmony_ci 101462306a36Sopenharmony_ci if (!mc->bwmgr_mrq_supported) 101562306a36Sopenharmony_ci return 0; 101662306a36Sopenharmony_ci 101762306a36Sopenharmony_ci if (node->id == TEGRA_ICC_MC_CPU_CLUSTER0 || 101862306a36Sopenharmony_ci node->id == TEGRA_ICC_MC_CPU_CLUSTER1 || 101962306a36Sopenharmony_ci node->id == TEGRA_ICC_MC_CPU_CLUSTER2) { 102062306a36Sopenharmony_ci if (mc) 102162306a36Sopenharmony_ci peak_bw = peak_bw * mc->num_channels; 102262306a36Sopenharmony_ci } 102362306a36Sopenharmony_ci 102462306a36Sopenharmony_ci *agg_avg += avg_bw; 102562306a36Sopenharmony_ci *agg_peak = max(*agg_peak, peak_bw); 102662306a36Sopenharmony_ci 102762306a36Sopenharmony_ci return 0; 102862306a36Sopenharmony_ci} 102962306a36Sopenharmony_ci 103062306a36Sopenharmony_cistatic int tegra234_mc_icc_get_init_bw(struct icc_node *node, u32 *avg, u32 *peak) 103162306a36Sopenharmony_ci{ 103262306a36Sopenharmony_ci *avg = 0; 103362306a36Sopenharmony_ci *peak = 0; 103462306a36Sopenharmony_ci 103562306a36Sopenharmony_ci return 0; 103662306a36Sopenharmony_ci} 103762306a36Sopenharmony_ci 103862306a36Sopenharmony_cistatic const struct tegra_mc_icc_ops tegra234_mc_icc_ops = { 103962306a36Sopenharmony_ci .xlate = tegra_mc_icc_xlate, 104062306a36Sopenharmony_ci .aggregate = tegra234_mc_icc_aggregate, 104162306a36Sopenharmony_ci .get_bw = tegra234_mc_icc_get_init_bw, 104262306a36Sopenharmony_ci .set = tegra234_mc_icc_set, 104362306a36Sopenharmony_ci}; 104462306a36Sopenharmony_ci 104562306a36Sopenharmony_ciconst struct tegra_mc_soc tegra234_mc_soc = { 104662306a36Sopenharmony_ci .num_clients = ARRAY_SIZE(tegra234_mc_clients), 104762306a36Sopenharmony_ci .clients = tegra234_mc_clients, 104862306a36Sopenharmony_ci .num_address_bits = 40, 104962306a36Sopenharmony_ci .num_channels = 16, 105062306a36Sopenharmony_ci .client_id_mask = 0x1ff, 105162306a36Sopenharmony_ci .intmask = MC_INT_DECERR_ROUTE_SANITY | 105262306a36Sopenharmony_ci MC_INT_DECERR_GENERALIZED_CARVEOUT | MC_INT_DECERR_MTS | 105362306a36Sopenharmony_ci MC_INT_SECERR_SEC | MC_INT_DECERR_VPR | 105462306a36Sopenharmony_ci MC_INT_SECURITY_VIOLATION | MC_INT_DECERR_EMEM, 105562306a36Sopenharmony_ci .has_addr_hi_reg = true, 105662306a36Sopenharmony_ci .ops = &tegra186_mc_ops, 105762306a36Sopenharmony_ci .icc_ops = &tegra234_mc_icc_ops, 105862306a36Sopenharmony_ci .ch_intmask = 0x0000ff00, 105962306a36Sopenharmony_ci .global_intstatus_channel_shift = 8, 106062306a36Sopenharmony_ci /* 106162306a36Sopenharmony_ci * Additionally, there are lite carveouts but those are not currently 106262306a36Sopenharmony_ci * supported. 106362306a36Sopenharmony_ci */ 106462306a36Sopenharmony_ci .num_carveouts = 32, 106562306a36Sopenharmony_ci}; 1066