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