162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * linux/drivers/video/omap2/dss/dispc.h 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright (C) 2011 Texas Instruments 662306a36Sopenharmony_ci * Author: Archit Taneja <archit@ti.com> 762306a36Sopenharmony_ci */ 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#ifndef __OMAP2_DISPC_REG_H 1062306a36Sopenharmony_ci#define __OMAP2_DISPC_REG_H 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci/* DISPC common registers */ 1362306a36Sopenharmony_ci#define DISPC_REVISION 0x0000 1462306a36Sopenharmony_ci#define DISPC_SYSCONFIG 0x0010 1562306a36Sopenharmony_ci#define DISPC_SYSSTATUS 0x0014 1662306a36Sopenharmony_ci#define DISPC_IRQSTATUS 0x0018 1762306a36Sopenharmony_ci#define DISPC_IRQENABLE 0x001C 1862306a36Sopenharmony_ci#define DISPC_CONTROL 0x0040 1962306a36Sopenharmony_ci#define DISPC_CONFIG 0x0044 2062306a36Sopenharmony_ci#define DISPC_CAPABLE 0x0048 2162306a36Sopenharmony_ci#define DISPC_LINE_STATUS 0x005C 2262306a36Sopenharmony_ci#define DISPC_LINE_NUMBER 0x0060 2362306a36Sopenharmony_ci#define DISPC_GLOBAL_ALPHA 0x0074 2462306a36Sopenharmony_ci#define DISPC_CONTROL2 0x0238 2562306a36Sopenharmony_ci#define DISPC_CONFIG2 0x0620 2662306a36Sopenharmony_ci#define DISPC_DIVISOR 0x0804 2762306a36Sopenharmony_ci#define DISPC_GLOBAL_BUFFER 0x0800 2862306a36Sopenharmony_ci#define DISPC_CONTROL3 0x0848 2962306a36Sopenharmony_ci#define DISPC_CONFIG3 0x084C 3062306a36Sopenharmony_ci#define DISPC_MSTANDBY_CTRL 0x0858 3162306a36Sopenharmony_ci#define DISPC_GLOBAL_MFLAG_ATTRIBUTE 0x085C 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci/* DISPC overlay registers */ 3462306a36Sopenharmony_ci#define DISPC_OVL_BA0(n) (DISPC_OVL_BASE(n) + \ 3562306a36Sopenharmony_ci DISPC_BA0_OFFSET(n)) 3662306a36Sopenharmony_ci#define DISPC_OVL_BA1(n) (DISPC_OVL_BASE(n) + \ 3762306a36Sopenharmony_ci DISPC_BA1_OFFSET(n)) 3862306a36Sopenharmony_ci#define DISPC_OVL_BA0_UV(n) (DISPC_OVL_BASE(n) + \ 3962306a36Sopenharmony_ci DISPC_BA0_UV_OFFSET(n)) 4062306a36Sopenharmony_ci#define DISPC_OVL_BA1_UV(n) (DISPC_OVL_BASE(n) + \ 4162306a36Sopenharmony_ci DISPC_BA1_UV_OFFSET(n)) 4262306a36Sopenharmony_ci#define DISPC_OVL_POSITION(n) (DISPC_OVL_BASE(n) + \ 4362306a36Sopenharmony_ci DISPC_POS_OFFSET(n)) 4462306a36Sopenharmony_ci#define DISPC_OVL_SIZE(n) (DISPC_OVL_BASE(n) + \ 4562306a36Sopenharmony_ci DISPC_SIZE_OFFSET(n)) 4662306a36Sopenharmony_ci#define DISPC_OVL_ATTRIBUTES(n) (DISPC_OVL_BASE(n) + \ 4762306a36Sopenharmony_ci DISPC_ATTR_OFFSET(n)) 4862306a36Sopenharmony_ci#define DISPC_OVL_ATTRIBUTES2(n) (DISPC_OVL_BASE(n) + \ 4962306a36Sopenharmony_ci DISPC_ATTR2_OFFSET(n)) 5062306a36Sopenharmony_ci#define DISPC_OVL_FIFO_THRESHOLD(n) (DISPC_OVL_BASE(n) + \ 5162306a36Sopenharmony_ci DISPC_FIFO_THRESH_OFFSET(n)) 5262306a36Sopenharmony_ci#define DISPC_OVL_FIFO_SIZE_STATUS(n) (DISPC_OVL_BASE(n) + \ 5362306a36Sopenharmony_ci DISPC_FIFO_SIZE_STATUS_OFFSET(n)) 5462306a36Sopenharmony_ci#define DISPC_OVL_ROW_INC(n) (DISPC_OVL_BASE(n) + \ 5562306a36Sopenharmony_ci DISPC_ROW_INC_OFFSET(n)) 5662306a36Sopenharmony_ci#define DISPC_OVL_PIXEL_INC(n) (DISPC_OVL_BASE(n) + \ 5762306a36Sopenharmony_ci DISPC_PIX_INC_OFFSET(n)) 5862306a36Sopenharmony_ci#define DISPC_OVL_WINDOW_SKIP(n) (DISPC_OVL_BASE(n) + \ 5962306a36Sopenharmony_ci DISPC_WINDOW_SKIP_OFFSET(n)) 6062306a36Sopenharmony_ci#define DISPC_OVL_TABLE_BA(n) (DISPC_OVL_BASE(n) + \ 6162306a36Sopenharmony_ci DISPC_TABLE_BA_OFFSET(n)) 6262306a36Sopenharmony_ci#define DISPC_OVL_FIR(n) (DISPC_OVL_BASE(n) + \ 6362306a36Sopenharmony_ci DISPC_FIR_OFFSET(n)) 6462306a36Sopenharmony_ci#define DISPC_OVL_FIR2(n) (DISPC_OVL_BASE(n) + \ 6562306a36Sopenharmony_ci DISPC_FIR2_OFFSET(n)) 6662306a36Sopenharmony_ci#define DISPC_OVL_PICTURE_SIZE(n) (DISPC_OVL_BASE(n) + \ 6762306a36Sopenharmony_ci DISPC_PIC_SIZE_OFFSET(n)) 6862306a36Sopenharmony_ci#define DISPC_OVL_ACCU0(n) (DISPC_OVL_BASE(n) + \ 6962306a36Sopenharmony_ci DISPC_ACCU0_OFFSET(n)) 7062306a36Sopenharmony_ci#define DISPC_OVL_ACCU1(n) (DISPC_OVL_BASE(n) + \ 7162306a36Sopenharmony_ci DISPC_ACCU1_OFFSET(n)) 7262306a36Sopenharmony_ci#define DISPC_OVL_ACCU2_0(n) (DISPC_OVL_BASE(n) + \ 7362306a36Sopenharmony_ci DISPC_ACCU2_0_OFFSET(n)) 7462306a36Sopenharmony_ci#define DISPC_OVL_ACCU2_1(n) (DISPC_OVL_BASE(n) + \ 7562306a36Sopenharmony_ci DISPC_ACCU2_1_OFFSET(n)) 7662306a36Sopenharmony_ci#define DISPC_OVL_FIR_COEF_H(n, i) (DISPC_OVL_BASE(n) + \ 7762306a36Sopenharmony_ci DISPC_FIR_COEF_H_OFFSET(n, i)) 7862306a36Sopenharmony_ci#define DISPC_OVL_FIR_COEF_HV(n, i) (DISPC_OVL_BASE(n) + \ 7962306a36Sopenharmony_ci DISPC_FIR_COEF_HV_OFFSET(n, i)) 8062306a36Sopenharmony_ci#define DISPC_OVL_FIR_COEF_H2(n, i) (DISPC_OVL_BASE(n) + \ 8162306a36Sopenharmony_ci DISPC_FIR_COEF_H2_OFFSET(n, i)) 8262306a36Sopenharmony_ci#define DISPC_OVL_FIR_COEF_HV2(n, i) (DISPC_OVL_BASE(n) + \ 8362306a36Sopenharmony_ci DISPC_FIR_COEF_HV2_OFFSET(n, i)) 8462306a36Sopenharmony_ci#define DISPC_OVL_CONV_COEF(n, i) (DISPC_OVL_BASE(n) + \ 8562306a36Sopenharmony_ci DISPC_CONV_COEF_OFFSET(n, i)) 8662306a36Sopenharmony_ci#define DISPC_OVL_FIR_COEF_V(n, i) (DISPC_OVL_BASE(n) + \ 8762306a36Sopenharmony_ci DISPC_FIR_COEF_V_OFFSET(n, i)) 8862306a36Sopenharmony_ci#define DISPC_OVL_FIR_COEF_V2(n, i) (DISPC_OVL_BASE(n) + \ 8962306a36Sopenharmony_ci DISPC_FIR_COEF_V2_OFFSET(n, i)) 9062306a36Sopenharmony_ci#define DISPC_OVL_PRELOAD(n) (DISPC_OVL_BASE(n) + \ 9162306a36Sopenharmony_ci DISPC_PRELOAD_OFFSET(n)) 9262306a36Sopenharmony_ci#define DISPC_OVL_MFLAG_THRESHOLD(n) DISPC_MFLAG_THRESHOLD_OFFSET(n) 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_ci/* DISPC up/downsampling FIR filter coefficient structure */ 9562306a36Sopenharmony_cistruct dispc_coef { 9662306a36Sopenharmony_ci s8 hc4_vc22; 9762306a36Sopenharmony_ci s8 hc3_vc2; 9862306a36Sopenharmony_ci u8 hc2_vc1; 9962306a36Sopenharmony_ci s8 hc1_vc0; 10062306a36Sopenharmony_ci s8 hc0_vc00; 10162306a36Sopenharmony_ci}; 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_ciconst struct dispc_coef *dispc_ovl_get_scale_coef(int inc, int five_taps); 10462306a36Sopenharmony_ci 10562306a36Sopenharmony_ci/* DISPC manager/channel specific registers */ 10662306a36Sopenharmony_cistatic inline u16 DISPC_DEFAULT_COLOR(enum omap_channel channel) 10762306a36Sopenharmony_ci{ 10862306a36Sopenharmony_ci switch (channel) { 10962306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD: 11062306a36Sopenharmony_ci return 0x004C; 11162306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_DIGIT: 11262306a36Sopenharmony_ci return 0x0050; 11362306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD2: 11462306a36Sopenharmony_ci return 0x03AC; 11562306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD3: 11662306a36Sopenharmony_ci return 0x0814; 11762306a36Sopenharmony_ci default: 11862306a36Sopenharmony_ci BUG(); 11962306a36Sopenharmony_ci return 0; 12062306a36Sopenharmony_ci } 12162306a36Sopenharmony_ci} 12262306a36Sopenharmony_ci 12362306a36Sopenharmony_cistatic inline u16 DISPC_TRANS_COLOR(enum omap_channel channel) 12462306a36Sopenharmony_ci{ 12562306a36Sopenharmony_ci switch (channel) { 12662306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD: 12762306a36Sopenharmony_ci return 0x0054; 12862306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_DIGIT: 12962306a36Sopenharmony_ci return 0x0058; 13062306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD2: 13162306a36Sopenharmony_ci return 0x03B0; 13262306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD3: 13362306a36Sopenharmony_ci return 0x0818; 13462306a36Sopenharmony_ci default: 13562306a36Sopenharmony_ci BUG(); 13662306a36Sopenharmony_ci return 0; 13762306a36Sopenharmony_ci } 13862306a36Sopenharmony_ci} 13962306a36Sopenharmony_ci 14062306a36Sopenharmony_cistatic inline u16 DISPC_TIMING_H(enum omap_channel channel) 14162306a36Sopenharmony_ci{ 14262306a36Sopenharmony_ci switch (channel) { 14362306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD: 14462306a36Sopenharmony_ci return 0x0064; 14562306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_DIGIT: 14662306a36Sopenharmony_ci BUG(); 14762306a36Sopenharmony_ci return 0; 14862306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD2: 14962306a36Sopenharmony_ci return 0x0400; 15062306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD3: 15162306a36Sopenharmony_ci return 0x0840; 15262306a36Sopenharmony_ci default: 15362306a36Sopenharmony_ci BUG(); 15462306a36Sopenharmony_ci return 0; 15562306a36Sopenharmony_ci } 15662306a36Sopenharmony_ci} 15762306a36Sopenharmony_ci 15862306a36Sopenharmony_cistatic inline u16 DISPC_TIMING_V(enum omap_channel channel) 15962306a36Sopenharmony_ci{ 16062306a36Sopenharmony_ci switch (channel) { 16162306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD: 16262306a36Sopenharmony_ci return 0x0068; 16362306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_DIGIT: 16462306a36Sopenharmony_ci BUG(); 16562306a36Sopenharmony_ci return 0; 16662306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD2: 16762306a36Sopenharmony_ci return 0x0404; 16862306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD3: 16962306a36Sopenharmony_ci return 0x0844; 17062306a36Sopenharmony_ci default: 17162306a36Sopenharmony_ci BUG(); 17262306a36Sopenharmony_ci return 0; 17362306a36Sopenharmony_ci } 17462306a36Sopenharmony_ci} 17562306a36Sopenharmony_ci 17662306a36Sopenharmony_cistatic inline u16 DISPC_POL_FREQ(enum omap_channel channel) 17762306a36Sopenharmony_ci{ 17862306a36Sopenharmony_ci switch (channel) { 17962306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD: 18062306a36Sopenharmony_ci return 0x006C; 18162306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_DIGIT: 18262306a36Sopenharmony_ci BUG(); 18362306a36Sopenharmony_ci return 0; 18462306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD2: 18562306a36Sopenharmony_ci return 0x0408; 18662306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD3: 18762306a36Sopenharmony_ci return 0x083C; 18862306a36Sopenharmony_ci default: 18962306a36Sopenharmony_ci BUG(); 19062306a36Sopenharmony_ci return 0; 19162306a36Sopenharmony_ci } 19262306a36Sopenharmony_ci} 19362306a36Sopenharmony_ci 19462306a36Sopenharmony_cistatic inline u16 DISPC_DIVISORo(enum omap_channel channel) 19562306a36Sopenharmony_ci{ 19662306a36Sopenharmony_ci switch (channel) { 19762306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD: 19862306a36Sopenharmony_ci return 0x0070; 19962306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_DIGIT: 20062306a36Sopenharmony_ci BUG(); 20162306a36Sopenharmony_ci return 0; 20262306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD2: 20362306a36Sopenharmony_ci return 0x040C; 20462306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD3: 20562306a36Sopenharmony_ci return 0x0838; 20662306a36Sopenharmony_ci default: 20762306a36Sopenharmony_ci BUG(); 20862306a36Sopenharmony_ci return 0; 20962306a36Sopenharmony_ci } 21062306a36Sopenharmony_ci} 21162306a36Sopenharmony_ci 21262306a36Sopenharmony_ci/* Named as DISPC_SIZE_LCD, DISPC_SIZE_DIGIT and DISPC_SIZE_LCD2 in TRM */ 21362306a36Sopenharmony_cistatic inline u16 DISPC_SIZE_MGR(enum omap_channel channel) 21462306a36Sopenharmony_ci{ 21562306a36Sopenharmony_ci switch (channel) { 21662306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD: 21762306a36Sopenharmony_ci return 0x007C; 21862306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_DIGIT: 21962306a36Sopenharmony_ci return 0x0078; 22062306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD2: 22162306a36Sopenharmony_ci return 0x03CC; 22262306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD3: 22362306a36Sopenharmony_ci return 0x0834; 22462306a36Sopenharmony_ci default: 22562306a36Sopenharmony_ci BUG(); 22662306a36Sopenharmony_ci return 0; 22762306a36Sopenharmony_ci } 22862306a36Sopenharmony_ci} 22962306a36Sopenharmony_ci 23062306a36Sopenharmony_cistatic inline u16 DISPC_DATA_CYCLE1(enum omap_channel channel) 23162306a36Sopenharmony_ci{ 23262306a36Sopenharmony_ci switch (channel) { 23362306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD: 23462306a36Sopenharmony_ci return 0x01D4; 23562306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_DIGIT: 23662306a36Sopenharmony_ci BUG(); 23762306a36Sopenharmony_ci return 0; 23862306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD2: 23962306a36Sopenharmony_ci return 0x03C0; 24062306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD3: 24162306a36Sopenharmony_ci return 0x0828; 24262306a36Sopenharmony_ci default: 24362306a36Sopenharmony_ci BUG(); 24462306a36Sopenharmony_ci return 0; 24562306a36Sopenharmony_ci } 24662306a36Sopenharmony_ci} 24762306a36Sopenharmony_ci 24862306a36Sopenharmony_cistatic inline u16 DISPC_DATA_CYCLE2(enum omap_channel channel) 24962306a36Sopenharmony_ci{ 25062306a36Sopenharmony_ci switch (channel) { 25162306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD: 25262306a36Sopenharmony_ci return 0x01D8; 25362306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_DIGIT: 25462306a36Sopenharmony_ci BUG(); 25562306a36Sopenharmony_ci return 0; 25662306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD2: 25762306a36Sopenharmony_ci return 0x03C4; 25862306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD3: 25962306a36Sopenharmony_ci return 0x082C; 26062306a36Sopenharmony_ci default: 26162306a36Sopenharmony_ci BUG(); 26262306a36Sopenharmony_ci return 0; 26362306a36Sopenharmony_ci } 26462306a36Sopenharmony_ci} 26562306a36Sopenharmony_ci 26662306a36Sopenharmony_cistatic inline u16 DISPC_DATA_CYCLE3(enum omap_channel channel) 26762306a36Sopenharmony_ci{ 26862306a36Sopenharmony_ci switch (channel) { 26962306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD: 27062306a36Sopenharmony_ci return 0x01DC; 27162306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_DIGIT: 27262306a36Sopenharmony_ci BUG(); 27362306a36Sopenharmony_ci return 0; 27462306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD2: 27562306a36Sopenharmony_ci return 0x03C8; 27662306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD3: 27762306a36Sopenharmony_ci return 0x0830; 27862306a36Sopenharmony_ci default: 27962306a36Sopenharmony_ci BUG(); 28062306a36Sopenharmony_ci return 0; 28162306a36Sopenharmony_ci } 28262306a36Sopenharmony_ci} 28362306a36Sopenharmony_ci 28462306a36Sopenharmony_cistatic inline u16 DISPC_CPR_COEF_R(enum omap_channel channel) 28562306a36Sopenharmony_ci{ 28662306a36Sopenharmony_ci switch (channel) { 28762306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD: 28862306a36Sopenharmony_ci return 0x0220; 28962306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_DIGIT: 29062306a36Sopenharmony_ci BUG(); 29162306a36Sopenharmony_ci return 0; 29262306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD2: 29362306a36Sopenharmony_ci return 0x03BC; 29462306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD3: 29562306a36Sopenharmony_ci return 0x0824; 29662306a36Sopenharmony_ci default: 29762306a36Sopenharmony_ci BUG(); 29862306a36Sopenharmony_ci return 0; 29962306a36Sopenharmony_ci } 30062306a36Sopenharmony_ci} 30162306a36Sopenharmony_ci 30262306a36Sopenharmony_cistatic inline u16 DISPC_CPR_COEF_G(enum omap_channel channel) 30362306a36Sopenharmony_ci{ 30462306a36Sopenharmony_ci switch (channel) { 30562306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD: 30662306a36Sopenharmony_ci return 0x0224; 30762306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_DIGIT: 30862306a36Sopenharmony_ci BUG(); 30962306a36Sopenharmony_ci return 0; 31062306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD2: 31162306a36Sopenharmony_ci return 0x03B8; 31262306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD3: 31362306a36Sopenharmony_ci return 0x0820; 31462306a36Sopenharmony_ci default: 31562306a36Sopenharmony_ci BUG(); 31662306a36Sopenharmony_ci return 0; 31762306a36Sopenharmony_ci } 31862306a36Sopenharmony_ci} 31962306a36Sopenharmony_ci 32062306a36Sopenharmony_cistatic inline u16 DISPC_CPR_COEF_B(enum omap_channel channel) 32162306a36Sopenharmony_ci{ 32262306a36Sopenharmony_ci switch (channel) { 32362306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD: 32462306a36Sopenharmony_ci return 0x0228; 32562306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_DIGIT: 32662306a36Sopenharmony_ci BUG(); 32762306a36Sopenharmony_ci return 0; 32862306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD2: 32962306a36Sopenharmony_ci return 0x03B4; 33062306a36Sopenharmony_ci case OMAP_DSS_CHANNEL_LCD3: 33162306a36Sopenharmony_ci return 0x081C; 33262306a36Sopenharmony_ci default: 33362306a36Sopenharmony_ci BUG(); 33462306a36Sopenharmony_ci return 0; 33562306a36Sopenharmony_ci } 33662306a36Sopenharmony_ci} 33762306a36Sopenharmony_ci 33862306a36Sopenharmony_ci/* DISPC overlay register base addresses */ 33962306a36Sopenharmony_cistatic inline u16 DISPC_OVL_BASE(enum omap_plane plane) 34062306a36Sopenharmony_ci{ 34162306a36Sopenharmony_ci switch (plane) { 34262306a36Sopenharmony_ci case OMAP_DSS_GFX: 34362306a36Sopenharmony_ci return 0x0080; 34462306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 34562306a36Sopenharmony_ci return 0x00BC; 34662306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 34762306a36Sopenharmony_ci return 0x014C; 34862306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 34962306a36Sopenharmony_ci return 0x0300; 35062306a36Sopenharmony_ci case OMAP_DSS_WB: 35162306a36Sopenharmony_ci return 0x0500; 35262306a36Sopenharmony_ci default: 35362306a36Sopenharmony_ci BUG(); 35462306a36Sopenharmony_ci return 0; 35562306a36Sopenharmony_ci } 35662306a36Sopenharmony_ci} 35762306a36Sopenharmony_ci 35862306a36Sopenharmony_ci/* DISPC overlay register offsets */ 35962306a36Sopenharmony_cistatic inline u16 DISPC_BA0_OFFSET(enum omap_plane plane) 36062306a36Sopenharmony_ci{ 36162306a36Sopenharmony_ci switch (plane) { 36262306a36Sopenharmony_ci case OMAP_DSS_GFX: 36362306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 36462306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 36562306a36Sopenharmony_ci return 0x0000; 36662306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 36762306a36Sopenharmony_ci case OMAP_DSS_WB: 36862306a36Sopenharmony_ci return 0x0008; 36962306a36Sopenharmony_ci default: 37062306a36Sopenharmony_ci BUG(); 37162306a36Sopenharmony_ci return 0; 37262306a36Sopenharmony_ci } 37362306a36Sopenharmony_ci} 37462306a36Sopenharmony_ci 37562306a36Sopenharmony_cistatic inline u16 DISPC_BA1_OFFSET(enum omap_plane plane) 37662306a36Sopenharmony_ci{ 37762306a36Sopenharmony_ci switch (plane) { 37862306a36Sopenharmony_ci case OMAP_DSS_GFX: 37962306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 38062306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 38162306a36Sopenharmony_ci return 0x0004; 38262306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 38362306a36Sopenharmony_ci case OMAP_DSS_WB: 38462306a36Sopenharmony_ci return 0x000C; 38562306a36Sopenharmony_ci default: 38662306a36Sopenharmony_ci BUG(); 38762306a36Sopenharmony_ci return 0; 38862306a36Sopenharmony_ci } 38962306a36Sopenharmony_ci} 39062306a36Sopenharmony_ci 39162306a36Sopenharmony_cistatic inline u16 DISPC_BA0_UV_OFFSET(enum omap_plane plane) 39262306a36Sopenharmony_ci{ 39362306a36Sopenharmony_ci switch (plane) { 39462306a36Sopenharmony_ci case OMAP_DSS_GFX: 39562306a36Sopenharmony_ci BUG(); 39662306a36Sopenharmony_ci return 0; 39762306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 39862306a36Sopenharmony_ci return 0x0544; 39962306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 40062306a36Sopenharmony_ci return 0x04BC; 40162306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 40262306a36Sopenharmony_ci return 0x0310; 40362306a36Sopenharmony_ci case OMAP_DSS_WB: 40462306a36Sopenharmony_ci return 0x0118; 40562306a36Sopenharmony_ci default: 40662306a36Sopenharmony_ci BUG(); 40762306a36Sopenharmony_ci return 0; 40862306a36Sopenharmony_ci } 40962306a36Sopenharmony_ci} 41062306a36Sopenharmony_ci 41162306a36Sopenharmony_cistatic inline u16 DISPC_BA1_UV_OFFSET(enum omap_plane plane) 41262306a36Sopenharmony_ci{ 41362306a36Sopenharmony_ci switch (plane) { 41462306a36Sopenharmony_ci case OMAP_DSS_GFX: 41562306a36Sopenharmony_ci BUG(); 41662306a36Sopenharmony_ci return 0; 41762306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 41862306a36Sopenharmony_ci return 0x0548; 41962306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 42062306a36Sopenharmony_ci return 0x04C0; 42162306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 42262306a36Sopenharmony_ci return 0x0314; 42362306a36Sopenharmony_ci case OMAP_DSS_WB: 42462306a36Sopenharmony_ci return 0x011C; 42562306a36Sopenharmony_ci default: 42662306a36Sopenharmony_ci BUG(); 42762306a36Sopenharmony_ci return 0; 42862306a36Sopenharmony_ci } 42962306a36Sopenharmony_ci} 43062306a36Sopenharmony_ci 43162306a36Sopenharmony_cistatic inline u16 DISPC_POS_OFFSET(enum omap_plane plane) 43262306a36Sopenharmony_ci{ 43362306a36Sopenharmony_ci switch (plane) { 43462306a36Sopenharmony_ci case OMAP_DSS_GFX: 43562306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 43662306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 43762306a36Sopenharmony_ci return 0x0008; 43862306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 43962306a36Sopenharmony_ci return 0x009C; 44062306a36Sopenharmony_ci default: 44162306a36Sopenharmony_ci BUG(); 44262306a36Sopenharmony_ci return 0; 44362306a36Sopenharmony_ci } 44462306a36Sopenharmony_ci} 44562306a36Sopenharmony_ci 44662306a36Sopenharmony_cistatic inline u16 DISPC_SIZE_OFFSET(enum omap_plane plane) 44762306a36Sopenharmony_ci{ 44862306a36Sopenharmony_ci switch (plane) { 44962306a36Sopenharmony_ci case OMAP_DSS_GFX: 45062306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 45162306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 45262306a36Sopenharmony_ci return 0x000C; 45362306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 45462306a36Sopenharmony_ci case OMAP_DSS_WB: 45562306a36Sopenharmony_ci return 0x00A8; 45662306a36Sopenharmony_ci default: 45762306a36Sopenharmony_ci BUG(); 45862306a36Sopenharmony_ci return 0; 45962306a36Sopenharmony_ci } 46062306a36Sopenharmony_ci} 46162306a36Sopenharmony_ci 46262306a36Sopenharmony_cistatic inline u16 DISPC_ATTR_OFFSET(enum omap_plane plane) 46362306a36Sopenharmony_ci{ 46462306a36Sopenharmony_ci switch (plane) { 46562306a36Sopenharmony_ci case OMAP_DSS_GFX: 46662306a36Sopenharmony_ci return 0x0020; 46762306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 46862306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 46962306a36Sopenharmony_ci return 0x0010; 47062306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 47162306a36Sopenharmony_ci case OMAP_DSS_WB: 47262306a36Sopenharmony_ci return 0x0070; 47362306a36Sopenharmony_ci default: 47462306a36Sopenharmony_ci BUG(); 47562306a36Sopenharmony_ci return 0; 47662306a36Sopenharmony_ci } 47762306a36Sopenharmony_ci} 47862306a36Sopenharmony_ci 47962306a36Sopenharmony_cistatic inline u16 DISPC_ATTR2_OFFSET(enum omap_plane plane) 48062306a36Sopenharmony_ci{ 48162306a36Sopenharmony_ci switch (plane) { 48262306a36Sopenharmony_ci case OMAP_DSS_GFX: 48362306a36Sopenharmony_ci BUG(); 48462306a36Sopenharmony_ci return 0; 48562306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 48662306a36Sopenharmony_ci return 0x0568; 48762306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 48862306a36Sopenharmony_ci return 0x04DC; 48962306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 49062306a36Sopenharmony_ci return 0x032C; 49162306a36Sopenharmony_ci case OMAP_DSS_WB: 49262306a36Sopenharmony_ci return 0x0310; 49362306a36Sopenharmony_ci default: 49462306a36Sopenharmony_ci BUG(); 49562306a36Sopenharmony_ci return 0; 49662306a36Sopenharmony_ci } 49762306a36Sopenharmony_ci} 49862306a36Sopenharmony_ci 49962306a36Sopenharmony_cistatic inline u16 DISPC_FIFO_THRESH_OFFSET(enum omap_plane plane) 50062306a36Sopenharmony_ci{ 50162306a36Sopenharmony_ci switch (plane) { 50262306a36Sopenharmony_ci case OMAP_DSS_GFX: 50362306a36Sopenharmony_ci return 0x0024; 50462306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 50562306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 50662306a36Sopenharmony_ci return 0x0014; 50762306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 50862306a36Sopenharmony_ci case OMAP_DSS_WB: 50962306a36Sopenharmony_ci return 0x008C; 51062306a36Sopenharmony_ci default: 51162306a36Sopenharmony_ci BUG(); 51262306a36Sopenharmony_ci return 0; 51362306a36Sopenharmony_ci } 51462306a36Sopenharmony_ci} 51562306a36Sopenharmony_ci 51662306a36Sopenharmony_cistatic inline u16 DISPC_FIFO_SIZE_STATUS_OFFSET(enum omap_plane plane) 51762306a36Sopenharmony_ci{ 51862306a36Sopenharmony_ci switch (plane) { 51962306a36Sopenharmony_ci case OMAP_DSS_GFX: 52062306a36Sopenharmony_ci return 0x0028; 52162306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 52262306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 52362306a36Sopenharmony_ci return 0x0018; 52462306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 52562306a36Sopenharmony_ci case OMAP_DSS_WB: 52662306a36Sopenharmony_ci return 0x0088; 52762306a36Sopenharmony_ci default: 52862306a36Sopenharmony_ci BUG(); 52962306a36Sopenharmony_ci return 0; 53062306a36Sopenharmony_ci } 53162306a36Sopenharmony_ci} 53262306a36Sopenharmony_ci 53362306a36Sopenharmony_cistatic inline u16 DISPC_ROW_INC_OFFSET(enum omap_plane plane) 53462306a36Sopenharmony_ci{ 53562306a36Sopenharmony_ci switch (plane) { 53662306a36Sopenharmony_ci case OMAP_DSS_GFX: 53762306a36Sopenharmony_ci return 0x002C; 53862306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 53962306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 54062306a36Sopenharmony_ci return 0x001C; 54162306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 54262306a36Sopenharmony_ci case OMAP_DSS_WB: 54362306a36Sopenharmony_ci return 0x00A4; 54462306a36Sopenharmony_ci default: 54562306a36Sopenharmony_ci BUG(); 54662306a36Sopenharmony_ci return 0; 54762306a36Sopenharmony_ci } 54862306a36Sopenharmony_ci} 54962306a36Sopenharmony_ci 55062306a36Sopenharmony_cistatic inline u16 DISPC_PIX_INC_OFFSET(enum omap_plane plane) 55162306a36Sopenharmony_ci{ 55262306a36Sopenharmony_ci switch (plane) { 55362306a36Sopenharmony_ci case OMAP_DSS_GFX: 55462306a36Sopenharmony_ci return 0x0030; 55562306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 55662306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 55762306a36Sopenharmony_ci return 0x0020; 55862306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 55962306a36Sopenharmony_ci case OMAP_DSS_WB: 56062306a36Sopenharmony_ci return 0x0098; 56162306a36Sopenharmony_ci default: 56262306a36Sopenharmony_ci BUG(); 56362306a36Sopenharmony_ci return 0; 56462306a36Sopenharmony_ci } 56562306a36Sopenharmony_ci} 56662306a36Sopenharmony_ci 56762306a36Sopenharmony_cistatic inline u16 DISPC_WINDOW_SKIP_OFFSET(enum omap_plane plane) 56862306a36Sopenharmony_ci{ 56962306a36Sopenharmony_ci switch (plane) { 57062306a36Sopenharmony_ci case OMAP_DSS_GFX: 57162306a36Sopenharmony_ci return 0x0034; 57262306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 57362306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 57462306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 57562306a36Sopenharmony_ci BUG(); 57662306a36Sopenharmony_ci return 0; 57762306a36Sopenharmony_ci default: 57862306a36Sopenharmony_ci BUG(); 57962306a36Sopenharmony_ci return 0; 58062306a36Sopenharmony_ci } 58162306a36Sopenharmony_ci} 58262306a36Sopenharmony_ci 58362306a36Sopenharmony_cistatic inline u16 DISPC_TABLE_BA_OFFSET(enum omap_plane plane) 58462306a36Sopenharmony_ci{ 58562306a36Sopenharmony_ci switch (plane) { 58662306a36Sopenharmony_ci case OMAP_DSS_GFX: 58762306a36Sopenharmony_ci return 0x0038; 58862306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 58962306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 59062306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 59162306a36Sopenharmony_ci BUG(); 59262306a36Sopenharmony_ci return 0; 59362306a36Sopenharmony_ci default: 59462306a36Sopenharmony_ci BUG(); 59562306a36Sopenharmony_ci return 0; 59662306a36Sopenharmony_ci } 59762306a36Sopenharmony_ci} 59862306a36Sopenharmony_ci 59962306a36Sopenharmony_cistatic inline u16 DISPC_FIR_OFFSET(enum omap_plane plane) 60062306a36Sopenharmony_ci{ 60162306a36Sopenharmony_ci switch (plane) { 60262306a36Sopenharmony_ci case OMAP_DSS_GFX: 60362306a36Sopenharmony_ci BUG(); 60462306a36Sopenharmony_ci return 0; 60562306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 60662306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 60762306a36Sopenharmony_ci return 0x0024; 60862306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 60962306a36Sopenharmony_ci case OMAP_DSS_WB: 61062306a36Sopenharmony_ci return 0x0090; 61162306a36Sopenharmony_ci default: 61262306a36Sopenharmony_ci BUG(); 61362306a36Sopenharmony_ci return 0; 61462306a36Sopenharmony_ci } 61562306a36Sopenharmony_ci} 61662306a36Sopenharmony_ci 61762306a36Sopenharmony_cistatic inline u16 DISPC_FIR2_OFFSET(enum omap_plane plane) 61862306a36Sopenharmony_ci{ 61962306a36Sopenharmony_ci switch (plane) { 62062306a36Sopenharmony_ci case OMAP_DSS_GFX: 62162306a36Sopenharmony_ci BUG(); 62262306a36Sopenharmony_ci return 0; 62362306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 62462306a36Sopenharmony_ci return 0x0580; 62562306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 62662306a36Sopenharmony_ci return 0x055C; 62762306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 62862306a36Sopenharmony_ci return 0x0424; 62962306a36Sopenharmony_ci case OMAP_DSS_WB: 63062306a36Sopenharmony_ci return 0x290; 63162306a36Sopenharmony_ci default: 63262306a36Sopenharmony_ci BUG(); 63362306a36Sopenharmony_ci return 0; 63462306a36Sopenharmony_ci } 63562306a36Sopenharmony_ci} 63662306a36Sopenharmony_ci 63762306a36Sopenharmony_cistatic inline u16 DISPC_PIC_SIZE_OFFSET(enum omap_plane plane) 63862306a36Sopenharmony_ci{ 63962306a36Sopenharmony_ci switch (plane) { 64062306a36Sopenharmony_ci case OMAP_DSS_GFX: 64162306a36Sopenharmony_ci BUG(); 64262306a36Sopenharmony_ci return 0; 64362306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 64462306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 64562306a36Sopenharmony_ci return 0x0028; 64662306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 64762306a36Sopenharmony_ci case OMAP_DSS_WB: 64862306a36Sopenharmony_ci return 0x0094; 64962306a36Sopenharmony_ci default: 65062306a36Sopenharmony_ci BUG(); 65162306a36Sopenharmony_ci return 0; 65262306a36Sopenharmony_ci } 65362306a36Sopenharmony_ci} 65462306a36Sopenharmony_ci 65562306a36Sopenharmony_ci 65662306a36Sopenharmony_cistatic inline u16 DISPC_ACCU0_OFFSET(enum omap_plane plane) 65762306a36Sopenharmony_ci{ 65862306a36Sopenharmony_ci switch (plane) { 65962306a36Sopenharmony_ci case OMAP_DSS_GFX: 66062306a36Sopenharmony_ci BUG(); 66162306a36Sopenharmony_ci return 0; 66262306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 66362306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 66462306a36Sopenharmony_ci return 0x002C; 66562306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 66662306a36Sopenharmony_ci case OMAP_DSS_WB: 66762306a36Sopenharmony_ci return 0x0000; 66862306a36Sopenharmony_ci default: 66962306a36Sopenharmony_ci BUG(); 67062306a36Sopenharmony_ci return 0; 67162306a36Sopenharmony_ci } 67262306a36Sopenharmony_ci} 67362306a36Sopenharmony_ci 67462306a36Sopenharmony_cistatic inline u16 DISPC_ACCU2_0_OFFSET(enum omap_plane plane) 67562306a36Sopenharmony_ci{ 67662306a36Sopenharmony_ci switch (plane) { 67762306a36Sopenharmony_ci case OMAP_DSS_GFX: 67862306a36Sopenharmony_ci BUG(); 67962306a36Sopenharmony_ci return 0; 68062306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 68162306a36Sopenharmony_ci return 0x0584; 68262306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 68362306a36Sopenharmony_ci return 0x0560; 68462306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 68562306a36Sopenharmony_ci return 0x0428; 68662306a36Sopenharmony_ci case OMAP_DSS_WB: 68762306a36Sopenharmony_ci return 0x0294; 68862306a36Sopenharmony_ci default: 68962306a36Sopenharmony_ci BUG(); 69062306a36Sopenharmony_ci return 0; 69162306a36Sopenharmony_ci } 69262306a36Sopenharmony_ci} 69362306a36Sopenharmony_ci 69462306a36Sopenharmony_cistatic inline u16 DISPC_ACCU1_OFFSET(enum omap_plane plane) 69562306a36Sopenharmony_ci{ 69662306a36Sopenharmony_ci switch (plane) { 69762306a36Sopenharmony_ci case OMAP_DSS_GFX: 69862306a36Sopenharmony_ci BUG(); 69962306a36Sopenharmony_ci return 0; 70062306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 70162306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 70262306a36Sopenharmony_ci return 0x0030; 70362306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 70462306a36Sopenharmony_ci case OMAP_DSS_WB: 70562306a36Sopenharmony_ci return 0x0004; 70662306a36Sopenharmony_ci default: 70762306a36Sopenharmony_ci BUG(); 70862306a36Sopenharmony_ci return 0; 70962306a36Sopenharmony_ci } 71062306a36Sopenharmony_ci} 71162306a36Sopenharmony_ci 71262306a36Sopenharmony_cistatic inline u16 DISPC_ACCU2_1_OFFSET(enum omap_plane plane) 71362306a36Sopenharmony_ci{ 71462306a36Sopenharmony_ci switch (plane) { 71562306a36Sopenharmony_ci case OMAP_DSS_GFX: 71662306a36Sopenharmony_ci BUG(); 71762306a36Sopenharmony_ci return 0; 71862306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 71962306a36Sopenharmony_ci return 0x0588; 72062306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 72162306a36Sopenharmony_ci return 0x0564; 72262306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 72362306a36Sopenharmony_ci return 0x042C; 72462306a36Sopenharmony_ci case OMAP_DSS_WB: 72562306a36Sopenharmony_ci return 0x0298; 72662306a36Sopenharmony_ci default: 72762306a36Sopenharmony_ci BUG(); 72862306a36Sopenharmony_ci return 0; 72962306a36Sopenharmony_ci } 73062306a36Sopenharmony_ci} 73162306a36Sopenharmony_ci 73262306a36Sopenharmony_ci/* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */ 73362306a36Sopenharmony_cistatic inline u16 DISPC_FIR_COEF_H_OFFSET(enum omap_plane plane, u16 i) 73462306a36Sopenharmony_ci{ 73562306a36Sopenharmony_ci switch (plane) { 73662306a36Sopenharmony_ci case OMAP_DSS_GFX: 73762306a36Sopenharmony_ci BUG(); 73862306a36Sopenharmony_ci return 0; 73962306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 74062306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 74162306a36Sopenharmony_ci return 0x0034 + i * 0x8; 74262306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 74362306a36Sopenharmony_ci case OMAP_DSS_WB: 74462306a36Sopenharmony_ci return 0x0010 + i * 0x8; 74562306a36Sopenharmony_ci default: 74662306a36Sopenharmony_ci BUG(); 74762306a36Sopenharmony_ci return 0; 74862306a36Sopenharmony_ci } 74962306a36Sopenharmony_ci} 75062306a36Sopenharmony_ci 75162306a36Sopenharmony_ci/* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */ 75262306a36Sopenharmony_cistatic inline u16 DISPC_FIR_COEF_H2_OFFSET(enum omap_plane plane, u16 i) 75362306a36Sopenharmony_ci{ 75462306a36Sopenharmony_ci switch (plane) { 75562306a36Sopenharmony_ci case OMAP_DSS_GFX: 75662306a36Sopenharmony_ci BUG(); 75762306a36Sopenharmony_ci return 0; 75862306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 75962306a36Sopenharmony_ci return 0x058C + i * 0x8; 76062306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 76162306a36Sopenharmony_ci return 0x0568 + i * 0x8; 76262306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 76362306a36Sopenharmony_ci return 0x0430 + i * 0x8; 76462306a36Sopenharmony_ci case OMAP_DSS_WB: 76562306a36Sopenharmony_ci return 0x02A0 + i * 0x8; 76662306a36Sopenharmony_ci default: 76762306a36Sopenharmony_ci BUG(); 76862306a36Sopenharmony_ci return 0; 76962306a36Sopenharmony_ci } 77062306a36Sopenharmony_ci} 77162306a36Sopenharmony_ci 77262306a36Sopenharmony_ci/* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */ 77362306a36Sopenharmony_cistatic inline u16 DISPC_FIR_COEF_HV_OFFSET(enum omap_plane plane, u16 i) 77462306a36Sopenharmony_ci{ 77562306a36Sopenharmony_ci switch (plane) { 77662306a36Sopenharmony_ci case OMAP_DSS_GFX: 77762306a36Sopenharmony_ci BUG(); 77862306a36Sopenharmony_ci return 0; 77962306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 78062306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 78162306a36Sopenharmony_ci return 0x0038 + i * 0x8; 78262306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 78362306a36Sopenharmony_ci case OMAP_DSS_WB: 78462306a36Sopenharmony_ci return 0x0014 + i * 0x8; 78562306a36Sopenharmony_ci default: 78662306a36Sopenharmony_ci BUG(); 78762306a36Sopenharmony_ci return 0; 78862306a36Sopenharmony_ci } 78962306a36Sopenharmony_ci} 79062306a36Sopenharmony_ci 79162306a36Sopenharmony_ci/* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */ 79262306a36Sopenharmony_cistatic inline u16 DISPC_FIR_COEF_HV2_OFFSET(enum omap_plane plane, u16 i) 79362306a36Sopenharmony_ci{ 79462306a36Sopenharmony_ci switch (plane) { 79562306a36Sopenharmony_ci case OMAP_DSS_GFX: 79662306a36Sopenharmony_ci BUG(); 79762306a36Sopenharmony_ci return 0; 79862306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 79962306a36Sopenharmony_ci return 0x0590 + i * 8; 80062306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 80162306a36Sopenharmony_ci return 0x056C + i * 0x8; 80262306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 80362306a36Sopenharmony_ci return 0x0434 + i * 0x8; 80462306a36Sopenharmony_ci case OMAP_DSS_WB: 80562306a36Sopenharmony_ci return 0x02A4 + i * 0x8; 80662306a36Sopenharmony_ci default: 80762306a36Sopenharmony_ci BUG(); 80862306a36Sopenharmony_ci return 0; 80962306a36Sopenharmony_ci } 81062306a36Sopenharmony_ci} 81162306a36Sopenharmony_ci 81262306a36Sopenharmony_ci/* coef index i = {0, 1, 2, 3, 4,} */ 81362306a36Sopenharmony_cistatic inline u16 DISPC_CONV_COEF_OFFSET(enum omap_plane plane, u16 i) 81462306a36Sopenharmony_ci{ 81562306a36Sopenharmony_ci switch (plane) { 81662306a36Sopenharmony_ci case OMAP_DSS_GFX: 81762306a36Sopenharmony_ci BUG(); 81862306a36Sopenharmony_ci return 0; 81962306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 82062306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 82162306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 82262306a36Sopenharmony_ci case OMAP_DSS_WB: 82362306a36Sopenharmony_ci return 0x0074 + i * 0x4; 82462306a36Sopenharmony_ci default: 82562306a36Sopenharmony_ci BUG(); 82662306a36Sopenharmony_ci return 0; 82762306a36Sopenharmony_ci } 82862306a36Sopenharmony_ci} 82962306a36Sopenharmony_ci 83062306a36Sopenharmony_ci/* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */ 83162306a36Sopenharmony_cistatic inline u16 DISPC_FIR_COEF_V_OFFSET(enum omap_plane plane, u16 i) 83262306a36Sopenharmony_ci{ 83362306a36Sopenharmony_ci switch (plane) { 83462306a36Sopenharmony_ci case OMAP_DSS_GFX: 83562306a36Sopenharmony_ci BUG(); 83662306a36Sopenharmony_ci return 0; 83762306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 83862306a36Sopenharmony_ci return 0x0124 + i * 0x4; 83962306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 84062306a36Sopenharmony_ci return 0x00B4 + i * 0x4; 84162306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 84262306a36Sopenharmony_ci case OMAP_DSS_WB: 84362306a36Sopenharmony_ci return 0x0050 + i * 0x4; 84462306a36Sopenharmony_ci default: 84562306a36Sopenharmony_ci BUG(); 84662306a36Sopenharmony_ci return 0; 84762306a36Sopenharmony_ci } 84862306a36Sopenharmony_ci} 84962306a36Sopenharmony_ci 85062306a36Sopenharmony_ci/* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */ 85162306a36Sopenharmony_cistatic inline u16 DISPC_FIR_COEF_V2_OFFSET(enum omap_plane plane, u16 i) 85262306a36Sopenharmony_ci{ 85362306a36Sopenharmony_ci switch (plane) { 85462306a36Sopenharmony_ci case OMAP_DSS_GFX: 85562306a36Sopenharmony_ci BUG(); 85662306a36Sopenharmony_ci return 0; 85762306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 85862306a36Sopenharmony_ci return 0x05CC + i * 0x4; 85962306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 86062306a36Sopenharmony_ci return 0x05A8 + i * 0x4; 86162306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 86262306a36Sopenharmony_ci return 0x0470 + i * 0x4; 86362306a36Sopenharmony_ci case OMAP_DSS_WB: 86462306a36Sopenharmony_ci return 0x02E0 + i * 0x4; 86562306a36Sopenharmony_ci default: 86662306a36Sopenharmony_ci BUG(); 86762306a36Sopenharmony_ci return 0; 86862306a36Sopenharmony_ci } 86962306a36Sopenharmony_ci} 87062306a36Sopenharmony_ci 87162306a36Sopenharmony_cistatic inline u16 DISPC_PRELOAD_OFFSET(enum omap_plane plane) 87262306a36Sopenharmony_ci{ 87362306a36Sopenharmony_ci switch (plane) { 87462306a36Sopenharmony_ci case OMAP_DSS_GFX: 87562306a36Sopenharmony_ci return 0x01AC; 87662306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 87762306a36Sopenharmony_ci return 0x0174; 87862306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 87962306a36Sopenharmony_ci return 0x00E8; 88062306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 88162306a36Sopenharmony_ci return 0x00A0; 88262306a36Sopenharmony_ci default: 88362306a36Sopenharmony_ci BUG(); 88462306a36Sopenharmony_ci return 0; 88562306a36Sopenharmony_ci } 88662306a36Sopenharmony_ci} 88762306a36Sopenharmony_ci 88862306a36Sopenharmony_cistatic inline u16 DISPC_MFLAG_THRESHOLD_OFFSET(enum omap_plane plane) 88962306a36Sopenharmony_ci{ 89062306a36Sopenharmony_ci switch (plane) { 89162306a36Sopenharmony_ci case OMAP_DSS_GFX: 89262306a36Sopenharmony_ci return 0x0860; 89362306a36Sopenharmony_ci case OMAP_DSS_VIDEO1: 89462306a36Sopenharmony_ci return 0x0864; 89562306a36Sopenharmony_ci case OMAP_DSS_VIDEO2: 89662306a36Sopenharmony_ci return 0x0868; 89762306a36Sopenharmony_ci case OMAP_DSS_VIDEO3: 89862306a36Sopenharmony_ci return 0x086c; 89962306a36Sopenharmony_ci case OMAP_DSS_WB: 90062306a36Sopenharmony_ci return 0x0870; 90162306a36Sopenharmony_ci default: 90262306a36Sopenharmony_ci BUG(); 90362306a36Sopenharmony_ci return 0; 90462306a36Sopenharmony_ci } 90562306a36Sopenharmony_ci} 90662306a36Sopenharmony_ci 90762306a36Sopenharmony_ci#endif 908