arm: tegra: la: Add latency allowance support for T11x.
[linux-3.10.git] / arch / arm / mach-tegra / tegra11x_la_priv.h
1 /*
2  * arch/arm/mach-tegra/tegra11x_la_priv.h
3  *
4  * Copyright (C) 2012, NVIDIA CORPORATION. All rights reserved.
5  *
6  * This software is licensed under the terms of the GNU General Public
7  * License version 2, as published by the Free Software Foundation, and
8  * may be copied, distributed, and modified under those terms.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  */
16
17 #ifndef _MACH_TEGRA_TEGRA11x_LA_PRIV_H_
18 #define _MACH_TEGRA_TEGRA11x_LA_PRIV_H_
19
20 #if defined(CONFIG_ARCH_TEGRA_11x_SOC)
21
22 #define MC_LA_AVPC_ARM7_0       0x2e4
23 #define MC_LA_DC_0              0x2e8
24 #define MC_LA_DC_1              0x2ec
25 #define MC_LA_DC_2              0x2f0
26 #define MC_LA_DCB_0             0x2f4
27 #define MC_LA_DCB_1             0x2f8
28 #define MC_LA_DCB_2             0x2fc
29 #define MC_LA_EPP_0             0x300
30 #define MC_LA_EPP_1             0x304
31 #define MC_LA_G2_0              0x308
32 #define MC_LA_G2_1              0x30c
33 #define MC_LA_HC_0              0x310
34 #define MC_LA_HC_1              0x314
35 #define MC_LA_HDA_0             0x318
36 #define MC_LA_ISP_0             0x31C
37 #define MC_LA_MPCORE_0          0x320
38 #define MC_LA_MPCORELP_0        0x324
39 #define MC_LA_MSENC_0           0x328
40 #define MC_LA_NV_0              0x334
41 #define MC_LA_NV_1              0x338
42 #define MC_LA_NV2_0             0x33c
43 #define MC_LA_NV2_1             0x340
44 #define MC_LA_PPCS_0            0x344
45 #define MC_LA_PPCS_1            0x348
46 #define MC_LA_PTC_0             0x34c
47
48 #define MC_LA_VDE_0             0x354
49 #define MC_LA_VDE_1             0x358
50 #define MC_LA_VDE_2             0x35c
51 #define MC_LA_VDE_3             0x360
52 #define MC_LA_VI_0              0x364
53 #define MC_LA_VI_1              0x368
54 #define MC_LA_VI_2              0x36c
55
56 #define MC_LA_XUSB_0            0x37c /* T11x specific*/
57 #define MC_LA_XUSB_1            0x380 /* T11x specific*/
58 #define MC_LA_NV_2              0x384 /* T11x specific*/
59 #define MC_LA_NV_3              0x388 /* T11x specific*/
60
61 #define MC_LA_EMUCIF_0          0x38c
62 #define MC_LA_TSEC_0            0x390
63
64 /*
65  * The rule for getting the fifo_size_in_atoms is:
66  * 1.If REORDER_DEPTH exists, use it(default is overridden).
67  * 2.Else if (write_client) use RFIFO_DEPTH.
68  * 3.Else (read client) use RDFIFO_DEPTH.
69  * Multiply the value by 2 for dual channel.
70  * Multiply the value by 2 for wide clients.
71  * A client is wide, if CMW is larger than MW.
72  * Refer to project.h file.
73  */
74 struct la_client_info la_info_array[] = {
75         LA_INFO(3,      150,    AVPC_ARM7_0, 7 : 0,     AVPC_ARM7R,     false),
76         LA_INFO(3,      150,    AVPC_ARM7_0, 23 : 16,   AVPC_ARM7W,     false),
77         LA_INFO(256,    1050,   DC_0,   7 : 0,          DISPLAY_0A,     true),
78         LA_INFO(256,    1050,   DC_0,   23 : 16,        DISPLAY_0B,     true),
79         LA_INFO(256,    1050,   DC_1,   7 : 0,          DISPLAY_0C,     true),
80         LA_INFO(96,     1050,   DC_2,   7 : 0,          DISPLAY_HC,     false),
81         LA_INFO(256,    1050,   DCB_0,  7 : 0,          DISPLAY_0AB,    true),
82         LA_INFO(256,    1050,   DCB_0,  23 : 16,        DISPLAY_0BB,    true),
83         LA_INFO(256,    1050,   DCB_1,  7 : 0,          DISPLAY_0CB,    true),
84         LA_INFO(96,     1050,   DCB_2,  7 : 0,          DISPLAY_HCB,    false),
85         LA_INFO(16,     150,    EPP_0,  7 : 0,          EPPUP,          false),
86         LA_INFO(64,     150,    EPP_0,  23 : 16,        EPPU,           false),
87         LA_INFO(64,     150,    EPP_1,  7 : 0,          EPPV,           false),
88         LA_INFO(64,     150,    EPP_1,  23 : 16,        EPPY,           false),
89         LA_INFO(128,    150,    G2_0,   7 : 0,          G2PR,           false),
90         LA_INFO(128,    150,    G2_0,   23 : 16,        G2SR,           false),
91         LA_INFO(96,     150,    G2_1,   7 : 0,          G2DR,           false),
92         LA_INFO(256,    150,    G2_1,   23 : 16,        G2DW,           false),
93         LA_INFO(32,     150,    HC_0,   7 : 0,          HOST1X_DMAR,    false),
94         LA_INFO(16,     150,    HC_0,   23 : 16,        HOST1XR,        false),
95         LA_INFO(64,     150,    HC_1,   7 : 0,          HOST1XW,        false),
96         LA_INFO(32,     150,    HDA_0,  7 : 0,          HDAR,           false),
97         LA_INFO(32,     150,    HDA_0,  23 : 16,        HDAW,           false),
98         LA_INFO(128,    150,    ISP_0,  7 : 0,          ISPW,           false),
99         LA_INFO(96,     150,    MPCORE_0,   7 : 0,      MPCORER,        false),
100         LA_INFO(128,    150,    MPCORE_0,   23 : 16,    MPCOREW,        false),
101         LA_INFO(96,     150,    MPCORELP_0, 7 : 0,      MPCORE_LPR,     false),
102         LA_INFO(128,    150,    MPCORELP_0, 23 : 16,    MPCORE_LPW,     false),
103         LA_INFO(128,    150,    NV_0,   7 : 0,          FDCDRD,         false),
104         LA_INFO(256,    150,    NV_0,   23 : 16,        IDXSRD,         false),
105         LA_INFO(432,    150,    NV_1,   7 : 0,          TEXL2SRD,       false),
106         LA_INFO(128,    150,    NV_1,   23 : 16,        FDCDWR,         false),
107         LA_INFO(128,    150,    NV2_0,  7 : 0,          FDCDRD2,        false),
108         LA_INFO(128,    150,    NV2_1,  23 : 16,        FDCDWR2,        false),
109         LA_INFO(8,      150,    PPCS_0, 7 : 0,          PPCS_AHBDMAR,   false),
110         LA_INFO(80,     150,    PPCS_0, 23 : 16,        PPCS_AHBSLVR,   false),
111         LA_INFO(16,     150,    PPCS_1, 7 : 0,          PPCS_AHBDMAW,   false),
112         LA_INFO(80,     150,    PPCS_1, 23 : 16,        PPCS_AHBSLVW,   false),
113         LA_INFO(40,     150,    PTC_0,  7 : 0,          PTCR,           false),
114         LA_INFO(16,     150,    VDE_0,  7 : 0,          VDE_BSEVR,      false),
115         LA_INFO(8,      150,    VDE_0,  23 : 16,        VDE_MBER,       false),
116         LA_INFO(64,     150,    VDE_1,  7 : 0,          VDE_MCER,       false),
117         LA_INFO(32,     150,    VDE_1,  23 : 16,        VDE_TPER,       false),
118         LA_INFO(8,      150,    VDE_2,  7 : 0,          VDE_BSEVW,      false),
119         LA_INFO(32,     150,    VDE_2,  23 : 16,        VDE_DBGW,       false),
120         LA_INFO(16,     150,    VDE_3,  7 : 0,          VDE_MBEW,       false),
121         LA_INFO(32,     150,    VDE_3,  23 : 16,        VDE_TPMW,       false),
122         LA_INFO(128,    1050,   VI_0,   23 : 16,        VI_WSB,         true),
123         LA_INFO(128,    1050,   VI_1,   7 : 0,          VI_WU,          true),
124         LA_INFO(128,    1050,   VI_1,   23 : 16,        VI_WV,          true),
125         LA_INFO(128,    1050,   VI_2,   7 : 0,          VI_WY,          true),
126
127         LA_INFO(128,    150,    MSENC_0,    7 : 0,      MSENCSRD,       false),
128         LA_INFO(32,     150,    MSENC_0,    23 : 16,    MSENCSWR,       false),
129         LA_INFO(160,    150,    XUSB_0,     7 : 0,      XUSB_HOSTR,     false),
130         LA_INFO(160,    150,    XUSB_0,     23 : 16,    XUSB_HOSTW,     false),
131         LA_INFO(160,    150,    XUSB_1,     7 : 0,      XUSB_DEVR,      false),
132         LA_INFO(160,    150,    XUSB_1,     23 : 16,    XUSB_DEVW,      false),
133         LA_INFO(128,    150,    NV_2,       7 : 0,      FDCDRD3,        false),
134         LA_INFO(128,    150,    NV_2,       23 : 16,    FDCDRD4,        false),
135         LA_INFO(128,    150,    NV_3,       7 : 0,      FDCDWR3,        false),
136         LA_INFO(128,    150,    NV_3,       23 : 16,    FDCDWR4,        false),
137         LA_INFO(28,     150,    EMUCIF_0,   7 : 0,      EMUCIFR,        false),
138         LA_INFO(48,     150,    EMUCIF_0,   23 : 16,    EMUCIFW,        false),
139         LA_INFO(32,     150,    TSEC_0,     7 : 0,      TSECSRD,        false),
140         LA_INFO(32,     150,    TSEC_0,     23 : 16,    TSECSWR,        false),
141
142 /* end of list. */
143         LA_INFO(0,      0,      TSEC_0,     0 : 0,      MAX_ID,         false)
144 };
145
146 static int ns_per_tick = 30;
147 /* MC atom size in bytes */
148 static const int normal_atom_size = 16;
149 #endif
150
151 #endif /* _MACH_TEGRA_TEGRA11x_LA_PRIV_H_ */