.. | .. |
---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
---|
1 | 2 | /* |
---|
2 | 3 | * Copyright (C) 2014 NVIDIA CORPORATION. All rights reserved. |
---|
3 | | - * |
---|
4 | | - * This program is free software; you can redistribute it and/or modify |
---|
5 | | - * it under the terms of the GNU General Public License version 2 as |
---|
6 | | - * published by the Free Software Foundation. |
---|
7 | 4 | */ |
---|
8 | 5 | |
---|
9 | 6 | #include <linux/of.h> |
---|
.. | .. |
---|
12 | 9 | #include <dt-bindings/memory/tegra124-mc.h> |
---|
13 | 10 | |
---|
14 | 11 | #include "mc.h" |
---|
15 | | - |
---|
16 | | -#define MC_EMEM_ARB_CFG 0x90 |
---|
17 | | -#define MC_EMEM_ARB_OUTSTANDING_REQ 0x94 |
---|
18 | | -#define MC_EMEM_ARB_TIMING_RCD 0x98 |
---|
19 | | -#define MC_EMEM_ARB_TIMING_RP 0x9c |
---|
20 | | -#define MC_EMEM_ARB_TIMING_RC 0xa0 |
---|
21 | | -#define MC_EMEM_ARB_TIMING_RAS 0xa4 |
---|
22 | | -#define MC_EMEM_ARB_TIMING_FAW 0xa8 |
---|
23 | | -#define MC_EMEM_ARB_TIMING_RRD 0xac |
---|
24 | | -#define MC_EMEM_ARB_TIMING_RAP2PRE 0xb0 |
---|
25 | | -#define MC_EMEM_ARB_TIMING_WAP2PRE 0xb4 |
---|
26 | | -#define MC_EMEM_ARB_TIMING_R2R 0xb8 |
---|
27 | | -#define MC_EMEM_ARB_TIMING_W2W 0xbc |
---|
28 | | -#define MC_EMEM_ARB_TIMING_R2W 0xc0 |
---|
29 | | -#define MC_EMEM_ARB_TIMING_W2R 0xc4 |
---|
30 | | -#define MC_EMEM_ARB_DA_TURNS 0xd0 |
---|
31 | | -#define MC_EMEM_ARB_DA_COVERS 0xd4 |
---|
32 | | -#define MC_EMEM_ARB_MISC0 0xd8 |
---|
33 | | -#define MC_EMEM_ARB_MISC1 0xdc |
---|
34 | | -#define MC_EMEM_ARB_RING1_THROTTLE 0xe0 |
---|
35 | | - |
---|
36 | | -static const unsigned long tegra124_mc_emem_regs[] = { |
---|
37 | | - MC_EMEM_ARB_CFG, |
---|
38 | | - MC_EMEM_ARB_OUTSTANDING_REQ, |
---|
39 | | - MC_EMEM_ARB_TIMING_RCD, |
---|
40 | | - MC_EMEM_ARB_TIMING_RP, |
---|
41 | | - MC_EMEM_ARB_TIMING_RC, |
---|
42 | | - MC_EMEM_ARB_TIMING_RAS, |
---|
43 | | - MC_EMEM_ARB_TIMING_FAW, |
---|
44 | | - MC_EMEM_ARB_TIMING_RRD, |
---|
45 | | - MC_EMEM_ARB_TIMING_RAP2PRE, |
---|
46 | | - MC_EMEM_ARB_TIMING_WAP2PRE, |
---|
47 | | - MC_EMEM_ARB_TIMING_R2R, |
---|
48 | | - MC_EMEM_ARB_TIMING_W2W, |
---|
49 | | - MC_EMEM_ARB_TIMING_R2W, |
---|
50 | | - MC_EMEM_ARB_TIMING_W2R, |
---|
51 | | - MC_EMEM_ARB_DA_TURNS, |
---|
52 | | - MC_EMEM_ARB_DA_COVERS, |
---|
53 | | - MC_EMEM_ARB_MISC0, |
---|
54 | | - MC_EMEM_ARB_MISC1, |
---|
55 | | - MC_EMEM_ARB_RING1_THROTTLE |
---|
56 | | -}; |
---|
57 | 12 | |
---|
58 | 13 | static const struct tegra_mc_client tegra124_mc_clients[] = { |
---|
59 | 14 | { |
---|
.. | .. |
---|
999 | 954 | { .name = "vi", .swgroup = TEGRA_SWGROUP_VI, .reg = 0x280 }, |
---|
1000 | 955 | }; |
---|
1001 | 956 | |
---|
1002 | | -static const unsigned int tegra124_group_display[] = { |
---|
| 957 | +static const unsigned int tegra124_group_drm[] = { |
---|
1003 | 958 | TEGRA_SWGROUP_DC, |
---|
1004 | 959 | TEGRA_SWGROUP_DCB, |
---|
| 960 | + TEGRA_SWGROUP_VIC, |
---|
1005 | 961 | }; |
---|
1006 | 962 | |
---|
1007 | 963 | static const struct tegra_smmu_group_soc tegra124_groups[] = { |
---|
1008 | 964 | { |
---|
1009 | | - .name = "display", |
---|
1010 | | - .swgroups = tegra124_group_display, |
---|
1011 | | - .num_swgroups = ARRAY_SIZE(tegra124_group_display), |
---|
| 965 | + .name = "drm", |
---|
| 966 | + .swgroups = tegra124_group_drm, |
---|
| 967 | + .num_swgroups = ARRAY_SIZE(tegra124_group_drm), |
---|
1012 | 968 | }, |
---|
1013 | 969 | }; |
---|
1014 | 970 | |
---|
.. | .. |
---|
1049 | 1005 | }; |
---|
1050 | 1006 | |
---|
1051 | 1007 | #ifdef CONFIG_ARCH_TEGRA_124_SOC |
---|
| 1008 | +static const unsigned long tegra124_mc_emem_regs[] = { |
---|
| 1009 | + MC_EMEM_ARB_CFG, |
---|
| 1010 | + MC_EMEM_ARB_OUTSTANDING_REQ, |
---|
| 1011 | + MC_EMEM_ARB_TIMING_RCD, |
---|
| 1012 | + MC_EMEM_ARB_TIMING_RP, |
---|
| 1013 | + MC_EMEM_ARB_TIMING_RC, |
---|
| 1014 | + MC_EMEM_ARB_TIMING_RAS, |
---|
| 1015 | + MC_EMEM_ARB_TIMING_FAW, |
---|
| 1016 | + MC_EMEM_ARB_TIMING_RRD, |
---|
| 1017 | + MC_EMEM_ARB_TIMING_RAP2PRE, |
---|
| 1018 | + MC_EMEM_ARB_TIMING_WAP2PRE, |
---|
| 1019 | + MC_EMEM_ARB_TIMING_R2R, |
---|
| 1020 | + MC_EMEM_ARB_TIMING_W2W, |
---|
| 1021 | + MC_EMEM_ARB_TIMING_R2W, |
---|
| 1022 | + MC_EMEM_ARB_TIMING_W2R, |
---|
| 1023 | + MC_EMEM_ARB_DA_TURNS, |
---|
| 1024 | + MC_EMEM_ARB_DA_COVERS, |
---|
| 1025 | + MC_EMEM_ARB_MISC0, |
---|
| 1026 | + MC_EMEM_ARB_MISC1, |
---|
| 1027 | + MC_EMEM_ARB_RING1_THROTTLE |
---|
| 1028 | +}; |
---|
| 1029 | + |
---|
1052 | 1030 | static const struct tegra_smmu_soc tegra124_smmu_soc = { |
---|
1053 | 1031 | .clients = tegra124_mc_clients, |
---|
1054 | 1032 | .num_clients = ARRAY_SIZE(tegra124_mc_clients), |
---|
.. | .. |
---|
1074 | 1052 | .intmask = MC_INT_DECERR_MTS | MC_INT_SECERR_SEC | MC_INT_DECERR_VPR | |
---|
1075 | 1053 | MC_INT_INVALID_APB_ASID_UPDATE | MC_INT_INVALID_SMMU_PAGE | |
---|
1076 | 1054 | MC_INT_SECURITY_VIOLATION | MC_INT_DECERR_EMEM, |
---|
1077 | | - .reset_ops = &terga_mc_reset_ops_common, |
---|
| 1055 | + .reset_ops = &tegra_mc_reset_ops_common, |
---|
1078 | 1056 | .resets = tegra124_mc_resets, |
---|
1079 | 1057 | .num_resets = ARRAY_SIZE(tegra124_mc_resets), |
---|
1080 | 1058 | }; |
---|
.. | .. |
---|
1104 | 1082 | .intmask = MC_INT_DECERR_MTS | MC_INT_SECERR_SEC | MC_INT_DECERR_VPR | |
---|
1105 | 1083 | MC_INT_INVALID_APB_ASID_UPDATE | MC_INT_INVALID_SMMU_PAGE | |
---|
1106 | 1084 | MC_INT_SECURITY_VIOLATION | MC_INT_DECERR_EMEM, |
---|
1107 | | - .reset_ops = &terga_mc_reset_ops_common, |
---|
| 1085 | + .reset_ops = &tegra_mc_reset_ops_common, |
---|
1108 | 1086 | .resets = tegra124_mc_resets, |
---|
1109 | 1087 | .num_resets = ARRAY_SIZE(tegra124_mc_resets), |
---|
1110 | 1088 | }; |
---|