blob: aaf417348077d28a968c14bf59ee0e7ac987a2f7 [file] [log] [blame]
/*
* drivers/amlogic/media/vin/tvin/vdin/vdin_regs.h
*
* Copyright (C) 2017 Amlogic, Inc. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
*/
#ifndef __VDIN_REGS_H
#define __VDIN_REGS_H
/* mmc */
#define VPU_VDIN_ASYNC_HOLD_CTRL 0x2743
#define VPU_VDISP_ASYNC_HOLD_CTRL 0x2744
#define VPU_VPUARB2_ASYNC_HOLD_CTRL 0x2745
#define VPU_ARB_URG_CTRL 0x2747
#define VPU_WRARB_MODE_L2C1 0x27a2
#define VPU_ARB_DBG_STAT_L1C2 0x27b6
#define VDIN_DET_IDLE_BIT 8
#define VDIN_DET_IDLE_WIDTH 4
#define VDIN0_IDLE_MASK 0x05
#define VDIN1_IDLE_MASK 0x0a
#define VPU_WRARB_REQEN_SLV_L1C2 0x27af
#define VDIN0_REQ_EN_BIT 0
#define VDIN1_REQ_EN_BIT 1
#define VDIN_MISC_CTRL 0x2782
#define VDIN0_OUT_AFBCE_BIT 21
#define VDIN0_OUT_MIF_BIT 20
#define VDIN0_MIF_ENABLE_BIT 19
#define VDIN1_OUT_AFBCE_BIT 18
#define VDIN1_OUT_MIF_BIT 17
#define VDIN1_MIF_ENABLE_BIT 16
#define VDIN0_MIF_RST_BIT 3
#define VDIN1_MIF_RST_BIT 4
#define VDIN_MIF_RST_W 1
#define VDIN1_WR_CTRL2 0x129f
#define VDIN1_WR_CTRL 0x12a0
#define VDIN_COM_CTRL1 0x1282
/* #define VIU_SW_RESET 0x1a01 */
/* #define P_VIU_SW_RESET VCBUS_REG_ADDR(VIU_SW_RESET) */
#define VPU_VD1_MMC_CTRL 0x2703
#define VPU_VD2_MMC_CTRL 0x2704
#define VPU_VD1_MMC_CTRL 0x2703
#define VPU_VD2_MMC_CTRL 0x2704
#define VPU_DI_IF1_MMC_CTRL 0x2705
#define VPU_DI_MEM_MMC_CTRL 0x2706
#define VPU_DI_INP_MMC_CTRL 0x2707
#define VPU_DI_MTNRD_MMC_CTRL 0x2708
#define VPU_DI_CHAN2_MMC_CTRL 0x2709
#define VPU_DI_MTNWR_MMC_CTRL 0x270a
#define VPU_DI_NRWR_MMC_CTRL 0x270b
#define VPU_DI_DIWR_MMC_CTRL 0x270c
#define VPU_TVD3D_MMC_CTRL 0x2710
#define VPU_TVDVBI_MMC_CTRL 0x2711
/* vpp */
#define VPP_VDO_MEAS_CTRL 0x1da8
#define VPP_POSTBLEND_VD1_H_START_END 0x1d1c
#define VPP_POSTBLEND_VD1_V_START_END 0x1d1d
/* VDIN0 8'h00 - 8'h7f */
/* VDIN1 8'h80 - 8'hef */
/* #define VDIN0_OFFSET 0x00 */
/* #define VDIN1_OFFSET 0x80 */
#define VDIN_SCALE_COEF_IDX ((0x1200))/* + 0xd0100000) */
#define VDIN_SCALE_COEF ((0x1201))/* + 0xd0100000) */
/* bit 31, mpeg_to_vdin_sel, 0: mpeg source to NR directly,
* 1: mpeg source pass through here
*/
/* bit 30, mpeg_field info which can be written by software */
/* Bit 29, force go_field, pulse signal */
/* Bit 28, force go_line, pulse signal */
/* Bit 27, enable mpeg_go_field input signal */
/* Bit 26:20, hold lines */
/* Bit 19, delay go_field function enable */
/* Bit 18:12, delay go_field line number */
/* Bit 11:10, component2 output switch, 00: select component0 in,
* 01: select component1 in, 10: select component2 in
*/
/* Bit 9:8, component1 output switch, 00: select component0 in,
* 01: select component1 in, 10: select component2 in
*/
/* Bit 7:6, component0 output switch, 00: select component0 in,
* 01: select component1 in, 10: select component2 in
*/
/* Bit 5, input window selection function enable */
/* Bit 4, enable VDIN common data input,
* otherwise there will be no video data input
*/
/* Bit 3:0 vdin selection, 1: mpeg_in from dram, 2: bt656 input,
* 3: component input, 4: tvdecoder input, 5: hdmi rx input,
* 6: digtial video input, 7: loopback from Viu1, 8: MIPI.
*/
#define VDIN_COM_CTRL0 ((0x1202))/* + 0xd0100000) */
/* Bit 28:16 active_max_pix_cnt, readonly */
/* Bit 12:0 active_max_pix_cnt_shadow, readonly */
#define VDIN_ACTIVE_MAX_PIX_CNT_STATUS ((0x1203))/* + 0xd0100000) */
/* Bit 28:16 go_line_cnt, readonly */
/* Bit 12:0 active_line_cnt, readonly */
#define VDIN_LCNT_STATUS ((0x1204))/* + 0xd0100000) */
/* Readonly */
/* Bit [14:3] lfifo_buf_cnt */
/* Bit 2, vdin_direct_done status */
/* Bit 1, vdin_nr_done status */
/* Bit 0, field */
#define VDIN_COM_STATUS0 ((0x1205))/* + 0xd0100000) */
/* Readonly */
/* Bit 31, vdi4 fifo overflow */
/* Bit 29:24, vdi3_asfifo_cnt */
/* Bit 23, vdi3 fifo overflow */
/* Bit 21:16, vdi3_asfifo_cnt */
/* Bit 15, vdi2 fifo overflow */
/* Bit 13:8, vdi2_asfifo_cnt */
/* Bit 7, vdi1 fifo overflow */
/* Bit 5:0, vdi1_asfifo_cnt */
#define VDIN_COM_STATUS1 ((0x1206))/* + 0xd0100000) */
/* Bit 28:16 go_line_cnt_shadow, readonly */
/* Bit 12:0 active_line_cnt_shadow, readonly */
#define VDIN_LCNT_SHADOW_STATUS ((0x1207))/* + 0xd0100000) */
/* each 8bit asfifo_ctrl is following: */
/* Bit 7, DE enable */
/* Bit 6, go field enable */
/* Bit 5, go line enable */
/* Bit 4, if true, negative active input vsync */
/* Bit 3, if true, negative active input hsync */
/* Bit 2, vsync soft reset fifo enable */
/* Bit 1, overflow status clear */
/* Bit 0 asfifo soft reset, level signal */
/* Bit 7:0 vdi1 asfifo_ctrl */
/* Bit 23:16 vdi2 asfifo_ctrl */
#define VDIN_ASFIFO_CTRL0 ((0x1208))/* + 0xd0100000) */
/* Bit 7:0 vdi3 asfifo_ctrl */
/* Bit 23:16 vdi4 asfifo_ctrl */
#define VDIN_ASFIFO_CTRL1 ((0x1209))/* + 0xd0100000) */
/* Bit 28:16 input width minus 1, after the window function */
/* Bit 12:0 output width minus 1 */
#define VDIN_WIDTHM1I_WIDTHM1O ((0x120a))/* + 0xd0100000) */
/* Bit 20:17 prehsc_mode,
* bit 3:2, prehsc odd line interp mode,
* bit 1:0, prehsc even line interp mode,
*/
/* each 2bit, 00: pix0+pix1/2, average, 01: pix1, 10: pix0 */
/* Bit 16:15 sp422_mode, special mode for the component1 and component2,
* 00: normal case, 01: 32 64 32, 10: 0 64 64 0, 11: 16 96 16
*/
/* Bit 14:8, hsc_ini_pixi_ptr, signed data,
* only useful when short_lineo_en is true
*/
/* Bit 7, prehsc_en */
/* Bit 6, hsc_en, */
/* Bit 5, hsc_short_lineo_en, short line output enable */
/* Bit 4, hsc_nearest_en */
/* Bit 3, hsc_phase0_always_en */
/* Bit 2:0, hsc_bank_length */
#define VDIN_SC_MISC_CTRL ((0x120b))/* + 0xd0100000) */
/* Bit 28:24, integer portion */
/* Bit 23:0, fraction portion */
#define VDIN_HSC_PHASE_STEP ((0x120c))/* + 0xd0100000) */
/* Bit 30:29 hscale rpt_p0_num */
/* Bit 28:24 hscale ini_rcv_num */
/* Bit 23:0 hscale ini_phase */
#define VDIN_HSC_INI_CTRL ((0x120d))/* + 0xd0100000) */
/* Read only */
/* Bit 23, vdi7 fifo overflow */
/* Bit 21:16, vdi7_asfifo_cnt */
/* Bit 15, vdi6 fifo overflow */
/* Bit 13:8, vdi6_asfifo_cnt */
/* Bit 7, vdi5 fifo overflow */
/* Bit 5:0, vdi5_asfifo_cnt */
#define VDIN_COM_STATUS2 ((0x120e))/* + 0xd0100000) */
/* Bit 25:16 asfifo decimate control */
/* Bit 25, if true, decimation counter
* sync with first valid DE in the field,
*/
/* otherwise the decimation counter
* is not sync with external signal
*/
/* Bit 24, decimation de enable */
/* Bit 23:20, decimation phase,
* which counter value use to decimate,
*/
/* Bit 19:16, decimation number, 0: not decimation,
* 1: decimation 2, 2: decimation 3 ....
*/
/* Bit 7:0 vdi5 asfifo_ctrl */
#define VDIN_ASFIFO_CTRL2 ((0x120f))/* + 0xd0100000) */
/* Bit 7, highlight_en */
/* Bit 6 probe_post, if true, probe pixel data after matrix,
* otherwise probe pixel data before matrix
*/
/* Bit 5:4 probe_sel, 00: select matrix 0, 01: select matrix 1,
* otherwise select nothing
*/
/* Bit 3:2, matrix coef idx selection, 00: select mat0, 01: select mat1,
* otherwise slect nothing
*/
/* Bit 1 mat1 conversion matrix enable */
/* Bit 0 mat0 conversion matrix enable */
#define VDIN_MATRIX_CTRL ((0x1210))/* + 0xd0100000) */
/* Bit 28:16 coef00 */
/* Bit 12:0 coef01 */
#define VDIN_MATRIX_COEF00_01 ((0x1211))/* + 0xd0100000) */
/* Bit 28:16 coef02 */
/* Bit 12:0 coef10 */
#define VDIN_MATRIX_COEF02_10 ((0x1212))/* + 0xd0100000) */
/* Bit 28:16 coef11 */
/* Bit 12:0 coef12 */
#define VDIN_MATRIX_COEF11_12 ((0x1213))/* + 0xd0100000) */
/* Bit 28:16 coef20 */
/* Bit 12:0 coef21 */
#define VDIN_MATRIX_COEF20_21 ((0x1214))/* + 0xd0100000) */
/* BIt 18:16 conv_rs */
/* Bit 12:0 coef22 */
#define VDIN_MATRIX_COEF22 ((0x1215))/* + 0xd0100000) */
/* Bit 26:16 offset0 */
/* Bit 10:0 offset1 */
#define VDIN_MATRIX_OFFSET0_1 ((0x1216))/* + 0xd0100000) */
/* Bit 10:0 offset2 */
#define VDIN_MATRIX_OFFSET2 ((0x1217))/* + 0xd0100000) */
/* Bit 26:16 pre_offset0 */
/* Bit 10:0 pre_offset1 */
#define VDIN_MATRIX_PRE_OFFSET0_1 ((0x1218))/* + 0xd0100000) */
/* Bit 10:0 pre_offset2 */
#define VDIN_MATRIX_PRE_OFFSET2 ((0x1219))/* + 0xd0100000) */
/* 12:0 lfifo_buf_size */
#define VDIN_LFIFO_CTRL ((0x121a))/* + 0xd0100000) */
#define VDIN_COM_GCLK_CTRL ((0x121b))/* + 0xd0100000) */
/* 12:0 VDIN input interface width minus 1,
* before the window function, after the de decimation
*/
#define VDIN_INTF_WIDTHM1 ((0x121c))/* + 0xd0100000) */
/* Bit 15 //default== 0, urgent_ctrl_en */
/* Bit 14 //default== 0, urgent_wr, if true for write buffer */
/* Bit 13 //default== 0, out_inv_en */
/* Bit 12 //default == 0, urgent_ini_value */
/* Bit 11:6 //default == 0, up_th up threshold */
/* Bit 5:0 //default == 0, dn_th dn threshold */
#define VDIN_LFIFO_URG_CTRL ((0x121e))/* + 0xd0100000) */
/* Bit 8, 1: discard data before line fifo, 0: normal mode */
/* Bit 7:0 Write chroma canvas address */
#define VDIN_WR_CTRL2 ((0x121f))/* + 0xd0100000) */
/* Bit 31:30 hconv_mode, Applicable only to bit[13:12]=0 or 2.
* 0: Output every even pixels' CbCr;
*/
/* 1: Output every odd pixels' CbCr; */
/* 2: Output an average value per even&odd pair of pixels; */
/* 3: Output all CbCr.
* (This does NOT apply to bit[13:12]=0 -- 4:2:2 mode.)
*/
/* Bit 29 no_clk_gate: disable vid_wr_mif clock gating function. */
/* Bit 28 clear write response counter
* in the vdin write memory interface
*/
/* Bit 27 eol_sel, 1: use eol as the line end indication,
* 0: use width as line end indication in the
* vdin write memory interface
*/
/* Bit 26 vcp_nr_en. Only used in VDIN0. NOT used in VDIN1. */
/* Bit 25 vcp_wr_en. Only used in VDIN0. NOT used in VDIN1. */
/* Bit 24 vcp_in_en. Only used in VDIN0. NOT used in VDIN1. */
/* Bit 23 vdin frame reset enble, if true,
* it will provide frame reset during go_field(vsync) to
* the modules after that
*/
/* Bit 22 vdin line fifo soft reset enable, meaning,
* if true line fifo will reset during go_field (vsync)
*/
/* Bit 21 vdin direct write done status clear bit */
/* Bit 20 vdin NR write done status clear bit */
/* Bit 18 swap_cbcr. Applicable only to bit[13:12]=2.
* 0: Output CbCr (NV12); 1: Output CrCb (NV21).
*/
/* Bit 17:16 vconv_mode, Applicable only to bit[13:12]=2.
* 0: Output every even lines' CbCr;
*/
/* 1: Output every odd lines' CbCr; */
/* 2: Reserved; */
/* 3: Output all CbCr. */
/* Bit 13:12 vdin write format, 0: 4:2:2 to luma canvas,
* 1: 4:4:4 to luma canvas,
*/
/* 2: Y to luma canvas, CbCr to chroma canvas.
* For NV12/21, also define Bit 31:30, 17:16, and bit 18.
*/
/* Bit 11 vdin write canvas double buffer enable,
* means the canvas address will be latched by vsync before using
*/
/* Bit 10 1: disable ctrl_reg write pulse which will reset internal counter.
* when bit 11 is 1, this bit should be 1.
*/
/* Bit 9 vdin write request urgent */
/* Bit 8 vdin write request enable */
/* Bit 7:0 Write luma canvas address */
#define VDIN_WR_CTRL ((0x1220))/* + 0xd0100000) */
/* Bit 29, if true, horizontal reverse */
/* Bit 28:16 start */
/* Bit 12:0 end */
#define VDIN_WR_H_START_END ((0x1221))/* + 0xd0100000) */
/* Bit 29, if true, vertical reverse */
/* Bit 28:16 start */
/* Bit 12:0 end */
#define VDIN_WR_V_START_END ((0x1222))/* + 0xd0100000) */
/* Bit 24:20, integer portion */
/* Bit 19:0, fraction portion */
#define VDIN_VSC_PHASE_STEP ((0x1223))/* + 0xd0100000) */
/* Bit 23, vsc_en, vertical scaler enable */
/* Bit 21 vsc_phase0_always_en, when scale up, you have to set it to 1 */
/* Bit 20:16 ini skip_line_num */
/* Bit 15:0 vscaler ini_phase */
#define VDIN_VSC_INI_CTRL ((0x1224))/* + 0xd0100000) */
/* Bit 28:16, vshrink input height minus 1 */
/* Bit 12:0, scaler input height minus 1 */
#define VDIN_SCIN_HEIGHTM1 ((0x1225))/* + 0xd0100000) */
/* Bit 23:16, dummy component 0 */
/* Bit 15:8, dummy component 1 */
/* Bit 7:0, dummy component 2 */
#define VDIN_DUMMY_DATA ((0x1226))/* + 0xd0100000) */
/* Read only */
/* Bit 29:20 component 0 */
/* Bit 19:10 component 1 */
/* Bit 9:0 component 2 */
#define VDIN_MATRIX_PROBE_COLOR ((0x1228))/* + 0xd0100000) */
/* Bit 23:16 component 0 */
/* Bit 15:8 component 1 */
/* Bit 7:0 component 2 */
#define VDIN_MATRIX_HL_COLOR ((0x1229))/* + 0xd0100000) */
/* 28:16 probe x, postion */
/* 12:0 probe y, position */
#define VDIN_MATRIX_PROBE_POS ((0x122a))/* + 0xd0100000) */
#define VDIN_CHROMA_ADDR_PORT ((0x122b))/* + 0xd0100000) */
#define VDIN_CHROMA_DATA_PORT ((0x122c))/* + 0xd0100000) */
#define VDIN_CM_BRI_CON_CTRL ((0x122d))/* + 0xd0100000) */
/* Bit 17 clk_cyc_cnt_clr, if true, clear this register */
/* Bit 16 if true, use vpu clock to count one line,
* otherwise use actually hsync to count line_cnt
*/
/* Bit 15:0 line width using vpu clk */
#define VDIN_GO_LINE_CTRL ((0x122f))/* + 0xd0100000) */
/* Bit 31:24 hist_pix_white_th,
* larger than this th is counted as white pixel
*/
/* Bit 23:16 hist_pix_black_th,
* less than this th is counted as black pixel
*/
/* Bit 11 hist_34bin_only, 34 bin only mode, including white/black */
/* Bit 10:9 ldim_stts_din_sel, 00: from matrix0 dout,
* 01: from vsc_dout, 10: from matrix1 dout, 11: form matrix1 din
*/
/* Bit 8 ldim_stts_en */
/* Bit 6:5 hist_dnlp_low
* the real pixels in each bins got by
* VDIN_DNLP_HISTXX should multiple with 2^(dnlp_low+3)
*/
/* Bit 3:2 hist_din_sel the source used for hist statistics.
* 00: from matrix0 dout, 01: from vsc_dout,
* 10: from matrix1 dout, 11: form matrix1 din
*/
/* Bit 1 hist_win_en 1'b0: hist used for full picture;
* 1'b1: hist used for pixels within hist window
*/
/* Bit 0 hist_spl_en
* 1'b0: disable hist readback; 1'b1: enable hist readback
*/
#define VDIN_HIST_CTRL ((0x1230))/* + 0xd0100000) */
/* Bit 28:16 hist_hstart horizontal start value to define hist window */
/* Bit 12:0 hist_hend horizontal end value to define hist window */
#define VDIN_HIST_H_START_END ((0x1231))/* + 0xd0100000) */
/* Bit 28:16 hist_vstart vertical start value to define hist window */
/* Bit 12:0 hist_vend vertical end value to define hist window */
#define VDIN_HIST_V_START_END ((0x1232))/* + 0xd0100000) */
/* Bit 15:8 hist_max maximum value */
/* Bit 7:0 hist_min minimum value */
/* read only */
#define VDIN_HIST_MAX_MIN ((0x1233))/* + 0xd0100000) */
/* Bit 31:0 hist_spl_rd */
/* counts for the total luma value */
/* read only */
#define VDIN_HIST_SPL_VAL ((0x1234))/* + 0xd0100000) */
/* Bit 21:0 hist_spl_pixel_count */
/* counts for the total calculated pixels */
/* read only */
#define VDIN_HIST_SPL_PIX_CNT ((0x1235))/* + 0xd0100000) */
/* Bit 31:0 hist_chroma_sum */
/* counts for the total chroma value */
/* read only */
#define VDIN_HIST_CHROMA_SUM ((0x1236))/* + 0xd0100000) */
/* Bit 31:16 higher hist bin */
/* Bit 15:0 lower hist bin */
/* 0-255 are splited to 64 bins evenly, and VDIN_DNLP_HISTXX */
/* are the statistic number of pixels that within each bin. */
/* VDIN_DNLP_HIST00[15:0] counts for the first bin */
/* VDIN_DNLP_HIST00[31:16] counts for the second bin */
/* VDIN_DNLP_HIST01[15:0] counts for the third bin */
/* VDIN_DNLP_HIST01[31:16] counts for the fourth bin */
/* etc... */
/* read only */
#define VDIN_DNLP_HIST00 ((0x1237))/* + 0xd0100000) */
#define VDIN_DNLP_HIST01 ((0x1238))/* + 0xd0100000) */
#define VDIN_DNLP_HIST02 ((0x1239))/* + 0xd0100000) */
#define VDIN_DNLP_HIST03 ((0x123a))/* + 0xd0100000) */
#define VDIN_DNLP_HIST04 ((0x123b))/* + 0xd0100000) */
#define VDIN_DNLP_HIST05 ((0x123c))/* + 0xd0100000) */
#define VDIN_DNLP_HIST06 ((0x123d))/* + 0xd0100000) */
#define VDIN_DNLP_HIST07 ((0x123e))/* + 0xd0100000) */
#define VDIN_DNLP_HIST08 ((0x123f))/* + 0xd0100000) */
#define VDIN_DNLP_HIST09 ((0x1240))/* + 0xd0100000) */
#define VDIN_DNLP_HIST10 ((0x1241))/* + 0xd0100000) */
#define VDIN_DNLP_HIST11 ((0x1242))/* + 0xd0100000) */
#define VDIN_DNLP_HIST12 ((0x1243))/* + 0xd0100000) */
#define VDIN_DNLP_HIST13 ((0x1244))/* + 0xd0100000) */
#define VDIN_DNLP_HIST14 ((0x1245))/* + 0xd0100000) */
#define VDIN_DNLP_HIST15 ((0x1246))/* + 0xd0100000) */
#define VDIN_DNLP_HIST16 ((0x1247))/* + 0xd0100000) */
#define VDIN_DNLP_HIST17 ((0x1248))/* + 0xd0100000) */
#define VDIN_DNLP_HIST18 ((0x1249))/* + 0xd0100000) */
#define VDIN_DNLP_HIST19 ((0x124a))/* + 0xd0100000) */
#define VDIN_DNLP_HIST20 ((0x124b))/* + 0xd0100000) */
#define VDIN_DNLP_HIST21 ((0x124c))/* + 0xd0100000) */
#define VDIN_DNLP_HIST22 ((0x124d))/* + 0xd0100000) */
#define VDIN_DNLP_HIST23 ((0x124e))/* + 0xd0100000) */
#define VDIN_DNLP_HIST24 ((0x124f))/* + 0xd0100000) */
#define VDIN_DNLP_HIST25 ((0x1250))/* + 0xd0100000) */
#define VDIN_DNLP_HIST26 ((0x1251))/* + 0xd0100000) */
#define VDIN_DNLP_HIST27 ((0x1252))/* + 0xd0100000) */
#define VDIN_DNLP_HIST28 ((0x1253))/* + 0xd0100000) */
#define VDIN_DNLP_HIST29 ((0x1254))/* + 0xd0100000) */
#define VDIN_DNLP_HIST30 ((0x1255))/* + 0xd0100000) */
#define VDIN_DNLP_HIST31 ((0x1256))/* + 0xd0100000) */
/* Bit 31, local dimming statistic enable */
/* Bit 28, eol enable */
/* Bit 27:25, vertical line overlap number for max finding */
/* Bit 24:22, horizontal pixel overlap number,
* 0: 17 pix, 1: 9 pix, 2: 5 pix, 3: 3 pix, 4: 0 pix
*/
/* Bit 20, 1,2,1 low pass filter enable before max/hist statistic */
/* Bit 19:16, region H/V position index,
* refer to VDIN_LDIM_STTS_HIST_SET_REGION
*/
/* Bit 15, 1: region read index auto increase per read to
* VDIN_LDIM_STTS_HIST_READ_REGION
*/
/* Bit 6:0, region read index */
#define VDIN_LDIM_STTS_HIST_REGION_IDX ((0x1257))/* + 0xd0100000) */
/* Bit 28:0, if VDIN_LDIM_STTS_HIST_REGION_IDX[19:16] == 5'h0:
* read/write hvstart0
*/
/* if VDIN_LDIM_STTS_HIST_REGION_IDX[19:16] == 5'h1: read/write hend01 */
/* if VDIN_LDIM_STTS_HIST_REGION_IDX[19:16] == 5'h2: read/write vend01 */
/* if VDIN_LDIM_STTS_HIST_REGION_IDX[19:16] == 5'h3: read/write hend23 */
/* if VDIN_LDIM_STTS_HIST_REGION_IDX[19:16] == 5'h4: read/write vend23 */
/* if VDIN_LDIM_STTS_HIST_REGION_IDX[19:16] == 5'h5: read/write hend45 */
/* if VDIN_LDIM_STTS_HIST_REGION_IDX[19:16] == 5'h6: read/write vend45 */
/* if VDIN_LDIM_STTS_HIST_REGION_IDX[19:16] == 5'd7: read/write hend67 */
/* if VDIN_LDIM_STTS_HIST_REGION_IDX[19:16] == 5'h8: read/write vend67 */
/* if VDIN_LDIM_STTS_HIST_REGION_IDX[19:16] == 5'h9: read/write hend89 */
/* if VDIN_LDIM_STTS_HIST_REGION_IDX[19:16] == 5'ha: read/write vend89 */
/* hvstart0, Bit 28:16 row0 vstart, Bit 12:0 col0 hstart */
/* hend01, Bit 28:16 col1 hend, Bit 12:0 col0 hend */
/* vend01, Bit 28:16 row1 vend, Bit 12:0 row0 vend */
/* hend23, Bit 28:16 col3 hend, Bit 12:0 col2 hend */
/* vend23, Bit 28:16 row3 vend, Bit 12:0 row2 vend */
/* hend45, Bit 28:16 col5 hend, Bit 12:0 col4 hend */
/* vend45, Bit 28:16 row5 vend, Bit 12:0 row4 vend */
/* hend67, Bit 28:16 col7 hend, Bit 12:0 col6 hend */
/* vend67, Bit 28:16 row7 vend, Bit 12:0 row6 vend */
/* hend89, Bit 28:16 col9 hend, Bit 12:0 col8 hend */
/* vend89, Bit 28:16 row9 vend, Bit 12:0 row8 vend */
#define VDIN_LDIM_STTS_HIST_SET_REGION ((0x1258))/* + 0xd0100000) */
/* REGION STATISTIC DATA READ OUT PORT, bit 29:20 max_comp2,
* bit 19:10 max_comp1, bit 9:0 max_comp0
*/
#define VDIN_LDIM_STTS_HIST_READ_REGION ((0x1259))/* + 0xd0100000) */
/* Bit 18, reset bit, high active */
/* Bit 17, if true, widen hs/vs pulse */
/* Bit 16 vsync total counter always accumulating enable */
/* Bit 14:12, select hs/vs of video input channel to measure,
* 0: no selection, 1: vdi1, 2: vid2, 3: vid3, 4:vid4,
* 5:vdi5, 6:vid6, 7:vdi7, 8: vdi8
*/
/* Bit 11:4, vsync_span, define how many vsync span need to measure */
/* Bit 2:0 meas_hs_index, index to select which HS counter/range */
#define VDIN_MEAS_CTRL0 ((0x125a))/* + 0xd0100000) */
/* Read only */
/* 19:16 meas_ind_total_count_n,
* every number of sync_span vsyncs, this count add 1
*/
/* 15:0 high bit portion of vsync total counter */
#define VDIN_MEAS_VS_COUNT_HI ((0x125b))/* + 0xd0100000) */
/* Read only */
/* 31:0, low bit portion of vsync total counter */
#define VDIN_MEAS_VS_COUNT_LO ((0x125c))/* + 0xd0100000) */
/* according to the meas_hs_index in register VDIN_MEAS_CTRL0 */
/* meas_hs_index == 0, first hs range */
/* meas_hs_index == 1, second hs range */
/* meas_hs_index == 2, third hs range */
/* meas_hs_index == 3, fourth hs range */
/* bit 28:16 count_start */
/* bit 12:0 count_end */
#define VDIN_MEAS_HS_RANGE ((0x125d))/* + 0xd0100000) */
/* Read only */
/* according to the meas_hs_index in register VDIN_MEAS_CTRL0, */
/* meas_hs_index == 0, first range hs counter, */
/* meas_hs_index == 1, second range hs counter */
/* meas_hs_index == 2, third range hs counter */
/* meas_hs_index == 3, fourth range hs counter */
/* 23:0 */
#define VDIN_MEAS_HS_COUNT ((0x125e))/* + 0xd0100000) */
/* Bit 8 white_enable */
/* Bit 7:0 blkbar_white_level */
#define VDIN_BLKBAR_CTRL1 ((0x125f))/* + 0xd0100000) */
/* Bit 31:24 blkbar_black_level threshold to judge a black point */
/* Bit 23:21 Reserved */
/* Bit 20:8 blkbar_hwidth left and right region width */
/* Bit 7:5 blkbar_comp_sel
* select yin or uin or vin to be the valid input
*/
/* Bit 4 blkbar_sw_statistic_en enable software statistic of
* each block black points number
*/
/* Bit 3 blkbar_det_en */
/* Bit 2:1 blkbar_din_sel */
/* bit blkbar_det_top_en */
#define VDIN_BLKBAR_CTRL0 ((0x1260))/* + 0xd0100000) */
/* Bit 31:29 Reserved */
/* Bit 28:16 blkbar_hstart. Left region start */
/* Bit 15:13 Reserved */
/* Bit 12:0 blkbar_hend. Right region end */
#define VDIN_BLKBAR_H_START_END ((0x1261))/* + 0xd0100000) */
/* Bit 31:29 Reserved */
/* Bit 28:16 blkbar_vstart */
/* Bit 15:13 Reserved */
/* Bit 12:0 blkbar_vend */
#define VDIN_BLKBAR_V_START_END ((0x1262))/* + 0xd0100000) */
/* Bit 31:20 Reserved */
/* Bit 19:0 blkbar_cnt_threshold. threshold to
* judge whether a block is totally black
*/
#define VDIN_BLKBAR_CNT_THRESHOLD ((0x1263))/* + 0xd0100000) */
/* Bit 31:29 Reserved */
/* Bit 28:16 blkbar_row_th1. //threshold of the top blackbar */
/* Bit 15:13 Reserved */
/* bit 12:0 blkbar_row_th2 //threshold of the bottom blackbar*/
#define VDIN_BLKBAR_ROW_TH1_TH2 ((0x1264))/* + 0xd0100000) */
/* Readonly */
/* Bit 31:29 Reserved */
/* Bit 28:16 blkbar_ind_left_start. horizontal start of
* the left region in the current searching
*/
/* Bit 15:13 Reserved */
/* Bit 12:0 blkbar_ind_left_end. horizontal end of
* the left region in the current searching
*/
#define VDIN_BLKBAR_IND_LEFT_START_END ((0x1265))/* + 0xd0100000) */
/* Readonly */
/* Bit 31:29 Reserved */
/* Bit 28:16 blkbar_ind_right_start.horizontal start of
* the right region in the current searching
*/
/* Bit 15:13 Reserved */
/* Bit 12:0 blkbar_ind_right_end. horizontal end of
* the right region in the current searching
*/
#define VDIN_BLKBAR_IND_RIGHT_START_END ((0x1266))/* + 0xd0100000) */
/* Readonly */
/* Bit 31:20 Reserved */
/* Bit 19:0 blkbar_ind_left1_cnt. Black pixel counter.
* left part of the left region
*/
#define VDIN_BLKBAR_IND_LEFT1_CNT ((0x1267))/* + 0xd0100000) */
/* Readonly */
/* Bit 31:20 Reserved */
/* Bit 19:0 blkbar_ind_left2_cnt. Black pixel counter.
* right part of the left region
*/
#define VDIN_BLKBAR_IND_LEFT2_CNT ((0x1268))/* + 0xd0100000) */
/* Readonly */
/* Bit 31:20 Reserved */
/* Bit 19:0 blkbar_ind_right1_cnt. Black pixel counter.
* left part of the right region
*/
#define VDIN_BLKBAR_IND_RIGHT1_CNT ((0x1269))/* + 0xd0100000) */
/* Readonly */
/* Bit 31:20 Reserved */
/* Bit 19:0 blkbar_ind_right2_cnt. Black pixel counter.
* right part of the right region
*/
#define VDIN_BLKBAR_IND_RIGHT2_CNT ((0x126a))/* + 0xd0100000) */
/* Readonly */
/* Bit 31:30 Resersed */
/* Bit 29 blkbar_ind_black_det_done.
* LEFT/RIGHT Black detection done
*/
/* Bit 28:16 blkbar_top_pos. Top black bar position */
/* Bit 15:13 Reserved. */
/* Bit 12:0 blkbar_bot_pos. Bottom black bar position */
#define VDIN_BLKBAR_STATUS0 ((0x126b))/* + 0xd0100000) */
/* Readonly */
/* Bit 31:29 Reserved */
/* Bit 28:16 blkbar_left_pos. Left black bar posiont */
/* Bit 15:13 Reserved */
/* Bit 12:0 blkbar_right_pos. Right black bar position */
#define VDIN_BLKBAR_STATUS1 ((0x126c))/* + 0xd0100000) */
/* Bit 28:16 input window H start */
/* Bit 12:0 input window H end */
#define VDIN_WIN_H_START_END ((0x126d))/* + 0xd0100000) */
/* Bit 28:16 input window V start */
/* Bit 12:0 input window V end */
#define VDIN_WIN_V_START_END ((0x126e))/* + 0xd0100000) */
/* Bit 23:16 vdi8 asfifo_ctrl */
/* Bit 15:8 vdi7 asfifo_ctrl */
/* Bit 7:0 vdi6 asfifo_ctrl */
#define VDIN_ASFIFO_CTRL3 ((0x126f))/* + 0xd0100000) */
/* Bit 3:2 vshrk_clk2_ctrl */
/* Bit 1:0 vshrk_clk1_ctrl */
#define VDIN_COM_GCLK_CTRL2 ((0x1270))/* + 0xd0100000) */
/* Bit 27 vshrk_en */
/* Bit 26:25 vshrk_mode */
/* Bit 24 vshrk_lpf_mode */
/* Bit 23:0 vshrk_dummy */
#define VDIN_VSHRK_CTRL ((0x1271))/* + 0xd0100000) */
#define VDIN_DNLP_HIST32 ((0x1272))/* + 0xd0100000) */
/* Read only */
/* Bit 7, vdi9 fifo overflow */
/* Bit 5:0, vdi9_asfifo_cnt */
#define VDIN_COM_STATUS3 ((0x1273))/* + 0xd0100000) */
/* dolby vdin regs */
#define VDIN_DOLBY_DSC_CTRL0 0x1275
/*((0x1275 << 2) + 0xff900000)*/
#define VDIN_DOLBY_DSC_CTRL1 0x1276
#define VDIN_DOLBY_DSC_CTRL2 0x1277
#define VDIN_DOLBY_DSC_CTRL3 0x1278
#define VDIN_DOLBY_AXI_CTRL0 0x1279
#define VDIN_DOLBY_AXI_CTRL1 0x127a
#define VDIN_DOLBY_AXI_CTRL2 0x127b
#define VDIN_DOLBY_AXI_CTRL3 0x127c
#define VDIN_DOLBY_DSC_STATUS0 0x127d
#define VDIN_DOLBY_DSC_STATUS1 0x127e
#define VDIN_DOLBY_DSC_STATUS2 0x127f
#define VDIN_DOLBY_DSC_STATUS3 0x121d
/*g12a new add begin*/
#define VDIN_HDR2_CTRL 0x1280
#define VDIN_HDR2_CLK_GATE 0x1281
#define VDIN_HDR2_MATRIXI_COEF00_01 0x1282
#define VDIN_HDR2_MATRIXI_COEF02_10 0x1283
#define VDIN_HDR2_MATRIXI_COEF11_12 0x1284
#define VDIN_HDR2_MATRIXI_COEF20_21 0x1285
#define VDIN_HDR2_MATRIXI_COEF22 0x1286
#define VDIN_HDR2_MATRIXI_COEF30_31 0x1287
#define VDIN_HDR2_MATRIXI_COEF32_40 0x1288
#define VDIN_HDR2_MATRIXI_COEF41_42 0x1289
#define VDIN_HDR2_MATRIXI_OFFSET0_1 0x128a
#define VDIN_HDR2_MATRIXI_OFFSET2 0x128b
#define VDIN_HDR2_MATRIXI_PRE_OFFSET0_1 0x128c
#define VDIN_HDR2_MATRIXI_PRE_OFFSET2 0x128d
#define VDIN_HDR2_MATRIXO_COEF00_01 0x128e
#define VDIN_HDR2_MATRIXO_COEF02_10 0x128f
#define VDIN_HDR2_MATRIXO_COEF11_12 0x1290
#define VDIN_HDR2_MATRIXO_COEF20_21 0x1291
#define VDIN_HDR2_MATRIXO_COEF22 0x1292
#define VDIN_HDR2_MATRIXO_COEF30_31 0x1293
#define VDIN_HDR2_MATRIXO_COEF32_40 0x1294
#define VDIN_HDR2_MATRIXO_COEF41_42 0x1295
#define VDIN_HDR2_MATRIXO_OFFSET0_1 0x1296
#define VDIN_HDR2_MATRIXO_OFFSET2 0x1297
#define VDIN_HDR2_MATRIXO_PRE_OFFSET0_1 0x1298
#define VDIN_HDR2_MATRIXO_PRE_OFFSET2 0x1299
#define VDIN_HDR2_MATRIXI_CLIP 0x129a
#define VDIN_HDR2_MATRIXO_CLIP 0x129b
#define VDIN_HDR2_CGAIN_OFFT 0x129c
#define VDIN_EOTF_LUT_ADDR_PORT 0x129e
#define VDIN_EOTF_LUT_DATA_PORT 0x129f
#define VDIN_OETF_LUT_ADDR_PORT 0x12a0
#define VDIN_OETF_LUT_DATA_PORT 0x12a1
#define VDIN_CGAIN_LUT_ADDR_PORT 0x12a2
#define VDIN_CGAIN_LUT_DATA_PORT 0x12a3
#define VDIN_HDR2_CGAIN_COEF0 0x12a4
#define VDIN_HDR2_CGAIN_COEF1 0x12a5
#define VDIN_OGAIN_LUT_ADDR_PORT 0x12a6
#define VDIN_OGAIN_LUT_DATA_PORT 0x12a7
#define VDIN_HDR2_ADPS_CTRL 0x12a8
#define VDIN_HDR2_ADPS_ALPHA0 0x12a9
#define VDIN_HDR2_ADPS_ALPHA1 0x12aa
#define VDIN_HDR2_ADPS_BETA0 0x12ab
#define VDIN_HDR2_ADPS_BETA1 0x12ac
#define VDIN_HDR2_ADPS_BETA2 0x12ad
#define VDIN_HDR2_ADPS_COEF0 0x12ae
#define VDIN_HDR2_ADPS_COEF1 0x12af
#define VDIN_HDR2_GMUT_CTRL 0x12b0
#define VDIN_HDR2_GMUT_COEF0 0x12b1
#define VDIN_HDR2_GMUT_COEF1 0x12b2
#define VDIN_HDR2_GMUT_COEF2 0x12b3
#define VDIN_HDR2_GMUT_COEF3 0x12b4
#define VDIN_HDR2_GMUT_COEF4 0x12b5
#define VDIN_HDR2_PIPE_CTRL1 0x12b6
#define VDIN_HDR2_PIPE_CTRL2 0x12b7
#define VDIN_HDR2_PIPE_CTRL3 0x12b8
#define VDIN_HDR2_PROC_WIN1 0x12b9
#define VDIN_HDR2_PROC_WIN2 0x12ba
#define VDIN_HDR2_MATRIXI_EN_CTRL 0x12bb
#define VDIN_HDR2_MATRIXO_EN_CTRL 0x12bc
/*g12a new add end*/
#define VDIN_WRARB_REQEN_SLV 0x12c1
/* #define VDIN_SCALE_COEF_IDX 0x1200 */
/* #define VDIN_SCALE_COEF 0x1201 */
/* #define VDIN_COM_CTRL0 0x1202 */
/* used by other modules,indicates that MPEG input.
*0: mpeg source to NR directly,
*1: mpeg source pass through here
*/
#define MPEG_TO_VDIN_SEL_BIT 31
#define MPEG_TO_VDIN_SEL_WID 1
/* indicates MPEG field ID,written by software.
*0: EVEN FIELD 1: ODD FIELD
*/
#define MPEG_FLD_BIT 30
#define MPEG_FLD_WID 1
/* enable external MPEG Go_field (VS) */
#define MPEG_GO_FLD_EN_BIT 27
#define MPEG_GO_FLD_EN_WID 1
/* vdin read enable after hold lines counting from delayed Go-field (VS). */
#define HOLD_LN_BIT 20
#define HOLD_LN_WID 7
#define DLY_GO_FLD_EN_BIT 19
#define DLY_GO_FLD_EN_WID 1
#define DLY_GO_FLD_LN_NUM_BIT 12
#define DLY_GO_FLD_LN_NUM_WID 7 /* delay go field lines */
/* 00: component0_in 01: component1_in 10: component2_in */
#define COMP2_OUT_SWT_BIT 10
#define COMP2_OUT_SWT_WID 2
/* 00: component0_in 01: component1_in 10: component2_in */
#define COMP1_OUT_SWT_BIT 8
#define COMP1_OUT_SWT_WID 2
/* 00: component0_in 01: component1_in 10: component2_in */
#define COMP0_OUT_SWT_BIT 6
#define COMP0_OUT_SWT_WID 2
#define INPUT_WIN_SEL_EN_BIT 5
#define INPUT_WIN_SEL_EN_WID 1
/* 0: no data input 1: common data input */
#define COMMON_DATA_IN_EN_BIT 4
#define COMMON_DATA_IN_EN_WID 1
/* 1: MPEG, 2: 656, 3: TVFE, 4: CVD2, 5: HDMI_Rx,6: DVIN otherwise: NULL
*7: loopback from VIU1, 8: MIPI csi2 in meson6
*/
#define VDIN_SEL_BIT 0
#define VDIN_SEL_WID 4
/* #define VDIN_ACTIVE_MAX_PIX_CNT_STATUS 0x1203 */
/* ~field_hold & prehsc input active max pixel
* every line output of window
*/
#define ACTIVE_MAX_PIX_CNT_BIT 16
#define ACTIVE_MAX_PIX_CNT_WID 13
#define ACTIVE_MAX_PIX_CNT_SDW_BIT 0 /* latch by go_field */
#define ACTIVE_MAX_PIX_CNT_SDW_WID 13
/* #define VDIN_LCNT_STATUS 0x1204 */
/* line count by force_go_line |sel_go_line :output of decimate */
#define GO_LN_CNT_BIT 16
#define GO_LN_CNT_WID 13
/* line count prehsc input active max pixel
* every active line output of window
*/
#define ACTIVE_LN_CNT_BIT 0
#define ACTIVE_LN_CNT_WID 13
/* #define VDIN_COM_STATUS0 0x1205 */
#define LFIFO_BUF_CNT_BIT 3
#define LFIFO_BUF_CNT_WID 10 /* wren + read - */
#define DIRECT_DONE_STATUS_BIT 2
/* direct_done_clr_bit & reg_wpluse */
#define DIRECT_DONE_STATUS_WID 1
#define NR_DONE_STATUS_BIT 1
/* nr_done_clr_bit & reg_wpluse */
#define NR_DONE_STATUS_WID 1
#define VDIN_FLD_EVEN_BIT 0
#define VDIN_FLD_EVEN_WID 1
/* #define VDIN_COM_STATUS1 0x1206 */
#define FIFO4_OVFL_BIT 31
#define FIFO4_OVFL_WID 1
#define ASFIFO4_CNT_BIT 24
#define ASFIFO4_CNT_WID 6
#define FIFO3_OVFL_BIT 23
#define FIFO3_OVFL_WID 1
#define ASFIFO3_CNT_BIT 16
#define ASFIFO3_CNT_WID 6
#define FIFO2_OVFL_BIT 15
#define FIFO2_OVFL_WID 1
#define ASFIFO2_CNT_BIT 8
#define ASFIFO2_CNT_WID 6
#define FIFO1_OVFL_BIT 7
#define FIFO1_OVFL_WID 1
#define ASFIFO1_CNT_BIT 0
#define ASFIFO1_CNT_WID 6
/* #define VDIN_LCNT_SHADOW_STATUS 0x1207 */
#define GO_LN_CNT_SDW_BIT 16
#define GO_LN_CNT_SDW_WID 13 /* latch by go_field */
#define ACTIVE_LN_CNT_SDW_BIT 0
#define ACTIVE_LN_CNT_SDW_WID 13 /* latch by go_field */
/* #define VDIN_ASFIFO_CTRL0 0x1208 */
#define VDI2_ASFIFO_CTRL_BIT 16
#define VDI2_ASFIFO_CTRL_WID 8
#define ASFIFO2_DE_EN_BIT 23
#define ASFIFO2_DE_EN_WID 1
#define ASFIFO2_GO_FLD_EN_BIT 22
#define ASFIFO2_GO_FLD_EN_WID 1
#define ASFIFO2_GO_LN_EN_BIT 21
#define ASFIFO2_GO_LN_EN_WID 1
#define ASFIFO2_NEG_ACTIVE_IN_VS_BIT 20
#define ASFIFO2_NEG_ACTIVE_IN_VS_WID 1
#define ASFIFO2_NEG_ACTIVE_IN_HS_BIT 19
#define ASFIFO2_NEG_ACTIVE_IN_HS_WID 1
#define ASFIFO2_VS_SOFT_RST_FIFO_EN_BIT 18
#define ASFIFO2_VS_SOFT_RST_FIFO_EN_WID 1
#define ASFIFO2_OVFL_STATUS_CLR_BIT 17
#define ASFIFO2_OVFL_STATUS_CLR_WID 1
#define ASFIFO2_SOFT_RST_BIT 16
#define ASFIFO2_SOFT_RST_WID 1 /* write 1 & then 0 to reset */
#define VDI1_ASFIFO_CTRL_BIT 0
#define VDI1_ASFIFO_CTRL_WID 8
#define ASFIFO1_DE_EN_BIT 7
#define ASFIFO1_DE_EN_WID 1
#define ASFIFO1_GO_FLD_EN_BIT 6
#define ASFIFO1_GO_FLD_EN_WID 1
#define ASFIFO1_GO_LN_EN_BIT 5
#define ASFIFO1_GO_LN_EN_WID 1
#define ASFIFO1_NEG_ACTIVE_IN_VS_BIT 4
#define ASFIFO1_NEG_ACTIVE_IN_VS_WID 1
#define ASFIFO1_NEG_ACTIVE_IN_HS_BIT 3
#define ASFIFO1_NEG_ACTIVE_IN_HS_WID 1
#define ASFIFO1_VS_SOFT_RST_FIFO_EN_BIT 2
#define ASFIFO1_VS_SOFT_RST_FIFO_EN_WID 1
#define ASFIFO1_OVFL_STATUS_CLR_BIT 1
#define ASFIFO1_OVFL_STATUS_CLR_WID 1
#define ASFIFO1_SOFT_RST_BIT 0
#define ASFIFO1_SOFT_RST_WID 1 /* write 1 & then 0 to reset */
/* #define VDIN_ASFIFO_CTRL1 0x1209 */
#define VDI4_ASFIFO_CTRL_BIT 16
#define VDI4_ASFIFO_CTRL_WID 8
#define ASFIFO4_DE_EN_BIT 23
#define ASFIFO4_DE_EN_WID 1
#define ASFIFO4_GO_FLD_EN_BIT 22
#define ASFIFO4_GO_FLD_EN_WID 1
#define ASFIFO4_GO_LN_EN_BIT 21
#define ASFIFO4_GO_LN_EN_WID 1
#define ASFIFO4_NEG_ACTIVE_IN_VS_BIT 20
#define ASFIFO4_NEG_ACTIVE_IN_VS_WID 1
#define ASFIFO4_NEG_ACTIVE_IN_HS_BIT 19
#define ASFIFO4_NEG_ACTIVE_IN_HS_WID 1
#define ASFIFO4_VS_SOFT_RST_FIFO_EN_BIT 18
#define ASFIFO4_VS_SOFT_RST_FIFO_EN_WID 1
#define ASFIFO4_OVFL_STATUS_CLR_BIT 17
#define ASFIFO4_OVFL_STATUS_CLR_WID 1
#define ASFIFO4_SOFT_RST_BIT 16
#define ASFIFO4_SOFT_RST_WID 1 /* write 1 & then 0 to reset */
#define VDI3_ASFIFO_CTRL_BIT 0
#define VDI3_ASFIFO_CTRL_WID 8
#define ASFIFO3_DE_EN_BIT 7
#define ASFIFO3_DE_EN_WID 1
#define ASFIFO3_GO_FLD_EN_BIT 6
#define ASFIFO3_GO_FLD_EN_WID 1
#define ASFIFO3_GO_LN_EN_BIT 5
#define ASFIFO3_GO_LN_EN_WID 1
#define ASFIFO3_NEG_ACTIVE_IN_VS_BIT 4
#define ASFIFO3_NEG_ACTIVE_IN_VS_WID 1
#define ASFIFO3_NEG_ACTIVE_IN_HS_BIT 3
#define ASFIFO3_NEG_ACTIVE_IN_HS_WID 1
#define ASFIFO3_VS_SOFT_RST_FIFO_EN_BIT 2
#define ASFIFO3_VS_SOFT_RST_FIFO_EN_WID 1
#define ASFIFO3_OVFL_STATUS_CLR_BIT 1
#define ASFIFO3_OVFL_STATUS_CLR_WID 1
#define ASFIFO3_SOFT_RST_BIT 0
#define ASFIFO3_SOFT_RST_WID 1 /* write 1 & then 0 to reset */
/* #define VDIN_WIDTHM1I_WIDTHM1O 0x120a */
#define WIDTHM1I_BIT 16
#define WIDTHM1I_WID 13
#define WIDTHM1O_BIT 0
#define WIDTHM1O_WID 13
/* #define VDIN_SC_MISC_CTRL 0x120b */
/* signed value for short line output */
#define PRE_HSCL_MODE_BIT 17
#define PRE_HSCL_MODE_WID 4
#define INIT_PIX_IN_PTR_BIT 8
#define INIT_PIX_IN_PTR_WID 7
#define INIT_PIX_IN_PTR_MSK 0x0000007f
#define PRE_HSCL_EN_BIT 7
/* pre-hscaler: 1/2 coarse scale down */
#define PRE_HSCL_EN_WID 1
#define HSCL_EN_BIT 6
#define HSCL_EN_WID 1 /* hscaler: fine scale down */
#define SHORT_LN_OUT_EN_BIT 5
#define SHORT_LN_OUT_EN_WID 1
/*when decimation timing located in between 2 input pixels,
* decimate the nearest one
*/
#define HSCL_NEAREST_EN_BIT 4
#define HSCL_NEAREST_EN_WID 1
/* Start decimation from phase 0 for each line */
#define PHASE0_ALWAYS_EN_BIT 3
#define PHASE0_ALWAYS_EN_WID 1
/* filter pixel buf len (depth), max is 3 in IP design */
#define HSCL_BANK_LEN_BIT 0
#define HSCL_BANK_LEN_WID 3
/* #define VDIN_HSC_PHASE_STEP 0x120c */
#define HSCL_PHASE_STEP_INT_BIT 24
#define HSCL_PHASE_STEP_INT_WID 5
#define HSCL_PHASE_STEP_FRA_BIT 0
#define HSCL_PHASE_STEP_FRA_WID 24
/* #define VDIN_HSC_INI_CTRL 0x120d */
/* repeatedly decimation of pixel #0 of each line? */
#define HSCL_RPT_P0_NUM_BIT 29
#define HSCL_RPT_P0_NUM_WID 2
/* if rev>rpt_p0+1, then start decimation upon ini_phase? */
#define HSCL_INI_RCV_NUM_BIT 24
#define HSCL_INI_RCV_NUM_WID 5
/* which one every some pixels is decimated */
#define HSCL_INI_PHASE_BIT 0
#define HSCL_INI_PHASE_WID 24
/* #define VDIN_COM_STATUS2 0x120e */
/* Read only */
#define VDI7_FIFO_OVFL_BIT 23 /* vdi7 fifo overflow */
#define VDI7_FIFO_OVFL_WID 1
#define VDI7_ASFIFO_CNT_BIT 16 /* vdi7_asfifo_cnt */
#define VDI7_ASFIFO_CNT_WID 6
#define VDI6_FIFO_OVFL_BIT 15 /* vdi6 fifo overflow */
#define VDI6_FIFO_OVFL_WID 1
#define VDI6_ASFIFO_CNT_BIT 8 /* vdi6_asfifo_cnt */
#define VDI6_ASFIFO_CNT_WID 6
#define VDI5_FIFO_OVFL_BIT 7 /* vdi5 fifo overflow */
#define VDI5_FIFO_OVFL_WID 1
#define VDI5_ASFIFO_CNT_BIT 0 /* vdi5_asfifo_cnt */
#define VDI5_ASFIFO_CNT_WID 6
/* #define VDIN_ASFIFO_CTRL2 0x120f */
#define ASFIFO_DECIMATION_SYNC_WITH_DE_BIT 25
#define ASFIFO_DECIMATION_SYNC_WITH_DE_WID 1
#define ASFIFO_DECIMATION_DE_EN_BIT 24
#define ASFIFO_DECIMATION_DE_EN_WID 1
#define ASFIFO_DECIMATION_PHASE_BIT 20
/* which counter value used to decimate */
#define ASFIFO_DECIMATION_PHASE_WID 4
#define ASFIFO_DECIMATION_NUM_BIT 16
/* 0: not decimation, 1: decimation 2, 2: decimation 3 ... */
#define ASFIFO_DECIMATION_NUM_WID 4
#define VDI5_ASFIFO_CTRL_BIT 0
#define VDI5_ASFIFO_CTRL_WID 8
#define ASFIFO5_DE_EN_BIT 7
#define ASFIFO5_DE_EN_WID 1
#define ASFIFO5_GO_FLD_EN_BIT 6
#define ASFIFO5_GO_FLD_EN_WID 1
#define ASFIFO5_GO_LN_EN_BIT 5
#define ASFIFO5_GO_LN_EN_WID 1
#define ASFIFO5_NEG_ACTIVE_IN_VS_BIT 4
#define ASFIFO5_NEG_ACTIVE_IN_VS_WID 1
#define ASFIFO5_NEG_ACTIVE_IN_HS_BIT 3
#define ASFIFO5_NEG_ACTIVE_IN_HS_WID 1
#define ASFIFO5_VS_SOFT_RST_FIFO_EN_BIT 2
#define ASFIFO5_VS_SOFT_RST_FIFO_EN_WID 1
#define ASFIFO5_OVFL_STATUS_CLR_BIT 1
#define ASFIFO5_OVFL_STATUS_CLR_WID 1
#define ASFIFO5_SOFT_RST_BIT 0
/* write 1 & then 0 to reset */
#define ASFIFO5_SOFT_RST_WID 1
/* #define VDIN_MATRIX_CTRL 0x1210 */
#define VDIN_MATRIX0_BYPASS_BIT 9/* 1:bypass 0:pass */
#define VDIN_MATRIX0_BYPASS_WID 1
#define VDIN_MATRIX1_BYPASS_BIT 8
#define VDIN_MATRIX1_BYPASS_WID 1
#define VDIN_HIGHLIGHT_EN_BIT 7
#define VDIN_HIGHLIGHT_EN_WID 1
/* 1: probe pixel data after matrix, 0:probe pixel data before matrix */
#define VDIN_PROBE_POST_BIT 6
#define VDIN_PROBE_POST_WID 1
/* 00: select matrix0, 01: select matrix1,otherwise select nothing */
#define VDIN_PROBE_SEL_BIT 4
#define VDIN_PROBE_SEL_WID 2
/* 00: select mat0, 01: select mat1, otherwise slect nothing */
#define VDIN_MATRIX_COEF_INDEX_BIT 2
#define VDIN_MATRIX_COEF_INDEX_WID 2
/* Bit 1 mat1 conversion matrix enable */
#define VDIN_MATRIX1_EN_BIT 1
#define VDIN_MATRIX1_EN_WID 1
/* Bit 0 mat0 conversion matrix enable */
#define VDIN_MATRIX_EN_BIT 0
#define VDIN_MATRIX_EN_WID 1
/* #define VDIN_MATRIX_COEF00_01 0x1211 */
#define MATRIX_C00_BIT 16
#define MATRIX_C00_WID 13 /* s2.10 */
#define MATRIX_C01_BIT 0
#define MATRIX_C01_WID 13 /* s2.10 */
/* #define VDIN_MATRIX_COEF02_10 0x1212 */
#define MATRIX_C02_BIT 16
#define MATRIX_C02_WID 13 /* s2.10 */
#define MATRIX_C10_BIT 0
#define MATRIX_C10_WID 13 /* s2.10 */
/* #define VDIN_MATRIX_COEF11_12 0x1213 */
#define MATRIX_C11_BIT 16
#define MATRIX_C11_WID 13 /* s2.10 */
#define MATRIX_C12_BIT 0
#define MATRIX_C12_WID 13 /* s2.10 */
/* #define VDIN_MATRIX_COEF20_21 0x1214 */
#define MATRIX_C20_BIT 16
#define MATRIX_C20_WID 13 /* s2.10 */
#define MATRIX_C21_BIT 0
#define MATRIX_C21_WID 13 /* s2.10 */
/* #define VDIN_MATRIX_COEF22 0x1215 */
#define MATRIX_C22_BIT 0
#define MATRIX_C22_WID 13 /* s2.10 */
/* #define VDIN_MATRIX_OFFSET0_1 0x1216 */
#define MATRIX_OFFSET0_BIT 16
#define MATRIX_OFFSET0_WID 11 /* s8.2 */
#define MATRIX_OFFSET1_BIT 0
#define MATRIX_OFFSET1_WID 11 /* s8.2 */
/* #define VDIN_MATRIX_OFFSET2 0x1217 */
#define MATRIX_OFFSET2_BIT 0
#define MATRIX_OFFSET2_WID 11 /* s8.2 */
/* #define VDIN_MATRIX_PRE_OFFSET0_1 0x1218 */
#define MATRIX_PRE_OFFSET0_BIT 16
#define MATRIX_PRE_OFFSET0_WID 11 /* s8.2 */
#define MATRIX_PRE_OFFSET1_BIT 0
#define MATRIX_PRE_OFFSET1_WID 11 /* s8.2 */
/* #define VDIN_MATRIX_PRE_OFFSET2 0x1219 */
#define MATRIX_PRE_OFFSET2_BIT 0
#define MATRIX_PRE_OFFSET2_WID 11 /* s8.2 */
/* #define VDIN_LFIFO_CTRL 0x121a */
#define LFIFO_BUF_SIZE_BIT 0
#define LFIFO_BUF_SIZE_WID 12
/* #define VDIN_COM_GCLK_CTRL 0x121b */
#define COM_GCLK_BLKBAR_BIT 14
#define COM_GCLK_BLKBAR_WID 2 /* 00: auto, 01: off, 1x: on */
#define COM_GCLK_HIST_BIT 12
#define COM_GCLK_HIST_WID 2 /* 00: auto, 01: off, 1x: on */
#define COM_GCLK_LFIFO_BIT 10
#define COM_GCLK_LFIFO_WID 2 /* 00: auto, 01: off, 1x: on */
#define COM_GCLK_MATRIX_BIT 8
#define COM_GCLK_MATRIX_WID 2 /* 00: auto, 01: off, 1x: on */
#define COM_GCLK_HSCL_BIT 6
#define COM_GCLK_HSCL_WID 2 /* 00: auto, 01: off, 1x: on */
#define COM_GCLK_PRE_HSCL_BIT 4
#define COM_GCLK_PRE_HSCL_WID 2 /* 00: auto, 01: off, 1x: on */
#define COM_GCLK_TOP_BIT 2
#define COM_GCLK_TOP_WID 2 /* 00: auto, 01: off, 1x: on */
/* Caution !!! never turn it off, otherwise no way to
* wake up VDIN unless power reset
*/
#define COM_GCLK_REG_BIT 0
#define COM_GCLK_REG_WID 1 /* 0: auto, 1: off. Caution !!! */
/* #define VDIN_INTF_WIDTHM1 0x121c */
/* before the cut window function, after the de decimation function */
#define VDIN_INTF_WIDTHM1_BIT 0
#define VDIN_INTF_WIDTHM1_WID 13
/* #define VDIN_LFIFO_URG_CTRL 0x121e */
/*Bit 15 default== 0, urgent_ctrl_en
*Bit 14 default== 0, urgent_wr, if true for write buffer
*Bit 13 default== 0, out_inv_en
*Bit 12 default == 0, urgent_ini_value
*Bit 11:6 default == 0, up_th up threshold
*Bit 5:0 default == 0, dn_th dn threshold
*/
#define VDIN_LFIFO_URG_CTRL_EN_BIT 15
#define VDIN_LFIFO_URG_CTRL_EN_WID 1
#define VDIN_LFIFO_URG_WR_EN_BIT 14
#define VDIN_LFIFO_URG_WR_EN_WID 1
#define VDIN_LFIFO_OUT_INV_EN_BIT 13
#define VDIN_LFIFO_OUT_INV_EN_WID 1
#define VDIN_LFIFO_URG_INI_BIT 12
#define VDIN_LFIFO_URG_INI_WID 1
#define VDIN_LFIFO_URG_UP_TH_BIT 6
#define VDIN_LFIFO_URG_UP_TH_WID 6
#define VDIN_LFIFO_URG_DN_TH_BIT 0
#define VDIN_LFIFO_URG_DN_TH_WID 6
/* #define VDIN_WR_CTRL2 0x121f */
/*1: enable WR 10 bit mode, 0: disable WR 10 bit mode*/
#define VDIN_WR_10BIT_MODE_BIT 19
#define VDIN_WR_10BIT_MODE_WID 1
/* data_ext_en 1:send out data if req was interrupt by soft reset */
/* 0:normal mode */
#define VDIN_WR_DATA_EXT_EN_BIT 18
#define VDIN_WR_DATA_EXT_EN_WID 1
/*0: 1 word in 1burst, 1: 2 words in 1burst;
*10: 4 words in 1burst; 11: reserved
*/
#define VDIN_WR_BURST_MODE_BIT 12
#define VDIN_WR_BURST_MODE_WID 4
/* 1: discard data before line fifo, 0: normal mode */
#define DISCARD_BEF_LINE_FIFO_BIT 8
#define DISCARD_BEF_LINE_FIFO_WID 1
/* Write chroma canvas address */
#define WRITE_CHROMA_CANVAS_ADDR_BIT 0
#define WRITE_CHROMA_CANVAS_ADDR_WID 8
/* #define VDIN_WR_CTRL 0x1220 */
/* Applicable only bit[13:12]=0 or 10. */
/* 0: Output every even pixels' CbCr; */
/* 1: Output every odd pixels' CbCr; */
/* 10: Output an average value per even&odd pair of pixels; */
/* 11: Output all CbCr. (This does NOT apply to bit[13:12]=0 -- 4:2:2 mode.) */
#define HCONV_MODE_BIT 30
#define HCONV_MODE_WID 2
/* 1:disable vid_wr_mif clock gating function */
#define NO_CLOCK_GATE_BIT 29
#define NO_CLOCK_GATE_WID 1
#define WR_RESPONSE_CNT_CLR_BIT 28
#define WR_RESPONSE_CNT_CLR_WID 1
#define EOL_SEL_BIT 27
#define EOL_SEL_WID 1
#define VCP_NR_EN_BIT 26/* ONLY VDIN0 */
#define VCP_NR_EN_WID 1
#define VCP_WR_EN_BIT 25/* ONLY VDIN0 */
#define VCP_WR_EN_WID 1
#define VCP_IN_EN_BIT 24/* ONLY VDIN0 */
#define VCP_IN_EN_WID 1
/* #define WR_OUT_CTRL_BIT 24 ? */
/* #define WR_OUT_CTRL_WID 8 //directly send out */
#define FRAME_SOFT_RST_EN_BIT 23
#define FRAME_SOFT_RST_EN_WID 1
/* reset LFIFO on VS (Go_field) */
#define LFIFO_SOFT_RST_EN_BIT 22
#define LFIFO_SOFT_RST_EN_WID 1
#define DIRECT_DONE_CLR_BIT 21 /* used by other modules */
#define DIRECT_DONE_CLR_WID 1
#define NR_DONE_CLR_BIT 20 /* used by other modules */
#define NR_DONE_CLR_WID 1
/* only [13:12]=10;0 output cbcr(nv12);1 output cbcr(nv21) */
#define SWAP_CBCR_BIT 18
#define SWAP_CBCR_WID 1
/* 0: Output even lines' CbCr; 01: Output odd lines' CbCr;
* 10: Reserved; 11: Output all CbCr.
*/
#define VCONV_MODE_BIT 16
#define VCONV_MODE_WID 2
/* 0: 422;1: 444;10:Y to luma canvas cbcr to chroma canvas for NV12/21 */
#define WR_FMT_BIT 12
#define WR_FMT_WID 2
/* vdin_wr_canvas = vdin_wr_canvas_dbuf_en ? wr_canvas_shadow :wr_canvas; */
/* shadow is latch by go_field */
#define WR_CANVAS_DOUBLE_BUF_EN_BIT 11
#define WR_CANVAS_DOUBLE_BUF_EN_WID 1
#define WR_REQ_URGENT_BIT 9
#define WR_REQ_URGENT_WID 1 /* directly send out */
#define WR_REQ_EN_BIT 8
#define WR_REQ_EN_WID 1 /* directly send out */
#define WR_CANVAS_BIT 0
#define WR_CANVAS_WID 8
/* #define VDIN_WR_H_START_END 0x1221 */
#define HORIZONTAL_REVERSE_BIT 29/* if true horizontal reverse */
#define HORIZONTAL_REVERSE_WID 1
#define WR_HSTART_BIT 16
#define WR_HSTART_WID 13 /* directly send out */
#define WR_HEND_BIT 0
#define WR_HEND_WID 13 /* directly send out */
/* #define VDIN_WR_V_START_END 0x1222 */
#define VERTICAL_REVERSE_BIT 29/* if true vertical reverse */
#define VERTICAL_REVERSE_WID 1
#define WR_VSTART_BIT 16
#define WR_VSTART_WID 13 /* directly send out */
#define WR_VEND_BIT 0
#define WR_VEND_WID 13 /* directly send out */
/* #define VDIN_VSC_PHASE_STEP 0x1223 */
#define INTEGER_PORTION_BIT 20
#define INTEGER_PORTION_WID 5
#define FRACTION_PORTION_BIT 0
#define FRACTION_PORTION_WID 20
/* #define VDIN_VSC_INI_CTRL 0x1224 */
#define VSC_EN_BIT 23
#define VSC_EN_WID 1
#define VSC_PHASE0_ALWAYS_EN_BIT 21/* to be 1 when scale up */
#define VSC_PHASE0_ALWAYS_EN_WID 1
#define INI_SKIP_LINE_NUM_BIT 16
#define INI_SKIP_LINE_NUM_WID 5
#define VSCALER_INI_PHASE_BIT 0
#define VSCALER_INI_PHASE_WID 16
/* #define VDIN_SCIN_HEIGHTM1 0x1225 */
/* Bit 12:0, scaler input height minus 1 */
#define SCALER_INPUT_HEIGHT_BIT 0
#define SCALER_INPUT_HEIGHT_WID 13
/* Bit 28:16, vshrk input height minus 1 */
#define VSHRK_INPUT_HEIGHT_BIT 16
#define VSHRK_INPUT_HEIGHT_WID 13
/* #define `define VDIN_DUMMY_DATA 0x1226 */
#define DUMMY_COMPONENT0_BIT 16
#define DUMMY_COMPONENT0_WID 8
#define DUMMY_COMPONENT1_BIT 8
#define DUMMY_COMPONENT1_WID 8
#define DUMMY_COMPONENT2_BIT 0
#define DUMMY_COMPONENT2_WID 8
/* #define VDIN_MATRIX_PROBE_COLOR 0x1228 */
/* Read only */
#define COMPONENT0_PROBE_COLOR_BIT 20
#define COMPONENT0_PROBE_COLOR_WID 10
#define COMPONENT1_PROBE_COLOR_BIT 10
#define COMPONENT1_PROBE_COLOR_WID 10
#define COMPONENT2_PROBE_COLOR_BIT 0
#define COMPONENT2_PROBE_COLOR_WID 10
/* #define VDIN_MATRIX_HL_COLOR 0x1229 */
#define COMPONENT0_HL_COLOR_BIT 16
#define COMPONENT0_HL_COLOR_WID 8
#define COMPONENT1_HL_COLOR_BIT 8
#define COMPONENT1_HL_COLOR_WID 8
#define COMPONENT2_HL_COLOR_BIT 0
#define COMPONENT2_HL_COLOR_WID 8
/* #define VDIN_MATRIX_PROBE_POS 0x122a */
#define PROBE_POS_X_BIT 16
#define PROBE_POS_X_WID 13
#define PROBE_POX_Y_BIT 0
#define PROBE_POX_Y_WID 13
/* #define VDIN_HIST_CTRL 0x1230 */
/* Bit 10:9 ldim_stts_din_sel, 00: from matrix0 dout,
* 01: from vsc_dout, 10: from matrix1 dout, 11: form matrix1 din
*/
#define LDIM_STTS_DIN_SEL_BIT 9
#define LDIM_STTS_DIN_SEL_WID 2
#define LDIM_STTS_EN_BIT 8
#define LDIM_STTS_EN_WID 1
/* 00: from matrix0 dout, 01: from vsc_dout,
* 10: from matrix1 dout, 11: form matrix1 din
*/
#define HIST_DIN_SEL_BIT 2
#define HIST_DIN_SEL_WID 2
/* #define VDIN_CHROMA_ADDR_PORT 0x122b */
/* #define VDIN_CHROMA_DATA_PORT 0x122c */
/* #define VDIN_CM_BRI_CON_CTRL 0x122d */
#define CM_TOP_EN_BIT 28
#define CM_TOP_EN_WID 1
#define BRI_CON_EN_BIT 27
#define BRI_CON_EN_WID 1
#define SED_YUVINVEN_BIT 24
#define SED_YUVINVEN_WID 3
#define REG_ADJ_BRI_BIT 12
#define REG_ADJ_BRI_WID 11
#define REG_ADJ_CON_BIT 0
#define REG_ADJ_CON_WID 12
/* #define VDIN_GO_LINE_CTRL 0x122f */
#define CLK_CYC_CNT_CLR_BIT 17
#define CLK_CYC_CNT_CLR_WID 1
/* Bit 17 clk_cyc_cnt_clr, if true, clear this register */
#define LINE_CNT_SRC_SEL_BIT 16
#define LINE_CNT_SRC_SEL_WID 1
/* Bit 16 if true, use vpu clock to count one line,
* otherwise use actually hsync to count line_cnt
*/
/* Bit 15:0 line width using vpu clk */
#define LINE_WID_USING_VPU_CLK_BIT 0
#define LINE_WID_USING_VPU_CLK_WID 16
/* #define VDIN_HIST_CTRL 0x1230 */
/* the total pixels = VDIN_HISTXX*(2^(VDIN_HIST_POW+3)) */
#define HIST_POW_BIT 5
#define HIST_POW_WID 2
/* Bit 3:2 hist_din_sel the source used for hist statistics.
* 00: from matrix0 dout, 01: from vsc_dout,
* 10: from matrix1 dout, 11: form matrix1 din
*/
#define HIST_HIST_DIN_SEL_BIT 2
#define HIST_HIST_DIN_SEL_WID 2
/* Histgram range: 0: full picture, 1: histgram window
* defined by VDIN_HIST_H_START_END & VDIN_HIST_V_START_END
*/
#define HIST_WIN_EN_BIT 1
#define HIST_WIN_EN_WID 1
/* Histgram readback: 0: disable, 1: enable */
#define HIST_RD_EN_BIT 0
#define HIST_RD_EN_WID 1
/* #define VDIN_HIST_H_START_END 0x1231 */
#define HIST_HSTART_BIT 16
#define HIST_HSTART_WID 13
#define HIST_HEND_BIT 0
#define HIST_HEND_WID 13
/* #define VDIN_HIST_V_START_END 0x1232 */
#define HIST_VSTART_BIT 16
#define HIST_VSTART_WID 13
#define HIST_VEND_BIT 0
#define HIST_VEND_WID 13
/* #define VDIN_HIST_MAX_MIN 0x1233 */
#define HIST_MAX_BIT 8
#define HIST_MAX_WID 8
#define HIST_MIN_BIT 0
#define HIST_MIN_WID 8
/* #define VDIN_HIST_SPL_VAL 0x1234 */
#define HIST_LUMA_SUM_BIT 0
#define HIST_LUMA_SUM_WID 32
/* the total calculated pixels */
/* #define VDIN_HIST_SPL_PIX_CNT 0x1235 */
#define HIST_PIX_CNT_BIT 0
#define HIST_PIX_CNT_WID 22
/* the total chroma value */
/* #define VDIN_HIST_CHROMA_SUM 0x1236 */
#define HIST_CHROMA_SUM_BIT 0
#define HIST_CHROMA_SUM_WID 32
/* #define VDIN_DNLP_HIST00 0x1237 */
#define HIST_ON_BIN_01_BIT 16
#define HIST_ON_BIN_01_WID 16
#define HIST_ON_BIN_00_BIT 0
#define HIST_ON_BIN_00_WID 16
/* #define VDIN_DNLP_HIST01 0x1238 */
#define HIST_ON_BIN_03_BIT 16
#define HIST_ON_BIN_03_WID 16
#define HIST_ON_BIN_02_BIT 0
#define HIST_ON_BIN_02_WID 16
/* #define VDIN_DNLP_HIST02 0x1239 */
#define HIST_ON_BIN_05_BIT 16
#define HIST_ON_BIN_05_WID 16
#define HIST_ON_BIN_04_BIT 0
#define HIST_ON_BIN_04_WID 16
/* #define VDIN_DNLP_HIST03 0x123a */
#define HIST_ON_BIN_07_BIT 16
#define HIST_ON_BIN_07_WID 16
#define HIST_ON_BIN_06_BIT 0
#define HIST_ON_BIN_06_WID 16
/* #define VDIN_DNLP_HIST04 0x123b */
#define HIST_ON_BIN_09_BIT 16
#define HIST_ON_BIN_09_WID 16
#define HIST_ON_BIN_08_BIT 0
#define HIST_ON_BIN_08_WID 16
/* #define VDIN_DNLP_HIST05 0x123c */
#define HIST_ON_BIN_11_BIT 16
#define HIST_ON_BIN_11_WID 16
#define HIST_ON_BIN_10_BIT 0
#define HIST_ON_BIN_10_WID 16
/* #define VDIN_DNLP_HIST06 0x123d */
#define HIST_ON_BIN_13_BIT 16
#define HIST_ON_BIN_13_WID 16
#define HIST_ON_BIN_12_BIT 0
#define HIST_ON_BIN_12_WID 16
/* #define VDIN_DNLP_HIST07 0x123e */
#define HIST_ON_BIN_15_BIT 16
#define HIST_ON_BIN_15_WID 16
#define HIST_ON_BIN_14_BIT 0
#define HIST_ON_BIN_14_WID 16
/* #define VDIN_DNLP_HIST08 0x123f */
#define HIST_ON_BIN_17_BIT 16
#define HIST_ON_BIN_17_WID 16
#define HIST_ON_BIN_16_BIT 0
#define HIST_ON_BIN_16_WID 16
/* #define VDIN_DNLP_HIST09 0x1240 */
#define HIST_ON_BIN_19_BIT 16
#define HIST_ON_BIN_19_WID 16
#define HIST_ON_BIN_18_BIT 0
#define HIST_ON_BIN_18_WID 16
/* #define VDIN_DNLP_HIST10 0x1241 */
#define HIST_ON_BIN_21_BIT 16
#define HIST_ON_BIN_21_WID 16
#define HIST_ON_BIN_20_BIT 0
#define HIST_ON_BIN_20_WID 16
/* #define VDIN_DNLP_HIST11 0x1242 */
#define HIST_ON_BIN_23_BIT 16
#define HIST_ON_BIN_23_WID 16
#define HIST_ON_BIN_22_BIT 0
#define HIST_ON_BIN_22_WID 16
/* #define VDIN_DNLP_HIST12 0x1243 */
#define HIST_ON_BIN_25_BIT 16
#define HIST_ON_BIN_25_WID 16
#define HIST_ON_BIN_24_BIT 0
#define HIST_ON_BIN_24_WID 16
/* #define VDIN_DNLP_HIST13 0x1244 */
#define HIST_ON_BIN_27_BIT 16
#define HIST_ON_BIN_27_WID 16
#define HIST_ON_BIN_26_BIT 0
#define HIST_ON_BIN_26_WID 16
/* #define VDIN_DNLP_HIST14 0x1245 */
#define HIST_ON_BIN_29_BIT 16
#define HIST_ON_BIN_29_WID 16
#define HIST_ON_BIN_28_BIT 0
#define HIST_ON_BIN_28_WID 16
/* #define VDIN_DNLP_HIST15 0x1246 */
#define HIST_ON_BIN_31_BIT 16
#define HIST_ON_BIN_31_WID 16
#define HIST_ON_BIN_30_BIT 0
#define HIST_ON_BIN_30_WID 16
/* #define VDIN_DNLP_HIST16 0x1247 */
#define HIST_ON_BIN_33_BIT 16
#define HIST_ON_BIN_33_WID 16
#define HIST_ON_BIN_32_BIT 0
#define HIST_ON_BIN_32_WID 16
/* #define VDIN_DNLP_HIST17 0x1248 */
#define HIST_ON_BIN_35_BIT 16
#define HIST_ON_BIN_35_WID 16
#define HIST_ON_BIN_34_BIT 0
#define HIST_ON_BIN_34_WID 16
/* #define VDIN_DNLP_HIST18 0x1249 */
#define HIST_ON_BIN_37_BIT 16
#define HIST_ON_BIN_37_WID 16
#define HIST_ON_BIN_36_BIT 0
#define HIST_ON_BIN_36_WID 16
/* #define VDIN_DNLP_HIST19 0x124a */
#define HIST_ON_BIN_39_BIT 16
#define HIST_ON_BIN_39_WID 16
#define HIST_ON_BIN_38_BIT 0
#define HIST_ON_BIN_38_WID 16
/* #define VDIN_DNLP_HIST20 0x124b */
#define HIST_ON_BIN_41_BIT 16
#define HIST_ON_BIN_41_WID 16
#define HIST_ON_BIN_40_BIT 0
#define HIST_ON_BIN_40_WID 16
/* #define VDIN_DNLP_HIST21 0x124c */
#define HIST_ON_BIN_43_BIT 16
#define HIST_ON_BIN_43_WID 16
#define HIST_ON_BIN_42_BIT 0
#define HIST_ON_BIN_42_WID 16
/* #define VDIN_DNLP_HIST22 0x124d */
#define HIST_ON_BIN_45_BIT 16
#define HIST_ON_BIN_45_WID 16
#define HIST_ON_BIN_44_BIT 0
#define HIST_ON_BIN_44_WID 16
/* #define VDIN_DNLP_HIST23 0x124e */
#define HIST_ON_BIN_47_BIT 16
#define HIST_ON_BIN_47_WID 16
#define HIST_ON_BIN_46_BIT 0
#define HIST_ON_BIN_46_WID 16
/* #define VDIN_DNLP_HIST24 0x124f */
#define HIST_ON_BIN_49_BIT 16
#define HIST_ON_BIN_49_WID 16
#define HIST_ON_BIN_48_BIT 0
#define HIST_ON_BIN_48_WID 16
/* #define VDIN_DNLP_HIST25 0x1250 */
#define HIST_ON_BIN_51_BIT 16
#define HIST_ON_BIN_51_WID 16
#define HIST_ON_BIN_50_BIT 0
#define HIST_ON_BIN_50_WID 16
/* #define VDIN_DNLP_HIST26 0x1251 */
#define HIST_ON_BIN_53_BIT 16
#define HIST_ON_BIN_53_WID 16
#define HIST_ON_BIN_52_BIT 0
#define HIST_ON_BIN_52_WID 16
/* #define VDIN_DNLP_HIST27 0x1252 */
#define HIST_ON_BIN_55_BIT 16
#define HIST_ON_BIN_55_WID 16
#define HIST_ON_BIN_54_BIT 0
#define HIST_ON_BIN_54_WID 16
/* #define VDIN_DNLP_HIST28 0x1253 */
#define HIST_ON_BIN_57_BIT 16
#define HIST_ON_BIN_57_WID 16
#define HIST_ON_BIN_56_BIT 0
#define HIST_ON_BIN_56_WID 16
/* #define VDIN_DNLP_HIST29 0x1254 */
#define HIST_ON_BIN_59_BIT 16
#define HIST_ON_BIN_59_WID 16
#define HIST_ON_BIN_58_BIT 0
#define HIST_ON_BIN_58_WID 16
/* #define VDIN_DNLP_HIST30 0x1255 */
#define HIST_ON_BIN_61_BIT 16
#define HIST_ON_BIN_61_WID 16
#define HIST_ON_BIN_60_BIT 0
#define HIST_ON_BIN_60_WID 16
/* #define VDIN_DNLP_HIST31 0x1256 */
#define HIST_ON_BIN_63_BIT 16
#define HIST_ON_BIN_63_WID 16
#define HIST_ON_BIN_62_BIT 0
#define HIST_ON_BIN_62_WID 16
/* #define VDIN_LDIM_STTS_HIST_REGION_IDX 0x1257 */
#define LOCAL_DIM_STATISTIC_EN_BIT 31
#define LOCAL_DIM_STATISTIC_EN_WID 1
#define EOL_EN_BIT 28
#define EOL_EN_WID 1
#define VLINE_OVERLAP_NUMBER_BIT 25
#define VLINE_OVERLAP_NUMBER_WID 3
/* 0: 17 pix, 1: 9 pix, 2: 5 pix, 3: 3 pix, 4: 0 pix */
#define HLINE_OVERLAP_NUMBER_BIT 22
#define HLINE_OVERLAP_NUMBER_WID 3
#define LPF_BEFORE_STATISTIC_EN_BIT 20
#define LPF_BEFORE_STATISTIC_EN_WID 1
/* region H/V position index, refer to VDIN_LDIM_STTS_HIST_SET_REGION */
#define BLK_HV_POS_IDXS_BIT 16
#define BLK_HV_POS_IDXS_WID 4
#define REGION_RD_INDEX_INC_BIT 15
#define REGION_RD_INDEX_INC_WID 1
#define REGION_RD_INDEX_BIT 0
#define REGION_RD_INDEX_WID 7
/* # VDIN_LDIM_STTS_HIST_SET_REGION 0x1258 */
/* Bit 28:0, if VDIN_LDIM_STTS_HIST_REGION_IDX[19:16] == 5'h0:
* read/write hvstart0
*/
/* if VDIN_LDIM_STTS_HIST_REGION_IDX[19:16] == 5'h1: read/write hend01 */
/* if VDIN_LDIM_STTS_HIST_REGION_IDX[19:16] == 5'h2: read/write vend01 */
/* if VDIN_LDIM_STTS_HIST_REGION_IDX[19:16] == 5'h3: read/write hend23 */
/* if VDIN_LDIM_STTS_HIST_REGION_IDX[19:16] == 5'h4: read/write vend23 */
/* if VDIN_LDIM_STTS_HIST_REGION_IDX[19:16] == 5'h5: read/write hend45 */
/* if VDIN_LDIM_STTS_HIST_REGION_IDX[19:16] == 5'h6: read/write vend45 */
/* if VDIN_LDIM_STTS_HIST_REGION_IDX[19:16] == 5'd7: read/write hend67 */
/* if VDIN_LDIM_STTS_HIST_REGION_IDX[19:16] == 5'h8: read/write vend67 */
/* if VDIN_LDIM_STTS_HIST_REGION_IDX[19:16] == 5'h9: read/write hend89 */
/* if VDIN_LDIM_STTS_HIST_REGION_IDX[19:16] == 5'ha: read/write vend89 */
/* hvstart0, Bit 28:16 row0 vstart, Bit 12:0 col0 hstart */
/* hend01, Bit 28:16 col1 hend, Bit 12:0 col0 hend */
/* vend01, Bit 28:16 row1 vend, Bit 12:0 row0 vend */
/* hend23, Bit 28:16 col3 hend, Bit 12:0 col2 hend */
/* vend23, Bit 28:16 row3 vend, Bit 12:0 row2 vend */
/* hend45, Bit 28:16 col5 hend, Bit 12:0 col4 hend */
/* vend45, Bit 28:16 row5 vend, Bit 12:0 row4 vend */
/* hend67, Bit 28:16 col7 hend, Bit 12:0 col6 hend */
/* vend67, Bit 28:16 row7 vend, Bit 12:0 row6 vend */
/* hend89, Bit 28:16 col9 hend, Bit 12:0 col8 hend */
/* vend89, Bit 28:16 row9 vend, Bit 12:0 row8 vend */
#define HI_16_28_BIT 16
#define HI_16_28_WID 13
#define LOW_0_12_BIT 0
#define LOW_0_12_WID 13
/* #define VDIN_LDIM_STTS_HIST_READ_REGION 0x1259 */
/* REGION STATISTIC DATA READ OUT PORT, */
#define MAX_COMP2_BIT 20
#define MAX_COMP2_WID 10
#define MAX_COMP1_BIT 10
#define MAX_COMP1_WID 10
#define MAX_COMP0_BIT 0
#define MAX_COMP0_WID 10
/* #define VDIN_MEAS_CTRL0 0x125a */
/* write 1 & then 0 to reset */
#define MEAS_RST_BIT 18
#define MEAS_RST_WID 1
/* make hs ,vs at lest 12 pulse wide */
#define MEAS_WIDEN_HS_VS_EN_BIT 17
#define MEAS_WIDEN_HS_VS_EN_WID 1
/* vsync total counter always accumulating enable */
#define MEAS_VS_TOTAL_CNT_EN_BIT 16
#define MEAS_VS_TOTAL_CNT_EN_WID 1
/* 0: null, 1: vdi1, 2: vdi2, 3: vdi3, 4:vdi4,
* 5:vdi5,for m6 6:vdi6,7:vdi7 8:vdi8-isp
*/
#define MEAS_HS_VS_SEL_BIT 12
#define MEAS_HS_VS_SEL_WID 4
/* define how many VS span need to measure */
#define MEAS_VS_SPAN_BIT 4
#define MEAS_VS_SPAN_WID 8
/* select which HS counter/range */
#define MEAS_HS_INDEX_BIT 0
#define MEAS_HS_INDEX_WID 3
/* #define VDIN_MEAS_VS_COUNT_HI 0x125b // read only */
/* after every VDIN_MEAS_VS_SPAN number of VS pulses,
* VDIN_MEAS_IND_TOTAL_COUNT_N++
*/
#define MEAS_IND_VS_TOTAL_CNT_N_BIT 16
#define MEAS_IND_VS_TOTAL_CNT_N_WID 4
#define MEAS_VS_TOTAL_CNT_HI_BIT 0 /* vsync_total_counter[47:32] */
#define MEAS_VS_TOTAL_CNT_HI_WID 16
/* #define VDIN_MEAS_VS_COUNT_LO 0x125c // read only */
#define MEAS_VS_TOTAL_CNT_LO_BIT 0 /* vsync_total_counter[31:0] */
#define MEAS_VS_TOTAL_CNT_LO_WID 32
/* 1st/2nd/3rd/4th hs range according to VDIN_MEAS_HS_INDEX */
/* #define VDIN_MEAS_HS_RANGE 0x125d */
#define MEAS_HS_RANGE_CNT_START_BIT 16
#define MEAS_HS_RANGE_CNT_START_WID 13
#define MEAS_HS_RANGE_CNT_END_BIT 0
#define MEAS_HS_RANGE_CNT_END_WID 13
/* hs count as per 1st/2nd/3rd/4th hs range according to VDIN_MEAS_HS_INDEX */
/* #define VDIN_MEAS_HS_COUNT 0x125e // read only */
#define MEAS_HS_CNT_BIT 0
#define MEAS_HS_CNT_WID 24
/* #define VDIN_BLKBAR_CTRL1 0x125f */
#define BLKBAR_WHITE_EN_BIT 8
#define BLKBAR_WHITE_EN_WID 1
#define BLKBAR_WHITE_LVL_BIT 0
#define BLKBAR_WHITE_LVL_WID 8
/* #define VDIN_BLKBAR_CTRL0 0x1260 */
/* threshold to judge a black point */
#define BLKBAR_BLK_LVL_BIT 24
#define BLKBAR_BLK_LVL_WID 8
/* left and right region width */
#define BLKBAR_H_WIDTH_BIT 8
#define BLKBAR_H_WIDTH_WID 13
/* select yin or uin or vin to be the valid input */
#define BLKBAR_COMP_SEL_BIT 5
#define BLKBAR_COMP_SEL_WID 3
/* sw statistic of black pixels of each block,
*1: search once, 0: search continuously till the exact edge
*/
#define BLKBAR_SW_STAT_EN_BIT 4
#define BLKBAR_SW_STAT_EN_WID 1
#define BLKBAR_DET_SOFT_RST_N_BIT 3
#define BLKBAR_DET_SOFT_RST_N_WID 1 /* write 0 & then 1 to reset */
/* 0: matrix_dout, 1: hscaler_dout, 2/3: pre-hscaler_din */
#define BLKBAR_DIN_SEL_BIT 1
#define BLKBAR_DIN_SEL_WID 2
/* blkbar_din_srdy blkbar_din_rrdy enable */
#define BLKBAR_DET_TOP_EN_BIT 0
#define BLKBAR_DET_TOP_EN_WID 1
/* #define VDIN_BLKBAR_H_START_END 0x1261 */
#define BLKBAR_HSTART_BIT 16
#define BLKBAR_HSTART_WID 13 /* Left region start */
#define BLKBAR_HEND_BIT 0
#define BLKBAR_HEND_WID 13 /* Right region end */
/* #define VDIN_BLKBAR_V_START_END 0x1262 */
#define BLKBAR_VSTART_BIT 16
#define BLKBAR_VSTART_WID 13
#define BLKBAR_VEND_BIT 0
#define BLKBAR_VEND_WID 13
/* #define VDIN_BLKBAR_CNT_THRESHOLD 0x1263 */
/* black pixel number threshold to judge whether a block is totally black */
#define BLKBAR_CNT_TH_BIT 0
#define BLKBAR_CNT_TH_WID 20
/* #define VDIN_BLKBAR_ROW_TH1_TH2 0x1264 */
/* white pixel number threshold of black line on top */
#define BLKBAR_ROW_TH1_BIT 16
#define BLKBAR_ROW_TH1_WID 13
/* white pixel number threshold of black line on bottom */
#define BLKBAR_ROW_TH2_BIT 0
#define BLKBAR_ROW_TH2_WID 13
/* #define VDIN_BLKBAR_IND_LEFT_START_END 0x1265 */
#define BLKBAR_LEFT_HSTART_BIT 16
#define BLKBAR_LEFT_HSTART_WID 13
#define BLKBAR_LEFT_HEND_BIT 0
#define BLKBAR_LEFT_HEND_WID 13
/* #define VDIN_BLKBAR_IND_RIGHT_START_END 0x1266 */
#define BLKBAR_RIGHT_HSTART_BIT 16
#define BLKBAR_RIGHT_HSTART_WID 13
#define BLKBAR_RIGHT_HEND_BIT 0
#define BLKBAR_RIGHT_HEND_WID 13
/* #define VDIN_BLKBAR_IND_LEFT1_CNT 0x1267 */
/* Black pixels at left part of the left region */
#define BLKBAR_LEFT1_CNT_BIT 0
#define BLKBAR_LEFT1_CNT_WID 20
/* #define VDIN_BLKBAR_IND_LEFT2_CNT 0x1268 */
/* Black pixels at right part of the left region */
#define BLKBAR_LEFT2_CNT_BIT 0
#define BLKBAR_LEFT2_CNT_WID 20
/* #define VDIN_BLKBAR_IND_RIGHT1_CNT 0x1269 */
/* Black pixels at right part of the left region */
#define BLKBAR_RIGHT1_CNT_BIT 0
#define BLKBAR_RIGHT1_CNT_WID 20
/* #define VDIN_BLKBAR_IND_RIGHT2_CNT 0x126a */
/* Black pixels at right part of the right region */
#define BLKBAR_RIGHT2_CNT_BIT 0
#define BLKBAR_RIGHT2_CNT_WID 20
/* #define VDIN_BLKBAR_STATUS0 0x126b */
/* LEFT/RIGHT Black Bar detection done */
#define BLKBAR_DET_DONE_BIT 29
#define BLKBAR_DET_DONE_WID 1
#define BLKBAR_TOP_POS_BIT 16
#define BLKBAR_TOP_POS_WID 13
#define BLKBAR_BTM_POS_BIT 0
#define BLKBAR_BTM_POS_WID 13
/* #define VDIN_BLKBAR_STATUS1 0x126c */
#define BLKBAR_LEFT_POS_BIT 16
#define BLKBAR_LEFT_POS_WID 13
#define BLKBAR_RIGHT_POS_BIT 0
#define BLKBAR_RIGHT_POS_WID 13
/* #define VDIN_WIN_H_START_END 0x126d */
#define INPUT_WIN_H_START_BIT 16
#define INPUT_WIN_H_START_WID 13
#define INPUT_WIN_H_END_BIT 0
#define INPUT_WIN_H_END_WID 13
/* #define VDIN_WIN_V_START_END 0x126e */
#define INPUT_WIN_V_START_BIT 16
#define INPUT_WIN_V_START_WID 13
#define INPUT_WIN_V_END_BIT 0
#define INPUT_WIN_V_END_WID 13
/* Bit 15:8 vdi7 asfifo_ctrl */
/* Bit 7:0 vdi6 asfifo_ctrl */
/* #define VDIN_ASFIFO_CTRL3 0x126f */
#define VDI9_ASFIFO_CTRL_BIT 24
#define VDI9_ASFIFO_CTRL_WID 8
#define VDI8_ASFIFO_CTRL_BIT 16
#define VDI8_ASFIFO_CTRL_WID 8
#define VDI7_ASFIFO_CTRL_BIT 8
#define VDI7_ASFIFO_CTRL_WID 8
#define VDI6_ASFIFO_CTRL_BIT 0
#define VDI6_ASFIFO_CTRL_WID 8
#define VDIN_VSHRK_EN_BIT 27
#define VDIN_VSHRK_EN_WID 1
#define VDIN_VSHRK_LPF_MODE_BIT 24
#define VDIN_VSHRK_LPF_MODE_WID 1
#define VDIN_VSHRK_MODE_BIT 25
#define VDIN_VSHRK_MODE_WID 2
/* Bit 3:2 vshrk_clk2_ctrl */
/* Bit 1:0 vshrk_clk1_ctrl */
/* #define VDIN_COM_GCLK_CTRL2 ((0x1270 << 2) + 0xd0100000) */
/* Bit 27 vshrk_en */
/* Bit 26:25 vshrk_mode */
/* Bit 24 vshrk_lpf_mode */
/* Bit 23:0 vshrk_dummy */
/* #define VDIN_VSHRK_CTRL ((0x1271 << 2) + 0xd0100000) */
/* #define VDIN_DNLP_HIST32 ((0x1272 << 2) + 0xd0100000) */
/* Read only */
/* Bit 7, vdi9 fifo overflow */
/* Bit 5:0, vdi9_asfifo_cnt */
/* #define VDIN_COM_STATUS3 ((0x1273 << 2) + 0xd0100000) */
#define VDIN_FORCEGOLINE_EN_BIT 28
#define VDIN_WRREQUEST_EN_BT 8
#define VDIN_WRCTRLREG_PAUSE_BIT 10
/*#define VDIN_INTF_WIDTHM1*/
#define VDIN_FIX_NONSTDVSYNC_BIT 24
#define VDIN_FIX_NONSTDVSYNC_WID 2
/*#define VPU_ARB_URG_CTRL*/
#define VDIN_LFF_URG_CTRL_BIT 8
#define VDIN_LFF_URG_CTRL_WID 1
#define VPP_OFF_URG_CTRL_BIT 6
#define VPP_OFF_URG_CTRL_WID 1
/*#define VDIN_COM_CTRL0*/
#define VDIN_COMMONINPUT_EN_BIT 4
#define VDIN_COMMONINPUT_EN_WID 1
/*#define VDIN_WR_CTRL*/
#define VDIN0_VCP_WR_EN_BIT 25
#define VDIN0_VCP_WR_EN_WID 1
#define VDIN0_DISABLE_CLOCKGATE_BIT 29
#define VDIN0_DISABLE_CLOCKGATE_WID 1
/*#define VDIN1_WR_CTRL*/
#define VDIN1_VCP_WR_EN_BIT 8
#define VDIN1_VCP_WR_EN_WID 1
#define VDIN1_DISABLE_CLOCKGATE_BIT 29
#define VDIN1_DISABLE_CLOCKGATE_WID 1
#endif /* __VDIN_REGS_H */