diff options
author | Thierry Reding <treding@nvidia.com> | 2018-04-13 07:33:50 -0400 |
---|---|---|
committer | Thierry Reding <treding@nvidia.com> | 2018-04-30 04:12:21 -0400 |
commit | 273d760060e365c37e6e5bb3c0810a5b93fa569d (patch) | |
tree | 1746bda091c9fc58b75c9a9cca16671be1102089 | |
parent | 1b19b0561d41966eb59c27157eab52be5bd97826 (diff) |
memory: tegra: Add Tegra210 memory controller hot resets
Define the table of memory controller hot resets for Tegra210.
Signed-off-by: Thierry Reding <treding@nvidia.com>
-rw-r--r-- | drivers/memory/tegra/tegra210.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/drivers/memory/tegra/tegra210.c b/drivers/memory/tegra/tegra210.c index b729f49ffc8f..d00a77160407 100644 --- a/drivers/memory/tegra/tegra210.c +++ b/drivers/memory/tegra/tegra210.c | |||
@@ -1080,6 +1080,48 @@ static const struct tegra_smmu_soc tegra210_smmu_soc = { | |||
1080 | .num_asids = 128, | 1080 | .num_asids = 128, |
1081 | }; | 1081 | }; |
1082 | 1082 | ||
1083 | #define TEGRA210_MC_RESET(_name, _control, _status, _bit) \ | ||
1084 | { \ | ||
1085 | .name = #_name, \ | ||
1086 | .id = TEGRA210_MC_RESET_##_name, \ | ||
1087 | .control = _control, \ | ||
1088 | .status = _status, \ | ||
1089 | .bit = _bit, \ | ||
1090 | } | ||
1091 | |||
1092 | static const struct tegra_mc_reset tegra210_mc_resets[] = { | ||
1093 | TEGRA210_MC_RESET(AFI, 0x200, 0x204, 0), | ||
1094 | TEGRA210_MC_RESET(AVPC, 0x200, 0x204, 1), | ||
1095 | TEGRA210_MC_RESET(DC, 0x200, 0x204, 2), | ||
1096 | TEGRA210_MC_RESET(DCB, 0x200, 0x204, 3), | ||
1097 | TEGRA210_MC_RESET(HC, 0x200, 0x204, 6), | ||
1098 | TEGRA210_MC_RESET(HDA, 0x200, 0x204, 7), | ||
1099 | TEGRA210_MC_RESET(ISP2, 0x200, 0x204, 8), | ||
1100 | TEGRA210_MC_RESET(MPCORE, 0x200, 0x204, 9), | ||
1101 | TEGRA210_MC_RESET(NVENC, 0x200, 0x204, 11), | ||
1102 | TEGRA210_MC_RESET(PPCS, 0x200, 0x204, 14), | ||
1103 | TEGRA210_MC_RESET(SATA, 0x200, 0x204, 15), | ||
1104 | TEGRA210_MC_RESET(VI, 0x200, 0x204, 17), | ||
1105 | TEGRA210_MC_RESET(VIC, 0x200, 0x204, 18), | ||
1106 | TEGRA210_MC_RESET(XUSB_HOST, 0x200, 0x204, 19), | ||
1107 | TEGRA210_MC_RESET(XUSB_DEV, 0x200, 0x204, 20), | ||
1108 | TEGRA210_MC_RESET(A9AVP, 0x200, 0x204, 21), | ||
1109 | TEGRA210_MC_RESET(TSEC, 0x200, 0x204, 22), | ||
1110 | TEGRA210_MC_RESET(SDMMC1, 0x200, 0x204, 29), | ||
1111 | TEGRA210_MC_RESET(SDMMC2, 0x200, 0x204, 30), | ||
1112 | TEGRA210_MC_RESET(SDMMC3, 0x200, 0x204, 31), | ||
1113 | TEGRA210_MC_RESET(SDMMC4, 0x970, 0x974, 0), | ||
1114 | TEGRA210_MC_RESET(ISP2B, 0x970, 0x974, 1), | ||
1115 | TEGRA210_MC_RESET(GPU, 0x970, 0x974, 2), | ||
1116 | TEGRA210_MC_RESET(NVDEC, 0x970, 0x974, 5), | ||
1117 | TEGRA210_MC_RESET(APE, 0x970, 0x974, 6), | ||
1118 | TEGRA210_MC_RESET(SE, 0x970, 0x974, 7), | ||
1119 | TEGRA210_MC_RESET(NVJPG, 0x970, 0x974, 8), | ||
1120 | TEGRA210_MC_RESET(AXIAP, 0x970, 0x974, 11), | ||
1121 | TEGRA210_MC_RESET(ETR, 0x970, 0x974, 12), | ||
1122 | TEGRA210_MC_RESET(TSECB, 0x970, 0x974, 13), | ||
1123 | }; | ||
1124 | |||
1083 | const struct tegra_mc_soc tegra210_mc_soc = { | 1125 | const struct tegra_mc_soc tegra210_mc_soc = { |
1084 | .clients = tegra210_mc_clients, | 1126 | .clients = tegra210_mc_clients, |
1085 | .num_clients = ARRAY_SIZE(tegra210_mc_clients), | 1127 | .num_clients = ARRAY_SIZE(tegra210_mc_clients), |
@@ -1090,4 +1132,7 @@ const struct tegra_mc_soc tegra210_mc_soc = { | |||
1090 | .intmask = MC_INT_DECERR_MTS | MC_INT_SECERR_SEC | MC_INT_DECERR_VPR | | 1132 | .intmask = MC_INT_DECERR_MTS | MC_INT_SECERR_SEC | MC_INT_DECERR_VPR | |
1091 | MC_INT_INVALID_APB_ASID_UPDATE | MC_INT_INVALID_SMMU_PAGE | | 1133 | MC_INT_INVALID_APB_ASID_UPDATE | MC_INT_INVALID_SMMU_PAGE | |
1092 | MC_INT_SECURITY_VIOLATION | MC_INT_DECERR_EMEM, | 1134 | MC_INT_SECURITY_VIOLATION | MC_INT_DECERR_EMEM, |
1135 | .reset_ops = &terga_mc_reset_ops_common, | ||
1136 | .resets = tegra210_mc_resets, | ||
1137 | .num_resets = ARRAY_SIZE(tegra210_mc_resets), | ||
1093 | }; | 1138 | }; |