diff options
Diffstat (limited to 'arch/arm/mach-tegra/include/mach/mc.h')
-rw-r--r-- | arch/arm/mach-tegra/include/mach/mc.h | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/include/mach/mc.h b/arch/arm/mach-tegra/include/mach/mc.h new file mode 100644 index 00000000000..576153ad08d --- /dev/null +++ b/arch/arm/mach-tegra/include/mach/mc.h | |||
@@ -0,0 +1,109 @@ | |||
1 | /* | ||
2 | * arch/arm/mach-tegra/include/mach/mc.h | ||
3 | * | ||
4 | * Copyright (C) 2010 Google, Inc. | ||
5 | * | ||
6 | * Author: | ||
7 | * Erik Gilling <konkers@google.com> | ||
8 | * | ||
9 | * This software is licensed under the terms of the GNU General Public | ||
10 | * License version 2, as published by the Free Software Foundation, and | ||
11 | * may be copied, distributed, and modified under those terms. | ||
12 | * | ||
13 | * This program is distributed in the hope that it will be useful, | ||
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
16 | * GNU General Public License for more details. | ||
17 | * | ||
18 | */ | ||
19 | |||
20 | #ifndef __MACH_TEGRA_MC_H | ||
21 | #define __MACH_TEGRA_MC_H | ||
22 | |||
23 | #if defined(CONFIG_ARCH_TEGRA_2x_SOC) | ||
24 | #define TEGRA_MC_FPRI_CTRL_AVPC 0x17c | ||
25 | #define TEGRA_MC_FPRI_CTRL_DC 0x180 | ||
26 | #define TEGRA_MC_FPRI_CTRL_DCB 0x184 | ||
27 | #define TEGRA_MC_FPRI_CTRL_EPP 0x188 | ||
28 | #define TEGRA_MC_FPRI_CTRL_G2 0x18c | ||
29 | #define TEGRA_MC_FPRI_CTRL_HC 0x190 | ||
30 | #define TEGRA_MC_FPRI_CTRL_ISP 0x194 | ||
31 | #define TEGRA_MC_FPRI_CTRL_MPCORE 0x198 | ||
32 | #define TEGRA_MC_FPRI_CTRL_MPEA 0x19c | ||
33 | #define TEGRA_MC_FPRI_CTRL_MPEB 0x1a0 | ||
34 | #define TEGRA_MC_FPRI_CTRL_MPEC 0x1a4 | ||
35 | #define TEGRA_MC_FPRI_CTRL_NV 0x1a8 | ||
36 | #define TEGRA_MC_FPRI_CTRL_PPCS 0x1ac | ||
37 | #define TEGRA_MC_FPRI_CTRL_VDE 0x1b0 | ||
38 | #define TEGRA_MC_FPRI_CTRL_VI 0x1b4 | ||
39 | |||
40 | #define TEGRA_MC_CLIENT_AVPCARM7R ((TEGRA_MC_FPRI_CTRL_AVPC << 8) | 0) | ||
41 | #define TEGRA_MC_CLIENT_AVPCARM7W ((TEGRA_MC_FPRI_CTRL_AVPC << 8) | 2) | ||
42 | #define TEGRA_MC_CLIENT_DISPLAY0A ((TEGRA_MC_FPRI_CTRL_DC << 8) | 0) | ||
43 | #define TEGRA_MC_CLIENT_DISPLAY0B ((TEGRA_MC_FPRI_CTRL_DC << 8) | 2) | ||
44 | #define TEGRA_MC_CLIENT_DISPLAY0C ((TEGRA_MC_FPRI_CTRL_DC << 8) | 4) | ||
45 | #define TEGRA_MC_CLIENT_DISPLAY1B ((TEGRA_MC_FPRI_CTRL_DC << 8) | 6) | ||
46 | #define TEGRA_MC_CLIENT_DISPLAYHC ((TEGRA_MC_FPRI_CTRL_DC << 8) | 8) | ||
47 | #define TEGRA_MC_CLIENT_DISPLAY0AB ((TEGRA_MC_FPRI_CTRL_DCB << 8) | 0) | ||
48 | #define TEGRA_MC_CLIENT_DISPLAY0BB ((TEGRA_MC_FPRI_CTRL_DCB << 8) | 2) | ||
49 | #define TEGRA_MC_CLIENT_DISPLAY0CB ((TEGRA_MC_FPRI_CTRL_DCB << 8) | 4) | ||
50 | #define TEGRA_MC_CLIENT_DISPLAY1BB ((TEGRA_MC_FPRI_CTRL_DCB << 8) | 6) | ||
51 | #define TEGRA_MC_CLIENT_DISPLAYHCB ((TEGRA_MC_FPRI_CTRL_DCB << 8) | 8) | ||
52 | #define TEGRA_MC_CLIENT_EPPUP ((TEGRA_MC_FPRI_CTRL_EPP << 8) | 0) | ||
53 | #define TEGRA_MC_CLIENT_EPPU ((TEGRA_MC_FPRI_CTRL_EPP << 8) | 2) | ||
54 | #define TEGRA_MC_CLIENT_EPPV ((TEGRA_MC_FPRI_CTRL_EPP << 8) | 4) | ||
55 | #define TEGRA_MC_CLIENT_EPPY ((TEGRA_MC_FPRI_CTRL_EPP << 8) | 6) | ||
56 | #define TEGRA_MC_CLIENT_G2PR ((TEGRA_MC_FPRI_CTRL_G2 << 8) | 0) | ||
57 | #define TEGRA_MC_CLIENT_G2SR ((TEGRA_MC_FPRI_CTRL_G2 << 8) | 2) | ||
58 | #define TEGRA_MC_CLIENT_G2DR ((TEGRA_MC_FPRI_CTRL_G2 << 8) | 4) | ||
59 | #define TEGRA_MC_CLIENT_G2DW ((TEGRA_MC_FPRI_CTRL_G2 << 8) | 6) | ||
60 | #define TEGRA_MC_CLIENT_HOST1XDMAR ((TEGRA_MC_FPRI_CTRL_HC << 8) | 0) | ||
61 | #define TEGRA_MC_CLIENT_HOST1XR ((TEGRA_MC_FPRI_CTRL_HC << 8) | 2) | ||
62 | #define TEGRA_MC_CLIENT_HOST1XW ((TEGRA_MC_FPRI_CTRL_HC << 8) | 4) | ||
63 | #define TEGRA_MC_CLIENT_ISPW ((TEGRA_MC_FPRI_CTRL_ISP << 8) | 0) | ||
64 | #define TEGRA_MC_CLIENT_MPCORER ((TEGRA_MC_FPRI_CTRL_MPCORE << 8) | 0) | ||
65 | #define TEGRA_MC_CLIENT_MPCOREW ((TEGRA_MC_FPRI_CTRL_MPCORE << 8) | 2) | ||
66 | #define TEGRA_MC_CLIENT_MPEAMEMRD ((TEGRA_MC_FPRI_CTRL_MPEA << 8) | 0) | ||
67 | #define TEGRA_MC_CLIENT_MPEUNIFBR ((TEGRA_MC_FPRI_CTRL_MPEB << 8) | 0) | ||
68 | #define TEGRA_MC_CLIENT_MPE_IPRED ((TEGRA_MC_FPRI_CTRL_MPEB << 8) | 2) | ||
69 | #define TEGRA_MC_CLIENT_MPEUNIFBW ((TEGRA_MC_FPRI_CTRL_MPEB << 8) | 4) | ||
70 | #define TEGRA_MC_CLIENT_MPECSRD ((TEGRA_MC_FPRI_CTRL_MPEC << 8) | 0) | ||
71 | #define TEGRA_MC_CLIENT_MPECSWR ((TEGRA_MC_FPRI_CTRL_MPEC << 8) | 2) | ||
72 | #define TEGRA_MC_CLIENT_FDCDRD ((TEGRA_MC_FPRI_CTRL_NV << 8) | 0) | ||
73 | #define TEGRA_MC_CLIENT_IDXSRD ((TEGRA_MC_FPRI_CTRL_NV << 8) | 2) | ||
74 | #define TEGRA_MC_CLIENT_TEXSRD ((TEGRA_MC_FPRI_CTRL_NV << 8) | 4) | ||
75 | #define TEGRA_MC_CLIENT_FDCDWR ((TEGRA_MC_FPRI_CTRL_NV << 8) | 6) | ||
76 | #define TEGRA_MC_CLIENT_PPCSAHBDMAR ((TEGRA_MC_FPRI_CTRL_PPCS << 8) | 0) | ||
77 | #define TEGRA_MC_CLIENT_PPCSAHBSLVR ((TEGRA_MC_FPRI_CTRL_PPCS << 8) | 2) | ||
78 | #define TEGRA_MC_CLIENT_PPCSAHBDMAW ((TEGRA_MC_FPRI_CTRL_PPCS << 8) | 4) | ||
79 | #define TEGRA_MC_CLIENT_PPCSAHBSLVW ((TEGRA_MC_FPRI_CTRL_PPCS << 8) | 6) | ||
80 | #define TEGRA_MC_CLIENT_VDEBSEVR ((TEGRA_MC_FPRI_CTRL_VDE << 8) | 0) | ||
81 | #define TEGRA_MC_CLIENT_VDEMBER ((TEGRA_MC_FPRI_CTRL_VDE << 8) | 2) | ||
82 | #define TEGRA_MC_CLIENT_VDEMCER ((TEGRA_MC_FPRI_CTRL_VDE << 8) | 4) | ||
83 | #define TEGRA_MC_CLIENT_VDETPER ((TEGRA_MC_FPRI_CTRL_VDE << 8) | 6) | ||
84 | #define TEGRA_MC_CLIENT_VDEBSEVW ((TEGRA_MC_FPRI_CTRL_VDE << 8) | 8) | ||
85 | #define TEGRA_MC_CLIENT_VDEMBEW ((TEGRA_MC_FPRI_CTRL_VDE << 8) | 10) | ||
86 | #define TEGRA_MC_CLIENT_VDETPMW ((TEGRA_MC_FPRI_CTRL_VDE << 8) | 12) | ||
87 | #define TEGRA_MC_CLIENT_VIRUV ((TEGRA_MC_FPRI_CTRL_VI << 8) | 0) | ||
88 | #define TEGRA_MC_CLIENT_VIWSB ((TEGRA_MC_FPRI_CTRL_VI << 8) | 2) | ||
89 | #define TEGRA_MC_CLIENT_VIWU ((TEGRA_MC_FPRI_CTRL_VI << 8) | 4) | ||
90 | #define TEGRA_MC_CLIENT_VIWV ((TEGRA_MC_FPRI_CTRL_VI << 8) | 6) | ||
91 | #define TEGRA_MC_CLIENT_VIWY ((TEGRA_MC_FPRI_CTRL_VI << 8) | 8) | ||
92 | |||
93 | #define TEGRA_MC_PRIO_LOWEST 0 | ||
94 | #define TEGRA_MC_PRIO_LOW 1 | ||
95 | #define TEGRA_MC_PRIO_MED 2 | ||
96 | #define TEGRA_MC_PRIO_HIGH 3 | ||
97 | #define TEGRA_MC_PRIO_MASK 3 | ||
98 | |||
99 | void tegra_mc_set_priority(unsigned long client, unsigned long prio); | ||
100 | |||
101 | #else | ||
102 | /* !!!FIXME!!! IMPLEMENT ME */ | ||
103 | #define tegra_mc_set_priority(client, prio) \ | ||
104 | do { /* nothing for now */ } while (0) | ||
105 | #endif | ||
106 | |||
107 | int tegra_mc_get_tiled_memory_bandwidth_multiplier(void); | ||
108 | |||
109 | #endif | ||