blob: 42e56cc7cdbc775ded39643af69728c66b6d7fb0 [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
Tomi Valkeinen66a0f9e2012-08-22 16:57:02 +030039#define DISPC_GLOBAL_BUFFER 0x0800
Chandrabhanu Mahapatrae86d4562012-06-29 10:43:13 +053040#define DISPC_CONTROL3 0x0848
41#define DISPC_CONFIG3 0x084C
Archit Taneja9b372c22011-05-06 11:45:49 +053042
43/* DISPC overlay registers */
Archit Taneja55978cc2011-05-06 11:45:51 +053044#define DISPC_OVL_BA0(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053045 DISPC_BA0_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053046#define DISPC_OVL_BA1(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053047 DISPC_BA1_OFFSET(n))
Amber Jainab5ca072011-05-19 19:47:53 +053048#define DISPC_OVL_BA0_UV(n) (DISPC_OVL_BASE(n) + \
49 DISPC_BA0_UV_OFFSET(n))
50#define DISPC_OVL_BA1_UV(n) (DISPC_OVL_BASE(n) + \
51 DISPC_BA1_UV_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053052#define DISPC_OVL_POSITION(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053053 DISPC_POS_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053054#define DISPC_OVL_SIZE(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053055 DISPC_SIZE_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053056#define DISPC_OVL_ATTRIBUTES(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053057 DISPC_ATTR_OFFSET(n))
Amber Jainab5ca072011-05-19 19:47:53 +053058#define DISPC_OVL_ATTRIBUTES2(n) (DISPC_OVL_BASE(n) + \
59 DISPC_ATTR2_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053060#define DISPC_OVL_FIFO_THRESHOLD(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053061 DISPC_FIFO_THRESH_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053062#define DISPC_OVL_FIFO_SIZE_STATUS(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053063 DISPC_FIFO_SIZE_STATUS_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053064#define DISPC_OVL_ROW_INC(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053065 DISPC_ROW_INC_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053066#define DISPC_OVL_PIXEL_INC(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053067 DISPC_PIX_INC_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053068#define DISPC_OVL_WINDOW_SKIP(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053069 DISPC_WINDOW_SKIP_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053070#define DISPC_OVL_TABLE_BA(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053071 DISPC_TABLE_BA_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053072#define DISPC_OVL_FIR(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053073 DISPC_FIR_OFFSET(n))
Amber Jainab5ca072011-05-19 19:47:53 +053074#define DISPC_OVL_FIR2(n) (DISPC_OVL_BASE(n) + \
75 DISPC_FIR2_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053076#define DISPC_OVL_PICTURE_SIZE(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053077 DISPC_PIC_SIZE_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053078#define DISPC_OVL_ACCU0(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053079 DISPC_ACCU0_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053080#define DISPC_OVL_ACCU1(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053081 DISPC_ACCU1_OFFSET(n))
Amber Jainab5ca072011-05-19 19:47:53 +053082#define DISPC_OVL_ACCU2_0(n) (DISPC_OVL_BASE(n) + \
83 DISPC_ACCU2_0_OFFSET(n))
84#define DISPC_OVL_ACCU2_1(n) (DISPC_OVL_BASE(n) + \
85 DISPC_ACCU2_1_OFFSET(n))
Archit Taneja55978cc2011-05-06 11:45:51 +053086#define DISPC_OVL_FIR_COEF_H(n, i) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053087 DISPC_FIR_COEF_H_OFFSET(n, i))
Archit Taneja55978cc2011-05-06 11:45:51 +053088#define DISPC_OVL_FIR_COEF_HV(n, i) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053089 DISPC_FIR_COEF_HV_OFFSET(n, i))
Amber Jainab5ca072011-05-19 19:47:53 +053090#define DISPC_OVL_FIR_COEF_H2(n, i) (DISPC_OVL_BASE(n) + \
91 DISPC_FIR_COEF_H2_OFFSET(n, i))
92#define DISPC_OVL_FIR_COEF_HV2(n, i) (DISPC_OVL_BASE(n) + \
93 DISPC_FIR_COEF_HV2_OFFSET(n, i))
Archit Taneja55978cc2011-05-06 11:45:51 +053094#define DISPC_OVL_CONV_COEF(n, i) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053095 DISPC_CONV_COEF_OFFSET(n, i))
Archit Taneja55978cc2011-05-06 11:45:51 +053096#define DISPC_OVL_FIR_COEF_V(n, i) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +053097 DISPC_FIR_COEF_V_OFFSET(n, i))
Amber Jainab5ca072011-05-19 19:47:53 +053098#define DISPC_OVL_FIR_COEF_V2(n, i) (DISPC_OVL_BASE(n) + \
99 DISPC_FIR_COEF_V2_OFFSET(n, i))
Archit Taneja55978cc2011-05-06 11:45:51 +0530100#define DISPC_OVL_PRELOAD(n) (DISPC_OVL_BASE(n) + \
Archit Taneja9b372c22011-05-06 11:45:49 +0530101 DISPC_PRELOAD_OFFSET(n))
102
Chandrabhanu Mahapatradebd9072011-12-19 14:03:44 +0530103/* DISPC up/downsampling FIR filter coefficient structure */
104struct dispc_coef {
105 s8 hc4_vc22;
106 s8 hc3_vc2;
107 u8 hc2_vc1;
108 s8 hc1_vc0;
109 s8 hc0_vc00;
110};
111
112const struct dispc_coef *dispc_ovl_get_scale_coef(int inc, int five_taps);
113
Archit Taneja702d1442011-05-06 11:45:50 +0530114/* DISPC manager/channel specific registers */
Archit Taneja55978cc2011-05-06 11:45:51 +0530115static inline u16 DISPC_DEFAULT_COLOR(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530116{
117 switch (channel) {
118 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530119 return 0x004C;
Archit Taneja702d1442011-05-06 11:45:50 +0530120 case OMAP_DSS_CHANNEL_DIGIT:
Archit Taneja55978cc2011-05-06 11:45:51 +0530121 return 0x0050;
Archit Taneja702d1442011-05-06 11:45:50 +0530122 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530123 return 0x03AC;
Chandrabhanu Mahapatraff6331e2012-06-19 15:08:16 +0530124 case OMAP_DSS_CHANNEL_LCD3:
125 return 0x0814;
Archit Taneja702d1442011-05-06 11:45:50 +0530126 default:
127 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300128 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530129 }
130}
131
Archit Taneja55978cc2011-05-06 11:45:51 +0530132static inline u16 DISPC_TRANS_COLOR(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530133{
134 switch (channel) {
135 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530136 return 0x0054;
Archit Taneja702d1442011-05-06 11:45:50 +0530137 case OMAP_DSS_CHANNEL_DIGIT:
Archit Taneja55978cc2011-05-06 11:45:51 +0530138 return 0x0058;
Archit Taneja702d1442011-05-06 11:45:50 +0530139 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530140 return 0x03B0;
Chandrabhanu Mahapatraff6331e2012-06-19 15:08:16 +0530141 case OMAP_DSS_CHANNEL_LCD3:
142 return 0x0818;
Archit Taneja702d1442011-05-06 11:45:50 +0530143 default:
144 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300145 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530146 }
147}
148
Archit Taneja55978cc2011-05-06 11:45:51 +0530149static inline u16 DISPC_TIMING_H(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530150{
151 switch (channel) {
152 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530153 return 0x0064;
Archit Taneja702d1442011-05-06 11:45:50 +0530154 case OMAP_DSS_CHANNEL_DIGIT:
155 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300156 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530157 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530158 return 0x0400;
Chandrabhanu Mahapatraff6331e2012-06-19 15:08:16 +0530159 case OMAP_DSS_CHANNEL_LCD3:
160 return 0x0840;
Archit Taneja702d1442011-05-06 11:45:50 +0530161 default:
162 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300163 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530164 }
165}
166
Archit Taneja55978cc2011-05-06 11:45:51 +0530167static inline u16 DISPC_TIMING_V(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530168{
169 switch (channel) {
170 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530171 return 0x0068;
Archit Taneja702d1442011-05-06 11:45:50 +0530172 case OMAP_DSS_CHANNEL_DIGIT:
173 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300174 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530175 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530176 return 0x0404;
Chandrabhanu Mahapatraff6331e2012-06-19 15:08:16 +0530177 case OMAP_DSS_CHANNEL_LCD3:
178 return 0x0844;
Archit Taneja702d1442011-05-06 11:45:50 +0530179 default:
180 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300181 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530182 }
183}
184
Archit Taneja55978cc2011-05-06 11:45:51 +0530185static inline u16 DISPC_POL_FREQ(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530186{
187 switch (channel) {
188 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530189 return 0x006C;
Archit Taneja702d1442011-05-06 11:45:50 +0530190 case OMAP_DSS_CHANNEL_DIGIT:
191 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300192 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530193 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530194 return 0x0408;
Chandrabhanu Mahapatraff6331e2012-06-19 15:08:16 +0530195 case OMAP_DSS_CHANNEL_LCD3:
196 return 0x083C;
Archit Taneja702d1442011-05-06 11:45:50 +0530197 default:
198 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300199 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530200 }
201}
202
Archit Taneja55978cc2011-05-06 11:45:51 +0530203static inline u16 DISPC_DIVISORo(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530204{
205 switch (channel) {
206 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530207 return 0x0070;
Archit Taneja702d1442011-05-06 11:45:50 +0530208 case OMAP_DSS_CHANNEL_DIGIT:
209 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300210 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530211 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530212 return 0x040C;
Chandrabhanu Mahapatraff6331e2012-06-19 15:08:16 +0530213 case OMAP_DSS_CHANNEL_LCD3:
214 return 0x0838;
Archit Taneja702d1442011-05-06 11:45:50 +0530215 default:
216 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300217 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530218 }
219}
220
221/* Named as DISPC_SIZE_LCD, DISPC_SIZE_DIGIT and DISPC_SIZE_LCD2 in TRM */
Archit Taneja55978cc2011-05-06 11:45:51 +0530222static inline u16 DISPC_SIZE_MGR(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530223{
224 switch (channel) {
225 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530226 return 0x007C;
Archit Taneja702d1442011-05-06 11:45:50 +0530227 case OMAP_DSS_CHANNEL_DIGIT:
Archit Taneja55978cc2011-05-06 11:45:51 +0530228 return 0x0078;
Archit Taneja702d1442011-05-06 11:45:50 +0530229 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530230 return 0x03CC;
Chandrabhanu Mahapatraff6331e2012-06-19 15:08:16 +0530231 case OMAP_DSS_CHANNEL_LCD3:
232 return 0x0834;
Archit Taneja702d1442011-05-06 11:45:50 +0530233 default:
234 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300235 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530236 }
237}
238
Archit Taneja55978cc2011-05-06 11:45:51 +0530239static inline u16 DISPC_DATA_CYCLE1(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530240{
241 switch (channel) {
242 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530243 return 0x01D4;
Archit Taneja702d1442011-05-06 11:45:50 +0530244 case OMAP_DSS_CHANNEL_DIGIT:
245 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300246 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530247 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530248 return 0x03C0;
Chandrabhanu Mahapatraff6331e2012-06-19 15:08:16 +0530249 case OMAP_DSS_CHANNEL_LCD3:
250 return 0x0828;
Archit Taneja702d1442011-05-06 11:45:50 +0530251 default:
252 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300253 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530254 }
255}
256
Archit Taneja55978cc2011-05-06 11:45:51 +0530257static inline u16 DISPC_DATA_CYCLE2(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530258{
259 switch (channel) {
260 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530261 return 0x01D8;
Archit Taneja702d1442011-05-06 11:45:50 +0530262 case OMAP_DSS_CHANNEL_DIGIT:
263 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300264 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530265 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530266 return 0x03C4;
Chandrabhanu Mahapatraff6331e2012-06-19 15:08:16 +0530267 case OMAP_DSS_CHANNEL_LCD3:
268 return 0x082C;
Archit Taneja702d1442011-05-06 11:45:50 +0530269 default:
270 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300271 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530272 }
273}
274
Archit Taneja55978cc2011-05-06 11:45:51 +0530275static inline u16 DISPC_DATA_CYCLE3(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530276{
277 switch (channel) {
278 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530279 return 0x01DC;
Archit Taneja702d1442011-05-06 11:45:50 +0530280 case OMAP_DSS_CHANNEL_DIGIT:
281 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300282 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530283 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530284 return 0x03C8;
Chandrabhanu Mahapatraff6331e2012-06-19 15:08:16 +0530285 case OMAP_DSS_CHANNEL_LCD3:
286 return 0x0830;
Archit Taneja702d1442011-05-06 11:45:50 +0530287 default:
288 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300289 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530290 }
291}
292
Archit Taneja55978cc2011-05-06 11:45:51 +0530293static inline u16 DISPC_CPR_COEF_R(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530294{
295 switch (channel) {
296 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530297 return 0x0220;
Archit Taneja702d1442011-05-06 11:45:50 +0530298 case OMAP_DSS_CHANNEL_DIGIT:
299 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300300 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530301 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530302 return 0x03BC;
Chandrabhanu Mahapatraff6331e2012-06-19 15:08:16 +0530303 case OMAP_DSS_CHANNEL_LCD3:
304 return 0x0824;
Archit Taneja702d1442011-05-06 11:45:50 +0530305 default:
306 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300307 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530308 }
309}
310
Archit Taneja55978cc2011-05-06 11:45:51 +0530311static inline u16 DISPC_CPR_COEF_G(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530312{
313 switch (channel) {
314 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530315 return 0x0224;
Archit Taneja702d1442011-05-06 11:45:50 +0530316 case OMAP_DSS_CHANNEL_DIGIT:
317 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300318 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530319 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530320 return 0x03B8;
Chandrabhanu Mahapatraff6331e2012-06-19 15:08:16 +0530321 case OMAP_DSS_CHANNEL_LCD3:
322 return 0x0820;
Archit Taneja702d1442011-05-06 11:45:50 +0530323 default:
324 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300325 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530326 }
327}
328
Archit Taneja55978cc2011-05-06 11:45:51 +0530329static inline u16 DISPC_CPR_COEF_B(enum omap_channel channel)
Archit Taneja702d1442011-05-06 11:45:50 +0530330{
331 switch (channel) {
332 case OMAP_DSS_CHANNEL_LCD:
Archit Taneja55978cc2011-05-06 11:45:51 +0530333 return 0x0228;
Archit Taneja702d1442011-05-06 11:45:50 +0530334 case OMAP_DSS_CHANNEL_DIGIT:
335 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300336 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530337 case OMAP_DSS_CHANNEL_LCD2:
Archit Taneja55978cc2011-05-06 11:45:51 +0530338 return 0x03B4;
Chandrabhanu Mahapatraff6331e2012-06-19 15:08:16 +0530339 case OMAP_DSS_CHANNEL_LCD3:
340 return 0x081C;
Archit Taneja702d1442011-05-06 11:45:50 +0530341 default:
342 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300343 return 0;
Archit Taneja702d1442011-05-06 11:45:50 +0530344 }
345}
346
Archit Taneja9b372c22011-05-06 11:45:49 +0530347/* DISPC overlay register base addresses */
348static inline u16 DISPC_OVL_BASE(enum omap_plane plane)
349{
350 switch (plane) {
351 case OMAP_DSS_GFX:
352 return 0x0080;
353 case OMAP_DSS_VIDEO1:
354 return 0x00BC;
355 case OMAP_DSS_VIDEO2:
356 return 0x014C;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530357 case OMAP_DSS_VIDEO3:
358 return 0x0300;
Tomi Valkeinen66a0f9e2012-08-22 16:57:02 +0300359 case OMAP_DSS_WB:
360 return 0x0500;
Archit Taneja9b372c22011-05-06 11:45:49 +0530361 default:
362 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300363 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530364 }
365}
366
367/* DISPC overlay register offsets */
368static inline u16 DISPC_BA0_OFFSET(enum omap_plane plane)
369{
370 switch (plane) {
371 case OMAP_DSS_GFX:
372 case OMAP_DSS_VIDEO1:
373 case OMAP_DSS_VIDEO2:
374 return 0x0000;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530375 case OMAP_DSS_VIDEO3:
376 return 0x0008;
Archit Taneja9b372c22011-05-06 11:45:49 +0530377 default:
378 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300379 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530380 }
381}
382
383static inline u16 DISPC_BA1_OFFSET(enum omap_plane plane)
384{
385 switch (plane) {
386 case OMAP_DSS_GFX:
387 case OMAP_DSS_VIDEO1:
388 case OMAP_DSS_VIDEO2:
389 return 0x0004;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530390 case OMAP_DSS_VIDEO3:
391 return 0x000C;
Archit Taneja9b372c22011-05-06 11:45:49 +0530392 default:
393 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300394 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530395 }
396}
397
Amber Jainab5ca072011-05-19 19:47:53 +0530398static inline u16 DISPC_BA0_UV_OFFSET(enum omap_plane plane)
399{
400 switch (plane) {
401 case OMAP_DSS_GFX:
402 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300403 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530404 case OMAP_DSS_VIDEO1:
405 return 0x0544;
406 case OMAP_DSS_VIDEO2:
407 return 0x04BC;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530408 case OMAP_DSS_VIDEO3:
409 return 0x0310;
Amber Jainab5ca072011-05-19 19:47:53 +0530410 default:
411 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300412 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530413 }
414}
415
416static inline u16 DISPC_BA1_UV_OFFSET(enum omap_plane plane)
417{
418 switch (plane) {
419 case OMAP_DSS_GFX:
420 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300421 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530422 case OMAP_DSS_VIDEO1:
423 return 0x0548;
424 case OMAP_DSS_VIDEO2:
425 return 0x04C0;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530426 case OMAP_DSS_VIDEO3:
427 return 0x0314;
Amber Jainab5ca072011-05-19 19:47:53 +0530428 default:
429 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300430 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530431 }
432}
433
Archit Taneja9b372c22011-05-06 11:45:49 +0530434static inline u16 DISPC_POS_OFFSET(enum omap_plane plane)
435{
436 switch (plane) {
437 case OMAP_DSS_GFX:
438 case OMAP_DSS_VIDEO1:
439 case OMAP_DSS_VIDEO2:
440 return 0x0008;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530441 case OMAP_DSS_VIDEO3:
442 return 0x009C;
Archit Taneja9b372c22011-05-06 11:45:49 +0530443 default:
444 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300445 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530446 }
447}
448
449static inline u16 DISPC_SIZE_OFFSET(enum omap_plane plane)
450{
451 switch (plane) {
452 case OMAP_DSS_GFX:
453 case OMAP_DSS_VIDEO1:
454 case OMAP_DSS_VIDEO2:
455 return 0x000C;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530456 case OMAP_DSS_VIDEO3:
457 return 0x00A8;
Archit Taneja9b372c22011-05-06 11:45:49 +0530458 default:
459 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300460 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530461 }
462}
463
464static inline u16 DISPC_ATTR_OFFSET(enum omap_plane plane)
465{
466 switch (plane) {
467 case OMAP_DSS_GFX:
468 return 0x0020;
469 case OMAP_DSS_VIDEO1:
470 case OMAP_DSS_VIDEO2:
471 return 0x0010;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530472 case OMAP_DSS_VIDEO3:
473 return 0x0070;
Archit Taneja9b372c22011-05-06 11:45:49 +0530474 default:
475 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300476 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530477 }
478}
479
Amber Jainab5ca072011-05-19 19:47:53 +0530480static inline u16 DISPC_ATTR2_OFFSET(enum omap_plane plane)
481{
482 switch (plane) {
483 case OMAP_DSS_GFX:
484 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300485 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530486 case OMAP_DSS_VIDEO1:
487 return 0x0568;
488 case OMAP_DSS_VIDEO2:
489 return 0x04DC;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530490 case OMAP_DSS_VIDEO3:
491 return 0x032C;
Amber Jainab5ca072011-05-19 19:47:53 +0530492 default:
493 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300494 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530495 }
496}
497
Archit Taneja9b372c22011-05-06 11:45:49 +0530498static inline u16 DISPC_FIFO_THRESH_OFFSET(enum omap_plane plane)
499{
500 switch (plane) {
501 case OMAP_DSS_GFX:
502 return 0x0024;
503 case OMAP_DSS_VIDEO1:
504 case OMAP_DSS_VIDEO2:
505 return 0x0014;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530506 case OMAP_DSS_VIDEO3:
507 return 0x008C;
Archit Taneja9b372c22011-05-06 11:45:49 +0530508 default:
509 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300510 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530511 }
512}
513
514static inline u16 DISPC_FIFO_SIZE_STATUS_OFFSET(enum omap_plane plane)
515{
516 switch (plane) {
517 case OMAP_DSS_GFX:
518 return 0x0028;
519 case OMAP_DSS_VIDEO1:
520 case OMAP_DSS_VIDEO2:
521 return 0x0018;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530522 case OMAP_DSS_VIDEO3:
Tomi Valkeinen66a0f9e2012-08-22 16:57:02 +0300523 case OMAP_DSS_WB:
Archit Tanejab8c095b2011-09-13 18:20:33 +0530524 return 0x0088;
Archit Taneja9b372c22011-05-06 11:45:49 +0530525 default:
526 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300527 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530528 }
529}
530
531static inline u16 DISPC_ROW_INC_OFFSET(enum omap_plane plane)
532{
533 switch (plane) {
534 case OMAP_DSS_GFX:
535 return 0x002C;
536 case OMAP_DSS_VIDEO1:
537 case OMAP_DSS_VIDEO2:
538 return 0x001C;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530539 case OMAP_DSS_VIDEO3:
540 return 0x00A4;
Archit Taneja9b372c22011-05-06 11:45:49 +0530541 default:
542 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300543 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530544 }
545}
546
547static inline u16 DISPC_PIX_INC_OFFSET(enum omap_plane plane)
548{
549 switch (plane) {
550 case OMAP_DSS_GFX:
551 return 0x0030;
552 case OMAP_DSS_VIDEO1:
553 case OMAP_DSS_VIDEO2:
554 return 0x0020;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530555 case OMAP_DSS_VIDEO3:
556 return 0x0098;
Archit Taneja9b372c22011-05-06 11:45:49 +0530557 default:
558 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300559 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530560 }
561}
562
563static inline u16 DISPC_WINDOW_SKIP_OFFSET(enum omap_plane plane)
564{
565 switch (plane) {
566 case OMAP_DSS_GFX:
567 return 0x0034;
568 case OMAP_DSS_VIDEO1:
569 case OMAP_DSS_VIDEO2:
Archit Tanejab8c095b2011-09-13 18:20:33 +0530570 case OMAP_DSS_VIDEO3:
Archit Taneja9b372c22011-05-06 11:45:49 +0530571 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300572 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530573 default:
574 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300575 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530576 }
577}
578
579static inline u16 DISPC_TABLE_BA_OFFSET(enum omap_plane plane)
580{
581 switch (plane) {
582 case OMAP_DSS_GFX:
583 return 0x0038;
584 case OMAP_DSS_VIDEO1:
585 case OMAP_DSS_VIDEO2:
Archit Tanejab8c095b2011-09-13 18:20:33 +0530586 case OMAP_DSS_VIDEO3:
Archit Taneja9b372c22011-05-06 11:45:49 +0530587 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300588 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530589 default:
590 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300591 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530592 }
593}
594
595static inline u16 DISPC_FIR_OFFSET(enum omap_plane plane)
596{
597 switch (plane) {
598 case OMAP_DSS_GFX:
599 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300600 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530601 case OMAP_DSS_VIDEO1:
602 case OMAP_DSS_VIDEO2:
603 return 0x0024;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530604 case OMAP_DSS_VIDEO3:
605 return 0x0090;
Archit Taneja9b372c22011-05-06 11:45:49 +0530606 default:
607 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300608 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530609 }
610}
611
Amber Jainab5ca072011-05-19 19:47:53 +0530612static inline u16 DISPC_FIR2_OFFSET(enum omap_plane plane)
613{
614 switch (plane) {
615 case OMAP_DSS_GFX:
616 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300617 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530618 case OMAP_DSS_VIDEO1:
619 return 0x0580;
620 case OMAP_DSS_VIDEO2:
621 return 0x055C;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530622 case OMAP_DSS_VIDEO3:
623 return 0x0424;
Amber Jainab5ca072011-05-19 19:47:53 +0530624 default:
625 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300626 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530627 }
628}
629
Archit Taneja9b372c22011-05-06 11:45:49 +0530630static inline u16 DISPC_PIC_SIZE_OFFSET(enum omap_plane plane)
631{
632 switch (plane) {
633 case OMAP_DSS_GFX:
634 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300635 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530636 case OMAP_DSS_VIDEO1:
637 case OMAP_DSS_VIDEO2:
638 return 0x0028;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530639 case OMAP_DSS_VIDEO3:
640 return 0x0094;
Archit Taneja9b372c22011-05-06 11:45:49 +0530641 default:
642 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300643 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530644 }
645}
646
647
648static inline u16 DISPC_ACCU0_OFFSET(enum omap_plane plane)
649{
650 switch (plane) {
651 case OMAP_DSS_GFX:
652 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300653 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530654 case OMAP_DSS_VIDEO1:
655 case OMAP_DSS_VIDEO2:
656 return 0x002C;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530657 case OMAP_DSS_VIDEO3:
658 return 0x0000;
Archit Taneja9b372c22011-05-06 11:45:49 +0530659 default:
660 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300661 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530662 }
663}
664
Amber Jainab5ca072011-05-19 19:47:53 +0530665static inline u16 DISPC_ACCU2_0_OFFSET(enum omap_plane plane)
666{
667 switch (plane) {
668 case OMAP_DSS_GFX:
669 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300670 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530671 case OMAP_DSS_VIDEO1:
672 return 0x0584;
673 case OMAP_DSS_VIDEO2:
674 return 0x0560;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530675 case OMAP_DSS_VIDEO3:
676 return 0x0428;
Amber Jainab5ca072011-05-19 19:47:53 +0530677 default:
678 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300679 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530680 }
681}
682
Archit Taneja9b372c22011-05-06 11:45:49 +0530683static inline u16 DISPC_ACCU1_OFFSET(enum omap_plane plane)
684{
685 switch (plane) {
686 case OMAP_DSS_GFX:
687 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300688 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530689 case OMAP_DSS_VIDEO1:
690 case OMAP_DSS_VIDEO2:
691 return 0x0030;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530692 case OMAP_DSS_VIDEO3:
693 return 0x0004;
Archit Taneja9b372c22011-05-06 11:45:49 +0530694 default:
695 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300696 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530697 }
698}
699
Amber Jainab5ca072011-05-19 19:47:53 +0530700static inline u16 DISPC_ACCU2_1_OFFSET(enum omap_plane plane)
701{
702 switch (plane) {
703 case OMAP_DSS_GFX:
704 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300705 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530706 case OMAP_DSS_VIDEO1:
707 return 0x0588;
708 case OMAP_DSS_VIDEO2:
709 return 0x0564;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530710 case OMAP_DSS_VIDEO3:
711 return 0x042C;
Amber Jainab5ca072011-05-19 19:47:53 +0530712 default:
713 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300714 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530715 }
716}
717
Archit Taneja9b372c22011-05-06 11:45:49 +0530718/* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */
719static inline u16 DISPC_FIR_COEF_H_OFFSET(enum omap_plane plane, u16 i)
720{
721 switch (plane) {
722 case OMAP_DSS_GFX:
723 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300724 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530725 case OMAP_DSS_VIDEO1:
726 case OMAP_DSS_VIDEO2:
727 return 0x0034 + i * 0x8;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530728 case OMAP_DSS_VIDEO3:
729 return 0x0010 + i * 0x8;
Archit Taneja9b372c22011-05-06 11:45:49 +0530730 default:
731 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300732 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530733 }
734}
735
736/* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */
Amber Jainab5ca072011-05-19 19:47:53 +0530737static inline u16 DISPC_FIR_COEF_H2_OFFSET(enum omap_plane plane, u16 i)
738{
739 switch (plane) {
740 case OMAP_DSS_GFX:
741 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300742 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530743 case OMAP_DSS_VIDEO1:
744 return 0x058C + i * 0x8;
745 case OMAP_DSS_VIDEO2:
746 return 0x0568 + i * 0x8;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530747 case OMAP_DSS_VIDEO3:
748 return 0x0430 + i * 0x8;
Amber Jainab5ca072011-05-19 19:47:53 +0530749 default:
750 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300751 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530752 }
753}
754
755/* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */
Archit Taneja9b372c22011-05-06 11:45:49 +0530756static inline u16 DISPC_FIR_COEF_HV_OFFSET(enum omap_plane plane, u16 i)
757{
758 switch (plane) {
759 case OMAP_DSS_GFX:
760 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300761 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530762 case OMAP_DSS_VIDEO1:
763 case OMAP_DSS_VIDEO2:
764 return 0x0038 + i * 0x8;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530765 case OMAP_DSS_VIDEO3:
766 return 0x0014 + i * 0x8;
Archit Taneja9b372c22011-05-06 11:45:49 +0530767 default:
768 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300769 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530770 }
771}
772
Amber Jainab5ca072011-05-19 19:47:53 +0530773/* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */
774static inline u16 DISPC_FIR_COEF_HV2_OFFSET(enum omap_plane plane, u16 i)
775{
776 switch (plane) {
777 case OMAP_DSS_GFX:
778 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300779 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530780 case OMAP_DSS_VIDEO1:
781 return 0x0590 + i * 8;
782 case OMAP_DSS_VIDEO2:
783 return 0x056C + i * 0x8;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530784 case OMAP_DSS_VIDEO3:
785 return 0x0434 + i * 0x8;
Amber Jainab5ca072011-05-19 19:47:53 +0530786 default:
787 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300788 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530789 }
790}
791
Archit Taneja9b372c22011-05-06 11:45:49 +0530792/* coef index i = {0, 1, 2, 3, 4,} */
793static inline u16 DISPC_CONV_COEF_OFFSET(enum omap_plane plane, u16 i)
794{
795 switch (plane) {
796 case OMAP_DSS_GFX:
797 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300798 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530799 case OMAP_DSS_VIDEO1:
800 case OMAP_DSS_VIDEO2:
Archit Tanejab8c095b2011-09-13 18:20:33 +0530801 case OMAP_DSS_VIDEO3:
Archit Taneja9b372c22011-05-06 11:45:49 +0530802 return 0x0074 + i * 0x4;
803 default:
804 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300805 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530806 }
807}
808
809/* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */
810static inline u16 DISPC_FIR_COEF_V_OFFSET(enum omap_plane plane, u16 i)
811{
812 switch (plane) {
813 case OMAP_DSS_GFX:
814 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300815 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530816 case OMAP_DSS_VIDEO1:
817 return 0x0124 + i * 0x4;
818 case OMAP_DSS_VIDEO2:
819 return 0x00B4 + i * 0x4;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530820 case OMAP_DSS_VIDEO3:
821 return 0x0050 + i * 0x4;
Archit Taneja9b372c22011-05-06 11:45:49 +0530822 default:
823 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300824 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530825 }
826}
827
Amber Jainab5ca072011-05-19 19:47:53 +0530828/* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */
829static inline u16 DISPC_FIR_COEF_V2_OFFSET(enum omap_plane plane, u16 i)
830{
831 switch (plane) {
832 case OMAP_DSS_GFX:
833 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300834 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530835 case OMAP_DSS_VIDEO1:
836 return 0x05CC + i * 0x4;
837 case OMAP_DSS_VIDEO2:
838 return 0x05A8 + i * 0x4;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530839 case OMAP_DSS_VIDEO3:
840 return 0x0470 + i * 0x4;
Amber Jainab5ca072011-05-19 19:47:53 +0530841 default:
842 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300843 return 0;
Amber Jainab5ca072011-05-19 19:47:53 +0530844 }
845}
846
Archit Taneja9b372c22011-05-06 11:45:49 +0530847static inline u16 DISPC_PRELOAD_OFFSET(enum omap_plane plane)
848{
849 switch (plane) {
850 case OMAP_DSS_GFX:
851 return 0x01AC;
852 case OMAP_DSS_VIDEO1:
853 return 0x0174;
854 case OMAP_DSS_VIDEO2:
855 return 0x00E8;
Archit Tanejab8c095b2011-09-13 18:20:33 +0530856 case OMAP_DSS_VIDEO3:
857 return 0x00A0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530858 default:
859 BUG();
Tomi Valkeinenc6eee962012-05-18 11:47:02 +0300860 return 0;
Archit Taneja9b372c22011-05-06 11:45:49 +0530861 }
862}
863#endif