167081067f9ea8069fe1d75ab8ffe004ff6454f4
[linux-2.6.git] / arch / arm / mach-tegra / include / mach / mc.h
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 #define TEGRA_MC_FPRI_CTRL_AVPC         0x17c
24 #define TEGRA_MC_FPRI_CTRL_DC           0x180
25 #define TEGRA_MC_FPRI_CTRL_DCB          0x184
26 #define TEGRA_MC_FPRI_CTRL_EPP          0x188
27 #define TEGRA_MC_FPRI_CTRL_G2           0x18c
28 #define TEGRA_MC_FPRI_CTRL_HC           0x190
29 #define TEGRA_MC_FPRI_CTRL_ISP          0x194
30 #define TEGRA_MC_FPRI_CTRL_MPCORE       0x198
31 #define TEGRA_MC_FPRI_CTRL_MPEA         0x19c
32 #define TEGRA_MC_FPRI_CTRL_MPEB         0x1a0
33 #define TEGRA_MC_FPRI_CTRL_MPEC         0x1a4
34 #define TEGRA_MC_FPRI_CTRL_NV           0x1a8
35 #define TEGRA_MC_FPRI_CTRL_PPCS         0x1ac
36 #define TEGRA_MC_FPRI_CTRL_VDE          0x1b0
37 #define TEGRA_MC_FPRI_CTRL_VI           0x1b4
38
39 #define TEGRA_MC_CLIENT_AVPCARM7R       ((TEGRA_MC_FPRI_CTRL_AVPC << 8) | 0)
40 #define TEGRA_MC_CLIENT_AVPCARM7W       ((TEGRA_MC_FPRI_CTRL_AVPC << 8) | 2)
41 #define TEGRA_MC_CLIENT_DISPLAY0A       ((TEGRA_MC_FPRI_CTRL_DC << 8) | 0)
42 #define TEGRA_MC_CLIENT_DISPLAY0B       ((TEGRA_MC_FPRI_CTRL_DC << 8) | 2)
43 #define TEGRA_MC_CLIENT_DISPLAY0C       ((TEGRA_MC_FPRI_CTRL_DC << 8) | 4)
44 #define TEGRA_MC_CLIENT_DISPLAY1B       ((TEGRA_MC_FPRI_CTRL_DC << 8) | 6)
45 #define TEGRA_MC_CLIENT_DISPLAYHC       ((TEGRA_MC_FPRI_CTRL_DC << 8) | 8)
46 #define TEGRA_MC_CLIENT_DISPLAY0AB      ((TEGRA_MC_FPRI_CTRL_DCB << 8) | 0)
47 #define TEGRA_MC_CLIENT_DISPLAY0BB      ((TEGRA_MC_FPRI_CTRL_DCB << 8) | 2)
48 #define TEGRA_MC_CLIENT_DISPLAY0CB      ((TEGRA_MC_FPRI_CTRL_DCB << 8) | 4)
49 #define TEGRA_MC_CLIENT_DISPLAY1BB      ((TEGRA_MC_FPRI_CTRL_DCB << 8) | 6)
50 #define TEGRA_MC_CLIENT_DISPLAYHCB      ((TEGRA_MC_FPRI_CTRL_DCB << 8) | 8)
51 #define TEGRA_MC_CLIENT_EPPUP           ((TEGRA_MC_FPRI_CTRL_EPP << 8) | 0)
52 #define TEGRA_MC_CLIENT_EPPU            ((TEGRA_MC_FPRI_CTRL_EPP << 8) | 2)
53 #define TEGRA_MC_CLIENT_EPPV            ((TEGRA_MC_FPRI_CTRL_EPP << 8) | 4)
54 #define TEGRA_MC_CLIENT_EPPY            ((TEGRA_MC_FPRI_CTRL_EPP << 8) | 6)
55 #define TEGRA_MC_CLIENT_G2PR            ((TEGRA_MC_FPRI_CTRL_G2 << 8) | 0)
56 #define TEGRA_MC_CLIENT_G2SR            ((TEGRA_MC_FPRI_CTRL_G2 << 8) | 2)
57 #define TEGRA_MC_CLIENT_G2DR            ((TEGRA_MC_FPRI_CTRL_G2 << 8) | 4)
58 #define TEGRA_MC_CLIENT_G2DW            ((TEGRA_MC_FPRI_CTRL_G2 << 8) | 6)
59 #define TEGRA_MC_CLIENT_HOST1XDMAR      ((TEGRA_MC_FPRI_CTRL_HC << 8) | 0)
60 #define TEGRA_MC_CLIENT_HOST1XR         ((TEGRA_MC_FPRI_CTRL_HC << 8) | 2)
61 #define TEGRA_MC_CLIENT_HOST1XW         ((TEGRA_MC_FPRI_CTRL_HC << 8) | 4)
62 #define TEGRA_MC_CLIENT_ISPW            ((TEGRA_MC_FPRI_CTRL_ISP << 8) | 0)
63 #define TEGRA_MC_CLIENT_MPCORER         ((TEGRA_MC_FPRI_CTRL_MPCORE << 8) | 0)
64 #define TEGRA_MC_CLIENT_MPCOREW         ((TEGRA_MC_FPRI_CTRL_MPCORE << 8) | 2)
65 #define TEGRA_MC_CLIENT_MPEAMEMRD       ((TEGRA_MC_FPRI_CTRL_MPEA << 8) | 0)
66 #define TEGRA_MC_CLIENT_MPEUNIFBR       ((TEGRA_MC_FPRI_CTRL_MPEB << 8) | 0)
67 #define TEGRA_MC_CLIENT_MPE_IPRED       ((TEGRA_MC_FPRI_CTRL_MPEB << 8) | 2)
68 #define TEGRA_MC_CLIENT_MPEUNIFBW       ((TEGRA_MC_FPRI_CTRL_MPEB << 8) | 4)
69 #define TEGRA_MC_CLIENT_MPECSRD         ((TEGRA_MC_FPRI_CTRL_MPEC << 8) | 0)
70 #define TEGRA_MC_CLIENT_MPECSWR         ((TEGRA_MC_FPRI_CTRL_MPEC << 8) | 2)
71 #define TEGRA_MC_CLIENT_FDCDRD          ((TEGRA_MC_FPRI_CTRL_NV << 8) | 0)
72 #define TEGRA_MC_CLIENT_IDXSRD          ((TEGRA_MC_FPRI_CTRL_NV << 8) | 2)
73 #define TEGRA_MC_CLIENT_TEXSRD          ((TEGRA_MC_FPRI_CTRL_NV << 8) | 4)
74 #define TEGRA_MC_CLIENT_FDCDWR          ((TEGRA_MC_FPRI_CTRL_NV << 8) | 6)
75 #define TEGRA_MC_CLIENT_PPCSAHBDMAR     ((TEGRA_MC_FPRI_CTRL_PPCS << 8) | 0)
76 #define TEGRA_MC_CLIENT_PPCSAHBSLVR     ((TEGRA_MC_FPRI_CTRL_PPCS << 8) | 2)
77 #define TEGRA_MC_CLIENT_PPCSAHBDMAW     ((TEGRA_MC_FPRI_CTRL_PPCS << 8) | 4)
78 #define TEGRA_MC_CLIENT_PPCSAHBSLVW     ((TEGRA_MC_FPRI_CTRL_PPCS << 8) | 6)
79 #define TEGRA_MC_CLIENT_VDEBSEVR        ((TEGRA_MC_FPRI_CTRL_VDE << 8) | 0)
80 #define TEGRA_MC_CLIENT_VDEMBER         ((TEGRA_MC_FPRI_CTRL_VDE << 8) | 2)
81 #define TEGRA_MC_CLIENT_VDEMCER         ((TEGRA_MC_FPRI_CTRL_VDE << 8) | 4)
82 #define TEGRA_MC_CLIENT_VDETPER         ((TEGRA_MC_FPRI_CTRL_VDE << 8) | 6)
83 #define TEGRA_MC_CLIENT_VDEBSEVW        ((TEGRA_MC_FPRI_CTRL_VDE << 8) | 8)
84 #define TEGRA_MC_CLIENT_VDEMBEW         ((TEGRA_MC_FPRI_CTRL_VDE << 8) | 10)
85 #define TEGRA_MC_CLIENT_VDETPMW         ((TEGRA_MC_FPRI_CTRL_VDE << 8) | 12)
86 #define TEGRA_MC_CLIENT_VIRUV           ((TEGRA_MC_FPRI_CTRL_VI << 8) | 0)
87 #define TEGRA_MC_CLIENT_VIWSB           ((TEGRA_MC_FPRI_CTRL_VI << 8) | 2)
88 #define TEGRA_MC_CLIENT_VIWU            ((TEGRA_MC_FPRI_CTRL_VI << 8) | 4)
89 #define TEGRA_MC_CLIENT_VIWV            ((TEGRA_MC_FPRI_CTRL_VI << 8) | 6)
90 #define TEGRA_MC_CLIENT_VIWY            ((TEGRA_MC_FPRI_CTRL_VI << 8) | 8)
91
92 #define TEGRA_MC_PRIO_LOWEST            0
93 #define TEGRA_MC_PRIO_LOW               1
94 #define TEGRA_MC_PRIO_MED               2
95 #define TEGRA_MC_PRIO_HIGH              3
96 #define TEGRA_MC_PRIO_MASK              3
97
98 void tegra_mc_set_priority(unsigned long client, unsigned long prio);
99
100 #endif