diff options
author | Dmitry Osipenko <digetx@gmail.com> | 2018-04-13 07:33:51 -0400 |
---|---|---|
committer | Thierry Reding <treding@nvidia.com> | 2018-04-30 04:12:21 -0400 |
commit | 1b19b0561d41966eb59c27157eab52be5bd97826 (patch) | |
tree | 44f09e7806b613dbb9ee795bd0a5c5e445b3a1a2 | |
parent | 3788c4ed4a38cb9329ac202fa1b77f738c1ae0a4 (diff) |
memory: tegra: Add Tegra124 memory controller hot resets
Define the table of memory controller hot resets for Tegra124.
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
-rw-r--r-- | drivers/memory/tegra/tegra124.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/drivers/memory/tegra/tegra124.c b/drivers/memory/tegra/tegra124.c index bd16555cca0f..b561a1fe7f46 100644 --- a/drivers/memory/tegra/tegra124.c +++ b/drivers/memory/tegra/tegra124.c | |||
@@ -1012,6 +1012,42 @@ static const struct tegra_smmu_group_soc tegra124_groups[] = { | |||
1012 | }, | 1012 | }, |
1013 | }; | 1013 | }; |
1014 | 1014 | ||
1015 | #define TEGRA124_MC_RESET(_name, _control, _status, _bit) \ | ||
1016 | { \ | ||
1017 | .name = #_name, \ | ||
1018 | .id = TEGRA124_MC_RESET_##_name, \ | ||
1019 | .control = _control, \ | ||
1020 | .status = _status, \ | ||
1021 | .bit = _bit, \ | ||
1022 | } | ||
1023 | |||
1024 | static const struct tegra_mc_reset tegra124_mc_resets[] = { | ||
1025 | TEGRA124_MC_RESET(AFI, 0x200, 0x204, 0), | ||
1026 | TEGRA124_MC_RESET(AVPC, 0x200, 0x204, 1), | ||
1027 | TEGRA124_MC_RESET(DC, 0x200, 0x204, 2), | ||
1028 | TEGRA124_MC_RESET(DCB, 0x200, 0x204, 3), | ||
1029 | TEGRA124_MC_RESET(HC, 0x200, 0x204, 6), | ||
1030 | TEGRA124_MC_RESET(HDA, 0x200, 0x204, 7), | ||
1031 | TEGRA124_MC_RESET(ISP2, 0x200, 0x204, 8), | ||
1032 | TEGRA124_MC_RESET(MPCORE, 0x200, 0x204, 9), | ||
1033 | TEGRA124_MC_RESET(MPCORELP, 0x200, 0x204, 10), | ||
1034 | TEGRA124_MC_RESET(MSENC, 0x200, 0x204, 11), | ||
1035 | TEGRA124_MC_RESET(PPCS, 0x200, 0x204, 14), | ||
1036 | TEGRA124_MC_RESET(SATA, 0x200, 0x204, 15), | ||
1037 | TEGRA124_MC_RESET(VDE, 0x200, 0x204, 16), | ||
1038 | TEGRA124_MC_RESET(VI, 0x200, 0x204, 17), | ||
1039 | TEGRA124_MC_RESET(VIC, 0x200, 0x204, 18), | ||
1040 | TEGRA124_MC_RESET(XUSB_HOST, 0x200, 0x204, 19), | ||
1041 | TEGRA124_MC_RESET(XUSB_DEV, 0x200, 0x204, 20), | ||
1042 | TEGRA124_MC_RESET(TSEC, 0x200, 0x204, 21), | ||
1043 | TEGRA124_MC_RESET(SDMMC1, 0x200, 0x204, 22), | ||
1044 | TEGRA124_MC_RESET(SDMMC2, 0x200, 0x204, 23), | ||
1045 | TEGRA124_MC_RESET(SDMMC3, 0x200, 0x204, 25), | ||
1046 | TEGRA124_MC_RESET(SDMMC4, 0x970, 0x974, 0), | ||
1047 | TEGRA124_MC_RESET(ISP2B, 0x970, 0x974, 1), | ||
1048 | TEGRA124_MC_RESET(GPU, 0x970, 0x974, 2), | ||
1049 | }; | ||
1050 | |||
1015 | #ifdef CONFIG_ARCH_TEGRA_124_SOC | 1051 | #ifdef CONFIG_ARCH_TEGRA_124_SOC |
1016 | static const struct tegra_smmu_soc tegra124_smmu_soc = { | 1052 | static const struct tegra_smmu_soc tegra124_smmu_soc = { |
1017 | .clients = tegra124_mc_clients, | 1053 | .clients = tegra124_mc_clients, |
@@ -1038,6 +1074,9 @@ const struct tegra_mc_soc tegra124_mc_soc = { | |||
1038 | .intmask = MC_INT_DECERR_MTS | MC_INT_SECERR_SEC | MC_INT_DECERR_VPR | | 1074 | .intmask = MC_INT_DECERR_MTS | MC_INT_SECERR_SEC | MC_INT_DECERR_VPR | |
1039 | MC_INT_INVALID_APB_ASID_UPDATE | MC_INT_INVALID_SMMU_PAGE | | 1075 | MC_INT_INVALID_APB_ASID_UPDATE | MC_INT_INVALID_SMMU_PAGE | |
1040 | MC_INT_SECURITY_VIOLATION | MC_INT_DECERR_EMEM, | 1076 | MC_INT_SECURITY_VIOLATION | MC_INT_DECERR_EMEM, |
1077 | .reset_ops = &terga_mc_reset_ops_common, | ||
1078 | .resets = tegra124_mc_resets, | ||
1079 | .num_resets = ARRAY_SIZE(tegra124_mc_resets), | ||
1041 | }; | 1080 | }; |
1042 | #endif /* CONFIG_ARCH_TEGRA_124_SOC */ | 1081 | #endif /* CONFIG_ARCH_TEGRA_124_SOC */ |
1043 | 1082 | ||
@@ -1065,5 +1104,8 @@ const struct tegra_mc_soc tegra132_mc_soc = { | |||
1065 | .intmask = MC_INT_DECERR_MTS | MC_INT_SECERR_SEC | MC_INT_DECERR_VPR | | 1104 | .intmask = MC_INT_DECERR_MTS | MC_INT_SECERR_SEC | MC_INT_DECERR_VPR | |
1066 | MC_INT_INVALID_APB_ASID_UPDATE | MC_INT_INVALID_SMMU_PAGE | | 1105 | MC_INT_INVALID_APB_ASID_UPDATE | MC_INT_INVALID_SMMU_PAGE | |
1067 | MC_INT_SECURITY_VIOLATION | MC_INT_DECERR_EMEM, | 1106 | MC_INT_SECURITY_VIOLATION | MC_INT_DECERR_EMEM, |
1107 | .reset_ops = &terga_mc_reset_ops_common, | ||
1108 | .resets = tegra124_mc_resets, | ||
1109 | .num_resets = ARRAY_SIZE(tegra124_mc_resets), | ||
1068 | }; | 1110 | }; |
1069 | #endif /* CONFIG_ARCH_TEGRA_132_SOC */ | 1111 | #endif /* CONFIG_ARCH_TEGRA_132_SOC */ |