blob: 420c980dcbdd438c71446f8634fc48689cab178d [file] [log] [blame]
Archit Taneja9b372c22011-05-06 11:45:49 +05301/*
2 * linux/drivers/video/omap2/dss/dispc.h
3 *
4 * Copyright (C) 2011 Texas Instruments
5 * Author: Archit Taneja <archit@ti.com>
6 *
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License version 2 as published by
10 * the Free Software Foundation.
11 *
12 * This program is distributed in the hope that it will be useful, but WITHOUT
13 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
15 * more details.
16 *
17 * You should have received a copy of the GNU General Public License along with
18 * this program. If not, see <http://www.gnu.org/licenses/>.
19 */
20
21#ifndef __OMAP2_DISPC_REG_H
22#define __OMAP2_DISPC_REG_H
23
Archit Taneja702d1442011-05-06 11:45:50 +053024/* DISPC common registers */
Archit Taneja55978cc2011-05-06 11:45:51 +053025#define DISPC_REVISION 0x0000
26#define DISPC_SYSCONFIG 0x0010
27#define DISPC_SYSSTATUS 0x0014
28#define DISPC_IRQSTATUS 0x0018
29#define DISPC_IRQENABLE 0x001C
30#define DISPC_CONTROL 0x0040
31#define DISPC_CONFIG 0x0044
32#define DISPC_CAPABLE 0x0048
33#define DISPC_LINE_STATUS 0x005C
34#define DISPC_LINE_NUMBER 0x0060
35#define DISPC_GLOBAL_ALPHA 0x0074
36#define DISPC_CONTROL2 0x0238
37#define DISPC_CONFIG2 0x0620
38#define DISPC_DIVISOR 0x0804
Archit Taneja9b372c22011-05-06 11:45:49 +053039
40/* DISPC overlay registers */
Archit Taneja55978cc2011-05-06 11:45:51 +053041#define DISPC_OVL_BA0(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053042 DISPC_BA0_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053043#define DISPC_OVL_BA1(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053044 DISPC_BA1_OFFSET(n))
Amber Jainab5ca072011-05-19 19:47:53 +053045#define DISPC_OVL_BA0_UV(n) (DISPC_OVL_BASE(n) + \
46 DISPC_BA0_UV_OFFSET(n))
47#define DISPC_OVL_BA1_UV(n) (DISPC_OVL_BASE(n) + \
48 DISPC_BA1_UV_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053049#define DISPC_OVL_POSITION(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053050 DISPC_POS_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053051#define DISPC_OVL_SIZE(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053052 DISPC_SIZE_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053053#define DISPC_OVL_ATTRIBUTES(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053054 DISPC_ATTR_OFFSET(n))
Amber Jainab5ca072011-05-19 19:47:53 +053055#define DISPC_OVL_ATTRIBUTES2(n) (DISPC_OVL_BASE(n) + \
56 DISPC_ATTR2_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053057#define DISPC_OVL_FIFO_THRESHOLD(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053058 DISPC_FIFO_THRESH_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053059#define DISPC_OVL_FIFO_SIZE_STATUS(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053060 DISPC_FIFO_SIZE_STATUS_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053061#define DISPC_OVL_ROW_INC(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053062 DISPC_ROW_INC_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053063#define DISPC_OVL_PIXEL_INC(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053064 DISPC_PIX_INC_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053065#define DISPC_OVL_WINDOW_SKIP(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053066 DISPC_WINDOW_SKIP_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053067#define DISPC_OVL_TABLE_BA(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053068 DISPC_TABLE_BA_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053069#define DISPC_OVL_FIR(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053070 DISPC_FIR_OFFSET(n))
Amber Jainab5ca072011-05-19 19:47:53 +053071#define DISPC_OVL_FIR2(n) (DISPC_OVL_BASE(n) + \
72 DISPC_FIR2_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053073#define DISPC_OVL_PICTURE_SIZE(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053074 DISPC_PIC_SIZE_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053075#define DISPC_OVL_ACCU0(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053076 DISPC_ACCU0_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053077#define DISPC_OVL_ACCU1(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053078 DISPC_ACCU1_OFFSET(n))
Amber Jainab5ca072011-05-19 19:47:53 +053079#define DISPC_OVL_ACCU2_0(n) (DISPC_OVL_BASE(n) + \
80 DISPC_ACCU2_0_OFFSET(n))
81#define DISPC_OVL_ACCU2_1(n) (DISPC_OVL_BASE(n) + \
82 DISPC_ACCU2_1_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053083#define DISPC_OVL_FIR_COEF_H(n, i) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053084 DISPC_FIR_COEF_H_OFFSET(n, i))
Archit Taneja55978cc2011-05-06 11:45:51 +053085#define DISPC_OVL_FIR_COEF_HV(n, i) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053086 DISPC_FIR_COEF_HV_OFFSET(n, i))
Amber Jainab5ca072011-05-19 19:47:53 +053087#define DISPC_OVL_FIR_COEF_H2(n, i) (DISPC_OVL_BASE(n) + \
88 DISPC_FIR_COEF_H2_OFFSET(n, i))
89#define DISPC_OVL_FIR_COEF_HV2(n, i) (DISPC_OVL_BASE(n) + \
90 DISPC_FIR_COEF_HV2_OFFSET(n, i))
Archit Taneja55978cc2011-05-06 11:45:51 +053091#define DISPC_OVL_CONV_COEF(n, i) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053092 DISPC_CONV_COEF_OFFSET(n, i))
Archit Taneja55978cc2011-05-06 11:45:51 +053093#define DISPC_OVL_FIR_COEF_V(n, i) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053094 DISPC_FIR_COEF_V_OFFSET(n, i))
Amber Jainab5ca072011-05-19 19:47:53 +053095#define DISPC_OVL_FIR_COEF_V2(n, i) (DISPC_OVL_BASE(n) + \
96 DISPC_FIR_COEF_V2_OFFSET(n, i))
Archit Taneja55978cc2011-05-06 11:45:51 +053097#define DISPC_OVL_PRELOAD(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053098 DISPC_PRELOAD_OFFSET(n))
99
Chandrabhanu Mahapatradebd9072011-12-19 14:03:44 +0530100/* DISPC up/downsampling FIR filter coefficient structure */
101struct dispc_coef {
102 s8 hc4_vc22;
103 s8 hc3_vc2;
104 u8 hc2_vc1;
105 s8 hc1_vc0;
106 s8 hc0_vc00;
107};
108
109const struct dispc_coef *dispc_ovl_get_scale_coef(int inc, int five_taps);
110
Archit Taneja702d1442011-05-06 11:45:50 +0530111/* DISPC manager/channel specific registers */
Archit Taneja55978cc2011-05-06 11:45:51 +0530112static inline u16 DISPC_DEFAULT_COLOR(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530113{
114 switch (channel) {
115 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530116 return 0x004C;
Archit Taneja702d1442011-05-06 11:45:50 +0530117 case OMAP_DSS_CHANNEL_DIGIT:
Archit Taneja55978cc2011-05-06 11:45:51 +0530118 return 0x0050;
Archit Taneja702d1442011-05-06 11:45:50 +0530119 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530120 return 0x03AC;
Chandrabhanu Mahapatraff6331e2012-06-19 15:08:16 +0530121 case OMAP_DSS_CHANNEL_LCD3:
122 return 0x0814;
Archit Taneja702d1442011-05-06 11:45:50 +0530123 default:
124 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300125 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530126 }
127}
128
Archit Taneja55978cc2011-05-06 11:45:51 +0530129static inline u16 DISPC_TRANS_COLOR(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530130{
131 switch (channel) {
132 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530133 return 0x0054;
Archit Taneja702d1442011-05-06 11:45:50 +0530134 case OMAP_DSS_CHANNEL_DIGIT:
Archit Taneja55978cc2011-05-06 11:45:51 +0530135 return 0x0058;
Archit Taneja702d1442011-05-06 11:45:50 +0530136 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530137 return 0x03B0;
Chandrabhanu Mahapatraff6331e2012-06-19 15:08:16 +0530138 case OMAP_DSS_CHANNEL_LCD3:
139 return 0x0818;
Archit Taneja702d1442011-05-06 11:45:50 +0530140 default:
141 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300142 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530143 }
144}
145
Archit Taneja55978cc2011-05-06 11:45:51 +0530146static inline u16 DISPC_TIMING_H(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530147{
148 switch (channel) {
149 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530150 return 0x0064;
Archit Taneja702d1442011-05-06 11:45:50 +0530151 case OMAP_DSS_CHANNEL_DIGIT:
152 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300153 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530154 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530155 return 0x0400;
Chandrabhanu Mahapatraff6331e2012-06-19 15:08:16 +0530156 case OMAP_DSS_CHANNEL_LCD3:
157 return 0x0840;
Archit Taneja702d1442011-05-06 11:45:50 +0530158 default:
159 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300160 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530161 }
162}
163
Archit Taneja55978cc2011-05-06 11:45:51 +0530164static inline u16 DISPC_TIMING_V(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530165{
166 switch (channel) {
167 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530168 return 0x0068;
Archit Taneja702d1442011-05-06 11:45:50 +0530169 case OMAP_DSS_CHANNEL_DIGIT:
170 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300171 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530172 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530173 return 0x0404;
Chandrabhanu Mahapatraff6331e2012-06-19 15:08:16 +0530174 case OMAP_DSS_CHANNEL_LCD3:
175 return 0x0844;
Archit Taneja702d1442011-05-06 11:45:50 +0530176 default:
177 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300178 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530179 }
180}
181
Archit Taneja55978cc2011-05-06 11:45:51 +0530182static inline u16 DISPC_POL_FREQ(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530183{
184 switch (channel) {
185 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530186 return 0x006C;
Archit Taneja702d1442011-05-06 11:45:50 +0530187 case OMAP_DSS_CHANNEL_DIGIT:
188 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300189 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530190 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530191 return 0x0408;
Chandrabhanu Mahapatraff6331e2012-06-19 15:08:16 +0530192 case OMAP_DSS_CHANNEL_LCD3:
193 return 0x083C;
Archit Taneja702d1442011-05-06 11:45:50 +0530194 default:
195 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300196 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530197 }
198}
199
Archit Taneja55978cc2011-05-06 11:45:51 +0530200static inline u16 DISPC_DIVISORo(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530201{
202 switch (channel) {
203 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530204 return 0x0070;
Archit Taneja702d1442011-05-06 11:45:50 +0530205 case OMAP_DSS_CHANNEL_DIGIT:
206 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300207 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530208 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530209 return 0x040C;
Chandrabhanu Mahapatraff6331e2012-06-19 15:08:16 +0530210 case OMAP_DSS_CHANNEL_LCD3:
211 return 0x0838;
Archit Taneja702d1442011-05-06 11:45:50 +0530212 default:
213 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300214 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530215 }
216}
217
218/* Named as DISPC_SIZE_LCD, DISPC_SIZE_DIGIT and DISPC_SIZE_LCD2 in TRM */
Archit Taneja55978cc2011-05-06 11:45:51 +0530219static inline u16 DISPC_SIZE_MGR(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530220{
221 switch (channel) {
222 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530223 return 0x007C;
Archit Taneja702d1442011-05-06 11:45:50 +0530224 case OMAP_DSS_CHANNEL_DIGIT:
Archit Taneja55978cc2011-05-06 11:45:51 +0530225 return 0x0078;
Archit Taneja702d1442011-05-06 11:45:50 +0530226 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530227 return 0x03CC;
Chandrabhanu Mahapatraff6331e2012-06-19 15:08:16 +0530228 case OMAP_DSS_CHANNEL_LCD3:
229 return 0x0834;
Archit Taneja702d1442011-05-06 11:45:50 +0530230 default:
231 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300232 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530233 }
234}
235
Archit Taneja55978cc2011-05-06 11:45:51 +0530236static inline u16 DISPC_DATA_CYCLE1(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530237{
238 switch (channel) {
239 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530240 return 0x01D4;
Archit Taneja702d1442011-05-06 11:45:50 +0530241 case OMAP_DSS_CHANNEL_DIGIT:
242 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300243 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530244 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530245 return 0x03C0;
Chandrabhanu Mahapatraff6331e2012-06-19 15:08:16 +0530246 case OMAP_DSS_CHANNEL_LCD3:
247 return 0x0828;
Archit Taneja702d1442011-05-06 11:45:50 +0530248 default:
249 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300250 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530251 }
252}
253
Archit Taneja55978cc2011-05-06 11:45:51 +0530254static inline u16 DISPC_DATA_CYCLE2(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530255{
256 switch (channel) {
257 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530258 return 0x01D8;
Archit Taneja702d1442011-05-06 11:45:50 +0530259 case OMAP_DSS_CHANNEL_DIGIT:
260 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300261 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530262 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530263 return 0x03C4;
Chandrabhanu Mahapatraff6331e2012-06-19 15:08:16 +0530264 case OMAP_DSS_CHANNEL_LCD3:
265 return 0x082C;
Archit Taneja702d1442011-05-06 11:45:50 +0530266 default:
267 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300268 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530269 }
270}
271
Archit Taneja55978cc2011-05-06 11:45:51 +0530272static inline u16 DISPC_DATA_CYCLE3(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530273{
274 switch (channel) {
275 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530276 return 0x01DC;
Archit Taneja702d1442011-05-06 11:45:50 +0530277 case OMAP_DSS_CHANNEL_DIGIT:
278 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300279 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530280 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530281 return 0x03C8;
Chandrabhanu Mahapatraff6331e2012-06-19 15:08:16 +0530282 case OMAP_DSS_CHANNEL_LCD3:
283 return 0x0830;
Archit Taneja702d1442011-05-06 11:45:50 +0530284 default:
285 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300286 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530287 }
288}
289
Archit Taneja55978cc2011-05-06 11:45:51 +0530290static inline u16 DISPC_CPR_COEF_R(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530291{
292 switch (channel) {
293 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530294 return 0x0220;
Archit Taneja702d1442011-05-06 11:45:50 +0530295 case OMAP_DSS_CHANNEL_DIGIT:
296 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300297 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530298 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530299 return 0x03BC;
Chandrabhanu Mahapatraff6331e2012-06-19 15:08:16 +0530300 case OMAP_DSS_CHANNEL_LCD3:
301 return 0x0824;
Archit Taneja702d1442011-05-06 11:45:50 +0530302 default:
303 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300304 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530305 }
306}
307
Archit Taneja55978cc2011-05-06 11:45:51 +0530308static inline u16 DISPC_CPR_COEF_G(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530309{
310 switch (channel) {
311 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530312 return 0x0224;
Archit Taneja702d1442011-05-06 11:45:50 +0530313 case OMAP_DSS_CHANNEL_DIGIT:
314 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300315 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530316 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530317 return 0x03B8;
Chandrabhanu Mahapatraff6331e2012-06-19 15:08:16 +0530318 case OMAP_DSS_CHANNEL_LCD3:
319 return 0x0820;
Archit Taneja702d1442011-05-06 11:45:50 +0530320 default:
321 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300322 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530323 }
324}
325
Archit Taneja55978cc2011-05-06 11:45:51 +0530326static inline u16 DISPC_CPR_COEF_B(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530327{
328 switch (channel) {
329 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530330 return 0x0228;
Archit Taneja702d1442011-05-06 11:45:50 +0530331 case OMAP_DSS_CHANNEL_DIGIT:
332 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300333 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530334 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530335 return 0x03B4;
Chandrabhanu Mahapatraff6331e2012-06-19 15:08:16 +0530336 case OMAP_DSS_CHANNEL_LCD3:
337 return 0x081C;
Archit Taneja702d1442011-05-06 11:45:50 +0530338 default:
339 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300340 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530341 }
342}
343
Archit Taneja9b372c22011-05-06 11:45:49 +0530344/* DISPC overlay register base addresses */
345static inline u16 DISPC_OVL_BASE(enum omap_plane plane)
346{
347 switch (plane) {
348 case OMAP_DSS_GFX:
349 return 0x0080;
350 case OMAP_DSS_VIDEO1:
351 return 0x00BC;
352 case OMAP_DSS_VIDEO2:
353 return 0x014C;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530354 case OMAP_DSS_VIDEO3:
355 return 0x0300;
Archit Taneja9b372c22011-05-06 11:45:49 +0530356 default:
357 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300358 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530359 }
360}
361
362/* DISPC overlay register offsets */
363static inline u16 DISPC_BA0_OFFSET(enum omap_plane plane)
364{
365 switch (plane) {
366 case OMAP_DSS_GFX:
367 case OMAP_DSS_VIDEO1:
368 case OMAP_DSS_VIDEO2:
369 return 0x0000;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530370 case OMAP_DSS_VIDEO3:
371 return 0x0008;
Archit Taneja9b372c22011-05-06 11:45:49 +0530372 default:
373 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300374 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530375 }
376}
377
378static inline u16 DISPC_BA1_OFFSET(enum omap_plane plane)
379{
380 switch (plane) {
381 case OMAP_DSS_GFX:
382 case OMAP_DSS_VIDEO1:
383 case OMAP_DSS_VIDEO2:
384 return 0x0004;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530385 case OMAP_DSS_VIDEO3:
386 return 0x000C;
Archit Taneja9b372c22011-05-06 11:45:49 +0530387 default:
388 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300389 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530390 }
391}
392
Amber Jainab5ca072011-05-19 19:47:53 +0530393static inline u16 DISPC_BA0_UV_OFFSET(enum omap_plane plane)
394{
395 switch (plane) {
396 case OMAP_DSS_GFX:
397 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300398 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530399 case OMAP_DSS_VIDEO1:
400 return 0x0544;
401 case OMAP_DSS_VIDEO2:
402 return 0x04BC;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530403 case OMAP_DSS_VIDEO3:
404 return 0x0310;
Amber Jainab5ca072011-05-19 19:47:53 +0530405 default:
406 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300407 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530408 }
409}
410
411static inline u16 DISPC_BA1_UV_OFFSET(enum omap_plane plane)
412{
413 switch (plane) {
414 case OMAP_DSS_GFX:
415 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300416 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530417 case OMAP_DSS_VIDEO1:
418 return 0x0548;
419 case OMAP_DSS_VIDEO2:
420 return 0x04C0;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530421 case OMAP_DSS_VIDEO3:
422 return 0x0314;
Amber Jainab5ca072011-05-19 19:47:53 +0530423 default:
424 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300425 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530426 }
427}
428
Archit Taneja9b372c22011-05-06 11:45:49 +0530429static inline u16 DISPC_POS_OFFSET(enum omap_plane plane)
430{
431 switch (plane) {
432 case OMAP_DSS_GFX:
433 case OMAP_DSS_VIDEO1:
434 case OMAP_DSS_VIDEO2:
435 return 0x0008;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530436 case OMAP_DSS_VIDEO3:
437 return 0x009C;
Archit Taneja9b372c22011-05-06 11:45:49 +0530438 default:
439 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300440 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530441 }
442}
443
444static inline u16 DISPC_SIZE_OFFSET(enum omap_plane plane)
445{
446 switch (plane) {
447 case OMAP_DSS_GFX:
448 case OMAP_DSS_VIDEO1:
449 case OMAP_DSS_VIDEO2:
450 return 0x000C;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530451 case OMAP_DSS_VIDEO3:
452 return 0x00A8;
Archit Taneja9b372c22011-05-06 11:45:49 +0530453 default:
454 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300455 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530456 }
457}
458
459static inline u16 DISPC_ATTR_OFFSET(enum omap_plane plane)
460{
461 switch (plane) {
462 case OMAP_DSS_GFX:
463 return 0x0020;
464 case OMAP_DSS_VIDEO1:
465 case OMAP_DSS_VIDEO2:
466 return 0x0010;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530467 case OMAP_DSS_VIDEO3:
468 return 0x0070;
Archit Taneja9b372c22011-05-06 11:45:49 +0530469 default:
470 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300471 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530472 }
473}
474
Amber Jainab5ca072011-05-19 19:47:53 +0530475static inline u16 DISPC_ATTR2_OFFSET(enum omap_plane plane)
476{
477 switch (plane) {
478 case OMAP_DSS_GFX:
479 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300480 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530481 case OMAP_DSS_VIDEO1:
482 return 0x0568;
483 case OMAP_DSS_VIDEO2:
484 return 0x04DC;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530485 case OMAP_DSS_VIDEO3:
486 return 0x032C;
Amber Jainab5ca072011-05-19 19:47:53 +0530487 default:
488 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300489 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530490 }
491}
492
Archit Taneja9b372c22011-05-06 11:45:49 +0530493static inline u16 DISPC_FIFO_THRESH_OFFSET(enum omap_plane plane)
494{
495 switch (plane) {
496 case OMAP_DSS_GFX:
497 return 0x0024;
498 case OMAP_DSS_VIDEO1:
499 case OMAP_DSS_VIDEO2:
500 return 0x0014;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530501 case OMAP_DSS_VIDEO3:
502 return 0x008C;
Archit Taneja9b372c22011-05-06 11:45:49 +0530503 default:
504 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300505 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530506 }
507}
508
509static inline u16 DISPC_FIFO_SIZE_STATUS_OFFSET(enum omap_plane plane)
510{
511 switch (plane) {
512 case OMAP_DSS_GFX:
513 return 0x0028;
514 case OMAP_DSS_VIDEO1:
515 case OMAP_DSS_VIDEO2:
516 return 0x0018;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530517 case OMAP_DSS_VIDEO3:
518 return 0x0088;
Archit Taneja9b372c22011-05-06 11:45:49 +0530519 default:
520 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300521 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530522 }
523}
524
525static inline u16 DISPC_ROW_INC_OFFSET(enum omap_plane plane)
526{
527 switch (plane) {
528 case OMAP_DSS_GFX:
529 return 0x002C;
530 case OMAP_DSS_VIDEO1:
531 case OMAP_DSS_VIDEO2:
532 return 0x001C;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530533 case OMAP_DSS_VIDEO3:
534 return 0x00A4;
Archit Taneja9b372c22011-05-06 11:45:49 +0530535 default:
536 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300537 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530538 }
539}
540
541static inline u16 DISPC_PIX_INC_OFFSET(enum omap_plane plane)
542{
543 switch (plane) {
544 case OMAP_DSS_GFX:
545 return 0x0030;
546 case OMAP_DSS_VIDEO1:
547 case OMAP_DSS_VIDEO2:
548 return 0x0020;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530549 case OMAP_DSS_VIDEO3:
550 return 0x0098;
Archit Taneja9b372c22011-05-06 11:45:49 +0530551 default:
552 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300553 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530554 }
555}
556
557static inline u16 DISPC_WINDOW_SKIP_OFFSET(enum omap_plane plane)
558{
559 switch (plane) {
560 case OMAP_DSS_GFX:
561 return 0x0034;
562 case OMAP_DSS_VIDEO1:
563 case OMAP_DSS_VIDEO2:
Archit Tanejab8c095b2011-09-13 18:20:33 +0530564 case OMAP_DSS_VIDEO3:
Archit Taneja9b372c22011-05-06 11:45:49 +0530565 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300566 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530567 default:
568 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300569 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530570 }
571}
572
573static inline u16 DISPC_TABLE_BA_OFFSET(enum omap_plane plane)
574{
575 switch (plane) {
576 case OMAP_DSS_GFX:
577 return 0x0038;
578 case OMAP_DSS_VIDEO1:
579 case OMAP_DSS_VIDEO2:
Archit Tanejab8c095b2011-09-13 18:20:33 +0530580 case OMAP_DSS_VIDEO3:
Archit Taneja9b372c22011-05-06 11:45:49 +0530581 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300582 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530583 default:
584 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300585 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530586 }
587}
588
589static inline u16 DISPC_FIR_OFFSET(enum omap_plane plane)
590{
591 switch (plane) {
592 case OMAP_DSS_GFX:
593 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300594 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530595 case OMAP_DSS_VIDEO1:
596 case OMAP_DSS_VIDEO2:
597 return 0x0024;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530598 case OMAP_DSS_VIDEO3:
599 return 0x0090;
Archit Taneja9b372c22011-05-06 11:45:49 +0530600 default:
601 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300602 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530603 }
604}
605
Amber Jainab5ca072011-05-19 19:47:53 +0530606static inline u16 DISPC_FIR2_OFFSET(enum omap_plane plane)
607{
608 switch (plane) {
609 case OMAP_DSS_GFX:
610 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300611 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530612 case OMAP_DSS_VIDEO1:
613 return 0x0580;
614 case OMAP_DSS_VIDEO2:
615 return 0x055C;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530616 case OMAP_DSS_VIDEO3:
617 return 0x0424;
Amber Jainab5ca072011-05-19 19:47:53 +0530618 default:
619 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300620 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530621 }
622}
623
Archit Taneja9b372c22011-05-06 11:45:49 +0530624static inline u16 DISPC_PIC_SIZE_OFFSET(enum omap_plane plane)
625{
626 switch (plane) {
627 case OMAP_DSS_GFX:
628 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300629 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530630 case OMAP_DSS_VIDEO1:
631 case OMAP_DSS_VIDEO2:
632 return 0x0028;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530633 case OMAP_DSS_VIDEO3:
634 return 0x0094;
Archit Taneja9b372c22011-05-06 11:45:49 +0530635 default:
636 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300637 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530638 }
639}
640
641
642static inline u16 DISPC_ACCU0_OFFSET(enum omap_plane plane)
643{
644 switch (plane) {
645 case OMAP_DSS_GFX:
646 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300647 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530648 case OMAP_DSS_VIDEO1:
649 case OMAP_DSS_VIDEO2:
650 return 0x002C;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530651 case OMAP_DSS_VIDEO3:
652 return 0x0000;
Archit Taneja9b372c22011-05-06 11:45:49 +0530653 default:
654 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300655 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530656 }
657}
658
Amber Jainab5ca072011-05-19 19:47:53 +0530659static inline u16 DISPC_ACCU2_0_OFFSET(enum omap_plane plane)
660{
661 switch (plane) {
662 case OMAP_DSS_GFX:
663 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300664 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530665 case OMAP_DSS_VIDEO1:
666 return 0x0584;
667 case OMAP_DSS_VIDEO2:
668 return 0x0560;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530669 case OMAP_DSS_VIDEO3:
670 return 0x0428;
Amber Jainab5ca072011-05-19 19:47:53 +0530671 default:
672 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300673 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530674 }
675}
676
Archit Taneja9b372c22011-05-06 11:45:49 +0530677static inline u16 DISPC_ACCU1_OFFSET(enum omap_plane plane)
678{
679 switch (plane) {
680 case OMAP_DSS_GFX:
681 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300682 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530683 case OMAP_DSS_VIDEO1:
684 case OMAP_DSS_VIDEO2:
685 return 0x0030;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530686 case OMAP_DSS_VIDEO3:
687 return 0x0004;
Archit Taneja9b372c22011-05-06 11:45:49 +0530688 default:
689 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300690 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530691 }
692}
693
Amber Jainab5ca072011-05-19 19:47:53 +0530694static inline u16 DISPC_ACCU2_1_OFFSET(enum omap_plane plane)
695{
696 switch (plane) {
697 case OMAP_DSS_GFX:
698 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300699 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530700 case OMAP_DSS_VIDEO1:
701 return 0x0588;
702 case OMAP_DSS_VIDEO2:
703 return 0x0564;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530704 case OMAP_DSS_VIDEO3:
705 return 0x042C;
Amber Jainab5ca072011-05-19 19:47:53 +0530706 default:
707 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300708 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530709 }
710}
711
Archit Taneja9b372c22011-05-06 11:45:49 +0530712/* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */
713static inline u16 DISPC_FIR_COEF_H_OFFSET(enum omap_plane plane, u16 i)
714{
715 switch (plane) {
716 case OMAP_DSS_GFX:
717 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300718 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530719 case OMAP_DSS_VIDEO1:
720 case OMAP_DSS_VIDEO2:
721 return 0x0034 + i * 0x8;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530722 case OMAP_DSS_VIDEO3:
723 return 0x0010 + i * 0x8;
Archit Taneja9b372c22011-05-06 11:45:49 +0530724 default:
725 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300726 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530727 }
728}
729
730/* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */
Amber Jainab5ca072011-05-19 19:47:53 +0530731static inline u16 DISPC_FIR_COEF_H2_OFFSET(enum omap_plane plane, u16 i)
732{
733 switch (plane) {
734 case OMAP_DSS_GFX:
735 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300736 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530737 case OMAP_DSS_VIDEO1:
738 return 0x058C + i * 0x8;
739 case OMAP_DSS_VIDEO2:
740 return 0x0568 + i * 0x8;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530741 case OMAP_DSS_VIDEO3:
742 return 0x0430 + i * 0x8;
Amber Jainab5ca072011-05-19 19:47:53 +0530743 default:
744 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300745 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530746 }
747}
748
749/* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */
Archit Taneja9b372c22011-05-06 11:45:49 +0530750static inline u16 DISPC_FIR_COEF_HV_OFFSET(enum omap_plane plane, u16 i)
751{
752 switch (plane) {
753 case OMAP_DSS_GFX:
754 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300755 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530756 case OMAP_DSS_VIDEO1:
757 case OMAP_DSS_VIDEO2:
758 return 0x0038 + i * 0x8;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530759 case OMAP_DSS_VIDEO3:
760 return 0x0014 + i * 0x8;
Archit Taneja9b372c22011-05-06 11:45:49 +0530761 default:
762 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300763 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530764 }
765}
766
Amber Jainab5ca072011-05-19 19:47:53 +0530767/* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */
768static inline u16 DISPC_FIR_COEF_HV2_OFFSET(enum omap_plane plane, u16 i)
769{
770 switch (plane) {
771 case OMAP_DSS_GFX:
772 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300773 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530774 case OMAP_DSS_VIDEO1:
775 return 0x0590 + i * 8;
776 case OMAP_DSS_VIDEO2:
777 return 0x056C + i * 0x8;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530778 case OMAP_DSS_VIDEO3:
779 return 0x0434 + i * 0x8;
Amber Jainab5ca072011-05-19 19:47:53 +0530780 default:
781 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300782 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530783 }
784}
785
Archit Taneja9b372c22011-05-06 11:45:49 +0530786/* coef index i = {0, 1, 2, 3, 4,} */
787static inline u16 DISPC_CONV_COEF_OFFSET(enum omap_plane plane, u16 i)
788{
789 switch (plane) {
790 case OMAP_DSS_GFX:
791 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300792 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530793 case OMAP_DSS_VIDEO1:
794 case OMAP_DSS_VIDEO2:
Archit Tanejab8c095b2011-09-13 18:20:33 +0530795 case OMAP_DSS_VIDEO3:
Archit Taneja9b372c22011-05-06 11:45:49 +0530796 return 0x0074 + i * 0x4;
797 default:
798 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300799 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530800 }
801}
802
803/* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */
804static inline u16 DISPC_FIR_COEF_V_OFFSET(enum omap_plane plane, u16 i)
805{
806 switch (plane) {
807 case OMAP_DSS_GFX:
808 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300809 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530810 case OMAP_DSS_VIDEO1:
811 return 0x0124 + i * 0x4;
812 case OMAP_DSS_VIDEO2:
813 return 0x00B4 + i * 0x4;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530814 case OMAP_DSS_VIDEO3:
815 return 0x0050 + i * 0x4;
Archit Taneja9b372c22011-05-06 11:45:49 +0530816 default:
817 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300818 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530819 }
820}
821
Amber Jainab5ca072011-05-19 19:47:53 +0530822/* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */
823static inline u16 DISPC_FIR_COEF_V2_OFFSET(enum omap_plane plane, u16 i)
824{
825 switch (plane) {
826 case OMAP_DSS_GFX:
827 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300828 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530829 case OMAP_DSS_VIDEO1:
830 return 0x05CC + i * 0x4;
831 case OMAP_DSS_VIDEO2:
832 return 0x05A8 + i * 0x4;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530833 case OMAP_DSS_VIDEO3:
834 return 0x0470 + i * 0x4;
Amber Jainab5ca072011-05-19 19:47:53 +0530835 default:
836 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300837 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530838 }
839}
840
Archit Taneja9b372c22011-05-06 11:45:49 +0530841static inline u16 DISPC_PRELOAD_OFFSET(enum omap_plane plane)
842{
843 switch (plane) {
844 case OMAP_DSS_GFX:
845 return 0x01AC;
846 case OMAP_DSS_VIDEO1:
847 return 0x0174;
848 case OMAP_DSS_VIDEO2:
849 return 0x00E8;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530850 case OMAP_DSS_VIDEO3:
851 return 0x00A0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530852 default:
853 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300854 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530855 }
856}
857#endif