18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * linux/drivers/video/omap2/dss/dispc.h
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * Copyright (C) 2011 Texas Instruments
68c2ecf20Sopenharmony_ci * Author: Archit Taneja <archit@ti.com>
78c2ecf20Sopenharmony_ci */
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci#ifndef __OMAP2_DISPC_REG_H
108c2ecf20Sopenharmony_ci#define __OMAP2_DISPC_REG_H
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci/* DISPC common registers */
138c2ecf20Sopenharmony_ci#define DISPC_REVISION			0x0000
148c2ecf20Sopenharmony_ci#define DISPC_SYSCONFIG			0x0010
158c2ecf20Sopenharmony_ci#define DISPC_SYSSTATUS			0x0014
168c2ecf20Sopenharmony_ci#define DISPC_IRQSTATUS			0x0018
178c2ecf20Sopenharmony_ci#define DISPC_IRQENABLE			0x001C
188c2ecf20Sopenharmony_ci#define DISPC_CONTROL			0x0040
198c2ecf20Sopenharmony_ci#define DISPC_CONFIG			0x0044
208c2ecf20Sopenharmony_ci#define DISPC_CAPABLE			0x0048
218c2ecf20Sopenharmony_ci#define DISPC_LINE_STATUS		0x005C
228c2ecf20Sopenharmony_ci#define DISPC_LINE_NUMBER		0x0060
238c2ecf20Sopenharmony_ci#define DISPC_GLOBAL_ALPHA		0x0074
248c2ecf20Sopenharmony_ci#define DISPC_CONTROL2			0x0238
258c2ecf20Sopenharmony_ci#define DISPC_CONFIG2			0x0620
268c2ecf20Sopenharmony_ci#define DISPC_DIVISOR			0x0804
278c2ecf20Sopenharmony_ci#define DISPC_GLOBAL_BUFFER		0x0800
288c2ecf20Sopenharmony_ci#define DISPC_CONTROL3                  0x0848
298c2ecf20Sopenharmony_ci#define DISPC_CONFIG3                   0x084C
308c2ecf20Sopenharmony_ci#define DISPC_MSTANDBY_CTRL		0x0858
318c2ecf20Sopenharmony_ci#define DISPC_GLOBAL_MFLAG_ATTRIBUTE	0x085C
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ci/* DISPC overlay registers */
348c2ecf20Sopenharmony_ci#define DISPC_OVL_BA0(n)		(DISPC_OVL_BASE(n) + \
358c2ecf20Sopenharmony_ci					DISPC_BA0_OFFSET(n))
368c2ecf20Sopenharmony_ci#define DISPC_OVL_BA1(n)		(DISPC_OVL_BASE(n) + \
378c2ecf20Sopenharmony_ci					DISPC_BA1_OFFSET(n))
388c2ecf20Sopenharmony_ci#define DISPC_OVL_BA0_UV(n)		(DISPC_OVL_BASE(n) + \
398c2ecf20Sopenharmony_ci					DISPC_BA0_UV_OFFSET(n))
408c2ecf20Sopenharmony_ci#define DISPC_OVL_BA1_UV(n)		(DISPC_OVL_BASE(n) + \
418c2ecf20Sopenharmony_ci					DISPC_BA1_UV_OFFSET(n))
428c2ecf20Sopenharmony_ci#define DISPC_OVL_POSITION(n)		(DISPC_OVL_BASE(n) + \
438c2ecf20Sopenharmony_ci					DISPC_POS_OFFSET(n))
448c2ecf20Sopenharmony_ci#define DISPC_OVL_SIZE(n)		(DISPC_OVL_BASE(n) + \
458c2ecf20Sopenharmony_ci					DISPC_SIZE_OFFSET(n))
468c2ecf20Sopenharmony_ci#define DISPC_OVL_ATTRIBUTES(n)		(DISPC_OVL_BASE(n) + \
478c2ecf20Sopenharmony_ci					DISPC_ATTR_OFFSET(n))
488c2ecf20Sopenharmony_ci#define DISPC_OVL_ATTRIBUTES2(n)	(DISPC_OVL_BASE(n) + \
498c2ecf20Sopenharmony_ci					DISPC_ATTR2_OFFSET(n))
508c2ecf20Sopenharmony_ci#define DISPC_OVL_FIFO_THRESHOLD(n)	(DISPC_OVL_BASE(n) + \
518c2ecf20Sopenharmony_ci					DISPC_FIFO_THRESH_OFFSET(n))
528c2ecf20Sopenharmony_ci#define DISPC_OVL_FIFO_SIZE_STATUS(n)	(DISPC_OVL_BASE(n) + \
538c2ecf20Sopenharmony_ci					DISPC_FIFO_SIZE_STATUS_OFFSET(n))
548c2ecf20Sopenharmony_ci#define DISPC_OVL_ROW_INC(n)		(DISPC_OVL_BASE(n) + \
558c2ecf20Sopenharmony_ci					DISPC_ROW_INC_OFFSET(n))
568c2ecf20Sopenharmony_ci#define DISPC_OVL_PIXEL_INC(n)		(DISPC_OVL_BASE(n) + \
578c2ecf20Sopenharmony_ci					DISPC_PIX_INC_OFFSET(n))
588c2ecf20Sopenharmony_ci#define DISPC_OVL_WINDOW_SKIP(n)	(DISPC_OVL_BASE(n) + \
598c2ecf20Sopenharmony_ci					DISPC_WINDOW_SKIP_OFFSET(n))
608c2ecf20Sopenharmony_ci#define DISPC_OVL_TABLE_BA(n)		(DISPC_OVL_BASE(n) + \
618c2ecf20Sopenharmony_ci					DISPC_TABLE_BA_OFFSET(n))
628c2ecf20Sopenharmony_ci#define DISPC_OVL_FIR(n)		(DISPC_OVL_BASE(n) + \
638c2ecf20Sopenharmony_ci					DISPC_FIR_OFFSET(n))
648c2ecf20Sopenharmony_ci#define DISPC_OVL_FIR2(n)		(DISPC_OVL_BASE(n) + \
658c2ecf20Sopenharmony_ci					DISPC_FIR2_OFFSET(n))
668c2ecf20Sopenharmony_ci#define DISPC_OVL_PICTURE_SIZE(n)	(DISPC_OVL_BASE(n) + \
678c2ecf20Sopenharmony_ci					DISPC_PIC_SIZE_OFFSET(n))
688c2ecf20Sopenharmony_ci#define DISPC_OVL_ACCU0(n)		(DISPC_OVL_BASE(n) + \
698c2ecf20Sopenharmony_ci					DISPC_ACCU0_OFFSET(n))
708c2ecf20Sopenharmony_ci#define DISPC_OVL_ACCU1(n)		(DISPC_OVL_BASE(n) + \
718c2ecf20Sopenharmony_ci					DISPC_ACCU1_OFFSET(n))
728c2ecf20Sopenharmony_ci#define DISPC_OVL_ACCU2_0(n)		(DISPC_OVL_BASE(n) + \
738c2ecf20Sopenharmony_ci					DISPC_ACCU2_0_OFFSET(n))
748c2ecf20Sopenharmony_ci#define DISPC_OVL_ACCU2_1(n)		(DISPC_OVL_BASE(n) + \
758c2ecf20Sopenharmony_ci					DISPC_ACCU2_1_OFFSET(n))
768c2ecf20Sopenharmony_ci#define DISPC_OVL_FIR_COEF_H(n, i)	(DISPC_OVL_BASE(n) + \
778c2ecf20Sopenharmony_ci					DISPC_FIR_COEF_H_OFFSET(n, i))
788c2ecf20Sopenharmony_ci#define DISPC_OVL_FIR_COEF_HV(n, i)	(DISPC_OVL_BASE(n) + \
798c2ecf20Sopenharmony_ci					DISPC_FIR_COEF_HV_OFFSET(n, i))
808c2ecf20Sopenharmony_ci#define DISPC_OVL_FIR_COEF_H2(n, i)	(DISPC_OVL_BASE(n) + \
818c2ecf20Sopenharmony_ci					DISPC_FIR_COEF_H2_OFFSET(n, i))
828c2ecf20Sopenharmony_ci#define DISPC_OVL_FIR_COEF_HV2(n, i)	(DISPC_OVL_BASE(n) + \
838c2ecf20Sopenharmony_ci					DISPC_FIR_COEF_HV2_OFFSET(n, i))
848c2ecf20Sopenharmony_ci#define DISPC_OVL_CONV_COEF(n, i)	(DISPC_OVL_BASE(n) + \
858c2ecf20Sopenharmony_ci					DISPC_CONV_COEF_OFFSET(n, i))
868c2ecf20Sopenharmony_ci#define DISPC_OVL_FIR_COEF_V(n, i)	(DISPC_OVL_BASE(n) + \
878c2ecf20Sopenharmony_ci					DISPC_FIR_COEF_V_OFFSET(n, i))
888c2ecf20Sopenharmony_ci#define DISPC_OVL_FIR_COEF_V2(n, i)	(DISPC_OVL_BASE(n) + \
898c2ecf20Sopenharmony_ci					DISPC_FIR_COEF_V2_OFFSET(n, i))
908c2ecf20Sopenharmony_ci#define DISPC_OVL_PRELOAD(n)		(DISPC_OVL_BASE(n) + \
918c2ecf20Sopenharmony_ci					DISPC_PRELOAD_OFFSET(n))
928c2ecf20Sopenharmony_ci#define DISPC_OVL_MFLAG_THRESHOLD(n)	DISPC_MFLAG_THRESHOLD_OFFSET(n)
938c2ecf20Sopenharmony_ci
948c2ecf20Sopenharmony_ci/* DISPC up/downsampling FIR filter coefficient structure */
958c2ecf20Sopenharmony_cistruct dispc_coef {
968c2ecf20Sopenharmony_ci	s8 hc4_vc22;
978c2ecf20Sopenharmony_ci	s8 hc3_vc2;
988c2ecf20Sopenharmony_ci	u8 hc2_vc1;
998c2ecf20Sopenharmony_ci	s8 hc1_vc0;
1008c2ecf20Sopenharmony_ci	s8 hc0_vc00;
1018c2ecf20Sopenharmony_ci};
1028c2ecf20Sopenharmony_ci
1038c2ecf20Sopenharmony_ciconst struct dispc_coef *dispc_ovl_get_scale_coef(int inc, int five_taps);
1048c2ecf20Sopenharmony_ci
1058c2ecf20Sopenharmony_ci/* DISPC manager/channel specific registers */
1068c2ecf20Sopenharmony_cistatic inline u16 DISPC_DEFAULT_COLOR(enum omap_channel channel)
1078c2ecf20Sopenharmony_ci{
1088c2ecf20Sopenharmony_ci	switch (channel) {
1098c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD:
1108c2ecf20Sopenharmony_ci		return 0x004C;
1118c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_DIGIT:
1128c2ecf20Sopenharmony_ci		return 0x0050;
1138c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD2:
1148c2ecf20Sopenharmony_ci		return 0x03AC;
1158c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD3:
1168c2ecf20Sopenharmony_ci		return 0x0814;
1178c2ecf20Sopenharmony_ci	default:
1188c2ecf20Sopenharmony_ci		BUG();
1198c2ecf20Sopenharmony_ci		return 0;
1208c2ecf20Sopenharmony_ci	}
1218c2ecf20Sopenharmony_ci}
1228c2ecf20Sopenharmony_ci
1238c2ecf20Sopenharmony_cistatic inline u16 DISPC_TRANS_COLOR(enum omap_channel channel)
1248c2ecf20Sopenharmony_ci{
1258c2ecf20Sopenharmony_ci	switch (channel) {
1268c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD:
1278c2ecf20Sopenharmony_ci		return 0x0054;
1288c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_DIGIT:
1298c2ecf20Sopenharmony_ci		return 0x0058;
1308c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD2:
1318c2ecf20Sopenharmony_ci		return 0x03B0;
1328c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD3:
1338c2ecf20Sopenharmony_ci		return 0x0818;
1348c2ecf20Sopenharmony_ci	default:
1358c2ecf20Sopenharmony_ci		BUG();
1368c2ecf20Sopenharmony_ci		return 0;
1378c2ecf20Sopenharmony_ci	}
1388c2ecf20Sopenharmony_ci}
1398c2ecf20Sopenharmony_ci
1408c2ecf20Sopenharmony_cistatic inline u16 DISPC_TIMING_H(enum omap_channel channel)
1418c2ecf20Sopenharmony_ci{
1428c2ecf20Sopenharmony_ci	switch (channel) {
1438c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD:
1448c2ecf20Sopenharmony_ci		return 0x0064;
1458c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_DIGIT:
1468c2ecf20Sopenharmony_ci		BUG();
1478c2ecf20Sopenharmony_ci		return 0;
1488c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD2:
1498c2ecf20Sopenharmony_ci		return 0x0400;
1508c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD3:
1518c2ecf20Sopenharmony_ci		return 0x0840;
1528c2ecf20Sopenharmony_ci	default:
1538c2ecf20Sopenharmony_ci		BUG();
1548c2ecf20Sopenharmony_ci		return 0;
1558c2ecf20Sopenharmony_ci	}
1568c2ecf20Sopenharmony_ci}
1578c2ecf20Sopenharmony_ci
1588c2ecf20Sopenharmony_cistatic inline u16 DISPC_TIMING_V(enum omap_channel channel)
1598c2ecf20Sopenharmony_ci{
1608c2ecf20Sopenharmony_ci	switch (channel) {
1618c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD:
1628c2ecf20Sopenharmony_ci		return 0x0068;
1638c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_DIGIT:
1648c2ecf20Sopenharmony_ci		BUG();
1658c2ecf20Sopenharmony_ci		return 0;
1668c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD2:
1678c2ecf20Sopenharmony_ci		return 0x0404;
1688c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD3:
1698c2ecf20Sopenharmony_ci		return 0x0844;
1708c2ecf20Sopenharmony_ci	default:
1718c2ecf20Sopenharmony_ci		BUG();
1728c2ecf20Sopenharmony_ci		return 0;
1738c2ecf20Sopenharmony_ci	}
1748c2ecf20Sopenharmony_ci}
1758c2ecf20Sopenharmony_ci
1768c2ecf20Sopenharmony_cistatic inline u16 DISPC_POL_FREQ(enum omap_channel channel)
1778c2ecf20Sopenharmony_ci{
1788c2ecf20Sopenharmony_ci	switch (channel) {
1798c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD:
1808c2ecf20Sopenharmony_ci		return 0x006C;
1818c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_DIGIT:
1828c2ecf20Sopenharmony_ci		BUG();
1838c2ecf20Sopenharmony_ci		return 0;
1848c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD2:
1858c2ecf20Sopenharmony_ci		return 0x0408;
1868c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD3:
1878c2ecf20Sopenharmony_ci		return 0x083C;
1888c2ecf20Sopenharmony_ci	default:
1898c2ecf20Sopenharmony_ci		BUG();
1908c2ecf20Sopenharmony_ci		return 0;
1918c2ecf20Sopenharmony_ci	}
1928c2ecf20Sopenharmony_ci}
1938c2ecf20Sopenharmony_ci
1948c2ecf20Sopenharmony_cistatic inline u16 DISPC_DIVISORo(enum omap_channel channel)
1958c2ecf20Sopenharmony_ci{
1968c2ecf20Sopenharmony_ci	switch (channel) {
1978c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD:
1988c2ecf20Sopenharmony_ci		return 0x0070;
1998c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_DIGIT:
2008c2ecf20Sopenharmony_ci		BUG();
2018c2ecf20Sopenharmony_ci		return 0;
2028c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD2:
2038c2ecf20Sopenharmony_ci		return 0x040C;
2048c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD3:
2058c2ecf20Sopenharmony_ci		return 0x0838;
2068c2ecf20Sopenharmony_ci	default:
2078c2ecf20Sopenharmony_ci		BUG();
2088c2ecf20Sopenharmony_ci		return 0;
2098c2ecf20Sopenharmony_ci	}
2108c2ecf20Sopenharmony_ci}
2118c2ecf20Sopenharmony_ci
2128c2ecf20Sopenharmony_ci/* Named as DISPC_SIZE_LCD, DISPC_SIZE_DIGIT and DISPC_SIZE_LCD2 in TRM */
2138c2ecf20Sopenharmony_cistatic inline u16 DISPC_SIZE_MGR(enum omap_channel channel)
2148c2ecf20Sopenharmony_ci{
2158c2ecf20Sopenharmony_ci	switch (channel) {
2168c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD:
2178c2ecf20Sopenharmony_ci		return 0x007C;
2188c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_DIGIT:
2198c2ecf20Sopenharmony_ci		return 0x0078;
2208c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD2:
2218c2ecf20Sopenharmony_ci		return 0x03CC;
2228c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD3:
2238c2ecf20Sopenharmony_ci		return 0x0834;
2248c2ecf20Sopenharmony_ci	default:
2258c2ecf20Sopenharmony_ci		BUG();
2268c2ecf20Sopenharmony_ci		return 0;
2278c2ecf20Sopenharmony_ci	}
2288c2ecf20Sopenharmony_ci}
2298c2ecf20Sopenharmony_ci
2308c2ecf20Sopenharmony_cistatic inline u16 DISPC_DATA_CYCLE1(enum omap_channel channel)
2318c2ecf20Sopenharmony_ci{
2328c2ecf20Sopenharmony_ci	switch (channel) {
2338c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD:
2348c2ecf20Sopenharmony_ci		return 0x01D4;
2358c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_DIGIT:
2368c2ecf20Sopenharmony_ci		BUG();
2378c2ecf20Sopenharmony_ci		return 0;
2388c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD2:
2398c2ecf20Sopenharmony_ci		return 0x03C0;
2408c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD3:
2418c2ecf20Sopenharmony_ci		return 0x0828;
2428c2ecf20Sopenharmony_ci	default:
2438c2ecf20Sopenharmony_ci		BUG();
2448c2ecf20Sopenharmony_ci		return 0;
2458c2ecf20Sopenharmony_ci	}
2468c2ecf20Sopenharmony_ci}
2478c2ecf20Sopenharmony_ci
2488c2ecf20Sopenharmony_cistatic inline u16 DISPC_DATA_CYCLE2(enum omap_channel channel)
2498c2ecf20Sopenharmony_ci{
2508c2ecf20Sopenharmony_ci	switch (channel) {
2518c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD:
2528c2ecf20Sopenharmony_ci		return 0x01D8;
2538c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_DIGIT:
2548c2ecf20Sopenharmony_ci		BUG();
2558c2ecf20Sopenharmony_ci		return 0;
2568c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD2:
2578c2ecf20Sopenharmony_ci		return 0x03C4;
2588c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD3:
2598c2ecf20Sopenharmony_ci		return 0x082C;
2608c2ecf20Sopenharmony_ci	default:
2618c2ecf20Sopenharmony_ci		BUG();
2628c2ecf20Sopenharmony_ci		return 0;
2638c2ecf20Sopenharmony_ci	}
2648c2ecf20Sopenharmony_ci}
2658c2ecf20Sopenharmony_ci
2668c2ecf20Sopenharmony_cistatic inline u16 DISPC_DATA_CYCLE3(enum omap_channel channel)
2678c2ecf20Sopenharmony_ci{
2688c2ecf20Sopenharmony_ci	switch (channel) {
2698c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD:
2708c2ecf20Sopenharmony_ci		return 0x01DC;
2718c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_DIGIT:
2728c2ecf20Sopenharmony_ci		BUG();
2738c2ecf20Sopenharmony_ci		return 0;
2748c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD2:
2758c2ecf20Sopenharmony_ci		return 0x03C8;
2768c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD3:
2778c2ecf20Sopenharmony_ci		return 0x0830;
2788c2ecf20Sopenharmony_ci	default:
2798c2ecf20Sopenharmony_ci		BUG();
2808c2ecf20Sopenharmony_ci		return 0;
2818c2ecf20Sopenharmony_ci	}
2828c2ecf20Sopenharmony_ci}
2838c2ecf20Sopenharmony_ci
2848c2ecf20Sopenharmony_cistatic inline u16 DISPC_CPR_COEF_R(enum omap_channel channel)
2858c2ecf20Sopenharmony_ci{
2868c2ecf20Sopenharmony_ci	switch (channel) {
2878c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD:
2888c2ecf20Sopenharmony_ci		return 0x0220;
2898c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_DIGIT:
2908c2ecf20Sopenharmony_ci		BUG();
2918c2ecf20Sopenharmony_ci		return 0;
2928c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD2:
2938c2ecf20Sopenharmony_ci		return 0x03BC;
2948c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD3:
2958c2ecf20Sopenharmony_ci		return 0x0824;
2968c2ecf20Sopenharmony_ci	default:
2978c2ecf20Sopenharmony_ci		BUG();
2988c2ecf20Sopenharmony_ci		return 0;
2998c2ecf20Sopenharmony_ci	}
3008c2ecf20Sopenharmony_ci}
3018c2ecf20Sopenharmony_ci
3028c2ecf20Sopenharmony_cistatic inline u16 DISPC_CPR_COEF_G(enum omap_channel channel)
3038c2ecf20Sopenharmony_ci{
3048c2ecf20Sopenharmony_ci	switch (channel) {
3058c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD:
3068c2ecf20Sopenharmony_ci		return 0x0224;
3078c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_DIGIT:
3088c2ecf20Sopenharmony_ci		BUG();
3098c2ecf20Sopenharmony_ci		return 0;
3108c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD2:
3118c2ecf20Sopenharmony_ci		return 0x03B8;
3128c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD3:
3138c2ecf20Sopenharmony_ci		return 0x0820;
3148c2ecf20Sopenharmony_ci	default:
3158c2ecf20Sopenharmony_ci		BUG();
3168c2ecf20Sopenharmony_ci		return 0;
3178c2ecf20Sopenharmony_ci	}
3188c2ecf20Sopenharmony_ci}
3198c2ecf20Sopenharmony_ci
3208c2ecf20Sopenharmony_cistatic inline u16 DISPC_CPR_COEF_B(enum omap_channel channel)
3218c2ecf20Sopenharmony_ci{
3228c2ecf20Sopenharmony_ci	switch (channel) {
3238c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD:
3248c2ecf20Sopenharmony_ci		return 0x0228;
3258c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_DIGIT:
3268c2ecf20Sopenharmony_ci		BUG();
3278c2ecf20Sopenharmony_ci		return 0;
3288c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD2:
3298c2ecf20Sopenharmony_ci		return 0x03B4;
3308c2ecf20Sopenharmony_ci	case OMAP_DSS_CHANNEL_LCD3:
3318c2ecf20Sopenharmony_ci		return 0x081C;
3328c2ecf20Sopenharmony_ci	default:
3338c2ecf20Sopenharmony_ci		BUG();
3348c2ecf20Sopenharmony_ci		return 0;
3358c2ecf20Sopenharmony_ci	}
3368c2ecf20Sopenharmony_ci}
3378c2ecf20Sopenharmony_ci
3388c2ecf20Sopenharmony_ci/* DISPC overlay register base addresses */
3398c2ecf20Sopenharmony_cistatic inline u16 DISPC_OVL_BASE(enum omap_plane plane)
3408c2ecf20Sopenharmony_ci{
3418c2ecf20Sopenharmony_ci	switch (plane) {
3428c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
3438c2ecf20Sopenharmony_ci		return 0x0080;
3448c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
3458c2ecf20Sopenharmony_ci		return 0x00BC;
3468c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
3478c2ecf20Sopenharmony_ci		return 0x014C;
3488c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
3498c2ecf20Sopenharmony_ci		return 0x0300;
3508c2ecf20Sopenharmony_ci	case OMAP_DSS_WB:
3518c2ecf20Sopenharmony_ci		return 0x0500;
3528c2ecf20Sopenharmony_ci	default:
3538c2ecf20Sopenharmony_ci		BUG();
3548c2ecf20Sopenharmony_ci		return 0;
3558c2ecf20Sopenharmony_ci	}
3568c2ecf20Sopenharmony_ci}
3578c2ecf20Sopenharmony_ci
3588c2ecf20Sopenharmony_ci/* DISPC overlay register offsets */
3598c2ecf20Sopenharmony_cistatic inline u16 DISPC_BA0_OFFSET(enum omap_plane plane)
3608c2ecf20Sopenharmony_ci{
3618c2ecf20Sopenharmony_ci	switch (plane) {
3628c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
3638c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
3648c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
3658c2ecf20Sopenharmony_ci		return 0x0000;
3668c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
3678c2ecf20Sopenharmony_ci	case OMAP_DSS_WB:
3688c2ecf20Sopenharmony_ci		return 0x0008;
3698c2ecf20Sopenharmony_ci	default:
3708c2ecf20Sopenharmony_ci		BUG();
3718c2ecf20Sopenharmony_ci		return 0;
3728c2ecf20Sopenharmony_ci	}
3738c2ecf20Sopenharmony_ci}
3748c2ecf20Sopenharmony_ci
3758c2ecf20Sopenharmony_cistatic inline u16 DISPC_BA1_OFFSET(enum omap_plane plane)
3768c2ecf20Sopenharmony_ci{
3778c2ecf20Sopenharmony_ci	switch (plane) {
3788c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
3798c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
3808c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
3818c2ecf20Sopenharmony_ci		return 0x0004;
3828c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
3838c2ecf20Sopenharmony_ci	case OMAP_DSS_WB:
3848c2ecf20Sopenharmony_ci		return 0x000C;
3858c2ecf20Sopenharmony_ci	default:
3868c2ecf20Sopenharmony_ci		BUG();
3878c2ecf20Sopenharmony_ci		return 0;
3888c2ecf20Sopenharmony_ci	}
3898c2ecf20Sopenharmony_ci}
3908c2ecf20Sopenharmony_ci
3918c2ecf20Sopenharmony_cistatic inline u16 DISPC_BA0_UV_OFFSET(enum omap_plane plane)
3928c2ecf20Sopenharmony_ci{
3938c2ecf20Sopenharmony_ci	switch (plane) {
3948c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
3958c2ecf20Sopenharmony_ci		BUG();
3968c2ecf20Sopenharmony_ci		return 0;
3978c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
3988c2ecf20Sopenharmony_ci		return 0x0544;
3998c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
4008c2ecf20Sopenharmony_ci		return 0x04BC;
4018c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
4028c2ecf20Sopenharmony_ci		return 0x0310;
4038c2ecf20Sopenharmony_ci	case OMAP_DSS_WB:
4048c2ecf20Sopenharmony_ci		return 0x0118;
4058c2ecf20Sopenharmony_ci	default:
4068c2ecf20Sopenharmony_ci		BUG();
4078c2ecf20Sopenharmony_ci		return 0;
4088c2ecf20Sopenharmony_ci	}
4098c2ecf20Sopenharmony_ci}
4108c2ecf20Sopenharmony_ci
4118c2ecf20Sopenharmony_cistatic inline u16 DISPC_BA1_UV_OFFSET(enum omap_plane plane)
4128c2ecf20Sopenharmony_ci{
4138c2ecf20Sopenharmony_ci	switch (plane) {
4148c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
4158c2ecf20Sopenharmony_ci		BUG();
4168c2ecf20Sopenharmony_ci		return 0;
4178c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
4188c2ecf20Sopenharmony_ci		return 0x0548;
4198c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
4208c2ecf20Sopenharmony_ci		return 0x04C0;
4218c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
4228c2ecf20Sopenharmony_ci		return 0x0314;
4238c2ecf20Sopenharmony_ci	case OMAP_DSS_WB:
4248c2ecf20Sopenharmony_ci		return 0x011C;
4258c2ecf20Sopenharmony_ci	default:
4268c2ecf20Sopenharmony_ci		BUG();
4278c2ecf20Sopenharmony_ci		return 0;
4288c2ecf20Sopenharmony_ci	}
4298c2ecf20Sopenharmony_ci}
4308c2ecf20Sopenharmony_ci
4318c2ecf20Sopenharmony_cistatic inline u16 DISPC_POS_OFFSET(enum omap_plane plane)
4328c2ecf20Sopenharmony_ci{
4338c2ecf20Sopenharmony_ci	switch (plane) {
4348c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
4358c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
4368c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
4378c2ecf20Sopenharmony_ci		return 0x0008;
4388c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
4398c2ecf20Sopenharmony_ci		return 0x009C;
4408c2ecf20Sopenharmony_ci	default:
4418c2ecf20Sopenharmony_ci		BUG();
4428c2ecf20Sopenharmony_ci		return 0;
4438c2ecf20Sopenharmony_ci	}
4448c2ecf20Sopenharmony_ci}
4458c2ecf20Sopenharmony_ci
4468c2ecf20Sopenharmony_cistatic inline u16 DISPC_SIZE_OFFSET(enum omap_plane plane)
4478c2ecf20Sopenharmony_ci{
4488c2ecf20Sopenharmony_ci	switch (plane) {
4498c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
4508c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
4518c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
4528c2ecf20Sopenharmony_ci		return 0x000C;
4538c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
4548c2ecf20Sopenharmony_ci	case OMAP_DSS_WB:
4558c2ecf20Sopenharmony_ci		return 0x00A8;
4568c2ecf20Sopenharmony_ci	default:
4578c2ecf20Sopenharmony_ci		BUG();
4588c2ecf20Sopenharmony_ci		return 0;
4598c2ecf20Sopenharmony_ci	}
4608c2ecf20Sopenharmony_ci}
4618c2ecf20Sopenharmony_ci
4628c2ecf20Sopenharmony_cistatic inline u16 DISPC_ATTR_OFFSET(enum omap_plane plane)
4638c2ecf20Sopenharmony_ci{
4648c2ecf20Sopenharmony_ci	switch (plane) {
4658c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
4668c2ecf20Sopenharmony_ci		return 0x0020;
4678c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
4688c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
4698c2ecf20Sopenharmony_ci		return 0x0010;
4708c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
4718c2ecf20Sopenharmony_ci	case OMAP_DSS_WB:
4728c2ecf20Sopenharmony_ci		return 0x0070;
4738c2ecf20Sopenharmony_ci	default:
4748c2ecf20Sopenharmony_ci		BUG();
4758c2ecf20Sopenharmony_ci		return 0;
4768c2ecf20Sopenharmony_ci	}
4778c2ecf20Sopenharmony_ci}
4788c2ecf20Sopenharmony_ci
4798c2ecf20Sopenharmony_cistatic inline u16 DISPC_ATTR2_OFFSET(enum omap_plane plane)
4808c2ecf20Sopenharmony_ci{
4818c2ecf20Sopenharmony_ci	switch (plane) {
4828c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
4838c2ecf20Sopenharmony_ci		BUG();
4848c2ecf20Sopenharmony_ci		return 0;
4858c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
4868c2ecf20Sopenharmony_ci		return 0x0568;
4878c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
4888c2ecf20Sopenharmony_ci		return 0x04DC;
4898c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
4908c2ecf20Sopenharmony_ci		return 0x032C;
4918c2ecf20Sopenharmony_ci	case OMAP_DSS_WB:
4928c2ecf20Sopenharmony_ci		return 0x0310;
4938c2ecf20Sopenharmony_ci	default:
4948c2ecf20Sopenharmony_ci		BUG();
4958c2ecf20Sopenharmony_ci		return 0;
4968c2ecf20Sopenharmony_ci	}
4978c2ecf20Sopenharmony_ci}
4988c2ecf20Sopenharmony_ci
4998c2ecf20Sopenharmony_cistatic inline u16 DISPC_FIFO_THRESH_OFFSET(enum omap_plane plane)
5008c2ecf20Sopenharmony_ci{
5018c2ecf20Sopenharmony_ci	switch (plane) {
5028c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
5038c2ecf20Sopenharmony_ci		return 0x0024;
5048c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
5058c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
5068c2ecf20Sopenharmony_ci		return 0x0014;
5078c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
5088c2ecf20Sopenharmony_ci	case OMAP_DSS_WB:
5098c2ecf20Sopenharmony_ci		return 0x008C;
5108c2ecf20Sopenharmony_ci	default:
5118c2ecf20Sopenharmony_ci		BUG();
5128c2ecf20Sopenharmony_ci		return 0;
5138c2ecf20Sopenharmony_ci	}
5148c2ecf20Sopenharmony_ci}
5158c2ecf20Sopenharmony_ci
5168c2ecf20Sopenharmony_cistatic inline u16 DISPC_FIFO_SIZE_STATUS_OFFSET(enum omap_plane plane)
5178c2ecf20Sopenharmony_ci{
5188c2ecf20Sopenharmony_ci	switch (plane) {
5198c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
5208c2ecf20Sopenharmony_ci		return 0x0028;
5218c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
5228c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
5238c2ecf20Sopenharmony_ci		return 0x0018;
5248c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
5258c2ecf20Sopenharmony_ci	case OMAP_DSS_WB:
5268c2ecf20Sopenharmony_ci		return 0x0088;
5278c2ecf20Sopenharmony_ci	default:
5288c2ecf20Sopenharmony_ci		BUG();
5298c2ecf20Sopenharmony_ci		return 0;
5308c2ecf20Sopenharmony_ci	}
5318c2ecf20Sopenharmony_ci}
5328c2ecf20Sopenharmony_ci
5338c2ecf20Sopenharmony_cistatic inline u16 DISPC_ROW_INC_OFFSET(enum omap_plane plane)
5348c2ecf20Sopenharmony_ci{
5358c2ecf20Sopenharmony_ci	switch (plane) {
5368c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
5378c2ecf20Sopenharmony_ci		return 0x002C;
5388c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
5398c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
5408c2ecf20Sopenharmony_ci		return 0x001C;
5418c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
5428c2ecf20Sopenharmony_ci	case OMAP_DSS_WB:
5438c2ecf20Sopenharmony_ci		return 0x00A4;
5448c2ecf20Sopenharmony_ci	default:
5458c2ecf20Sopenharmony_ci		BUG();
5468c2ecf20Sopenharmony_ci		return 0;
5478c2ecf20Sopenharmony_ci	}
5488c2ecf20Sopenharmony_ci}
5498c2ecf20Sopenharmony_ci
5508c2ecf20Sopenharmony_cistatic inline u16 DISPC_PIX_INC_OFFSET(enum omap_plane plane)
5518c2ecf20Sopenharmony_ci{
5528c2ecf20Sopenharmony_ci	switch (plane) {
5538c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
5548c2ecf20Sopenharmony_ci		return 0x0030;
5558c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
5568c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
5578c2ecf20Sopenharmony_ci		return 0x0020;
5588c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
5598c2ecf20Sopenharmony_ci	case OMAP_DSS_WB:
5608c2ecf20Sopenharmony_ci		return 0x0098;
5618c2ecf20Sopenharmony_ci	default:
5628c2ecf20Sopenharmony_ci		BUG();
5638c2ecf20Sopenharmony_ci		return 0;
5648c2ecf20Sopenharmony_ci	}
5658c2ecf20Sopenharmony_ci}
5668c2ecf20Sopenharmony_ci
5678c2ecf20Sopenharmony_cistatic inline u16 DISPC_WINDOW_SKIP_OFFSET(enum omap_plane plane)
5688c2ecf20Sopenharmony_ci{
5698c2ecf20Sopenharmony_ci	switch (plane) {
5708c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
5718c2ecf20Sopenharmony_ci		return 0x0034;
5728c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
5738c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
5748c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
5758c2ecf20Sopenharmony_ci		BUG();
5768c2ecf20Sopenharmony_ci		return 0;
5778c2ecf20Sopenharmony_ci	default:
5788c2ecf20Sopenharmony_ci		BUG();
5798c2ecf20Sopenharmony_ci		return 0;
5808c2ecf20Sopenharmony_ci	}
5818c2ecf20Sopenharmony_ci}
5828c2ecf20Sopenharmony_ci
5838c2ecf20Sopenharmony_cistatic inline u16 DISPC_TABLE_BA_OFFSET(enum omap_plane plane)
5848c2ecf20Sopenharmony_ci{
5858c2ecf20Sopenharmony_ci	switch (plane) {
5868c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
5878c2ecf20Sopenharmony_ci		return 0x0038;
5888c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
5898c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
5908c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
5918c2ecf20Sopenharmony_ci		BUG();
5928c2ecf20Sopenharmony_ci		return 0;
5938c2ecf20Sopenharmony_ci	default:
5948c2ecf20Sopenharmony_ci		BUG();
5958c2ecf20Sopenharmony_ci		return 0;
5968c2ecf20Sopenharmony_ci	}
5978c2ecf20Sopenharmony_ci}
5988c2ecf20Sopenharmony_ci
5998c2ecf20Sopenharmony_cistatic inline u16 DISPC_FIR_OFFSET(enum omap_plane plane)
6008c2ecf20Sopenharmony_ci{
6018c2ecf20Sopenharmony_ci	switch (plane) {
6028c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
6038c2ecf20Sopenharmony_ci		BUG();
6048c2ecf20Sopenharmony_ci		return 0;
6058c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
6068c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
6078c2ecf20Sopenharmony_ci		return 0x0024;
6088c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
6098c2ecf20Sopenharmony_ci	case OMAP_DSS_WB:
6108c2ecf20Sopenharmony_ci		return 0x0090;
6118c2ecf20Sopenharmony_ci	default:
6128c2ecf20Sopenharmony_ci		BUG();
6138c2ecf20Sopenharmony_ci		return 0;
6148c2ecf20Sopenharmony_ci	}
6158c2ecf20Sopenharmony_ci}
6168c2ecf20Sopenharmony_ci
6178c2ecf20Sopenharmony_cistatic inline u16 DISPC_FIR2_OFFSET(enum omap_plane plane)
6188c2ecf20Sopenharmony_ci{
6198c2ecf20Sopenharmony_ci	switch (plane) {
6208c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
6218c2ecf20Sopenharmony_ci		BUG();
6228c2ecf20Sopenharmony_ci		return 0;
6238c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
6248c2ecf20Sopenharmony_ci		return 0x0580;
6258c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
6268c2ecf20Sopenharmony_ci		return 0x055C;
6278c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
6288c2ecf20Sopenharmony_ci		return 0x0424;
6298c2ecf20Sopenharmony_ci	case OMAP_DSS_WB:
6308c2ecf20Sopenharmony_ci		return 0x290;
6318c2ecf20Sopenharmony_ci	default:
6328c2ecf20Sopenharmony_ci		BUG();
6338c2ecf20Sopenharmony_ci		return 0;
6348c2ecf20Sopenharmony_ci	}
6358c2ecf20Sopenharmony_ci}
6368c2ecf20Sopenharmony_ci
6378c2ecf20Sopenharmony_cistatic inline u16 DISPC_PIC_SIZE_OFFSET(enum omap_plane plane)
6388c2ecf20Sopenharmony_ci{
6398c2ecf20Sopenharmony_ci	switch (plane) {
6408c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
6418c2ecf20Sopenharmony_ci		BUG();
6428c2ecf20Sopenharmony_ci		return 0;
6438c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
6448c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
6458c2ecf20Sopenharmony_ci		return 0x0028;
6468c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
6478c2ecf20Sopenharmony_ci	case OMAP_DSS_WB:
6488c2ecf20Sopenharmony_ci		return 0x0094;
6498c2ecf20Sopenharmony_ci	default:
6508c2ecf20Sopenharmony_ci		BUG();
6518c2ecf20Sopenharmony_ci		return 0;
6528c2ecf20Sopenharmony_ci	}
6538c2ecf20Sopenharmony_ci}
6548c2ecf20Sopenharmony_ci
6558c2ecf20Sopenharmony_ci
6568c2ecf20Sopenharmony_cistatic inline u16 DISPC_ACCU0_OFFSET(enum omap_plane plane)
6578c2ecf20Sopenharmony_ci{
6588c2ecf20Sopenharmony_ci	switch (plane) {
6598c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
6608c2ecf20Sopenharmony_ci		BUG();
6618c2ecf20Sopenharmony_ci		return 0;
6628c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
6638c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
6648c2ecf20Sopenharmony_ci		return 0x002C;
6658c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
6668c2ecf20Sopenharmony_ci	case OMAP_DSS_WB:
6678c2ecf20Sopenharmony_ci		return 0x0000;
6688c2ecf20Sopenharmony_ci	default:
6698c2ecf20Sopenharmony_ci		BUG();
6708c2ecf20Sopenharmony_ci		return 0;
6718c2ecf20Sopenharmony_ci	}
6728c2ecf20Sopenharmony_ci}
6738c2ecf20Sopenharmony_ci
6748c2ecf20Sopenharmony_cistatic inline u16 DISPC_ACCU2_0_OFFSET(enum omap_plane plane)
6758c2ecf20Sopenharmony_ci{
6768c2ecf20Sopenharmony_ci	switch (plane) {
6778c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
6788c2ecf20Sopenharmony_ci		BUG();
6798c2ecf20Sopenharmony_ci		return 0;
6808c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
6818c2ecf20Sopenharmony_ci		return 0x0584;
6828c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
6838c2ecf20Sopenharmony_ci		return 0x0560;
6848c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
6858c2ecf20Sopenharmony_ci		return 0x0428;
6868c2ecf20Sopenharmony_ci	case OMAP_DSS_WB:
6878c2ecf20Sopenharmony_ci		return 0x0294;
6888c2ecf20Sopenharmony_ci	default:
6898c2ecf20Sopenharmony_ci		BUG();
6908c2ecf20Sopenharmony_ci		return 0;
6918c2ecf20Sopenharmony_ci	}
6928c2ecf20Sopenharmony_ci}
6938c2ecf20Sopenharmony_ci
6948c2ecf20Sopenharmony_cistatic inline u16 DISPC_ACCU1_OFFSET(enum omap_plane plane)
6958c2ecf20Sopenharmony_ci{
6968c2ecf20Sopenharmony_ci	switch (plane) {
6978c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
6988c2ecf20Sopenharmony_ci		BUG();
6998c2ecf20Sopenharmony_ci		return 0;
7008c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
7018c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
7028c2ecf20Sopenharmony_ci		return 0x0030;
7038c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
7048c2ecf20Sopenharmony_ci	case OMAP_DSS_WB:
7058c2ecf20Sopenharmony_ci		return 0x0004;
7068c2ecf20Sopenharmony_ci	default:
7078c2ecf20Sopenharmony_ci		BUG();
7088c2ecf20Sopenharmony_ci		return 0;
7098c2ecf20Sopenharmony_ci	}
7108c2ecf20Sopenharmony_ci}
7118c2ecf20Sopenharmony_ci
7128c2ecf20Sopenharmony_cistatic inline u16 DISPC_ACCU2_1_OFFSET(enum omap_plane plane)
7138c2ecf20Sopenharmony_ci{
7148c2ecf20Sopenharmony_ci	switch (plane) {
7158c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
7168c2ecf20Sopenharmony_ci		BUG();
7178c2ecf20Sopenharmony_ci		return 0;
7188c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
7198c2ecf20Sopenharmony_ci		return 0x0588;
7208c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
7218c2ecf20Sopenharmony_ci		return 0x0564;
7228c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
7238c2ecf20Sopenharmony_ci		return 0x042C;
7248c2ecf20Sopenharmony_ci	case OMAP_DSS_WB:
7258c2ecf20Sopenharmony_ci		return 0x0298;
7268c2ecf20Sopenharmony_ci	default:
7278c2ecf20Sopenharmony_ci		BUG();
7288c2ecf20Sopenharmony_ci		return 0;
7298c2ecf20Sopenharmony_ci	}
7308c2ecf20Sopenharmony_ci}
7318c2ecf20Sopenharmony_ci
7328c2ecf20Sopenharmony_ci/* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */
7338c2ecf20Sopenharmony_cistatic inline u16 DISPC_FIR_COEF_H_OFFSET(enum omap_plane plane, u16 i)
7348c2ecf20Sopenharmony_ci{
7358c2ecf20Sopenharmony_ci	switch (plane) {
7368c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
7378c2ecf20Sopenharmony_ci		BUG();
7388c2ecf20Sopenharmony_ci		return 0;
7398c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
7408c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
7418c2ecf20Sopenharmony_ci		return 0x0034 + i * 0x8;
7428c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
7438c2ecf20Sopenharmony_ci	case OMAP_DSS_WB:
7448c2ecf20Sopenharmony_ci		return 0x0010 + i * 0x8;
7458c2ecf20Sopenharmony_ci	default:
7468c2ecf20Sopenharmony_ci		BUG();
7478c2ecf20Sopenharmony_ci		return 0;
7488c2ecf20Sopenharmony_ci	}
7498c2ecf20Sopenharmony_ci}
7508c2ecf20Sopenharmony_ci
7518c2ecf20Sopenharmony_ci/* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */
7528c2ecf20Sopenharmony_cistatic inline u16 DISPC_FIR_COEF_H2_OFFSET(enum omap_plane plane, u16 i)
7538c2ecf20Sopenharmony_ci{
7548c2ecf20Sopenharmony_ci	switch (plane) {
7558c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
7568c2ecf20Sopenharmony_ci		BUG();
7578c2ecf20Sopenharmony_ci		return 0;
7588c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
7598c2ecf20Sopenharmony_ci		return 0x058C + i * 0x8;
7608c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
7618c2ecf20Sopenharmony_ci		return 0x0568 + i * 0x8;
7628c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
7638c2ecf20Sopenharmony_ci		return 0x0430 + i * 0x8;
7648c2ecf20Sopenharmony_ci	case OMAP_DSS_WB:
7658c2ecf20Sopenharmony_ci		return 0x02A0 + i * 0x8;
7668c2ecf20Sopenharmony_ci	default:
7678c2ecf20Sopenharmony_ci		BUG();
7688c2ecf20Sopenharmony_ci		return 0;
7698c2ecf20Sopenharmony_ci	}
7708c2ecf20Sopenharmony_ci}
7718c2ecf20Sopenharmony_ci
7728c2ecf20Sopenharmony_ci/* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */
7738c2ecf20Sopenharmony_cistatic inline u16 DISPC_FIR_COEF_HV_OFFSET(enum omap_plane plane, u16 i)
7748c2ecf20Sopenharmony_ci{
7758c2ecf20Sopenharmony_ci	switch (plane) {
7768c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
7778c2ecf20Sopenharmony_ci		BUG();
7788c2ecf20Sopenharmony_ci		return 0;
7798c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
7808c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
7818c2ecf20Sopenharmony_ci		return 0x0038 + i * 0x8;
7828c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
7838c2ecf20Sopenharmony_ci	case OMAP_DSS_WB:
7848c2ecf20Sopenharmony_ci		return 0x0014 + i * 0x8;
7858c2ecf20Sopenharmony_ci	default:
7868c2ecf20Sopenharmony_ci		BUG();
7878c2ecf20Sopenharmony_ci		return 0;
7888c2ecf20Sopenharmony_ci	}
7898c2ecf20Sopenharmony_ci}
7908c2ecf20Sopenharmony_ci
7918c2ecf20Sopenharmony_ci/* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */
7928c2ecf20Sopenharmony_cistatic inline u16 DISPC_FIR_COEF_HV2_OFFSET(enum omap_plane plane, u16 i)
7938c2ecf20Sopenharmony_ci{
7948c2ecf20Sopenharmony_ci	switch (plane) {
7958c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
7968c2ecf20Sopenharmony_ci		BUG();
7978c2ecf20Sopenharmony_ci		return 0;
7988c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
7998c2ecf20Sopenharmony_ci		return 0x0590 + i * 8;
8008c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
8018c2ecf20Sopenharmony_ci		return 0x056C + i * 0x8;
8028c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
8038c2ecf20Sopenharmony_ci		return 0x0434 + i * 0x8;
8048c2ecf20Sopenharmony_ci	case OMAP_DSS_WB:
8058c2ecf20Sopenharmony_ci		return 0x02A4 + i * 0x8;
8068c2ecf20Sopenharmony_ci	default:
8078c2ecf20Sopenharmony_ci		BUG();
8088c2ecf20Sopenharmony_ci		return 0;
8098c2ecf20Sopenharmony_ci	}
8108c2ecf20Sopenharmony_ci}
8118c2ecf20Sopenharmony_ci
8128c2ecf20Sopenharmony_ci/* coef index i = {0, 1, 2, 3, 4,} */
8138c2ecf20Sopenharmony_cistatic inline u16 DISPC_CONV_COEF_OFFSET(enum omap_plane plane, u16 i)
8148c2ecf20Sopenharmony_ci{
8158c2ecf20Sopenharmony_ci	switch (plane) {
8168c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
8178c2ecf20Sopenharmony_ci		BUG();
8188c2ecf20Sopenharmony_ci		return 0;
8198c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
8208c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
8218c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
8228c2ecf20Sopenharmony_ci	case OMAP_DSS_WB:
8238c2ecf20Sopenharmony_ci		return 0x0074 + i * 0x4;
8248c2ecf20Sopenharmony_ci	default:
8258c2ecf20Sopenharmony_ci		BUG();
8268c2ecf20Sopenharmony_ci		return 0;
8278c2ecf20Sopenharmony_ci	}
8288c2ecf20Sopenharmony_ci}
8298c2ecf20Sopenharmony_ci
8308c2ecf20Sopenharmony_ci/* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */
8318c2ecf20Sopenharmony_cistatic inline u16 DISPC_FIR_COEF_V_OFFSET(enum omap_plane plane, u16 i)
8328c2ecf20Sopenharmony_ci{
8338c2ecf20Sopenharmony_ci	switch (plane) {
8348c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
8358c2ecf20Sopenharmony_ci		BUG();
8368c2ecf20Sopenharmony_ci		return 0;
8378c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
8388c2ecf20Sopenharmony_ci		return 0x0124 + i * 0x4;
8398c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
8408c2ecf20Sopenharmony_ci		return 0x00B4 + i * 0x4;
8418c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
8428c2ecf20Sopenharmony_ci	case OMAP_DSS_WB:
8438c2ecf20Sopenharmony_ci		return 0x0050 + i * 0x4;
8448c2ecf20Sopenharmony_ci	default:
8458c2ecf20Sopenharmony_ci		BUG();
8468c2ecf20Sopenharmony_ci		return 0;
8478c2ecf20Sopenharmony_ci	}
8488c2ecf20Sopenharmony_ci}
8498c2ecf20Sopenharmony_ci
8508c2ecf20Sopenharmony_ci/* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */
8518c2ecf20Sopenharmony_cistatic inline u16 DISPC_FIR_COEF_V2_OFFSET(enum omap_plane plane, u16 i)
8528c2ecf20Sopenharmony_ci{
8538c2ecf20Sopenharmony_ci	switch (plane) {
8548c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
8558c2ecf20Sopenharmony_ci		BUG();
8568c2ecf20Sopenharmony_ci		return 0;
8578c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
8588c2ecf20Sopenharmony_ci		return 0x05CC + i * 0x4;
8598c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
8608c2ecf20Sopenharmony_ci		return 0x05A8 + i * 0x4;
8618c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
8628c2ecf20Sopenharmony_ci		return 0x0470 + i * 0x4;
8638c2ecf20Sopenharmony_ci	case OMAP_DSS_WB:
8648c2ecf20Sopenharmony_ci		return 0x02E0 + i * 0x4;
8658c2ecf20Sopenharmony_ci	default:
8668c2ecf20Sopenharmony_ci		BUG();
8678c2ecf20Sopenharmony_ci		return 0;
8688c2ecf20Sopenharmony_ci	}
8698c2ecf20Sopenharmony_ci}
8708c2ecf20Sopenharmony_ci
8718c2ecf20Sopenharmony_cistatic inline u16 DISPC_PRELOAD_OFFSET(enum omap_plane plane)
8728c2ecf20Sopenharmony_ci{
8738c2ecf20Sopenharmony_ci	switch (plane) {
8748c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
8758c2ecf20Sopenharmony_ci		return 0x01AC;
8768c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
8778c2ecf20Sopenharmony_ci		return 0x0174;
8788c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
8798c2ecf20Sopenharmony_ci		return 0x00E8;
8808c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
8818c2ecf20Sopenharmony_ci		return 0x00A0;
8828c2ecf20Sopenharmony_ci	default:
8838c2ecf20Sopenharmony_ci		BUG();
8848c2ecf20Sopenharmony_ci		return 0;
8858c2ecf20Sopenharmony_ci	}
8868c2ecf20Sopenharmony_ci}
8878c2ecf20Sopenharmony_ci
8888c2ecf20Sopenharmony_cistatic inline u16 DISPC_MFLAG_THRESHOLD_OFFSET(enum omap_plane plane)
8898c2ecf20Sopenharmony_ci{
8908c2ecf20Sopenharmony_ci	switch (plane) {
8918c2ecf20Sopenharmony_ci	case OMAP_DSS_GFX:
8928c2ecf20Sopenharmony_ci		return 0x0860;
8938c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO1:
8948c2ecf20Sopenharmony_ci		return 0x0864;
8958c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO2:
8968c2ecf20Sopenharmony_ci		return 0x0868;
8978c2ecf20Sopenharmony_ci	case OMAP_DSS_VIDEO3:
8988c2ecf20Sopenharmony_ci		return 0x086c;
8998c2ecf20Sopenharmony_ci	case OMAP_DSS_WB:
9008c2ecf20Sopenharmony_ci		return 0x0870;
9018c2ecf20Sopenharmony_ci	default:
9028c2ecf20Sopenharmony_ci		BUG();
9038c2ecf20Sopenharmony_ci		return 0;
9048c2ecf20Sopenharmony_ci	}
9058c2ecf20Sopenharmony_ci}
9068c2ecf20Sopenharmony_ci
9078c2ecf20Sopenharmony_ci#endif
908