blob: 06bcc95ac961432997bddc909d8862769ad58ea3 [file] [log] [blame]
// ----------------------------------------------------------------------
// regs.h header
//
// bus base define, update manually
//
// ----------------------------------------------------------------------
//
#ifndef _BASE_REGISTER
#define _BASE_REGISTER
#define REG_BASE_AOBUS (0xFF800000L)
#define REG_BASE_PERIPHS (0xFF634000L)
#define REG_BASE_CBUS (0xFFD00000L)
#define REG_BASE_HIU (0xFF63C000L)
#define REG_BASE_VCBUS (0xFF900000L)
#define DMC_REG_BASE (0xFF638000L)
#define REG_BASE_DSI_HOST (0xFFD00000L)/* 0xFFD07000L*/
#endif /*_BASE_REGISTER*/
#ifndef REG_OTHERS
#define REG_OTHERS
/* other regs */
#define SPI_START_ADDR 0xFB000000
#define P_SPI_START_ADDR (volatile unsigned int *)0xFB000000
#endif /*REG_OTHERS*/
// ----------------------------------------------------------------------
// This file is automatically generated from the script:
//
// ./create_headers_from_register_map_h.pl
//
// and was applied to the file
//
// ./register_map.h
//
// DO NOT EDIT!!!!!
// ----------------------------------------------------------------------
//
#ifdef REGISTER_H
#else
#define REGISTER_H
#endif
// ----------------------------------------------------------------------
// This file is automatically generated from the script:
//
// ./create_headers_from_dos_params_h.pl
//
// and was applied to the file
//
// ./dos_param.h
//
// DO NOT EDIT!!!!!
// ----------------------------------------------------------------------
//
#ifdef DOS_REGISTER_H
#else
#define DOS_REGISTER_H
//
// Reading file: ./dos_param.h
//
//------------------------------------------------------------------------------
// Define all modules' base address under DOS
// APB allocation from 32'hd0050000
//------------------------------------------------------------------------------
// Define base address for VDEC module under DOS:
// DOS_VDEC_ASSIST_BASE_ADDR 14'h0000
// DOS_VDEC_MDEC_BASE_ADDR 14'h0900
// DOS_VDEC_VLD_BASE_ADDR 14'h0c00
// DOS_VDEC_IQIDCT_BASE_ADDR 14'h0e00
// DOS_VDEC_VCPU_BASE_ADDR 14'h0300
// DOS_VDEC_RESERVED_BASE_ADDR 14'h0f00 // Do not use this offset
// Define base address for DOS top-level register module:
// DOS_TOP_BASE_ADDR 14'h3f00
//------------------------------------------------------------------------------
// VDEC_ASSIST module level register offset
//------------------------------------------------------------------------------
// -----------------------------------------------
// CBUS_BASE: DOS_VDEC_ASSIST_CBUS_BASE = 0x00
// -----------------------------------------------
#define VDEC_ASSIST_MMC_CTRL0 (0x0001)
#define P_VDEC_ASSIST_MMC_CTRL0 (volatile unsigned int *)((0x0001 << 2) + 0xff620000)
#define VDEC_ASSIST_MMC_CTRL1 (0x0002)
#define P_VDEC_ASSIST_MMC_CTRL1 (volatile unsigned int *)((0x0002 << 2) + 0xff620000)
#define VDEC_ASSIST_MMC_CTRL2 (0x0003)
#define P_VDEC_ASSIST_MMC_CTRL2 (volatile unsigned int *)((0x0003 << 2) + 0xff620000)
#define VDEC_ASSIST_MMC_CTRL3 (0x0004)
#define P_VDEC_ASSIST_MMC_CTRL3 (volatile unsigned int *)((0x0004 << 2) + 0xff620000)
#define VDEC_ASSIST_AMR1_INT0 (0x0025)
#define P_VDEC_ASSIST_AMR1_INT0 (volatile unsigned int *)((0x0025 << 2) + 0xff620000)
#define VDEC_ASSIST_AMR1_INT1 (0x0026)
#define P_VDEC_ASSIST_AMR1_INT1 (volatile unsigned int *)((0x0026 << 2) + 0xff620000)
#define VDEC_ASSIST_AMR1_INT2 (0x0027)
#define P_VDEC_ASSIST_AMR1_INT2 (volatile unsigned int *)((0x0027 << 2) + 0xff620000)
#define VDEC_ASSIST_AMR1_INT3 (0x0028)
#define P_VDEC_ASSIST_AMR1_INT3 (volatile unsigned int *)((0x0028 << 2) + 0xff620000)
#define VDEC_ASSIST_AMR1_INT4 (0x0029)
#define P_VDEC_ASSIST_AMR1_INT4 (volatile unsigned int *)((0x0029 << 2) + 0xff620000)
#define VDEC_ASSIST_AMR1_INT5 (0x002a)
#define P_VDEC_ASSIST_AMR1_INT5 (volatile unsigned int *)((0x002a << 2) + 0xff620000)
#define VDEC_ASSIST_AMR1_INT6 (0x002b)
#define P_VDEC_ASSIST_AMR1_INT6 (volatile unsigned int *)((0x002b << 2) + 0xff620000)
#define VDEC_ASSIST_AMR1_INT7 (0x002c)
#define P_VDEC_ASSIST_AMR1_INT7 (volatile unsigned int *)((0x002c << 2) + 0xff620000)
#define VDEC_ASSIST_AMR1_INT8 (0x002d)
#define P_VDEC_ASSIST_AMR1_INT8 (volatile unsigned int *)((0x002d << 2) + 0xff620000)
#define VDEC_ASSIST_AMR1_INT9 (0x002e)
#define P_VDEC_ASSIST_AMR1_INT9 (volatile unsigned int *)((0x002e << 2) + 0xff620000)
#define VDEC_ASSIST_AMR1_INTA (0x002f)
#define P_VDEC_ASSIST_AMR1_INTA (volatile unsigned int *)((0x002f << 2) + 0xff620000)
#define VDEC_ASSIST_AMR1_INTB (0x0030)
#define P_VDEC_ASSIST_AMR1_INTB (volatile unsigned int *)((0x0030 << 2) + 0xff620000)
#define VDEC_ASSIST_AMR1_INTC (0x0031)
#define P_VDEC_ASSIST_AMR1_INTC (volatile unsigned int *)((0x0031 << 2) + 0xff620000)
#define VDEC_ASSIST_AMR1_INTD (0x0032)
#define P_VDEC_ASSIST_AMR1_INTD (volatile unsigned int *)((0x0032 << 2) + 0xff620000)
#define VDEC_ASSIST_AMR1_INTE (0x0033)
#define P_VDEC_ASSIST_AMR1_INTE (volatile unsigned int *)((0x0033 << 2) + 0xff620000)
#define VDEC_ASSIST_AMR1_INTF (0x0034)
#define P_VDEC_ASSIST_AMR1_INTF (volatile unsigned int *)((0x0034 << 2) + 0xff620000)
#define VDEC_ASSIST_AMR2_INT0 (0x0035)
#define P_VDEC_ASSIST_AMR2_INT0 (volatile unsigned int *)((0x0035 << 2) + 0xff620000)
#define VDEC_ASSIST_AMR2_INT1 (0x0036)
#define P_VDEC_ASSIST_AMR2_INT1 (volatile unsigned int *)((0x0036 << 2) + 0xff620000)
#define VDEC_ASSIST_AMR2_INT2 (0x0037)
#define P_VDEC_ASSIST_AMR2_INT2 (volatile unsigned int *)((0x0037 << 2) + 0xff620000)
#define VDEC_ASSIST_AMR2_INT3 (0x0038)
#define P_VDEC_ASSIST_AMR2_INT3 (volatile unsigned int *)((0x0038 << 2) + 0xff620000)
#define VDEC_ASSIST_AMR2_INT4 (0x0039)
#define P_VDEC_ASSIST_AMR2_INT4 (volatile unsigned int *)((0x0039 << 2) + 0xff620000)
#define VDEC_ASSIST_AMR2_INT5 (0x003a)
#define P_VDEC_ASSIST_AMR2_INT5 (volatile unsigned int *)((0x003a << 2) + 0xff620000)
#define VDEC_ASSIST_AMR2_INT6 (0x003b)
#define P_VDEC_ASSIST_AMR2_INT6 (volatile unsigned int *)((0x003b << 2) + 0xff620000)
#define VDEC_ASSIST_AMR2_INT7 (0x003c)
#define P_VDEC_ASSIST_AMR2_INT7 (volatile unsigned int *)((0x003c << 2) + 0xff620000)
#define VDEC_ASSIST_AMR2_INT8 (0x003d)
#define P_VDEC_ASSIST_AMR2_INT8 (volatile unsigned int *)((0x003d << 2) + 0xff620000)
#define VDEC_ASSIST_AMR2_INT9 (0x003e)
#define P_VDEC_ASSIST_AMR2_INT9 (volatile unsigned int *)((0x003e << 2) + 0xff620000)
#define VDEC_ASSIST_AMR2_INTA (0x003f)
#define P_VDEC_ASSIST_AMR2_INTA (volatile unsigned int *)((0x003f << 2) + 0xff620000)
#define VDEC_ASSIST_AMR2_INTB (0x0040)
#define P_VDEC_ASSIST_AMR2_INTB (volatile unsigned int *)((0x0040 << 2) + 0xff620000)
#define VDEC_ASSIST_AMR2_INTC (0x0041)
#define P_VDEC_ASSIST_AMR2_INTC (volatile unsigned int *)((0x0041 << 2) + 0xff620000)
#define VDEC_ASSIST_AMR2_INTD (0x0042)
#define P_VDEC_ASSIST_AMR2_INTD (volatile unsigned int *)((0x0042 << 2) + 0xff620000)
#define VDEC_ASSIST_AMR2_INTE (0x0043)
#define P_VDEC_ASSIST_AMR2_INTE (volatile unsigned int *)((0x0043 << 2) + 0xff620000)
#define VDEC_ASSIST_AMR2_INTF (0x0044)
#define P_VDEC_ASSIST_AMR2_INTF (volatile unsigned int *)((0x0044 << 2) + 0xff620000)
#define VDEC_ASSIST_MBX_SSEL (0x0045)
#define P_VDEC_ASSIST_MBX_SSEL (volatile unsigned int *)((0x0045 << 2) + 0xff620000)
#define VDEC_ASSIST_TIMER0_LO (0x0060)
#define P_VDEC_ASSIST_TIMER0_LO (volatile unsigned int *)((0x0060 << 2) + 0xff620000)
#define VDEC_ASSIST_TIMER0_HI (0x0061)
#define P_VDEC_ASSIST_TIMER0_HI (volatile unsigned int *)((0x0061 << 2) + 0xff620000)
#define VDEC_ASSIST_TIMER1_LO (0x0062)
#define P_VDEC_ASSIST_TIMER1_LO (volatile unsigned int *)((0x0062 << 2) + 0xff620000)
#define VDEC_ASSIST_TIMER1_HI (0x0063)
#define P_VDEC_ASSIST_TIMER1_HI (volatile unsigned int *)((0x0063 << 2) + 0xff620000)
#define VDEC_ASSIST_DMA_INT (0x0064)
#define P_VDEC_ASSIST_DMA_INT (volatile unsigned int *)((0x0064 << 2) + 0xff620000)
#define VDEC_ASSIST_DMA_INT_MSK (0x0065)
#define P_VDEC_ASSIST_DMA_INT_MSK (volatile unsigned int *)((0x0065 << 2) + 0xff620000)
#define VDEC_ASSIST_DMA_INT2 (0x0066)
#define P_VDEC_ASSIST_DMA_INT2 (volatile unsigned int *)((0x0066 << 2) + 0xff620000)
#define VDEC_ASSIST_DMA_INT_MSK2 (0x0067)
#define P_VDEC_ASSIST_DMA_INT_MSK2 (volatile unsigned int *)((0x0067 << 2) + 0xff620000)
#define VDEC_ASSIST_MBOX0_IRQ_REG (0x0070)
#define P_VDEC_ASSIST_MBOX0_IRQ_REG (volatile unsigned int *)((0x0070 << 2) + 0xff620000)
#define VDEC_ASSIST_MBOX0_CLR_REG (0x0071)
#define P_VDEC_ASSIST_MBOX0_CLR_REG (volatile unsigned int *)((0x0071 << 2) + 0xff620000)
#define VDEC_ASSIST_MBOX0_MASK (0x0072)
#define P_VDEC_ASSIST_MBOX0_MASK (volatile unsigned int *)((0x0072 << 2) + 0xff620000)
#define VDEC_ASSIST_MBOX0_FIQ_SEL (0x0073)
#define P_VDEC_ASSIST_MBOX0_FIQ_SEL (volatile unsigned int *)((0x0073 << 2) + 0xff620000)
#define VDEC_ASSIST_MBOX1_IRQ_REG (0x0074)
#define P_VDEC_ASSIST_MBOX1_IRQ_REG (volatile unsigned int *)((0x0074 << 2) + 0xff620000)
#define VDEC_ASSIST_MBOX1_CLR_REG (0x0075)
#define P_VDEC_ASSIST_MBOX1_CLR_REG (volatile unsigned int *)((0x0075 << 2) + 0xff620000)
#define VDEC_ASSIST_MBOX1_MASK (0x0076)
#define P_VDEC_ASSIST_MBOX1_MASK (volatile unsigned int *)((0x0076 << 2) + 0xff620000)
#define VDEC_ASSIST_MBOX1_FIQ_SEL (0x0077)
#define P_VDEC_ASSIST_MBOX1_FIQ_SEL (volatile unsigned int *)((0x0077 << 2) + 0xff620000)
#define VDEC_ASSIST_MBOX2_IRQ_REG (0x0078)
#define P_VDEC_ASSIST_MBOX2_IRQ_REG (volatile unsigned int *)((0x0078 << 2) + 0xff620000)
#define VDEC_ASSIST_MBOX2_CLR_REG (0x0079)
#define P_VDEC_ASSIST_MBOX2_CLR_REG (volatile unsigned int *)((0x0079 << 2) + 0xff620000)
#define VDEC_ASSIST_MBOX2_MASK (0x007a)
#define P_VDEC_ASSIST_MBOX2_MASK (volatile unsigned int *)((0x007a << 2) + 0xff620000)
#define VDEC_ASSIST_MBOX2_FIQ_SEL (0x007b)
#define P_VDEC_ASSIST_MBOX2_FIQ_SEL (volatile unsigned int *)((0x007b << 2) + 0xff620000)
//------------------------------------------------------------------------------
// VDEC2_ASSIST module level register offset
//------------------------------------------------------------------------------
// -----------------------------------------------
// CBUS_BASE: DOS_VDEC2_ASSIST_CBUS_BASE = 0x00
// -----------------------------------------------
#define VDEC2_ASSIST_MMC_CTRL0 (0x2001)
#define P_VDEC2_ASSIST_MMC_CTRL0 (volatile unsigned int *)((0x2001 << 2) + 0xff620000)
#define VDEC2_ASSIST_MMC_CTRL1 (0x2002)
#define P_VDEC2_ASSIST_MMC_CTRL1 (volatile unsigned int *)((0x2002 << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR1_INT0 (0x2025)
#define P_VDEC2_ASSIST_AMR1_INT0 (volatile unsigned int *)((0x2025 << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR1_INT1 (0x2026)
#define P_VDEC2_ASSIST_AMR1_INT1 (volatile unsigned int *)((0x2026 << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR1_INT2 (0x2027)
#define P_VDEC2_ASSIST_AMR1_INT2 (volatile unsigned int *)((0x2027 << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR1_INT3 (0x2028)
#define P_VDEC2_ASSIST_AMR1_INT3 (volatile unsigned int *)((0x2028 << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR1_INT4 (0x2029)
#define P_VDEC2_ASSIST_AMR1_INT4 (volatile unsigned int *)((0x2029 << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR1_INT5 (0x202a)
#define P_VDEC2_ASSIST_AMR1_INT5 (volatile unsigned int *)((0x202a << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR1_INT6 (0x202b)
#define P_VDEC2_ASSIST_AMR1_INT6 (volatile unsigned int *)((0x202b << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR1_INT7 (0x202c)
#define P_VDEC2_ASSIST_AMR1_INT7 (volatile unsigned int *)((0x202c << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR1_INT8 (0x202d)
#define P_VDEC2_ASSIST_AMR1_INT8 (volatile unsigned int *)((0x202d << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR1_INT9 (0x202e)
#define P_VDEC2_ASSIST_AMR1_INT9 (volatile unsigned int *)((0x202e << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR1_INTA (0x202f)
#define P_VDEC2_ASSIST_AMR1_INTA (volatile unsigned int *)((0x202f << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR1_INTB (0x2030)
#define P_VDEC2_ASSIST_AMR1_INTB (volatile unsigned int *)((0x2030 << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR1_INTC (0x2031)
#define P_VDEC2_ASSIST_AMR1_INTC (volatile unsigned int *)((0x2031 << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR1_INTD (0x2032)
#define P_VDEC2_ASSIST_AMR1_INTD (volatile unsigned int *)((0x2032 << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR1_INTE (0x2033)
#define P_VDEC2_ASSIST_AMR1_INTE (volatile unsigned int *)((0x2033 << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR1_INTF (0x2034)
#define P_VDEC2_ASSIST_AMR1_INTF (volatile unsigned int *)((0x2034 << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR2_INT0 (0x2035)
#define P_VDEC2_ASSIST_AMR2_INT0 (volatile unsigned int *)((0x2035 << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR2_INT1 (0x2036)
#define P_VDEC2_ASSIST_AMR2_INT1 (volatile unsigned int *)((0x2036 << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR2_INT2 (0x2037)
#define P_VDEC2_ASSIST_AMR2_INT2 (volatile unsigned int *)((0x2037 << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR2_INT3 (0x2038)
#define P_VDEC2_ASSIST_AMR2_INT3 (volatile unsigned int *)((0x2038 << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR2_INT4 (0x2039)
#define P_VDEC2_ASSIST_AMR2_INT4 (volatile unsigned int *)((0x2039 << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR2_INT5 (0x203a)
#define P_VDEC2_ASSIST_AMR2_INT5 (volatile unsigned int *)((0x203a << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR2_INT6 (0x203b)
#define P_VDEC2_ASSIST_AMR2_INT6 (volatile unsigned int *)((0x203b << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR2_INT7 (0x203c)
#define P_VDEC2_ASSIST_AMR2_INT7 (volatile unsigned int *)((0x203c << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR2_INT8 (0x203d)
#define P_VDEC2_ASSIST_AMR2_INT8 (volatile unsigned int *)((0x203d << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR2_INT9 (0x203e)
#define P_VDEC2_ASSIST_AMR2_INT9 (volatile unsigned int *)((0x203e << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR2_INTA (0x203f)
#define P_VDEC2_ASSIST_AMR2_INTA (volatile unsigned int *)((0x203f << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR2_INTB (0x2040)
#define P_VDEC2_ASSIST_AMR2_INTB (volatile unsigned int *)((0x2040 << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR2_INTC (0x2041)
#define P_VDEC2_ASSIST_AMR2_INTC (volatile unsigned int *)((0x2041 << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR2_INTD (0x2042)
#define P_VDEC2_ASSIST_AMR2_INTD (volatile unsigned int *)((0x2042 << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR2_INTE (0x2043)
#define P_VDEC2_ASSIST_AMR2_INTE (volatile unsigned int *)((0x2043 << 2) + 0xff620000)
#define VDEC2_ASSIST_AMR2_INTF (0x2044)
#define P_VDEC2_ASSIST_AMR2_INTF (volatile unsigned int *)((0x2044 << 2) + 0xff620000)
#define VDEC2_ASSIST_MBX_SSEL (0x2045)
#define P_VDEC2_ASSIST_MBX_SSEL (volatile unsigned int *)((0x2045 << 2) + 0xff620000)
#define VDEC2_ASSIST_TIMER0_LO (0x2060)
#define P_VDEC2_ASSIST_TIMER0_LO (volatile unsigned int *)((0x2060 << 2) + 0xff620000)
#define VDEC2_ASSIST_TIMER0_HI (0x2061)
#define P_VDEC2_ASSIST_TIMER0_HI (volatile unsigned int *)((0x2061 << 2) + 0xff620000)
#define VDEC2_ASSIST_TIMER1_LO (0x2062)
#define P_VDEC2_ASSIST_TIMER1_LO (volatile unsigned int *)((0x2062 << 2) + 0xff620000)
#define VDEC2_ASSIST_TIMER1_HI (0x2063)
#define P_VDEC2_ASSIST_TIMER1_HI (volatile unsigned int *)((0x2063 << 2) + 0xff620000)
#define VDEC2_ASSIST_DMA_INT (0x2064)
#define P_VDEC2_ASSIST_DMA_INT (volatile unsigned int *)((0x2064 << 2) + 0xff620000)
#define VDEC2_ASSIST_DMA_INT_MSK (0x2065)
#define P_VDEC2_ASSIST_DMA_INT_MSK (volatile unsigned int *)((0x2065 << 2) + 0xff620000)
#define VDEC2_ASSIST_DMA_INT2 (0x2066)
#define P_VDEC2_ASSIST_DMA_INT2 (volatile unsigned int *)((0x2066 << 2) + 0xff620000)
#define VDEC2_ASSIST_DMA_INT_MSK2 (0x2067)
#define P_VDEC2_ASSIST_DMA_INT_MSK2 (volatile unsigned int *)((0x2067 << 2) + 0xff620000)
#define VDEC2_ASSIST_MBOX0_IRQ_REG (0x2070)
#define P_VDEC2_ASSIST_MBOX0_IRQ_REG (volatile unsigned int *)((0x2070 << 2) + 0xff620000)
#define VDEC2_ASSIST_MBOX0_CLR_REG (0x2071)
#define P_VDEC2_ASSIST_MBOX0_CLR_REG (volatile unsigned int *)((0x2071 << 2) + 0xff620000)
#define VDEC2_ASSIST_MBOX0_MASK (0x2072)
#define P_VDEC2_ASSIST_MBOX0_MASK (volatile unsigned int *)((0x2072 << 2) + 0xff620000)
#define VDEC2_ASSIST_MBOX0_FIQ_SEL (0x2073)
#define P_VDEC2_ASSIST_MBOX0_FIQ_SEL (volatile unsigned int *)((0x2073 << 2) + 0xff620000)
#define VDEC2_ASSIST_MBOX1_IRQ_REG (0x2074)
#define P_VDEC2_ASSIST_MBOX1_IRQ_REG (volatile unsigned int *)((0x2074 << 2) + 0xff620000)
#define VDEC2_ASSIST_MBOX1_CLR_REG (0x2075)
#define P_VDEC2_ASSIST_MBOX1_CLR_REG (volatile unsigned int *)((0x2075 << 2) + 0xff620000)
#define VDEC2_ASSIST_MBOX1_MASK (0x2076)
#define P_VDEC2_ASSIST_MBOX1_MASK (volatile unsigned int *)((0x2076 << 2) + 0xff620000)
#define VDEC2_ASSIST_MBOX1_FIQ_SEL (0x2077)
#define P_VDEC2_ASSIST_MBOX1_FIQ_SEL (volatile unsigned int *)((0x2077 << 2) + 0xff620000)
#define VDEC2_ASSIST_MBOX2_IRQ_REG (0x2078)
#define P_VDEC2_ASSIST_MBOX2_IRQ_REG (volatile unsigned int *)((0x2078 << 2) + 0xff620000)
#define VDEC2_ASSIST_MBOX2_CLR_REG (0x2079)
#define P_VDEC2_ASSIST_MBOX2_CLR_REG (volatile unsigned int *)((0x2079 << 2) + 0xff620000)
#define VDEC2_ASSIST_MBOX2_MASK (0x207a)
#define P_VDEC2_ASSIST_MBOX2_MASK (volatile unsigned int *)((0x207a << 2) + 0xff620000)
#define VDEC2_ASSIST_MBOX2_FIQ_SEL (0x207b)
#define P_VDEC2_ASSIST_MBOX2_FIQ_SEL (volatile unsigned int *)((0x207b << 2) + 0xff620000)
//------------------------------------------------------------------------------
// HCODEC_ASSIST module level register offset
//------------------------------------------------------------------------------
// -----------------------------------------------
// CBUS_BASE: DOS_HCODEC_ASSIST_CBUS_BASE = 0x00
// -----------------------------------------------
#define HCODEC_ASSIST_MMC_CTRL0 (0x1001)
#define P_HCODEC_ASSIST_MMC_CTRL0 (volatile unsigned int *)((0x1001 << 2) + 0xff620000)
#define HCODEC_ASSIST_MMC_CTRL1 (0x1002)
#define P_HCODEC_ASSIST_MMC_CTRL1 (volatile unsigned int *)((0x1002 << 2) + 0xff620000)
#define HCODEC_ASSIST_MMC_CTRL2 (0x1003)
#define P_HCODEC_ASSIST_MMC_CTRL2 (volatile unsigned int *)((0x1003 << 2) + 0xff620000)
#define HCODEC_ASSIST_MMC_CTRL3 (0x1004)
#define P_HCODEC_ASSIST_MMC_CTRL3 (volatile unsigned int *)((0x1004 << 2) + 0xff620000)
//cfg_soft_rst = mfdin_reg0_crst[0]; // Soft Reset
//cfg_cg_cfe = mfdin_reg0_crst[1]; // Clock Gating Forcing Enable
//cfg_dbuf_rst = mfdin_reg0_crst[2]; // Reset DBUF information
#define HCODEC_MFDIN_REG0_CRST (0x1008)
#define P_HCODEC_MFDIN_REG0_CRST (volatile unsigned int *)((0x1008 << 2) + 0xff620000)
//cfg_iformat = mfdin_reg1_ctrl[3:0]; // Data In Format: 0 :CANVAS 422 YCbCr<-one canvas,
// 1 :CANVAS 444 YCbCr(or RGB)<-one canvas,
// 2 :CANVAS 420 Y<-one CrCb<-one (NV21)
// 3 :CANVAS 420 Y<-one CbCr<-one (NV12)
// 4 :CANVAS 420 Y<-one Cb<-one Cr<-one
// 5 :CANVAS 444 Y<-one Cb<-one Cr<-one
// 6 : Reserved for other canvas mode
// 7 : should combine with cfg_ifmt_extra, for 10-12bits
// 8 :LINEAR RGB888 (24bit)
// 9 :LINEAR RGB565 (16bit)
// 10:LINEAR YUV422
// 11:LINEAR YUV420 (Note:Legacy mode not supported)
// 12~15: Reserved for other linear mode
//cfg_oformat = mfdin_reg1_ctrl[5:4]; // Data Out Format: 0:420 1:422 2:444 3:reserved
//cfg_dsample_enable= mfdin_reg1_ctrl[6]; // Downsample Enable
//cfg_dsample_trunc = mfdin_reg1_ctrl[7]; // Downsample Addition Option: 0:Round 1:Truncated
//cfg_block_ysize = mfdin_reg1_ctrl[8]; // 0:block-y-size=16, 1:block-y-size=8(for JPEG's efficiency)
//cfg_interp_enable = mfdin_reg1_ctrl[9]; // Chroma Interpolation Enable
//cfg_interp_mode = mfdin_reg1_ctrl[11:10];// 0:average round 1:average truncated 2:repeat left 3:repeat right
//cfg_r2y_enable = mfdin_reg1_ctrl[12]; // RGb->YUV Enable
//cfg_r2y_mode = mfdin_reg1_ctrl[14:13];// RGb->YUV Mode
//cfg_rgb565_mode = mfdin_reg1_ctrl[15]; // RGB565 mode: 0:fill zero in tail 1:fill zero in head
//cfg_ifmt_extra = mfdin_reg1_ctrl[17:16];// when cfg_iformat==7,
// 0: CANVAS 12bit 422, YCbCr<-one canvas{...Y1[11:0],C1[11:0],Y0[11:0],C0[11:0]}
// 1: CANVAS 10bit 444, YCbCr<-one canvas{...2'b0,Y0[9:0],U0[9:0],V0[9:0]}
// 2: CANVAS 10bit 422, YCbCr<-one canvas{...Y1[9:0],C1[9:0],Y0[9:0],C0[9:0]}
//cfg_reserved1 = mfdin_reg1_ctrl[18]; // Reserved
//cfg_nr_enable = mfdin_reg1_ctrl[19]; // Noise Reduction Enable
//cfg_outofpic = mfdin_reg1_ctrl[28:20];// Out Of Picture Control: [8]mode:0:extend 1:fixed, [7:0]fixed value
//cfg_rd_blktype = mfdin_reg1_ctrl[30:29];// Block Type: 0:H264_I_PIC_ALL_4x4, 1:H264_P_PIC_Y_16x16_C_8x8, 2:JPEG_ALL_8x8, 3:Reserved
//cfg_rd_nonycintl = mfdin_reg1_ctrl[31]; // 0:YC interleaved 1:YC non-interleaved(for JPEG)
#define HCODEC_MFDIN_REG1_CTRL (0x1009)
#define P_HCODEC_MFDIN_REG1_CTRL (volatile unsigned int *)((0x1009 << 2) + 0xff620000)
//mfdin_reg2: DEBUG Only Status
#define HCODEC_MFDIN_REG2_STAT (0x100a)
#define P_HCODEC_MFDIN_REG2_STAT (volatile unsigned int *)((0x100a << 2) + 0xff620000)
//cfg_canvas_index0 = mfdin_reg3_canv[7:0]; //canvas index 0
//cfg_canvas_index1 = mfdin_reg3_canv[15:8]; //canvas index 1
//cfg_canvas_index2 = mfdin_reg3_canv[23:16];//canvas index 2
//cfg_canv_idx0_bppx = mfdin_reg3_canv[25:24];//canvas bytes per pixel in x direction for index0, 0:half 1:1 2:2 3:3
//cfg_canv_idx1_bppx = mfdin_reg3_canv[27:26];//canvas bytes per pixel in x direction for index1, 0:half 1:1 2:2 3:3
//cfg_canv_idx0_bppy = mfdin_reg3_canv[29:28];//canvas bytes per pixel in y direction for index0, 0:half 1:1 2:2 3:3
//cfg_canv_idx1_bppy = mfdin_reg3_canv[31:30];//canvas bytes per pixel in y direction for index1, 0:half 1:1 2:2 3:3
#define HCODEC_MFDIN_REG3_CANV (0x100b)
#define P_HCODEC_MFDIN_REG3_CANV (volatile unsigned int *)((0x100b << 2) + 0xff620000)
//cfg_bytes_per_line = mfdin_reg4_lnr0[15:0]; //linear Bytes per line
//cfg_linear_bytes4p = mfdin_reg4_lnr0[17:16]; //linear (Bytes per pixel) - 1
//cfg_linear_dbl2line = mfdin_reg4_lnr0[18]; //linear double size for odd line
#define HCODEC_MFDIN_REG4_LNR0 (0x100c)
#define P_HCODEC_MFDIN_REG4_LNR0 (volatile unsigned int *)((0x100c << 2) + 0xff620000)
//cfg_base_address = mfdin_reg5_lnr1[31:0]; //linear base address
#define HCODEC_MFDIN_REG5_LNR1 (0x100d)
#define P_HCODEC_MFDIN_REG5_LNR1 (volatile unsigned int *)((0x100d << 2) + 0xff620000)
//assign cfg_r2y_trunc = mfdin_reg6_dcfg[9]; //RGb->YUV Addition Option: 0:Round 1:Truncated
//assign cfg_dma_ugt = mfdin_reg6_dcfg[8]; //DMA Urgent
//assign cfg_dma_thread_id = mfdin_reg6_dcfg[7:6]; //DMA Thread ID
//assign cfg_dma_burst_num = mfdin_reg6_dcfg[5:0]; //DMA Burst Number
#define HCODEC_MFDIN_REG6_DCFG (0x100e)
#define P_HCODEC_MFDIN_REG6_DCFG (volatile unsigned int *)((0x100e << 2) + 0xff620000)
//cfg_soft_cmd = mfdin_reg7_scmd; // Soft Command [28]selfcleared start,[27:14]dmb_x,[13:0]dmb_y
#define HCODEC_MFDIN_REG7_SCMD (0x100f)
#define P_HCODEC_MFDIN_REG7_SCMD (volatile unsigned int *)((0x100f << 2) + 0xff620000)
//cfg_pic_xsize = mfdin_reg8_dmbl[23:12]; //pixel (x,y) at the begining of last dmb in the picturem, picture x size
//cfg_pic_ysize = mfdin_reg8_dmbl[11:0]; //picture y size
#define HCODEC_MFDIN_REG8_DMBL (0x1010)
#define P_HCODEC_MFDIN_REG8_DMBL (volatile unsigned int *)((0x1010 << 2) + 0xff620000)
//cfg_endian = mfdin_reg9_endn; //Endian Control
#define HCODEC_MFDIN_REG9_ENDN (0x1011)
#define P_HCODEC_MFDIN_REG9_ENDN (volatile unsigned int *)((0x1011 << 2) + 0xff620000)
//cfg_canv_biasx = mfdin_rega_cav1[23:12]; //canvas bias address x
//cfg_canv_biasy = mfdin_rega_cav1[11:0]; //canvas bias address y
#define HCODEC_MFDIN_REGA_CAV1 (0x1012)
#define P_HCODEC_MFDIN_REGA_CAV1 (volatile unsigned int *)((0x1012 << 2) + 0xff620000)
//cfg_amp_en = mfdin_regb_ampc[24]; //Amplitude Enable
//cfg_amp_cy = mfdin_regb_ampc[23:16]; //Amplitude Coeff Y
//cfg_amp_cu = mfdin_regb_ampc[15:8]; //Amplitude Coeff U
//cfg_amp_cv = mfdin_regb_ampc[7:0]; //Amplitude Coeff V
#define HCODEC_MFDIN_REGB_AMPC (0x1013)
#define P_HCODEC_MFDIN_REGB_AMPC (volatile unsigned int *)((0x1013 << 2) + 0xff620000)
//cfg_mb_end = mfdin_regc_mblp; // Soft Command [28]mb end enable,[27:14]dmb_x,[13:0]dmb_y
#define HCODEC_MFDIN_REGC_MBLP (0x1014)
#define P_HCODEC_MFDIN_REGC_MBLP (volatile unsigned int *)((0x1014 << 2) + 0xff620000)
// cfg_y_snr_en = mfdin_reg0d[0];
// cfg_y_snr_err_norm = mfdin_reg0d[1];
// [3:0] cfg_y_snr_gau_bld_core = mfdin_reg0d[5:2];
// [7:0] cfg_y_snr_gau_bld_ofst = mfdin_reg0d[13:6];
// [5:0] cfg_y_snr_gau_bld_rate = mfdin_reg0d[19:14];
// [5:0] cfg_y_snr_gau_alp0_min = mfdin_reg0d[25:20];
// [5:0] cfg_y_snr_gau_alp0_max = mfdin_reg0d[31:26];
#define HCODEC_MFDIN_REG0D (0x1015)
#define P_HCODEC_MFDIN_REG0D (volatile unsigned int *)((0x1015 << 2) + 0xff620000)
// cfg_y_tnr_en = mfdin_reg0e[0];
// cfg_y_tnr_mc_en = mfdin_reg0e[1];
// cfg_y_tnr_txt_mode = mfdin_reg0e[2];
// [3:0] cfg_y_tnr_mot_sad_margin = mfdin_reg0e[6:3];
// [5:0] cfg_y_tnr_alpha_min = mfdin_reg0e[12:7];
// [5:0] cfg_y_tnr_alpha_max = mfdin_reg0e[18:13];
// [5:0] cfg_y_tnr_deghost_os = mfdin_reg0e[24:19];
#define HCODEC_MFDIN_REG0E (0x1016)
#define P_HCODEC_MFDIN_REG0E (volatile unsigned int *)((0x1016 << 2) + 0xff620000)
// [3:0] cfg_y_tnr_mot_cortxt_rate = mfdin_reg0f[3:0];
// [7:0] cfg_y_tnr_mot_distxt_ofst = mfdin_reg0f[15:8];
// [3:0] cfg_y_tnr_mot_distxt_rate = mfdin_reg0f[7:4];
// [7:0] cfg_y_tnr_mot_dismot_ofst = mfdin_reg0f[23:16];
// [7:0] cfg_y_tnr_mot_frcsad_lock = mfdin_reg0f[31:24];
#define HCODEC_MFDIN_REG0F (0x1017)
#define P_HCODEC_MFDIN_REG0F (volatile unsigned int *)((0x1017 << 2) + 0xff620000)
// [7:0] cfg_y_tnr_mot2alp_frc_gain = mfdin_reg10[7:0];
// [7:0] cfg_y_tnr_mot2alp_nrm_gain = mfdin_reg10[15:8];
// [7:0] cfg_y_tnr_mot2alp_dis_gain = mfdin_reg10[23:16];
// [5:0] cfg_y_tnr_mot2alp_dis_ofst = mfdin_reg10[29:24];
#define HCODEC_MFDIN_REG10 (0x1018)
#define P_HCODEC_MFDIN_REG10 (volatile unsigned int *)((0x1018 << 2) + 0xff620000)
// [7:0] cfg_y_bld_beta2alp_rate = mfdin_reg11[7:0];
// [5:0] cfg_y_bld_beta_min = mfdin_reg11[13:8];
// [5:0] cfg_y_bld_beta_max = mfdin_reg11[19:14];
#define HCODEC_MFDIN_REG11 (0x1019)
#define P_HCODEC_MFDIN_REG11 (volatile unsigned int *)((0x1019 << 2) + 0xff620000)
// REG12~16 for Chroma, same as Luma
#define HCODEC_MFDIN_REG12 (0x101a)
#define P_HCODEC_MFDIN_REG12 (volatile unsigned int *)((0x101a << 2) + 0xff620000)
#define HCODEC_MFDIN_REG13 (0x101b)
#define P_HCODEC_MFDIN_REG13 (volatile unsigned int *)((0x101b << 2) + 0xff620000)
#define HCODEC_MFDIN_REG14 (0x101c)
#define P_HCODEC_MFDIN_REG14 (volatile unsigned int *)((0x101c << 2) + 0xff620000)
#define HCODEC_MFDIN_REG15 (0x101d)
#define P_HCODEC_MFDIN_REG15 (volatile unsigned int *)((0x101d << 2) + 0xff620000)
#define HCODEC_MFDIN_REG16 (0x101e)
#define P_HCODEC_MFDIN_REG16 (volatile unsigned int *)((0x101e << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR1_INT0 (0x1025)
#define P_HCODEC_ASSIST_AMR1_INT0 (volatile unsigned int *)((0x1025 << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR1_INT1 (0x1026)
#define P_HCODEC_ASSIST_AMR1_INT1 (volatile unsigned int *)((0x1026 << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR1_INT2 (0x1027)
#define P_HCODEC_ASSIST_AMR1_INT2 (volatile unsigned int *)((0x1027 << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR1_INT3 (0x1028)
#define P_HCODEC_ASSIST_AMR1_INT3 (volatile unsigned int *)((0x1028 << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR1_INT4 (0x1029)
#define P_HCODEC_ASSIST_AMR1_INT4 (volatile unsigned int *)((0x1029 << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR1_INT5 (0x102a)
#define P_HCODEC_ASSIST_AMR1_INT5 (volatile unsigned int *)((0x102a << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR1_INT6 (0x102b)
#define P_HCODEC_ASSIST_AMR1_INT6 (volatile unsigned int *)((0x102b << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR1_INT7 (0x102c)
#define P_HCODEC_ASSIST_AMR1_INT7 (volatile unsigned int *)((0x102c << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR1_INT8 (0x102d)
#define P_HCODEC_ASSIST_AMR1_INT8 (volatile unsigned int *)((0x102d << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR1_INT9 (0x102e)
#define P_HCODEC_ASSIST_AMR1_INT9 (volatile unsigned int *)((0x102e << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR1_INTA (0x102f)
#define P_HCODEC_ASSIST_AMR1_INTA (volatile unsigned int *)((0x102f << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR1_INTB (0x1030)
#define P_HCODEC_ASSIST_AMR1_INTB (volatile unsigned int *)((0x1030 << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR1_INTC (0x1031)
#define P_HCODEC_ASSIST_AMR1_INTC (volatile unsigned int *)((0x1031 << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR1_INTD (0x1032)
#define P_HCODEC_ASSIST_AMR1_INTD (volatile unsigned int *)((0x1032 << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR1_INTE (0x1033)
#define P_HCODEC_ASSIST_AMR1_INTE (volatile unsigned int *)((0x1033 << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR1_INTF (0x1034)
#define P_HCODEC_ASSIST_AMR1_INTF (volatile unsigned int *)((0x1034 << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR2_INT0 (0x1035)
#define P_HCODEC_ASSIST_AMR2_INT0 (volatile unsigned int *)((0x1035 << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR2_INT1 (0x1036)
#define P_HCODEC_ASSIST_AMR2_INT1 (volatile unsigned int *)((0x1036 << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR2_INT2 (0x1037)
#define P_HCODEC_ASSIST_AMR2_INT2 (volatile unsigned int *)((0x1037 << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR2_INT3 (0x1038)
#define P_HCODEC_ASSIST_AMR2_INT3 (volatile unsigned int *)((0x1038 << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR2_INT4 (0x1039)
#define P_HCODEC_ASSIST_AMR2_INT4 (volatile unsigned int *)((0x1039 << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR2_INT5 (0x103a)
#define P_HCODEC_ASSIST_AMR2_INT5 (volatile unsigned int *)((0x103a << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR2_INT6 (0x103b)
#define P_HCODEC_ASSIST_AMR2_INT6 (volatile unsigned int *)((0x103b << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR2_INT7 (0x103c)
#define P_HCODEC_ASSIST_AMR2_INT7 (volatile unsigned int *)((0x103c << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR2_INT8 (0x103d)
#define P_HCODEC_ASSIST_AMR2_INT8 (volatile unsigned int *)((0x103d << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR2_INT9 (0x103e)
#define P_HCODEC_ASSIST_AMR2_INT9 (volatile unsigned int *)((0x103e << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR2_INTA (0x103f)
#define P_HCODEC_ASSIST_AMR2_INTA (volatile unsigned int *)((0x103f << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR2_INTB (0x1040)
#define P_HCODEC_ASSIST_AMR2_INTB (volatile unsigned int *)((0x1040 << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR2_INTC (0x1041)
#define P_HCODEC_ASSIST_AMR2_INTC (volatile unsigned int *)((0x1041 << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR2_INTD (0x1042)
#define P_HCODEC_ASSIST_AMR2_INTD (volatile unsigned int *)((0x1042 << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR2_INTE (0x1043)
#define P_HCODEC_ASSIST_AMR2_INTE (volatile unsigned int *)((0x1043 << 2) + 0xff620000)
#define HCODEC_ASSIST_AMR2_INTF (0x1044)
#define P_HCODEC_ASSIST_AMR2_INTF (volatile unsigned int *)((0x1044 << 2) + 0xff620000)
#define HCODEC_ASSIST_MBX_SSEL (0x1045)
#define P_HCODEC_ASSIST_MBX_SSEL (volatile unsigned int *)((0x1045 << 2) + 0xff620000)
#define HCODEC_ASSIST_TIMER0_LO (0x1060)
#define P_HCODEC_ASSIST_TIMER0_LO (volatile unsigned int *)((0x1060 << 2) + 0xff620000)
#define HCODEC_ASSIST_TIMER0_HI (0x1061)
#define P_HCODEC_ASSIST_TIMER0_HI (volatile unsigned int *)((0x1061 << 2) + 0xff620000)
#define HCODEC_ASSIST_TIMER1_LO (0x1062)
#define P_HCODEC_ASSIST_TIMER1_LO (volatile unsigned int *)((0x1062 << 2) + 0xff620000)
#define HCODEC_ASSIST_TIMER1_HI (0x1063)
#define P_HCODEC_ASSIST_TIMER1_HI (volatile unsigned int *)((0x1063 << 2) + 0xff620000)
#define HCODEC_ASSIST_DMA_INT (0x1064)
#define P_HCODEC_ASSIST_DMA_INT (volatile unsigned int *)((0x1064 << 2) + 0xff620000)
#define HCODEC_ASSIST_DMA_INT_MSK (0x1065)
#define P_HCODEC_ASSIST_DMA_INT_MSK (volatile unsigned int *)((0x1065 << 2) + 0xff620000)
#define HCODEC_ASSIST_DMA_INT2 (0x1066)
#define P_HCODEC_ASSIST_DMA_INT2 (volatile unsigned int *)((0x1066 << 2) + 0xff620000)
#define HCODEC_ASSIST_DMA_INT_MSK2 (0x1067)
#define P_HCODEC_ASSIST_DMA_INT_MSK2 (volatile unsigned int *)((0x1067 << 2) + 0xff620000)
#define HCODEC_ASSIST_MBOX0_IRQ_REG (0x1070)
#define P_HCODEC_ASSIST_MBOX0_IRQ_REG (volatile unsigned int *)((0x1070 << 2) + 0xff620000)
#define HCODEC_ASSIST_MBOX0_CLR_REG (0x1071)
#define P_HCODEC_ASSIST_MBOX0_CLR_REG (volatile unsigned int *)((0x1071 << 2) + 0xff620000)
#define HCODEC_ASSIST_MBOX0_MASK (0x1072)
#define P_HCODEC_ASSIST_MBOX0_MASK (volatile unsigned int *)((0x1072 << 2) + 0xff620000)
#define HCODEC_ASSIST_MBOX0_FIQ_SEL (0x1073)
#define P_HCODEC_ASSIST_MBOX0_FIQ_SEL (volatile unsigned int *)((0x1073 << 2) + 0xff620000)
#define HCODEC_ASSIST_MBOX1_IRQ_REG (0x1074)
#define P_HCODEC_ASSIST_MBOX1_IRQ_REG (volatile unsigned int *)((0x1074 << 2) + 0xff620000)
#define HCODEC_ASSIST_MBOX1_CLR_REG (0x1075)
#define P_HCODEC_ASSIST_MBOX1_CLR_REG (volatile unsigned int *)((0x1075 << 2) + 0xff620000)
#define HCODEC_ASSIST_MBOX1_MASK (0x1076)
#define P_HCODEC_ASSIST_MBOX1_MASK (volatile unsigned int *)((0x1076 << 2) + 0xff620000)
#define HCODEC_ASSIST_MBOX1_FIQ_SEL (0x1077)
#define P_HCODEC_ASSIST_MBOX1_FIQ_SEL (volatile unsigned int *)((0x1077 << 2) + 0xff620000)
#define HCODEC_ASSIST_MBOX2_IRQ_REG (0x1078)
#define P_HCODEC_ASSIST_MBOX2_IRQ_REG (volatile unsigned int *)((0x1078 << 2) + 0xff620000)
#define HCODEC_ASSIST_MBOX2_CLR_REG (0x1079)
#define P_HCODEC_ASSIST_MBOX2_CLR_REG (volatile unsigned int *)((0x1079 << 2) + 0xff620000)
#define HCODEC_ASSIST_MBOX2_MASK (0x107a)
#define P_HCODEC_ASSIST_MBOX2_MASK (volatile unsigned int *)((0x107a << 2) + 0xff620000)
#define HCODEC_ASSIST_MBOX2_FIQ_SEL (0x107b)
#define P_HCODEC_ASSIST_MBOX2_FIQ_SEL (volatile unsigned int *)((0x107b << 2) + 0xff620000)
//------------------------------------------------------------------------------
// MDEC module level register offset
//------------------------------------------------------------------------------
//
// Reading file: mdec_regs.h
//
//========================================================================
// MDEC module level register offset
//========================================================================
// -----------------------------------------------
// CBUS_BASE: DOS_VDEC_MDEC_CBUS_BASE = 0x09
// -----------------------------------------------
#define MC_CTRL_REG (0x0900)
#define P_MC_CTRL_REG (volatile unsigned int *)((0x0900 << 2) + 0xff620000)
#define MC_MB_INFO (0x0901)
#define P_MC_MB_INFO (volatile unsigned int *)((0x0901 << 2) + 0xff620000)
#define MC_PIC_INFO (0x0902)
#define P_MC_PIC_INFO (volatile unsigned int *)((0x0902 << 2) + 0xff620000)
#define MC_HALF_PEL_ONE (0x0903)
#define P_MC_HALF_PEL_ONE (volatile unsigned int *)((0x0903 << 2) + 0xff620000)
#define MC_HALF_PEL_TWO (0x0904)
#define P_MC_HALF_PEL_TWO (volatile unsigned int *)((0x0904 << 2) + 0xff620000)
#define POWER_CTL_MC (0x0905)
#define P_POWER_CTL_MC (volatile unsigned int *)((0x0905 << 2) + 0xff620000)
#define MC_CMD (0x0906)
#define P_MC_CMD (volatile unsigned int *)((0x0906 << 2) + 0xff620000)
#define MC_CTRL0 (0x0907)
#define P_MC_CTRL0 (volatile unsigned int *)((0x0907 << 2) + 0xff620000)
#define MC_PIC_W_H (0x0908)
#define P_MC_PIC_W_H (volatile unsigned int *)((0x0908 << 2) + 0xff620000)
#define MC_STATUS0 (0x0909)
#define P_MC_STATUS0 (volatile unsigned int *)((0x0909 << 2) + 0xff620000)
#define MC_STATUS1 (0x090a)
#define P_MC_STATUS1 (volatile unsigned int *)((0x090a << 2) + 0xff620000)
#define MC_CTRL1 (0x090b)
#define P_MC_CTRL1 (volatile unsigned int *)((0x090b << 2) + 0xff620000)
#define MC_MIX_RATIO0 (0x090c)
#define P_MC_MIX_RATIO0 (volatile unsigned int *)((0x090c << 2) + 0xff620000)
#define MC_MIX_RATIO1 (0x090d)
#define P_MC_MIX_RATIO1 (volatile unsigned int *)((0x090d << 2) + 0xff620000)
#define MC_DP_MB_XY (0x090e)
#define P_MC_DP_MB_XY (volatile unsigned int *)((0x090e << 2) + 0xff620000)
#define MC_OM_MB_XY (0x090f)
#define P_MC_OM_MB_XY (volatile unsigned int *)((0x090f << 2) + 0xff620000)
#define PSCALE_RST (0x0910)
#define P_PSCALE_RST (volatile unsigned int *)((0x0910 << 2) + 0xff620000)
#define PSCALE_CTRL (0x0911)
#define P_PSCALE_CTRL (volatile unsigned int *)((0x0911 << 2) + 0xff620000)
#define PSCALE_PICI_W (0x0912)
#define P_PSCALE_PICI_W (volatile unsigned int *)((0x0912 << 2) + 0xff620000)
#define PSCALE_PICI_H (0x0913)
#define P_PSCALE_PICI_H (volatile unsigned int *)((0x0913 << 2) + 0xff620000)
#define PSCALE_PICO_W (0x0914)
#define P_PSCALE_PICO_W (volatile unsigned int *)((0x0914 << 2) + 0xff620000)
#define PSCALE_PICO_H (0x0915)
#define P_PSCALE_PICO_H (volatile unsigned int *)((0x0915 << 2) + 0xff620000)
#define PSCALE_PICO_START_X (0x0916)
#define P_PSCALE_PICO_START_X (volatile unsigned int *)((0x0916 << 2) + 0xff620000)
#define PSCALE_PICO_START_Y (0x0917)
#define P_PSCALE_PICO_START_Y (volatile unsigned int *)((0x0917 << 2) + 0xff620000)
#define PSCALE_DUMMY (0x0918)
#define P_PSCALE_DUMMY (volatile unsigned int *)((0x0918 << 2) + 0xff620000)
#define PSCALE_FILT0_COEF0 (0x0919)
#define P_PSCALE_FILT0_COEF0 (volatile unsigned int *)((0x0919 << 2) + 0xff620000)
#define PSCALE_FILT0_COEF1 (0x091a)
#define P_PSCALE_FILT0_COEF1 (volatile unsigned int *)((0x091a << 2) + 0xff620000)
#define PSCALE_CMD_CTRL (0x091b)
#define P_PSCALE_CMD_CTRL (volatile unsigned int *)((0x091b << 2) + 0xff620000)
#define PSCALE_CMD_BLK_X (0x091c)
#define P_PSCALE_CMD_BLK_X (volatile unsigned int *)((0x091c << 2) + 0xff620000)
#define PSCALE_CMD_BLK_Y (0x091d)
#define P_PSCALE_CMD_BLK_Y (volatile unsigned int *)((0x091d << 2) + 0xff620000)
#define PSCALE_STATUS (0x091e)
#define P_PSCALE_STATUS (volatile unsigned int *)((0x091e << 2) + 0xff620000)
#define PSCALE_BMEM_ADDR (0x091f)
#define P_PSCALE_BMEM_ADDR (volatile unsigned int *)((0x091f << 2) + 0xff620000)
#define PSCALE_BMEM_DAT (0x0920)
#define P_PSCALE_BMEM_DAT (volatile unsigned int *)((0x0920 << 2) + 0xff620000)
#define PSCALE_DRAM_BUF_CTRL (0x0921)
#define P_PSCALE_DRAM_BUF_CTRL (volatile unsigned int *)((0x0921 << 2) + 0xff620000)
#define PSCALE_MCMD_CTRL (0x0922)
#define P_PSCALE_MCMD_CTRL (volatile unsigned int *)((0x0922 << 2) + 0xff620000)
#define PSCALE_MCMD_XSIZE (0x0923)
#define P_PSCALE_MCMD_XSIZE (volatile unsigned int *)((0x0923 << 2) + 0xff620000)
#define PSCALE_MCMD_YSIZE (0x0924)
#define P_PSCALE_MCMD_YSIZE (volatile unsigned int *)((0x0924 << 2) + 0xff620000)
#define PSCALE_RBUF_START_BLKX (0x0925)
#define P_PSCALE_RBUF_START_BLKX (volatile unsigned int *)((0x0925 << 2) + 0xff620000)
#define PSCALE_RBUF_START_BLKY (0x0926)
#define P_PSCALE_RBUF_START_BLKY (volatile unsigned int *)((0x0926 << 2) + 0xff620000)
//`define PSCALE_RBUF_MB_WIDTH 8'h27
#define PSCALE_PICO_SHIFT_XY (0x0928)
#define P_PSCALE_PICO_SHIFT_XY (volatile unsigned int *)((0x0928 << 2) + 0xff620000)
#define PSCALE_CTRL1 (0x0929)
#define P_PSCALE_CTRL1 (volatile unsigned int *)((0x0929 << 2) + 0xff620000)
//Bit 15, wmask enable
//Bit 14:13, filt0 srckey_less,
//Bit 12:11, filt1 srckey_less, in the case of the interpolated data is equal distance to
//key data and normal data, 00: select normal data, 01: select right data, 10: select key data
//Bit 10:9, srckey mode, 00: equal, 01: less than or equal, 10: great than or equal
//Bit 8, src key enable
//Bit 7:0, y src key
#define PSCALE_SRCKEY_CTRL0 (0x092a)
#define P_PSCALE_SRCKEY_CTRL0 (volatile unsigned int *)((0x092a << 2) + 0xff620000)
//Bit 15:8, cb src key
//Bit 7:0, cr src key
#define PSCALE_SRCKEY_CTRL1 (0x092b)
#define P_PSCALE_SRCKEY_CTRL1 (volatile unsigned int *)((0x092b << 2) + 0xff620000)
//Bit 22:16 canvas_rd_addr2
//Bit 14:8 canvas_rd_addr1
//Bit 6:0 canvas_rd_addr1
#define PSCALE_CANVAS_RD_ADDR (0x092c)
#define P_PSCALE_CANVAS_RD_ADDR (volatile unsigned int *)((0x092c << 2) + 0xff620000)
//Bit 22:16 canvas_wr_addr2
//Bit 14:8 canvas_wr_addr1
//Bit 6:0 canvas_wr_addr1
#define PSCALE_CANVAS_WR_ADDR (0x092d)
#define P_PSCALE_CANVAS_WR_ADDR (volatile unsigned int *)((0x092d << 2) + 0xff620000)
//bit 13:8 pscale thread ID and token
//bit 7 disable write response count adding to busy bit
//bit 5:0 pscale prearbitor burst num
#define PSCALE_CTRL2 (0x092e)
#define P_PSCALE_CTRL2 (volatile unsigned int *)((0x092e << 2) + 0xff620000)
// 31 - use_omem_mb_xy_auto
//23:16 - omem_max_mb_x
//15:8 - omem_mb_y_auto
// 7:0 - omem_mb_x_auto
#define HDEC_MC_OMEM_AUTO (0x0930)
#define P_HDEC_MC_OMEM_AUTO (volatile unsigned int *)((0x0930 << 2) + 0xff620000)
#define HDEC_MC_MBRIGHT_IDX (0x0931)
#define P_HDEC_MC_MBRIGHT_IDX (volatile unsigned int *)((0x0931 << 2) + 0xff620000)
#define HDEC_MC_MBRIGHT_RD (0x0932)
#define P_HDEC_MC_MBRIGHT_RD (volatile unsigned int *)((0x0932 << 2) + 0xff620000)
#define MC_MPORT_CTRL (0x0940)
#define P_MC_MPORT_CTRL (volatile unsigned int *)((0x0940 << 2) + 0xff620000)
#define MC_MPORT_DAT (0x0941)
#define P_MC_MPORT_DAT (volatile unsigned int *)((0x0941 << 2) + 0xff620000)
#define MC_WT_PRED_CTRL (0x0942)
#define P_MC_WT_PRED_CTRL (volatile unsigned int *)((0x0942 << 2) + 0xff620000)
#define MC_MBBOT_ST_EVEN_ADDR (0x0944)
#define P_MC_MBBOT_ST_EVEN_ADDR (volatile unsigned int *)((0x0944 << 2) + 0xff620000)
#define MC_MBBOT_ST_ODD_ADDR (0x0945)
#define P_MC_MBBOT_ST_ODD_ADDR (volatile unsigned int *)((0x0945 << 2) + 0xff620000)
#define MC_DPDN_MB_XY (0x0946)
#define P_MC_DPDN_MB_XY (volatile unsigned int *)((0x0946 << 2) + 0xff620000)
#define MC_OMDN_MB_XY (0x0947)
#define P_MC_OMDN_MB_XY (volatile unsigned int *)((0x0947 << 2) + 0xff620000)
#define MC_HCMDBUF_H (0x0948)
#define P_MC_HCMDBUF_H (volatile unsigned int *)((0x0948 << 2) + 0xff620000)
#define MC_HCMDBUF_L (0x0949)
#define P_MC_HCMDBUF_L (volatile unsigned int *)((0x0949 << 2) + 0xff620000)
#define MC_HCMD_H (0x094a)
#define P_MC_HCMD_H (volatile unsigned int *)((0x094a << 2) + 0xff620000)
#define MC_HCMD_L (0x094b)
#define P_MC_HCMD_L (volatile unsigned int *)((0x094b << 2) + 0xff620000)
#define MC_IDCT_DAT (0x094c)
#define P_MC_IDCT_DAT (volatile unsigned int *)((0x094c << 2) + 0xff620000)
#define MC_CTRL_GCLK_CTRL (0x094d)
#define P_MC_CTRL_GCLK_CTRL (volatile unsigned int *)((0x094d << 2) + 0xff620000)
#define MC_OTHER_GCLK_CTRL (0x094e)
#define P_MC_OTHER_GCLK_CTRL (volatile unsigned int *)((0x094e << 2) + 0xff620000)
//Bit 29:24, mbbot thread ID and token
//Bit 21:16, mc read/write thread ID and token
//Bit 13:8, mbbot pre-arbitor burst number
//Bit 5:0, mc pre-arbitor burst number
#define MC_CTRL2 (0x094f)
#define P_MC_CTRL2 (volatile unsigned int *)((0x094f << 2) + 0xff620000)
// `define DBLK_QUANT 8'h76 // ONLY for $ucode/real/amrisc/rv.s, reg value from apollo
//`define ANC1_CANVAS_ADDR 8'h80
//`define ANC2_CANVAS_ADDR 8'h81
//`define REC_CANVAS_ADDR 8'h89
//`define MDEC_PIC_W 8'h8c
//`define MDEC_PIC_H 8'h8d
// mdec_pic_dc_mux_ctrl[31] -- mcr_hevc_mode
#define MDEC_PIC_DC_MUX_CTRL (0x098d)
#define P_MDEC_PIC_DC_MUX_CTRL (volatile unsigned int *)((0x098d << 2) + 0xff620000)
#define MDEC_PIC_DC_CTRL (0x098e)
#define P_MDEC_PIC_DC_CTRL (volatile unsigned int *)((0x098e << 2) + 0xff620000)
#define MDEC_PIC_DC_STATUS (0x098f)
#define P_MDEC_PIC_DC_STATUS (volatile unsigned int *)((0x098f << 2) + 0xff620000)
#define ANC0_CANVAS_ADDR (0x0990)
#define P_ANC0_CANVAS_ADDR (volatile unsigned int *)((0x0990 << 2) + 0xff620000)
#define ANC1_CANVAS_ADDR (0x0991)
#define P_ANC1_CANVAS_ADDR (volatile unsigned int *)((0x0991 << 2) + 0xff620000)
#define ANC2_CANVAS_ADDR (0x0992)
#define P_ANC2_CANVAS_ADDR (volatile unsigned int *)((0x0992 << 2) + 0xff620000)
#define ANC3_CANVAS_ADDR (0x0993)
#define P_ANC3_CANVAS_ADDR (volatile unsigned int *)((0x0993 << 2) + 0xff620000)
#define ANC4_CANVAS_ADDR (0x0994)
#define P_ANC4_CANVAS_ADDR (volatile unsigned int *)((0x0994 << 2) + 0xff620000)
#define ANC5_CANVAS_ADDR (0x0995)
#define P_ANC5_CANVAS_ADDR (volatile unsigned int *)((0x0995 << 2) + 0xff620000)
#define ANC6_CANVAS_ADDR (0x0996)
#define P_ANC6_CANVAS_ADDR (volatile unsigned int *)((0x0996 << 2) + 0xff620000)
#define ANC7_CANVAS_ADDR (0x0997)
#define P_ANC7_CANVAS_ADDR (volatile unsigned int *)((0x0997 << 2) + 0xff620000)
#define ANC8_CANVAS_ADDR (0x0998)
#define P_ANC8_CANVAS_ADDR (volatile unsigned int *)((0x0998 << 2) + 0xff620000)
#define ANC9_CANVAS_ADDR (0x0999)
#define P_ANC9_CANVAS_ADDR (volatile unsigned int *)((0x0999 << 2) + 0xff620000)
#define ANC10_CANVAS_ADDR (0x099a)
#define P_ANC10_CANVAS_ADDR (volatile unsigned int *)((0x099a << 2) + 0xff620000)
#define ANC11_CANVAS_ADDR (0x099b)
#define P_ANC11_CANVAS_ADDR (volatile unsigned int *)((0x099b << 2) + 0xff620000)
#define ANC12_CANVAS_ADDR (0x099c)
#define P_ANC12_CANVAS_ADDR (volatile unsigned int *)((0x099c << 2) + 0xff620000)
#define ANC13_CANVAS_ADDR (0x099d)
#define P_ANC13_CANVAS_ADDR (volatile unsigned int *)((0x099d << 2) + 0xff620000)
#define ANC14_CANVAS_ADDR (0x099e)
#define P_ANC14_CANVAS_ADDR (volatile unsigned int *)((0x099e << 2) + 0xff620000)
#define ANC15_CANVAS_ADDR (0x099f)
#define P_ANC15_CANVAS_ADDR (volatile unsigned int *)((0x099f << 2) + 0xff620000)
#define ANC16_CANVAS_ADDR (0x09a0)
#define P_ANC16_CANVAS_ADDR (volatile unsigned int *)((0x09a0 << 2) + 0xff620000)
#define ANC17_CANVAS_ADDR (0x09a1)
#define P_ANC17_CANVAS_ADDR (volatile unsigned int *)((0x09a1 << 2) + 0xff620000)
#define ANC18_CANVAS_ADDR (0x09a2)
#define P_ANC18_CANVAS_ADDR (volatile unsigned int *)((0x09a2 << 2) + 0xff620000)
#define ANC19_CANVAS_ADDR (0x09a3)
#define P_ANC19_CANVAS_ADDR (volatile unsigned int *)((0x09a3 << 2) + 0xff620000)
#define ANC20_CANVAS_ADDR (0x09a4)
#define P_ANC20_CANVAS_ADDR (volatile unsigned int *)((0x09a4 << 2) + 0xff620000)
#define ANC21_CANVAS_ADDR (0x09a5)
#define P_ANC21_CANVAS_ADDR (volatile unsigned int *)((0x09a5 << 2) + 0xff620000)
#define ANC22_CANVAS_ADDR (0x09a6)
#define P_ANC22_CANVAS_ADDR (volatile unsigned int *)((0x09a6 << 2) + 0xff620000)
#define ANC23_CANVAS_ADDR (0x09a7)
#define P_ANC23_CANVAS_ADDR (volatile unsigned int *)((0x09a7 << 2) + 0xff620000)
#define ANC24_CANVAS_ADDR (0x09a8)
#define P_ANC24_CANVAS_ADDR (volatile unsigned int *)((0x09a8 << 2) + 0xff620000)
#define ANC25_CANVAS_ADDR (0x09a9)
#define P_ANC25_CANVAS_ADDR (volatile unsigned int *)((0x09a9 << 2) + 0xff620000)
#define ANC26_CANVAS_ADDR (0x09aa)
#define P_ANC26_CANVAS_ADDR (volatile unsigned int *)((0x09aa << 2) + 0xff620000)
#define ANC27_CANVAS_ADDR (0x09ab)
#define P_ANC27_CANVAS_ADDR (volatile unsigned int *)((0x09ab << 2) + 0xff620000)
#define ANC28_CANVAS_ADDR (0x09ac)
#define P_ANC28_CANVAS_ADDR (volatile unsigned int *)((0x09ac << 2) + 0xff620000)
#define ANC29_CANVAS_ADDR (0x09ad)
#define P_ANC29_CANVAS_ADDR (volatile unsigned int *)((0x09ad << 2) + 0xff620000)
#define ANC30_CANVAS_ADDR (0x09ae)
#define P_ANC30_CANVAS_ADDR (volatile unsigned int *)((0x09ae << 2) + 0xff620000)
#define ANC31_CANVAS_ADDR (0x09af)
#define P_ANC31_CANVAS_ADDR (volatile unsigned int *)((0x09af << 2) + 0xff620000)
#define DBKR_CANVAS_ADDR (0x09b0)
#define P_DBKR_CANVAS_ADDR (volatile unsigned int *)((0x09b0 << 2) + 0xff620000)
#define DBKW_CANVAS_ADDR (0x09b1)
#define P_DBKW_CANVAS_ADDR (volatile unsigned int *)((0x09b1 << 2) + 0xff620000)
#define REC_CANVAS_ADDR (0x09b2)
#define P_REC_CANVAS_ADDR (volatile unsigned int *)((0x09b2 << 2) + 0xff620000)
//28:24, read/write, current canvas idx, used in h264 only now
//23:0, read only, current canvas address, 23:16, Cr canvas addr, 15:8, Cb canvas addr, 7:0, Y canvas addr
#define CURR_CANVAS_CTRL (0x09b3)
#define P_CURR_CANVAS_CTRL (volatile unsigned int *)((0x09b3 << 2) + 0xff620000)
#define MDEC_PIC_DC_THRESH (0x09b8)
#define P_MDEC_PIC_DC_THRESH (volatile unsigned int *)((0x09b8 << 2) + 0xff620000)
#define MDEC_PICR_BUF_STATUS (0x09b9)
#define P_MDEC_PICR_BUF_STATUS (volatile unsigned int *)((0x09b9 << 2) + 0xff620000)
#define MDEC_PICW_BUF_STATUS (0x09ba)
#define P_MDEC_PICW_BUF_STATUS (volatile unsigned int *)((0x09ba << 2) + 0xff620000)
#define MCW_DBLK_WRRSP_CNT (0x09bb)
#define P_MCW_DBLK_WRRSP_CNT (volatile unsigned int *)((0x09bb << 2) + 0xff620000)
#define MC_MBBOT_WRRSP_CNT (0x09bc)
#define P_MC_MBBOT_WRRSP_CNT (volatile unsigned int *)((0x09bc << 2) + 0xff620000)
#define MDEC_PICW_BUF2_STATUS (0x09bd)
#define P_MDEC_PICW_BUF2_STATUS (volatile unsigned int *)((0x09bd << 2) + 0xff620000)
#define WRRSP_FIFO_PICW_DBK (0x09be)
#define P_WRRSP_FIFO_PICW_DBK (volatile unsigned int *)((0x09be << 2) + 0xff620000)
#define WRRSP_FIFO_PICW_MC (0x09bf)
#define P_WRRSP_FIFO_PICW_MC (volatile unsigned int *)((0x09bf << 2) + 0xff620000)
#define AV_SCRATCH_0 (0x09c0)
#define P_AV_SCRATCH_0 (volatile unsigned int *)((0x09c0 << 2) + 0xff620000)
#define AV_SCRATCH_1 (0x09c1)
#define P_AV_SCRATCH_1 (volatile unsigned int *)((0x09c1 << 2) + 0xff620000)
#define AV_SCRATCH_2 (0x09c2)
#define P_AV_SCRATCH_2 (volatile unsigned int *)((0x09c2 << 2) + 0xff620000)
#define AV_SCRATCH_3 (0x09c3)
#define P_AV_SCRATCH_3 (volatile unsigned int *)((0x09c3 << 2) + 0xff620000)
#define AV_SCRATCH_4 (0x09c4)
#define P_AV_SCRATCH_4 (volatile unsigned int *)((0x09c4 << 2) + 0xff620000)
#define AV_SCRATCH_5 (0x09c5)
#define P_AV_SCRATCH_5 (volatile unsigned int *)((0x09c5 << 2) + 0xff620000)
#define AV_SCRATCH_6 (0x09c6)
#define P_AV_SCRATCH_6 (volatile unsigned int *)((0x09c6 << 2) + 0xff620000)
#define AV_SCRATCH_7 (0x09c7)
#define P_AV_SCRATCH_7 (volatile unsigned int *)((0x09c7 << 2) + 0xff620000)
#define AV_SCRATCH_8 (0x09c8)
#define P_AV_SCRATCH_8 (volatile unsigned int *)((0x09c8 << 2) + 0xff620000)
#define AV_SCRATCH_9 (0x09c9)
#define P_AV_SCRATCH_9 (volatile unsigned int *)((0x09c9 << 2) + 0xff620000)
#define AV_SCRATCH_A (0x09ca)
#define P_AV_SCRATCH_A (volatile unsigned int *)((0x09ca << 2) + 0xff620000)
#define AV_SCRATCH_B (0x09cb)
#define P_AV_SCRATCH_B (volatile unsigned int *)((0x09cb << 2) + 0xff620000)
#define AV_SCRATCH_C (0x09cc)
#define P_AV_SCRATCH_C (volatile unsigned int *)((0x09cc << 2) + 0xff620000)
#define AV_SCRATCH_D (0x09cd)
#define P_AV_SCRATCH_D (volatile unsigned int *)((0x09cd << 2) + 0xff620000)
#define AV_SCRATCH_E (0x09ce)
#define P_AV_SCRATCH_E (volatile unsigned int *)((0x09ce << 2) + 0xff620000)
#define AV_SCRATCH_F (0x09cf)
#define P_AV_SCRATCH_F (volatile unsigned int *)((0x09cf << 2) + 0xff620000)
#define AV_SCRATCH_G (0x09d0)
#define P_AV_SCRATCH_G (volatile unsigned int *)((0x09d0 << 2) + 0xff620000)
#define AV_SCRATCH_H (0x09d1)
#define P_AV_SCRATCH_H (volatile unsigned int *)((0x09d1 << 2) + 0xff620000)
#define AV_SCRATCH_I (0x09d2)
#define P_AV_SCRATCH_I (volatile unsigned int *)((0x09d2 << 2) + 0xff620000)
#define AV_SCRATCH_J (0x09d3)
#define P_AV_SCRATCH_J (volatile unsigned int *)((0x09d3 << 2) + 0xff620000)
#define AV_SCRATCH_K (0x09d4)
#define P_AV_SCRATCH_K (volatile unsigned int *)((0x09d4 << 2) + 0xff620000)
#define AV_SCRATCH_L (0x09d5)
#define P_AV_SCRATCH_L (volatile unsigned int *)((0x09d5 << 2) + 0xff620000)
#define AV_SCRATCH_M (0x09d6)
#define P_AV_SCRATCH_M (volatile unsigned int *)((0x09d6 << 2) + 0xff620000)
#define AV_SCRATCH_N (0x09d7)
#define P_AV_SCRATCH_N (volatile unsigned int *)((0x09d7 << 2) + 0xff620000)
// bit[29:24] A_brst_num_co_mb
// bit[21:16] A_id_co_mb
// bit[11:0] wrrsp_count_co_mb
#define WRRSP_CO_MB (0x09d8)
#define P_WRRSP_CO_MB (volatile unsigned int *)((0x09d8 << 2) + 0xff620000)
// bit[29:24] A_brst_num_dcac
// bit[21:16] A_id_dcac
// bit[11:0] wrrsp_count_dcac
#define WRRSP_DCAC (0x09d9)
#define P_WRRSP_DCAC (volatile unsigned int *)((0x09d9 << 2) + 0xff620000)
// bit[11:0] wrrsp_count_vld
#define WRRSP_VLD (0x09da)
#define P_WRRSP_VLD (volatile unsigned int *)((0x09da << 2) + 0xff620000)
// doublew_cfg0[0]; // Second Channel Enable, 1:Enable 0:Disable
// doublew_cfg0[3:1]; // [2:0] Endian Control for Luma
// doublew_cfg0[5:4]; // [1:0] Pixel sel by horizontal, 0x:1/2 10:left 11:right
// doublew_cfg0[7:6]; // [1:0] Pixel sel by vertical, 0x:1/2 10:up 11:down
// doublew_cfg0[8]; // Size by horizontal, 0:original size 1: 1/2 shrunken size
// doublew_cfg0[9]; // Size by vertical, 0:original size 1: 1/2 shrunken size
// doublew_cfg0[10]; // 1:Round 0:Truncation
// doublew_cfg0[11]; // DMA Urgent
// doublew_cfg0[17:12]; // [5:0] DMA Burst Number
// doublew_cfg0[23:18]; // [5:0] DMA ID
// doublew_cfg0[26:24]; // [2:0] Endian Control for Chroma
// doublew_cfg0[27]; // Source from, 1:MCW 0:DBLK
// doublew_cfg0[29:28]; // [1:0] 0x:select both top and bottom 10:select top 11:select bottom
// doublew_cfg0[30]; // 0:no merge 1:automatic merge
// doublew_cfg0[31]; // 0:Y addr no change 1:Y addr divided to half
#define MDEC_DOUBLEW_CFG0 (0x09db)
#define P_MDEC_DOUBLEW_CFG0 (volatile unsigned int *)((0x09db << 2) + 0xff620000)
// doublew_cfg1[7:0]; // [7:0] DMA Canvas Address for Luma
// doublew_cfg1[15:8]; // [7:0] DMA Canvas Address for Chroma
// doublew_cfg1[16]; // Disable 1st Write -
// doublew_cfg1[17]; // Reverse to original version -
// doublew_cfg1[18]; // DMA Address Mode - 0:Canvas Mode 1:Non-Canvas Mode
#define MDEC_DOUBLEW_CFG1 (0x09dc)
#define P_MDEC_DOUBLEW_CFG1 (volatile unsigned int *)((0x09dc << 2) + 0xff620000)
// doublew_cfg2[11:0]; //[11:0] vertical flip initial value
// doublew_cfg2[15]; // vertical flip enable
// doublew_cfg2[24:16]; // [8:0] horizontal flip initial value
// doublew_cfg2[31]; // horizontal flip enable
#define MDEC_DOUBLEW_CFG2 (0x09dd)
#define P_MDEC_DOUBLEW_CFG2 (volatile unsigned int *)((0x09dd << 2) + 0xff620000)
// doublew_cfg3[31:0]; //[31:0] non-canvas start address for Luma -
#define MDEC_DOUBLEW_CFG3 (0x09de)
#define P_MDEC_DOUBLEW_CFG3 (volatile unsigned int *)((0x09de << 2) + 0xff620000)
// doublew_cfg4[31:0]; //[31:0] non-canvas start address for Chroma -
#define MDEC_DOUBLEW_CFG4 (0x09df)
#define P_MDEC_DOUBLEW_CFG4 (volatile unsigned int *)((0x09df << 2) + 0xff620000)
// doublew_cfg5[12:0]; //[12:0] non-canvas picture width for Luma -
// doublew_cfg5[28:16]; //[12:0] non-canvas picture width for Chroma -
#define MDEC_DOUBLEW_CFG5 (0x09e0)
#define P_MDEC_DOUBLEW_CFG5 (volatile unsigned int *)((0x09e0 << 2) + 0xff620000)
// doublew_cfg6: reserved
#define MDEC_DOUBLEW_CFG6 (0x09e1)
#define P_MDEC_DOUBLEW_CFG6 (volatile unsigned int *)((0x09e1 << 2) + 0xff620000)
// doublew_cfg7: reserved
#define MDEC_DOUBLEW_CFG7 (0x09e2)
#define P_MDEC_DOUBLEW_CFG7 (volatile unsigned int *)((0x09e2 << 2) + 0xff620000)
// doublew_status[11:0];//[11:0] wrrsp_count_doublew
// doublew_status[12]; // doublew_status_busy
// doublew_status[13]; // doublew_status_error
#define MDEC_DOUBLEW_STATUS (0x09e3)
#define P_MDEC_DOUBLEW_STATUS (volatile unsigned int *)((0x09e3 << 2) + 0xff620000)
#define MDEC_EXTIF_CFG0 (0x09e4)
#define P_MDEC_EXTIF_CFG0 (volatile unsigned int *)((0x09e4 << 2) + 0xff620000)
#define MDEC_EXTIF_CFG1 (0x09e5)
#define P_MDEC_EXTIF_CFG1 (volatile unsigned int *)((0x09e5 << 2) + 0xff620000)
#define MDEC_EXTIF_STS0 (0x09e6)
#define P_MDEC_EXTIF_STS0 (volatile unsigned int *)((0x09e6 << 2) + 0xff620000)
//======================================
// MC Control Register Bits
//
//======================================
// For bits, just copy the defines...don't translate to addresses
#define MC_ENABLE 0x0001
//`define MC_RESET 16'h0002
#define SKIP_MB 0x0004
//======================================
// MB Info Register Bits
//
//======================================
#define INTRA_MB 0x0001
#define BWD_PRED 0x0004
#define FWD_PRED 0x0008
#define FLD_MOT 0x0100
#define FRM_16x8_MOT 0x0200
#define DUAL_PRM_MOT 0x0300
#define FRM_DCT 0x0000 // Bit 10
#define FLD_DCT 0x0400
//======================================
// MB Info Register Bits
//
//======================================
#define I_PIC 0x0001
#define P_PIC 0x0002
#define B_PIC 0x0003
#define FLD_PIC 0x0000 // Bit 8
#define FRM_PIC 0x0100
//========================================================================
// DBLK Register: 12'h950 - 12'h97f
//========================================================================
#define DBLK_RST (0x0950)
#define P_DBLK_RST (volatile unsigned int *)((0x0950 << 2) + 0xff620000)
#define DBLK_CTRL (0x0951)
#define P_DBLK_CTRL (volatile unsigned int *)((0x0951 << 2) + 0xff620000)
#define DBLK_MB_WID_HEIGHT (0x0952)
#define P_DBLK_MB_WID_HEIGHT (volatile unsigned int *)((0x0952 << 2) + 0xff620000)
#define DBLK_STATUS (0x0953)
#define P_DBLK_STATUS (volatile unsigned int *)((0x0953 << 2) + 0xff620000)
#define DBLK_CMD_CTRL (0x0954)
#define P_DBLK_CMD_CTRL (volatile unsigned int *)((0x0954 << 2) + 0xff620000)
#define DBLK_MB_XY (0x0955)
#define P_DBLK_MB_XY (volatile unsigned int *)((0x0955 << 2) + 0xff620000)
#define DBLK_QP (0x0956)
#define P_DBLK_QP (volatile unsigned int *)((0x0956 << 2) + 0xff620000)
#define DBLK_Y_BHFILT (0x0957)
#define P_DBLK_Y_BHFILT (volatile unsigned int *)((0x0957 << 2) + 0xff620000)
#define DBLK_Y_BHFILT_HIGH (0x0958)
#define P_DBLK_Y_BHFILT_HIGH (volatile unsigned int *)((0x0958 << 2) + 0xff620000)
#define DBLK_Y_BVFILT (0x0959)
#define P_DBLK_Y_BVFILT (volatile unsigned int *)((0x0959 << 2) + 0xff620000)
#define DBLK_CB_BFILT (0x095a)
#define P_DBLK_CB_BFILT (volatile unsigned int *)((0x095a << 2) + 0xff620000)
#define DBLK_CR_BFILT (0x095b)
#define P_DBLK_CR_BFILT (volatile unsigned int *)((0x095b << 2) + 0xff620000)
#define DBLK_Y_HFILT (0x095c)
#define P_DBLK_Y_HFILT (volatile unsigned int *)((0x095c << 2) + 0xff620000)
#define DBLK_Y_HFILT_HIGH (0x095d)
#define P_DBLK_Y_HFILT_HIGH (volatile unsigned int *)((0x095d << 2) + 0xff620000)
#define DBLK_Y_VFILT (0x095e)
#define P_DBLK_Y_VFILT (volatile unsigned int *)((0x095e << 2) + 0xff620000)
#define DBLK_CB_FILT (0x095f)
#define P_DBLK_CB_FILT (volatile unsigned int *)((0x095f << 2) + 0xff620000)
#define DBLK_CR_FILT (0x0960)
#define P_DBLK_CR_FILT (volatile unsigned int *)((0x0960 << 2) + 0xff620000)
#define DBLK_BETAX_QP_SEL (0x0961)
#define P_DBLK_BETAX_QP_SEL (volatile unsigned int *)((0x0961 << 2) + 0xff620000)
#define DBLK_CLIP_CTRL0 (0x0962)
#define P_DBLK_CLIP_CTRL0 (volatile unsigned int *)((0x0962 << 2) + 0xff620000)
#define DBLK_CLIP_CTRL1 (0x0963)
#define P_DBLK_CLIP_CTRL1 (volatile unsigned int *)((0x0963 << 2) + 0xff620000)
#define DBLK_CLIP_CTRL2 (0x0964)
#define P_DBLK_CLIP_CTRL2 (volatile unsigned int *)((0x0964 << 2) + 0xff620000)
#define DBLK_CLIP_CTRL3 (0x0965)
#define P_DBLK_CLIP_CTRL3 (volatile unsigned int *)((0x0965 << 2) + 0xff620000)
#define DBLK_CLIP_CTRL4 (0x0966)
#define P_DBLK_CLIP_CTRL4 (volatile unsigned int *)((0x0966 << 2) + 0xff620000)
#define DBLK_CLIP_CTRL5 (0x0967)
#define P_DBLK_CLIP_CTRL5 (volatile unsigned int *)((0x0967 << 2) + 0xff620000)
#define DBLK_CLIP_CTRL6 (0x0968)
#define P_DBLK_CLIP_CTRL6 (volatile unsigned int *)((0x0968 << 2) + 0xff620000)
#define DBLK_CLIP_CTRL7 (0x0969)
#define P_DBLK_CLIP_CTRL7 (volatile unsigned int *)((0x0969 << 2) + 0xff620000)
#define DBLK_CLIP_CTRL8 (0x096a)
#define P_DBLK_CLIP_CTRL8 (volatile unsigned int *)((0x096a << 2) + 0xff620000)
#define DBLK_STATUS1 (0x096b)
#define P_DBLK_STATUS1 (volatile unsigned int *)((0x096b << 2) + 0xff620000)
#define DBLK_GCLK_FREE (0x096c)
#define P_DBLK_GCLK_FREE (volatile unsigned int *)((0x096c << 2) + 0xff620000)
#define DBLK_GCLK_OFF (0x096d)
#define P_DBLK_GCLK_OFF (volatile unsigned int *)((0x096d << 2) + 0xff620000)
#define DBLK_AVSFLAGS (0x096e)
#define P_DBLK_AVSFLAGS (volatile unsigned int *)((0x096e << 2) + 0xff620000)
// bit 15:0
#define DBLK_CBPY (0x0970)
#define P_DBLK_CBPY (volatile unsigned int *)((0x0970 << 2) + 0xff620000)
// bit 11:8 -- deblk_cbpy_bottom
// bit 7:4 -- deblk_cbpy_left
// bit 3:0 -- deblk_cbpy_top
#define DBLK_CBPY_ADJ (0x0971)
#define P_DBLK_CBPY_ADJ (volatile unsigned int *)((0x0971 << 2) + 0xff620000)
// bit 7:0 -- deblk_cbpc
#define DBLK_CBPC (0x0972)
#define P_DBLK_CBPC (volatile unsigned int *)((0x0972 << 2) + 0xff620000)
// bit 15 -- bottom_mb
// bit 14 -- left_mb
// bit 13 -- top_mb
// bit 12 -- reserved
// bit 11:8 -- deblk_cbpc_bottom
// bit 7:4 -- deblk_cbpc_left
// bit 3:0 -- deblk_cbpc_top
#define DBLK_CBPC_ADJ (0x0973)
#define P_DBLK_CBPC_ADJ (volatile unsigned int *)((0x0973 << 2) + 0xff620000)
// bit 15:8 -- deblk_hmvd -- {left_1, left_0, below_1, below_0, block3-0}
// bit 7:0 -- deblk_vmvd -- {top_1, top_0, below_1, below_0, block3-0}
#define DBLK_VHMVD (0x0974)
#define P_DBLK_VHMVD (volatile unsigned int *)((0x0974 << 2) + 0xff620000)
// bit 13:12 -- right_vmvd
// bit 11 -- right_above_vmvd
// bit 10 -- left_below_hmvd
// bit 9 -- disable_dblk_luma
// bit 8 -- disable_dblk_chroma
// bit 7 -- bBelowRefDiff
// bit 6 -- bLeftRefDiff
// bit 5 -- bAboveRefDiff
// bit 4 -- reserved
// bit 3 -- s_below
// bit 2 -- s_left
// bit 1 -- s_above
// bit 0 -- s
#define DBLK_STRONG (0x0975)
#define P_DBLK_STRONG (volatile unsigned int *)((0x0975 << 2) + 0xff620000)
// bit 14:10 -- PQUANT
// bit 9:5 -- left_PQUANT
// bit 4:0 -- top_PQUANT
#define DBLK_RV8_QUANT (0x0976)
#define P_DBLK_RV8_QUANT (volatile unsigned int *)((0x0976 << 2) + 0xff620000)
#define DBLK_CBUS_HCMD2 (0x0977)
#define P_DBLK_CBUS_HCMD2 (volatile unsigned int *)((0x0977 << 2) + 0xff620000)
#define DBLK_CBUS_HCMD1 (0x0978)
#define P_DBLK_CBUS_HCMD1 (volatile unsigned int *)((0x0978 << 2) + 0xff620000)
#define DBLK_CBUS_HCMD0 (0x0979)
#define P_DBLK_CBUS_HCMD0 (volatile unsigned int *)((0x0979 << 2) + 0xff620000)
#define DBLK_VLD_HCMD2 (0x097a)
#define P_DBLK_VLD_HCMD2 (volatile unsigned int *)((0x097a << 2) + 0xff620000)
#define DBLK_VLD_HCMD1 (0x097b)
#define P_DBLK_VLD_HCMD1 (volatile unsigned int *)((0x097b << 2) + 0xff620000)
#define DBLK_VLD_HCMD0 (0x097c)
#define P_DBLK_VLD_HCMD0 (volatile unsigned int *)((0x097c << 2) + 0xff620000)
#define DBLK_OST_YBASE (0x097d)
#define P_DBLK_OST_YBASE (volatile unsigned int *)((0x097d << 2) + 0xff620000)
#define DBLK_OST_CBCRDIFF (0x097e)
#define P_DBLK_OST_CBCRDIFF (volatile unsigned int *)((0x097e << 2) + 0xff620000)
//13:8 dblk thread ID and token
//5:0 dblk prearbitor burst num
#define DBLK_CTRL1 (0x097f)
#define P_DBLK_CTRL1 (volatile unsigned int *)((0x097f << 2) + 0xff620000)
// MCRCC_CTL1
// 31:3 <reserved[23:0]>
// 2 <cfg_field_pic>
// 1 <sw_rst>
// 0 <bypass_en>
#define MCRCC_CTL1 (0x0980)
#define P_MCRCC_CTL1 (volatile unsigned int *)((0x0980 << 2) + 0xff620000)
// MCRCC_CTL2
// 31:24 <cfg_cache_anc01_c[7:0]>
// 23:16 <cfg_cache_anc01_y[7:0]>
// 15:8 <cfg_cache_anc00_c[7:0]>
// 7:0 <cfg_cache_anc00_y[7:0]>
#define MCRCC_CTL2 (0x0981)
#define P_MCRCC_CTL2 (volatile unsigned int *)((0x0981 << 2) + 0xff620000)
// MCRCC_CTL3
// 31:24 <cfg_cache_anc11_c[7:0]>
// 23:16 <cfg_cache_anc11_y[7:0]>
// 15:8 <cfg_cache_anc10_c[7:0]>
// 7:0 <cfg_cache_anc10_y[7:0]>
#define MCRCC_CTL3 (0x0982)
#define P_MCRCC_CTL3 (volatile unsigned int *)((0x0982 << 2) + 0xff620000)
// bit[31:10] reserved
// bit[9:0] sw_clock_gating control
// [9] vdec clk_en for assist and cbus.
// [8] vdec clk_en for ddr
// [7] vdec clk_en for vcpu
// [6] vdec clk_en for assist
// [5] vdec clk_en for dblk
// [4] vdec clk_en for iqidct
// [3] vdec clk_en for mc
// [2] vdec clk_en for pic_dc
// [1] vdec clk_en for psc
// [0] vdec clk_en for vld
#define GCLK_EN (0x0983)
#define P_GCLK_EN (volatile unsigned int *)((0x0983 << 2) + 0xff620000)
// [0] Reserved
// [1] Reserved
// [2] Reset assist, mdec's CBUS
// [3] Reset mdec's VLD
// [4] Reset mdec's VLD
// [5] Reset mdec's VLD
// [6] Reset mdec's IQIDCT
// [7] Reset mdec's MC
// [8] Reset mdec's DBLK
// [9] Reset mdec's PIC_DC
// [10] Reset mdec's Pscale
// [11] Reset vcpu's MCPU
// [12] Reset vcpu's CCPU
// [13] Reset mmc_pre_arb
#define MDEC_SW_RESET (0x0984)
#define P_MDEC_SW_RESET (volatile unsigned int *)((0x0984 << 2) + 0xff620000)
//DBLK last address 12'h97f
//
// Closing file: mdec_regs.h
//
//------------------------------------------------------------------------------
// VLD module level register offset
//------------------------------------------------------------------------------
//
// Reading file: vld_regs.h
//
//========================================================================
// VLD module level register offset
//========================================================================
// -----------------------------------------------
// CBUS_BASE: DOS_VDEC_VLD_CBUS_BASE = 0x0c
// -----------------------------------------------
#define VLD_STATUS_CTRL (0x0c00)
#define P_VLD_STATUS_CTRL (volatile unsigned int *)((0x0c00 << 2) + 0xff620000)
//
// bit 10 -- use_old_shift_en
// bit 9 -- output_mv_not_pmv
// bit 8:5 -- force_zigzag
// bit 4 -- force_zigzag_en
// bit 3 -- disable_viff_anempty_int
// bit 2 -- disable_m2_ac_coeff_one_cycle
// bit 1 -- forced_reset force reset pmv
// bit 0 -- mpeg_type 0:mpeg1 1: mpeg2
#define MPEG1_2_REG (0x0c01)
#define P_MPEG1_2_REG (volatile unsigned int *)((0x0c01 << 2) + 0xff620000)
#define F_CODE_REG (0x0c02)
#define P_F_CODE_REG (volatile unsigned int *)((0x0c02 << 2) + 0xff620000)
#define PIC_HEAD_INFO (0x0c03)
#define P_PIC_HEAD_INFO (volatile unsigned int *)((0x0c03 << 2) + 0xff620000)
#define SLICE_VER_POS_PIC_TYPE (0x0c04)
#define P_SLICE_VER_POS_PIC_TYPE (volatile unsigned int *)((0x0c04 << 2) + 0xff620000)
#define QP_VALUE_REG (0x0c05)
#define P_QP_VALUE_REG (volatile unsigned int *)((0x0c05 << 2) + 0xff620000)
#define MBA_INC (0x0c06)
#define P_MBA_INC (volatile unsigned int *)((0x0c06 << 2) + 0xff620000)
#define MB_MOTION_MODE (0x0c07)
#define P_MB_MOTION_MODE (volatile unsigned int *)((0x0c07 << 2) + 0xff620000)
//`define PACKET_BYTE_COUNT 8'h08
// bit 15 -- force_search_startcode_en
// bit 14 -- int_cpu_when_error (before do anything)
// bit 13 -- vld_error_reset
// bit 12 -- return_on_slice_header
// bit 6 -- jpeg_ff00_en
// bit 5:0 -- vld_power_ctl
#define POWER_CTL_VLD (0x0c08)
#define P_POWER_CTL_VLD (volatile unsigned int *)((0x0c08 << 2) + 0xff620000)
#define MB_WIDTH (0x0c09)
#define P_MB_WIDTH (volatile unsigned int *)((0x0c09 << 2) + 0xff620000)
#define SLICE_QP (0x0c0a)
#define P_SLICE_QP (volatile unsigned int *)((0x0c0a << 2) + 0xff620000)
// `define MB_X_MB_Y 8'h0b /* current MBX and MBY */
#define PRE_START_CODE (0x0c0b)
#define P_PRE_START_CODE (volatile unsigned int *)((0x0c0b << 2) + 0xff620000)
#define SLICE_START_BYTE_01 (0x0c0c)
#define P_SLICE_START_BYTE_01 (volatile unsigned int *)((0x0c0c << 2) + 0xff620000)
#define SLICE_START_BYTE_23 (0x0c0d)
#define P_SLICE_START_BYTE_23 (volatile unsigned int *)((0x0c0d << 2) + 0xff620000)
#define RESYNC_MARKER_LENGTH (0x0c0e)
#define P_RESYNC_MARKER_LENGTH (volatile unsigned int *)((0x0c0e << 2) + 0xff620000)
// bit[6:5] - frame/field info, 01 - top, 10 - bottom, 11 - frame
// bit[4:0] - buffer ID
// L0_BUFF_ID_0, L0_BUFF_ID_1, L1_BUFF_ID_0, L1_BUFF_ID_1
#define DECODER_BUFFER_INFO (0x0c0f)
#define P_DECODER_BUFFER_INFO (volatile unsigned int *)((0x0c0f << 2) + 0xff620000)
#define FST_FOR_MV_X (0x0c10)
#define P_FST_FOR_MV_X (volatile unsigned int *)((0x0c10 << 2) + 0xff620000)
#define FST_FOR_MV_Y (0x0c11)
#define P_FST_FOR_MV_Y (volatile unsigned int *)((0x0c11 << 2) + 0xff620000)
#define SCD_FOR_MV_X (0x0c12)
#define P_SCD_FOR_MV_X (volatile unsigned int *)((0x0c12 << 2) + 0xff620000)
#define SCD_FOR_MV_Y (0x0c13)
#define P_SCD_FOR_MV_Y (volatile unsigned int *)((0x0c13 << 2) + 0xff620000)
#define FST_BAK_MV_X (0x0c14)
#define P_FST_BAK_MV_X (volatile unsigned int *)((0x0c14 << 2) + 0xff620000)
#define FST_BAK_MV_Y (0x0c15)
#define P_FST_BAK_MV_Y (volatile unsigned int *)((0x0c15 << 2) + 0xff620000)
#define SCD_BAK_MV_X (0x0c16)
#define P_SCD_BAK_MV_X (volatile unsigned int *)((0x0c16 << 2) + 0xff620000)
#define SCD_BAK_MV_Y (0x0c17)
#define P_SCD_BAK_MV_Y (volatile unsigned int *)((0x0c17 << 2) + 0xff620000)
// Bit 7:4 -- read_buffer_interlace 0-progressive, 1-interlace, used in VC1
// bit 3 -- disable_new_stcode_search_fix // From GXM
// bit 2 -- weighting_prediction
// bit 1 -- mb_weighting_flag
// bit 0 -- slice_weighting_flag
#define VLD_DECODE_CONTROL (0x0c18)
#define P_VLD_DECODE_CONTROL (volatile unsigned int *)((0x0c18 << 2) + 0xff620000)
#define VLD_REVERVED_19 (0x0c19)
#define P_VLD_REVERVED_19 (volatile unsigned int *)((0x0c19 << 2) + 0xff620000)
#define VIFF_BIT_CNT (0x0c1a)
#define P_VIFF_BIT_CNT (volatile unsigned int *)((0x0c1a << 2) + 0xff620000)
#define BYTE_ALIGN_PEAK_HI (0x0c1b)
#define P_BYTE_ALIGN_PEAK_HI (volatile unsigned int *)((0x0c1b << 2) + 0xff620000)
#define BYTE_ALIGN_PEAK_LO (0x0c1c)
#define P_BYTE_ALIGN_PEAK_LO (volatile unsigned int *)((0x0c1c << 2) + 0xff620000)
#define NEXT_ALIGN_PEAK (0x0c1d)
#define P_NEXT_ALIGN_PEAK (volatile unsigned int *)((0x0c1d << 2) + 0xff620000)
// bit 31 : byte_aligned_zero_23_from_org // From GXM
// bit 30 : force_shift_out_drop_flag_zero // From GXM
// bit 29 : en_st_protect_from_org // From GXM
// bit 28 : enable_halt_decode_start_voff
// bit 27 : disable_C_pred_check
// bit 26 : disable_I4_pred_check
// bit 25 : disable_I16_pred_check
// bit 24 : check_avs_1st_drop
// bit 23 : enable_cabac_protect // From GXM
// bit 22 : enable_avs_drop_more
// bit 21 : reset_avs_drop_ptr
// bit 20 : reset_cabac_use_next_at_end_req
// bit 19 : vc1_inv_intra_co_mb_ref_rd
// bit 18 : vc1_inv_co_mb_ref_rd
// bit 17 : vc1_inv_intra_co_mb_ref_wr
// bit 16 : vc1_inv_co_mb_ref_wr
// bit 15 : disable_mv_cal_begin_only
// bit 14 : avs_drop_enable
// bit 13:12 : avs_drop_ptr
// bit 11:8 : avs_demu_ctl_reg
// bit 7 : avs_enable
// bit 6 : disable_dblk_hcmd
// bit 5 : disable_mc_hcmd
// bit 4 : first_mode3_set enable
// bit 3 : first_mode3
// bit 2:1 : vc1_profile 0-SP, 1-MP, 2-reserved, 3-AP
// bit 0 : vc1_enable
#define VC1_CONTROL_REG (0x0c1e)
#define P_VC1_CONTROL_REG (volatile unsigned int *)((0x0c1e << 2) + 0xff620000)
#define PMV1_X (0x0c20)
#define P_PMV1_X (volatile unsigned int *)((0x0c20 << 2) + 0xff620000)
#define PMV1_Y (0x0c21)
#define P_PMV1_Y (volatile unsigned int *)((0x0c21 << 2) + 0xff620000)
#define PMV2_X (0x0c22)
#define P_PMV2_X (volatile unsigned int *)((0x0c22 << 2) + 0xff620000)
#define PMV2_Y (0x0c23)
#define P_PMV2_Y (volatile unsigned int *)((0x0c23 << 2) + 0xff620000)
#define PMV3_X (0x0c24)
#define P_PMV3_X (volatile unsigned int *)((0x0c24 << 2) + 0xff620000)
#define PMV3_Y (0x0c25)
#define P_PMV3_Y (volatile unsigned int *)((0x0c25 << 2) + 0xff620000)
#define PMV4_X (0x0c26)
#define P_PMV4_X (volatile unsigned int *)((0x0c26 << 2) + 0xff620000)
#define PMV4_Y (0x0c27)
#define P_PMV4_Y (volatile unsigned int *)((0x0c27 << 2) + 0xff620000)
// Can't use the same address for different defines
// Therefore, create a single define that covers both
// Only appears to be used in micro-code since the VLD hardware is
// hard coded.
// `define M4_TABLE_SELECT 8'h28 // Does this exist in HW ? Added from register_mp2.h
// `define M4_TABLE_OUTPUT 8'h28 // Does this exist in HW ? Added from register_mp2.h
#define M4_TABLE_SELECT (0x0c28)
#define P_M4_TABLE_SELECT (volatile unsigned int *)((0x0c28 << 2) + 0xff620000)
#define M4_CONTROL_REG (0x0c29)
#define P_M4_CONTROL_REG (volatile unsigned int *)((0x0c29 << 2) + 0xff620000)
#define BLOCK_NUM (0x0c2a)
#define P_BLOCK_NUM (volatile unsigned int *)((0x0c2a << 2) + 0xff620000)
#define PATTERN_CODE (0x0c2b)
#define P_PATTERN_CODE (volatile unsigned int *)((0x0c2b << 2) + 0xff620000)
#define MB_INFO (0x0c2c)
#define P_MB_INFO (volatile unsigned int *)((0x0c2c << 2) + 0xff620000)
#define VLD_DC_PRED (0x0c2d)
#define P_VLD_DC_PRED (volatile unsigned int *)((0x0c2d << 2) + 0xff620000)
#define VLD_ERROR_MASK (0x0c2e)
#define P_VLD_ERROR_MASK (volatile unsigned int *)((0x0c2e << 2) + 0xff620000)
#define VLD_DC_PRED_C (0x0c2f)
#define P_VLD_DC_PRED_C (volatile unsigned int *)((0x0c2f << 2) + 0xff620000)
#define LAST_SLICE_MV_ADDR (0x0c30)
#define P_LAST_SLICE_MV_ADDR (volatile unsigned int *)((0x0c30 << 2) + 0xff620000)
#define LAST_MVX (0x0c31)
#define P_LAST_MVX (volatile unsigned int *)((0x0c31 << 2) + 0xff620000)
#define LAST_MVY (0x0c32)
#define P_LAST_MVY (volatile unsigned int *)((0x0c32 << 2) + 0xff620000)
#define VLD_C38 (0x0c38)
#define P_VLD_C38 (volatile unsigned int *)((0x0c38 << 2) + 0xff620000)
#define VLD_C39 (0x0c39)
#define P_VLD_C39 (volatile unsigned int *)((0x0c39 << 2) + 0xff620000)
#define VLD_STATUS (0x0c3a)
#define P_VLD_STATUS (volatile unsigned int *)((0x0c3a << 2) + 0xff620000)
#define VLD_SHIFT_STATUS (0x0c3b)
#define P_VLD_SHIFT_STATUS (volatile unsigned int *)((0x0c3b << 2) + 0xff620000)
// `define VLD_SHIFT_INFO 8'h3b // Does this exist in HW ? used in $ucode/mpeg4
#define VOFF_STATUS (0x0c3c)
#define P_VOFF_STATUS (volatile unsigned int *)((0x0c3c << 2) + 0xff620000)
#define VLD_C3D (0x0c3d)
#define P_VLD_C3D (volatile unsigned int *)((0x0c3d << 2) + 0xff620000)
#define VLD_DBG_INDEX (0x0c3e)
#define P_VLD_DBG_INDEX (volatile unsigned int *)((0x0c3e << 2) + 0xff620000)
// vld_buff_info -- (index == 0)
// Bit11] halt_decode_start_voff
// Bit10] C_pred_error
// Bit[9] I4_pred_error
// Bit[8] I16_pred_error
// Bit[7:6] mv_UR_ready_cnt;
// Bit[5] vld_wr_idx
// Bit[4] iq_rd_idx
// Bit[3] vld_vi_block_rdy_1
// Bit[2] vld_vi_block_rdy_2
// Bit[1] voff_empty_1
// Bit[0] voff_empty_2
// cabac_buff_info_0 -- (index == 1)
// Bit[31] shift_data_ready
// Bit[30:29] Reserved
// Bit[28:24] cabac_buffer_ptr
// Bit[23:0] cabac_buffer
// cabac_buff_info_1 -- (index == 2)
// Bit[31:29] Reserved
// Bit[28:20] Drange
// Bit[19:16] bin_count_4
// Bit[15:13] Reserved
// Bit[12:6] context_mem_do
// Bit[5:3] coeff_state
// Bit[2:0] mvd_state
// h264_mv_present -- (index == 3)
// Bit[31:16] mv_present_l0
// Bit[15:0] mv_present_l1
// h264_mv_cal_info_0 -- (index == 4)
// [31:28] mv_cal_state
// [27:24] direct_spatial_cnt
// Bit[23:21] Reserved
// Bit[20] mv_UR_ready_for_mv_cal
// Bit[19] co_mb_mem_ready_for_mv_cal
// Bit[18] mc_dblk_cmd_if_busy
// Bit[17] h264_co_mb_wr_busy
// Bit[16] H264_cbp_blk_ready
// Bit[15] mc_hcmd_rrdy
// Bit[14] mc_hcmd_srdy
// Bit[13] mc_cmd_if_ready
// Bit[12] mc_hcmd_mv_available
// Bit[11:8] mc_cmd_if_state
// Bit[7] dblk_hcmd_rrdy
// Bit[6] dblk_hcmd_srdy
// Bit[5] dblk_cmd_if_ready
// Bit[4] dblk_hcmd_mv_available
// Bit[3:0] dblk_cmd_if_state
// h264_mv_cal_info_1 -- (index == 5)
// Bit[31:29] Reserved
// Bit[28:24] total_mvd_num_l0
// Bit[23:21] Reserved
// Bit[20:16] mv_cal_ptr_l0
// Bit[15:13] Reserved
// Bit[12:8] mc_hcmd_ptr_l0
// Bit[7:5] Reserved
// Bit[4:0] dblk_hcmd_ptr_l0
// h264_mv_cal_info_2 -- (index == 6)
// Bit[31:29] Reserved
// Bit[28:24] total_mvd_num_l1
// Bit[23:21] Reserved
// Bit[20:16] mv_cal_ptr_l1
// Bit[15:13] Reserved
// Bit[12:8] mc_hcmd_ptr_l1
// Bit[7:5] Reserved
// Bit[4:0] dblk_hcmd_ptr_l1
// h264_co_mb_info -- (index == 7)
// Bit[31:26] Reserved
// Bit[25] mv_scale_cal_busy
// Bit[24:20] co_mv_count
// Bit[19:16] co_mv_process_state
// Bit[15] h264_co_mb_rd_busy
// Bit[15] h264_co_mb_rd_ready
// Bit[13:12] co_mv_transfer_block_cnt
// Bit[11:8] co_mv_transfer_ptr
// Bit[7] co_mv_POC_l1_busy
// Bit[6] h264_weight_scale_cal_en
// Bit[5] weight_cal_busy
// Bit[4] weight_cal_not_finished
// Bit[3:0] weight_process_state
#define VLD_DBG_DATA (0x0c3f)
#define P_VLD_DBG_DATA (volatile unsigned int *)((0x0c3f << 2) + 0xff620000)
// --------------------------------------------
// VIFIFO DDR Interface
// --------------------------------------------
// The VIFIFO start pointer into DDR memory is a 32-bit number
// The Start pointer will automatically be truncated to land on
// an 8-byte boundary. That is, bits [2:0] = 0;
#define VLD_MEM_VIFIFO_START_PTR (0x0c40)
#define P_VLD_MEM_VIFIFO_START_PTR (volatile unsigned int *)((0x0c40 << 2) + 0xff620000)
// The current pointer points so some location between the START and END
// pointers. The current pointer is a BYTE pointer. That is, you can
// point to any BYTE address within the START/END range
#define VLD_MEM_VIFIFO_CURR_PTR (0x0c41)
#define P_VLD_MEM_VIFIFO_CURR_PTR (volatile unsigned int *)((0x0c41 << 2) + 0xff620000)
#define VLD_MEM_VIFIFO_END_PTR (0x0c42)
#define P_VLD_MEM_VIFIFO_END_PTR (volatile unsigned int *)((0x0c42 << 2) + 0xff620000)
#define VLD_MEM_VIFIFO_BYTES_AVAIL (0x0c43)
#define P_VLD_MEM_VIFIFO_BYTES_AVAIL (volatile unsigned int *)((0x0c43 << 2) + 0xff620000)
// VIFIFO FIFO Control
// bit [31:24] viff_empty_int_enable_cpu[7:0]
// bit [23:16] viff_empty_int_enable_amrisc[7:0]
// -bit 23 Video BUFFER < 0x400 Bytes
// -bit 22 Video BUFFER < 0x200 Bytes
// -bit 21 Video BUFFER < 0x100 Bytes
// -bit 20 Video BUFFER < 0x80 Bytes
// -bit 19 Video BUFFER < 0x40 Bytes
// -bit 18 Video BUFFER < 0x20 Bytes
// -bit 17 vififo < 16 double words
// -bit 16 vififo < 8 double words
// bit [15:13] unused
// bit [12] A_urgent
// bit [11] transfer_length 0 - 32x64 Bits per request, 1 - 16x64 Bits per request
// bit [10] use_level Set this bit to 1 to enable filling of the FIFO controlled by the buffer
// level control. If this bit is 0, then use bit[1] to control the enabling of filling
// bit [9] Data Ready. This bit is set when data can be popped
// bit [8] fill busy This bit will be high when we're fetching data from the DDR memory
// To reset this module, set cntl_enable = 0, and then wait for busy = 0.
// After that you can pulse cntl_init to start over
// bit [7] init_with_cntl_init
// bit [6] reserved
// bits [5:3] endian: see $lib/rtl/ddr_endian.v
// bit [2] cntl_empty_en Set to 1 to enable reading the DDR memory FIFO
// Set cntl_empty_en = cntl_fill_en = 0 when pulsing cntl_init
// bit [1] cntl_fill_en Set to 1 to enable reading data from DDR memory
// bit [0] cntl_init: After setting the read pointers, sizes, channel masks
// and read masks, set this bit to 1 and then to 0
// NOTE: You don't need to pulse cntl_init if only the start address is
// being changed
#define VLD_MEM_VIFIFO_CONTROL (0x0c44)
#define P_VLD_MEM_VIFIFO_CONTROL (volatile unsigned int *)((0x0c44 << 2) + 0xff620000)
// --------------------------------------------
// VIFIFO Buffer Level Manager
// --------------------------------------------
#define VLD_MEM_VIFIFO_WP (0x0c45)
#define P_VLD_MEM_VIFIFO_WP (volatile unsigned int *)((0x0c45 << 2) + 0xff620000)
#define VLD_MEM_VIFIFO_RP (0x0c46)
#define P_VLD_MEM_VIFIFO_RP (volatile unsigned int *)((0x0c46 << 2) + 0xff620000)
#define VLD_MEM_VIFIFO_LEVEL (0x0c47)
#define P_VLD_MEM_VIFIFO_LEVEL (volatile unsigned int *)((0x0c47 << 2) + 0xff620000)
//
// bit [8] use_parser_video2_wp
// bit [7] vbuf2_out_manual
// bit [6] vbuf_out_manual
// bit [5] empty (ReadOnly)
// bit [4] full (ReadOnly)
// bit [3:2] reserved
// bit [1] manual mode Set to 1 for manual write pointer mode
// bit [0] Init Set high then low after everything has been initialized
#define VLD_MEM_VIFIFO_BUF_CNTL (0x0c48)
#define P_VLD_MEM_VIFIFO_BUF_CNTL (volatile unsigned int *)((0x0c48 << 2) + 0xff620000)
// bit 31:16 -- drop_bytes
// bit 15:14 -- drop_status (Read-Only)
// bit 13:12 -- sync_match_position (Read-Only)
// bit 11:6 -- reserved
// bit 5:4 -- TIME_STAMP_NUMBER, 0-32bits, 1-64bits, 2-96bits, 3-128bits
// bit 3 -- stamp_soft_reset
// bit 2 -- TIME_STAMP_length_enable
// bit 1 -- TIME_STAMP_sync64_enable
// bit 0 -- TIME_STAMP_enable
#define VLD_TIME_STAMP_CNTL (0x0c49)
#define P_VLD_TIME_STAMP_CNTL (volatile unsigned int *)((0x0c49 << 2) + 0xff620000)
// bit 31:0 -- TIME_STAMP_SYNC_CODE_0
#define VLD_TIME_STAMP_SYNC_0 (0x0c4a)
#define P_VLD_TIME_STAMP_SYNC_0 (volatile unsigned int *)((0x0c4a << 2) + 0xff620000)
// bit 31:0 -- TIME_STAMP_SYNC_CODE_1
#define VLD_TIME_STAMP_SYNC_1 (0x0c4b)
#define P_VLD_TIME_STAMP_SYNC_1 (volatile unsigned int *)((0x0c4b << 2) + 0xff620000)
// bit 31:0 TIME_STAMP_0
#define VLD_TIME_STAMP_0 (0x0c4c)
#define P_VLD_TIME_STAMP_0 (volatile unsigned int *)((0x0c4c << 2) + 0xff620000)
// bit 31:0 TIME_STAMP_1
#define VLD_TIME_STAMP_1 (0x0c4d)
#define P_VLD_TIME_STAMP_1 (volatile unsigned int *)((0x0c4d << 2) + 0xff620000)
// bit 31:0 TIME_STAMP_2
#define VLD_TIME_STAMP_2 (0x0c4e)
#define P_VLD_TIME_STAMP_2 (volatile unsigned int *)((0x0c4e << 2) + 0xff620000)
// bit 31:0 TIME_STAMP_3
#define VLD_TIME_STAMP_3 (0x0c4f)
#define P_VLD_TIME_STAMP_3 (volatile unsigned int *)((0x0c4f << 2) + 0xff620000)
// bit 31:0 TIME_STAMP_LENGTH
#define VLD_TIME_STAMP_LENGTH (0x0c50)
#define P_VLD_TIME_STAMP_LENGTH (volatile unsigned int *)((0x0c50 << 2) + 0xff620000)
// bit 15:0 vififo_rd_count
#define VLD_MEM_VIFIFO_WRAP_COUNT (0x0c51)
#define P_VLD_MEM_VIFIFO_WRAP_COUNT (volatile unsigned int *)((0x0c51 << 2) + 0xff620000)
// bit 29:24 A_brst_num
// bit 21:16 A_id
// bit 15:0 level_hold
#define VLD_MEM_VIFIFO_MEM_CTL (0x0c52)
#define P_VLD_MEM_VIFIFO_MEM_CTL (volatile unsigned int *)((0x0c52 << 2) + 0xff620000)
#define VLD_MEM_VBUF_RD_PTR (0x0c53)
#define P_VLD_MEM_VBUF_RD_PTR (volatile unsigned int *)((0x0c53 << 2) + 0xff620000)
#define VLD_MEM_VBUF2_RD_PTR (0x0c54)
#define P_VLD_MEM_VBUF2_RD_PTR (volatile unsigned int *)((0x0c54 << 2) + 0xff620000)
#define VLD_MEM_SWAP_ADDR (0x0c55)
#define P_VLD_MEM_SWAP_ADDR (volatile unsigned int *)((0x0c55 << 2) + 0xff620000)
// bit[23:16] - swap_d_count (Read Only)
// bit[15:8] - swap_a_count (Read Only)
// bit [7] - swap busy (Read Only)
// bit [6:2] - reserved
// bit [1] - 1 - STORE to Memory, 0 - LOAD from Memory
// bit [0] - swap active
#define VLD_MEM_SWAP_CTL (0x0c56)
#define P_VLD_MEM_SWAP_CTL (volatile unsigned int *)((0x0c56 << 2) + 0xff620000)
//
// Closing file: vld_regs.h
//
//------------------------------------------------------------------------------
// IQ/IDCT module level register offset
//------------------------------------------------------------------------------
//
// Reading file: iqidct_regs.h
//
//========================================================================
// IQ/IDCT module level register offset
//========================================================================
// -----------------------------------------------
// CBUS_BASE: DOS_VDEC_IQIDCT_CBUS_BASE = 0x0e
// -----------------------------------------------
#define VCOP_CTRL_REG (0x0e00)
#define P_VCOP_CTRL_REG (volatile unsigned int *)((0x0e00 << 2) + 0xff620000)
#define QP_CTRL_REG (0x0e01)
#define P_QP_CTRL_REG (volatile unsigned int *)((0x0e01 << 2) + 0xff620000)
#define INTRA_QUANT_MATRIX (0x0e02)
#define P_INTRA_QUANT_MATRIX (volatile unsigned int *)((0x0e02 << 2) + 0xff620000)
#define NON_I_QUANT_MATRIX (0x0e03)
#define P_NON_I_QUANT_MATRIX (volatile unsigned int *)((0x0e03 << 2) + 0xff620000)
#define DC_SCALER (0x0e04)
#define P_DC_SCALER (volatile unsigned int *)((0x0e04 << 2) + 0xff620000)
#define DC_AC_CTRL (0x0e05)
#define P_DC_AC_CTRL (volatile unsigned int *)((0x0e05 << 2) + 0xff620000)
// `define RV_AI_CTRL 8'h05 // ONLY for $ucode/real/amrisc/rv.s reg value from apollo
#define DC_AC_SCALE_MUL (0x0e06)
#define P_DC_AC_SCALE_MUL (volatile unsigned int *)((0x0e06 << 2) + 0xff620000)
#define DC_AC_SCALE_DIV (0x0e07)
#define P_DC_AC_SCALE_DIV (volatile unsigned int *)((0x0e07 << 2) + 0xff620000)
// `define DC_AC_SCALE_RESULT 8'h06
// `define RESERVED_E07 8'h07
#define POWER_CTL_IQIDCT (0x0e08)
#define P_POWER_CTL_IQIDCT (volatile unsigned int *)((0x0e08 << 2) + 0xff620000)
#define RV_AI_Y_X (0x0e09)
#define P_RV_AI_Y_X (volatile unsigned int *)((0x0e09 << 2) + 0xff620000)
#define RV_AI_U_X (0x0e0a)
#define P_RV_AI_U_X (volatile unsigned int *)((0x0e0a << 2) + 0xff620000)
#define RV_AI_V_X (0x0e0b)
#define P_RV_AI_V_X (volatile unsigned int *)((0x0e0b << 2) + 0xff620000)
// bit 15:0 will count up when rv_ai_mb finished when non zero
// and rv_ai_mb_finished_int will be generate when this is not zero
#define RV_AI_MB_COUNT (0x0e0c)
#define P_RV_AI_MB_COUNT (volatile unsigned int *)((0x0e0c << 2) + 0xff620000)
// For H264 I in PB picture Use -- dma type : h264_next_intra_dma
#define NEXT_INTRA_DMA_ADDRESS (0x0e0d)
#define P_NEXT_INTRA_DMA_ADDRESS (volatile unsigned int *)((0x0e0d << 2) + 0xff620000)
// Bit 16 -- dcac_dma_read_cache_disable
// Bit 15 -- dcac_dma_urgent
// Bit 14 -- nv21_swap
// Bit 13 -- nv21_top_dma
// Bit 12 -- reset_rv_ai_wait_rd_data
// Bit 11 -- set_rv_ai_wait_rd_data [12:11] = 3 means only dec 1 (For Skipped MB of MBAFF)
// Bit 10 -- rv_ai_wait_rd_data (Read Only)
// Bit 9 -- enable_rv_ai_wait_rd_data
// Bit 8 -- disable_vc1_mv_update
// Bit 7 -- pred_dc_signed
// Bit 6 -- inc_vld_ready_count
// Bit 5 -- dec_vld_ready_count
// Bit 4 -- disable_ref_bidir_fix
// Bit 3 -- disable_MV_UL_l1_bot_fix
// Bit 2 -- disable_mb_aff_fix
// Bit 1 -- canvas_addr_7
// Bit 0 -- constrained_intra_pred_flag for H264
#define IQIDCT_CONTROL (0x0e0e)
#define P_IQIDCT_CONTROL (volatile unsigned int *)((0x0e0e << 2) + 0xff620000)
// Bit[31:19] Reserved
// Bit[18] iq_waiting
// Bit[17] iq_om_wr_idx
// Bit[16] iq_om_rd_idx
// Bit[15] iq_om_busy
// Bit[14] iq_om_2_busy
// Bit[13] idx_fifo_0
// Bit[12] idx_fifo_1
// Bit[11] idx_fifo_2
// Bit[10] idx_fifo_3
// Bit[9] idx_fifo_4
// Bit[8] idx_fifo_5
// Bit[7] idx_fifo_6
// Bit[6] idx_fifo_7
// Bit[5:3] idx_fifo_wp
// Bit[2:0] idx_fifo_rp
#define IQIDCT_DEBUG_INFO_0 (0x0e0f)
#define P_IQIDCT_DEBUG_INFO_0 (volatile unsigned int *)((0x0e0f << 2) + 0xff620000)
// For RTL Simulation Only
#define DEBLK_CMD (0x0e10)
#define P_DEBLK_CMD (volatile unsigned int *)((0x0e10 << 2) + 0xff620000)
// Bit[15+16] ds_mc_valid_2
// Bit[14+16] new_idct1_rd_idx_2
// Bit[13+16] new_idct1_wr_idx_2
// Bit[12+16] idct1_buff0_busy_2
// Bit[11+16] idct1_buff1_busy_2
// Bit[10+16] new_idct1_busy_2
// Bit[9+16] iq_om_8val_2
// Bit[8+16] idct1_pipe_busy_2
// Bit[7+16] wait_mb_left_finish_hold_2
// Bit[6+16] new_idct2_rd_idx_2
// Bit[5+16] new_idct2_wr_idx_2
// Bit[4+16] idct2_buff0_busy_2
// Bit[3+16] idct2_buff1_busy_2
// Bit[2+16] idct2_en_2
// Bit[1+16] new_idct2_busy_2
// Bit[0+16] new_idct1_ready_2
// Bit[15] ds_mc_valid_1
// Bit[14] new_idct1_rd_idx_1
// Bit[13] new_idct1_wr_idx_1
// Bit[12] idct1_buff0_busy_1
// Bit[11] idct1_buff1_busy_1
// Bit[10] new_idct1_busy_1
// Bit[9] iq_om_8val_1
// Bit[8] idct1_pipe_busy_1
// Bit[7] wait_mb_left_finish_hold_1
// Bit[6] new_idct2_rd_idx_1
// Bit[5] new_idct2_wr_idx_1
// Bit[4] idct2_buff0_busy_1
// Bit[3] idct2_buff1_busy_1
// Bit[2] idct2_en_1
// Bit[1] new_idct2_busy_1
// Bit[0] new_idct1_ready_1
#define IQIDCT_DEBUG_IDCT (0x0e11)
#define P_IQIDCT_DEBUG_IDCT (volatile unsigned int *)((0x0e11 << 2) + 0xff620000)
// bit 31 -- convas_enable
// bit 30:24 -- convas_x_count ( 8 pixels / 64 bits )
// bit 23:16 -- convas_y_count
// bit 15 -- dcac_dma_busy
// bit 14 -- dcac_dma_read_cache_active
// bit 13:8 -- dcac_dma_count
// bit 7 -- dcac_dma_rw
// bit 6 -- dcac_skip_read_mode
// bit 5:0 -- dcac_dma_offset
#define DCAC_DMA_CTRL (0x0e12)
#define P_DCAC_DMA_CTRL (volatile unsigned int *)((0x0e12 << 2) + 0xff620000)
// when (convas_enable == 0 )
// bit 31:0 dcac_dma_addr
// when (convas_enable == 1 )
// bit 31:25 canvas_addr (7 bits)
// bit 24:12 convas_y_start ( 13 btis )
// bit 11:0 convas_x_start ( 12 btis )
#define DCAC_DMA_ADDRESS (0x0e13)
#define P_DCAC_DMA_ADDRESS (volatile unsigned int *)((0x0e13 << 2) + 0xff620000)
// bit 7:0 -- dcac_cpu_addr
#define DCAC_CPU_ADDRESS (0x0e14)
#define P_DCAC_CPU_ADDRESS (volatile unsigned int *)((0x0e14 << 2) + 0xff620000)
// bit 31:0 -- dcac_cpu_data
#define DCAC_CPU_DATA (0x0e15)
#define P_DCAC_CPU_DATA (volatile unsigned int *)((0x0e15 << 2) + 0xff620000)
// bit 31:19 -- reserved
// bit 18:16 -- block_num_reg -- Read-Only
// bit 15:0 -- dcac_mb_count
#define DCAC_MB_COUNT (0x0e16)
#define P_DCAC_MB_COUNT (volatile unsigned int *)((0x0e16 << 2) + 0xff620000)
// bit 31:18 -- reserved
// For H264 :
// bit 17:2 -- h264_quant
// bit 11:6 -- h264_quant_c
// bit 5:0 -- h264_quant_c
// For VC1 :
// bit 17 -- qindex_GT_8
// bit 16 -- HalfQPStep
// bit 15:12 -- eQuantMode
// bit 11:6 -- AltPQuant
// bit 5:0 -- PQuant
//
#define IQ_QUANT (0x0e17)
#define P_IQ_QUANT (volatile unsigned int *)((0x0e17 << 2) + 0xff620000)
// bit 31:24 -- bitplane_width
// bit 23:16 -- bitplane_height
// bit 15:14 -- bitplane_start_x
// bit 13:12 -- bitplane_start_y
// bit 11:4 -- reserved
// bit 3:1 -- bitplane_type
// bit 0 -- bitplane_busy
#define VC1_BITPLANE_CTL (0x0e18)
#define P_VC1_BITPLANE_CTL (volatile unsigned int *)((0x0e18 << 2) + 0xff620000)
// bit 24:16 -- wq_param1
// bit 8: 0 -- wq_param0
#define AVSP_IQ_WQ_PARAM_01 (0x0e19)
#define P_AVSP_IQ_WQ_PARAM_01 (volatile unsigned int *)((0x0e19 << 2) + 0xff620000)
// bit 24:16 -- wq_param3
// bit 8: 0 -- wq_param2
#define AVSP_IQ_WQ_PARAM_23 (0x0e1a)
#define P_AVSP_IQ_WQ_PARAM_23 (volatile unsigned int *)((0x0e1a << 2) + 0xff620000)
// bit 24:16 -- wq_param5
// bit 8: 0 -- wq_param4
#define AVSP_IQ_WQ_PARAM_45 (0x0e1b)
#define P_AVSP_IQ_WQ_PARAM_45 (volatile unsigned int *)((0x0e1b << 2) + 0xff620000)
// bit 31 -- weight_quant_en
// bit 17:16 -- current_scene_model
// bit 12: 8 -- chroma_qp_delta_cr
// bit 4: 0 -- chroma_qp_delta_cb
#define AVSP_IQ_CTL (0x0e1c)
#define P_AVSP_IQ_CTL (volatile unsigned int *)((0x0e1c << 2) + 0xff620000)
#define RAM_TEST_CMD 0x002
#define RAM_TEST_ADDR 0x003
#define RAM_TEST_DATAH 0x004
#define RAM_TEST_DATAL 0x005
#define RAM_TEST_RD_CMD 0x0000
#define RAM_TEST_WR_CMD 0x8000
#define IDCT_TM2_PT0 0x0001
#define IDCT_TM2_PT1 0x0002
#define IDCT_TM1_PT0 0x0004
#define IDCT_TM1_PT1 0x0008
#define IQ_OMEM_PT0 0x0010
#define IQ_OMEM_PT1 0x0020
#define MC_IMEM_PT0 0x0040
#define ALL_RAM_PTS 0x007f
//======================================
// VCOP Control Register Bits
//
//======================================
//`define IQIDCT_RESET 16'h0001 // Bit 0
#define QM_WEN 0x0002 // Bit 1
#define IQIDCT_ENABLE 0x0004 // Bit 2
#define INTRA_QM 0x0008 // Bit 3 0 = Use default; 1 = use loaded
#define NINTRA_QM 0x0010 // Bit 4 0 = Use default; 1 = use loaded
//======================================
// QP Control Register Bits
//
//======================================
#define INTRA_MODE 0x0080 // Bit 7
// Duplicate Address: When actually used
// please move to a different address
// `define FLD_DCT_TYPE 16'h0100 // Bit 8 0 = Frame DCT; 1 = field DCT
//
// Closing file: iqidct_regs.h
//
//------------------------------------------------------------------------------
// VCPU module level register offset
//------------------------------------------------------------------------------
//
// Reading file: vcpu_regs.h
//
//========================================================================
// VCPU module level register offset
//========================================================================
// -----------------------------------------------
// CBUS_BASE: DOS_VDEC_VCPU_CBUS_BASE = 0x03
// -----------------------------------------------
#define MSP (0x0300)
#define P_MSP (volatile unsigned int *)((0x0300 << 2) + 0xff620000)
#define MPSR (0x0301)
#define P_MPSR (volatile unsigned int *)((0x0301 << 2) + 0xff620000)
#define MINT_VEC_BASE (0x0302)
#define P_MINT_VEC_BASE (volatile unsigned int *)((0x0302 << 2) + 0xff620000)
#define MCPU_INTR_GRP (0x0303)
#define P_MCPU_INTR_GRP (volatile unsigned int *)((0x0303 << 2) + 0xff620000)
#define MCPU_INTR_MSK (0x0304)
#define P_MCPU_INTR_MSK (volatile unsigned int *)((0x0304 << 2) + 0xff620000)
#define MCPU_INTR_REQ (0x0305)
#define P_MCPU_INTR_REQ (volatile unsigned int *)((0x0305 << 2) + 0xff620000)
#define MPC_P (0x0306)
#define P_MPC_P (volatile unsigned int *)((0x0306 << 2) + 0xff620000)
#define MPC_D (0x0307)
#define P_MPC_D (volatile unsigned int *)((0x0307 << 2) + 0xff620000)
#define MPC_E (0x0308)
#define P_MPC_E (volatile unsigned int *)((0x0308 << 2) + 0xff620000)
#define MPC_W (0x0309)
#define P_MPC_W (volatile unsigned int *)((0x0309 << 2) + 0xff620000)
#define MINDEX0_REG (0x030a)
#define P_MINDEX0_REG (volatile unsigned int *)((0x030a << 2) + 0xff620000)
#define MINDEX1_REG (0x030b)
#define P_MINDEX1_REG (volatile unsigned int *)((0x030b << 2) + 0xff620000)
#define MINDEX2_REG (0x030c)
#define P_MINDEX2_REG (volatile unsigned int *)((0x030c << 2) + 0xff620000)
#define MINDEX3_REG (0x030d)
#define P_MINDEX3_REG (volatile unsigned int *)((0x030d << 2) + 0xff620000)
#define MINDEX4_REG (0x030e)
#define P_MINDEX4_REG (volatile unsigned int *)((0x030e << 2) + 0xff620000)
#define MINDEX5_REG (0x030f)
#define P_MINDEX5_REG (volatile unsigned int *)((0x030f << 2) + 0xff620000)
#define MINDEX6_REG (0x0310)
#define P_MINDEX6_REG (volatile unsigned int *)((0x0310 << 2) + 0xff620000)
#define MINDEX7_REG (0x0311)
#define P_MINDEX7_REG (volatile unsigned int *)((0x0311 << 2) + 0xff620000)
#define MMIN_REG (0x0312)
#define P_MMIN_REG (volatile unsigned int *)((0x0312 << 2) + 0xff620000)
#define MMAX_REG (0x0313)
#define P_MMAX_REG (volatile unsigned int *)((0x0313 << 2) + 0xff620000)
#define MBREAK0_REG (0x0314)
#define P_MBREAK0_REG (volatile unsigned int *)((0x0314 << 2) + 0xff620000)
#define MBREAK1_REG (0x0315)
#define P_MBREAK1_REG (volatile unsigned int *)((0x0315 << 2) + 0xff620000)
#define MBREAK2_REG (0x0316)
#define P_MBREAK2_REG (volatile unsigned int *)((0x0316 << 2) + 0xff620000)
#define MBREAK3_REG (0x0317)
#define P_MBREAK3_REG (volatile unsigned int *)((0x0317 << 2) + 0xff620000)
#define MBREAK_TYPE (0x0318)
#define P_MBREAK_TYPE (volatile unsigned int *)((0x0318 << 2) + 0xff620000)
#define MBREAK_CTRL (0x0319)
#define P_MBREAK_CTRL (volatile unsigned int *)((0x0319 << 2) + 0xff620000)
#define MBREAK_STAUTS (0x031a)
#define P_MBREAK_STAUTS (volatile unsigned int *)((0x031a << 2) + 0xff620000)
#define MDB_ADDR_REG (0x031b)
#define P_MDB_ADDR_REG (volatile unsigned int *)((0x031b << 2) + 0xff620000)
#define MDB_DATA_REG (0x031c)
#define P_MDB_DATA_REG (volatile unsigned int *)((0x031c << 2) + 0xff620000)
#define MDB_CTRL (0x031d)
#define P_MDB_CTRL (volatile unsigned int *)((0x031d << 2) + 0xff620000)
#define MSFTINT0 (0x031e)
#define P_MSFTINT0 (volatile unsigned int *)((0x031e << 2) + 0xff620000)
#define MSFTINT1 (0x031f)
#define P_MSFTINT1 (volatile unsigned int *)((0x031f << 2) + 0xff620000)
#define CSP (0x0320)
#define P_CSP (volatile unsigned int *)((0x0320 << 2) + 0xff620000)
#define CPSR (0x0321)
#define P_CPSR (volatile unsigned int *)((0x0321 << 2) + 0xff620000)
#define CINT_VEC_BASE (0x0322)
#define P_CINT_VEC_BASE (volatile unsigned int *)((0x0322 << 2) + 0xff620000)
#define CCPU_INTR_GRP (0x0323)
#define P_CCPU_INTR_GRP (volatile unsigned int *)((0x0323 << 2) + 0xff620000)
#define CCPU_INTR_MSK (0x0324)
#define P_CCPU_INTR_MSK (volatile unsigned int *)((0x0324 << 2) + 0xff620000)
#define CCPU_INTR_REQ (0x0325)
#define P_CCPU_INTR_REQ (volatile unsigned int *)((0x0325 << 2) + 0xff620000)
#define CPC_P (0x0326)
#define P_CPC_P (volatile unsigned int *)((0x0326 << 2) + 0xff620000)
#define CPC_D (0x0327)
#define P_CPC_D (volatile unsigned int *)((0x0327 << 2) + 0xff620000)
#define CPC_E (0x0328)
#define P_CPC_E (volatile unsigned int *)((0x0328 << 2) + 0xff620000)
#define CPC_W (0x0329)
#define P_CPC_W (volatile unsigned int *)((0x0329 << 2) + 0xff620000)
#define CINDEX0_REG (0x032a)
#define P_CINDEX0_REG (volatile unsigned int *)((0x032a << 2) + 0xff620000)
#define CINDEX1_REG (0x032b)
#define P_CINDEX1_REG (volatile unsigned int *)((0x032b << 2) + 0xff620000)
#define CINDEX2_REG (0x032c)
#define P_CINDEX2_REG (volatile unsigned int *)((0x032c << 2) + 0xff620000)
#define CINDEX3_REG (0x032d)
#define P_CINDEX3_REG (volatile unsigned int *)((0x032d << 2) + 0xff620000)
#define CINDEX4_REG (0x032e)
#define P_CINDEX4_REG (volatile unsigned int *)((0x032e << 2) + 0xff620000)
#define CINDEX5_REG (0x032f)
#define P_CINDEX5_REG (volatile unsigned int *)((0x032f << 2) + 0xff620000)
#define CINDEX6_REG (0x0330)
#define P_CINDEX6_REG (volatile unsigned int *)((0x0330 << 2) + 0xff620000)
#define CINDEX7_REG (0x0331)
#define P_CINDEX7_REG (volatile unsigned int *)((0x0331 << 2) + 0xff620000)
#define CMIN_REG (0x0332)
#define P_CMIN_REG (volatile unsigned int *)((0x0332 << 2) + 0xff620000)
#define CMAX_REG (0x0333)
#define P_CMAX_REG (volatile unsigned int *)((0x0333 << 2) + 0xff620000)
#define CBREAK0_REG (0x0334)
#define P_CBREAK0_REG (volatile unsigned int *)((0x0334 << 2) + 0xff620000)
#define CBREAK1_REG (0x0335)
#define P_CBREAK1_REG (volatile unsigned int *)((0x0335 << 2) + 0xff620000)
#define CBREAK2_REG (0x0336)
#define P_CBREAK2_REG (volatile unsigned int *)((0x0336 << 2) + 0xff620000)
#define CBREAK3_REG (0x0337)
#define P_CBREAK3_REG (volatile unsigned int *)((0x0337 << 2) + 0xff620000)
#define CBREAK_TYPE (0x0338)
#define P_CBREAK_TYPE (volatile unsigned int *)((0x0338 << 2) + 0xff620000)
#define CBREAK_CTRL (0x0339)
#define P_CBREAK_CTRL (volatile unsigned int *)((0x0339 << 2) + 0xff620000)
#define CBREAK_STAUTS (0x033a)
#define P_CBREAK_STAUTS (volatile unsigned int *)((0x033a << 2) + 0xff620000)
#define CDB_ADDR_REG (0x033b)
#define P_CDB_ADDR_REG (volatile unsigned int *)((0x033b << 2) + 0xff620000)
#define CDB_DATA_REG (0x033c)
#define P_CDB_DATA_REG (volatile unsigned int *)((0x033c << 2) + 0xff620000)
#define CDB_CTRL (0x033d)
#define P_CDB_CTRL (volatile unsigned int *)((0x033d << 2) + 0xff620000)
#define CSFTINT0 (0x033e)
#define P_CSFTINT0 (volatile unsigned int *)((0x033e << 2) + 0xff620000)
#define CSFTINT1 (0x033f)
#define P_CSFTINT1 (volatile unsigned int *)((0x033f << 2) + 0xff620000)
#define IMEM_DMA_CTRL (0x0340)
#define P_IMEM_DMA_CTRL (volatile unsigned int *)((0x0340 << 2) + 0xff620000)
#define IMEM_DMA_ADR (0x0341)
#define P_IMEM_DMA_ADR (volatile unsigned int *)((0x0341 << 2) + 0xff620000)
#define IMEM_DMA_COUNT (0x0342)
#define P_IMEM_DMA_COUNT (volatile unsigned int *)((0x0342 << 2) + 0xff620000)
// bit[29:24] A_brst_num_imem
// bit[21:16] A_id_imem
// bit[11:0] wrrsp_count_imem (reserved)
#define WRRSP_IMEM (0x0343)
#define P_WRRSP_IMEM (volatile unsigned int *)((0x0343 << 2) + 0xff620000)
#define LMEM_DMA_CTRL (0x0350)
#define P_LMEM_DMA_CTRL (volatile unsigned int *)((0x0350 << 2) + 0xff620000)
#define LMEM_DMA_ADR (0x0351)
#define P_LMEM_DMA_ADR (volatile unsigned int *)((0x0351 << 2) + 0xff620000)
#define LMEM_DMA_COUNT (0x0352)
#define P_LMEM_DMA_COUNT (volatile unsigned int *)((0x0352 << 2) + 0xff620000)
// bit[29:24] A_brst_num_lmem
// bit[21:16] A_id_lmem
// bit[11:0] wrrsp_count_lmem
#define WRRSP_LMEM (0x0353)
#define P_WRRSP_LMEM (volatile unsigned int *)((0x0353 << 2) + 0xff620000)
#define MAC_CTRL1 (0x0360)
#define P_MAC_CTRL1 (volatile unsigned int *)((0x0360 << 2) + 0xff620000)
#define ACC0REG1 (0x0361)
#define P_ACC0REG1 (volatile unsigned int *)((0x0361 << 2) + 0xff620000)
#define ACC1REG1 (0x0362)
#define P_ACC1REG1 (volatile unsigned int *)((0x0362 << 2) + 0xff620000)
#define MAC_CTRL2 (0x0370)
#define P_MAC_CTRL2 (volatile unsigned int *)((0x0370 << 2) + 0xff620000)
#define ACC0REG2 (0x0371)
#define P_ACC0REG2 (volatile unsigned int *)((0x0371 << 2) + 0xff620000)
#define ACC1REG2 (0x0372)
#define P_ACC1REG2 (volatile unsigned int *)((0x0372 << 2) + 0xff620000)
#define CPU_TRACE (0x0380)
#define P_CPU_TRACE (volatile unsigned int *)((0x0380 << 2) + 0xff620000)
//
// Closing file: vcpu_regs.h
//
//------------------------------------------------------------------------------
// HENC module level register offset
//------------------------------------------------------------------------------
//
// Reading file: henc_regs.h
//
//========================================================================
// MDEC module level register offset
//========================================================================
// -----------------------------------------------
// CBUS_BASE: DOS_HCODEC_HENC_CBUS_BASE = 0x0a
// -----------------------------------------------
#define HENC_SCRATCH_0 (0x1ac0)
#define P_HENC_SCRATCH_0 (volatile unsigned int *)((0x1ac0 << 2) + 0xff620000)
#define HENC_SCRATCH_1 (0x1ac1)
#define P_HENC_SCRATCH_1 (volatile unsigned int *)((0x1ac1 << 2) + 0xff620000)
#define HENC_SCRATCH_2 (0x1ac2)
#define P_HENC_SCRATCH_2 (volatile unsigned int *)((0x1ac2 << 2) + 0xff620000)
#define HENC_SCRATCH_3 (0x1ac3)
#define P_HENC_SCRATCH_3 (volatile unsigned int *)((0x1ac3 << 2) + 0xff620000)
#define HENC_SCRATCH_4 (0x1ac4)
#define P_HENC_SCRATCH_4 (volatile unsigned int *)((0x1ac4 << 2) + 0xff620000)
#define HENC_SCRATCH_5 (0x1ac5)
#define P_HENC_SCRATCH_5 (volatile unsigned int *)((0x1ac5 << 2) + 0xff620000)
#define HENC_SCRATCH_6 (0x1ac6)
#define P_HENC_SCRATCH_6 (volatile unsigned int *)((0x1ac6 << 2) + 0xff620000)
#define HENC_SCRATCH_7 (0x1ac7)
#define P_HENC_SCRATCH_7 (volatile unsigned int *)((0x1ac7 << 2) + 0xff620000)
#define HENC_SCRATCH_8 (0x1ac8)
#define P_HENC_SCRATCH_8 (volatile unsigned int *)((0x1ac8 << 2) + 0xff620000)
#define HENC_SCRATCH_9 (0x1ac9)
#define P_HENC_SCRATCH_9 (volatile unsigned int *)((0x1ac9 << 2) + 0xff620000)
#define HENC_SCRATCH_A (0x1aca)
#define P_HENC_SCRATCH_A (volatile unsigned int *)((0x1aca << 2) + 0xff620000)
#define HENC_SCRATCH_B (0x1acb)
#define P_HENC_SCRATCH_B (volatile unsigned int *)((0x1acb << 2) + 0xff620000)
#define HENC_SCRATCH_C (0x1acc)
#define P_HENC_SCRATCH_C (volatile unsigned int *)((0x1acc << 2) + 0xff620000)
#define HENC_SCRATCH_D (0x1acd)
#define P_HENC_SCRATCH_D (volatile unsigned int *)((0x1acd << 2) + 0xff620000)
#define HENC_SCRATCH_E (0x1ace)
#define P_HENC_SCRATCH_E (volatile unsigned int *)((0x1ace << 2) + 0xff620000)
#define HENC_SCRATCH_F (0x1acf)
#define P_HENC_SCRATCH_F (volatile unsigned int *)((0x1acf << 2) + 0xff620000)
#define HENC_SCRATCH_G (0x1ad0)
#define P_HENC_SCRATCH_G (volatile unsigned int *)((0x1ad0 << 2) + 0xff620000)
#define HENC_SCRATCH_H (0x1ad1)
#define P_HENC_SCRATCH_H (volatile unsigned int *)((0x1ad1 << 2) + 0xff620000)
#define HENC_SCRATCH_I (0x1ad2)
#define P_HENC_SCRATCH_I (volatile unsigned int *)((0x1ad2 << 2) + 0xff620000)
#define HENC_SCRATCH_J (0x1ad3)
#define P_HENC_SCRATCH_J (volatile unsigned int *)((0x1ad3 << 2) + 0xff620000)
#define HENC_SCRATCH_K (0x1ad4)
#define P_HENC_SCRATCH_K (volatile unsigned int *)((0x1ad4 << 2) + 0xff620000)
#define HENC_SCRATCH_L (0x1ad5)
#define P_HENC_SCRATCH_L (volatile unsigned int *)((0x1ad5 << 2) + 0xff620000)
#define HENC_SCRATCH_M (0x1ad6)
#define P_HENC_SCRATCH_M (volatile unsigned int *)((0x1ad6 << 2) + 0xff620000)
#define HENC_SCRATCH_N (0x1ad7)
#define P_HENC_SCRATCH_N (volatile unsigned int *)((0x1ad7 << 2) + 0xff620000)
// bit [7:0] data_feed_buff_id
#define IE_DATA_FEED_BUFF_INFO (0x1ad8)
#define P_IE_DATA_FEED_BUFF_INFO (volatile unsigned int *)((0x1ad8 << 2) + 0xff620000)
//
// Closing file: henc_regs.h
//
//------------------------------------------------------------------------------
// VLC module level register offset
//------------------------------------------------------------------------------
//
// Reading file: vlc_regs.h
//
//========================================================================
// VLC module level register offset
//========================================================================
// -----------------------------------------------
// CBUS_BASE: DOS_HCODEC_VLC_CBUS_BASE = 0x0d
// -----------------------------------------------
// Bit[31:28] - henc_status
// Bit[27:8] - reserved
// Bit[7] mc_hcmd_buff_enable
// Bit[6] mc_hcmd_use_mc_hcmd_buff
// Bit[5] mc_hcmd_use_mc_hcmd_hw_start
// Bit[4] no_mc_out_null_non_skipped_mb
// Bit[3] mc_out_even_skipped_mb
// Bit[2] - hcmd_enable
// Bit[1] - vlc_control_enable (0 will treat as soft_reset)
// Bit[0] - vlc_input_enable (enable input interface)
#define VLC_STATUS_CTRL (0x1d00)
#define P_VLC_STATUS_CTRL (volatile unsigned int *)((0x1d00 << 2) + 0xff620000)
// Bit [31] - small_luma_ignore_chroma
// Bit[30:16] - Reserved
// Bit [15] - enable_free_clk_mc_hcmd_buff
// Bit [14] - enable_free_clk_reg
// Bit [13] - enable_free_clk_stream
// Bit [12] - enable_free_clk_pre_buff
// Bit [11] - enable_free_clk_vb_buff
// Bit [10] - enable_free_clk_dc_input
// Bit [9] - enable_free_clk_input
// Bit [8] - enable_free_clk_mv_cal
// Bit [7] - enable_free_clk_status
// Bit [6] - enable_free_clk_mc_dblk_cmd_if
// Bit [5] - disable_mvd_enc_finished
// Bit [4] - I16MB_share_ipred_mode_with_I4MB
// Bit [3] - fixed_picture_qp
// Bit [2] - use_set_b8_mode ( not used now)
// Bit [1] - use_set_mb_skip_run
// Bit [0] - pop_coeff_even_all_zero
#define VLC_CONFIG (0x1d01)
#define P_VLC_CONFIG (volatile unsigned int *)((0x1d01 << 2) + 0xff620000)
// --------------------------------------------
// Bitstream DDR Interface
// --------------------------------------------
#define VLC_VB_START_PTR (0x1d10)
#define P_VLC_VB_START_PTR (volatile unsigned int *)((0x1d10 << 2) + 0xff620000)
#define VLC_VB_END_PTR (0x1d11)
#define P_VLC_VB_END_PTR (volatile unsigned int *)((0x1d11 << 2) + 0xff620000)
#define VLC_VB_WR_PTR (0x1d12)
#define P_VLC_VB_WR_PTR (volatile unsigned int *)((0x1d12 << 2) + 0xff620000)
// Read Only, VLC_VB_SW_RD_PTR or VLC_VB_HW_RD_PTR
#define VLC_VB_RD_PTR (0x1d13)
#define P_VLC_VB_RD_PTR (volatile unsigned int *)((0x1d13 << 2) + 0xff620000)
#define VLC_VB_SW_RD_PTR (0x1d14)
#define P_VLC_VB_SW_RD_PTR (volatile unsigned int *)((0x1d14 << 2) + 0xff620000)
// Read Only
#define VLC_VB_LEFT (0x1d15)
#define P_VLC_VB_LEFT (volatile unsigned int *)((0x1d15 << 2) + 0xff620000)
// VB FIFO Control
// bit [31:24] vb_full_int_enable_cpu[7:0]
// bit [23:16] vb_full_int_enable_amrisc[7:0]
// -bit 23 Video BUFFER LEFT < 0x400 Bytes
// -bit 22 Video BUFFER LEFT < 0x200 Bytes
// -bit 21 Video BUFFER LEFT < 0x100 Bytes
// -bit 20 Video BUFFER LEFT < 0x80 Bytes
// -bit 19 Video BUFFER LEFT < 0x40 Bytes
// -bit 18 Video BUFFER LEFT < 0x20 Bytes
// -bit 17 vbfifo left < 16 double words (8x64bits)
// -bit 16 vbfifo left < 8 double words (4x64bits)
// bit [15] wr_ptr_int_enable_cpu
// bit [14] wr_ptr_int_enable_amrisc
// bit [13] wr_ptr_int (Read Only, write 1 will clear)
// bit [12] vb_full_int_enable_cpu(Read Only)
// bit [11] vb_full_int_enable_amrisc(Read Only)
// bit [10] reserved
// bit [9] use_vb_hw_rd_ptr
// bit [8] vb_always_ready Set to 1 to ignore vb_level blocking DDR write
// bit [7] vb_ready_for_transfer (Read Only)
// bit [6] data_ready_for_transfer (Read Only)
// bits [5:3] vb_endian Set VB Endian inside DDR memory
// bit [2] vb_write_busy Read Only - indicate DDR write busy
// bit [1] vb_write_en Set to 1 to enable writing data to DDR memory
// bit [0] vb_soft_reset Soft reset
#define VLC_VB_CONTROL (0x1d16)
#define P_VLC_VB_CONTROL (volatile unsigned int *)((0x1d16 << 2) + 0xff620000)
// bit 31 transfer_length 0 - 32x64 Bits per request, 1 - 16x64 Bits per request // default : 0
// bit 30 A_urgent // default : 0
// bit 29:24 A_brst_num // default : 0x3f
// bit 23:22 reserved
// bit 21:16 A_id // default : 0x20
// bit 15:0 vb_left_hold // default : 0
#define VLC_VB_MEM_CTL (0x1d17)
#define P_VLC_VB_MEM_CTL (volatile unsigned int *)((0x1d17 << 2) + 0xff620000)
// vb_wr_ptr address to generate interrupt
#define VLC_VB_INT_PTR (0x1d18)
#define P_VLC_VB_INT_PTR (volatile unsigned int *)((0x1d18 << 2) + 0xff620000)
// bit[31:12] reserved
// bit[11:0] vlc_wrrsp_count
#define VLC_WRRSP (0x1d19)
#define P_VLC_WRRSP (volatile unsigned int *)((0x1d19 << 2) + 0xff620000)
#define VLC_TOTAL_BYTES (0x1d1a)
#define P_VLC_TOTAL_BYTES (volatile unsigned int *)((0x1d1a << 2) + 0xff620000)
// bit [31:26] reserved
// bit [25] vb_flush
// bit [24] vb_reg_ready
// bit [23:16] vb_buff_left -- Read only
// bit [15:8] vb_buff_wr_point -- RW
// bit [7:0] vb_buff_rd_point -- RW
#define VLC_VB_BUFF (0x1d1b)
#define P_VLC_VB_BUFF (volatile unsigned int *)((0x1d1b << 2) + 0xff620000)
// bit[31] flush_vlc_pre_buff
// bit[30:27] reserved
// bit[26:24] vb_pre_buff_level
// bit[23:0] vb_pre_buff_data[55:32]
#define VLC_VB_PRE_BUFF_HI (0x1d1c)
#define P_VLC_VB_PRE_BUFF_HI (volatile unsigned int *)((0x1d1c << 2) + 0xff620000)
// bit[31:0] vb_pre_buff_data[31:0]
#define VLC_VB_PRE_BUFF_LOW (0x1d1d)
#define P_VLC_VB_PRE_BUFF_LOW (volatile unsigned int *)((0x1d1d << 2) + 0xff620000)
// bit[31] stream_encap_enable // 0x0000(00-03) will be changed to 0x000003(00-03) if enabled
// bit[30:29] stream_encap_delay // delay bytes for encap used
// bit[28:24] stream_buff_point
// bit[23:0] stream_buff_data
#define VLC_STREAM_BUFF (0x1d1e)
#define P_VLC_STREAM_BUFF (volatile unsigned int *)((0x1d1e << 2) + 0xff620000)
// bit[31] push_stream_block - Read Only (Will set if vb_buff full)
// bit[30] push_stream_busy - Read Only (busy when output one byte from stream_buf (max 2 clocks for 8 bits push)
// bit[29:28] stream_encap_status - Read Only
// bit[27:21] reserved
// Long Mode : (Amrisc need movilo and mvihi high to set stream_info)
// bit[20:16] push_stream_long_length (0 or 31 : Mid or Short mode)
// bit[15:0] push_stream_data
// Mid Mode : (Amrisc need movi to set stream_info)
// bit[15:12]] push_stream_mid_length (1-12 : mid mode active, 0-short mode, 15 - byte align)
// bit[11:0] push_stream_data
// Short Mode : (Amrisc can use mtspi to push stream directely)
// bit[7:5] push_stream_short_length (0-5 : short length, else - invalid)
// bit[4:0] push_stream_data
#define VLC_PUSH_STREAM (0x1d1f)
#define P_VLC_PUSH_STREAM (volatile unsigned int *)((0x1d1f << 2) + 0xff620000)
// bit[15:8] ELEMENT_LENGTH
// bit[7:1] reserved
// bit[0] Write - push start, Read - Push Busy
#define VLC_PUSH_ELEMENT (0x1d20)
#define P_VLC_PUSH_ELEMENT (volatile unsigned int *)((0x1d20 << 2) + 0xff620000)
#define VLC_ELEMENT_DATA (0x1d21)
#define P_VLC_ELEMENT_DATA (volatile unsigned int *)((0x1d21 << 2) + 0xff620000)
// bit[7] hcmd_intra_use_sw_info
// bit[6] hcmd_use_sw_info
// bit[5] always_use_info_0_cbp_blk
// bit[4] always_update_info_0_cbp_blk
// bit[3] reset_left_mb_wr
// bit[2] reset_top_mb_wr
// bit[1] set_left_mb_wr
// bit[0] set_top_mb_wr
#define VLC_SPECIAL_CTL (0x1d22)
#define P_VLC_SPECIAL_CTL (volatile unsigned int *)((0x1d22 << 2) + 0xff620000)
// bit[28] left_intra
// bit[27:22] left_quant
// bit[21:16] left_quant_c
// bit[12] top_intra
// bit[11:6] top_quant
// bit[5:0] top_quant_c
#define VLC_HCMD_T_L_INFO (0x1d23)
#define P_VLC_HCMD_T_L_INFO (volatile unsigned int *)((0x1d23 << 2) + 0xff620000)
// bit[12] cur_intra
// bit[11:6] cur_quant
// bit[5:0] cur_quant_c
#define VLC_HCMD_CUR_INFO (0x1d24)
#define P_VLC_HCMD_CUR_INFO (volatile unsigned int *)((0x1d24 << 2) + 0xff620000)
// bit[13] top_left_info_in_data_mv_cal
// bit[12] only_use_info_0_top_left_in_I
// bit[11] top_left_info_in_data
// bit[10] early_mix_mc_hcmd
// bit[9] update_top_left_mix
// bit[8] p_top_left_mix
// bit[7] mv_cal_mixed_type
// bit[6] mc_hcmd_mixed_type
// bit[5] use_seperate_int_control
// bit[4] hcmd_intra_use_q_info
// bit[3] hcmd_left_use_prev_info
// bit[2] hcmd_use_q_info
// bit[1] use_q_delta_quant
// bit[0] detect_I16_from_I4
#define VLC_ADV_CONFIG (0x1d25)
#define P_VLC_ADV_CONFIG (volatile unsigned int *)((0x1d25 << 2) + 0xff620000)
// 31 - use_hcmd_mb_xy_auto
//23:16 - hcmd_max_mb_x
//15:8 - hcmd_mb_y_auto
// 7:0 - hcmd_mb_x_auto
#define VLC_HCMD_MBXY_AUTO (0x1d26)
#define P_VLC_HCMD_MBXY_AUTO (volatile unsigned int *)((0x1d26 << 2) + 0xff620000)
// bit[31:0] vlc_int_control_inter -- will be used when use_seperate_int_control is set
#define VLC_INT_CONTROL_INTER (0x1d2f)
#define P_VLC_INT_CONTROL_INTER (volatile unsigned int *)((0x1d2f << 2) + 0xff620000)
// --------------------------------------------
// Picture VLC
// --------------------------------------------
// (&(int|(~AND_enable))|(|(int&OR_enable)))
// bit[31] OR interrupt Enable Reserved
// bit[30] OR interrupt Enable for mv_busy
// bit[29] OR interrupt Enable for b8_mode_busy
// bit[28] OR interrupt Enable for mb_skip_run_busy
// bit[27] OR interrupt Enable for cbp_busy
// bit[26] OR interrupt Enable for Reserved
// bit[25] OR interrupt Enable for Reserved
// bit[24] OR interrupt Enable for mb_info_busy
// bit[23] AND interrupt Enable Reserved
// bit[22] AND interrupt Enable for mv_busy
// bit[21] AND interrupt Enable for b8_mode_busy
// bit[20] AND interrupt Enable for mb_skip_run_busy
// bit[19] AND interrupt Enable for cbp_busy
// bit[18] AND interrupt Enable for Reserved
// bit[17] AND interrupt Enable for Reserved
// bit[16] AND interrupt Enable for mb_info_busy
// bit[15] OR interrupt Enable Reserved
// bit[14] OR interrupt Enable for mvd
// bit[13] OR interrupt Enable for b8_mode
// bit[12] OR interrupt Enable for mb_skip_run
// bit[11] OR interrupt Enable for cbp_ready
// bit[10] OR interrupt Enable for c_ipred_mode_ready
// bit[9] OR interrupt Enable for ipred_mode_ready
// bit[8] OR interrupt Enable for mb_info_ready
// bit[7] AND interrupt Enable Reserved
// bit[6] AND interrupt Enable for mvd
// bit[5] AND interrupt Enable for b8_mode
// bit[4] AND interrupt Enable for mb_skip_run
// bit[3] AND interrupt Enable for cbp_ready
// bit[2] AND interrupt Enable for c_ipred_mode_ready
// bit[1] AND interrupt Enable for ipred_mode_ready
// bit[0] AND interrupt Enable for mb_info_ready
#define VLC_INT_CONTROL (0x1d30)
#define P_VLC_INT_CONTROL (volatile unsigned int *)((0x1d30 << 2) + 0xff620000)
// Bit[31:16] picture_height
// Bit[15:0] picture_width
#define VLC_PIC_SIZE (0x1d31)
#define P_VLC_PIC_SIZE (volatile unsigned int *)((0x1d31 << 2) + 0xff620000)
// [31:16] Reserved
// [15:3] pic_width_in_mbs_minus1
// [2:0] picture_type
#define VLC_PIC_INFO (0x1d32)
#define P_VLC_PIC_INFO (volatile unsigned int *)((0x1d32 << 2) + 0xff620000)
// Bit[31:16] MB_NR
// Bit[15:8] MBY
// Bit[7:0] MBX
#define VLC_PIC_POSITION (0x1d33)
#define P_VLC_PIC_POSITION (volatile unsigned int *)((0x1d33 << 2) + 0xff620000)
// Bit[31] MV_busy
// Bit[30:6] Reserved
// Bit[15] Reserved
// Bit[14] vlc_input_MV_busy
// Bit[13] vlc_input_b8_mode_busy
// Bit[12] vlc_input_mb_skip_run_busy
// Bit[11] vlc_input_cbp_busy
// Bit[10] Reserved
// Bit[9] Reserved
// Bit[8] vlc_input_mb_info_busy
// Bit[7] Reserved
// Bit[6] mvd
// Bit[5] b8_mode
// Bit[4] mb_skip_run
// Bit[3] cbp
// Bit[2] c_ipred_mode
// Bit[1] ipred_mode
// Bit[0] mb_info ( mb_type, mb_x, mb_y)
#define VLC_INPUT_STATUS (0x1d34)
#define P_VLC_INPUT_STATUS (volatile unsigned int *)((0x1d34 << 2) + 0xff620000)
// Bit[31:28] detected_mb_type
// Bit[27:16] mb_y
// Bit[15:4] mb_x
// Bit[3:0] mb_type
#define VLC_MB_INFO (0x1d35)
#define P_VLC_MB_INFO (volatile unsigned int *)((0x1d35 << 2) + 0xff620000)
// commnad 0 -- no pending
// normal command + 1 is pending command
//
// bit 31:28 -- pending command 7
// bit 27:24 -- pending command 6
// bit 23:20 -- pending command 5
// bit 19:16 -- pending command 4
// bit 15:12 -- pending command 3
// bit 11:8 -- pending command 2
// bit 7:4 -- pending command 1
// bit 3:0 -- pending command 0
#define VLC_ENC_PEND_CMD (0x1d36)
#define P_VLC_ENC_PEND_CMD (volatile unsigned int *)((0x1d36 << 2) + 0xff620000)
// For I Slice
// Bit[31:16] Reserved
// Bit[15:0] IntraType
#define HENC_TOP_INFO_0 (0x1d37)
#define P_HENC_TOP_INFO_0 (volatile unsigned int *)((0x1d37 << 2) + 0xff620000)
#define HENC_LEFT_INFO_0 (0x1d38)
#define P_HENC_LEFT_INFO_0 (volatile unsigned int *)((0x1d38 << 2) + 0xff620000)
// For I Slice
// Bit[31:24] V_nnz
// Bit[23:16] U_nnz
// Bit[15:0] Y_nnz
#define HENC_TOP_INFO_1 (0x1d39)
#define P_HENC_TOP_INFO_1 (volatile unsigned int *)((0x1d39 << 2) + 0xff620000)
#define HENC_LEFT_INFO_1 (0x1d3a)
#define P_HENC_LEFT_INFO_1 (volatile unsigned int *)((0x1d3a << 2) + 0xff620000)
// bit[63:0] ipred_mode
#define VLC_IPRED_MODE_HI (0x1d3b)
#define P_VLC_IPRED_MODE_HI (volatile unsigned int *)((0x1d3b << 2) + 0xff620000)
#define VLC_IPRED_MODE_LO (0x1d3c)
#define P_VLC_IPRED_MODE_LO (volatile unsigned int *)((0x1d3c << 2) + 0xff620000)
// bit[15:8] SE delta quant
// bit[7:0] UE delta quant
#define VLC_DELTA_QP (0x1d3d)
#define P_VLC_DELTA_QP (volatile unsigned int *)((0x1d3d << 2) + 0xff620000)
// bit[31:16] Reserved
// bit[15:12] Reserved
// bit[11:8] c_ipred_mode
// bit[7:0] cbp
#define VLC_MB_HEADER_INFO (0x1d3e)
#define P_VLC_MB_HEADER_INFO (volatile unsigned int *)((0x1d3e << 2) + 0xff620000)
// bit[31:16] mb_skip_run
// bit[15:0] b8_mode
#define VLC_P_MB_HEADER_INFO (0x1d3f)
#define P_VLC_P_MB_HEADER_INFO (volatile unsigned int *)((0x1d3f << 2) + 0xff620000)
// bit[31] write_ptr_update
// bit[30] read_ptr_update
// bit[29:20] coeff_buf_level
// bit[19:10] coeff_buf_write_ptr
// bit[9:0] coeff_buf_read_ptr
#define VLC_COEFF_BUF_STATUS (0x1d40)
#define P_VLC_COEFF_BUF_STATUS (volatile unsigned int *)((0x1d40 << 2) + 0xff620000)
// bit[31:10] Reserved
// bit[9:0] read_req_addr
#define VLC_COEFF_RD_REQ (0x1d41)
#define P_VLC_COEFF_RD_REQ (volatile unsigned int *)((0x1d41 << 2) + 0xff620000)
// bit[20] - coeff_buf_read_finished
// bit[19] - coeff_first
// bit[18:4] - coeff_level
// bit[3:0] - coeff_run
#define VLC_COEFF (0x1d42)
#define P_VLC_COEFF (volatile unsigned int *)((0x1d42 << 2) + 0xff620000)
// bit[31] - coeff_info_ready
// bit[30:25] - Reserved
// bit[24:15] - block_begin_addr
// bit[14:11] - trailing_one_sign
// bit[10:6] - total_coeff
// bit[5:4] - trailing_ones
// bit[3:0] - total_zeros
#define VLC_COEFF_INFO (0x1d43)
#define P_VLC_COEFF_INFO (volatile unsigned int *)((0x1d43 << 2) + 0xff620000)
// bit[31] write_ptr_update
// bit[30] read_ptr_update
// bit[29:25] Reserved
// bit[24:20] dc_buf_level -- 0-16
// bit[19:15] Reserved
// bit[14:10] dc_buf_write_ptr
// bit[9:5] Reserved
// bit[4:0] dc_buf_read_ptr
#define VLC_DC_BUF_STATUS (0x1d44)
#define P_VLC_DC_BUF_STATUS (volatile unsigned int *)((0x1d44 << 2) + 0xff620000)
// bit[31:10] Reserved
// bit[9:4] Reserved
// bit[3:0] read_req_addr
#define VLC_DC_RD_REQ (0x1d45)
#define P_VLC_DC_RD_REQ (volatile unsigned int *)((0x1d45 << 2) + 0xff620000)
// bit[31:17] - Reserved
// bit[16] - dc_first
// bit[15:1] - dc_level
// bit[0] - dc_type 0 - CDC, 1 - LDC
#define VLC_DC (0x1d46)
#define P_VLC_DC (volatile unsigned int *)((0x1d46 << 2) + 0xff620000)
// bit[31] - dc_info_ready
// bit[30:25] - Reserved
// bit[24:20] - Reserved
// bit[19:15] - dc_idx_begin_addr
// bit[14:11] - dc_trailing_one_sign
// bit[10:6] - dc_total_coeff
// bit[5:4] - dc_trailing_ones
// bit[3:0] - dc_total_zeros
#define VLC_DC_INFO (0x1d47)
#define P_VLC_DC_INFO (volatile unsigned int *)((0x1d47 << 2) + 0xff620000)
// bit[31:4] - Reserved
// bit[3:0] - mv_rw_idx (auto increment when read/write VLC_MV)
#define VLC_MV_INDEX (0x1d48)
#define P_VLC_MV_INDEX (volatile unsigned int *)((0x1d48 << 2) + 0xff620000)
// bit[31:16] - MVY
// bit[15:0] - MVX
#define VLC_MV (0x1d49)
#define P_VLC_MV (volatile unsigned int *)((0x1d49 << 2) + 0xff620000)
// bit[31:16] - MVY
// bitp15:0] - MVX
// Write to HENC_TOP_MV_0 will cause previous U->UL, UR->U, and UR write
// Read will read U MV only
#define HENC_TOP_MV_0 (0x1d4a)
#define P_HENC_TOP_MV_0 (volatile unsigned int *)((0x1d4a << 2) + 0xff620000)
#define HENC_TOP_MV_1 (0x1d4b)
#define P_HENC_TOP_MV_1 (volatile unsigned int *)((0x1d4b << 2) + 0xff620000)
#define HENC_TOP_MV_2 (0x1d4c)
#define P_HENC_TOP_MV_2 (volatile unsigned int *)((0x1d4c << 2) + 0xff620000)
#define HENC_TOP_MV_3 (0x1d4d)
#define P_HENC_TOP_MV_3 (volatile unsigned int *)((0x1d4d << 2) + 0xff620000)
#define HENC_LEFT_MV_0 (0x1d4e)
#define P_HENC_LEFT_MV_0 (volatile unsigned int *)((0x1d4e << 2) + 0xff620000)
#define HENC_LEFT_MV_1 (0x1d4f)
#define P_HENC_LEFT_MV_1 (volatile unsigned int *)((0x1d4f << 2) + 0xff620000)
#define HENC_LEFT_MV_2 (0x1d50)
#define P_HENC_LEFT_MV_2 (volatile unsigned int *)((0x1d50 << 2) + 0xff620000)
#define HENC_LEFT_MV_3 (0x1d51)
#define P_HENC_LEFT_MV_3 (volatile unsigned int *)((0x1d51 << 2) + 0xff620000)
// Bit[31:1] Reserved
// Bit[0] top_left_mv_ready
#define TOP_LEFT_READY (0x1d52)
#define P_TOP_LEFT_READY (volatile unsigned int *)((0x1d52 << 2) + 0xff620000)
// Bit[31:16] Reserved
// Bit[15:0] mb_skip_run
#define MB_SKIP_RUN (0x1d53)
#define P_MB_SKIP_RUN (volatile unsigned int *)((0x1d53 << 2) + 0xff620000)
// Bit[31:16] Reserved
// Bit[15] Reserved
// Bit[14:13] rd_struct // 00 - frame, 10 - top field, 11 - bottom field
// Bit[12:11] wr_struct // 00 - frame, 10 - top field, 11 - bottom field
// Bit[10:5] mv_buff_id
// Bit[4:0] mv_ref
#define VLC_HCMD_CONFIG (0x1d54)
#define P_VLC_HCMD_CONFIG (volatile unsigned int *)((0x1d54 << 2) + 0xff620000)
// Bit[9:0] h264_dblk_info
#define VLC_HCMD_DBLK_INFO (0x1d55)
#define P_VLC_HCMD_DBLK_INFO (volatile unsigned int *)((0x1d55 << 2) + 0xff620000)
// Bit[3:0] vlc_dbg_idx
#define VLC_DBG_IDX (0x1d56)
#define P_VLC_DBG_IDX (volatile unsigned int *)((0x1d56 << 2) + 0xff620000)
// Read Only
#define VLC_DBG_READ (0x1d57)
#define P_VLC_DBG_READ (volatile unsigned int *)((0x1d57 << 2) + 0xff620000)
// [ 29] RW jpeg_comp2_ac_table_sel. Default 0.
// [ 28] RW jpeg_comp2_dc_table_sel. Default 0.
// [26:25] RW jpeg_comp2_cnt_max. Default 0.
// [ 24] RW jpeg_comp2_en. Set 1 if the scan will include component 2 (Cr). Default 0.
// [ 21] RW jpeg_comp1_ac_table_sel. Default 0.
// [ 20] RW jpeg_comp1_dc_table_sel. Default 0.
// [18:17] RW jpeg_comp1_cnt_max. Default 0.
// [ 16] RW jpeg_comp1_en. Set 1 if the scan will include component 1 (Cb). Default 0.
// [ 13] RW jpeg_comp0_ac_table_sel. Default 0.
// [ 12] RW jpeg_comp0_dc_table_sel. Default 0.
// [10: 9] RW jpeg_comp0_cnt_max. Default 0.
// [ 8] RW jpeg_comp0_en. Set 1 if the scan will include component 0 (Y). Default 0.
// [ 1] W jpeg_coeff_init. Write 1 to this bit to initialize JPEG run length encoder.
// [ 0] RW jpeg_en. 0=Disable JPEG encoder; 1=Enable JPEG encoder. Default 0.
#define VLC_JPEG_CTRL (0x1d58)
#define P_VLC_JPEG_CTRL (volatile unsigned int *)((0x1d58 << 2) + 0xff620000)
// [ 13] RW jpeg_coeff_buf_overfl. Write this bit to 1 to clear overfl.
// [ 12] RW jpeg_coeff_buf_undrfl. Write this bit to 1 to clear undrfl.
// [ 11] R jpeg_coeff_buf_full.
// [ 10] R jpeg_coeff_buf_empty.
// [ 8: 0] R jpeg_coeff_buf_level.
#define VLC_JPEG_COEFF_BUF_STAT (0x1d59)
#define P_VLC_JPEG_COEFF_BUF_STAT (volatile unsigned int *)((0x1d59 << 2) + 0xff620000)
// [ 16] RW JPEG HUFFMAN table access mode. 0=Write; 1=Read. Default 1.
// [ 8: 0] RW JPEG HUFFMAN table addr. Default 0.
#define VLC_HUFFMAN_ADDR (0x1d5a)
#define P_VLC_HUFFMAN_ADDR (volatile unsigned int *)((0x1d5a << 2) + 0xff620000)
// [19: 0] RW JPEG HUFFMAN table data.
#define VLC_HUFFMAN_DATA (0x1d5b)
#define P_VLC_HUFFMAN_DATA (volatile unsigned int *)((0x1d5b << 2) + 0xff620000)
// bit[31:0] enc_mv_bits - including b8_mode and mvd
#define VLC_ENC_MV_BITS (0x1d5c)
#define P_VLC_ENC_MV_BITS (volatile unsigned int *)((0x1d5c << 2) + 0xff620000)
// bit[31:0] enc_coeff_bits - including cbp, token, trailing_sign, coeff_enc, h264_totzeros, h264_run
#define VLC_ENC_COEFF_BITS (0x1d5d)
#define P_VLC_ENC_COEFF_BITS (volatile unsigned int *)((0x1d5d << 2) + 0xff620000)
//
// Closing file: vlc_regs.h
//
//------------------------------------------------------------------------------
// QDCT module level register offset
//------------------------------------------------------------------------------
//
// Reading file: qdct_regs.h
//
//========================================================================
// QDCT module level register offset
//========================================================================
// -----------------------------------------------
// CBUS_BASE: DOS_HCODEC_QDCT_CBUS_BASE = 0x0f
// -----------------------------------------------
// bit[31:28] - mb_info_state
#define QDCT_STATUS_CTRL (0x1f00)
#define P_QDCT_STATUS_CTRL (volatile unsigned int *)((0x1f00 << 2) + 0xff620000)
// bit[18] - enable_free_clk_sad_top
// bit[17] - enable_free_clk_ie_top
// bit[16] - enable_free_clk_ie_sub
// bit[15] - enable_free_clk_mc_out
// bit[14] - enable_free_clk_i_pred_top
// bit[13] - enable_free_clk_idct_top
// bit[12] - enable_free_clk_iq_top
// bit[11] - enable_free_clk_q_top
// bit[10] - enable_free_clk_dc_buff_8
// bit[9] - enable_free_clk_dct_top
// bit[8] - enable_free_clk_mb_info
// bit[7] - enable_free_clk_mb_buff
// bit[6] - enable_free_clk_reg
// bit[5] - ignore_1_include_2nd_half_c
// bit[4] - ignore_1_include_2nd_half
// bit[3] - ignore_t_p8x8
// bit[2] - not_ignore_dc
// bit[1] - ignore_small_lac_intra
// bit[0] - disable_fast_zero_block
#define QDCT_CONFIG (0x1f01)
#define P_QDCT_CONFIG (volatile unsigned int *)((0x1f01 << 2) + 0xff620000)
// bit[31] - ignore_lac_coeff_en
// bit[30:26] - ignore_lac_coeff_else
// bit[25:21] - ignore_lac_coeff_2
// bit[20:16] - ignore_lac_coeff_1
// bit[15] - ignore_cac_coeff_en
// bit[14:10] - ignore_cac_coeff_else
// bit[9:5] - ignore_cac_coeff_2
// bit[4:0] - ignore_cac_coeff_1
#define IGNORE_CONFIG (0x1f02)
#define P_IGNORE_CONFIG (volatile unsigned int *)((0x1f02 << 2) + 0xff620000)
// bit[31] - ignore_t_lac_coeff_en
// bit[30:26] - ignore_t_lac_coeff_else
// bit[25:21] - ignore_t_lac_coeff_2
// bit[20:16] - ignore_t_lac_coeff_1
// bit[15] - ignore_cdc_coeff_en
// bit[14] - ignore_t_lac_coeff_else_le_3
// bit[13] - ignore_t_lac_coeff_else_le_4
// bit[12] - ignore_cdc_only_when_empty_cac_inter
// bit[11] - ignore_cdc_only_when_one_empty_inter
// bit[10:9] - ignore_cdc_range_max_inter // 0-0, 1-1, 2,-2, 3-3
// bit[8:7] - ignore_cdc_abs_max_inter // 0-1, 1-2, 2,-3, 3-4
// bit[6] - reserved
// bit[5] - ignore_cdc_only_when_empty_cac_intra
// bit[4] - ignore_cdc_only_when_one_empty_intra
// bit[3:2] - ignore_cdc_range_max_intra // 0-0, 1-1, 2,-2, 3-3
// bit[1:0] - ignore_cdc_abs_max_intra // 0-1, 1-2, 2,-3, 3-4
#define IGNORE_CONFIG_2 (0x1f03)
#define P_IGNORE_CONFIG_2 (volatile unsigned int *)((0x1f03 << 2) + 0xff620000)
// --------------------------------------------
// MB DATA DDR Interface
// --------------------------------------------
#define QDCT_MB_START_PTR (0x1f10)
#define P_QDCT_MB_START_PTR (volatile unsigned int *)((0x1f10 << 2) + 0xff620000)
#define QDCT_MB_END_PTR (0x1f11)
#define P_QDCT_MB_END_PTR (volatile unsigned int *)((0x1f11 << 2) + 0xff620000)
#define QDCT_MB_WR_PTR (0x1f12)
#define P_QDCT_MB_WR_PTR (volatile unsigned int *)((0x1f12 << 2) + 0xff620000)
#define QDCT_MB_RD_PTR (0x1f13)
#define P_QDCT_MB_RD_PTR (volatile unsigned int *)((0x1f13 << 2) + 0xff620000)
#define QDCT_MB_LEVEL (0x1f14)
#define P_QDCT_MB_LEVEL (volatile unsigned int *)((0x1f14 << 2) + 0xff620000)
// bit [31] disable_mbxy_ie_save
// bit [30] no_wait_after_q_cdc
// bit [29] ie_start_int_enable
// bit [28] ignore_t_p8x8
// bit [27] zero_mc_out_null_non_skipped_mb
// bit [26] no_mc_out_null_non_skipped_mb
// bit [25] mc_out_even_skipped_mb
// bit [24] mc_out_wait_cbp_ready
// bit [23] mc_out_wait_mb_type_ready
// bit [22] i_pred_int_enable
// bit [21] intra_sat8_enable
// bit [20] ie_sub_enable
// bit [19] i_pred_enable
// bit [18] iq_enable
// bit [17] idct_enable
// bit [16] no_zero_coeff_mb
// bit [15] add_zero_coeff_block
// bit [14] mb_pause_enable
// bit [13] q_enable
// bit [12] dct_enable
// bit [11] ignore_magic_word
// bit [10] mb_info_en
// bit [9] mb_info_soft_reset
// bit [8] mb_always_ready Set to 1 to ignore mb_level blocking DDR read
// bit [7] mb_ready_for_transfer (Read Only)
// bit [6] data_ready_for_transfer (Read Only)
// bits [5:3] mb_endian Set MB Endian inside DDR memory
// bit [2] mb_read_busy Read Only - indicate DDR read busy
// bit [1] mb_read_en Set to 1 to enable reading data from DDR memory
// bit [0] mb_soft_reset Soft reset
#define QDCT_MB_CONTROL (0x1f15)
#define P_QDCT_MB_CONTROL (volatile unsigned int *)((0x1f15 << 2) + 0xff620000)
// bit 31 transfer_length 0 - 32x64 Bits per request, 1 - 16x64 Bits per request // default : 0
// bit 30 A_urgent // default : 0
// bit 29:24 A_brst_num // default : 0x3f
// bit 23 reserved
// bit 22 read_till_zero
// bit 21:16 A_id // default : 0x21
// bit 15:0 mb_level_hold // default : 0
#define QDCT_MB_MEM_CTL (0x1f16)
#define P_QDCT_MB_MEM_CTL (volatile unsigned int *)((0x1f16 << 2) + 0xff620000)
// bit [31:24] reserved
// bit [23:16] vb_buff_level -- Read only
// bit [15:8] vb_buff_wr_point -- RW
// bit [7:0] vb_buff_rd_point -- RW
#define QDCT_MB_BUFF (0x1f17)
#define P_QDCT_MB_BUFF (volatile unsigned int *)((0x1f17 << 2) + 0xff620000)
// bit [31:0] mb infor data begin magic word - default : 0xa55aaa55
#define QDCT_MB_MAGIC_WORD (0x1f18)
#define P_QDCT_MB_MAGIC_WORD (volatile unsigned int *)((0x1f18 << 2) + 0xff620000)
// Read Only Register
// bit[19] dct_ready_1
// bit[18] dct_ready_0
// bit[17] dct_rd_idx
// bit[16] dct_wr_idx
// bit[15] dct_srdy
// bit[14] dct_rrdy
// bit[13] Reserved
// bit[12:8] dct_block_number
// bit[7:4] dct_rw_addr
// bit[3:0] dct_status
#define QDCT_DCT_STATUS (0x1f19)
#define P_QDCT_DCT_STATUS (volatile unsigned int *)((0x1f19 << 2) + 0xff620000)
// bit[24:23] vlc_quant_count
// bit[22:16] vlc_delta_quant_data
// bit[15:10] vlc_quant_data
// bit[9:4] vlc_prev_quant_data
// bit[3:0] q_status
#define QDCT_Q_STATUS (0x1f1a)
#define P_QDCT_Q_STATUS (volatile unsigned int *)((0x1f1a << 2) + 0xff620000)
// bit[31:3] Reserved
// bit[2:0] picture_type
#define QDCT_PIC_INFO (0x1f1b)
#define P_QDCT_PIC_INFO (volatile unsigned int *)((0x1f1b << 2) + 0xff620000)
// bit[31:28] Reserved
// bit[27:22] I_pic_quant_c
// bit[21:16] I_pic_quant
// bit[15] reserved
// bit[14:12] quant_rem_c
// bit[11:8] quant_per_c
// bit[7] reserved
// bit[6:4] quant_rem
// bit[3:0] quant_per
#define QDCT_Q_QUANT_I (0x1f1c)
#define P_QDCT_Q_QUANT_I (volatile unsigned int *)((0x1f1c << 2) + 0xff620000)
// bit[31:28] Reserved
// bit[27:22] P_pic_quant_c
// bit[21:16] P_pic_quant
// bit[15] reserved
// bit[14:12] quant_rem_c
// bit[11:8] quant_per_c
// bit[7] reserved
// bit[6:4] quant_rem
// bit[3:0] quant_per
#define QDCT_Q_QUANT_P (0x1f1d)
#define P_QDCT_Q_QUANT_P (volatile unsigned int *)((0x1f1d << 2) + 0xff620000)
// bit[31] mb_info_pause
// bit[30:16] pause_mby
// bit[15:0] pause_mbx
#define QDCT_MB_PAUSE_CTL (0x1f1e)
#define P_QDCT_MB_PAUSE_CTL (volatile unsigned int *)((0x1f1e << 2) + 0xff620000)
// bit[31] top_control_ready_i_pred
// bit[30:28]top_dma_status
// bit[27] top_control_ready_ie
// bit[26:24]Reserved
// bit[23] ul_mb
// bit[22] right_mb
// bit[21] top_mb
// bit[20] left_mb
// bit[19:8] mb_x
// bit[7:6] i_pred_ref_idx_L
// bit[5:4] i_pred_ref_idx_UL
// bit[3:2] i_pred_ref_idx_U
// bit[1:0] i_pred_ref_idx_UR
#define QDCT_TOP_CONTROL (0x1f1f)
#define P_QDCT_TOP_CONTROL (volatile unsigned int *)((0x1f1f << 2) + 0xff620000)
// bit[31:0] top_base_addr - DDR Memory start address for save top Pixel
#define QDCT_TOP_BASE_MEM (0x1f20)
#define P_QDCT_TOP_BASE_MEM (volatile unsigned int *)((0x1f20 << 2) + 0xff620000)
// bit 15:13 Reserved
// bit 12 A_urgent // default : 0
// bit 11:6 A_brst_num // default : 0x3f
// bit 5:0 A_id // default : 0x22
#define QDCT_TOP_MEM_CTL (0x1f21)
#define P_QDCT_TOP_MEM_CTL (volatile unsigned int *)((0x1f21 << 2) + 0xff620000)
// bit [11:0] top_wrrsp_count
#define QDCT_TOP_WRRSP (0x1f22)
#define P_QDCT_TOP_WRRSP (volatile unsigned int *)((0x1f22 << 2) + 0xff620000)
// Bit[3:0] qdct_dbg_idx
#define QDCT_DBG_IDX (0x1f23)
#define P_QDCT_DBG_IDX (volatile unsigned int *)((0x1f23 << 2) + 0xff620000)
// Read Only
#define QDCT_DBG_READ (0x1f24)
#define P_QDCT_DBG_READ (volatile unsigned int *)((0x1f24 << 2) + 0xff620000)
// [19:18] RW jdct_inflow_ctrl. JPEG DCT input flow control. Default 0.
// 0=No halt;
// 1=DCT halts request at end of each 8x8 block;
// 2=DCT halts request at end of each MCU.
// [17:16] RW jpeg_coeff_last_sel. Default 0.
// Select at which point to finish processing, give update to AmRISC so it can control the next step.
// 0=Mark last coeff at the end of an 8x8 block;
// 1=Mark at the end of an MCU;
// 2=Mark at the end of a scan.
// [ 15] RW jpeg_quant_sel_comp2. 0=Comp2 select Quantization table 0; 1=Select table 1. Default 0.
// [ 14] RW jpeg_v_factor_comp2. Component 2's vertical sampling factor. Default 0.
// [ 13] RW jpeg_h_factor_comp2. Component 2's horizontal sampling factor. Default 0.
// [ 12] RW jpeg_comp2_en. Set 1 if the scan will include component 2 (Cr). Default 0.
// [ 11] RW jpeg_quant_sel_comp1. 0=Comp1 select Quantization table 0; 1=Select table 1. Default 0.
// [ 10] RW jpeg_v_factor_comp1. Component 1's vertical sampling factor. Default 0.
// [ 9] RW jpeg_h_factor_comp1. Component 1's horizontal sampling factor. Default 0.
// [ 8] RW jpeg_comp1_en. Set 1 if the scan will include component 1 (Cb). Default 0.
// [ 7] RW jpeg_quant_sel_comp0. 0=Comp0 select Quantization table 0; 1=Select table 1. Default 0.
// [ 6] RW jpeg_v_factor_comp0. Component 0's vertical sampling factor. Default 0.
// [ 5] RW jpeg_h_factor_comp0. Component 0's horizontal sampling factor. Default 0.
// [ 4] RW jpeg_comp0_en. Set 1 if the scan will include component 0 (Y). Default 0.
// [ 3: 1] RW jdct_intr_sel. JPEG DCT interrupt select. Default 0.
// 0=Disable intr;
// 1=Intr at end of each 8x8 block of DCT input;
// 2=Intr at end of each MCU of DCT input;
// 3=Intr at end of a scan of DCT input;
// 4=Intr at end of each 8x8 block of DCT output;
// 5=Intr at end of each MCU of DCT output;
// 6=Intr at end of a scan of DCT output.
// [ 0] RW jpeg_en. 0=Disable JPEG QDCT; 1=Enable JPEG QDCT. Default 0.
#define QDCT_JPEG_CTRL (0x1f25)
#define P_QDCT_JPEG_CTRL (volatile unsigned int *)((0x1f25 << 2) + 0xff620000)
// [29:16] RW jpeg_x_end. Picture X end. Default 0.
// [13: 0] RW jpeg_x_start. Picture X start. Default 0.
#define QDCT_JPEG_X_START_END (0x1f26)
#define P_QDCT_JPEG_X_START_END (volatile unsigned int *)((0x1f26 << 2) + 0xff620000)
// [29:16] RW jpeg_y_end. Picture Y end. Default 0.
// [13: 0] RW jpeg_y_start. Picture Y start. Default 0.
#define QDCT_JPEG_Y_START_END (0x1f27)
#define P_QDCT_JPEG_Y_START_END (volatile unsigned int *)((0x1f27 << 2) + 0xff620000)
// [ 8] RW JPEG QUANT table access mode. 0=Write; 1=Read. Default 1.
// [ 5: 0] RW JPEG QUANT table addr. Default 0.
#define QDCT_JPEG_QUANT_ADDR (0x1f28)
#define P_QDCT_JPEG_QUANT_ADDR (volatile unsigned int *)((0x1f28 << 2) + 0xff620000)
// [31: 0] RW JPEG QUANT table data.
#define QDCT_JPEG_QUANT_DATA (0x1f29)
#define P_QDCT_JPEG_QUANT_DATA (volatile unsigned int *)((0x1f29 << 2) + 0xff620000)
// [ 1] W resume_jdct.
// Write 1 to this bit will resume JPEG input engine when previously
// it is halted by QDCT_JPEG_CTRL.jdct_inflow_ctrl.
// [ 0] W jpeg_sof.
// Write 1 to this bit will start JPEG input engine.
#define QDCT_JPEG_SOF_RESUME (0x1f2a)
#define P_QDCT_JPEG_SOF_RESUME (volatile unsigned int *)((0x1f2a << 2) + 0xff620000)
// [31:30] R dct_st. jdct_ctrl state. 0=IDLE; 1=WAIT; 2=DCT_REQ.
// [29:28] R mfdin_comp. Current component at pixel request to MFDIN.
// [27:14] R mfdin_y. Current Y at pixel request to MFDIN.
// [13: 0] R mfdin_x. Current X at pixel request to MFDIN.
#define QDCT_JPEG_DCT_STATUS0 (0x1f2b)
#define P_QDCT_JPEG_DCT_STATUS0 (volatile unsigned int *)((0x1f2b << 2) + 0xff620000)
// [15:12] R JPEG Quant read MEM select.
// [11: 8] R JPEG DCT2 write MEM select.
// [ 7: 4] R JPEG DCT2 read MEM select.
// [ 3: 0] R JPEG DCT1 write MEM select.
#define QDCT_JPEG_DCT_STATUS1 (0x1f2c)
#define P_QDCT_JPEG_DCT_STATUS1 (volatile unsigned int *)((0x1f2c << 2) + 0xff620000)
// [28:16] RW jdct_coeff1. Default 13'h1D90; // 7568 = 4096 * sqrt(2) * (cos(Pi/8) + sin(Pi/8)) // 7569
// [12: 0] RW jdct_coeff0. Default 13'h16A1; // 5793 = 4096 * sqrt(2)
#define QDCT_JPEG_DCT_COEFF01 (0x1f2d)
#define P_QDCT_JPEG_DCT_COEFF01 (volatile unsigned int *)((0x1f2d << 2) + 0xff620000)
// [28:16] RW jdct_coeff3. Default 13'h0C3F; // 3135 = 4096 * sqrt(2) * (cos(Pi/8) - sin(Pi/8))
// [12: 0] RW jdct_coeff2. Default 13'h08A9; // 2217 = 4096 * sqrt(2) * sin(Pi/8) // 2215
#define QDCT_JPEG_DCT_COEFF23 (0x1f2e)
#define P_QDCT_JPEG_DCT_COEFF23 (volatile unsigned int *)((0x1f2e << 2) + 0xff620000)
// [28:16] RW jdct_coeff5. Default 13'h046A; // 1130 = 4096 * (cos(3Pi/16) - sin(3Pi/16))
// [12: 0] RW jdct_coeff4. Default 13'h1631; // 5681 = 4096 * (cos(3Pi/16) + sin(3Pi/16)) // 5682
#define QDCT_JPEG_DCT_COEFF45 (0x1f2f)
#define P_QDCT_JPEG_DCT_COEFF45 (volatile unsigned int *)((0x1f2f << 2) + 0xff620000)
// [28:16] RW jdct_coeff7. Default 13'h0C92; // 3218 = 4096 * (cos(Pi/16) - sin(Pi/16))
// [12: 0] RW jdct_coeff6. Default 13'h12D0; // 4816 = 4096 * (cos(Pi/16) + sin(Pi/16))
#define QDCT_JPEG_DCT_COEFF67 (0x1f30)
#define P_QDCT_JPEG_DCT_COEFF67 (volatile unsigned int *)((0x1f30 << 2) + 0xff620000)
// [28:16] RW jdct_coeff9. Default 13'h0FB1; // 4017 = 4096 * cos(Pi/16)
// [12: 0] RW jdct_coeff8. Default 13'h0D4E; // 3406 = 4096 * cos(3Pi/16)
#define QDCT_JPEG_DCT_COEFF89 (0x1f31)
#define P_QDCT_JPEG_DCT_COEFF89 (volatile unsigned int *)((0x1f31 << 2) + 0xff620000)
#define QDCT_I_PRED_REF_WR_IDX (0x1f32)
#define P_QDCT_I_PRED_REF_WR_IDX (volatile unsigned int *)((0x1f32 << 2) + 0xff620000)
#define QDCT_I_PRED_REF_WR_DATA (0x1f33)
#define P_QDCT_I_PRED_REF_WR_DATA (volatile unsigned int *)((0x1f33 << 2) + 0xff620000)
// bit[29] mb_info_latch_no_I16_pred_mode
// bit[28] ie_dma_mbxy_use_i_pred
// bit[27] ie_dma_read_write_use_ip_idx
// bit[26] ie_start_use_top_dma_count
// bit[25] i_pred_top_dma_rd_mbbot
// bit[24] i_pred_top_dma_wr_disable
// bit[23] i_pred_mix
// bit[22] me_ab_rd_when_intra_in_p
// bit[21] force_mb_skip_run_when_intra
// bit[20] mc_out_mixed_type
// bit[19] ie_start_when_quant_not_full
// bit[18] mb_info_state_mix
// bit[17] mb_type_use_mix_result
// bit[16] me_cb_ie_read_enable
// bit[15] ie_cur_data_from_me
// bit[14] rem_per_use_table
// bit[13] q_latch_int_enable
// bit[12] q_use_table
// bit[11] q_start_wait
// bit[10] LUMA_16_LEFT_use_cur
// bit[9] DC_16_LEFT_SUM_use_cur
// bit[8] c_ref_ie_sel_cur
// bit[7] c_ipred_perfect_mode
// bit[6] ref_ie_ul_sel 0-old, 1-use next_set
// bit[5] mb_type_use_ie_result
// bit[4] detect_I16_from_I4
// bit[3] ie_not_wait_ref_busy
// bit[2] ie_I16_enable
// bit[1:0] ie_done_sel (0, 1, 2, -1)
#define QDCT_ADV_CONFIG (0x1f34)
#define P_QDCT_ADV_CONFIG (volatile unsigned int *)((0x1f34 << 2) + 0xff620000)
// bit [31:16] I16x16_weight
// bit [15:0] I4x4_weight
#define IE_WEIGHT (0x1f35)
#define P_IE_WEIGHT (volatile unsigned int *)((0x1f35 << 2) + 0xff620000)
// bit [31] reserved
// bit [30] q_I16MB
// bit [29] reserved
// bit [28] reserved
// bit [27:23] quant_table_addr I4MB:[0,7], I16MB:[8:15], INTER:[16:23], Reserved:[24:31]
// bit [22] quant_table_addr_update(when notupdate_rem_per) (read is arb_result : q_intra)
// bit [21:19] quant_rem_c
// bit [18:16] quant_rem_y
// bit [15:12] quant_per_c
// bit [11:8] quant_per_y
// bit [7:2] quant
// bit [1] update_rem_per
// bit [0] clear_wait_status
#define Q_QUANT_CONTROL (0x1f36)
#define P_Q_QUANT_CONTROL (volatile unsigned int *)((0x1f36 << 2) + 0xff620000)
#define MBBOT_EVEN_ADDR (0x1f37)
#define P_MBBOT_EVEN_ADDR (volatile unsigned int *)((0x1f37 << 2) + 0xff620000)
#define MBBOT_ODD_ADDR (0x1f38)
#define P_MBBOT_ODD_ADDR (volatile unsigned int *)((0x1f38 << 2) + 0xff620000)
// bit [29:24] quant_table_data_3
// bit [21:16] quant_table_data_2
// bit [13:8] quant_table_data_1
// bit [5:0] quant_table_data_0
#define QUANT_TABLE_DATA (0x1f39)
#define P_QUANT_TABLE_DATA (volatile unsigned int *)((0x1f39 << 2) + 0xff620000)
// bit [31:16] ie_sad_offset_I16
// bit [15:0] ie_sad_offset_I4
#define SAD_CONTROL_0 (0x1f3a)
#define P_SAD_CONTROL_0 (volatile unsigned int *)((0x1f3a << 2) + 0xff620000)
// bit [31] sad_soft_reset
// bit [30:27] reserved
// bit [26:24] ie_sad_shift_I16
// bit [22:20] ie_sad_shift_I4
// bit [18:16] me_sad_shift_INTER
// bit [15:0] me_sad_offset_INTER
#define SAD_CONTROL_1 (0x1f3b)
#define P_SAD_CONTROL_1 (volatile unsigned int *)((0x1f3b << 2) + 0xff620000)
// bit [31] vlc_quant_rd_ptr
// bit [30] vlc_quant_rd_ptr_update
// bit [29] vlc_quant_wr_ptr
// bit [28] vlc_quant_wr_ptr_update
// bit [27:26] reserved
// bit [25:19] vlc_delta_quant_1
// bit [18:13] vlc_quant_1
// bit [12:6] vlc_delta_quant_0
// bit [5:0] vlc_quant_0
#define QDCT_VLC_QUANT_CTL_0 (0x1f3c)
#define P_QDCT_VLC_QUANT_CTL_0 (volatile unsigned int *)((0x1f3c << 2) + 0xff620000)
// bit [31:30] me_sad_rd_idx
// bit [29] me_sad_rd_idx_update
// bit [28:27] me_sad_wr_idx
// bit [26] me_sad_wr_idx_update
// bit [25:24] ie_sad_rd_idx
// bit [23] ie_sad_rd_idx_update
// bit [22:21] ie_sad_wr_idx
// bit [20] ie_sad_wr_idx_update
// bit [19:12] Reserved
// bit [11:6] vlc_max_delta_q_neg
// bit [5:0] vlc_max_delta_q_pos
#define QDCT_VLC_QUANT_CTL_1 (0x1f3d)
#define P_QDCT_VLC_QUANT_CTL_1 (volatile unsigned int *)((0x1f3d << 2) + 0xff620000)
// bit[4] jdct_int
// bit[3] quant_latch
// bit[2] me_done
// bit[1] ie_start
// bit[0] i_pred_start
#define QDCT_INT_STATUS (0x1f3e)
#define P_QDCT_INT_STATUS (volatile unsigned int *)((0x1f3e << 2) + 0xff620000)
// bit[3] mix_i_pred_wait_left_en
// bit[2:0] mc_pending_mb_count
#define QDCT_MIX_I_PRED_STATUS (0x1f3f)
#define P_QDCT_MIX_I_PRED_STATUS (volatile unsigned int *)((0x1f3f << 2) + 0xff620000)
// IE/ME share same cbus_base as QDCT
//
// bit[31] active_ur_block
// bit[30] active_ul_block
// bit[21] disable_HENC_V_PRED_16
// bit[20] disable_HENC_H_PRED_16
// bit[19] disable_HENC_DC_PRED_16
// bit[18] disable_HENC_HENC_HOR_UP_PRED
// bit[17] disable_HENC_VERT_LEFT_PRED
// bit[16] disable_HENC_HENC_HOR_DOWN_PRED
// bit[15] disable_HENC_VERT_RIGHT_PRED
// bit[14] disable_HENC_DIAG_DOWN_RIGHT_PRED
// bit[13] disable_HENC_DIAG_DOWN_LEFT_PRED
// bit[12] disable_HENC_DC_PRED
// bit[11] disable_HENC_HOR_PRED
// bit[10] disable_HENC_VERT_PRED
// bit[9] ie_c_wait_ie_pause
// bit[8:4] max_ie_result_buff_count
// bit[3] ie_wait_for_ie_result // use for (max_ie_result_buff_count == 0) to wait every block
// bit[2] reserved
// bit[1] ie_enable
// bit[0] ie_soft_reset
#define IE_CONTROL (0x1f40)
#define P_IE_CONTROL (volatile unsigned int *)((0x1f40 << 2) + 0xff620000)
// bit[31:12] Reserved
// bit[11:0] mb_y
#define IE_MB_POSITION (0x1f41)
#define P_IE_MB_POSITION (volatile unsigned int *)((0x1f41 << 2) + 0xff620000)
// bit[31:16] me_skip_run
// bit[15:8] reserved
// bit [7:4] me_b8_mode
// bit [3:0] ie_me_mb_type
#define IE_ME_MB_INFO (0x1f42)
#define P_IE_ME_MB_INFO (volatile unsigned int *)((0x1f42 << 2) + 0xff620000)
// bit[3] ie_result_buff_enable
// bit[2] ie_result_buff_soft_reset
// bit[1] sad_enable
// bit[0] ie_sad_soft_reset
#define SAD_CONTROL (0x1f43)
#define P_SAD_CONTROL (volatile unsigned int *)((0x1f43 << 2) + 0xff620000)
// bit[31:16] - ie_result_buff_count - read only
// bit[14:12] -current_ie_result (pred_mode) - read only
// bit[11] top_control_data_buff_wr_ptr - rd/wr
// bit[10] top_control_data_buff_rd_ptr - rd/wr
// bit[9:5] ie_result_buff_wr_ptr - rd/wr
// bit[4:0] ie_result_buff_rd_ptr - rd/wr
#define IE_RESULT_BUFFER (0x1f44)
#define P_IE_RESULT_BUFFER (volatile unsigned int *)((0x1f44 << 2) + 0xff620000)
// bit[63:0] ie_i4_pred_mode
#define IE_I4_PRED_MODE_HI (0x1f45)
#define P_IE_I4_PRED_MODE_HI (volatile unsigned int *)((0x1f45 << 2) + 0xff620000)
#define IE_I4_PRED_MODE_LO (0x1f46)
#define P_IE_I4_PRED_MODE_LO (volatile unsigned int *)((0x1f46 << 2) + 0xff620000)
// bit [31:9] reserved
// bit [8:4] i_pred_block_number
// bit [3:0] ie_c_pred_mode
#define IE_C_PRED_MODE (0x1f47)
#define P_IE_C_PRED_MODE (volatile unsigned int *)((0x1f47 << 2) + 0xff620000)
// 31:16 - Left, 0-select ie_pixel, 1-select mc_data_out
// 15:0 - Top, 0-select ie_pixel, 1-select mc_data_out
#define IE_CUR_REF_SEL (0x1f48)
#define P_IE_CUR_REF_SEL (volatile unsigned int *)((0x1f48 << 2) + 0xff620000)
// bit[31] enable_f_skip_1_step_3
// bit[30] enable_f_skip_1_step_2
// bit[29] enable_f_skip_1_step_1
// bit[28] step_3_enable
// bit[27] step_2_sub_pixel
// bit[26] always_f_skip_step_3
// bit[25] always_f_skip_step_2
// bit[24] always_f_skip_step_1
// bit[23] half_pixel_only
// bit[22:13] reserved
// bit[12] adv_mv_enable
// bit[11] sad_short_valid
// bit[10:9] mv_flexable_ctl 00:0x40, 01:0x80, 10:0xc0, 11 : 0x100
// bit[8] no_md_ab_rd
// bit[7] use_dct_state
// bit[6] enable_free_clk_me_ctl
// bit[5] enable_free_clk_me_ab
// bit[4] enable_free_clk_me_cb
// bit[3] reserved
// bit[2] me_done_int_enable
// bit[1] me_enable
// bit[0] me_soft_reset
#define ME_CONTROL (0x1f49)
#define P_ME_CONTROL (volatile unsigned int *)((0x1f49 << 2) + 0xff620000)
// bit[31:28] Reserved
// bit[27:16] me_start_mby
// bit[15:12] Reserved
// bit[11:0] me_start_mbx
#define ME_START_POSITION (0x1f4a)
#define P_ME_START_POSITION (volatile unsigned int *)((0x1f4a << 2) + 0xff620000)
// bit [31:28] me_status - Read only
// bit [27:24] me_cb_status // current buffer
// bit [23:20] me_ab_status // anc buffer
// bit [19] Reserved
// bit [18:16] me_ab_wr_ptr // read only
// bit [15:4] me_last_mbx
// bit [3:1] me_ab_rd_ptr // read only
// bit [0] me_action
#define ME_STATUS (0x1f4b)
#define P_ME_STATUS (volatile unsigned int *)((0x1f4b << 2) + 0xff620000)
// all Read-only
// bit [31:28] Reserved
// bit [27:16] me_ab_mbx
// bit [15:14] me_cb_wr_ptr
// bit [13:12] me_cb_rd_ptr
// bit [11:0] me_cb_mbx
#define ME_DEBUG (0x1f4c)
#define P_ME_DEBUG (volatile unsigned int *)((0x1f4c << 2) + 0xff620000)
// bit[29:24] step_3_skip_line
// bit[23:18] step_2_skip_line
// bit[17:12] step_1_skip_line
// bit[11:6] step_0_skip_line
// bit[5:0] read_skip_line
#define ME_SKIP_LINE (0x1f4d)
#define P_ME_SKIP_LINE (volatile unsigned int *)((0x1f4d << 2) + 0xff620000)
// bit 15:13 Reserved
// bit 12 A_urgent // default : 0
// bit 11:6 A_brst_num // default : 0x3f
// bit 5:0 A_id // default : 0x23
#define ME_AB_MEM_CTL (0x1f4e)
#define P_ME_AB_MEM_CTL (volatile unsigned int *)((0x1f4e << 2) + 0xff620000)
// bit[31:24] anc_pic_canvas
// bit[23:12] max_me_mby_num
// bit[11:0] max_me_mbx_num
#define ME_PIC_INFO (0x1f4f)
#define P_ME_PIC_INFO (volatile unsigned int *)((0x1f4f << 2) + 0xff620000)
// bit [23:12] me_sad_enough_1
// bit [11:0] me_sad_enough_0
#define ME_SAD_ENOUGH_01 (0x1f50)
#define P_ME_SAD_ENOUGH_01 (volatile unsigned int *)((0x1f50 << 2) + 0xff620000)
// bit [25:12] adv_mv_8x8_enough
// bit [11:0] me_sad_enough_2
#define ME_SAD_ENOUGH_23 (0x1f51)
#define P_ME_SAD_ENOUGH_23 (volatile unsigned int *)((0x1f51 << 2) + 0xff620000)
// bit [21:10] me_step0_big_sad
// bit [9:5] me_step0_close_mv_y
// bit [4:0] me_step0_close_mv_x
#define ME_STEP0_CLOSE_MV (0x1f52)
#define P_ME_STEP0_CLOSE_MV (volatile unsigned int *)((0x1f52 << 2) + 0xff620000)
// bit[31:24] force_skip_sad_3
// bit[23:16] force_skip_sad_2
// bit[15:08] force_skip_sad_1
// bit[07:00] force_skip_sad_0
#define ME_F_SKIP_SAD (0x1f53)
#define P_ME_F_SKIP_SAD (volatile unsigned int *)((0x1f53 << 2) + 0xff620000)
// bit[31:24] force_skip_weight_3
// bit[23:16] force_skip_weight_2
// bit[15:08] force_skip_weight_1
// bit[07:00] force_skip_weight_0
#define ME_F_SKIP_WEIGHT (0x1f54)
#define P_ME_F_SKIP_WEIGHT (volatile unsigned int *)((0x1f54 << 2) + 0xff620000)
// Merge when (
// (flex & me_merge_flex_en) |
// (big_sad & me_merge_sad_en)|
// ((~me_merge_flex_en)&(~me_merge_sad_en))
// ) &
// ( small_mv_diff |(~me_merge_small_mv_en))
// & (me_merge_flex_en | me_merge_sad_en | me_merge_small_mv_en)
// bit[31] me_merge_mv_en_16
// bit[30] me_merge_small_mv_en_16
// bit[29] me_merge_flex_en_16
// bit[28] me_merge_sad_en_16
// bit[27] me_merge_mv_en_8
// bit[26] me_merge_small_mv_en_8
// bit[25] me_merge_flex_en_8
// bit[24] me_merge_sad_en_8
// bit[23:18] me_merge_mv_diff_16
// bit[17:12] me_merge_mv_diff_8
// bit[11:0] me_merge_min_sad
#define ME_MV_MERGE_CTL (0x1f55)
#define P_ME_MV_MERGE_CTL (volatile unsigned int *)((0x1f55 << 2) + 0xff620000)
// bit[31:24] mv_step_weight_1
// bit[23:16] mv_pre_weight_1
// bit [15:0] mv_step_weight_0
// bit[7:0] mv_pre_weight_0
#define ME_MV_WEIGHT_01 (0x1f56)
#define P_ME_MV_WEIGHT_01 (volatile unsigned int *)((0x1f56 << 2) + 0xff620000)
// bit[31:24] mv_step_weight_3 (mv_step_weight_1_2nd)
// bit[23:16] mv_pre_weight_3 (mv_pre_weight_1_2nd)
// bit[15:8] mv_step_weight_2
// bit[7:0] mv_pre_weight_2
#define ME_MV_WEIGHT_23 (0x1f57)
#define P_ME_MV_WEIGHT_23 (volatile unsigned int *)((0x1f57 << 2) + 0xff620000)
// bit[31:24] me_sad_range_inc_3
// bit[23:16] me_sad_range_inc_2
// bit[15:8] me_sad_range_inc_1
// bit[7:0] me_sad_range_inc_0
#define ME_SAD_RANGE_INC (0x1f58)
#define P_ME_SAD_RANGE_INC (volatile unsigned int *)((0x1f58 << 2) + 0xff620000)
// bit[31:19] reserved
// bit[18] sub_relative_any_1_en
// bit[17] sub_relative_any_2_en
// bit[16] sub_relative_any_3_en
// bit[15] sub_relative_any_4_en
// bit[14] sub_relative_any_h_en
// bit[13] sub_make_non_flex_fix
// bit[12] sub_make_big_non_flex_fix
// bit[11:8] sub_normal_mv_diff_16
// bit[7:4] sub_normal_mv_diff_8
// bit[3:2] Reserved
// bit[1] sub_merge_enable_16
// bit[0] sub_merge_enable_8
#define ME_SUB_MERGE_CTL (0x1f59)
#define P_ME_SUB_MERGE_CTL (volatile unsigned int *)((0x1f59 << 2) + 0xff620000)
// bit[31:28] sub_ref_mv_diff_near
// bit[27:24] sub_ref_mv_diff_near_flex
// bit[23:20] sub_ref_mv_diff
// bit[19:16] sub_ref_mv_diff_flex
// bit[15:8] sub_ref_mv_near_weight
// bit[7:0] sub_ref_mv_weight
#define ME_SUB_REF_MV_CTL (0x1f5a)
#define P_ME_SUB_REF_MV_CTL (volatile unsigned int *)((0x1f5a << 2) + 0xff620000)
// bit[31:24] sub_weight_max_sad
// bit[23:16] sub_any_range_sad
// bit[15:8] sub_any_min_sad
// bit[7:0] sub_any_max_sad
#define ME_SUB_ANY_WEIGHT_SAD (0x1f5b)
#define P_ME_SUB_ANY_WEIGHT_SAD (volatile unsigned int *)((0x1f5b << 2) + 0xff620000)
// bit[31:24] sub_fix_sad
// bit[23:16] sub_fix_diff_sad
// bit[15:8] sub_sad_flex_adj
// bit[7:0] sub_big_non_flex_fix_sad
#define ME_SUB_FIX_SAD (0x1f5c)
#define P_ME_SUB_FIX_SAD (volatile unsigned int *)((0x1f5c << 2) + 0xff620000)
// bit[31:24] sub_fix_min_sad
// bit[23:16] sub_fix_min_diff_sad
// bit[15:8] sub_fix_min_sad_2
// bit[7:0] sub_fix_min_diff_sad_2
#define ME_SUB_FIX_MIN_SAD (0x1f5d)
#define P_ME_SUB_FIX_MIN_SAD (volatile unsigned int *)((0x1f5d << 2) + 0xff620000)
// bit[31:24] sub_snap_to_ref_max_sad
// bit[23] sub_snap_to_ref_non_flex
// bit[22:16] sub_snap_to_ref_mv_diff
// bit[15:4] sub_glitch_mv_sad
// bit[3:0] sub_glitch_mv_diff
#define ME_SUB_SNAP_GLITCH (0x1f5e)
#define P_ME_SUB_SNAP_GLITCH (volatile unsigned int *)((0x1f5e << 2) + 0xff620000)
// bit[31:20] sad_act_limit
// bit[19:8] s_a_any_sad
// bit[7] Reserved
// bit[6:5] sub_merge_method
// bit[4] use_sub_act_result
// bit[3] s_a_rnd
// bit[2] Reserved
// bit[1] sub_act_en_16
// bit[0] sub_act_en
#define ME_SUB_ACT_CTL (0x1f5f)
#define P_ME_SUB_ACT_CTL (volatile unsigned int *)((0x1f5f << 2) + 0xff620000)
// bit[31:16] reserved
// bit[15:0] me_weight
#define ME_WEIGHT (0x1f60)
#define P_ME_WEIGHT (volatile unsigned int *)((0x1f60 << 2) + 0xff620000)
// bit[31] ready_update
// bit[30] data_update
// bit[29:28] reserved
// bit[27:22] me_quant_0
// bit[21] ie_sad_ready_0
// bit[20:18] Reserved
// bit[17:16] me_sad_mv_type_0
// bit[15:0] me_sad_0
#define ME_SAD_0 (0x1f61)
#define P_ME_SAD_0 (volatile unsigned int *)((0x1f61 << 2) + 0xff620000)
// bit[31] ready_update
// bit[30] data_update
// bit[29:28] reserved
// bit[27:22] me_quant_1
// bit[21] me_sad_ready_1
// bit[20:18] Reserved
// bit[17:16] me_sad_mv_type_1
// bit[15:0] me_sad_1
#define ME_SAD_1 (0x1f62)
#define P_ME_SAD_1 (volatile unsigned int *)((0x1f62 << 2) + 0xff620000)
// bit[31] ready_update
// bit[30] data_update
// bit[29:28] reserved
// bit[27:22] me_quant_2
// bit[21] me_sad_ready_2
// bit[20:18] Reserved
// bit[17:16] me_sad_mv_type_2
// bit[15:0] me_sad_2
#define ME_SAD_2 (0x1f63)
#define P_ME_SAD_2 (volatile unsigned int *)((0x1f63 << 2) + 0xff620000)
// bit[31] ready_update
// bit[30] data_update
// bit[29:28] reserved
// bit[27:22] me_quant_3
// bit[21] me_sad_ready_3
// bit[20:18] Reserved
// bit[17:16] me_sad_mv_type_3
// bit[15:0] me_sad_3
#define ME_SAD_3 (0x1f64)
#define P_ME_SAD_3 (volatile unsigned int *)((0x1f64 << 2) + 0xff620000)
// bit[31] ready_update
// bit[30] data_update
// bit[29:28] reserved
// bit[27:22] ie_quant_0
// bit[21] ie_sad_ready_0
// bit[20] I4/I16 (0-I4MB, 1-I16MB)
// bit[19:0] ie_sad_0
#define IE_SAD_0 (0x1f65)
#define P_IE_SAD_0 (volatile unsigned int *)((0x1f65 << 2) + 0xff620000)
// bit[31] ready_update
// bit[30] data_update
// bit[29:28] reserved
// bit[27:22] ie_quant_1
// bit[21] ie_sad_ready_1
// bit[20] I4/I16 (0-I4MB, 1-I16MB)
// bit[19:0] ie_sad_1
#define IE_SAD_1 (0x1f66)
#define P_IE_SAD_1 (volatile unsigned int *)((0x1f66 << 2) + 0xff620000)
// bit[31] ready_update
// bit[30] data_update
// bit[29:28] reserved
// bit[27:22] ie_quant_2
// bit[21] ie_sad_ready_2
// bit[20] I4/I16 (0-I4MB, 1-I16MB)
// bit[19:0] ie_sad_2
#define IE_SAD_2 (0x1f67)
#define P_IE_SAD_2 (volatile unsigned int *)((0x1f67 << 2) + 0xff620000)
// bit[31] ready_update
// bit[30] data_update
// bit[29:28] reserved
// bit[27:22] ie_quant_3
// bit[21] ie_sad_ready_3
// bit[20] I4/I16 (0-I4MB, 1-I16MB)
// bit[19:0] ie_sad_3
#define IE_SAD_3 (0x1f68)
#define P_IE_SAD_3 (volatile unsigned int *)((0x1f68 << 2) + 0xff620000)
// bit[31] enable_large_diff_16x8
// bit[30] enable_large_diff_8x16
// bit[29:16] adv_mv_8x8_weight
// bit[15:14] reserved
// bit[13:0] adv_mv_4x4x4_weight
#define ADV_MV_CTL0 (0x1f69)
#define P_ADV_MV_CTL0 (volatile unsigned int *)((0x1f69 << 2) + 0xff620000)
// bit[31:16] adv_mv_16x16_weight
// bit[15] enable_large_diff_16x16
// bit[14:0] adv_mv_16_8_weight
#define ADV_MV_CTL1 (0x1f6a)
#define P_ADV_MV_CTL1 (volatile unsigned int *)((0x1f6a << 2) + 0xff620000)
#define ADV_MV_CTL2 (0x1f6b)
#define P_ADV_MV_CTL2 (volatile unsigned int *)((0x1f6b << 2) + 0xff620000)
// bit[31] v3_skip_enable
// bit[30] v3_step_1_weight_enable // for step1, will only use pre_weight for block0, only step_weight for block 1,2,3
// bit[29] v3_l2_skip_only_use_l2_sad // set to 1 may allow l1 maybe not skip
// bit[28] v3_mv_sad_weight_enable
// bit[27] v3_ipred_type_enable
// bit[25:12] force_skip_sad_1
// bit[11:0] force_skip_sad_0
#define V3_SKIP_CONTROL (0x1f6c)
#define P_V3_SKIP_CONTROL (volatile unsigned int *)((0x1f6c << 2) + 0xff620000)
// bit[18:16] top_ipred_type_count
// bit[15:14] Reserved
// bit[13:12] top_ipred_type_rd_idx
// bit[11:10] top_ipred_type_wr_idx
// bit[9] left_ipred_type_ready
// bit[8] top_ipred_type_ready
// bit[7:6] left_mv_idx
// bit[5:4] top_mv_idx
// bit[3] - left_mv_ready
// bit[2:0] top_mv_ready
#define V3_TOP_LEFT_CTL (0x1f6d)
#define P_V3_TOP_LEFT_CTL (volatile unsigned int *)((0x1f6d << 2) + 0xff620000)
#define V3_TOP_MV (0x1f6e)
#define P_V3_TOP_MV (volatile unsigned int *)((0x1f6e << 2) + 0xff620000)
#define V3_LEFT_MV (0x1f6f)
#define P_V3_LEFT_MV (volatile unsigned int *)((0x1f6f << 2) + 0xff620000)
// bit[31:30] reserved
// bit[29:16] v3_skip_weight_1
// bit[15:12] reserved
// bit[11:0] v3_skip_weight_0
#define V3_SKIP_WEIGHT (0x1f70)
#define P_V3_SKIP_WEIGHT (volatile unsigned int *)((0x1f70 << 2) + 0xff620000)
// bit[31:28] reserved
// bit[27:16] v3_l1_f_skip_max_sad
// bit[15:12] reserved
// bit[11:0] v3_l1_skip_max_sad
#define V3_L1_SKIP_MAX_SAD (0x1f71)
#define P_V3_L1_SKIP_MAX_SAD (volatile unsigned int *)((0x1f71 << 2) + 0xff620000)
// bit[31:16] force_skip_sad_2
// bit[15:0] v3_skip_weight_2
#define V3_L2_SKIP_WEIGHT (0x1f72)
#define P_V3_L2_SKIP_WEIGHT (volatile unsigned int *)((0x1f72 << 2) + 0xff620000)
// bit[21:16] v3_mv_sad_table_addr 0-15 table_step_0
// bit[11:0] v3_mv_sad
#define V3_MV_SAD_TABLE (0x1f73)
#define P_V3_MV_SAD_TABLE (volatile unsigned int *)((0x1f73 << 2) + 0xff620000)
// [31:16] v3_ie_f_zero_sad_i16
// [15:0] v3_ie_f_zero_sad_i4
#define V3_F_ZERO_CTL_0 (0x1f74)
#define P_V3_F_ZERO_CTL_0 (volatile unsigned int *)((0x1f74 << 2) + 0xff620000)
// [25] v3_no_ver_when_top_zero_en
// [24] v3_no_hor_when_left_zero_en
// [23:16] v3_max_I16_H_num // 0 means no break
// [15:0] v3_me_f_zero_sad
#define V3_F_ZERO_CTL_1 (0x1f75)
#define P_V3_F_ZERO_CTL_1 (volatile unsigned int *)((0x1f75 << 2) + 0xff620000)
#define V3_TOP_INTRA_INFO (0x1f76)
#define P_V3_TOP_INTRA_INFO (volatile unsigned int *)((0x1f76 << 2) + 0xff620000)
#define V3_LEFT_INTRA_INFO (0x1f77)
#define P_V3_LEFT_INTRA_INFO (volatile unsigned int *)((0x1f77 << 2) + 0xff620000)
// [31:24] C_ipred_weight_H
// [23:16] C_ipred_weight_V
// [15:8] I4_ipred_weight_else
// [7:0] I4_ipred_weight_most
#define V3_IPRED_TYPE_WEIGHT_0 (0x1f78)
#define P_V3_IPRED_TYPE_WEIGHT_0 (volatile unsigned int *)((0x1f78 << 2) + 0xff620000)
// [31:24] I16_ipred_weight_DC
// [23:16] I16_ipred_weight_H
// [15:8] I16_ipred_weight_V
// [7:0] C_ipred_weight_DC
#define V3_IPRED_TYPE_WEIGHT_1 (0x1f79)
#define P_V3_IPRED_TYPE_WEIGHT_1 (volatile unsigned int *)((0x1f79 << 2) + 0xff620000)
// [31:16] v3_left_small_max_me_sad
// [15:0] v3_left_small_max_ie_sad
#define V3_LEFT_SMALL_MAX_SAD (0x1f7a)
#define P_V3_LEFT_SMALL_MAX_SAD (volatile unsigned int *)((0x1f7a << 2) + 0xff620000)
// (qr==7) & (qp==15) means force zero block
// [31:26] v4_force_q_r_intra
// [25:20] v4_force_q_r_inter
// [19] v4_force_q_y_enable
// [18:16] v4_force_qr_y
// [15:12] v4_force_qp_y
// [11:0] v4_force_skip_sad
#define V4_FORCE_SKIP_CFG (0x1f7b)
#define P_V4_FORCE_SKIP_CFG (volatile unsigned int *)((0x1f7b << 2) + 0xff620000)
// v5 Complexity // Y(256 pixel per MB) and C(128 pixel per MB)
// For every 4x4 block, calculate average and Add abs(pixel-average) together
// bit[31:16] v5_diff_sum_C
// bit[15:0] v5_diff_sum_Y
#define V5_MB_DIFF_SUM (0x1f7c)
#define P_V5_MB_DIFF_SUM (volatile unsigned int *)((0x1f7c << 2) + 0xff620000)
// bit[31:24] v5_small_diff_cnt_C
// bit[23:16] v5_small_diff_C
// bit[15:8] v5_small_diff_cnt_Y
// bit[7:0] v5_small_diff_Y
#define V5_SMALL_DIFF_CNT (0x1f7d)
#define P_V5_SMALL_DIFF_CNT (volatile unsigned int *)((0x1f7d << 2) + 0xff620000)
// bit[31:29] Reserved
// bit[28:24] v5_simple_block_cnt // 0 -15 Y 16-23 C
// bit[23:20] v5_simple_pixel_cnt
// bit[19:18] v5_simple_dq_wr_ptr
// bit[17:16] v5_simple_dq_rd_ptr
// bit[15:12] v5_simple_dq (Read Only)
// bit[11:8] v5_simple_me_weight(Read Only)
// bit[7] v5_use_small_diff_cnt
// bit[6] v5_simple_mb_inter_all_en
// bit[5] v5_simple_mb_inter_8x8_en
// bit[4] v5_simple_mb_inter_16_8_en
// bit[3] v5_simple_mb_inter_16x16_en
// bit[2] v5_simple_mb_intra_en
// bit[1] v5_simple_mb_C_en
// bit[0] v5_simple_mb_Y_en
#define V5_SIMPLE_MB_CTL (0x1f7e)
#define P_V5_SIMPLE_MB_CTL (volatile unsigned int *)((0x1f7e << 2) + 0xff620000)
// bit[31:28] v5_simple_dq_shift
// bit[27:24] v5_simple_dq_6(-7 to +7)
// bit[23:20] v5_simple_dq_5(-7 to +7)
// bit[19:16] v5_simple_dq_4(-7 to +7)
// bit[15:12] v5_simple_dq_3(-7 to +7)
// bit[11:08] v5_simple_dq_2(-7 to +7)
// bit[07:04] v5_simple_dq_1(-7 to +7)
// bit[03:00] v5_simple_dq_0(-7 to +7)
#define V5_SIMPLE_MB_DQUANT (0x1f7f)
#define P_V5_SIMPLE_MB_DQUANT (volatile unsigned int *)((0x1f7f << 2) + 0xff620000)
// bit[31:28] v5_simple_me_weight_shift
// bit[27:24] v5_simple_me_weight_6(-7 to +7)
// bit[23:20] v5_simple_me_weight_5(-7 to +7)
// bit[19:16] v5_simple_me_weight_4(-7 to +7)
// bit[15:12] v5_simple_me_weight_3(-7 to +7)
// bit[11:08] v5_simple_me_weight_2(-7 to +7)
// bit[07:04] v5_simple_me_weight_1(-7 to +7)
// bit[03:00] v5_simple_me_weight_0(-7 to +7)
#define V5_SIMPLE_MB_ME_WEIGHT (0x1f80)
#define P_V5_SIMPLE_MB_ME_WEIGHT (volatile unsigned int *)((0x1f80 << 2) + 0xff620000)
//
// Closing file: qdct_regs.h
//
//------------------------------------------------------------------------------
// HCODEC MDEC module level register offset
//------------------------------------------------------------------------------
//
// Reading file: hcodec_mdec_regs.h
//
//========================================================================
// MDEC module level register offset
//========================================================================
// -----------------------------------------------
// CBUS_BASE: DOS_HCODEC_HDEC_CBUS_BASE = 0x09
// -----------------------------------------------
//`define HCODEC_MC_CTRL_REG 8'h00
//`define HCODEC_MC_MB_INFO 8'h01
//`define HCODEC_MC_PIC_INFO 8'h02
//`define HCODEC_MC_HALF_PEL_ONE 8'h03
//`define HCODEC_MC_HALF_PEL_TWO 8'h04
//`define HCODEC_POWER_CTL_MC 8'h05
//
//`define HCODEC_MC_CMD 8'h06
//`define HCODEC_MC_CTRL0 8'h07
//`define HCODEC_MC_PIC_W_H 8'h08
//`define HCODEC_MC_STATUS0 8'h09
//`define HCODEC_MC_STATUS1 8'h0a
//`define HCODEC_MC_CTRL1 8'h0b
//`define HCODEC_MC_MIX_RATIO0 8'h0c
//`define HCODEC_MC_MIX_RATIO1 8'h0d
//`define HCODEC_MC_DP_MB_XY 8'h0e //read only
//`define HCODEC_MC_OM_MB_XY 8'h0f //read only
//
//`define HCODEC_MC_MPORT_CTRL 8'h40
//`define HCODEC_MC_MPORT_DAT 8'h41
//`define HCODEC_MC_WT_PRED_CTRL 8'h42
//`define HCODEC_MC_MBBOT_ST_EVEN_ADDR 8'h44
//`define HCODEC_MC_MBBOT_ST_ODD_ADDR 8'h45
//`define HCODEC_MC_DPDN_MB_XY 8'h46 //read only
//`define HCODEC_MC_OMDN_MB_XY 8'h47 //read only
//`define HCODEC_MC_HCMDBUF_H 8'h48
//`define HCODEC_MC_HCMDBUF_L 8'h49
//`define HCODEC_MC_HCMD_H 8'h4a //read only
//`define HCODEC_MC_HCMD_L 8'h4b //read only
//`define HCODEC_MC_IDCT_DAT 8'h4c
//
//`define HCODEC_MC_CTRL_GCLK_CTRL 8'h4d
//`define HCODEC_MC_OTHER_GCLK_CTRL 8'h4e
//
////Bit 29:24, mbbot thread ID and token
////Bit 21:16, mc read/write thread ID and token
////Bit 13:8, mbbot pre-arbitor burst number
////Bit 5:0, mc pre-arbitor burst number
//`define HCODEC_MC_CTRL2 8'h4f
//
//// `define HCODEC_DBLK_QUANT 8'h76 // ONLY for $ucode/real/amrisc/rv.s, reg value from apollo
//
////`define HCODEC_ANC1_CANVAS_ADDR 8'h80
////`define HCODEC_ANC2_CANVAS_ADDR 8'h81
//
////`define HCODEC_REC_CANVAS_ADDR 8'h89
//
////`define HCODEC_MDEC_PIC_W 8'h8c
////`define HCODEC_MDEC_PIC_H 8'h8d
//`define HCODEC_MDEC_PIC_DC_CTRL 8'h8e
//`define HCODEC_MDEC_PIC_DC_STATUS 8'h8f
//
//`define HCODEC_ANC0_CANVAS_ADDR 8'h90
//`define HCODEC_ANC1_CANVAS_ADDR 8'h91
//`define HCODEC_ANC2_CANVAS_ADDR 8'h92
//`define HCODEC_ANC3_CANVAS_ADDR 8'h93
//`define HCODEC_ANC4_CANVAS_ADDR 8'h94
//`define HCODEC_ANC5_CANVAS_ADDR 8'h95
//`define HCODEC_ANC6_CANVAS_ADDR 8'h96
//`define HCODEC_ANC7_CANVAS_ADDR 8'h97
//`define HCODEC_ANC8_CANVAS_ADDR 8'h98
//`define HCODEC_ANC9_CANVAS_ADDR 8'h99
//`define HCODEC_ANC10_CANVAS_ADDR 8'h9a
//`define HCODEC_ANC11_CANVAS_ADDR 8'h9b
//`define HCODEC_ANC12_CANVAS_ADDR 8'h9c
//`define HCODEC_ANC13_CANVAS_ADDR 8'h9d
//`define HCODEC_ANC14_CANVAS_ADDR 8'h9e
//`define HCODEC_ANC15_CANVAS_ADDR 8'h9f
//`define HCODEC_ANC16_CANVAS_ADDR 8'ha0
//`define HCODEC_ANC17_CANVAS_ADDR 8'ha1
//`define HCODEC_ANC18_CANVAS_ADDR 8'ha2
//`define HCODEC_ANC19_CANVAS_ADDR 8'ha3
//`define HCODEC_ANC20_CANVAS_ADDR 8'ha4
//`define HCODEC_ANC21_CANVAS_ADDR 8'ha5
//`define HCODEC_ANC22_CANVAS_ADDR 8'ha6
//`define HCODEC_ANC23_CANVAS_ADDR 8'ha7
//`define HCODEC_ANC24_CANVAS_ADDR 8'ha8
//`define HCODEC_ANC25_CANVAS_ADDR 8'ha9
//`define HCODEC_ANC26_CANVAS_ADDR 8'haa
//`define HCODEC_ANC27_CANVAS_ADDR 8'hab
//`define HCODEC_ANC28_CANVAS_ADDR 8'hac
//`define HCODEC_ANC29_CANVAS_ADDR 8'had
//`define HCODEC_ANC30_CANVAS_ADDR 8'hae
//`define HCODEC_ANC31_CANVAS_ADDR 8'haf
//
//`define HCODEC_DBKR_CANVAS_ADDR 8'hb0
//`define HCODEC_DBKW_CANVAS_ADDR 8'hb1
//`define HCODEC_REC_CANVAS_ADDR 8'hb2
//
////28:24, read/write, current canvas idx, used in h264 only now
////23:0, read only, current canvas address, 23:16, Cr canvas addr, 15:8, Cb canvas addr, 7:0, Y canvas addr
//`define HCODEC_CURR_CANVAS_CTRL 8'hb3
//
//`define HCODEC_MDEC_PIC_DC_THRESH 8'hb8
//`define HCODEC_MDEC_PICR_BUF_STATUS 8'hb9
//`define HCODEC_MDEC_PICW_BUF_STATUS 8'hba
//`define HCODEC_MCW_DBLK_WRRSP_CNT 8'hbb
//
//`define HCODEC_AV_SCRATCH_0 8'hc0
//`define HCODEC_AV_SCRATCH_1 8'hc1
//`define HCODEC_AV_SCRATCH_2 8'hc2
//`define HCODEC_AV_SCRATCH_3 8'hc3
//`define HCODEC_AV_SCRATCH_4 8'hc4
//`define HCODEC_AV_SCRATCH_5 8'hc5
//`define HCODEC_AV_SCRATCH_6 8'hc6
//`define HCODEC_AV_SCRATCH_7 8'hc7
//`define HCODEC_AV_SCRATCH_8 8'hc8
//`define HCODEC_AV_SCRATCH_9 8'hc9
//`define HCODEC_AV_SCRATCH_A 8'hca
//`define HCODEC_AV_SCRATCH_B 8'hcb
//`define HCODEC_AV_SCRATCH_C 8'hcc
//`define HCODEC_AV_SCRATCH_D 8'hcd
//`define HCODEC_AV_SCRATCH_E 8'hce
//`define HCODEC_AV_SCRATCH_F 8'hcf
//`define HCODEC_AV_SCRATCH_G 8'hd0
//`define HCODEC_AV_SCRATCH_H 8'hd1
//`define HCODEC_AV_SCRATCH_I 8'hd2
//`define HCODEC_AV_SCRATCH_J 8'hd3
//`define HCODEC_AV_SCRATCH_K 8'hd4
//`define HCODEC_AV_SCRATCH_L 8'hd5
//`define HCODEC_AV_SCRATCH_M 8'hd6
//`define HCODEC_AV_SCRATCH_N 8'hd7
//
//// bit[29:24] A_brst_num_co_mb
//// bit[21:16] A_id_co_mb
//// bit[11:0] wrrsp_count_co_mb
//`define HCODEC_WRRSP_CO_MB 8'hd8
//// bit[29:24] A_brst_num_dcac
//// bit[21:16] A_id_dcac
//// bit[11:0] wrrsp_count_dcac
//`define HCODEC_WRRSP_DCAC 8'hd9
//
////======================================
//// MC Control Register Bits
////
////======================================
//// For bits, just copy the defines...don't translate to addresses
// `define HCODEC_MC_ENABLE 16'h0001
// //`define MC_RESET 16'h0002
// `define HCODEC_SKIP_MB 16'h0004
//
////======================================
//// MB Info Register Bits
////
////======================================
// `define HCODEC_INTRA_MB 16'h0001
//
// `define HCODEC_BWD_PRED 16'h0004
// `define HCODEC_FWD_PRED 16'h0008
//
// `define HCODEC_FLD_MOT 16'h0100
// `define HCODEC_FRM_16x8_MOT 16'h0200
// `define HCODEC_DUAL_PRM_MOT 16'h0300
//
// `define HCODEC_FRM_DCT 16'h0000 // Bit 10
// `define HCODEC_FLD_DCT 16'h0400
//
////======================================
//// MB Info Register Bits
////
////======================================
// `define HCODEC_I_PIC 16'h0001
// `define HCODEC_P_PIC 16'h0002
// `define HCODEC_B_PIC 16'h0003
//
// `define HCODEC_FLD_PIC 16'h0000 // Bit 8
// `define HCODEC_FRM_PIC 16'h0100
//
////========================================================================
//// DBLK Register: 12'h950 - 12'h97f
////========================================================================
//`define HCODEC_DBLK_RST 8'h50
//`define HCODEC_DBLK_CTRL 8'h51
//`define HCODEC_DBLK_MB_WID_HEIGHT 8'h52
//`define HCODEC_DBLK_STATUS 8'h53
//`define HCODEC_DBLK_CMD_CTRL 8'h54
//`define HCODEC_DBLK_MB_XY 8'h55
//`define HCODEC_DBLK_QP 8'h56
//`define HCODEC_DBLK_Y_BHFILT 8'h57
//`define HCODEC_DBLK_Y_BHFILT_HIGH 8'h58
//`define HCODEC_DBLK_Y_BVFILT 8'h59
//`define HCODEC_DBLK_CB_BFILT 8'h5a
//`define HCODEC_DBLK_CR_BFILT 8'h5b
//`define HCODEC_DBLK_Y_HFILT 8'h5c
//`define HCODEC_DBLK_Y_HFILT_HIGH 8'h5d
//`define HCODEC_DBLK_Y_VFILT 8'h5e
//`define HCODEC_DBLK_CB_FILT 8'h5f
//`define HCODEC_DBLK_CR_FILT 8'h60
//`define HCODEC_DBLK_BETAX_QP_SEL 8'h61
//`define HCODEC_DBLK_CLIP_CTRL0 8'h62
//`define HCODEC_DBLK_CLIP_CTRL1 8'h63
//`define HCODEC_DBLK_CLIP_CTRL2 8'h64
//`define HCODEC_DBLK_CLIP_CTRL3 8'h65
//`define HCODEC_DBLK_CLIP_CTRL4 8'h66
//`define HCODEC_DBLK_CLIP_CTRL5 8'h67
//`define HCODEC_DBLK_CLIP_CTRL6 8'h68
//`define HCODEC_DBLK_CLIP_CTRL7 8'h69
//`define HCODEC_DBLK_CLIP_CTRL8 8'h6a
//
//`define HCODEC_DBLK_STATUS1 8'h6b
//`define HCODEC_DBLK_GCLK_FREE 8'h6c
//`define HCODEC_DBLK_GCLK_OFF 8'h6d
//
//`define HCODEC_DBLK_AVSFLAGS 8'h6e
//
//// bit 15:0
//`define HCODEC_DBLK_CBPY 8'h70
//// bit 11:8 -- deblk_cbpy_bottom
//// bit 7:4 -- deblk_cbpy_left
//// bit 3:0 -- deblk_cbpy_top
//`define HCODEC_DBLK_CBPY_ADJ 8'h71
//// bit 7:0 -- deblk_cbpc
//`define HCODEC_DBLK_CBPC 8'h72
//// bit 15 -- bottom_mb
//// bit 14 -- left_mb
//// bit 13 -- top_mb
//// bit 12 -- reserved
//// bit 11:8 -- deblk_cbpc_bottom
//// bit 7:4 -- deblk_cbpc_left
//// bit 3:0 -- deblk_cbpc_top
//`define HCODEC_DBLK_CBPC_ADJ 8'h73
//// bit 15:8 -- deblk_hmvd -- {left_1, left_0, below_1, below_0, block3-0}
//// bit 7:0 -- deblk_vmvd -- {top_1, top_0, below_1, below_0, block3-0}
//`define HCODEC_DBLK_VHMVD 8'h74
//// bit 13:12 -- right_vmvd
//// bit 11 -- right_above_vmvd
//// bit 10 -- left_below_hmvd
//// bit 9 -- disable_dblk_luma
//// bit 8 -- disable_dblk_chroma
//// bit 7 -- bBelowRefDiff
//// bit 6 -- bLeftRefDiff
//// bit 5 -- bAboveRefDiff
//// bit 4 -- reserved
//// bit 3 -- s_below
//// bit 2 -- s_left
//// bit 1 -- s_above
//// bit 0 -- s
//`define HCODEC_DBLK_STRONG 8'h75
//// bit 14:10 -- PQUANT
//// bit 9:5 -- left_PQUANT
//// bit 4:0 -- top_PQUANT
//`define HCODEC_DBLK_RV8_QUANT 8'h76
//
//`define HCODEC_DBLK_CBUS_HCMD2 8'h77
//`define HCODEC_DBLK_CBUS_HCMD1 8'h78
//`define HCODEC_DBLK_CBUS_HCMD0 8'h79
//`define HCODEC_DBLK_VLD_HCMD2 8'h7a
//`define HCODEC_DBLK_VLD_HCMD1 8'h7b
//`define HCODEC_DBLK_VLD_HCMD0 8'h7c
//
//`define HCODEC_DBLK_OST_YBASE 8'h7d
//`define HCODEC_DBLK_OST_CBCRDIFF 8'h7e
//
////13:8 dblk thread ID and token
////5:0 dblk prearbitor burst num
//`define HCODEC_DBLK_CTRL1 8'h7f
//
////DBLK last address 12'h97f
//
// Closing file: hcodec_mdec_regs.h
//
//------------------------------------------------------------------------------
// HCODEC VLD module level register offset
//------------------------------------------------------------------------------
//
// Reading file: hcodec_vld_regs.h
//
//========================================================================
// VLD module level register offset
//========================================================================
// -----------------------------------------------
// CBUS_BASE: DOS_HCODEC_VLD_CBUS_BASE = 0x0c
// -----------------------------------------------
//
//`define HCODEC_VLD_STATUS_CTRL 8'h00
////
//// bit 10 -- use_old_shift_en
//// bit 9 -- output_mv_not_pmv
//// bit 8:5 -- force_zigzag
//// bit 4 -- force_zigzag_en
//// bit 3 -- disable_viff_anempty_int
//// bit 2 -- disable_m2_ac_coeff_one_cycle
//// bit 1 -- forced_reset force reset pmv
//// bit 0 -- mpeg_type 0:mpeg1 1: mpeg2
//`define HCODEC_MPEG1_2_REG 8'h01
//`define HCODEC_F_CODE_REG 8'h02
//`define HCODEC_PIC_HEAD_INFO 8'h03
//`define HCODEC_SLICE_VER_POS_PIC_TYPE 8'h04
//`define HCODEC_QP_VALUE_REG 8'h05
//`define HCODEC_MBA_INC 8'h06
//`define HCODEC_MB_MOTION_MODE 8'h07
////`define HCODEC_PACKET_BYTE_COUNT 8'h08
//// bit 15 -- force_search_startcode_en
//// bit 14 -- int_cpu_when_error (before do anything)
//// bit 13 -- vld_error_reset
//// bit 12 -- return_on_slice_header
//// bit 6 -- jpeg_ff00_en
//// bit 5:0 -- vld_power_ctl
//`define HCODEC_POWER_CTL_VLD 8'h08
//
//`define HCODEC_MB_WIDTH 8'h09
//`define HCODEC_SLICE_QP 8'h0a
//// `define HCODEC_MB_X_MB_Y 8'h0b // current MBX and MBY
//`define HCODEC_PRE_START_CODE 8'h0b // ONLY for $ucode/real/amrisc/rv.s, reg value from apollo
//`define HCODEC_SLICE_START_BYTE_01 8'h0c // ONLY for $ucode/real/amrisc/rv.s, reg value from apollo
//`define HCODEC_SLICE_START_BYTE_23 8'h0d // ONLY for $ucode/real/amrisc/rv.s, reg value from apollo
//`define HCODEC_RESYNC_MARKER_LENGTH 8'h0e // Does this exist in HW ? used in $ucode/mpeg4
//
//// bit[6:5] - frame/field info, 01 - top, 10 - bottom, 11 - frame
//// bit[4:0] - buffer ID
//// L0_BUFF_ID_0, L0_BUFF_ID_1, L1_BUFF_ID_0, L1_BUFF_ID_1
//`define HCODEC_DECODER_BUFFER_INFO 8'h0f // Current Only Used for VC1 Interlace Field
//
//`define HCODEC_FST_FOR_MV_X 8'h10
//`define HCODEC_FST_FOR_MV_Y 8'h11
//`define HCODEC_SCD_FOR_MV_X 8'h12
//`define HCODEC_SCD_FOR_MV_Y 8'h13
//`define HCODEC_FST_BAK_MV_X 8'h14
//`define HCODEC_FST_BAK_MV_Y 8'h15
//`define HCODEC_SCD_BAK_MV_X 8'h16
//`define HCODEC_SCD_BAK_MV_Y 8'h17
//
//// Bit 7:4 -- read_buffer_interlace 0-progressive, 1-interlace, used in VC1
//// bit 3 -- reserved
//// bit 2 -- weighting_prediction
//// bit 1 -- mb_weighting_flag
//// bit 0 -- slice_weighting_flag
//`define HCODEC_VLD_DECODE_CONTROL 8'h18
//`define HCODEC_VLD_REVERVED_19 8'h19
//
//`define HCODEC_VIFF_BIT_CNT 8'h1a
//`define HCODEC_BYTE_ALIGN_PEAK_HI 8'h1b
//`define HCODEC_BYTE_ALIGN_PEAK_LO 8'h1c
//`define HCODEC_NEXT_ALIGN_PEAK 8'h1d // Does this exist in HW ? used in $ucode/mpeg4
//
//// bit 19 : vc1_inv_intra_co_mb_ref_rd
//// bit 18 : vc1_inv_co_mb_ref_rd
//// bit 17 : vc1_inv_intra_co_mb_ref_wr
//// bit 16 : vc1_inv_co_mb_ref_wr
//// bit 15 : reserved
//// bit 14 : avs_drop_enable
//// bit 13:12 : avs_drop_ptr
//// bit 11:8 : avs_demu_ctl_reg
//// bit 7 : avs_enable
//// bit 6 : disable_dblk_hcmd
//// bit 5 : disable_mc_hcmd
//// bit 4 : first_mode3_set enable
//// bit 3 : first_mode3
//// bit 2:1 : vc1_profile 0-SP, 1-MP, 2-reserved, 3-AP
//// bit 0 : vc1_enable
//`define HCODEC_VC1_CONTROL_REG 8'h1e
//
//`define HCODEC_PMV1_X 8'h20
//`define HCODEC_PMV1_Y 8'h21
//`define HCODEC_PMV2_X 8'h22
//`define HCODEC_PMV2_Y 8'h23
//`define HCODEC_PMV3_X 8'h24
//`define HCODEC_PMV3_Y 8'h25
//`define HCODEC_PMV4_X 8'h26
//`define HCODEC_PMV4_Y 8'h27
//// Can't use the same address for different defines
//// Therefore, create a single define HCODEC_that covers both
//// Only appears to be used in micro-code since the VLD hardware is
//// hard coded.
//// `define HCODEC_M4_TABLE_SELECT 8'h28 // Does this exist in HW ? Added from register_mp2.h
//// `define HCODEC_M4_TABLE_OUTPUT 8'h28 // Does this exist in HW ? Added from register_mp2.h
//`define HCODEC_M4_TABLE_SELECT 8'h28
//`define HCODEC_M4_CONTROL_REG 8'h29
//`define HCODEC_BLOCK_NUM 8'h2a // Does this exist in HW ? Added from register_mp2.h
//`define HCODEC_PATTERN_CODE 8'h2b // Does this exist in HW ? Added from register_mp2.h
//`define HCODEC_MB_INFO 8'h2c // Does this exist in HW ? Added from register_mp2.h
//`define HCODEC_VLD_DC_PRED 8'h2d // Does this exist in HW ? Added from register_mp4.h
//`define HCODEC_VLD_ERROR_MASK 8'h2e
//`define HCODEC_VLD_DC_PRED_C 8'h2f // Does this exist in HW ? Added from register_mp4.h
//
//`define HCODEC_LAST_SLICE_MV_ADDR 8'h30
//`define HCODEC_LAST_MVX 8'h31
//`define HCODEC_LAST_MVY 8'h32
//
//`define HCODEC_VLD_C38 8'h38
//`define HCODEC_VLD_C39 8'h39
//
//`define HCODEC_VLD_STATUS 8'h3a // Does this exist in HW ? used in $ucode/real/amrisc/rv.s
//`define HCODEC_VLD_SHIFT_STATUS 8'h3b // Does this exist in HW ? used in $ucode/real/amrisc/rv.s
//// `define HCODEC_VLD_SHIFT_INFO 8'h3b // Does this exist in HW ? used in $ucode/mpeg4
//`define HCODEC_VOFF_STATUS 8'h3c // Does this exist in HW ? used in $ucode/mpeg4
//
//`define HCODEC_VLD_C3D 8'h3d
//
//`define HCODEC_VLD_DBG_INDEX 8'h3e
//
//
//// vld_buff_info -- (index == 0)
//// Bit[7:6] mv_UR_ready_cnt;
//// Bit[5] vld_wr_idx
//// Bit[4] iq_rd_idx
//// Bit[3] vld_vi_block_rdy_1
//// Bit[2] vld_vi_block_rdy_2
//// Bit[1] voff_empty_1
//// Bit[0] voff_empty_2
//
//// cabac_buff_info_0 -- (index == 1)
//// Bit[31] shift_data_ready
//// Bit[30:29] Reserved
//// Bit[28:24] cabac_buffer_ptr
//// Bit[23:0] cabac_buffer
//
//// cabac_buff_info_1 -- (index == 2)
//// Bit[31:29] Reserved
//// Bit[28:20] Drange
//// Bit[19:16] bin_count_4
//// Bit[15:13] Reserved
//// Bit[12:6] context_mem_do
//// Bit[5:3] coeff_state
//// Bit[2:0] mvd_state
//
//// h264_mv_present -- (index == 3)
//// Bit[31:16] mv_present_l0
//// Bit[15:0] mv_present_l1
//
//// h264_mv_cal_info_0 -- (index == 4)
//// [31:28] mv_cal_state
//// [27:24] direct_spatial_cnt
//// Bit[23:21] Reserved
//// Bit[20] mv_UR_ready_for_mv_cal
//// Bit[19] co_mb_mem_ready_for_mv_cal
//// Bit[18] mc_dblk_cmd_if_busy
//// Bit[17] h264_co_mb_wr_busy
//// Bit[16] H264_cbp_blk_ready
//// Bit[15] mc_hcmd_rrdy
//// Bit[14] mc_hcmd_srdy
//// Bit[13] mc_cmd_if_ready
//// Bit[12] mc_hcmd_mv_available
//// Bit[11:8] mc_cmd_if_state
//// Bit[7] dblk_hcmd_rrdy
//// Bit[6] dblk_hcmd_srdy
//// Bit[5] dblk_cmd_if_ready
//// Bit[4] dblk_hcmd_mv_available
//// Bit[3:0] dblk_cmd_if_state
//
//// h264_mv_cal_info_1 -- (index == 5)
//// Bit[31:29] Reserved
//// Bit[28:24] total_mvd_num_l0
//// Bit[23:21] Reserved
//// Bit[20:16] mv_cal_ptr_l0
//// Bit[15:13] Reserved
//// Bit[12:8] mc_hcmd_ptr_l0
//// Bit[7:5] Reserved
//// Bit[4:0] dblk_hcmd_ptr_l0
//
//// h264_mv_cal_info_2 -- (index == 6)
//// Bit[31:29] Reserved
//// Bit[28:24] total_mvd_num_l1
//// Bit[23:21] Reserved
//// Bit[20:16] mv_cal_ptr_l1
//// Bit[15:13] Reserved
//// Bit[12:8] mc_hcmd_ptr_l1
//// Bit[7:5] Reserved
//// Bit[4:0] dblk_hcmd_ptr_l1
//
//// h264_co_mb_info -- (index == 7)
//// Bit[31:26] Reserved
//// Bit[25] mv_scale_cal_busy
//// Bit[24:20] co_mv_count
//// Bit[19:16] co_mv_process_state
//// Bit[15] h264_co_mb_rd_busy
//// Bit[15] h264_co_mb_rd_ready
//// Bit[13:12] co_mv_transfer_block_cnt
//// Bit[11:8] co_mv_transfer_ptr
//// Bit[7] co_mv_POC_l1_busy
//// Bit[6] h264_weight_scale_cal_en
//// Bit[5] weight_cal_busy
//// Bit[4] weight_cal_not_finished
//// Bit[3:0] weight_process_state
//
//`define HCODEC_VLD_DBG_DATA 8'h3f
//// --------------------------------------------
//// VIFIFO DDR Interface
//// --------------------------------------------
//// The VIFIFO start pointer into DDR memory is a 32-bit number
//// The Start pointer will automatically be truncated to land on
//// an 8-byte boundary. That is, bits [2:0] = 0;
//`define HCODEC_VLD_MEM_VIFIFO_START_PTR 8'h40
//// The current pointer points so some location between the START and END
//// pointers. The current pointer is a BYTE pointer. That is, you can
//// point to any BYTE address within the START/END range
//`define HCODEC_VLD_MEM_VIFIFO_CURR_PTR 8'h41
//`define HCODEC_VLD_MEM_VIFIFO_END_PTR 8'h42
//`define HCODEC_VLD_MEM_VIFIFO_BYTES_AVAIL 8'h43
//// VIFIFO FIFO Control
//// bit [31:24] viff_empty_int_enable_cpu[7:0]
//// bit [23:16] viff_empty_int_enable_amrisc[7:0]
//// -bit 23 Video BUFFER < 0x400 Bytes
//// -bit 22 Video BUFFER < 0x200 Bytes
//// -bit 21 Video BUFFER < 0x100 Bytes
//// -bit 20 Video BUFFER < 0x80 Bytes
//// -bit 19 Video BUFFER < 0x40 Bytes
//// -bit 18 Video BUFFER < 0x20 Bytes
//// -bit 17 vififo < 16 double words
//// -bit 16 vififo < 8 double words
//// bit [15:13] unused
//// bit [12] A_urgent
//// bit [11] transfer_length 0 - 32x64 Bits per request, 1 - 16x64 Bits per request
//// bit [10] use_level Set this bit to 1 to enable filling of the FIFO controlled by the buffer
//// level control. If this bit is 0, then use bit[1] to control the enabling of filling
//// bit [9] Data Ready. This bit is set when data can be popped
//// bit [8] fill busy This bit will be high when we're fetching data from the DDR memory
//// To reset this module, set cntl_enable = 0, and then wait for busy = 0.
//// After that you can pulse cntl_init to start over
//// bit [7] init_with_cntl_init
//// bit [6] reserved
//// bits [5:3] endian: see $lib/rtl/ddr_endian.v
//// bit [2] cntl_empty_en Set to 1 to enable reading the DDR memory FIFO
//// Set cntl_empty_en = cntl_fill_en = 0 when pulsing cntl_init
//// bit [1] cntl_fill_en Set to 1 to enable reading data from DDR memory
//// bit [0] cntl_init: After setting the read pointers, sizes, channel masks
//// and read masks, set this bit to 1 and then to 0
//// NOTE: You don't need to pulse cntl_init if only the start address is
//// being changed
//`define HCODEC_VLD_MEM_VIFIFO_CONTROL 8'h44
//// --------------------------------------------
//// VIFIFO Buffer Level Manager
//// --------------------------------------------
//`define HCODEC_VLD_MEM_VIFIFO_WP 8'h45 // Manual or Parser write pointer
//`define HCODEC_VLD_MEM_VIFIFO_RP 8'h46
//`define HCODEC_VLD_MEM_VIFIFO_LEVEL 8'h47 // must be low first to shadow low/high 16-bit words
////
//// bit [8] use_parser_video2_wp
//// bit [7] vbuf2_out_manual
//// bit [6] vbuf_out_manual
//// bit [5] empty (ReadOnly)
//// bit [4] full (ReadOnly)
//// bit [3:2] reserved
//// bit [1] manual mode Set to 1 for manual write pointer mode
//// bit [0] Init Set high then low after everything has been initialized
//`define HCODEC_VLD_MEM_VIFIFO_BUF_CNTL 8'h48
//
//// bit 31:16 -- drop_bytes
//// bit 15:14 -- drop_status (Read-Only)
//// bit 13:12 -- sync_match_position (Read-Only)
//// bit 11:6 -- reserved
//// bit 5:4 -- TIME_STAMP_NUMBER, 0-32bits, 1-64bits, 2-96bits, 3-128bits
//// bit 3 -- stamp_soft_reset
//// bit 2 -- TIME_STAMP_length_enable
//// bit 1 -- TIME_STAMP_sync64_enable
//// bit 0 -- TIME_STAMP_enable
//`define HCODEC_VLD_TIME_STAMP_CNTL 8'h49
//// bit 31:0 -- TIME_STAMP_SYNC_CODE_0
//`define HCODEC_VLD_TIME_STAMP_SYNC_0 8'h4a
//// bit 31:0 -- TIME_STAMP_SYNC_CODE_1
//`define HCODEC_VLD_TIME_STAMP_SYNC_1 8'h4b
//// bit 31:0 TIME_STAMP_0
//`define HCODEC_VLD_TIME_STAMP_0 8'h4c
//// bit 31:0 TIME_STAMP_1
//`define HCODEC_VLD_TIME_STAMP_1 8'h4d
//// bit 31:0 TIME_STAMP_2
//`define HCODEC_VLD_TIME_STAMP_2 8'h4e
//// bit 31:0 TIME_STAMP_3
//`define HCODEC_VLD_TIME_STAMP_3 8'h4f
//// bit 31:0 TIME_STAMP_LENGTH
//`define HCODEC_VLD_TIME_STAMP_LENGTH 8'h50
//
//// bit 15:0 vififo_rd_count
//`define HCODEC_VLD_MEM_VIFIFO_WRAP_COUNT 8'h51
//
//// bit 29:24 A_brst_num
//// bit 21:16 A_id
//// bit 15:0 level_hold
//`define HCODEC_VLD_MEM_VIFIFO_MEM_CTL 8'h52
//
//`define HCODEC_VLD_MEM_VBUF_RD_PTR 8'h53 // manual read address for VBUF1
//`define HCODEC_VLD_MEM_VBUF2_RD_PTR 8'h54 // manual read address for VBUF2
//
//`define HCODEC_VLD_MEM_SWAP_ADDR 8'h55
//// bit[23:16] - swap_d_count (Read Only)
//// bit[15:8] - swap_a_count (Read Only)
//// bit [7] - swap busy (Read Only)
//// bit [6:2] - reserved
//// bit [1] - 1 - STORE to Memory, 0 - LOAD from Memory
//// bit [0] - swap active
//`define HCODEC_VLD_MEM_SWAP_CTL 8'h56
//
// Closing file: hcodec_vld_regs.h
//
//------------------------------------------------------------------------------
// HCODEC IQIDCT module level register offset
//------------------------------------------------------------------------------
//
// Reading file: hcodec_iqidct_regs.h
//
//========================================================================
// IQ/IDCT module level register offset
//========================================================================
// -----------------------------------------------
// CBUS_BASE: DOS_HCODEC_IQIDCT_CBUS_BASE = 0x0e
// -----------------------------------------------
//
//`define HCODEC_VCOP_CTRL_REG 8'h00
//`define HCODEC_QP_CTRL_REG 8'h01
//`define HCODEC_INTRA_QUANT_MATRIX 8'h02
//`define HCODEC_NON_I_QUANT_MATRIX 8'h03
//`define HCODEC_DC_SCALER 8'h04
//`define HCODEC_DC_AC_CTRL 8'h05
//// `define HCODEC_RV_AI_CTRL 8'h05 // ONLY for $ucode/real/amrisc/rv.s reg value from apollo
//`define HCODEC_DC_AC_SCALE_MUL 8'h06
//`define HCODEC_DC_AC_SCALE_DIV 8'h07
//// `define HCODEC_DC_AC_SCALE_RESULT 8'h06
//// `define HCODEC_RESERVED_E07 8'h07
//`define HCODEC_POWER_CTL_IQIDCT 8'h08
//`define HCODEC_RV_AI_Y_X 8'h09
//`define HCODEC_RV_AI_U_X 8'h0a
//`define HCODEC_RV_AI_V_X 8'h0b
//// bit 15:0 will count up when rv_ai_mb finished when non zero
//// and rv_ai_mb_finished_int will be generate when this is not zero
//`define HCODEC_RV_AI_MB_COUNT 8'h0c
//// For H264 I in PB picture Use -- dma type : h264_next_intra_dma
//`define HCODEC_NEXT_INTRA_DMA_ADDRESS 8'h0d
//// Bit 0 -- constrained_intra_pred_flag for H264
//`define HCODEC_IQIDCT_CONTROL 8'h0e
//
//
//// Bit[31:19] Reserved
//// Bit[18] iq_waiting
//// Bit[17] iq_om_wr_idx
//// Bit[16] iq_om_rd_idx
//// Bit[15] iq_om_busy
//// Bit[14] iq_om_2_busy
//// Bit[13] idx_fifo_0
//// Bit[12] idx_fifo_1
//// Bit[11] idx_fifo_2
//// Bit[10] idx_fifo_3
//// Bit[9] idx_fifo_4
//// Bit[8] idx_fifo_5
//// Bit[7] idx_fifo_6
//// Bit[6] idx_fifo_7
//// Bit[5:3] idx_fifo_wp
//// Bit[2:0] idx_fifo_rp
//
//`define HCODEC_IQIDCT_DEBUG_INFO_0 8'h0f
//
//// For RTL Simulation Only
//`define HCODEC_DEBLK_CMD 8'h10
//
//// Bit[15+16] ds_mc_valid_2
//// Bit[14+16] new_idct1_rd_idx_2
//// Bit[13+16] new_idct1_wr_idx_2
//// Bit[12+16] idct1_buff0_busy_2
//// Bit[11+16] idct1_buff1_busy_2
//// Bit[10+16] new_idct1_busy_2
//// Bit[9+16] iq_om_8val_2
//// Bit[8+16] idct1_pipe_busy_2
//
//// Bit[7+16] wait_mb_left_finish_hold_2
//// Bit[6+16] new_idct2_rd_idx_2
//// Bit[5+16] new_idct2_wr_idx_2
//// Bit[4+16] idct2_buff0_busy_2
//// Bit[3+16] idct2_buff1_busy_2
//// Bit[2+16] idct2_en_2
//// Bit[1+16] new_idct2_busy_2
//// Bit[0+16] new_idct1_ready_2
//
//// Bit[15] ds_mc_valid_1
//// Bit[14] new_idct1_rd_idx_1
//// Bit[13] new_idct1_wr_idx_1
//// Bit[12] idct1_buff0_busy_1
//// Bit[11] idct1_buff1_busy_1
//// Bit[10] new_idct1_busy_1
//// Bit[9] iq_om_8val_1
//// Bit[8] idct1_pipe_busy_1
//
//// Bit[7] wait_mb_left_finish_hold_1
//// Bit[6] new_idct2_rd_idx_1
//// Bit[5] new_idct2_wr_idx_1
//// Bit[4] idct2_buff0_busy_1
//// Bit[3] idct2_buff1_busy_1
//// Bit[2] idct2_en_1
//// Bit[1] new_idct2_busy_1
//// Bit[0] new_idct1_ready_1
//
//`define HCODEC_IQIDCT_DEBUG_IDCT 8'h11
//
//
//
//// bit 31 -- convas_enable
//// bit 30:24 -- convas_x_count ( 8 pixels / 64 bits )
//// bit 23:16 -- convas_y_count
//// bit 15 -- dcac_dma_busy
//// bit 14 -- dcac_dma_urgent
//// bit 13:8 -- dcac_dma_count
//// bit 7 -- dcac_dma_rw
//// bit 6 -- dcac_skip_read_mode
//// bit 5:0 -- dcac_dma_offset
//`define HCODEC_DCAC_DMA_CTRL 8'h12
//// when (convas_enable == 0 )
//// bit 31:0 dcac_dma_addr
//// when (convas_enable == 1 )
//// bit 31:25 canvas_addr (7 bits)
//// bit 24:12 convas_y_start ( 13 btis )
//// bit 11:0 convas_x_start ( 12 btis )
//`define HCODEC_DCAC_DMA_ADDRESS 8'h13
//// bit 7:0 -- dcac_cpu_addr
//`define HCODEC_DCAC_CPU_ADDRESS 8'h14
//// bit 31:0 -- dcac_cpu_data
//`define HCODEC_DCAC_CPU_DATA 8'h15
//
//// bit 31:19 -- reserved
//// bit 18:16 -- block_num_reg -- Read-Only
//// bit 15:0 -- dcac_mb_count
//`define HCODEC_DCAC_MB_COUNT 8'h16
//
//// bit 31:18 -- reserved
//// For H264 :
//// bit 17:2 -- h264_quant
//// bit 11:6 -- h264_quant_c
//// bit 5:0 -- h264_quant_c
//// For VC1 :
//// bit 17 -- qindex_GT_8
//// bit 16 -- HalfQPStep
//// bit 15:12 -- eQuantMode
//// bit 11:6 -- AltPQuant
//// bit 5:0 -- PQuant
////
//`define HCODEC_IQ_QUANT 8'h17
//
//// bit 31:24 -- bitplane_width
//// bit 23:16 -- bitplane_height
//// bit 15:14 -- bitplane_start_x
//// bit 13:12 -- bitplane_start_y
//// bit 11:4 -- reserved
//// bit 3:1 -- bitplane_type
//// bit 0 -- bitplane_busy
//`define HCODEC_VC1_BITPLANE_CTL 8'h18
//
//
//
// `define HCODEC_RAM_TEST_CMD 12'h002
// `define HCODEC_RAM_TEST_ADDR 12'h003
// `define HCODEC_RAM_TEST_DATAH 12'h004
// `define HCODEC_RAM_TEST_DATAL 12'h005
//
// `define HCODEC_RAM_TEST_RD_CMD 16'h0000
// `define HCODEC_RAM_TEST_WR_CMD 16'h8000
// `define HCODEC_IDCT_TM2_PT0 16'h0001
// `define HCODEC_IDCT_TM2_PT1 16'h0002
// `define HCODEC_IDCT_TM1_PT0 16'h0004
// `define HCODEC_IDCT_TM1_PT1 16'h0008
// `define HCODEC_IQ_OMEM_PT0 16'h0010
// `define HCODEC_IQ_OMEM_PT1 16'h0020
// `define HCODEC_MC_IMEM_PT0 16'h0040
// `define HCODEC_ALL_RAM_PTS 16'h007f
//
////======================================
//// VCOP Control Register Bits
////
////======================================
// //`define HCODEC_IQIDCT_RESET 16'h0001 // Bit 0
// `define HCODEC_QM_WEN 16'h0002 // Bit 1
// `define HCODEC_IQIDCT_ENABLE 16'h0004 // Bit 2
// `define HCODEC_INTRA_QM 16'h0008 // Bit 3 0 = Use default; 1 = use loaded
// `define HCODEC_NINTRA_QM 16'h0010 // Bit 4 0 = Use default; 1 = use loaded
//
////======================================
//// QP Control Register Bits
////
////======================================
// `define HCODEC_INTRA_MODE 16'h0080 // Bit 7
//// Duplicate Address: When actually used
//// please move to a different address
//// `define HCODEC_FLD_DCT_TYPE 16'h0100 // Bit 8 0 = Frame DCT; 1 = field DCT
//
//
// Closing file: hcodec_iqidct_regs.h
//
//------------------------------------------------------------------------------
// HCODEC IQIDCT module level register offset
//------------------------------------------------------------------------------
//
// Reading file: hcodec_vcpu_regs.h
//
//========================================================================
// VCPU module level register offset
//========================================================================
// -----------------------------------------------
// CBUS_BASE: DOS_HCODEC_VCPU_CBUS_BASE = 0x03
// -----------------------------------------------
//`define HCODEC_MSP 8'h00
//`define HCODEC_MPSR 8'h01
//`define HCODEC_MINT_VEC_BASE 8'h02
//`define HCODEC_MCPU_INTR_GRP 8'h03
//`define HCODEC_MCPU_INTR_MSK 8'h04
//`define HCODEC_MCPU_INTR_REQ 8'h05
//`define HCODEC_MPC_P 8'h06
//`define HCODEC_MPC_D 8'h07
//`define HCODEC_MPC_E 8'h08
//`define HCODEC_MPC_W 8'h09
//`define HCODEC_MINDEX0_REG 8'h0a
//`define HCODEC_MINDEX1_REG 8'h0b
//`define HCODEC_MINDEX2_REG 8'h0c
//`define HCODEC_MINDEX3_REG 8'h0d
//`define HCODEC_MINDEX4_REG 8'h0e
//`define HCODEC_MINDEX5_REG 8'h0f
//`define HCODEC_MINDEX6_REG 8'h10
//`define HCODEC_MINDEX7_REG 8'h11
//`define HCODEC_MMIN_REG 8'h12
//`define HCODEC_MMAX_REG 8'h13
//`define HCODEC_MBREAK0_REG 8'h14
//`define HCODEC_MBREAK1_REG 8'h15
//`define HCODEC_MBREAK2_REG 8'h16
//`define HCODEC_MBREAK3_REG 8'h17
//`define HCODEC_MBREAK_TYPE 8'h18
//`define HCODEC_MBREAK_CTRL 8'h19
//`define HCODEC_MBREAK_STAUTS 8'h1a
//`define HCODEC_MDB_ADDR_REG 8'h1b
//`define HCODEC_MDB_DATA_REG 8'h1c
//`define HCODEC_MDB_CTRL 8'h1d
//`define HCODEC_MSFTINT0 8'h1e
//`define HCODEC_MSFTINT1 8'h1f
//
//`define HCODEC_CSP 8'h20
//`define HCODEC_CPSR 8'h21
//`define HCODEC_CINT_VEC_BASE 8'h22
//`define HCODEC_CCPU_INTR_GRP 8'h23
//`define HCODEC_CCPU_INTR_MSK 8'h24
//`define HCODEC_CCPU_INTR_REQ 8'h25
//`define HCODEC_CPC_P 8'h26
//`define HCODEC_CPC_D 8'h27
//`define HCODEC_CPC_E 8'h28
//`define HCODEC_CPC_W 8'h29
//`define HCODEC_CINDEX0_REG 8'h2a
//`define HCODEC_CINDEX1_REG 8'h2b
//`define HCODEC_CINDEX2_REG 8'h2c
//`define HCODEC_CINDEX3_REG 8'h2d
//`define HCODEC_CINDEX4_REG 8'h2e
//`define HCODEC_CINDEX5_REG 8'h2f
//`define HCODEC_CINDEX6_REG 8'h30
//`define HCODEC_CINDEX7_REG 8'h31
//`define HCODEC_CMIN_REG 8'h32
//`define HCODEC_CMAX_REG 8'h33
//`define HCODEC_CBREAK0_REG 8'h34
//`define HCODEC_CBREAK1_REG 8'h35
//`define HCODEC_CBREAK2_REG 8'h36
//`define HCODEC_CBREAK3_REG 8'h37
//`define HCODEC_CBREAK_TYPE 8'h38
//`define HCODEC_CBREAK_CTRL 8'h39
//`define HCODEC_CBREAK_STAUTS 8'h3a
//`define HCODEC_CDB_ADDR_REG 8'h3b
//`define HCODEC_CDB_DATA_REG 8'h3c
//`define HCODEC_CDB_CTRL 8'h3d
//`define HCODEC_CSFTINT0 8'h3e
//`define HCODEC_CSFTINT1 8'h3f
//
//`define HCODEC_IMEM_DMA_CTRL 8'h40
//`define HCODEC_IMEM_DMA_ADR 8'h41
//`define HCODEC_IMEM_DMA_COUNT 8'h42
//// bit[29:24] A_brst_num_imem
//// bit[21:16] A_id_imem
//// bit[11:0] wrrsp_count_imem (reserved)
//`define HCODEC_WRRSP_IMEM 8'h43
//
//`define HCODEC_LMEM_DMA_CTRL 8'h50
//`define HCODEC_LMEM_DMA_ADR 8'h51
//`define HCODEC_LMEM_DMA_COUNT 8'h52
//// bit[29:24] A_brst_num_lmem
//// bit[21:16] A_id_lmem
//// bit[11:0] wrrsp_count_lmem
//`define HCODEC_WRRSP_LMEM 8'h53
//
//`define HCODEC_MAC_CTRL1 8'h60
//`define HCODEC_ACC0REG1 8'h61
//`define HCODEC_ACC1REG1 8'h62
//
//`define HCODEC_MAC_CTRL2 8'h70
//`define HCODEC_ACC0REG2 8'h71
//`define HCODEC_ACC1REG2 8'h72
//`define HCODEC_CPU_TRACE 8'h80
//
//
// Closing file: hcodec_vcpu_regs.h
//
//------------------------------------------------------------------------------
// HEVC_ASSIST module level register offset
//------------------------------------------------------------------------------
// -----------------------------------------------
// CBUS_BASE: DOS_HEVC_ASSIST_CBUS_BASE = 0x00
// -----------------------------------------------
#define HEVC_ASSIST_AFIFO_CTRL (0x3001)
#define P_HEVC_ASSIST_AFIFO_CTRL (volatile unsigned int *)((0x3001 << 2) + 0xff620000)
#define HEVC_ASSIST_AFIFO_CTRL1 (0x3002)
#define P_HEVC_ASSIST_AFIFO_CTRL1 (volatile unsigned int *)((0x3002 << 2) + 0xff620000)
#define HEVC_ASSIST_GCLK_EN (0x3003)
#define P_HEVC_ASSIST_GCLK_EN (volatile unsigned int *)((0x3003 << 2) + 0xff620000)
#define HEVC_ASSIST_SW_RESET (0x3004)
#define P_HEVC_ASSIST_SW_RESET (volatile unsigned int *)((0x3004 << 2) + 0xff620000)
#define HEVC_ASSIST_AMR1_INT0 (0x3025)
#define P_HEVC_ASSIST_AMR1_INT0 (volatile unsigned int *)((0x3025 << 2) + 0xff620000)
#define HEVC_ASSIST_AMR1_INT1 (0x3026)
#define P_HEVC_ASSIST_AMR1_INT1 (volatile unsigned int *)((0x3026 << 2) + 0xff620000)
#define HEVC_ASSIST_AMR1_INT2 (0x3027)
#define P_HEVC_ASSIST_AMR1_INT2 (volatile unsigned int *)((0x3027 << 2) + 0xff620000)
#define HEVC_ASSIST_AMR1_INT3 (0x3028)
#define P_HEVC_ASSIST_AMR1_INT3 (volatile unsigned int *)((0x3028 << 2) + 0xff620000)
#define HEVC_ASSIST_AMR1_INT4 (0x3029)
#define P_HEVC_ASSIST_AMR1_INT4 (volatile unsigned int *)((0x3029 << 2) + 0xff620000)
#define HEVC_ASSIST_AMR1_INT5 (0x302a)
#define P_HEVC_ASSIST_AMR1_INT5 (volatile unsigned int *)((0x302a << 2) + 0xff620000)
#define HEVC_ASSIST_AMR1_INT6 (0x302b)
#define P_HEVC_ASSIST_AMR1_INT6 (volatile unsigned int *)((0x302b << 2) + 0xff620000)
#define HEVC_ASSIST_AMR1_INT7 (0x302c)
#define P_HEVC_ASSIST_AMR1_INT7 (volatile unsigned int *)((0x302c << 2) + 0xff620000)
#define HEVC_ASSIST_AMR1_INT8 (0x302d)
#define P_HEVC_ASSIST_AMR1_INT8 (volatile unsigned int *)((0x302d << 2) + 0xff620000)
#define HEVC_ASSIST_AMR1_INT9 (0x302e)
#define P_HEVC_ASSIST_AMR1_INT9 (volatile unsigned int *)((0x302e << 2) + 0xff620000)
#define HEVC_ASSIST_AMR1_INTA (0x302f)
#define P_HEVC_ASSIST_AMR1_INTA (volatile unsigned int *)((0x302f << 2) + 0xff620000)
#define HEVC_ASSIST_AMR1_INTB (0x3030)
#define P_HEVC_ASSIST_AMR1_INTB (volatile unsigned int *)((0x3030 << 2) + 0xff620000)
#define HEVC_ASSIST_AMR1_INTC (0x3031)
#define P_HEVC_ASSIST_AMR1_INTC (volatile unsigned int *)((0x3031 << 2) + 0xff620000)
#define HEVC_ASSIST_AMR1_INTD (0x3032)
#define P_HEVC_ASSIST_AMR1_INTD (volatile unsigned int *)((0x3032 << 2) + 0xff620000)
#define HEVC_ASSIST_AMR1_INTE (0x3033)
#define P_HEVC_ASSIST_AMR1_INTE (volatile unsigned int *)((0x3033 << 2) + 0xff620000)
#define HEVC_ASSIST_AMR1_INTF (0x3034)
#define P_HEVC_ASSIST_AMR1_INTF (volatile unsigned int *)((0x3034 << 2) + 0xff620000)
#define HEVC_ASSIST_AMR2_INT0 (0x3035)
#define P_HEVC_ASSIST_AMR2_INT0 (volatile unsigned int *)((0x3035 << 2) + 0xff620000)
#define HEVC_ASSIST_AMR2_INT1 (0x3036)
#define P_HEVC_ASSIST_AMR2_INT1 (volatile unsigned int *)((0x3036 << 2) + 0xff620000)
#define HEVC_ASSIST_AMR2_INT2 (0x3037)
#define P_HEVC_ASSIST_AMR2_INT2 (volatile unsigned int *)((0x3037 << 2) + 0xff620000)
#define HEVC_ASSIST_AMR2_INT3 (0x3038)
#define P_HEVC_ASSIST_AMR2_INT3 (volatile unsigned int *)((0x3038 << 2) + 0xff620000)
#define HEVC_ASSIST_AMR2_INT4 (0x3039)
#define P_HEVC_ASSIST_AMR2_INT4 (volatile unsigned int *)((0x3039 << 2) + 0xff620000)
#define HEVC_ASSIST_AMR2_INT5 (0x303a)
#define P_HEVC_ASSIST_AMR2_INT5 (volatile unsigned int *)((0x303a << 2) + 0xff620000)
#define HEVC_ASSIST_AMR2_INT6 (0x303b)
#define P_HEVC_ASSIST_AMR2_INT6 (volatile unsigned int *)((0x303b << 2) + 0xff620000)
#define HEVC_ASSIST_AMR2_INT7 (0x303c)
#define P_HEVC_ASSIST_AMR2_INT7 (volatile unsigned int *)((0x303c << 2) + 0xff620000)
#define HEVC_ASSIST_AMR2_INT8 (0x303d)
#define P_HEVC_ASSIST_AMR2_INT8 (volatile unsigned int *)((0x303d << 2) + 0xff620000)
#define HEVC_ASSIST_AMR2_INT9 (0x303e)
#define P_HEVC_ASSIST_AMR2_INT9 (volatile unsigned int *)((0x303e << 2) + 0xff620000)
#define HEVC_ASSIST_AMR2_INTA (0x303f)
#define P_HEVC_ASSIST_AMR2_INTA (volatile unsigned int *)((0x303f << 2) + 0xff620000)
#define HEVC_ASSIST_AMR2_INTB (0x3040)
#define P_HEVC_ASSIST_AMR2_INTB (volatile unsigned int *)((0x3040 << 2) + 0xff620000)
#define HEVC_ASSIST_AMR2_INTC (0x3041)
#define P_HEVC_ASSIST_AMR2_INTC (volatile unsigned int *)((0x3041 << 2) + 0xff620000)
#define HEVC_ASSIST_AMR2_INTD (0x3042)
#define P_HEVC_ASSIST_AMR2_INTD (volatile unsigned int *)((0x3042 << 2) + 0xff620000)
#define HEVC_ASSIST_AMR2_INTE (0x3043)
#define P_HEVC_ASSIST_AMR2_INTE (volatile unsigned int *)((0x3043 << 2) + 0xff620000)
#define HEVC_ASSIST_AMR2_INTF (0x3044)
#define P_HEVC_ASSIST_AMR2_INTF (volatile unsigned int *)((0x3044 << 2) + 0xff620000)
#define HEVC_ASSIST_MBX_SSEL (0x3045)
#define P_HEVC_ASSIST_MBX_SSEL (volatile unsigned int *)((0x3045 << 2) + 0xff620000)
#define HEVC_ASSIST_TIMER0_LO (0x3060)
#define P_HEVC_ASSIST_TIMER0_LO (volatile unsigned int *)((0x3060 << 2) + 0xff620000)
#define HEVC_ASSIST_TIMER0_HI (0x3061)
#define P_HEVC_ASSIST_TIMER0_HI (volatile unsigned int *)((0x3061 << 2) + 0xff620000)
#define HEVC_ASSIST_TIMER1_LO (0x3062)
#define P_HEVC_ASSIST_TIMER1_LO (volatile unsigned int *)((0x3062 << 2) + 0xff620000)
#define HEVC_ASSIST_TIMER1_HI (0x3063)
#define P_HEVC_ASSIST_TIMER1_HI (volatile unsigned int *)((0x3063 << 2) + 0xff620000)
#define HEVC_ASSIST_DMA_INT (0x3064)
#define P_HEVC_ASSIST_DMA_INT (volatile unsigned int *)((0x3064 << 2) + 0xff620000)
#define HEVC_ASSIST_DMA_INT_MSK (0x3065)
#define P_HEVC_ASSIST_DMA_INT_MSK (volatile unsigned int *)((0x3065 << 2) + 0xff620000)
#define HEVC_ASSIST_DMA_INT2 (0x3066)
#define P_HEVC_ASSIST_DMA_INT2 (volatile unsigned int *)((0x3066 << 2) + 0xff620000)
#define HEVC_ASSIST_DMA_INT_MSK2 (0x3067)
#define P_HEVC_ASSIST_DMA_INT_MSK2 (volatile unsigned int *)((0x3067 << 2) + 0xff620000)
#define HEVC_ASSIST_MBOX0_IRQ_REG (0x3070)
#define P_HEVC_ASSIST_MBOX0_IRQ_REG (volatile unsigned int *)((0x3070 << 2) + 0xff620000)
#define HEVC_ASSIST_MBOX0_CLR_REG (0x3071)
#define P_HEVC_ASSIST_MBOX0_CLR_REG (volatile unsigned int *)((0x3071 << 2) + 0xff620000)
#define HEVC_ASSIST_MBOX0_MASK (0x3072)
#define P_HEVC_ASSIST_MBOX0_MASK (volatile unsigned int *)((0x3072 << 2) + 0xff620000)
#define HEVC_ASSIST_MBOX0_FIQ_SEL (0x3073)
#define P_HEVC_ASSIST_MBOX0_FIQ_SEL (volatile unsigned int *)((0x3073 << 2) + 0xff620000)
#define HEVC_ASSIST_MBOX1_IRQ_REG (0x3074)
#define P_HEVC_ASSIST_MBOX1_IRQ_REG (volatile unsigned int *)((0x3074 << 2) + 0xff620000)
#define HEVC_ASSIST_MBOX1_CLR_REG (0x3075)
#define P_HEVC_ASSIST_MBOX1_CLR_REG (volatile unsigned int *)((0x3075 << 2) + 0xff620000)
#define HEVC_ASSIST_MBOX1_MASK (0x3076)
#define P_HEVC_ASSIST_MBOX1_MASK (volatile unsigned int *)((0x3076 << 2) + 0xff620000)
#define HEVC_ASSIST_MBOX1_FIQ_SEL (0x3077)
#define P_HEVC_ASSIST_MBOX1_FIQ_SEL (volatile unsigned int *)((0x3077 << 2) + 0xff620000)
#define HEVC_ASSIST_MBOX2_IRQ_REG (0x3078)
#define P_HEVC_ASSIST_MBOX2_IRQ_REG (volatile unsigned int *)((0x3078 << 2) + 0xff620000)
#define HEVC_ASSIST_MBOX2_CLR_REG (0x3079)
#define P_HEVC_ASSIST_MBOX2_CLR_REG (volatile unsigned int *)((0x3079 << 2) + 0xff620000)
#define HEVC_ASSIST_MBOX2_MASK (0x307a)
#define P_HEVC_ASSIST_MBOX2_MASK (volatile unsigned int *)((0x307a << 2) + 0xff620000)
#define HEVC_ASSIST_MBOX2_FIQ_SEL (0x307b)
#define P_HEVC_ASSIST_MBOX2_FIQ_SEL (volatile unsigned int *)((0x307b << 2) + 0xff620000)
// bit[31:24] - read request
// bit[23:16] - write request
// bit[7] - disable_aml_axi_clk_gating
// bit[3:0] - arb_switch_cnt
#define HEVC_ASSIST_AXI_CTRL (0x307c)
#define P_HEVC_ASSIST_AXI_CTRL (volatile unsigned int *)((0x307c << 2) + 0xff620000)
// bit[31:24] - read arb result
// bit[23:16] - write arb result
// bit[15:12] - read_ar_cnt
// bit[11:8] - write_aw_cnt
// bit[7] - arvalid_axi_s0
// bit[6] - arready_axi_s0
// bit[5] - awvalid_axi_s0
// bit[4] - awready_axi_s0
// bit[3:0] - write_fifo_cnt
#define HEVC_ASSIST_AXI_STATUS (0x307d)
#define P_HEVC_ASSIST_AXI_STATUS (volatile unsigned int *)((0x307d << 2) + 0xff620000)
#define HEVC_ASSIST_SCRATCH_0 (0x30c0)
#define P_HEVC_ASSIST_SCRATCH_0 (volatile unsigned int *)((0x30c0 << 2) + 0xff620000)
#define HEVC_ASSIST_SCRATCH_1 (0x30c1)
#define P_HEVC_ASSIST_SCRATCH_1 (volatile unsigned int *)((0x30c1 << 2) + 0xff620000)
#define HEVC_ASSIST_SCRATCH_2 (0x30c2)
#define P_HEVC_ASSIST_SCRATCH_2 (volatile unsigned int *)((0x30c2 << 2) + 0xff620000)
#define HEVC_ASSIST_SCRATCH_3 (0x30c3)
#define P_HEVC_ASSIST_SCRATCH_3 (volatile unsigned int *)((0x30c3 << 2) + 0xff620000)
#define HEVC_ASSIST_SCRATCH_4 (0x30c4)
#define P_HEVC_ASSIST_SCRATCH_4 (volatile unsigned int *)((0x30c4 << 2) + 0xff620000)
#define HEVC_ASSIST_SCRATCH_5 (0x30c5)
#define P_HEVC_ASSIST_SCRATCH_5 (volatile unsigned int *)((0x30c5 << 2) + 0xff620000)
#define HEVC_ASSIST_SCRATCH_6 (0x30c6)
#define P_HEVC_ASSIST_SCRATCH_6 (volatile unsigned int *)((0x30c6 << 2) + 0xff620000)
#define HEVC_ASSIST_SCRATCH_7 (0x30c7)
#define P_HEVC_ASSIST_SCRATCH_7 (volatile unsigned int *)((0x30c7 << 2) + 0xff620000)
#define HEVC_ASSIST_SCRATCH_8 (0x30c8)
#define P_HEVC_ASSIST_SCRATCH_8 (volatile unsigned int *)((0x30c8 << 2) + 0xff620000)
#define HEVC_ASSIST_SCRATCH_9 (0x30c9)
#define P_HEVC_ASSIST_SCRATCH_9 (volatile unsigned int *)((0x30c9 << 2) + 0xff620000)
#define HEVC_ASSIST_SCRATCH_A (0x30ca)
#define P_HEVC_ASSIST_SCRATCH_A (volatile unsigned int *)((0x30ca << 2) + 0xff620000)
#define HEVC_ASSIST_SCRATCH_B (0x30cb)
#define P_HEVC_ASSIST_SCRATCH_B (volatile unsigned int *)((0x30cb << 2) + 0xff620000)
#define HEVC_ASSIST_SCRATCH_C (0x30cc)
#define P_HEVC_ASSIST_SCRATCH_C (volatile unsigned int *)((0x30cc << 2) + 0xff620000)
#define HEVC_ASSIST_SCRATCH_D (0x30cd)
#define P_HEVC_ASSIST_SCRATCH_D (volatile unsigned int *)((0x30cd << 2) + 0xff620000)
#define HEVC_ASSIST_SCRATCH_E (0x30ce)
#define P_HEVC_ASSIST_SCRATCH_E (volatile unsigned int *)((0x30ce << 2) + 0xff620000)
#define HEVC_ASSIST_SCRATCH_F (0x30cf)
#define P_HEVC_ASSIST_SCRATCH_F (volatile unsigned int *)((0x30cf << 2) + 0xff620000)
#define HEVC_ASSIST_SCRATCH_G (0x30d0)
#define P_HEVC_ASSIST_SCRATCH_G (volatile unsigned int *)((0x30d0 << 2) + 0xff620000)
#define HEVC_ASSIST_SCRATCH_H (0x30d1)
#define P_HEVC_ASSIST_SCRATCH_H (volatile unsigned int *)((0x30d1 << 2) + 0xff620000)
#define HEVC_ASSIST_SCRATCH_I (0x30d2)
#define P_HEVC_ASSIST_SCRATCH_I (volatile unsigned int *)((0x30d2 << 2) + 0xff620000)
#define HEVC_ASSIST_SCRATCH_J (0x30d3)
#define P_HEVC_ASSIST_SCRATCH_J (volatile unsigned int *)((0x30d3 << 2) + 0xff620000)
#define HEVC_ASSIST_SCRATCH_K (0x30d4)
#define P_HEVC_ASSIST_SCRATCH_K (volatile unsigned int *)((0x30d4 << 2) + 0xff620000)
#define HEVC_ASSIST_SCRATCH_L (0x30d5)
#define P_HEVC_ASSIST_SCRATCH_L (volatile unsigned int *)((0x30d5 << 2) + 0xff620000)
#define HEVC_ASSIST_SCRATCH_M (0x30d6)
#define P_HEVC_ASSIST_SCRATCH_M (volatile unsigned int *)((0x30d6 << 2) + 0xff620000)
#define HEVC_ASSIST_SCRATCH_N (0x30d7)
#define P_HEVC_ASSIST_SCRATCH_N (volatile unsigned int *)((0x30d7 << 2) + 0xff620000)
//------------------------------------------------------------------------------
// HEVC_ASSIST module level register offset
// Same as VDEC/HCODEC to avoid confusing software guy
//------------------------------------------------------------------------------
// -----------------------------------------------
// CBUS_BASE: DOS_HEVC_VCPU_CBUS_BASE = 0x03
// -----------------------------------------------
//------------------------------------------------------------------------------
// HEVC_PARSER module level register offset
//------------------------------------------------------------------------------
//
// Reading file: hevc_parser_regs.h
//
// -----------------------------------------------
// CBUS_BASE: DOS_HEVC_PARSER_CBUS_BASE = 0x01
// -----------------------------------------------
// [31:0] After reset version, can be used for test scratch register
#define HEVC_PARSER_VERSION (0x3100)
#define P_HEVC_PARSER_VERSION (volatile unsigned int *)((0x3100 << 2) + 0xff620000)
// [31:16] - axi_setting
// [15] - disable_stream_clock_gating
// [14] - wstrb_set
// [13] - stream_read_pause
// [6:4] - stream_fetch_endian
// [3] - use_parser_vbuf_wp
// [2] - use_parser_vbuf2_wp
// [1] - stream_fetch_busy - Read Only
// [0] - stream_fetch_enable
#define HEVC_STREAM_CONTROL (0x3101)
#define P_HEVC_STREAM_CONTROL (volatile unsigned int *)((0x3101 << 2) + 0xff620000)
#define HEVC_STREAM_START_ADDR (0x3102)
#define P_HEVC_STREAM_START_ADDR (volatile unsigned int *)((0x3102 << 2) + 0xff620000)
#define HEVC_STREAM_END_ADDR (0x3103)
#define P_HEVC_STREAM_END_ADDR (volatile unsigned int *)((0x3103 << 2) + 0xff620000)
// SW stream_buffer_wr_ptr
#define HEVC_STREAM_WR_PTR (0x3104)
#define P_HEVC_STREAM_WR_PTR (volatile unsigned int *)((0x3104 << 2) + 0xff620000)
#define HEVC_STREAM_RD_PTR (0x3105)
#define P_HEVC_STREAM_RD_PTR (volatile unsigned int *)((0x3105 << 2) + 0xff620000)
//[31:0] stream_buffer_level - read only
#define HEVC_STREAM_LEVEL (0x3106)
#define P_HEVC_STREAM_LEVEL (volatile unsigned int *)((0x3106 << 2) + 0xff620000)
// [31:29] stream_buffer_hole 256*(4^0) bytes
// [28:23] stream_fifo_hole
// [22:16] stream_fifo_level
// [15] stream_fifo_wr_ptr_update_en
// [14:8] stream_fifo_wr_ptr
// [7] stream_fifo_rd_ptr_update_en
// [6:0] stream_fifo_rd_ptr
#define HEVC_STREAM_FIFO_CTL (0x3107)
#define P_HEVC_STREAM_FIFO_CTL (volatile unsigned int *)((0x3107 << 2) + 0xff620000)
// [31:16] - Reserved
// [15] - disable_shift_clock_gating
// [14] - disable_start_code_protect
// [10] - length_zero_startcode_en
// [9] - length_valid_startcode_en
// [8:6] - sft_valid_wr_position (default : 3 (at least 24 bits available))
// [5:4] - emulate_code_length_sub_1(Default : 2)
// [3] - emulation_auto_on_startcode(Default : 0)
// [2:1] - start_code_length_sub_1(Default : 2)
// [0] - stream_shift_enable(Default : 0)
#define HEVC_SHIFT_CONTROL (0x3108)
#define P_HEVC_SHIFT_CONTROL (volatile unsigned int *)((0x3108 << 2) + 0xff620000)
// [31:0] - max 4-bytes start code (Default : 0x00000100)
#define HEVC_SHIFT_STARTCODE (0x3109)
#define P_HEVC_SHIFT_STARTCODE (volatile unsigned int *)((0x3109 << 2) + 0xff620000)
// [31:0] - max 4-bytes emulate code (Default : 0x00000300)
#define HEVC_SHIFT_EMULATECODE (0x310a)
#define P_HEVC_SHIFT_EMULATECODE (volatile unsigned int *)((0x310a << 2) + 0xff620000)
// [2] - startcode_searching
// [1] - emulation_check_on
// [0] - startcode_check_on
#define HEVC_SHIFT_STATUS (0x310b)
#define P_HEVC_SHIFT_STATUS (volatile unsigned int *)((0x310b << 2) + 0xff620000)
// [31:0] hevc_shifted_data - read only
#define HEVC_SHIFTED_DATA (0x310c)
#define P_HEVC_SHIFTED_DATA (volatile unsigned int *)((0x310c << 2) + 0xff620000)
// [31:0] shift_byte_count[31:0]
#define HEVC_SHIFT_BYTE_COUNT (0x310d)
#define P_HEVC_SHIFT_BYTE_COUNT (volatile unsigned int *)((0x310d << 2) + 0xff620000)
// [31:28] - shift_byte_count[35:32]
// [27:20] - element_read_data[31:24]
// [10] - bytealign
// [9] - signed_element
// [8] - start_element_read
// [7] - shift_busy
// [6:0] - shift_bits
#define HEVC_SHIFT_COMMAND (0x310e)
#define P_HEVC_SHIFT_COMMAND (volatile unsigned int *)((0x310e << 2) + 0xff620000)
// 31:8 - element_read_data[23:0]
// 7:2 - element_read_length
// 1:0 - element_read_state
#define HEVC_ELEMENT_RESULT (0x310f)
#define P_HEVC_ELEMENT_RESULT (volatile unsigned int *)((0x310f << 2) + 0xff620000)
// [31:16] - cabac_buffer
// [15] - cabac_buffer_init
// [14] - cabac_context_init
// [13] - disable_cabac_clock_gating
// [12] - cabac_init_flag
// [11] - Reserved
// [10] - VP9_init_mv
// [9] - VP9_init_ref_mode
// [8] - VP9_init_if_y_mode
// [7] - VP9_init_intra_inter
// [6] - VP9_init_inter_mode
// [5] - VP9_init_coef
// [4] - VP9_init_tx_mode
// [3] - VP9_init_skip
// [2] - VP9_init_partition
// [1] - VP9_key_frame
// [0] - cabac_enable(Default : 0)
#define HEVC_CABAC_CONTROL (0x3110)
#define P_HEVC_CABAC_CONTROL (volatile unsigned int *)((0x3110 << 2) + 0xff620000)
// [31:25] - chromaQPOffset_U
// [24:18] - chromaQPOffset_V
// [17:16] - MaxTrSize 0-4x4, 1-8x8, 2-16x16, 3-32x32
// [15:14] - MinTrSize 0-4x4, 1-8x8, 2-16x16, 3-32x32
// HEVC
// [13:12] - MaxCUSize 0-8x8, 1-16x16, 2-32x32, 3-64x64
// [11:10] - MinCUSize 0-8x8, 1-16x16, 2-32x32, 3-64x64
// [9] - slice_sao_luma_flag
// [8] - slice_sao_chroma_flag
// VP9 -- When vp9_enable
// [13:11] - MaxCUSize 0-8x8, 1-16x16, 2-32x32, 3-64x64, 7-4x4
// [10:8] - MinCUSize 0-8x8, 1-16x16, 2-32x32, 3-64x64, 7-4x4
// [7:2] - slice_quant
// [1:0] - slice_type
// AVS2
// [13:12] - MaxCUSize 0-8x8, 1-16x16, 2-32x32, 3-64x64
// [11:10] - MinCUSize 0-8x8, 1-16x16, 2-32x32, 3-64x64
// [9] - reserved
// [8] - slice_quant[6]
// [7:2] - slice_quant
// [1:0] - slice_type
#define HEVC_PARSER_SLICE_INFO (0x3111)
#define P_HEVC_PARSER_SLICE_INFO (volatile unsigned int *)((0x3111 << 2) + 0xff620000)
// bit[16] - 0:command, 1:address(will auto increase when write command)
// bit[15:0]- command or addr
#define HEVC_PARSER_CMD_WRITE (0x3112)
#define P_HEVC_PARSER_CMD_WRITE (volatile unsigned int *)((0x3112 << 2) + 0xff620000)
// [31:16] - reserved
// [15] - disable_parser_core_clock_gating
// [14:1] - Reserved
// [0] - parser_core_enable(Default : 0)
#define HEVC_PARSER_CORE_CONTROL (0x3113)
#define P_HEVC_PARSER_CORE_CONTROL (volatile unsigned int *)((0x3113 << 2) + 0xff620000)
// [31:16] - pre_parser_cmd
// [15] - start_cmd_fetch/fetch_busy
// [14] - parser_cmd_ready
// [13] - pre_parser_cmd_ready
// [12] - do_not_wait_if_busy
// [11:8] - cmd_fetch_status // Read-only
// [7:0] - cmd_fetch_addr
#define HEVC_PARSER_CMD_FETCH (0x3114)
#define P_HEVC_PARSER_CMD_FETCH (volatile unsigned int *)((0x3114 << 2) + 0xff620000)
// [31:16] - parser_cmd
// [9:5] - parser_function
// [4:0] - cmd_status
#define HEVC_PARSER_CMD_STATUS (0x3115)
#define P_HEVC_PARSER_CMD_STATUS (volatile unsigned int *)((0x3115 << 2) + 0xff620000)
// [31] - end_of_picture
// [30] - uiLeft
// [39] - uiTop
// [28] - uiTopRight
// [27:24] - Reserved
// [23:12] - uiLin
// [11:0] - uiCol
#define HEVC_PARSER_LCU_INFO (0x3116)
#define P_HEVC_PARSER_LCU_INFO (volatile unsigned int *)((0x3116 << 2) + 0xff620000)
// 29:28 - min_cu_size_qp_delta
// 27 - cu_qp_delta_enabled_flag
// 26 - amp_enabled_flag
// 25:23 - max_num_merge_cand
// 22 - mvd_l1_zero_flag
// 21:16 - num_ref_idx_l1_active
// 15:10 - num_ref_idx_l0_active
// 9:7 - max_transform_hierarchy_depth_inter
// 6:4 - max_transform_hierarchy_depth_intra
// 3 - transquant_bypass_enable_flag
// 2 - constrained_intra_pred_flag
// 1 - transform_skip_enabled_flag
// 0 - sign_data_hiding_flag
#define HEVC_PARSER_HEADER_INFO (0x3117)
#define P_HEVC_PARSER_HEADER_INFO (volatile unsigned int *)((0x3117 << 2) + 0xff620000)
#define HEVC_PARSER_RESULT_0 (0x3118)
#define P_HEVC_PARSER_RESULT_0 (volatile unsigned int *)((0x3118 << 2) + 0xff620000)
#define HEVC_PARSER_RESULT_1 (0x3119)
#define P_HEVC_PARSER_RESULT_1 (volatile unsigned int *)((0x3119 << 2) + 0xff620000)
#define HEVC_PARSER_RESULT_2 (0x311a)
#define P_HEVC_PARSER_RESULT_2 (volatile unsigned int *)((0x311a << 2) + 0xff620000)
#define HEVC_PARSER_RESULT_3 (0x311b)
#define P_HEVC_PARSER_RESULT_3 (volatile unsigned int *)((0x311b << 2) + 0xff620000)
// For HEVC
// bit[31:24] - quant[47:40]
// bit[23:16] - quant[39:32]
// For VP9
// bit[31:24] - intra_flag
// bit[23:16] - SplitFlag_4
// bit[15:8] - SkipFlag
// bit[7] - SliceEnd|end_of_picture
// bit[6:3] - SplitFlag_8
// bit[2:1] - SplitFlag_16
// bit[0] - SplitFlag_32
#define HEVC_CABAC_TOP_INFO (0x311c)
#define P_HEVC_CABAC_TOP_INFO (volatile unsigned int *)((0x311c << 2) + 0xff620000)
// For HEVC
// bit[31:0] - quant[31:0]
// For VP9
// bit [31:24] - vp9_top_eob_v
// bit [23:16] - vp9_top_eob_u
// bit [15:0] - vp9_top_eob_y
#define HEVC_CABAC_TOP_INFO_2 (0x311d)
#define P_HEVC_CABAC_TOP_INFO_2 (volatile unsigned int *)((0x311d << 2) + 0xff620000)
// For HEVC
// bit[31:24] - quant[47:40]
// bit[23:16] - quant[39:32]
// For VP9
// bit[31:24] - Reserved
// bit[23:16] - SplitFlag_4
// bit[15:8] - SkipFlag
// bit[7] - Reserved
// bit[6:3] - SplitFlag_8
// bit[2:1] - SplitFlag_16
// bit[0] - SplitFlag_32
#define HEVC_CABAC_LEFT_INFO (0x311e)
#define P_HEVC_CABAC_LEFT_INFO (volatile unsigned int *)((0x311e << 2) + 0xff620000)
// For HEVC
// bit[31:0] - quant[31:0]
// For VP9
// bit [31:24] - vp9_left_eob_v
// bit [23:16] - vp9_left_eob_u
// bit [15:0] - vp9_left_eob_y
#define HEVC_CABAC_LEFT_INFO_2 (0x311f)
#define P_HEVC_CABAC_LEFT_INFO_2 (volatile unsigned int *)((0x311f << 2) + 0xff620000)
// [31:29] - stream_buffer_empty_int_ctl (32bytes - 4k bytes) (default : 4 : 512 bytes interrupt)
// [28:26] - stream_fifo_empty_int_ctl (0 - 128)(default : 0 - 0 byte interrupt)
// [25] - stream_buffer_empty_int_cpu_enable
// [24] - stream_buffer_empty_int_amrisc_enable
// [23] - stream_fifo_empty_int_cpu_enable
// [22] - stream_fifo_empty_int_amrisc_enable
// [15] - disable_parser_clock_gating
// [8] - dec_done_int_cpu_enable
// [7] - dec_done_int_amrisc_enable
// [6] - cmd_done_int_cpu_enable
// [5] - cmd_done_int_amrisc_enable
// [4] - startcode_found_int_cpu_enable
// [3] - startcode_found_int_amrisc_enable
// [2] - parser_int_cpu_level (default : 0(pulse))
// [1] - parser_int_amrisc_level (default : 0(pulse))
// [0] - parser_int_enable(Default : 0)
#define HEVC_PARSER_INT_CONTROL (0x3120)
#define P_HEVC_PARSER_INT_CONTROL (volatile unsigned int *)((0x3120 << 2) + 0xff620000)
// [7] - stream_empty_int_cpu
// [6] - stream_empty_int_amrisc
// [2] - dec_done_int
// [1] - cmd_done_int
// [0] - startcode_found_int
#define HEVC_PARSER_INT_STATUS (0x3121)
#define P_HEVC_PARSER_INT_STATUS (volatile unsigned int *)((0x3121 << 2) + 0xff620000)
// [31] - parser_mpred_if_busy -- Read Only
// [8] - sao_sw_pred_enable
// [7] - sao_top_save_even_no_sao
// [6] - disable_parser_sao_if_clock_gating
// [5] - parser_sao_if_en
// [4] - scaler_if_leave_one_more_space
// [3] - disable_parser_mpred_if_clock_gating
// [2] - parser_mpred_if_en
// [1] - disable_parser_scaler_if_clock_gating
// [0] - parser_scaler_if_en
#define HEVC_PARSER_IF_CONTROL (0x3122)
#define P_HEVC_PARSER_IF_CONTROL (volatile unsigned int *)((0x3122 << 2) + 0xff620000)
// [31:16] PicHeightInLumaSamples
// [15:0] PicWidthInLumaSamples
#define HEVC_PARSER_PICTURE_SIZE (0x3123)
#define P_HEVC_PARSER_PICTURE_SIZE (volatile unsigned int *)((0x3123 << 2) + 0xff620000)
// [31] - start_lcu_mpred_cmd
// [30] - lcu_decoding_start
// [29] - do_not_wait_if_busy
// [23:0] - lcu_idx
#define HEVC_PARSER_LCU_START (0x3124)
#define P_HEVC_PARSER_LCU_START (volatile unsigned int *)((0x3124 << 2) + 0xff620000)
// [31:30] - bit_depth_chroma_minus8
// [29:24] - MAX_QP
// [23:20] - qpBdOffsetC
// [19:16] - qpBdOffsetY
// [15:12] - pcm_sample_bit_depth_chroma
// [11:8] - pcm_sample_bit_depth_luma
// [7:6] - max_pcm_luma_coding_block_size
// [5:4] - min_pcm_luma_coding_block_size
// [3:2] - bit_depth_luma_minus8
// [1] - enable_negtive_quant
// [0] - pcm_enabled_flag
#define HEVC_PARSER_HEADER_INFO2 (0x3125)
#define P_HEVC_PARSER_HEADER_INFO2 (volatile unsigned int *)((0x3125 << 2) + 0xff620000)
// Read Only
// bit[23] - 1'b1
// bit[22] - Reserved
// bit[21:16] - quant_V
// bit[15] - 1'b1
// bit[14] - Reserved
// bit[13:8] - quant_U
// bit[7] - 1'b1
// bit[6] - Reserved
// bit[5:0] - quant_Y
#define HEVC_PARSER_QUANT_READ (0x3126)
#define P_HEVC_PARSER_QUANT_READ (volatile unsigned int *)((0x3126 << 2) + 0xff620000)
#define HEVC_PARSER_RESERVED_27 (0x3127)
#define P_HEVC_PARSER_RESERVED_27 (volatile unsigned int *)((0x3127 << 2) + 0xff620000)
// bit[15:8] - skip_addr_SaoOffData
// bit[7:0] - skip_addr_SaoMerge
#define HEVC_PARSER_CMD_SKIP_0 (0x3128)
#define P_HEVC_PARSER_CMD_SKIP_0 (volatile unsigned int *)((0x3128 << 2) + 0xff620000)
// bit[31:24] - skip_point_coding_unit_slice_type_RET
// bit[23:16] - skip_point_coding_unit_slice_type_B
// bit[15:8] - skip_point_coding_unit_slice_type_P
// bit[7:0] - skip_point_coding_unit_slice_type_I
#define HEVC_PARSER_CMD_SKIP_1 (0x3129)
#define P_HEVC_PARSER_CMD_SKIP_1 (volatile unsigned int *)((0x3129 << 2) + 0xff620000)
// bit[31:24] - reserved
// bit[23:16] - skip_point_coding_unit_pred_mode_RET
// bit[15:8] - skip_point_coding_unit_pred_mode_INTER
// bit[7:0] - skip_point_coding_unit_pred_mode_INTRA
#define HEVC_PARSER_CMD_SKIP_2 (0x312a)
#define P_HEVC_PARSER_CMD_SKIP_2 (volatile unsigned int *)((0x312a << 2) + 0xff620000)
// Write :
// [24:16] context_addr for dec_Bin
// [15:0] parser_cmd
// Read result:
// cabac_context_decodeBin, // 31
// cabac_context_decodeBinEP, // 30
// cabac_context_decodeBinTrm, // 29
// cabac_context_decodeBinBit, // 28
// parser_command, // 27:22
// cabac_context_ready, // 21
// cmd_status, // 20:16
// cabac_manual_data // 15:0
//
#define HEVC_PARSER_MANUAL_CMD (0x312b)
#define P_HEVC_PARSER_MANUAL_CMD (volatile unsigned int *)((0x312b << 2) + 0xff620000)
// bit [9:0] - Read adress :
// address 0-255 stream_fifo (128x64)
// address 256-319 context_mem (256x7)
// address 320-448 parser_cmd_mem (256x16)
#define HEVC_PARSER_MEM_RD_ADDR (0x312c)
#define P_HEVC_PARSER_MEM_RD_ADDR (volatile unsigned int *)((0x312c << 2) + 0xff620000)
// bit [9:0] - Write adress :
// address 0-255 stream_fifo (128x64)
// address 256-319 context_mem (256x7)
// address 512-640 parser_cmd_mem (256x16)
#define HEVC_PARSER_MEM_WR_ADDR (0x312d)
#define P_HEVC_PARSER_MEM_WR_ADDR (volatile unsigned int *)((0x312d << 2) + 0xff620000)
// bit[31:0] read/write data
#define HEVC_PARSER_MEM_RW_DATA (0x312e)
#define P_HEVC_PARSER_MEM_RW_DATA (volatile unsigned int *)((0x312e << 2) + 0xff620000)
// [31:20] sao_lcu_x
// [19:8] sao_lcu_y
// [7] sao_lcu_xy_update
// [6:2] reserved
// [1] sao_wait_up_read
// [0] sao_wait_write
#define HEVC_SAO_IF_STATUS (0x3130)
#define P_HEVC_SAO_IF_STATUS (volatile unsigned int *)((0x3130 << 2) + 0xff620000)
// Y_offset_3, // 31:26
// Y_offset_2, // 25:20
// Y_offset_1, // 19:14
// Y_offset_0, // 13:8
// Y_typeAuxInfo[3:0], // 7:4
// Y_typeIdc, // 3:1 [0, 1, 2, 3]-EO, [4,5]-BO+Y_typeAuxInfo[4]
// Y_modelIdc // 0
#define HEVC_SAO_IF_DATA_Y (0x3131)
#define P_HEVC_SAO_IF_DATA_Y (volatile unsigned int *)((0x3131 << 2) + 0xff620000)
#define HEVC_SAO_IF_DATA_U (0x3132)
#define P_HEVC_SAO_IF_DATA_U (volatile unsigned int *)((0x3132 << 2) + 0xff620000)
#define HEVC_SAO_IF_DATA_V (0x3133)
#define P_HEVC_SAO_IF_DATA_V (volatile unsigned int *)((0x3133 << 2) + 0xff620000)
#define HEVC_STREAM_SWAP_ADDR (0x3134)
#define P_HEVC_STREAM_SWAP_ADDR (volatile unsigned int *)((0x3134 << 2) + 0xff620000)
// bit[31:24] - swap_wrrsp_count
// bit[23:16] - swap_d_count (Read Only)
// bit[15:8] - swap_a_count (Read Only) (7:0 or 9:2)
// bit [7] - swap busy (Read Only)
// bit [6:4] - swap_d_count[10:8] (Read Only)
// bit [3] - swap_a_count[10] (Read Only)
// bit [2] - swap_wrrsp_count_update
// bit [1] - 1 - STORE to Memory, 0 - LOAD from Memory
// bit [0] - swap active
#define HEVC_STREAM_SWAP_CTRL (0x3135)
#define P_HEVC_STREAM_SWAP_CTRL (volatile unsigned int *)((0x3135 << 2) + 0xff620000)
#define HEVC_IQIT_IF_WAIT_CNT (0x3136)
#define P_HEVC_IQIT_IF_WAIT_CNT (volatile unsigned int *)((0x3136 << 2) + 0xff620000)
#define HEVC_MPRED_IF_WAIT_CNT (0x3137)
#define P_HEVC_MPRED_IF_WAIT_CNT (volatile unsigned int *)((0x3137 << 2) + 0xff620000)
#define HEVC_SAO_IF_WAIT_CNT (0x3138)
#define P_HEVC_SAO_IF_WAIT_CNT (volatile unsigned int *)((0x3138 << 2) + 0xff620000)
// [31:0] packet_length_count
#define HEVC_STREAM_PACKET_LENGTH (0x3139)
#define P_HEVC_STREAM_PACKET_LENGTH (volatile unsigned int *)((0x3139 << 2) + 0xff620000)
// [31] data_length_protect_enable
// [30] data_protect_fill_00_enable
// [29] data_protect_fill_ff_enable
// [28:19] Reserved
// [18:0] data_length_protect_count
#define HEVC_SHIFT_LENGTH_PROTECT (0x313a)
#define P_HEVC_SHIFT_LENGTH_PROTECT (volatile unsigned int *)((0x313a << 2) + 0xff620000)
// bit[3:0] parser_debug_idx
#define HEVC_PARSER_DEBUG_IDX (0x313e)
#define P_HEVC_PARSER_DEBUG_IDX (volatile unsigned int *)((0x313e << 2) + 0xff620000)
// bit[31:0] parser_debug_dat -- read only
#define HEVC_PARSER_DEBUG_DAT (0x313f)
#define P_HEVC_PARSER_DEBUG_DAT (volatile unsigned int *)((0x313f << 2) + 0xff620000)
// bit[22] - vp9_second_pu_use_if_busy_2
// bit[21] - parser_mpred_if_busy_when_pu_mpred_busy
// bit[20:9] - Reserved
// bit[8] - force_skip_1 (SEG_LVL_SKIP)
// bit[7:3] - vp9_status
// bit[2] - change_vp9_status
// bit[1] - vp9_decode_start(W)/vp9_decode_busy
// bit[0] - vp9_enable
#define VP9_CONTROL (0x3140)
#define P_VP9_CONTROL (volatile unsigned int *)((0x3140 << 2) + 0xff620000)
// bit[15:8]- vp9_emd_cmd_parameter
// bit[3] - vp9_emd_cmd_busy
// bit[2:0] - vp9_emd_command (bit[7]-start/busy)
// 0 - vp9_read
// (
// input : bit[15:8] - prob,
// bit[7:4] - vp9_read_literal_bits(1-16 bits)
// output : bit[31:16] - result)
// )
// 1 - vp9_diff_update_prob
// (
// input : bit[7:4] - function:
// `define vp9_read_tx_mode_prob 0
// `define vp9_read_coef_prob 1
// `define vp9_read_skip_prob 2
// `define vp9_read_inter_mode_prob 3
// `define vp9_read_interp_prob 4
// `define vp9_read_intra_inter_prob 5
// `define vp9_read_comp_inter_prob 6
// `define vp9_read_comp_ref_prob 7
// `define vp9_read_single_ref_prob 8
// `define vp9_read_if_y_mode_prob 9
// `define vp9_read_partition_prob 10
// `define vp9_read_mv_prob 11
// bit[29:16] - total loop times
// bit[31:30] - probs_common
// output : bit[15:8] - prob)
// )
#define VP9_EMD_CMD (0x3141)
#define P_VP9_EMD_CMD (volatile unsigned int *)((0x3141 << 2) + 0xff620000)
// vp9_top_y_mode[31:0]
#define VP9_TOP_Y_MODE_0 (0x3142)
#define P_VP9_TOP_Y_MODE_0 (volatile unsigned int *)((0x3142 << 2) + 0xff620000)
// vp9_top_y_mode[63:32]
#define VP9_TOP_Y_MODE_1 (0x3143)
#define P_VP9_TOP_Y_MODE_1 (volatile unsigned int *)((0x3143 << 2) + 0xff620000)
// vp9_left_y_mode[31:0]
#define VP9_LEFT_Y_MODE_0 (0x3144)
#define P_VP9_LEFT_Y_MODE_0 (volatile unsigned int *)((0x3144 << 2) + 0xff620000)
// vp9_left_y_mode[63:32]
#define VP9_LEFT_Y_MODE_1 (0x3145)
#define P_VP9_LEFT_Y_MODE_1 (volatile unsigned int *)((0x3145 << 2) + 0xff620000)
// bit[31] - 0:write_vp9_quant, 1:write_vp9_seg_feature
// For write_vp9_seg_feature:
// bit[24:22] - seg_id
// bit[21] - seg_q_enable
// bit[20] - seg_q_sign
// bit[19:12] - seg_q_abs
// bit[11] - seg_lf_enable
// bit[10] - seg_lf_sign
// bit[9:4] - seg_lf_abs
// bit[3] - seg_ref_enable
// bit[2:1] - seg_ref_abs
// bit[0] - seg_skip_enable
// For write_vp9_quant:
// bit[19:16] - Write index : Seg_0_Y-0, Seg_0_UV-1, ... Seq_7_Y-14, Seq_7_UV-15
// bit[15:8] - AC quant
// bit[7:0] - DC quant
#define VP9_QUANT_WR (0x3146)
#define P_VP9_QUANT_WR (volatile unsigned int *)((0x3146 << 2) + 0xff620000)
// bit [31:16] - vp9_inter_mode_top/{8'h0, vp9_seg_pred_top}
// bit [15:0] - vp9_top_tx_mode (odd/even mi has same tx_mode)
#define HEVC_CABAC_TOP_INFO_3 (0x3147)
#define P_HEVC_CABAC_TOP_INFO_3 (volatile unsigned int *)((0x3147 << 2) + 0xff620000)
// bit [31:16] - vp9_inter_mode_left/{8'h0, vp9_seg_pred_left}
// bit [15:0] - vp9_left_tx_mode (odd/even mi has same tx_mode)
#define HEVC_CABAC_LEFT_INFO_3 (0x3148)
#define P_HEVC_CABAC_LEFT_INFO_3 (volatile unsigned int *)((0x3148 << 2) + 0xff620000)
// bit [31:16] - ref_frame[1]
// bit [15:0] - ref_frame[0]
#define HEVC_CABAC_TOP_INFO_4 (0x3149)
#define P_HEVC_CABAC_TOP_INFO_4 (volatile unsigned int *)((0x3149 << 2) + 0xff620000)
// bit [31:16] - ref_frame[1]
// bit [15:0] - ref_frame[0]
#define HEVC_CABAC_LEFT_INFO_4 (0x314a)
#define P_HEVC_CABAC_LEFT_INFO_4 (volatile unsigned int *)((0x314a << 2) + 0xff620000)
// bit [31:16] - interp_filter
// bit [15:8] - Reserved
// bit [7:0] - vp9_seg_pred_top
#define HEVC_CABAC_TOP_INFO_5 (0x314b)
#define P_HEVC_CABAC_TOP_INFO_5 (volatile unsigned int *)((0x314b << 2) + 0xff620000)
// bit [31:16] - interp_filter
// bit [15:8] - Reserved
// bit [7:0] - vp9_seg_pred_left
#define HEVC_CABAC_LEFT_INFO_5 (0x314c)
#define P_HEVC_CABAC_LEFT_INFO_5 (volatile unsigned int *)((0x314c << 2) + 0xff620000)
// bit[31] - operation start (read : busy)
// bit[30:28] - operation_endian
// bit[27:24] - Reserved
// bit[23:22] - operation_mem 00:prob_mem, 01:count_mem
// bit[21:20] - operation_cmd 0:clear, 1-store, 2-load
// bit[19:10] - operation_end_addr
// bit[9:0] - operation_start_addr
#define VP9_MEM_OPERATION (0x314d)
#define P_VP9_MEM_OPERATION (volatile unsigned int *)((0x314d << 2) + 0xff620000)
// bit[27] - vp9_seg_pred_info_3
// bit[26] - vp9_seg_abs_delta
// bit[25] - vp9_seg_temporal
// bit[24] - vp9_seg_update_map
// bit[23] - vp9_seg_enable
// bit[22] - vp9_lossless_use_set
// bit[21] - vp9_lossless_set_data
// bit[20] - vp9_swap_Y_MODE_with_INFO45
// bit[19] - vp9_allow_hp
// bit[18:16] - vp9_interp_filter
// bit[15] - vp9_intra_frame
// bit[14:12] - vp9_tx_mode
// bit[11:10] - vp9_ref_mode // SINGLE_REFERENCE(0), COMPOUND_REFERENCE(1), REFERENCE_MODE_SELECT(2)
// bit[9] - VPX_BITS_10
// bit[8] - ref_frame_bias[2]
// bit[7] - ref_frame_bias[1]
// bit[6] - ref_frame_bias[0]
// [5:4] - comp_var_ref[1]
// [3:2] - comp_var_ref[0]
// [1:0] - comp_fixed_ref
#define VP9_DECODING_INFO (0x314f)
#define P_VP9_DECODING_INFO (volatile unsigned int *)((0x314f << 2) + 0xff620000)
// [7] -- segment_id_map_from_shadow
// [6] -- segment_id_map_to_shadow
// [5] -- shadow_rw_addr_update
// [4:0] -- shadiw_rw_addr
#define VP9_SHADOW_CTRL (0x3150)
#define P_VP9_SHADOW_CTRL (volatile unsigned int *)((0x3150 << 2) + 0xff620000)
// [31:0] -- shadow_rw_data
#define VP9_SHADOW_DATA (0x3151)
#define P_VP9_SHADOW_DATA (volatile unsigned int *)((0x3151 << 2) + 0xff620000)
// bit[22] - avs2_second_pu_use_if_busy_2
// bit[21] - parser_mpred_if_busy_when_pu_mpred_busy
// bit[20:9] - Reserved
// bit[8] - force_skip_1 (SEG_LVL_SKIP)
// bit[7:3] - avs2_status
// bit[2] - change_avs2_status
// bit[1] - avs2_decode_start(W)/avs2_decode_busy
// bit[0] - avs2_enable
#define AVS2_CONTROL (0x3152)
#define P_AVS2_CONTROL (volatile unsigned int *)((0x3152 << 2) + 0xff620000)
// bit[7] - useNSIP (nonsquare_intra_prediction_enable)
// bit[6] - secT_enabled (secondary_transform_enable_flag)
// bit[5] - slice_alf_enable_Y
// bit[4] - slice_alf_enable_U
// bit[3] - slice_alf_enable_V
// bit[2] - slice_sao_enable_Y
// bit[1] - slice_sao_enable_U
// bit[0] - slice_sao_enable_V
#define AVS2_DEC_INFO (0x3153)
#define P_AVS2_DEC_INFO (volatile unsigned int *)((0x3153 << 2) + 0xff620000)
//
// Closing file: hevc_parser_regs.h
//
//------------------------------------------------------------------------------
// HEVC_MPRED module level register offset
//------------------------------------------------------------------------------
//
// Reading file: hevc_mpred_regs.h
//
// -----------------------------------------------
// CBUS_BASE: DOS_HEVC_MPRED_CBUS_BASE = 0x02
// -----------------------------------------------
#define HEVC_MPRED_VERSION (0x3200)
#define P_HEVC_MPRED_VERSION (volatile unsigned int *)((0x3200 << 2) + 0xff620000)
// [31:0] reversion default:32'h00010001
#define HEVC_MPRED_CTRL0 (0x3201)
#define P_HEVC_MPRED_CTRL0 (volatile unsigned int *)((0x3201 << 2) + 0xff620000)
// [1:0] slice_type[1:0]
// [2] new_pic
// [3] new_tile
// [4] SliceSegment
// [5] TMVPFlag_en
// [6] LDCFlag
// [7] ColFromL0Flag
// [8] reserved
// [9] above_en
// [10] mv_wr_en :collocated MV write enable: 0=no-write,1=write;default:1'b1
// [11] mv_rd_en
// [12] col_isIntra
// [13] reserved
// [14] LongTerm_Curr
// [15] LongTerm_Col
// [19:16] lcu_size_log2[3:0]
// [23:20] cu_size_log2[3:0]
// [26:24] plevel[2:0]
// [31:27] reserved
#define HEVC_MPRED_CTRL1 (0x3202)
#define P_HEVC_MPRED_CTRL1 (volatile unsigned int *)((0x3202 << 2) + 0xff620000)
// [3:0] MERGE_MAX_NUM_CANDS[3:0]
// [7:4] AMVP_MAX_NUM_CANDS[3:0]
// [23:8] reserved
// [24] clk_forceon
// [31:25] reserved
#define HEVC_MPRED_INT_EN (0x3203)
#define P_HEVC_MPRED_INT_EN (volatile unsigned int *)((0x3203 << 2) + 0xff620000)
// [0] mpred_int_enable
// [1] mpred_int_amrisc_level
// [2] mpred_int_cpu_level
// [3] slice_done_int_amrisc_enable
// [4] slice_done_int_cpu_enable
// [15] disable_mpred_int_clock_gating
#define HEVC_MPRED_INT_STATUS (0x3204)
#define P_HEVC_MPRED_INT_STATUS (volatile unsigned int *)((0x3204 << 2) + 0xff620000)
// [0] slice_done IRQ
// [31] write "1"=slice start(self clear,read always return "0")
#define HEVC_MPRED_PIC_SIZE (0x3205)
#define P_HEVC_MPRED_PIC_SIZE (volatile unsigned int *)((0x3205 << 2) + 0xff620000)
// [15:0] pic_width[15:0]
// [31:16] pic_height[15:0]
#define HEVC_MPRED_PIC_SIZE_LCU (0x3206)
#define P_HEVC_MPRED_PIC_SIZE_LCU (volatile unsigned int *)((0x3206 << 2) + 0xff620000)
// [15:0] lcu_x_num_1[15:0] (=lcu_x_total-1)
// [31:16] lcu_y_num_1[15:0] (=lcu_y_total-1)
#define HEVC_MPRED_TILE_START (0x3207)
#define P_HEVC_MPRED_TILE_START (volatile unsigned int *)((0x3207 << 2) + 0xff620000)
// [15:0] tile_start_lcu_x[15:0]
// [31:16] tile_start_lcu_y[15:0]
#define HEVC_MPRED_TILE_SIZE_LCU (0x3208)
#define P_HEVC_MPRED_TILE_SIZE_LCU (volatile unsigned int *)((0x3208 << 2) + 0xff620000)
// [15:0] tile_width_lcu[15:0]
// [31:16] tile_height_lcu[15:0]
#define HEVC_MPRED_REF_NUM (0x3209)
#define P_HEVC_MPRED_REF_NUM (volatile unsigned int *)((0x3209 << 2) + 0xff620000)
// [3:0] refNum_L0[3:0]
// [11:8] refNum_L1[3:0]
// [19:16] col_refNum_L0[3:0]
// [27:24] col_refNum_L1[3:0]
#define HEVC_MPRED_LT_REF (0x320a)
#define P_HEVC_MPRED_LT_REF (volatile unsigned int *)((0x320a << 2) + 0xff620000)
// [00] LongTerm_L0_Ref00
// [01] LongTerm_L0_Ref01
// ......
// [15] LongTerm_L0_Ref15
// [16] LongTerm_L1_Ref00
// [17] LongTerm_L1_Ref01
// ......
// [31] LongTerm_L1_Ref15
#define HEVC_MPRED_LT_COLREF (0x320b)
#define P_HEVC_MPRED_LT_COLREF (volatile unsigned int *)((0x320b << 2) + 0xff620000)
// [00] LongTerm_Col_L0_Ref00
// [01] LongTerm_Col_L0_Ref01
// ......
// [15] LongTerm_Col_L0_Ref15
// [16] LongTerm_Col_L1_Ref00
// [17] LongTerm_Col_L1_Ref01
// ......
// [31] LongTerm_Col_L1_Ref15
#define HEVC_MPRED_REF_EN_L0 (0x320c)
#define P_HEVC_MPRED_REF_EN_L0 (volatile unsigned int *)((0x320c << 2) + 0xff620000)
// [00] L0_ref00_en
// [01] L0_ref01_en
// ......
// [15] L0_ref15_en
#define HEVC_MPRED_REF_EN_L1 (0x320d)
#define P_HEVC_MPRED_REF_EN_L1 (volatile unsigned int *)((0x320d << 2) + 0xff620000)
// [00] L1_ref00_en
// [01] L1_ref01_en
// ......
// [15] L1_ref15_en
#define HEVC_MPRED_COLREF_EN_L0 (0x320e)
#define P_HEVC_MPRED_COLREF_EN_L0 (volatile unsigned int *)((0x320e << 2) + 0xff620000)
// [00] COL_L0_ref00_en
// [01] COL_L0_ref01_en
// ......
// [15] COL_L0_ref15_en
#define HEVC_MPRED_COLREF_EN_L1 (0x320f)
#define P_HEVC_MPRED_COLREF_EN_L1 (volatile unsigned int *)((0x320f << 2) + 0xff620000)
// [00] COL_L1_ref00_en
// [01] COL_L1_ref01_en
// ......
// [15] COL_L1_ref15_en
#define HEVC_MPRED_AXI_WCTRL (0x3210)
#define P_HEVC_MPRED_AXI_WCTRL (volatile unsigned int *)((0x3210 << 2) + 0xff620000)
// [11:8] aw_id_set[3:0]
#define HEVC_MPRED_AXI_RCTRL (0x3211)
#define P_HEVC_MPRED_AXI_RCTRL (volatile unsigned int *)((0x3211 << 2) + 0xff620000)
// [11:8] ar_id_set[3:0]
#define HEVC_MPRED_ABV_START_ADDR (0x3212)
#define P_HEVC_MPRED_ABV_START_ADDR (volatile unsigned int *)((0x3212 << 2) + 0xff620000)
#define HEVC_MPRED_MV_WR_START_ADDR (0x3213)
#define P_HEVC_MPRED_MV_WR_START_ADDR (volatile unsigned int *)((0x3213 << 2) + 0xff620000)
#define HEVC_MPRED_MV_RD_START_ADDR (0x3214)
#define P_HEVC_MPRED_MV_RD_START_ADDR (volatile unsigned int *)((0x3214 << 2) + 0xff620000)
#define HEVC_MPRED_MV_WPTR (0x3215)
#define P_HEVC_MPRED_MV_WPTR (volatile unsigned int *)((0x3215 << 2) + 0xff620000)
#define HEVC_MPRED_MV_RPTR (0x3216)
#define P_HEVC_MPRED_MV_RPTR (volatile unsigned int *)((0x3216 << 2) + 0xff620000)
#define HEVC_MPRED_MV_WR_ROW_JUMP (0x3217)
#define P_HEVC_MPRED_MV_WR_ROW_JUMP (volatile unsigned int *)((0x3217 << 2) + 0xff620000)
#define HEVC_MPRED_MV_RD_ROW_JUMP (0x3218)
#define P_HEVC_MPRED_MV_RD_ROW_JUMP (volatile unsigned int *)((0x3218 << 2) + 0xff620000)
#define HEVC_MPRED_CURR_LCU (0x3219)
#define P_HEVC_MPRED_CURR_LCU (volatile unsigned int *)((0x3219 << 2) + 0xff620000)
#define HEVC_MPRED_ABV_WPTR (0x321a)
#define P_HEVC_MPRED_ABV_WPTR (volatile unsigned int *)((0x321a << 2) + 0xff620000)
#define HEVC_MPRED_ABV_RPTR (0x321b)
#define P_HEVC_MPRED_ABV_RPTR (volatile unsigned int *)((0x321b << 2) + 0xff620000)
#define HEVC_MPRED_CTRL2 (0x321c)
#define P_HEVC_MPRED_CTRL2 (volatile unsigned int *)((0x321c << 2) + 0xff620000)
#define HEVC_MPRED_CTRL3 (0x321d)
#define P_HEVC_MPRED_CTRL3 (volatile unsigned int *)((0x321d << 2) + 0xff620000)
#define HEVC_MPRED_MV_WLCUY (0x321e)
#define P_HEVC_MPRED_MV_WLCUY (volatile unsigned int *)((0x321e << 2) + 0xff620000)
#define HEVC_MPRED_MV_RLCUY (0x321f)
#define P_HEVC_MPRED_MV_RLCUY (volatile unsigned int *)((0x321f << 2) + 0xff620000)
#define HEVC_MPRED_L0_REF00_POC (0x3220)
#define P_HEVC_MPRED_L0_REF00_POC (volatile unsigned int *)((0x3220 << 2) + 0xff620000)
#define HEVC_MPRED_L0_REF01_POC (0x3221)
#define P_HEVC_MPRED_L0_REF01_POC (volatile unsigned int *)((0x3221 << 2) + 0xff620000)
#define HEVC_MPRED_L0_REF02_POC (0x3222)
#define P_HEVC_MPRED_L0_REF02_POC (volatile unsigned int *)((0x3222 << 2) + 0xff620000)
#define HEVC_MPRED_L0_REF03_POC (0x3223)
#define P_HEVC_MPRED_L0_REF03_POC (volatile unsigned int *)((0x3223 << 2) + 0xff620000)
#define HEVC_MPRED_L0_REF04_POC (0x3224)
#define P_HEVC_MPRED_L0_REF04_POC (volatile unsigned int *)((0x3224 << 2) + 0xff620000)
#define HEVC_MPRED_L0_REF05_POC (0x3225)
#define P_HEVC_MPRED_L0_REF05_POC (volatile unsigned int *)((0x3225 << 2) + 0xff620000)
#define HEVC_MPRED_L0_REF06_POC (0x3226)
#define P_HEVC_MPRED_L0_REF06_POC (volatile unsigned int *)((0x3226 << 2) + 0xff620000)
#define HEVC_MPRED_L0_REF07_POC (0x3227)
#define P_HEVC_MPRED_L0_REF07_POC (volatile unsigned int *)((0x3227 << 2) + 0xff620000)
#define HEVC_MPRED_L0_REF08_POC (0x3228)
#define P_HEVC_MPRED_L0_REF08_POC (volatile unsigned int *)((0x3228 << 2) + 0xff620000)
#define HEVC_MPRED_L0_REF09_POC (0x3229)
#define P_HEVC_MPRED_L0_REF09_POC (volatile unsigned int *)((0x3229 << 2) + 0xff620000)
#define HEVC_MPRED_L0_REF10_POC (0x322a)
#define P_HEVC_MPRED_L0_REF10_POC (volatile unsigned int *)((0x322a << 2) + 0xff620000)
#define HEVC_MPRED_L0_REF11_POC (0x322b)
#define P_HEVC_MPRED_L0_REF11_POC (volatile unsigned int *)((0x322b << 2) + 0xff620000)
#define HEVC_MPRED_L0_REF12_POC (0x322c)
#define P_HEVC_MPRED_L0_REF12_POC (volatile unsigned int *)((0x322c << 2) + 0xff620000)
#define HEVC_MPRED_L0_REF13_POC (0x322d)
#define P_HEVC_MPRED_L0_REF13_POC (volatile unsigned int *)((0x322d << 2) + 0xff620000)
#define HEVC_MPRED_L0_REF14_POC (0x322e)
#define P_HEVC_MPRED_L0_REF14_POC (volatile unsigned int *)((0x322e << 2) + 0xff620000)
#define HEVC_MPRED_L0_REF15_POC (0x322f)
#define P_HEVC_MPRED_L0_REF15_POC (volatile unsigned int *)((0x322f << 2) + 0xff620000)
#define HEVC_MPRED_L1_REF00_POC (0x3230)
#define P_HEVC_MPRED_L1_REF00_POC (volatile unsigned int *)((0x3230 << 2) + 0xff620000)
#define HEVC_MPRED_L1_REF01_POC (0x3231)
#define P_HEVC_MPRED_L1_REF01_POC (volatile unsigned int *)((0x3231 << 2) + 0xff620000)
#define HEVC_MPRED_L1_REF02_POC (0x3232)
#define P_HEVC_MPRED_L1_REF02_POC (volatile unsigned int *)((0x3232 << 2) + 0xff620000)
#define HEVC_MPRED_L1_REF03_POC (0x3233)
#define P_HEVC_MPRED_L1_REF03_POC (volatile unsigned int *)((0x3233 << 2) + 0xff620000)
#define HEVC_MPRED_L1_REF04_POC (0x3234)
#define P_HEVC_MPRED_L1_REF04_POC (volatile unsigned int *)((0x3234 << 2) + 0xff620000)
#define HEVC_MPRED_L1_REF05_POC (0x3235)
#define P_HEVC_MPRED_L1_REF05_POC (volatile unsigned int *)((0x3235 << 2) + 0xff620000)
#define HEVC_MPRED_L1_REF06_POC (0x3236)
#define P_HEVC_MPRED_L1_REF06_POC (volatile unsigned int *)((0x3236 << 2) + 0xff620000)
#define HEVC_MPRED_L1_REF07_POC (0x3237)
#define P_HEVC_MPRED_L1_REF07_POC (volatile unsigned int *)((0x3237 << 2) + 0xff620000)
#define HEVC_MPRED_L1_REF08_POC (0x3238)
#define P_HEVC_MPRED_L1_REF08_POC (volatile unsigned int *)((0x3238 << 2) + 0xff620000)
#define HEVC_MPRED_L1_REF09_POC (0x3239)
#define P_HEVC_MPRED_L1_REF09_POC (volatile unsigned int *)((0x3239 << 2) + 0xff620000)
#define HEVC_MPRED_L1_REF10_POC (0x323a)
#define P_HEVC_MPRED_L1_REF10_POC (volatile unsigned int *)((0x323a << 2) + 0xff620000)
#define HEVC_MPRED_L1_REF11_POC (0x323b)
#define P_HEVC_MPRED_L1_REF11_POC (volatile unsigned int *)((0x323b << 2) + 0xff620000)
#define HEVC_MPRED_L1_REF12_POC (0x323c)
#define P_HEVC_MPRED_L1_REF12_POC (volatile unsigned int *)((0x323c << 2) + 0xff620000)
#define HEVC_MPRED_L1_REF13_POC (0x323d)
#define P_HEVC_MPRED_L1_REF13_POC (volatile unsigned int *)((0x323d << 2) + 0xff620000)
#define HEVC_MPRED_L1_REF14_POC (0x323e)
#define P_HEVC_MPRED_L1_REF14_POC (volatile unsigned int *)((0x323e << 2) + 0xff620000)
#define HEVC_MPRED_L1_REF15_POC (0x323f)
#define P_HEVC_MPRED_L1_REF15_POC (volatile unsigned int *)((0x323f << 2) + 0xff620000)
#define HEVC_MPRED_PIC_SIZE_EXT (0x3240)
#define P_HEVC_MPRED_PIC_SIZE_EXT (volatile unsigned int *)((0x3240 << 2) + 0xff620000)
#define HEVC_MPRED_DBG_MODE0 (0x3241)
#define P_HEVC_MPRED_DBG_MODE0 (volatile unsigned int *)((0x3241 << 2) + 0xff620000)
#define HEVC_MPRED_DBG_MODE1 (0x3242)
#define P_HEVC_MPRED_DBG_MODE1 (volatile unsigned int *)((0x3242 << 2) + 0xff620000)
#define HEVC_MPRED_DBG2_MODE (0x3243)
#define P_HEVC_MPRED_DBG2_MODE (volatile unsigned int *)((0x3243 << 2) + 0xff620000)
#define HEVC_MPRED_IMP_CMD0 (0x3244)
#define P_HEVC_MPRED_IMP_CMD0 (volatile unsigned int *)((0x3244 << 2) + 0xff620000)
#define HEVC_MPRED_IMP_CMD1 (0x3245)
#define P_HEVC_MPRED_IMP_CMD1 (volatile unsigned int *)((0x3245 << 2) + 0xff620000)
#define HEVC_MPRED_IMP_CMD2 (0x3246)
#define P_HEVC_MPRED_IMP_CMD2 (volatile unsigned int *)((0x3246 << 2) + 0xff620000)
#define HEVC_MPRED_IMP_CMD3 (0x3247)
#define P_HEVC_MPRED_IMP_CMD3 (volatile unsigned int *)((0x3247 << 2) + 0xff620000)
#define HEVC_MPRED_DBG2_DATA_0 (0x3248)
#define P_HEVC_MPRED_DBG2_DATA_0 (volatile unsigned int *)((0x3248 << 2) + 0xff620000)
#define HEVC_MPRED_DBG2_DATA_1 (0x3249)
#define P_HEVC_MPRED_DBG2_DATA_1 (volatile unsigned int *)((0x3249 << 2) + 0xff620000)
#define HEVC_MPRED_DBG2_DATA_2 (0x324a)
#define P_HEVC_MPRED_DBG2_DATA_2 (volatile unsigned int *)((0x324a << 2) + 0xff620000)
#define HEVC_MPRED_DBG2_DATA_3 (0x324b)
#define P_HEVC_MPRED_DBG2_DATA_3 (volatile unsigned int *)((0x324b << 2) + 0xff620000)
#define HEVC_MPRED_CTRL4 (0x324c)
#define P_HEVC_MPRED_CTRL4 (volatile unsigned int *)((0x324c << 2) + 0xff620000)
// [0] above intermedia data compress: 0=no-compress,1=compress;default:1'b0
// [1] collocated MV intermedia data compress: 0=no-compress,1=compress;default:1'b0
// [2] vp9_mode,0=hevc_mode,1=vp9_mode,default=0
// [6] vp9_use_prev_frame_mvs 0=not allow vp9_use_prev_frame_mvs,1=allow vp9_use_prev_frame_mvs,default=0
// [8] vp9_not_allow_hp 0=vp9_allow_hp,1=vp9_not_allow_hp,default=0
// [9] vp9_is_compound 0=vp9_is_not_compound,1=vp9_is_compound,default=0
// [12] vp9_ref_sign_bias[1] ref1(last) ref_sign_bias, default=0
// [13] vp9_ref_sign_bias[2] ref2(golden) ref_sign_bias,default=0
// [14] vp9_ref_sign_bias[3] ref3(altref) ref_sign_bias,default=0
#define HEVC_MPRED_CTRL5 (0x324d)
#define P_HEVC_MPRED_CTRL5 (volatile unsigned int *)((0x324d << 2) + 0xff620000)
#define HEVC_MPRED_POC24_CTRL0 (0x324e)
#define P_HEVC_MPRED_POC24_CTRL0 (volatile unsigned int *)((0x324e << 2) + 0xff620000)
#define HEVC_MPRED_POC24_CTRL1 (0x324f)
#define P_HEVC_MPRED_POC24_CTRL1 (volatile unsigned int *)((0x324f << 2) + 0xff620000)
#define HEVC_MPRED_DBG_DATA_0 (0x3250)
#define P_HEVC_MPRED_DBG_DATA_0 (volatile unsigned int *)((0x3250 << 2) + 0xff620000)
#define HEVC_MPRED_DBG_DATA_1 (0x3251)
#define P_HEVC_MPRED_DBG_DATA_1 (volatile unsigned int *)((0x3251 << 2) + 0xff620000)
#define HEVC_MPRED_DBG_DATA_2 (0x3252)
#define P_HEVC_MPRED_DBG_DATA_2 (volatile unsigned int *)((0x3252 << 2) + 0xff620000)
#define HEVC_MPRED_DBG_DATA_3 (0x3253)
#define P_HEVC_MPRED_DBG_DATA_3 (volatile unsigned int *)((0x3253 << 2) + 0xff620000)
#define HEVC_MPRED_DBG_DATA_4 (0x3254)
#define P_HEVC_MPRED_DBG_DATA_4 (volatile unsigned int *)((0x3254 << 2) + 0xff620000)
#define HEVC_MPRED_DBG_DATA_5 (0x3255)
#define P_HEVC_MPRED_DBG_DATA_5 (volatile unsigned int *)((0x3255 << 2) + 0xff620000)
#define HEVC_MPRED_DBG_DATA_6 (0x3256)
#define P_HEVC_MPRED_DBG_DATA_6 (volatile unsigned int *)((0x3256 << 2) + 0xff620000)
#define HEVC_MPRED_DBG_DATA_7 (0x3257)
#define P_HEVC_MPRED_DBG_DATA_7 (volatile unsigned int *)((0x3257 << 2) + 0xff620000)
#define HEVC_MPRED_CTRL6 (0x3258)
#define P_HEVC_MPRED_CTRL6 (volatile unsigned int *)((0x3258 << 2) + 0xff620000)
#define HEVC_MPRED_CTRL7 (0x3259)
#define P_HEVC_MPRED_CTRL7 (volatile unsigned int *)((0x3259 << 2) + 0xff620000)
#define HEVC_MPRED_CTRL8 (0x325a)
#define P_HEVC_MPRED_CTRL8 (volatile unsigned int *)((0x325a << 2) + 0xff620000)
#define HEVC_MPRED_CTRL9 (0x325b)
#define P_HEVC_MPRED_CTRL9 (volatile unsigned int *)((0x325b << 2) + 0xff620000)
#define HEVC_MPRED_CUR_POC (0x3260)
#define P_HEVC_MPRED_CUR_POC (volatile unsigned int *)((0x3260 << 2) + 0xff620000)
#define HEVC_MPRED_COL_POC (0x3261)
#define P_HEVC_MPRED_COL_POC (volatile unsigned int *)((0x3261 << 2) + 0xff620000)
#define HEVC_MPRED_MV_RD_END_ADDR (0x3262)
#define P_HEVC_MPRED_MV_RD_END_ADDR (volatile unsigned int *)((0x3262 << 2) + 0xff620000)
//
// Closing file: hevc_mpred_regs.h
//
//------------------------------------------------------------------------------
// HEVC_IPP module level register offset
//------------------------------------------------------------------------------
//
// Reading file: hevc_ipp_regs.h
//
// John A. Thodiyil
// Register map for intra/inter/pcm pixel-prediction + MCRCC + DECOMP
// August 14th, 2013
// -----------------------------------------------
// CBUS_BASE: DOS_HEVC_IPP_CBUS_BASE = 0x04
// -----------------------------------------------
#define HEVCD_IPP_TOP_CNTL (0x3400)
#define P_HEVCD_IPP_TOP_CNTL (volatile unsigned int *)((0x3400 << 2) + 0xff620000)
// [0] -- software reset ipp and mpp
// [1] -- enable ipp
// [3:2] -- reserved
// [5:4] -- codec[1:0] 00:hevc 01:vp9 10:avs2 11:reserved
// [31:6] -- reserved
#define HEVCD_IPP_TOP_STATUS (0x3401)
#define P_HEVCD_IPP_TOP_STATUS (volatile unsigned int *)((0x3401 << 2) + 0xff620000)
// [0] -- ready for next tile/frame
// [1] -- ready for next ctb
// [2] -- ready for next slice
// [3] -- reserved
// [4] -- ipp_axi_rd_idle
// [5] -- ipp_axi_wr_idle
// [6] -- mpp_axi_rd_idle
// [31:7] -- reserved
#define HEVCD_IPP_TOP_FRMCONFIG (0x3402)
#define P_HEVCD_IPP_TOP_FRMCONFIG (volatile unsigned int *)((0x3402 << 2) + 0xff620000)
// [14:0] -- frame width in luma pixels
// [30:16] -- frame height in luma pixels
#define HEVCD_IPP_TOP_TILECONFIG1 (0x3403)
#define P_HEVCD_IPP_TOP_TILECONFIG1 (volatile unsigned int *)((0x3403 << 2) + 0xff620000)
// [11:0] -- tile_width_in_lcu
// [27:16] -- tile_height_in_lcu
#define HEVCD_IPP_TOP_TILECONFIG2 (0x3404)
#define P_HEVCD_IPP_TOP_TILECONFIG2 (volatile unsigned int *)((0x3404 << 2) + 0xff620000)
// [11:0] -- tile_offset_x_in_lcu
// [27:16] -- tile_offset_y_in_lcu
#define HEVCD_IPP_TOP_TILECONFIG3 (0x3405)
#define P_HEVCD_IPP_TOP_TILECONFIG3 (volatile unsigned int *)((0x3405 << 2) + 0xff620000)
// [0] -- tiles_enabled_flag
// [31:1] -- reserved
#define HEVCD_IPP_TOP_LCUCONFIG (0x3406)
#define P_HEVCD_IPP_TOP_LCUCONFIG (volatile unsigned int *)((0x3406 << 2) + 0xff620000)
// [6:0] -- lcu size in pixels
#define HEVCD_IPP_TOP_FRMCTL (0x3407)
#define P_HEVCD_IPP_TOP_FRMCTL (volatile unsigned int *)((0x3407 << 2) + 0xff620000)
// [x] -- start ipp tile decode
#define HEVCD_IPP_CONFIG (0x3408)
#define P_HEVCD_IPP_CONFIG (volatile unsigned int *)((0x3408 << 2) + 0xff620000)
// [0] -- ipp_strong_intra_smoothing_enable_flag
// [1] -- cfg_ipp_constrained_intra_pred_flag
// [31:2] -- reserved
#define HEVCD_IPP_LINEBUFF_BASE (0x3409)
#define P_HEVCD_IPP_LINEBUFF_BASE (volatile unsigned int *)((0x3409 << 2) + 0xff620000)
// [31:14] -- intra-prediction line-buffer 16KByte axi address
// [13:0] -- reserved
#define HEVCD_IPP_INTR_MASK (0x340a)
#define P_HEVCD_IPP_INTR_MASK (volatile unsigned int *)((0x340a << 2) + 0xff620000)
// [0] -- tile/frame ready
// [1] -- ctb ready
// [2] -- slice ready
// [31:3] -- reserved
#define HEVCD_IPP_AXIIF_CONFIG (0x340b)
#define P_HEVCD_IPP_AXIIF_CONFIG (volatile unsigned int *)((0x340b << 2) + 0xff620000)
// [3:0] -- little_endian
// [5:4] -- address_format 00:linear 01:32x32 10:64x32
// [7:6] -- reserved
// [9:8] -- Linear_LineAlignment 00:16byte 01:32byte 10:64byte
// [11:10] -- reserved
// [12] -- CbCr_byte_swap
// [31:13] -- reserved
#define HEVCD_IPP_BITDEPTH_CONFIG (0x340c)
#define P_HEVCD_IPP_BITDEPTH_CONFIG (volatile unsigned int *)((0x340c << 2) + 0xff620000)
// [1:0] -- bit_depth_luma 00:8 01:9 10:10
// [3:2] -- bit_depth_chroma 00:8 01:9 10:10
// [31:4] -- reserved
#define HEVCD_IPP_SWMPREDIF_CONFIG (0x3410)
#define P_HEVCD_IPP_SWMPREDIF_CONFIG (volatile unsigned int *)((0x3410 << 2) + 0xff620000)
// [0] -- swmpredif_enable
// [31:1] -- reserved
#define HEVCD_IPP_SWMPREDIF_STATUS (0x3411)
#define P_HEVCD_IPP_SWMPREDIF_STATUS (volatile unsigned int *)((0x3411 << 2) + 0xff620000)
// [0] -- swmpredif_rdy
// [7:1] -- reserved
// [14:8] -- swmpredif_fifospace
// [31:15] -- reserved
#define HEVCD_IPP_SWMPREDIF_CTBINFO (0x3412)
#define P_HEVCD_IPP_SWMPREDIF_CTBINFO (volatile unsigned int *)((0x3412 << 2) + 0xff620000)
// [10:0] -- swmpredif_ctb_x
// [15:11] -- reserved
// [26:16] -- swmpredif_ctb_y
// [30:27] -- reserved
// [31] -- swmpredif_newslice
#define HEVCD_IPP_SWMPREDIF_PUINFO0 (0x3413)
#define P_HEVCD_IPP_SWMPREDIF_PUINFO0 (volatile unsigned int *)((0x3413 << 2) + 0xff620000)
// [31:0] -- swmpredif_imp_cmd[31:0]
#define HEVCD_IPP_SWMPREDIF_PUINFO1 (0x3414)
#define P_HEVCD_IPP_SWMPREDIF_PUINFO1 (volatile unsigned int *)((0x3414 << 2) + 0xff620000)
// [31:0] -- swmpredif_imp_cmd[63:32]
#define HEVCD_IPP_SWMPREDIF_PUINFO2 (0x3415)
#define P_HEVCD_IPP_SWMPREDIF_PUINFO2 (volatile unsigned int *)((0x3415 << 2) + 0xff620000)
// [31:0] -- swmpredif_imp_cmd[95:64]
#define HEVCD_IPP_SWMPREDIF_PUINFO3 (0x3416)
#define P_HEVCD_IPP_SWMPREDIF_PUINFO3 (volatile unsigned int *)((0x3416 << 2) + 0xff620000)
// [31:0] -- swmpredif_imp_cmd[127:96]
#define HEVCD_IPP_SWMPREDIF_PUINFO4 (0x3417)
#define P_HEVCD_IPP_SWMPREDIF_PUINFO4 (volatile unsigned int *)((0x3417 << 2) + 0xff620000)
// [31:0] -- swmpredif_imp_cmd[159:128]
#define HEVCD_IPP_SWMPREDIF_PUINFO5 (0x3418)
#define P_HEVCD_IPP_SWMPREDIF_PUINFO5 (volatile unsigned int *)((0x3418 << 2) + 0xff620000)
// [31:0] -- swmpredif_imp_cmd[191:160]
// writing to HEVCD_IPP_SWMPREDIF_PUINFO5
// completes command, should be last to write.
#define HEVCD_IPP_DYNCLKGATE_CONFIG (0x3420)
#define P_HEVCD_IPP_DYNCLKGATE_CONFIG (volatile unsigned int *)((0x3420 << 2) + 0xff620000)
// [0] -- mpp_wpredict_clkgate_disbl
// [1] -- mpp_ref_fetch_clkgate_disbl
// [2] -- mpp_interpol_top_clkgate_disbl
// [3] -- mpp_4x4mcr_clkgate_disbl
// [4] -- mpp_ref_pack_clkgate_disbl
// [5] -- mpp_mdec_if_clkgate_disbl
// [7:6] -- reserved
// [8] -- ipp_res_fetch_clkgate_disbl
// [9] -- ipp_iqitIf_clkgate_disbl
// [10] -- ipp_dblkCmdIf_clkgate_disbl
// [11] -- ipp_dblkIf_clkgate_disbl
// [12] -- ipp_cntl_clkgate_disbl
// [13] -- ipp_nsamples_proc_clkgate_disbl
// [14] -- ipp_refroute_clkgate_disbl
// [15] -- ipp_spred_clkgate_disbl
// [16] -- ipp_reg_clkgate_disbl
// [17] -- ipp_recon_clkgate_disbl
// [19:18] -- reserved
// [20] -- decomp_cntl_clkgate_disbl
// [21] -- decomp_axiIf_clkgate_disbl
// [22] -- decomp_dcache_clkgate_disbl
// [23] -- decomp_hcache_clkgate_disbl
// [24] -- decomp_gearup_clkgate_disbl
// [25] -- decomp_cores_clkgate_disbl
// [26] -- decomp_rdroute_clkgate_disbl
// [27] -- reserved
// [28] -- master_decomp_clkgate_disbl
// [29] -- master_mpp_clkgate_disbl
// [30] -- master_ipp_clkgate_disbl
// [31] -- master_ipp_mpp_decomp_clkgate_disbl
#define HEVCD_IPP_DYNCLKGATE_STATUS (0x3421)
#define P_HEVCD_IPP_DYNCLKGATE_STATUS (volatile unsigned int *)((0x3421 << 2) + 0xff620000)
// [0] -- mpp_wpredict_clkgate
// [1] -- mpp_ref_fetch_clkgate
// [2] -- mpp_interpol_top_clkgate
// [3] -- mpp_4x4mcr_clkgate
// [4] -- mpp_ref_pack_clkgate
// [5] -- mpp_mdec_if_clkgate
// [7:6] -- reserved
// [8] -- ipp_res_fetch_clkgate
// [9] -- ipp_iqitIf_clkgate
// [10] -- ipp_dblkCmdIf_clkgate
// [11] -- ipp_dblkIf_clkgate
// [12] -- ipp_cntl_clkgate
// [13] -- ipp_nsamples_proc_clkgate
// [14] -- ipp_refroute_clkgate
// [15] -- ipp_spred_clkgate
// [16] -- ipp_reg_clkgate
// [17] -- ipp_recon_clkgate
// [19:18] -- reserved
// [20] -- decomp_cntl_clkgate
// [21] -- decomp_axiIf_clkgate
// [22] -- decomp_dcache_clkgate
// [23] -- decomp_hcache_clkgate
// [24] -- decomp_gearup_clkgate
// [25] -- decomp_cores_clkgate
// [26] -- decomp_rdroute_clkgate
// [27] -- reserved
// [30:28] -- reserved
// [31] -- mcrcc_axi_clkgate
#define HEVCD_IPP_DBG_SEL (0x3430)
#define P_HEVCD_IPP_DBG_SEL (volatile unsigned int *)((0x3430 << 2) + 0xff620000)
// [3:0] -- module_level_sel
// [7:4] -- mpp_ipp_top_level
// [8] -- ipp_sel
// [31:9] -- reserved
#define HEVCD_IPP_DBG_DATA (0x3431)
#define P_HEVCD_IPP_DBG_DATA (volatile unsigned int *)((0x3431 << 2) + 0xff620000)
// [31:0] -- Debug information
//////////////////////////////////////////////////////////////////////////////
///// MPP Registers ////////////////////
//////////////////////////////////////////////////////////////////////////////
// Canvas Anchor to Axi-Address translation table
#define HEVCD_MPP_ANC2AXI_TBL_CONF_ADDR (0x3460)
#define P_HEVCD_MPP_ANC2AXI_TBL_CONF_ADDR (volatile unsigned int *)((0x3460 << 2) + 0xff620000)
// [0] -- anc2axi canvas address translation table switch 0:sw 1:hw
// [1] -- access type 1:wr 0:rd
// [2] -- auto index increment
// [7:3] -- reserved
// [15:8] -- start index
// [31:16] -- reserved
//`define HEVCD_MPP_ANC2AXI_TBL_CMD_ADDR 8'h61
// [0] -- anc2axi canvas address translation table access type 1:wr 0:rd
// [15:8] -- anc2axi canvas address translation table access index
// [31:16] -- anc2axi canvas address translation table access write data, 16KByte axi address
// -- obsoleted
//`define HEVCD_MPP_ANC2AXI_TBL_WDATA_ADDR 8'h62 // NU
// [x] -- not used
//`define HEVCD_MPP_ANC2AXI_TBL_RDATA_ADDR 8'h63
// [15:0] -- anc2axi canvas address translation table access read data
// -- obsoleted
#define HEVCD_MPP_ANC2AXI_TBL_DATA (0x3464)
#define P_HEVCD_MPP_ANC2AXI_TBL_DATA (volatile unsigned int *)((0x3464 << 2) + 0xff620000)
// [26:0] -- anc2axi address r/w 32byte aligned
// [31:27] -- reserved
#define HEVCD_MPP_WEIGHTPRED_CNTL_ADDR (0x347b)
#define P_HEVCD_MPP_WEIGHTPRED_CNTL_ADDR (volatile unsigned int *)((0x347b << 2) + 0xff620000)
// [0] -- weighted_pred_flag
#define HEVCD_MPP_L0_WEIGHT_FLAG_ADDR (0x347c)
#define P_HEVCD_MPP_L0_WEIGHT_FLAG_ADDR (volatile unsigned int *)((0x347c << 2) + 0xff620000)
// [15:0] -- luma_weght_flag0[15:0], indexed by refidx0
// [31:16] -- chroma_weght_flag0[15:0], indexed by refidx0
#define HEVCD_MPP_L1_WEIGHT_FLAG_ADDR (0x347d)
#define P_HEVCD_MPP_L1_WEIGHT_FLAG_ADDR (volatile unsigned int *)((0x347d << 2) + 0xff620000)
// [15:0] -- luma_weght_flag1[15:0], indexed by refidx1
// [31:16] -- chroma_weght_flag1[15:0], indexed by refidx1
#define HEVCD_MPP_YLOG2WGHTDENOM_ADDR (0x347e)
#define P_HEVCD_MPP_YLOG2WGHTDENOM_ADDR (volatile unsigned int *)((0x347e << 2) + 0xff620000)
// [3:0] -- luma_log2_weight_denom
#define HEVCD_MPP_DELTACLOG2WGHTDENOM_ADDR (0x347f)
#define P_HEVCD_MPP_DELTACLOG2WGHTDENOM_ADDR (volatile unsigned int *)((0x347f << 2) + 0xff620000)
// [4:0] -- delta_chroma_log2_weight_denom
#define HEVCD_MPP_WEIGHT_ADDR (0x3480)
#define P_HEVCD_MPP_WEIGHT_ADDR (volatile unsigned int *)((0x3480 << 2) + 0xff620000)
// [5:0] -- weight_rw_addr
// [0] -- DELTA_WEIGHT0
// [1] -- OFFSET0
// [2] -- DELTA_WEIGHT1
// [3] -- OFFSET1
// ......
// [62] -- DELTA_WEIGHT31
// [63] -- OFFSET31
#define HEVCD_MPP_WEIGHT_DATA (0x3481)
#define P_HEVCD_MPP_WEIGHT_DATA (volatile unsigned int *)((0x3481 << 2) + 0xff620000)
// For DELTA_WEIGHT :
// [7:0] -- delta_y_weight for refidx0:0
// [15:8] -- delta_cb_weight for refidx0:0
// [23:16] -- delta_cr_weight for refidx0:0
// For OFFSET :
// [7:0] -- luma_offset for refidx0:0
// [17:8] -- delta_cb_offset for refidx0:0
// [27:18] -- delta_cr_offset for refidx0:0
// ID to Anchor-Canvas-Address table
// [31:13] reserved
// [12:8] access_index
// [7:2] reserved
// [1] auto_inc_read
// [0] auto_inc_write
#define HEVCD_MPP_ANC_CANVAS_ACCCONFIG_ADDR (0x34c0)
#define P_HEVCD_MPP_ANC_CANVAS_ACCCONFIG_ADDR (volatile unsigned int *)((0x34c0 << 2) + 0xff620000)
// Id[4:0] --> {AnchorAddrCr[7:0],AnchorAddrCb[7:0],AnchorAddrY[7:0]}
#define HEVCD_MPP_ANC_CANVAS_DATA_ADDR (0x34c1)
#define P_HEVCD_MPP_ANC_CANVAS_DATA_ADDR (volatile unsigned int *)((0x34c1 << 2) + 0xff620000)
// [0] -- decomp_nocompress
// [1] -- decomp_dcache_bypass
// [2] -- reserved
// [3] -- decomp_smem_bdepth888
// [4] -- decomp_paged_mem_mode
// [30:5] -- reserved
// [31] -- decomp_axif_lbmode888
#define HEVCD_MPP_DECOMP_CTL1 (0x34c2)
#define P_HEVCD_MPP_DECOMP_CTL1 (volatile unsigned int *)((0x34c2 << 2) + 0xff620000)
// [23:0] -- header1_offset : 32byte address from canvas base
// [31:24] -- reserved
#define HEVCD_MPP_DECOMP_CTL2 (0x34c3)
#define P_HEVCD_MPP_DECOMP_CTL2 (volatile unsigned int *)((0x34c3 << 2) + 0xff620000)
// [9:0] -- decomp_default_Y
// [19:10] -- decomp_default_Cb
// [29:20] -- decomp_dafault_Cr
// [31:30] -- bitdepth_sel 00:8bit 01:9bit 10:10bit
#define HEVCD_MPP_DECOMP_CTL3 (0x34c4)
#define P_HEVCD_MPP_DECOMP_CTL3 (volatile unsigned int *)((0x34c4 << 2) + 0xff620000)
// HEVCD_MPP_DECOMP_PERFMON_CTL
// [0] percount_reset
// [3:1] perfcount_sel
// [31:4] reserved
// {1'b0,perfcount_sel[1:0]} perfcount
// 0 raw_hcache_cnt
// 1 hit_hcache_cnt
// 2 raw_dcache_cnt
// 3 hit_dcache_cnt
// {1'b1,perfcount_sel[1:0]} perfcount
// 0 fast_num_compburst
// 1 slow_num_compburst
// 2,3 raw_num_ncompburst
#define HEVCD_MPP_DECOMP_PERFMON_CTL (0x34c5)
#define P_HEVCD_MPP_DECOMP_PERFMON_CTL (volatile unsigned int *)((0x34c5 << 2) + 0xff620000)
// HEVCD_MPP_DECOMP_PERFMON_DATA
// [31:0] percount_data
#define HEVCD_MPP_DECOMP_PERFMON_DATA (0x34c6)
#define P_HEVCD_MPP_DECOMP_PERFMON_DATA (volatile unsigned int *)((0x34c6 << 2) + 0xff620000)
// HEVCD_MPP_DECOMP_AXIURG_CTL
// [1:0] -- decomp_hdrurg 00:Normal 01:Urgent 10:SuperUrgent
// [2] -- decomp_fpathurg_en 1->Urgent if below lo_thresh
// [3] -- decomp_spathurg_en 1->Urgent if below lo_thresh
// [10:4] -- decomp_fpathurg_lothresh [32byte steps : max 96]
// [17:11] -- decomp_fpathurg_hithresh [32byte steps : max 96]
// [24:18] -- decomp_spathurg_lothresh [32byte steps : max 64]
// [31:25] -- decomp_spathurg_hithresh [32byte steps : max 64]
#define HEVCD_MPP_DECOMP_AXIURG_CTL (0x34c7)
#define P_HEVCD_MPP_DECOMP_AXIURG_CTL (volatile unsigned int *)((0x34c7 << 2) + 0xff620000)
// HEVCD_MPP_VDEC_MCR_CTL
// [0] -- mcr_mdec_mode : 1:mcr fetch used by vdec:mdec
// [3:1] -- reserved
// [4] -- mcr_mdec_8byte_endianess : 1:big 0:little
// [31:5] -- reserved
#define HEVCD_MPP_VDEC_MCR_CTL (0x34c8)
#define P_HEVCD_MPP_VDEC_MCR_CTL (volatile unsigned int *)((0x34c8 << 2) + 0xff620000)
//////////////////////////////////////////////////////////////////////////////
///// MCRCC_AXI Registers ////////////////////
//////////////////////////////////////////////////////////////////////////////
// HEVCD_MCRCC_CTL1
// 31:12 <reserved[20:0]>
// 11:10 <cfg_anc11_tb> // 01: top 10:bot 11:frame
// 9:8 <cfg_anc10_tb>
// 7:6 <cfg_anc01_tb>
// 5:4 <cfg_anc00_tb>
// 3 <cfg_clkgate_disbl>
// 2 <cfg_field_pic> // not used for hevc
// 1 <sw_rst>
// 0 <bypass_en>
#define HEVCD_MCRCC_CTL1 (0x34f0)
#define P_HEVCD_MCRCC_CTL1 (volatile unsigned int *)((0x34f0 << 2) + 0xff620000)
// HEVCD_MCRCC_CTL2
// 31:24 <cfg_cache_anc01_c[7:0]>
// 23:16 <cfg_cache_anc01_y[7:0]>
// 15:8 <cfg_cache_anc00_c[7:0]>
// 7:0 <cfg_cache_anc00_y[7:0]>
#define HEVCD_MCRCC_CTL2 (0x34f1)
#define P_HEVCD_MCRCC_CTL2 (volatile unsigned int *)((0x34f1 << 2) + 0xff620000)
// HEVCD_MCRCC_CTL3
// 31:24 <cfg_cache_anc11_c[7:0]>
// 23:16 <cfg_cache_anc11_y[7:0]>
// 15:8 <cfg_cache_anc10_c[7:0]>
// 7:0 <cfg_cache_anc10_y[7:0]>
#define HEVCD_MCRCC_CTL3 (0x34f2)
#define P_HEVCD_MCRCC_CTL3 (volatile unsigned int *)((0x34f2 << 2) + 0xff620000)
// HEVCD_MCRCC_PERFMON_CTL
// [0] percount_reset
// [3:1] perfcount_sel
// [31:4] reserved
// perfcount_sel[2:0] perfcount
// 0 raw_mcr_cnt
// 1 hit_mcr_cnt
// 2 byp_mcr_cnt_nchoutwin
// 3 byp_mcr_cnt_nchcanv
// 4 miss_mcr_cnt_0
// 5 miss_mcr_cnt_1
// 6 hit_mcr_cnt_0
// 7 hit_mcr_cnt_1
#define HEVCD_MCRCC_PERFMON_CTL (0x34f3)
#define P_HEVCD_MCRCC_PERFMON_CTL (volatile unsigned int *)((0x34f3 << 2) + 0xff620000)
// HEVCD_MCRCC_PERFMON_DATA
// [31:0] percount_data
#define HEVCD_MCRCC_PERFMON_DATA (0x34f4)
#define P_HEVCD_MCRCC_PERFMON_DATA (volatile unsigned int *)((0x34f4 << 2) + 0xff620000)
//////////////////////////////////////////////////////////////////////////////
///// VP9 Decoder Registers ////////////////////
//////////////////////////////////////////////////////////////////////////////
// VP9D_MPP_INTERPOL_CFG0
// [2:0] VP9 MC Interpolation type
// 0-3:perframe type 4:per partition type
// [3] reserved
// [4] V99 MV precision
// 1:high precision else mv=mv*2
// [31:5] reserved
#define VP9D_MPP_INTERPOL_CFG0 (0x3440)
#define P_VP9D_MPP_INTERPOL_CFG0 (volatile unsigned int *)((0x3440 << 2) + 0xff620000)
// VP9D_MPP_REF_SCALE_ENBL
// [7:0] VP9 MC reference scaled info
// [15:0] VP9 MC reference scaled dir 0:Dwn 1:Up
// [31:16] reserved
#define VP9D_MPP_REF_SCALE_ENBL (0x3441)
#define P_VP9D_MPP_REF_SCALE_ENBL (volatile unsigned int *)((0x3441 << 2) + 0xff620000)
// VP9D_MPP_REFINFO_TBL_ACCCONFIG
// [1:0] reserved
// [2] auto_inc_index/field
// [5:3] reference index 0:last 1:golden 2:altref
// [8:6] info field 0:<ref_width[14:0]> 1:<ref_height[14:0]>
// 2:<scale_x[26:0] 3:<scale_y[26:0]>
// 4:<decomp_header1_offset[23:0]> -- 32byte aligned
// [31:9] reserved
#define VP9D_MPP_REFINFO_TBL_ACCCONFIG (0x3442)
#define P_VP9D_MPP_REFINFO_TBL_ACCCONFIG (volatile unsigned int *)((0x3442 << 2) + 0xff620000)
// VP9D_MPP_REFINFO_DATA
// [n:0] refinfo_tbl[index]field] wr_data/rd_data
#define VP9D_MPP_REFINFO_DATA (0x3443)
#define P_VP9D_MPP_REFINFO_DATA (volatile unsigned int *)((0x3443 << 2) + 0xff620000)
//
// Closing file: hevc_ipp_regs.h
//
//------------------------------------------------------------------------------
// HEVC_DBLK module level register offset
//------------------------------------------------------------------------------
//
// Reading file: hevc_dblk_regs.h
//
// -----------------------------------------------
// CBUS_BASE: DOS_HEVC_DBLK_CBUS_BASE = 0x05
// -----------------------------------------------
//cfg0[0]; //software_reset
//cfg0[1]; //status clear, only for axi error or pic_done
//cfg0[2]; //clock_forced_on_all
//cfg0[3]; //clock_forced_off_all
//cfg0[11:8]; //PU FIFO Threshold , 0:16 1:1 ... 1:15
//cfg0[15:12]; //TU FIFO Threshold>>4, 0:16<<4 1:1<<4 ... 1:15<<4
//cfg0[29:16]; //clock_forced_on_submodules
#define HEVC_DBLK_CFG0 (0x3500)
#define P_HEVC_DBLK_CFG0 (volatile unsigned int *)((0x3500 << 2) + 0xff620000)
//cfg1[1:0]; //ctb_size 0:64x64 1:32x32 2:16x16
//cfg1[2]; //ignore_out_of_boundary
//cfg1[3]; //pcm_loop_filter_disabled_flag
//cfg1[8:4]; //pps_cb_qp_offset (-12~12,inclusive)
//cfg1[13:9]; //pps_cr_qp_offset (-12~12,inclusive)
//cfg1[14]; //ctbx,y swap in pu i/f
//cfg1[15]; //sao_corner_45_degree_all_software_control
#define HEVC_DBLK_CFG1 (0x3501)
#define P_HEVC_DBLK_CFG1 (volatile unsigned int *)((0x3501 << 2) + 0xff620000)
//cfg2[15:0]; //picture_size_width
//cfg2[31:16]; //picture_size_height
#define HEVC_DBLK_CFG2 (0x3502)
#define P_HEVC_DBLK_CFG2 (volatile unsigned int *)((0x3502 << 2) + 0xff620000)
//cfg3[3:0]; //parameter_axi_arid
//cfg3[7:4]; //parameter_axi_awid
//cfg3[11:8]; //parameter_axi_wid
//cfg3[12]; //parameter_axi_not_check_write_response
//cfg3[19:16]; //data_axi_arid
//cfg3[23:20]; //data_axi_awid
//cfg3[27:24]; //data_axi_wid
//cfg3[28]; //data_axi_not_check_write_response
#define HEVC_DBLK_CFG3 (0x3503)
#define P_HEVC_DBLK_CFG3 (volatile unsigned int *)((0x3503 << 2) + 0xff620000)
//cfg4[31:0]; //parameter_axi_start_address
#define HEVC_DBLK_CFG4 (0x3504)
#define P_HEVC_DBLK_CFG4 (volatile unsigned int *)((0x3504 << 2) + 0xff620000)
//cfg5[31:0]; //data_axi_start_address
#define HEVC_DBLK_CFG5 (0x3505)
#define P_HEVC_DBLK_CFG5 (volatile unsigned int *)((0x3505 << 2) + 0xff620000)
//cfg6[9:0]; //tile_ctbx
//cfg6[25:16]; //tile_ctby
//cfg6[31]; //tile_enabled
#define HEVC_DBLK_CFG6 (0x3506)
#define P_HEVC_DBLK_CFG6 (volatile unsigned int *)((0x3506 << 2) + 0xff620000)
//cfg7[9:0]; //tile_ctbxsize
//cfg7[25:16]; //tile_ctbysize
#define HEVC_DBLK_CFG7 (0x3507)
#define P_HEVC_DBLK_CFG7 (volatile unsigned int *)((0x3507 << 2) + 0xff620000)
//cfg8[9:0]; //start_ctbx, normally equals to tile_ctbx
//cfg8[25:16]; //start_ctby, normally equals to tile_ctby
//cfg8[31]; //start, self_cleared signal, normally set it at the begin of tile
#define HEVC_DBLK_CFG8 (0x3508)
#define P_HEVC_DBLK_CFG8 (volatile unsigned int *)((0x3508 << 2) + 0xff620000)
//cfg9[0] //loop_filter_across_tiles_enabled_flag
//cfg9[1] //loop_filter_across_slices_enabled_flag
//cfg9[2] //deblocking_filter_disabled_flag
//cfg9[6:3] //beta_offset_div2 (-6~6,inclusive)
//cfg9[10:7] //tc_offset_div2 (-6~6,inclusive)
#define HEVC_DBLK_CFG9 (0x3509)
#define P_HEVC_DBLK_CFG9 (volatile unsigned int *)((0x3509 << 2) + 0xff620000)
//cfga[4:0] //corner45degree{FIFO_CNT}
//cfga[31:27] //corner45degree{EN,FIFO_CLR,FIFO_PUSH,DATA,DATA_SEL}
#define HEVC_DBLK_CFGA (0x350a)
#define P_HEVC_DBLK_CFGA (volatile unsigned int *)((0x350a << 2) + 0xff620000)
//cfgb[3:0] //0:HEVC 1:VP9 ...
#define HEVC_DBLK_CFGB (0x350b)
#define P_HEVC_DBLK_CFGB (volatile unsigned int *)((0x350b << 2) + 0xff620000)
//cfgc[31:0] //cfg_addr_y1
#define HEVC_DBLK_CFGC (0x350c)
#define P_HEVC_DBLK_CFGC (volatile unsigned int *)((0x350c << 2) + 0xff620000)
//TODO description
#define HEVC_DBLK_STS0 (0x350d)
#define P_HEVC_DBLK_STS0 (volatile unsigned int *)((0x350d << 2) + 0xff620000)
//TODO description
#define HEVC_DBLK_STS1 (0x350e)
#define P_HEVC_DBLK_STS1 (volatile unsigned int *)((0x350e << 2) + 0xff620000)
//
// Closing file: hevc_dblk_regs.h
//
//------------------------------------------------------------------------------
// HEVC_SAO module level register offset
//------------------------------------------------------------------------------
//
// Reading file: hevc_sao_regs.h
//
// -----------------------------------------------
// CBUS_BASE: DOS_HEVC_SAO_CBUS_BASE = 0x06
// -----------------------------------------------
#define HEVC_SAO_VERSION (0x3600)
#define P_HEVC_SAO_VERSION (volatile unsigned int *)((0x3600 << 2) + 0xff620000)
// [31:0] reversion default:32'h00010001
#define HEVC_SAO_CTRL0 (0x3601)
#define P_HEVC_SAO_CTRL0 (volatile unsigned int *)((0x3601 << 2) + 0xff620000)
// [3:0] lcu_size_log2
// [31] above intermedia data compress: 0=no-compress,1=compress;default:1'b0
#define HEVC_SAO_CTRL1 (0x3602)
#define P_HEVC_SAO_CTRL1 (volatile unsigned int *)((0x3602 << 2) + 0xff620000)
// [31:24] ar_fifo1_axi_thred
// [23:16] ar_fifo0_axi_thred
// [15:14] axi_linealign, 0-16bytes, 1-32bytes, 2-64bytes
// [13:12] axi_aformat, 0-Linear, 1-32x32, 2-64x32
// [11:08] axi_lendian_C
// [07:04] axi_lendian_Y
// [3] reserved
// [2] clk_forceon
// [1] dw_disable:disable double write output
// [0] cm_disable:disable compress output
#define HEVC_SAO_INT_EN (0x3603)
#define P_HEVC_SAO_INT_EN (volatile unsigned int *)((0x3603 << 2) + 0xff620000)
// [0] sao_int_enable
// [1] sao_int_amrisc_level
// [2] sao_int_cpu_level
// [3] slice_done_int_amrisc_enable
// [4] slice_done_int_cpu_enable
// [15] disable_sao_int_clock_gating
#define HEVC_SAO_INT_STATUS (0x3604)
#define P_HEVC_SAO_INT_STATUS (volatile unsigned int *)((0x3604 << 2) + 0xff620000)
// [0] slice_done IRQ
// [31] write "1"=slice start(self clear,read always return "0")
#define HEVC_SAO_PIC_SIZE (0x3605)
#define P_HEVC_SAO_PIC_SIZE (volatile unsigned int *)((0x3605 << 2) + 0xff620000)
// [15:0] pic_width[15:0]
// [31:16] pic_height[15:0]
#define HEVC_SAO_PIC_SIZE_LCU (0x3606)
#define P_HEVC_SAO_PIC_SIZE_LCU (volatile unsigned int *)((0x3606 << 2) + 0xff620000)
// [15:0] lcu_x_num_1[15:0] (=lcu_x_total-1)
// [31:16] lcu_y_num_1[15:0] (=lcu_y_total-1)
#define HEVC_SAO_TILE_START (0x3607)
#define P_HEVC_SAO_TILE_START (volatile unsigned int *)((0x3607 << 2) + 0xff620000)
// [15:0] tile_start_lcu_x[15:0]
// [31:16] tile_start_lcu_y[15:0]
#define HEVC_SAO_TILE_SIZE_LCU (0x3608)
#define P_HEVC_SAO_TILE_SIZE_LCU (volatile unsigned int *)((0x3608 << 2) + 0xff620000)
// [15:0] tile_width_lcu[15:0]
// [31:16] tile_height_lcu[15:0]
#define HEVC_SAO_AXI_WCTRL (0x3609)
#define P_HEVC_SAO_AXI_WCTRL (volatile unsigned int *)((0x3609 << 2) + 0xff620000)
#define HEVC_SAO_AXI_RCTRL (0x360a)
#define P_HEVC_SAO_AXI_RCTRL (volatile unsigned int *)((0x360a << 2) + 0xff620000)
#define HEVC_SAO_Y_START_ADDR (0x360b)
#define P_HEVC_SAO_Y_START_ADDR (volatile unsigned int *)((0x360b << 2) + 0xff620000)
#define HEVC_SAO_Y_LENGTH (0x360c)
#define P_HEVC_SAO_Y_LENGTH (volatile unsigned int *)((0x360c << 2) + 0xff620000)
#define HEVC_SAO_C_START_ADDR (0x360d)
#define P_HEVC_SAO_C_START_ADDR (volatile unsigned int *)((0x360d << 2) + 0xff620000)
#define HEVC_SAO_C_LENGTH (0x360e)
#define P_HEVC_SAO_C_LENGTH (volatile unsigned int *)((0x360e << 2) + 0xff620000)
#define HEVC_SAO_Y_WPTR (0x360f)
#define P_HEVC_SAO_Y_WPTR (volatile unsigned int *)((0x360f << 2) + 0xff620000)
#define HEVC_SAO_C_WPTR (0x3610)
#define P_HEVC_SAO_C_WPTR (volatile unsigned int *)((0x3610 << 2) + 0xff620000)
#define HEVC_SAO_ABV_START_ADDR (0x3611)
#define P_HEVC_SAO_ABV_START_ADDR (volatile unsigned int *)((0x3611 << 2) + 0xff620000)
#define HEVC_SAO_VB_WR_START_ADDR (0x3612)
#define P_HEVC_SAO_VB_WR_START_ADDR (volatile unsigned int *)((0x3612 << 2) + 0xff620000)
#define HEVC_SAO_VB_RD_START_ADDR (0x3613)
#define P_HEVC_SAO_VB_RD_START_ADDR (volatile unsigned int *)((0x3613 << 2) + 0xff620000)
#define HEVC_SAO_ABV_WPTR (0x3614)
#define P_HEVC_SAO_ABV_WPTR (volatile unsigned int *)((0x3614 << 2) + 0xff620000)
#define HEVC_SAO_ABV_RPTR (0x3615)
#define P_HEVC_SAO_ABV_RPTR (volatile unsigned int *)((0x3615 << 2) + 0xff620000)
#define HEVC_SAO_VB_WPTR (0x3616)
#define P_HEVC_SAO_VB_WPTR (volatile unsigned int *)((0x3616 << 2) + 0xff620000)
#define HEVC_SAO_VB_RPTR (0x3617)
#define P_HEVC_SAO_VB_RPTR (volatile unsigned int *)((0x3617 << 2) + 0xff620000)
#define HEVC_SAO_DBG_MODE0 (0x361e)
#define P_HEVC_SAO_DBG_MODE0 (volatile unsigned int *)((0x361e << 2) + 0xff620000)
#define HEVC_SAO_DBG_MODE1 (0x361f)
#define P_HEVC_SAO_DBG_MODE1 (volatile unsigned int *)((0x361f << 2) + 0xff620000)
#define HEVC_SAO_CTRL2 (0x3620)
#define P_HEVC_SAO_CTRL2 (volatile unsigned int *)((0x3620 << 2) + 0xff620000)
#define HEVC_SAO_CTRL3 (0x3621)
#define P_HEVC_SAO_CTRL3 (volatile unsigned int *)((0x3621 << 2) + 0xff620000)
#define HEVC_SAO_CTRL4 (0x3622)
#define P_HEVC_SAO_CTRL4 (volatile unsigned int *)((0x3622 << 2) + 0xff620000)
#define HEVC_SAO_CTRL5 (0x3623)
#define P_HEVC_SAO_CTRL5 (volatile unsigned int *)((0x3623 << 2) + 0xff620000)
//[23:22] dw_h1_ctrl default:2'b11
//[21:20] dw_h0_ctrl default:2'b11
//[19:18] dw_h1_ctrl default:2'b11
//[17:16] dw_h0_ctrl default:2'b11
#define HEVC_SAO_CTRL6 (0x3624)
#define P_HEVC_SAO_CTRL6 (volatile unsigned int *)((0x3624 << 2) + 0xff620000)
#define HEVC_SAO_CTRL7 (0x3625)
#define P_HEVC_SAO_CTRL7 (volatile unsigned int *)((0x3625 << 2) + 0xff620000)
#define HEVC_CM_BODY_START_ADDR (0x3626)
#define P_HEVC_CM_BODY_START_ADDR (volatile unsigned int *)((0x3626 << 2) + 0xff620000)
#define HEVC_CM_BODY_LENGTH (0x3627)
#define P_HEVC_CM_BODY_LENGTH (volatile unsigned int *)((0x3627 << 2) + 0xff620000)
#define HEVC_CM_HEADER_START_ADDR (0x3628)
#define P_HEVC_CM_HEADER_START_ADDR (volatile unsigned int *)((0x3628 << 2) + 0xff620000)
#define HEVC_CM_HEADER_LENGTH (0x3629)
#define P_HEVC_CM_HEADER_LENGTH (volatile unsigned int *)((0x3629 << 2) + 0xff620000)
#define HEVC_CM_COLOR (0x362a)
#define P_HEVC_CM_COLOR (volatile unsigned int *)((0x362a << 2) + 0xff620000)
#define HEVC_CM_HEADER_OFFSET (0x362b)
#define P_HEVC_CM_HEADER_OFFSET (volatile unsigned int *)((0x362b << 2) + 0xff620000)
#define HEVC_SAO_CTRL8 (0x362c)
#define P_HEVC_SAO_CTRL8 (volatile unsigned int *)((0x362c << 2) + 0xff620000)
#define HEVC_SAO_CTRL9 (0x362d)
#define P_HEVC_SAO_CTRL9 (volatile unsigned int *)((0x362d << 2) + 0xff620000)
#define HEVC_SAO_CTRL10 (0x362e)
#define P_HEVC_SAO_CTRL10 (volatile unsigned int *)((0x362e << 2) + 0xff620000)
#define HEVC_SAO_CTRL11 (0x362f)
#define P_HEVC_SAO_CTRL11 (volatile unsigned int *)((0x362f << 2) + 0xff620000)
#define HEVC_SAO_DBG_DATA_0 (0x3630)
#define P_HEVC_SAO_DBG_DATA_0 (volatile unsigned int *)((0x3630 << 2) + 0xff620000)
#define HEVC_SAO_DBG_DATA_1 (0x3631)
#define P_HEVC_SAO_DBG_DATA_1 (volatile unsigned int *)((0x3631 << 2) + 0xff620000)
#define HEVC_SAO_DBG_DATA_2 (0x3632)
#define P_HEVC_SAO_DBG_DATA_2 (volatile unsigned int *)((0x3632 << 2) + 0xff620000)
#define HEVC_SAO_DBG_DATA_3 (0x3633)
#define P_HEVC_SAO_DBG_DATA_3 (volatile unsigned int *)((0x3633 << 2) + 0xff620000)
#define HEVC_SAO_DBG_DATA_4 (0x3634)
#define P_HEVC_SAO_DBG_DATA_4 (volatile unsigned int *)((0x3634 << 2) + 0xff620000)
#define HEVC_SAO_DBG_DATA_5 (0x3635)
#define P_HEVC_SAO_DBG_DATA_5 (volatile unsigned int *)((0x3635 << 2) + 0xff620000)
#define HEVC_SAO_DBG_DATA_6 (0x3636)
#define P_HEVC_SAO_DBG_DATA_6 (volatile unsigned int *)((0x3636 << 2) + 0xff620000)
#define HEVC_SAO_DBG_DATA_7 (0x3637)
#define P_HEVC_SAO_DBG_DATA_7 (volatile unsigned int *)((0x3637 << 2) + 0xff620000)
#define HEVC_SAO_MMU_WR (0x3638)
#define P_HEVC_SAO_MMU_WR (volatile unsigned int *)((0x3638 << 2) + 0xff620000)
#define HEVC_SAO_MMU_STATUS (0x3639)
#define P_HEVC_SAO_MMU_STATUS (volatile unsigned int *)((0x3639 << 2) + 0xff620000)
//Read Only
//sao_mmu_fifo is 16(depth)x20(bits)
//[0] mmu_fifo_empty 1=empty,0=not-empty
//[1] mmu_fifo_full 1=full,0=not-full
//[7:4] mmu_fifo_depth[3:0]
//[11:8] mmu_fifo_room[3:0]
#define HEVC_SAO_MMU_VH0_ADDR (0x363a)
#define P_HEVC_SAO_MMU_VH0_ADDR (volatile unsigned int *)((0x363a << 2) + 0xff620000)
#define HEVC_SAO_MMU_VH1_ADDR (0x363b)
#define P_HEVC_SAO_MMU_VH1_ADDR (volatile unsigned int *)((0x363b << 2) + 0xff620000)
#define HEVC_SAO_MMU_WPTR (0x363c)
#define P_HEVC_SAO_MMU_WPTR (volatile unsigned int *)((0x363c << 2) + 0xff620000)
#define HEVC_SAO_MMU_RPTR (0x363d)
#define P_HEVC_SAO_MMU_RPTR (volatile unsigned int *)((0x363d << 2) + 0xff620000)
//
// Closing file: hevc_sao_regs.h
//
//------------------------------------------------------------------------------
// HEVC_IQIT module level register offset
//------------------------------------------------------------------------------
//
// Reading file: hevc_iqit_regs.h
//
// -----------------------------------------------
// CBUS_BASE: DOS_HEVC_IQIT_CBUS_BASE = 0x07
// -----------------------------------------------
// [ 2] RW en_freeclk. 0=Auto-gated clock for saving power;
// 1=Free running clock if something wrong with auto-gating.
// Default 0.
// [ 1] RW enable_clk. 0=Disable clock; 1=Enable clock. Default 0.
#define HEVC_IQIT_CLK_RST_CTRL (0x3700)
#define P_HEVC_IQIT_CLK_RST_CTRL (volatile unsigned int *)((0x3700 << 2) + 0xff620000)
// [ 5: 4] RW ctb_size. 0=8x8; 1=16x16; 2=32x32; 3=64x64. Default 0.
// [ 3] RW itr_skip_mode. For dealing with discrepancy between Spec and C model for transform_skip.
// 0=Follow Spec; 1=Follow C model. Default 0.
// [ 2] RW scalelist_mode. Applicable only when scalelist_en=1.
// 0=Use default scaling factor list;
// 1=Use scaling factor list define in bit stream.
// Default 0.
// [ 1] RW scalelist_en. 0=Use flat scale; 1=Use scaling factor list. Default 0.
// [ 0] RW diagscan_en. 0=Linear lookup dQ table; 1=Diagonally lookup dQ table. Default 0.
#define HEVC_IQIT_DEQUANT_CTRL (0x3701)
#define P_HEVC_IQIT_DEQUANT_CTRL (volatile unsigned int *)((0x3701 << 2) + 0xff620000)
// [31:10] WR Reserved. Default 0.
// [ 9: 0] WR scalelut_addr. Default 0.
#define HEVC_IQIT_SCALELUT_WR_ADDR (0x3702)
#define P_HEVC_IQIT_SCALELUT_WR_ADDR (volatile unsigned int *)((0x3702 << 2) + 0xff620000)
// [31:10] RD Reserved. Default 0.
// [ 9: 0] RD scalelut_addr. Default 0.
#define HEVC_IQIT_SCALELUT_RD_ADDR (0x3703)
#define P_HEVC_IQIT_SCALELUT_RD_ADDR (volatile unsigned int *)((0x3703 << 2) + 0xff620000)
// [ 7: 0] RW LUT data.
#define HEVC_IQIT_SCALELUT_DATA (0x3704)
#define P_HEVC_IQIT_SCALELUT_DATA (volatile unsigned int *)((0x3704 << 2) + 0xff620000)
//---------------------------------------------------
// tab_idx [2:0] -
// 0-5 use custom table index
// 6 - reserved
// 7 - use default table
//---------------------------------------------------
// [22:20] 4x4 tab 5
// [ 19] reserved
// [18:16] 4x4 tab 4
// [ 15] reserved
// [14:12] 4x4 tab 3
// [ 11] reserved
// [10: 8] 4x4 tab 2
// [ 7] reserved
// [ 6: 4] 4x4 tab 1
// [ 3] reserved
// [ 2: 0] 4x4 tab 0
#define HEVC_IQIT_SCALELUT_IDX_4 (0x3705)
#define P_HEVC_IQIT_SCALELUT_IDX_4 (volatile unsigned int *)((0x3705 << 2) + 0xff620000)
// [22:20] 8x8 tab 5
// [ 19] reserved
// [18:16] 8x8 tab 4
// [ 15] reserved
// [14:12] 8x8 tab 3
// [ 11] reserved
// [10: 8] 8x8 tab 2
// [ 7] reserved
// [ 6: 4] 8x8 tab 1
// [ 3] reserved
// [ 2: 0] 8x8 tab 0
#define HEVC_IQIT_SCALELUT_IDX_8 (0x3706)
#define P_HEVC_IQIT_SCALELUT_IDX_8 (volatile unsigned int *)((0x3706 << 2) + 0xff620000)
// [ 31] reserved
// [30:28] 32x32 tab 1
// [ 27] reserved
// [26:24] 32x32 tab 0
// [ 23] reserved
// [22:20] 16x16 tab 5
// [ 19] reserved
// [18:16] 16x16 tab 4
// [ 15] reserved
// [14:12] 16x16 tab 3
// [ 11] reserved
// [10: 8] 16x16 tab 2
// [ 7] reserved
// [ 6: 4] 16x16 tab 1
// [ 3] reserved
// [ 2: 0] 16x16 tab 0
#define HEVC_IQIT_SCALELUT_IDX_16_32 (0x3707)
#define P_HEVC_IQIT_SCALELUT_IDX_16_32 (volatile unsigned int *)((0x3707 << 2) + 0xff620000)
// [ 8: 2] R tuinfo_fifo_cnt.
// [ 1] R fifo_has_room.
// [ 0] R mem_init_done.
#define HEVC_IQIT_STAT_GEN0 (0x3708)
#define P_HEVC_IQIT_STAT_GEN0 (volatile unsigned int *)((0x3708 << 2) + 0xff620000)
// [ 23] RW cntl_qp_cr_valid.
// [21:16] RW cntl_qp_cr.
// [ 15] RW cntl_qp_cb_valid.
// [13: 8] RW cntl_qp_cb.
// [ 7] RW cntl_qp_y_valid.
// [ 5: 0] RW cntl_qp_y.
#define HEVC_QP_WRITE (0x3709)
#define P_HEVC_QP_WRITE (volatile unsigned int *)((0x3709 << 2) + 0xff620000)
// [31:30] R ipp_size.
// [28:24] R ipp_mem_ptr.
// [23:22] R itr2_size.
// [20:16] R itr2_mem_ptr.
// [15:14] R itr1_size.
// [12: 8] R itr1_mem_ptr.
// [ 7: 6] R iq_size.
// [ 4: 0] R iq_mem_ptr.
#define HEVC_IQIT_STAT_GEN1 (0x370a)
#define P_HEVC_IQIT_STAT_GEN1 (volatile unsigned int *)((0x370a << 2) + 0xff620000)
// [ 5: 4] RW cntl_bitdepth_c. 0=8-bit; 1=9-bit; 2=10-bit.
// [ 1: 0] RW cntl_bitdepth_y. 0=8-bit; 1=9-bit; 2=10-bit.
#define HEVC_IQIT_BITDEPTH (0x370b)
#define P_HEVC_IQIT_BITDEPTH (volatile unsigned int *)((0x370b << 2) + 0xff620000)
// [ 10] R ipp_active.
// [ 9] R itr2_active.
// [ 8] R itr1_active.
// [ 5: 0] R mem_spare_num.
#define HEVC_IQIT_STAT_GEN2 (0x370c)
#define P_HEVC_IQIT_STAT_GEN2 (volatile unsigned int *)((0x370c << 2) + 0xff620000)
#define HEVC_IQIT_AVS2_WQP_0123 (0x370d)
#define P_HEVC_IQIT_AVS2_WQP_0123 (volatile unsigned int *)((0x370d << 2) + 0xff620000)
#define HEVC_IQIT_AVS2_WQP_45 (0x370e)
#define P_HEVC_IQIT_AVS2_WQP_45 (volatile unsigned int *)((0x370e << 2) + 0xff620000)
#define HEVC_IQIT_AVS2_QP_DELTA (0x370f)
#define P_HEVC_IQIT_AVS2_QP_DELTA (volatile unsigned int *)((0x370f << 2) + 0xff620000)
//
// Closing file: hevc_iqit_regs.h
//
//------------------------------------------------------------------------------
// DOS top-level register offset
//------------------------------------------------------------------------------
// -----------------------------------------------
// CBUS_BASE: DOS_TOP_CBUS_BASE = 0x3f
// -----------------------------------------------
// [0] reserved
// [1] Reset Dos top level registers, except sw_reset0/1/2 which is only reset by external reset_n.
// [2] VDEC1 Reset assist, mdec's CBUS
// [3] VDEC1 Reset mdec's VLD
// [4] VDEC1 Reset mdec's VLD
// [5] VDEC1 Reset mdec's VLD
// [6] VDEC1 Reset mdec's IQIDCT
// [7] VDEC1 Reset mdec's MC
// [8] VDEC1 Reset mdec's DBLK
// [9] VDEC1 Reset mdec's PIC_DC
// [10] VDEC1 Reset mdec's Pscale
// [11] VDEC1 Reset vcpu's MCPU
// [12] VDEC1 Reset vcpu's CCPU
// [13] VDEC1 Reset mmc_pre_arb
#define DOS_SW_RESET0 (0x3f00)
#define P_DOS_SW_RESET0 (volatile unsigned int *)((0x3f00 << 2) + 0xff620000)
// [31:27] reserved
// [26] hcodec clk_en for henc assist
// [25:22] reserved
// [21] hcodec clk_en for henc qdct
// [20] hcodec clk_en for henc vlc
// [19] hcodec clk_en for assist and cbus
// [18] hcodec clk_en for ddr
// [17] hcodec clk_en for vcpu
// [16] hcodec clk_en for hdec assist
// [15] hcodec clk_en for hdec dblk
// [14] reserved
// [13] hcodec clk_en for hdec mc
// [12] hcodec clk_en for hdec pic_dc
// [11:10] reserved
// [9] vdec clk_en for vdec assist and cbus
// [8] vdec clk_en for ddr
// [7] vdec clk_en for vcpu
// [6] vdec clk_en for mdec vld
// [5] vdec clk_en for mdec psc
// [4] vdec clk_en for mdec pic_dc
// [3] vdec clk_en for mdec mc
// [2] vdec clk_en for mdec iqidct
// [1] vdec clk_en for mdec dblk
// [0] vdec clk_en for mdec assist
#define DOS_GCLK_EN0 (0x3f01)
#define P_DOS_GCLK_EN0 (volatile unsigned int *)((0x3f01 << 2) + 0xff620000)
#define DOS_GEN_CTRL0 (0x3f02)
#define P_DOS_GEN_CTRL0 (volatile unsigned int *)((0x3f02 << 2) + 0xff620000)
#define DOS_APB_ERR_CTRL (0x3f03)
#define P_DOS_APB_ERR_CTRL (volatile unsigned int *)((0x3f03 << 2) + 0xff620000)
#define DOS_APB_ERR_STAT (0x3f04)
#define P_DOS_APB_ERR_STAT (volatile unsigned int *)((0x3f04 << 2) + 0xff620000)
#define DOS_VDEC_INT_EN (0x3f05)
#define P_DOS_VDEC_INT_EN (volatile unsigned int *)((0x3f05 << 2) + 0xff620000)
#define DOS_HCODEC_INT_EN (0x3f06)
#define P_DOS_HCODEC_INT_EN (volatile unsigned int *)((0x3f06 << 2) + 0xff620000)
// [0] Reserved
// [1] Reserved
// [2] HCODEC Reset assist, hdec's CBUS
// [3] HCODEC Reset hdec's VLD
// [4] HCODEC Reset hdec's VLD
// [5] HCODEC Reset hdec's VLD
// [6] HCODEC Reset hdec's IQIDCT
// [7] HCODEC Reset hdec's MC
// [8] HCODEC Reset hdec's DBLK
// [9] HCODEC Reset hdec's PIC_DC
// [10] HCODEC Reset hdec's Pscale
// [11] HCODEC Reset vcpu's MCPU
// [12] HCODEC Reset vcpu's CCPU
// [13] HCODEC Reset mmc_pre_arb
// [14] HCODEC Reserved
// [15] HCODEC Reserved
// [16] HCODEC Reset henc's VLC
#define DOS_SW_RESET1 (0x3f07)
#define P_DOS_SW_RESET1 (volatile unsigned int *)((0x3f07 << 2) + 0xff620000)
// [0] Reserved
// [1] Reserved
// [2] VDEC2 Reset assist, mdec's CBUS
// [3] VDEC2 Reset mdec's VLD
// [4] VDEC2 Reset mdec's VLD
// [5] VDEC2 Reset mdec's VLD
// [6] VDEC2 Reset mdec's IQIDCT
// [7] VDEC2 Reset mdec's MC
// [8] VDEC2 Reset mdec's DBLK
// [9] VDEC2 Reset mdec's PIC_DC
// [10] VDEC2 Reset mdec's Pscale
// [11] VDEC2 Reset vcpu's MCPU
// [12] VDEC2 Reset vcpu's CCPU
// [13] VDEC2 Reset mmc_pre_arb
#define DOS_SW_RESET2 (0x3f08)
#define P_DOS_SW_RESET2 (volatile unsigned int *)((0x3f08 << 2) + 0xff620000)
// [31:10] Reserved
// [9] vdec2 clk_en for assist and cbus.
// [8] vdec2 clk_en for ddr;
// [7] vdec2 clk_en for vcpu;
// [6] vdec2 clk_en for mdec vld
// [5] vdec2 clk_en for mdec psc
// [4] vdec2 clk_en for mdec pic_dc
// [3] vdec2 clk_en for mdec mc
// [2] vdec2 clk_en for mdec iqidct
// [1] vdec2 clk_en for mdec dblk
// [0] vdec2 clk_en for mdec assist
#define DOS_GCLK_EN1 (0x3f09)
#define P_DOS_GCLK_EN1 (volatile unsigned int *)((0x3f09 << 2) + 0xff620000)
#define DOS_VDEC2_INT_EN (0x3f0a)
#define P_DOS_VDEC2_INT_EN (volatile unsigned int *)((0x3f0a << 2) + 0xff620000)
#define DOS_VDIN_LCNT (0x3f0b)
#define P_DOS_VDIN_LCNT (volatile unsigned int *)((0x3f0b << 2) + 0xff620000)
#define DOS_VDIN_FCNT (0x3f0c)
#define P_DOS_VDIN_FCNT (volatile unsigned int *)((0x3f0c << 2) + 0xff620000)
#define DOS_VDIN_CCTL (0x3f0d)
#define P_DOS_VDIN_CCTL (volatile unsigned int *)((0x3f0d << 2) + 0xff620000)
#define DOS_SCRATCH0 (0x3f10)
#define P_DOS_SCRATCH0 (volatile unsigned int *)((0x3f10 << 2) + 0xff620000)
#define DOS_SCRATCH1 (0x3f11)
#define P_DOS_SCRATCH1 (volatile unsigned int *)((0x3f11 << 2) + 0xff620000)
#define DOS_SCRATCH2 (0x3f12)
#define P_DOS_SCRATCH2 (volatile unsigned int *)((0x3f12 << 2) + 0xff620000)
#define DOS_SCRATCH3 (0x3f13)
#define P_DOS_SCRATCH3 (volatile unsigned int *)((0x3f13 << 2) + 0xff620000)
#define DOS_SCRATCH4 (0x3f14)
#define P_DOS_SCRATCH4 (volatile unsigned int *)((0x3f14 << 2) + 0xff620000)
#define DOS_SCRATCH5 (0x3f15)
#define P_DOS_SCRATCH5 (volatile unsigned int *)((0x3f15 << 2) + 0xff620000)
#define DOS_SCRATCH6 (0x3f16)
#define P_DOS_SCRATCH6 (volatile unsigned int *)((0x3f16 << 2) + 0xff620000)
#define DOS_SCRATCH7 (0x3f17)
#define P_DOS_SCRATCH7 (volatile unsigned int *)((0x3f17 << 2) + 0xff620000)
#define DOS_SCRATCH8 (0x3f18)
#define P_DOS_SCRATCH8 (volatile unsigned int *)((0x3f18 << 2) + 0xff620000)
#define DOS_SCRATCH9 (0x3f19)
#define P_DOS_SCRATCH9 (volatile unsigned int *)((0x3f19 << 2) + 0xff620000)
#define DOS_SCRATCH10 (0x3f1a)
#define P_DOS_SCRATCH10 (volatile unsigned int *)((0x3f1a << 2) + 0xff620000)
#define DOS_SCRATCH11 (0x3f1b)
#define P_DOS_SCRATCH11 (volatile unsigned int *)((0x3f1b << 2) + 0xff620000)
#define DOS_SCRATCH12 (0x3f1c)
#define P_DOS_SCRATCH12 (volatile unsigned int *)((0x3f1c << 2) + 0xff620000)
#define DOS_SCRATCH13 (0x3f1d)
#define P_DOS_SCRATCH13 (volatile unsigned int *)((0x3f1d << 2) + 0xff620000)
#define DOS_SCRATCH14 (0x3f1e)
#define P_DOS_SCRATCH14 (volatile unsigned int *)((0x3f1e << 2) + 0xff620000)
#define DOS_SCRATCH15 (0x3f1f)
#define P_DOS_SCRATCH15 (volatile unsigned int *)((0x3f1f << 2) + 0xff620000)
#define DOS_SCRATCH16 (0x3f20)
#define P_DOS_SCRATCH16 (volatile unsigned int *)((0x3f20 << 2) + 0xff620000)
#define DOS_SCRATCH17 (0x3f21)
#define P_DOS_SCRATCH17 (volatile unsigned int *)((0x3f21 << 2) + 0xff620000)
#define DOS_SCRATCH18 (0x3f22)
#define P_DOS_SCRATCH18 (volatile unsigned int *)((0x3f22 << 2) + 0xff620000)
#define DOS_SCRATCH19 (0x3f23)
#define P_DOS_SCRATCH19 (volatile unsigned int *)((0x3f23 << 2) + 0xff620000)
#define DOS_SCRATCH20 (0x3f24)
#define P_DOS_SCRATCH20 (volatile unsigned int *)((0x3f24 << 2) + 0xff620000)
#define DOS_SCRATCH21 (0x3f25)
#define P_DOS_SCRATCH21 (volatile unsigned int *)((0x3f25 << 2) + 0xff620000)
#define DOS_SCRATCH22 (0x3f26)
#define P_DOS_SCRATCH22 (volatile unsigned int *)((0x3f26 << 2) + 0xff620000)
#define DOS_SCRATCH23 (0x3f27)
#define P_DOS_SCRATCH23 (volatile unsigned int *)((0x3f27 << 2) + 0xff620000)
#define DOS_SCRATCH24 (0x3f28)
#define P_DOS_SCRATCH24 (volatile unsigned int *)((0x3f28 << 2) + 0xff620000)
#define DOS_SCRATCH25 (0x3f29)
#define P_DOS_SCRATCH25 (volatile unsigned int *)((0x3f29 << 2) + 0xff620000)
#define DOS_SCRATCH26 (0x3f2a)
#define P_DOS_SCRATCH26 (volatile unsigned int *)((0x3f2a << 2) + 0xff620000)
#define DOS_SCRATCH27 (0x3f2b)
#define P_DOS_SCRATCH27 (volatile unsigned int *)((0x3f2b << 2) + 0xff620000)
#define DOS_SCRATCH28 (0x3f2c)
#define P_DOS_SCRATCH28 (volatile unsigned int *)((0x3f2c << 2) + 0xff620000)
#define DOS_SCRATCH29 (0x3f2d)
#define P_DOS_SCRATCH29 (volatile unsigned int *)((0x3f2d << 2) + 0xff620000)
#define DOS_SCRATCH30 (0x3f2e)
#define P_DOS_SCRATCH30 (volatile unsigned int *)((0x3f2e << 2) + 0xff620000)
#define DOS_SCRATCH31 (0x3f2f)
#define P_DOS_SCRATCH31 (volatile unsigned int *)((0x3f2f << 2) + 0xff620000)
#define DOS_MEM_PD_VDEC (0x3f30)
#define P_DOS_MEM_PD_VDEC (volatile unsigned int *)((0x3f30 << 2) + 0xff620000)
#define DOS_MEM_PD_VDEC2 (0x3f31)
#define P_DOS_MEM_PD_VDEC2 (volatile unsigned int *)((0x3f31 << 2) + 0xff620000)
#define DOS_MEM_PD_HCODEC (0x3f32)
#define P_DOS_MEM_PD_HCODEC (volatile unsigned int *)((0x3f32 << 2) + 0xff620000)
#define DOS_MEM_PD_HEVC (0x3f33)
#define P_DOS_MEM_PD_HEVC (volatile unsigned int *)((0x3f33 << 2) + 0xff620000)
#define DOS_SW_RESET3 (0x3f34)
#define P_DOS_SW_RESET3 (volatile unsigned int *)((0x3f34 << 2) + 0xff620000)
#define DOS_GCLK_EN3 (0x3f35)
#define P_DOS_GCLK_EN3 (volatile unsigned int *)((0x3f35 << 2) + 0xff620000)
#define DOS_HEVC_INT_EN (0x3f36)
#define P_DOS_HEVC_INT_EN (volatile unsigned int *)((0x3f36 << 2) + 0xff620000)
#define DOS_SW_RESET4 (0x3f37)
#define P_DOS_SW_RESET4 (volatile unsigned int *)((0x3f37 << 2) + 0xff620000)
#define DOS_GCLK_EN4 (0x3f38)
#define P_DOS_GCLK_EN4 (volatile unsigned int *)((0x3f38 << 2) + 0xff620000)
#define DOS_MEM_PD_VP9DEC (0x3f39)
#define P_DOS_MEM_PD_VP9DEC (volatile unsigned int *)((0x3f39 << 2) + 0xff620000)
// bit[31] mcrcc_stall_en
// bit[30:28] Reserved
// bit[27:20] target_canvas
// bit[19:10] target_mby
// bit[ 9: 0] target_mbx
#define DOS_VDEC_MCRCC_STALL_CTRL (0x3f40)
#define P_DOS_VDEC_MCRCC_STALL_CTRL (volatile unsigned int *)((0x3f40 << 2) + 0xff620000)
#define DOS_VDEC_MCRCC_STALL2_CTRL (0x3f42)
#define P_DOS_VDEC_MCRCC_STALL2_CTRL (volatile unsigned int *)((0x3f42 << 2) + 0xff620000)
#define DOS_VDEC2_MCRCC_STALL_CTRL (0x3f41)
#define P_DOS_VDEC2_MCRCC_STALL_CTRL (volatile unsigned int *)((0x3f41 << 2) + 0xff620000)
#define DOS_VDEC2_MCRCC_STALL2_CTRL (0x3f43)
#define P_DOS_VDEC2_MCRCC_STALL2_CTRL (volatile unsigned int *)((0x3f43 << 2) + 0xff620000)
// bit[1] s_clk off
// bit[0] m_clk off
#define DOS_CFG_CMPIF_BRIDGE (0x3f44)
#define P_DOS_CFG_CMPIF_BRIDGE (volatile unsigned int *)((0x3f44 << 2) + 0xff620000)
#define DOS_SECURE_CTL_INDEX (0x3f80)
#define P_DOS_SECURE_CTL_INDEX (volatile unsigned int *)((0x3f80 << 2) + 0xff620000)
#define DOS_SECURE_CTL_DATA (0x3f81)
#define P_DOS_SECURE_CTL_DATA (volatile unsigned int *)((0x3f81 << 2) + 0xff620000)
#define DOS_SECURE_REG_NULL (0x3f82)
#define P_DOS_SECURE_REG_NULL (volatile unsigned int *)((0x3f82 << 2) + 0xff620000)
//
// Closing file: ./dos_param.h
//
//
// Reading file: mdec_regs.h
//
//========================================================================
// MDEC module level register offset
//========================================================================
// -----------------------------------------------
// CBUS_BASE: DOS_VDEC_MDEC_CBUS_BASE = 0x09
// -----------------------------------------------
#define HCODEC_MC_CTRL_REG (0x1900)
#define P_HCODEC_MC_CTRL_REG (volatile unsigned int *)((0x1900 << 2) + 0xff620000)
#define HCODEC_MC_MB_INFO (0x1901)
#define P_HCODEC_MC_MB_INFO (volatile unsigned int *)((0x1901 << 2) + 0xff620000)
#define HCODEC_MC_PIC_INFO (0x1902)
#define P_HCODEC_MC_PIC_INFO (volatile unsigned int *)((0x1902 << 2) + 0xff620000)
#define HCODEC_MC_HALF_PEL_ONE (0x1903)
#define P_HCODEC_MC_HALF_PEL_ONE (volatile unsigned int *)((0x1903 << 2) + 0xff620000)
#define HCODEC_MC_HALF_PEL_TWO (0x1904)
#define P_HCODEC_MC_HALF_PEL_TWO (volatile unsigned int *)((0x1904 << 2) + 0xff620000)
#define HCODEC_POWER_CTL_MC (0x1905)
#define P_HCODEC_POWER_CTL_MC (volatile unsigned int *)((0x1905 << 2) + 0xff620000)
#define HCODEC_MC_CMD (0x1906)
#define P_HCODEC_MC_CMD (volatile unsigned int *)((0x1906 << 2) + 0xff620000)
#define HCODEC_MC_CTRL0 (0x1907)
#define P_HCODEC_MC_CTRL0 (volatile unsigned int *)((0x1907 << 2) + 0xff620000)
#define HCODEC_MC_PIC_W_H (0x1908)
#define P_HCODEC_MC_PIC_W_H (volatile unsigned int *)((0x1908 << 2) + 0xff620000)
#define HCODEC_MC_STATUS0 (0x1909)
#define P_HCODEC_MC_STATUS0 (volatile unsigned int *)((0x1909 << 2) + 0xff620000)
#define HCODEC_MC_STATUS1 (0x190a)
#define P_HCODEC_MC_STATUS1 (volatile unsigned int *)((0x190a << 2) + 0xff620000)
#define HCODEC_MC_CTRL1 (0x190b)
#define P_HCODEC_MC_CTRL1 (volatile unsigned int *)((0x190b << 2) + 0xff620000)
#define HCODEC_MC_MIX_RATIO0 (0x190c)
#define P_HCODEC_MC_MIX_RATIO0 (volatile unsigned int *)((0x190c << 2) + 0xff620000)
#define HCODEC_MC_MIX_RATIO1 (0x190d)
#define P_HCODEC_MC_MIX_RATIO1 (volatile unsigned int *)((0x190d << 2) + 0xff620000)
#define HCODEC_MC_DP_MB_XY (0x190e)
#define P_HCODEC_MC_DP_MB_XY (volatile unsigned int *)((0x190e << 2) + 0xff620000)
#define HCODEC_MC_OM_MB_XY (0x190f)
#define P_HCODEC_MC_OM_MB_XY (volatile unsigned int *)((0x190f << 2) + 0xff620000)
#define HCODEC_PSCALE_RST (0x1910)
#define P_HCODEC_PSCALE_RST (volatile unsigned int *)((0x1910 << 2) + 0xff620000)
#define HCODEC_PSCALE_CTRL (0x1911)
#define P_HCODEC_PSCALE_CTRL (volatile unsigned int *)((0x1911 << 2) + 0xff620000)
#define HCODEC_PSCALE_PICI_W (0x1912)
#define P_HCODEC_PSCALE_PICI_W (volatile unsigned int *)((0x1912 << 2) + 0xff620000)
#define HCODEC_PSCALE_PICI_H (0x1913)
#define P_HCODEC_PSCALE_PICI_H (volatile unsigned int *)((0x1913 << 2) + 0xff620000)
#define HCODEC_PSCALE_PICO_W (0x1914)
#define P_HCODEC_PSCALE_PICO_W (volatile unsigned int *)((0x1914 << 2) + 0xff620000)
#define HCODEC_PSCALE_PICO_H (0x1915)
#define P_HCODEC_PSCALE_PICO_H (volatile unsigned int *)((0x1915 << 2) + 0xff620000)
#define HCODEC_PSCALE_PICO_START_X (0x1916)
#define P_HCODEC_PSCALE_PICO_START_X (volatile unsigned int *)((0x1916 << 2) + 0xff620000)
#define HCODEC_PSCALE_PICO_START_Y (0x1917)
#define P_HCODEC_PSCALE_PICO_START_Y (volatile unsigned int *)((0x1917 << 2) + 0xff620000)
#define HCODEC_PSCALE_DUMMY (0x1918)
#define P_HCODEC_PSCALE_DUMMY (volatile unsigned int *)((0x1918 << 2) + 0xff620000)
#define HCODEC_PSCALE_FILT0_COEF0 (0x1919)
#define P_HCODEC_PSCALE_FILT0_COEF0 (volatile unsigned int *)((0x1919 << 2) + 0xff620000)
#define HCODEC_PSCALE_FILT0_COEF1 (0x191a)
#define P_HCODEC_PSCALE_FILT0_COEF1 (volatile unsigned int *)((0x191a << 2) + 0xff620000)
#define HCODEC_PSCALE_CMD_CTRL (0x191b)
#define P_HCODEC_PSCALE_CMD_CTRL (volatile unsigned int *)((0x191b << 2) + 0xff620000)
#define HCODEC_PSCALE_CMD_BLK_X (0x191c)
#define P_HCODEC_PSCALE_CMD_BLK_X (volatile unsigned int *)((0x191c << 2) + 0xff620000)
#define HCODEC_PSCALE_CMD_BLK_Y (0x191d)
#define P_HCODEC_PSCALE_CMD_BLK_Y (volatile unsigned int *)((0x191d << 2) + 0xff620000)
#define HCODEC_PSCALE_STATUS (0x191e)
#define P_HCODEC_PSCALE_STATUS (volatile unsigned int *)((0x191e << 2) + 0xff620000)
#define HCODEC_PSCALE_BMEM_ADDR (0x191f)
#define P_HCODEC_PSCALE_BMEM_ADDR (volatile unsigned int *)((0x191f << 2) + 0xff620000)
#define HCODEC_PSCALE_BMEM_DAT (0x1920)
#define P_HCODEC_PSCALE_BMEM_DAT (volatile unsigned int *)((0x1920 << 2) + 0xff620000)
#define HCODEC_PSCALE_DRAM_BUF_CTRL (0x1921)
#define P_HCODEC_PSCALE_DRAM_BUF_CTRL (volatile unsigned int *)((0x1921 << 2) + 0xff620000)
#define HCODEC_PSCALE_MCMD_CTRL (0x1922)
#define P_HCODEC_PSCALE_MCMD_CTRL (volatile unsigned int *)((0x1922 << 2) + 0xff620000)
#define HCODEC_PSCALE_MCMD_XSIZE (0x1923)
#define P_HCODEC_PSCALE_MCMD_XSIZE (volatile unsigned int *)((0x1923 << 2) + 0xff620000)
#define HCODEC_PSCALE_MCMD_YSIZE (0x1924)
#define P_HCODEC_PSCALE_MCMD_YSIZE (volatile unsigned int *)((0x1924 << 2) + 0xff620000)
#define HCODEC_PSCALE_RBUF_START_BLKX (0x1925)
#define P_HCODEC_PSCALE_RBUF_START_BLKX (volatile unsigned int *)((0x1925 << 2) + 0xff620000)
#define HCODEC_PSCALE_RBUF_START_BLKY (0x1926)
#define P_HCODEC_PSCALE_RBUF_START_BLKY (volatile unsigned int *)((0x1926 << 2) + 0xff620000)
//`define PSCALE_RBUF_MB_WIDTH 8'h27
#define HCODEC_PSCALE_PICO_SHIFT_XY (0x1928)
#define P_HCODEC_PSCALE_PICO_SHIFT_XY (volatile unsigned int *)((0x1928 << 2) + 0xff620000)
#define HCODEC_PSCALE_CTRL1 (0x1929)
#define P_HCODEC_PSCALE_CTRL1 (volatile unsigned int *)((0x1929 << 2) + 0xff620000)
//Bit 15, wmask enable
//Bit 14:13, filt0 srckey_less,
//Bit 12:11, filt1 srckey_less, in the case of the interpolated data is equal distance to
//key data and normal data, 00: select normal data, 01: select right data, 10: select key data
//Bit 10:9, srckey mode, 00: equal, 01: less than or equal, 10: great than or equal
//Bit 8, src key enable
//Bit 7:0, y src key
#define HCODEC_PSCALE_SRCKEY_CTRL0 (0x192a)
#define P_HCODEC_PSCALE_SRCKEY_CTRL0 (volatile unsigned int *)((0x192a << 2) + 0xff620000)
//Bit 15:8, cb src key
//Bit 7:0, cr src key
#define HCODEC_PSCALE_SRCKEY_CTRL1 (0x192b)
#define P_HCODEC_PSCALE_SRCKEY_CTRL1 (volatile unsigned int *)((0x192b << 2) + 0xff620000)
//Bit 22:16 canvas_rd_addr2
//Bit 14:8 canvas_rd_addr1
//Bit 6:0 canvas_rd_addr1
#define HCODEC_PSCALE_CANVAS_RD_ADDR (0x192c)
#define P_HCODEC_PSCALE_CANVAS_RD_ADDR (volatile unsigned int *)((0x192c << 2) + 0xff620000)
//Bit 22:16 canvas_wr_addr2
//Bit 14:8 canvas_wr_addr1
//Bit 6:0 canvas_wr_addr1
#define HCODEC_PSCALE_CANVAS_WR_ADDR (0x192d)
#define P_HCODEC_PSCALE_CANVAS_WR_ADDR (volatile unsigned int *)((0x192d << 2) + 0xff620000)
//bit 13:8 pscale thread ID and token
//bit 7 disable write response count adding to busy bit
//bit 5:0 pscale prearbitor burst num
#define HCODEC_PSCALE_CTRL2 (0x192e)
#define P_HCODEC_PSCALE_CTRL2 (volatile unsigned int *)((0x192e << 2) + 0xff620000)
// 31 - use_omem_mb_xy_auto
//23:16 - omem_max_mb_x
//15:8 - omem_mb_y_auto
// 7:0 - omem_mb_x_auto
#define HCODEC_HDEC_MC_OMEM_AUTO (0x1930)
#define P_HCODEC_HDEC_MC_OMEM_AUTO (volatile unsigned int *)((0x1930 << 2) + 0xff620000)
#define HCODEC_HDEC_MC_MBRIGHT_IDX (0x1931)
#define P_HCODEC_HDEC_MC_MBRIGHT_IDX (volatile unsigned int *)((0x1931 << 2) + 0xff620000)
#define HCODEC_HDEC_MC_MBRIGHT_RD (0x1932)
#define P_HCODEC_HDEC_MC_MBRIGHT_RD (volatile unsigned int *)((0x1932 << 2) + 0xff620000)
#define HCODEC_MC_MPORT_CTRL (0x1940)
#define P_HCODEC_MC_MPORT_CTRL (volatile unsigned int *)((0x1940 << 2) + 0xff620000)
#define HCODEC_MC_MPORT_DAT (0x1941)
#define P_HCODEC_MC_MPORT_DAT (volatile unsigned int *)((0x1941 << 2) + 0xff620000)
#define HCODEC_MC_WT_PRED_CTRL (0x1942)
#define P_HCODEC_MC_WT_PRED_CTRL (volatile unsigned int *)((0x1942 << 2) + 0xff620000)
#define HCODEC_MC_MBBOT_ST_EVEN_ADDR (0x1944)
#define P_HCODEC_MC_MBBOT_ST_EVEN_ADDR (volatile unsigned int *)((0x1944 << 2) + 0xff620000)
#define HCODEC_MC_MBBOT_ST_ODD_ADDR (0x1945)
#define P_HCODEC_MC_MBBOT_ST_ODD_ADDR (volatile unsigned int *)((0x1945 << 2) + 0xff620000)
#define HCODEC_MC_DPDN_MB_XY (0x1946)
#define P_HCODEC_MC_DPDN_MB_XY (volatile unsigned int *)((0x1946 << 2) + 0xff620000)
#define HCODEC_MC_OMDN_MB_XY (0x1947)
#define P_HCODEC_MC_OMDN_MB_XY (volatile unsigned int *)((0x1947 << 2) + 0xff620000)
#define HCODEC_MC_HCMDBUF_H (0x1948)
#define P_HCODEC_MC_HCMDBUF_H (volatile unsigned int *)((0x1948 << 2) + 0xff620000)
#define HCODEC_MC_HCMDBUF_L (0x1949)
#define P_HCODEC_MC_HCMDBUF_L (volatile unsigned int *)((0x1949 << 2) + 0xff620000)
#define HCODEC_MC_HCMD_H (0x194a)
#define P_HCODEC_MC_HCMD_H (volatile unsigned int *)((0x194a << 2) + 0xff620000)
#define HCODEC_MC_HCMD_L (0x194b)
#define P_HCODEC_MC_HCMD_L (volatile unsigned int *)((0x194b << 2) + 0xff620000)
#define HCODEC_MC_IDCT_DAT (0x194c)
#define P_HCODEC_MC_IDCT_DAT (volatile unsigned int *)((0x194c << 2) + 0xff620000)
#define HCODEC_MC_CTRL_GCLK_CTRL (0x194d)
#define P_HCODEC_MC_CTRL_GCLK_CTRL (volatile unsigned int *)((0x194d << 2) + 0xff620000)
#define HCODEC_MC_OTHER_GCLK_CTRL (0x194e)
#define P_HCODEC_MC_OTHER_GCLK_CTRL (volatile unsigned int *)((0x194e << 2) + 0xff620000)
//Bit 29:24, mbbot thread ID and token
//Bit 21:16, mc read/write thread ID and token
//Bit 13:8, mbbot pre-arbitor burst number
//Bit 5:0, mc pre-arbitor burst number
#define HCODEC_MC_CTRL2 (0x194f)
#define P_HCODEC_MC_CTRL2 (volatile unsigned int *)((0x194f << 2) + 0xff620000)
// `define DBLK_QUANT 8'h76 // ONLY for $ucode/real/amrisc/rv.s, reg value from apollo
//`define ANC1_CANVAS_ADDR 8'h80
//`define ANC2_CANVAS_ADDR 8'h81
//`define REC_CANVAS_ADDR 8'h89
//`define MDEC_PIC_W 8'h8c
//`define MDEC_PIC_H 8'h8d
// mdec_pic_dc_mux_ctrl[31] -- mcr_hevc_mode
#define HCODEC_MDEC_PIC_DC_MUX_CTRL (0x198d)
#define P_HCODEC_MDEC_PIC_DC_MUX_CTRL (volatile unsigned int *)((0x198d << 2) + 0xff620000)
#define HCODEC_MDEC_PIC_DC_CTRL (0x198e)
#define P_HCODEC_MDEC_PIC_DC_CTRL (volatile unsigned int *)((0x198e << 2) + 0xff620000)
#define HCODEC_MDEC_PIC_DC_STATUS (0x198f)
#define P_HCODEC_MDEC_PIC_DC_STATUS (volatile unsigned int *)((0x198f << 2) + 0xff620000)
#define HCODEC_ANC0_CANVAS_ADDR (0x1990)
#define P_HCODEC_ANC0_CANVAS_ADDR (volatile unsigned int *)((0x1990 << 2) + 0xff620000)
#define HCODEC_ANC1_CANVAS_ADDR (0x1991)
#define P_HCODEC_ANC1_CANVAS_ADDR (volatile unsigned int *)((0x1991 << 2) + 0xff620000)
#define HCODEC_ANC2_CANVAS_ADDR (0x1992)
#define P_HCODEC_ANC2_CANVAS_ADDR (volatile unsigned int *)((0x1992 << 2) + 0xff620000)
#define HCODEC_ANC3_CANVAS_ADDR (0x1993)
#define P_HCODEC_ANC3_CANVAS_ADDR (volatile unsigned int *)((0x1993 << 2) + 0xff620000)
#define HCODEC_ANC4_CANVAS_ADDR (0x1994)
#define P_HCODEC_ANC4_CANVAS_ADDR (volatile unsigned int *)((0x1994 << 2) + 0xff620000)
#define HCODEC_ANC5_CANVAS_ADDR (0x1995)
#define P_HCODEC_ANC5_CANVAS_ADDR (volatile unsigned int *)((0x1995 << 2) + 0xff620000)
#define HCODEC_ANC6_CANVAS_ADDR (0x1996)
#define P_HCODEC_ANC6_CANVAS_ADDR (volatile unsigned int *)((0x1996 << 2) + 0xff620000)
#define HCODEC_ANC7_CANVAS_ADDR (0x1997)
#define P_HCODEC_ANC7_CANVAS_ADDR (volatile unsigned int *)((0x1997 << 2) + 0xff620000)
#define HCODEC_ANC8_CANVAS_ADDR (0x1998)
#define P_HCODEC_ANC8_CANVAS_ADDR (volatile unsigned int *)((0x1998 << 2) + 0xff620000)
#define HCODEC_ANC9_CANVAS_ADDR (0x1999)
#define P_HCODEC_ANC9_CANVAS_ADDR (volatile unsigned int *)((0x1999 << 2) + 0xff620000)
#define HCODEC_ANC10_CANVAS_ADDR (0x199a)
#define P_HCODEC_ANC10_CANVAS_ADDR (volatile unsigned int *)((0x199a << 2) + 0xff620000)
#define HCODEC_ANC11_CANVAS_ADDR (0x199b)
#define P_HCODEC_ANC11_CANVAS_ADDR (volatile unsigned int *)((0x199b << 2) + 0xff620000)
#define HCODEC_ANC12_CANVAS_ADDR (0x199c)
#define P_HCODEC_ANC12_CANVAS_ADDR (volatile unsigned int *)((0x199c << 2) + 0xff620000)
#define HCODEC_ANC13_CANVAS_ADDR (0x199d)
#define P_HCODEC_ANC13_CANVAS_ADDR (volatile unsigned int *)((0x199d << 2) + 0xff620000)
#define HCODEC_ANC14_CANVAS_ADDR (0x199e)
#define P_HCODEC_ANC14_CANVAS_ADDR (volatile unsigned int *)((0x199e << 2) + 0xff620000)
#define HCODEC_ANC15_CANVAS_ADDR (0x199f)
#define P_HCODEC_ANC15_CANVAS_ADDR (volatile unsigned int *)((0x199f << 2) + 0xff620000)
#define HCODEC_ANC16_CANVAS_ADDR (0x19a0)
#define P_HCODEC_ANC16_CANVAS_ADDR (volatile unsigned int *)((0x19a0 << 2) + 0xff620000)
#define HCODEC_ANC17_CANVAS_ADDR (0x19a1)
#define P_HCODEC_ANC17_CANVAS_ADDR (volatile unsigned int *)((0x19a1 << 2) + 0xff620000)
#define HCODEC_ANC18_CANVAS_ADDR (0x19a2)
#define P_HCODEC_ANC18_CANVAS_ADDR (volatile unsigned int *)((0x19a2 << 2) + 0xff620000)
#define HCODEC_ANC19_CANVAS_ADDR (0x19a3)
#define P_HCODEC_ANC19_CANVAS_ADDR (volatile unsigned int *)((0x19a3 << 2) + 0xff620000)
#define HCODEC_ANC20_CANVAS_ADDR (0x19a4)
#define P_HCODEC_ANC20_CANVAS_ADDR (volatile unsigned int *)((0x19a4 << 2) + 0xff620000)
#define HCODEC_ANC21_CANVAS_ADDR (0x19a5)
#define P_HCODEC_ANC21_CANVAS_ADDR (volatile unsigned int *)((0x19a5 << 2) + 0xff620000)
#define HCODEC_ANC22_CANVAS_ADDR (0x19a6)
#define P_HCODEC_ANC22_CANVAS_ADDR (volatile unsigned int *)((0x19a6 << 2) + 0xff620000)
#define HCODEC_ANC23_CANVAS_ADDR (0x19a7)
#define P_HCODEC_ANC23_CANVAS_ADDR (volatile unsigned int *)((0x19a7 << 2) + 0xff620000)
#define HCODEC_ANC24_CANVAS_ADDR (0x19a8)
#define P_HCODEC_ANC24_CANVAS_ADDR (volatile unsigned int *)((0x19a8 << 2) + 0xff620000)
#define HCODEC_ANC25_CANVAS_ADDR (0x19a9)
#define P_HCODEC_ANC25_CANVAS_ADDR (volatile unsigned int *)((0x19a9 << 2) + 0xff620000)
#define HCODEC_ANC26_CANVAS_ADDR (0x19aa)
#define P_HCODEC_ANC26_CANVAS_ADDR (volatile unsigned int *)((0x19aa << 2) + 0xff620000)
#define HCODEC_ANC27_CANVAS_ADDR (0x19ab)
#define P_HCODEC_ANC27_CANVAS_ADDR (volatile unsigned int *)((0x19ab << 2) + 0xff620000)
#define HCODEC_ANC28_CANVAS_ADDR (0x19ac)
#define P_HCODEC_ANC28_CANVAS_ADDR (volatile unsigned int *)((0x19ac << 2) + 0xff620000)
#define HCODEC_ANC29_CANVAS_ADDR (0x19ad)
#define P_HCODEC_ANC29_CANVAS_ADDR (volatile unsigned int *)((0x19ad << 2) + 0xff620000)
#define HCODEC_ANC30_CANVAS_ADDR (0x19ae)
#define P_HCODEC_ANC30_CANVAS_ADDR (volatile unsigned int *)((0x19ae << 2) + 0xff620000)
#define HCODEC_ANC31_CANVAS_ADDR (0x19af)
#define P_HCODEC_ANC31_CANVAS_ADDR (volatile unsigned int *)((0x19af << 2) + 0xff620000)
#define HCODEC_DBKR_CANVAS_ADDR (0x19b0)
#define P_HCODEC_DBKR_CANVAS_ADDR (volatile unsigned int *)((0x19b0 << 2) + 0xff620000)
#define HCODEC_DBKW_CANVAS_ADDR (0x19b1)
#define P_HCODEC_DBKW_CANVAS_ADDR (volatile unsigned int *)((0x19b1 << 2) + 0xff620000)
#define HCODEC_REC_CANVAS_ADDR (0x19b2)
#define P_HCODEC_REC_CANVAS_ADDR (volatile unsigned int *)((0x19b2 << 2) + 0xff620000)
//28:24, read/write, current canvas idx, used in h264 only now
//23:0, read only, current canvas address, 23:16, Cr canvas addr, 15:8, Cb canvas addr, 7:0, Y canvas addr
#define HCODEC_CURR_CANVAS_CTRL (0x19b3)
#define P_HCODEC_CURR_CANVAS_CTRL (volatile unsigned int *)((0x19b3 << 2) + 0xff620000)
#define HCODEC_MDEC_PIC_DC_THRESH (0x19b8)
#define P_HCODEC_MDEC_PIC_DC_THRESH (volatile unsigned int *)((0x19b8 << 2) + 0xff620000)
#define HCODEC_MDEC_PICR_BUF_STATUS (0x19b9)
#define P_HCODEC_MDEC_PICR_BUF_STATUS (volatile unsigned int *)((0x19b9 << 2) + 0xff620000)
#define HCODEC_MDEC_PICW_BUF_STATUS (0x19ba)
#define P_HCODEC_MDEC_PICW_BUF_STATUS (volatile unsigned int *)((0x19ba << 2) + 0xff620000)
#define HCODEC_MCW_DBLK_WRRSP_CNT (0x19bb)
#define P_HCODEC_MCW_DBLK_WRRSP_CNT (volatile unsigned int *)((0x19bb << 2) + 0xff620000)
#define HCODEC_MC_MBBOT_WRRSP_CNT (0x19bc)
#define P_HCODEC_MC_MBBOT_WRRSP_CNT (volatile unsigned int *)((0x19bc << 2) + 0xff620000)
#define HCODEC_MDEC_PICW_BUF2_STATUS (0x19bd)
#define P_HCODEC_MDEC_PICW_BUF2_STATUS (volatile unsigned int *)((0x19bd << 2) + 0xff620000)
#define HCODEC_WRRSP_FIFO_PICW_DBK (0x19be)
#define P_HCODEC_WRRSP_FIFO_PICW_DBK (volatile unsigned int *)((0x19be << 2) + 0xff620000)
#define HCODEC_WRRSP_FIFO_PICW_MC (0x19bf)
#define P_HCODEC_WRRSP_FIFO_PICW_MC (volatile unsigned int *)((0x19bf << 2) + 0xff620000)
#define HCODEC_AV_SCRATCH_0 (0x19c0)
#define P_HCODEC_AV_SCRATCH_0 (volatile unsigned int *)((0x19c0 << 2) + 0xff620000)
#define HCODEC_AV_SCRATCH_1 (0x19c1)
#define P_HCODEC_AV_SCRATCH_1 (volatile unsigned int *)((0x19c1 << 2) + 0xff620000)
#define HCODEC_AV_SCRATCH_2 (0x19c2)
#define P_HCODEC_AV_SCRATCH_2 (volatile unsigned int *)((0x19c2 << 2) + 0xff620000)
#define HCODEC_AV_SCRATCH_3 (0x19c3)
#define P_HCODEC_AV_SCRATCH_3 (volatile unsigned int *)((0x19c3 << 2) + 0xff620000)
#define HCODEC_AV_SCRATCH_4 (0x19c4)
#define P_HCODEC_AV_SCRATCH_4 (volatile unsigned int *)((0x19c4 << 2) + 0xff620000)
#define HCODEC_AV_SCRATCH_5 (0x19c5)
#define P_HCODEC_AV_SCRATCH_5 (volatile unsigned int *)((0x19c5 << 2) + 0xff620000)
#define HCODEC_AV_SCRATCH_6 (0x19c6)
#define P_HCODEC_AV_SCRATCH_6 (volatile unsigned int *)((0x19c6 << 2) + 0xff620000)
#define HCODEC_AV_SCRATCH_7 (0x19c7)
#define P_HCODEC_AV_SCRATCH_7 (volatile unsigned int *)((0x19c7 << 2) + 0xff620000)
#define HCODEC_AV_SCRATCH_8 (0x19c8)
#define P_HCODEC_AV_SCRATCH_8 (volatile unsigned int *)((0x19c8 << 2) + 0xff620000)
#define HCODEC_AV_SCRATCH_9 (0x19c9)
#define P_HCODEC_AV_SCRATCH_9 (volatile unsigned int *)((0x19c9 << 2) + 0xff620000)
#define HCODEC_AV_SCRATCH_A (0x19ca)
#define P_HCODEC_AV_SCRATCH_A (volatile unsigned int *)((0x19ca << 2) + 0xff620000)
#define HCODEC_AV_SCRATCH_B (0x19cb)
#define P_HCODEC_AV_SCRATCH_B (volatile unsigned int *)((0x19cb << 2) + 0xff620000)
#define HCODEC_AV_SCRATCH_C (0x19cc)
#define P_HCODEC_AV_SCRATCH_C (volatile unsigned int *)((0x19cc << 2) + 0xff620000)
#define HCODEC_AV_SCRATCH_D (0x19cd)
#define P_HCODEC_AV_SCRATCH_D (volatile unsigned int *)((0x19cd << 2) + 0xff620000)
#define HCODEC_AV_SCRATCH_E (0x19ce)
#define P_HCODEC_AV_SCRATCH_E (volatile unsigned int *)((0x19ce << 2) + 0xff620000)
#define HCODEC_AV_SCRATCH_F (0x19cf)
#define P_HCODEC_AV_SCRATCH_F (volatile unsigned int *)((0x19cf << 2) + 0xff620000)
#define HCODEC_AV_SCRATCH_G (0x19d0)
#define P_HCODEC_AV_SCRATCH_G (volatile unsigned int *)((0x19d0 << 2) + 0xff620000)
#define HCODEC_AV_SCRATCH_H (0x19d1)
#define P_HCODEC_AV_SCRATCH_H (volatile unsigned int *)((0x19d1 << 2) + 0xff620000)
#define HCODEC_AV_SCRATCH_I (0x19d2)
#define P_HCODEC_AV_SCRATCH_I (volatile unsigned int *)((0x19d2 << 2) + 0xff620000)
#define HCODEC_AV_SCRATCH_J (0x19d3)
#define P_HCODEC_AV_SCRATCH_J (volatile unsigned int *)((0x19d3 << 2) + 0xff620000)
#define HCODEC_AV_SCRATCH_K (0x19d4)
#define P_HCODEC_AV_SCRATCH_K (volatile unsigned int *)((0x19d4 << 2) + 0xff620000)
#define HCODEC_AV_SCRATCH_L (0x19d5)
#define P_HCODEC_AV_SCRATCH_L (volatile unsigned int *)((0x19d5 << 2) + 0xff620000)
#define HCODEC_AV_SCRATCH_M (0x19d6)
#define P_HCODEC_AV_SCRATCH_M (volatile unsigned int *)((0x19d6 << 2) + 0xff620000)
#define HCODEC_AV_SCRATCH_N (0x19d7)
#define P_HCODEC_AV_SCRATCH_N (volatile unsigned int *)((0x19d7 << 2) + 0xff620000)
// bit[29:24] A_brst_num_co_mb
// bit[21:16] A_id_co_mb
// bit[11:0] wrrsp_count_co_mb
#define HCODEC_WRRSP_CO_MB (0x19d8)
#define P_HCODEC_WRRSP_CO_MB (volatile unsigned int *)((0x19d8 << 2) + 0xff620000)
// bit[29:24] A_brst_num_dcac
// bit[21:16] A_id_dcac
// bit[11:0] wrrsp_count_dcac
#define HCODEC_WRRSP_DCAC (0x19d9)
#define P_HCODEC_WRRSP_DCAC (volatile unsigned int *)((0x19d9 << 2) + 0xff620000)
// bit[11:0] wrrsp_count_vld
#define HCODEC_WRRSP_VLD (0x19da)
#define P_HCODEC_WRRSP_VLD (volatile unsigned int *)((0x19da << 2) + 0xff620000)
// doublew_cfg0[0]; // Second Channel Enable, 1:Enable 0:Disable
// doublew_cfg0[3:1]; // [2:0] Endian Control for Luma
// doublew_cfg0[5:4]; // [1:0] Pixel sel by horizontal, 0x:1/2 10:left 11:right
// doublew_cfg0[7:6]; // [1:0] Pixel sel by vertical, 0x:1/2 10:up 11:down
// doublew_cfg0[8]; // Size by horizontal, 0:original size 1: 1/2 shrunken size
// doublew_cfg0[9]; // Size by vertical, 0:original size 1: 1/2 shrunken size
// doublew_cfg0[10]; // 1:Round 0:Truncation
// doublew_cfg0[11]; // DMA Urgent
// doublew_cfg0[17:12]; // [5:0] DMA Burst Number
// doublew_cfg0[23:18]; // [5:0] DMA ID
// doublew_cfg0[26:24]; // [2:0] Endian Control for Chroma
// doublew_cfg0[27]; // Source from, 1:MCW 0:DBLK
// doublew_cfg0[29:28]; // [1:0] 0x:select both top and bottom 10:select top 11:select bottom
// doublew_cfg0[30]; // 0:no merge 1:automatic merge
// doublew_cfg0[31]; // 0:Y addr no change 1:Y addr divided to half
#define HCODEC_MDEC_DOUBLEW_CFG0 (0x19db)
#define P_HCODEC_MDEC_DOUBLEW_CFG0 (volatile unsigned int *)((0x19db << 2) + 0xff620000)
// doublew_cfg1[7:0]; // [7:0] DMA Canvas Address for Luma
// doublew_cfg1[15:8]; // [7:0] DMA Canvas Address for Chroma
// doublew_cfg1[16]; // Disable 1st Write -
// doublew_cfg1[17]; // Reverse to original version -
// doublew_cfg1[18]; // DMA Address Mode - 0:Canvas Mode 1:Non-Canvas Mode
#define HCODEC_MDEC_DOUBLEW_CFG1 (0x19dc)
#define P_HCODEC_MDEC_DOUBLEW_CFG1 (volatile unsigned int *)((0x19dc << 2) + 0xff620000)
// doublew_cfg2[11:0]; //[11:0] vertical flip initial value
// doublew_cfg2[15]; // vertical flip enable
// doublew_cfg2[24:16]; // [8:0] horizontal flip initial value
// doublew_cfg2[31]; // horizontal flip enable
#define HCODEC_MDEC_DOUBLEW_CFG2 (0x19dd)
#define P_HCODEC_MDEC_DOUBLEW_CFG2 (volatile unsigned int *)((0x19dd << 2) + 0xff620000)
// doublew_cfg3[31:0]; //[31:0] non-canvas start address for Luma -
#define HCODEC_MDEC_DOUBLEW_CFG3 (0x19de)
#define P_HCODEC_MDEC_DOUBLEW_CFG3 (volatile unsigned int *)((0x19de << 2) + 0xff620000)
// doublew_cfg4[31:0]; //[31:0] non-canvas start address for Chroma -
#define HCODEC_MDEC_DOUBLEW_CFG4 (0x19df)
#define P_HCODEC_MDEC_DOUBLEW_CFG4 (volatile unsigned int *)((0x19df << 2) + 0xff620000)
// doublew_cfg5[12:0]; //[12:0] non-canvas picture width for Luma -
// doublew_cfg5[28:16]; //[12:0] non-canvas picture width for Chroma -
#define HCODEC_MDEC_DOUBLEW_CFG5 (0x19e0)
#define P_HCODEC_MDEC_DOUBLEW_CFG5 (volatile unsigned int *)((0x19e0 << 2) + 0xff620000)
// doublew_cfg6: reserved
#define HCODEC_MDEC_DOUBLEW_CFG6 (0x19e1)
#define P_HCODEC_MDEC_DOUBLEW_CFG6 (volatile unsigned int *)((0x19e1 << 2) + 0xff620000)
// doublew_cfg7: reserved
#define HCODEC_MDEC_DOUBLEW_CFG7 (0x19e2)
#define P_HCODEC_MDEC_DOUBLEW_CFG7 (volatile unsigned int *)((0x19e2 << 2) + 0xff620000)
// doublew_status[11:0];//[11:0] wrrsp_count_doublew
// doublew_status[12]; // doublew_status_busy
// doublew_status[13]; // doublew_status_error
#define HCODEC_MDEC_DOUBLEW_STATUS (0x19e3)
#define P_HCODEC_MDEC_DOUBLEW_STATUS (volatile unsigned int *)((0x19e3 << 2) + 0xff620000)
#define HCODEC_MDEC_EXTIF_CFG0 (0x19e4)
#define P_HCODEC_MDEC_EXTIF_CFG0 (volatile unsigned int *)((0x19e4 << 2) + 0xff620000)
#define HCODEC_MDEC_EXTIF_CFG1 (0x19e5)
#define P_HCODEC_MDEC_EXTIF_CFG1 (volatile unsigned int *)((0x19e5 << 2) + 0xff620000)
#define HCODEC_MDEC_EXTIF_STS0 (0x19e6)
#define P_HCODEC_MDEC_EXTIF_STS0 (volatile unsigned int *)((0x19e6 << 2) + 0xff620000)
//======================================
// MC Control Register Bits
//
//======================================
// For bits, just copy the defines...don't translate to addresses
//`define MC_RESET 16'h0002
//======================================
// MB Info Register Bits
//
//======================================
//======================================
// MB Info Register Bits
//
//======================================
//========================================================================
// DBLK Register: 12'h950 - 12'h97f
//========================================================================
#define HCODEC_DBLK_RST (0x1950)
#define P_HCODEC_DBLK_RST (volatile unsigned int *)((0x1950 << 2) + 0xff620000)
#define HCODEC_DBLK_CTRL (0x1951)
#define P_HCODEC_DBLK_CTRL (volatile unsigned int *)((0x1951 << 2) + 0xff620000)
#define HCODEC_DBLK_MB_WID_HEIGHT (0x1952)
#define P_HCODEC_DBLK_MB_WID_HEIGHT (volatile unsigned int *)((0x1952 << 2) + 0xff620000)
#define HCODEC_DBLK_STATUS (0x1953)
#define P_HCODEC_DBLK_STATUS (volatile unsigned int *)((0x1953 << 2) + 0xff620000)
#define HCODEC_DBLK_CMD_CTRL (0x1954)
#define P_HCODEC_DBLK_CMD_CTRL (volatile unsigned int *)((0x1954 << 2) + 0xff620000)
#define HCODEC_DBLK_MB_XY (0x1955)
#define P_HCODEC_DBLK_MB_XY (volatile unsigned int *)((0x1955 << 2) + 0xff620000)
#define HCODEC_DBLK_QP (0x1956)
#define P_HCODEC_DBLK_QP (volatile unsigned int *)((0x1956 << 2) + 0xff620000)
#define HCODEC_DBLK_Y_BHFILT (0x1957)
#define P_HCODEC_DBLK_Y_BHFILT (volatile unsigned int *)((0x1957 << 2) + 0xff620000)
#define HCODEC_DBLK_Y_BHFILT_HIGH (0x1958)
#define P_HCODEC_DBLK_Y_BHFILT_HIGH (volatile unsigned int *)((0x1958 << 2) + 0xff620000)
#define HCODEC_DBLK_Y_BVFILT (0x1959)
#define P_HCODEC_DBLK_Y_BVFILT (volatile unsigned int *)((0x1959 << 2) + 0xff620000)
#define HCODEC_DBLK_CB_BFILT (0x195a)
#define P_HCODEC_DBLK_CB_BFILT (volatile unsigned int *)((0x195a << 2) + 0xff620000)
#define HCODEC_DBLK_CR_BFILT (0x195b)
#define P_HCODEC_DBLK_CR_BFILT (volatile unsigned int *)((0x195b << 2) + 0xff620000)
#define HCODEC_DBLK_Y_HFILT (0x195c)
#define P_HCODEC_DBLK_Y_HFILT (volatile unsigned int *)((0x195c << 2) + 0xff620000)
#define HCODEC_DBLK_Y_HFILT_HIGH (0x195d)
#define P_HCODEC_DBLK_Y_HFILT_HIGH (volatile unsigned int *)((0x195d << 2) + 0xff620000)
#define HCODEC_DBLK_Y_VFILT (0x195e)
#define P_HCODEC_DBLK_Y_VFILT (volatile unsigned int *)((0x195e << 2) + 0xff620000)
#define HCODEC_DBLK_CB_FILT (0x195f)
#define P_HCODEC_DBLK_CB_FILT (volatile unsigned int *)((0x195f << 2) + 0xff620000)
#define HCODEC_DBLK_CR_FILT (0x1960)
#define P_HCODEC_DBLK_CR_FILT (volatile unsigned int *)((0x1960 << 2) + 0xff620000)
#define HCODEC_DBLK_BETAX_QP_SEL (0x1961)
#define P_HCODEC_DBLK_BETAX_QP_SEL (volatile unsigned int *)((0x1961 << 2) + 0xff620000)
#define HCODEC_DBLK_CLIP_CTRL0 (0x1962)
#define P_HCODEC_DBLK_CLIP_CTRL0 (volatile unsigned int *)((0x1962 << 2) + 0xff620000)
#define HCODEC_DBLK_CLIP_CTRL1 (0x1963)
#define P_HCODEC_DBLK_CLIP_CTRL1 (volatile unsigned int *)((0x1963 << 2) + 0xff620000)
#define HCODEC_DBLK_CLIP_CTRL2 (0x1964)
#define P_HCODEC_DBLK_CLIP_CTRL2 (volatile unsigned int *)((0x1964 << 2) + 0xff620000)
#define HCODEC_DBLK_CLIP_CTRL3 (0x1965)
#define P_HCODEC_DBLK_CLIP_CTRL3 (volatile unsigned int *)((0x1965 << 2) + 0xff620000)
#define HCODEC_DBLK_CLIP_CTRL4 (0x1966)
#define P_HCODEC_DBLK_CLIP_CTRL4 (volatile unsigned int *)((0x1966 << 2) + 0xff620000)
#define HCODEC_DBLK_CLIP_CTRL5 (0x1967)
#define P_HCODEC_DBLK_CLIP_CTRL5 (volatile unsigned int *)((0x1967 << 2) + 0xff620000)
#define HCODEC_DBLK_CLIP_CTRL6 (0x1968)
#define P_HCODEC_DBLK_CLIP_CTRL6 (volatile unsigned int *)((0x1968 << 2) + 0xff620000)
#define HCODEC_DBLK_CLIP_CTRL7 (0x1969)
#define P_HCODEC_DBLK_CLIP_CTRL7 (volatile unsigned int *)((0x1969 << 2) + 0xff620000)
#define HCODEC_DBLK_CLIP_CTRL8 (0x196a)
#define P_HCODEC_DBLK_CLIP_CTRL8 (volatile unsigned int *)((0x196a << 2) + 0xff620000)
#define HCODEC_DBLK_STATUS1 (0x196b)
#define P_HCODEC_DBLK_STATUS1 (volatile unsigned int *)((0x196b << 2) + 0xff620000)
#define HCODEC_DBLK_GCLK_FREE (0x196c)
#define P_HCODEC_DBLK_GCLK_FREE (volatile unsigned int *)((0x196c << 2) + 0xff620000)
#define HCODEC_DBLK_GCLK_OFF (0x196d)
#define P_HCODEC_DBLK_GCLK_OFF (volatile unsigned int *)((0x196d << 2) + 0xff620000)
#define HCODEC_DBLK_AVSFLAGS (0x196e)
#define P_HCODEC_DBLK_AVSFLAGS (volatile unsigned int *)((0x196e << 2) + 0xff620000)
// bit 15:0
#define HCODEC_DBLK_CBPY (0x1970)
#define P_HCODEC_DBLK_CBPY (volatile unsigned int *)((0x1970 << 2) + 0xff620000)
// bit 11:8 -- deblk_cbpy_bottom
// bit 7:4 -- deblk_cbpy_left
// bit 3:0 -- deblk_cbpy_top
#define HCODEC_DBLK_CBPY_ADJ (0x1971)
#define P_HCODEC_DBLK_CBPY_ADJ (volatile unsigned int *)((0x1971 << 2) + 0xff620000)
// bit 7:0 -- deblk_cbpc
#define HCODEC_DBLK_CBPC (0x1972)
#define P_HCODEC_DBLK_CBPC (volatile unsigned int *)((0x1972 << 2) + 0xff620000)
// bit 15 -- bottom_mb
// bit 14 -- left_mb
// bit 13 -- top_mb
// bit 12 -- reserved
// bit 11:8 -- deblk_cbpc_bottom
// bit 7:4 -- deblk_cbpc_left
// bit 3:0 -- deblk_cbpc_top
#define HCODEC_DBLK_CBPC_ADJ (0x1973)
#define P_HCODEC_DBLK_CBPC_ADJ (volatile unsigned int *)((0x1973 << 2) + 0xff620000)
// bit 15:8 -- deblk_hmvd -- {left_1, left_0, below_1, below_0, block3-0}
// bit 7:0 -- deblk_vmvd -- {top_1, top_0, below_1, below_0, block3-0}
#define HCODEC_DBLK_VHMVD (0x1974)
#define P_HCODEC_DBLK_VHMVD (volatile unsigned int *)((0x1974 << 2) + 0xff620000)
// bit 13:12 -- right_vmvd
// bit 11 -- right_above_vmvd
// bit 10 -- left_below_hmvd
// bit 9 -- disable_dblk_luma
// bit 8 -- disable_dblk_chroma
// bit 7 -- bBelowRefDiff
// bit 6 -- bLeftRefDiff
// bit 5 -- bAboveRefDiff
// bit 4 -- reserved
// bit 3 -- s_below
// bit 2 -- s_left
// bit 1 -- s_above
// bit 0 -- s
#define HCODEC_DBLK_STRONG (0x1975)
#define P_HCODEC_DBLK_STRONG (volatile unsigned int *)((0x1975 << 2) + 0xff620000)
// bit 14:10 -- PQUANT
// bit 9:5 -- left_PQUANT
// bit 4:0 -- top_PQUANT
#define HCODEC_DBLK_RV8_QUANT (0x1976)
#define P_HCODEC_DBLK_RV8_QUANT (volatile unsigned int *)((0x1976 << 2) + 0xff620000)
#define HCODEC_DBLK_CBUS_HCMD2 (0x1977)
#define P_HCODEC_DBLK_CBUS_HCMD2 (volatile unsigned int *)((0x1977 << 2) + 0xff620000)
#define HCODEC_DBLK_CBUS_HCMD1 (0x1978)
#define P_HCODEC_DBLK_CBUS_HCMD1 (volatile unsigned int *)((0x1978 << 2) + 0xff620000)
#define HCODEC_DBLK_CBUS_HCMD0 (0x1979)
#define P_HCODEC_DBLK_CBUS_HCMD0 (volatile unsigned int *)((0x1979 << 2) + 0xff620000)
#define HCODEC_DBLK_VLD_HCMD2 (0x197a)
#define P_HCODEC_DBLK_VLD_HCMD2 (volatile unsigned int *)((0x197a << 2) + 0xff620000)
#define HCODEC_DBLK_VLD_HCMD1 (0x197b)
#define P_HCODEC_DBLK_VLD_HCMD1 (volatile unsigned int *)((0x197b << 2) + 0xff620000)
#define HCODEC_DBLK_VLD_HCMD0 (0x197c)
#define P_HCODEC_DBLK_VLD_HCMD0 (volatile unsigned int *)((0x197c << 2) + 0xff620000)
#define HCODEC_DBLK_OST_YBASE (0x197d)
#define P_HCODEC_DBLK_OST_YBASE (volatile unsigned int *)((0x197d << 2) + 0xff620000)
#define HCODEC_DBLK_OST_CBCRDIFF (0x197e)
#define P_HCODEC_DBLK_OST_CBCRDIFF (volatile unsigned int *)((0x197e << 2) + 0xff620000)
//13:8 dblk thread ID and token
//5:0 dblk prearbitor burst num
#define HCODEC_DBLK_CTRL1 (0x197f)
#define P_HCODEC_DBLK_CTRL1 (volatile unsigned int *)((0x197f << 2) + 0xff620000)
// MCRCC_CTL1
// 31:3 <reserved[23:0]>
// 2 <cfg_field_pic>
// 1 <sw_rst>
// 0 <bypass_en>
#define HCODEC_MCRCC_CTL1 (0x1980)
#define P_HCODEC_MCRCC_CTL1 (volatile unsigned int *)((0x1980 << 2) + 0xff620000)
// MCRCC_CTL2
// 31:24 <cfg_cache_anc01_c[7:0]>
// 23:16 <cfg_cache_anc01_y[7:0]>
// 15:8 <cfg_cache_anc00_c[7:0]>
// 7:0 <cfg_cache_anc00_y[7:0]>
#define HCODEC_MCRCC_CTL2 (0x1981)
#define P_HCODEC_MCRCC_CTL2 (volatile unsigned int *)((0x1981 << 2) + 0xff620000)
// MCRCC_CTL3
// 31:24 <cfg_cache_anc11_c[7:0]>
// 23:16 <cfg_cache_anc11_y[7:0]>
// 15:8 <cfg_cache_anc10_c[7:0]>
// 7:0 <cfg_cache_anc10_y[7:0]>
#define HCODEC_MCRCC_CTL3 (0x1982)
#define P_HCODEC_MCRCC_CTL3 (volatile unsigned int *)((0x1982 << 2) + 0xff620000)
// bit[31:10] reserved
// bit[9:0] sw_clock_gating control
// [9] vdec clk_en for assist and cbus.
// [8] vdec clk_en for ddr
// [7] vdec clk_en for vcpu
// [6] vdec clk_en for assist
// [5] vdec clk_en for dblk
// [4] vdec clk_en for iqidct
// [3] vdec clk_en for mc
// [2] vdec clk_en for pic_dc
// [1] vdec clk_en for psc
// [0] vdec clk_en for vld
#define HCODEC_GCLK_EN (0x1983)
#define P_HCODEC_GCLK_EN (volatile unsigned int *)((0x1983 << 2) + 0xff620000)
// [0] Reserved
// [1] Reserved
// [2] Reset assist, mdec's CBUS
// [3] Reset mdec's VLD
// [4] Reset mdec's VLD
// [5] Reset mdec's VLD
// [6] Reset mdec's IQIDCT
// [7] Reset mdec's MC
// [8] Reset mdec's DBLK
// [9] Reset mdec's PIC_DC
// [10] Reset mdec's Pscale
// [11] Reset vcpu's MCPU
// [12] Reset vcpu's CCPU
// [13] Reset mmc_pre_arb
#define HCODEC_MDEC_SW_RESET (0x1984)
#define P_HCODEC_MDEC_SW_RESET (volatile unsigned int *)((0x1984 << 2) + 0xff620000)
//DBLK last address 12'h97f
//
// Closing file: mdec_regs.h
//
//
// Reading file: mdec_regs.h
//
//========================================================================
// MDEC module level register offset
//========================================================================
// -----------------------------------------------
// CBUS_BASE: DOS_VDEC_MDEC_CBUS_BASE = 0x09
// -----------------------------------------------
#define VDEC2_MC_CTRL_REG (0x2900)
#define P_VDEC2_MC_CTRL_REG (volatile unsigned int *)((0x2900 << 2) + 0xff620000)
#define VDEC2_MC_MB_INFO (0x2901)
#define P_VDEC2_MC_MB_INFO (volatile unsigned int *)((0x2901 << 2) + 0xff620000)
#define VDEC2_MC_PIC_INFO (0x2902)
#define P_VDEC2_MC_PIC_INFO (volatile unsigned int *)((0x2902 << 2) + 0xff620000)
#define VDEC2_MC_HALF_PEL_ONE (0x2903)
#define P_VDEC2_MC_HALF_PEL_ONE (volatile unsigned int *)((0x2903 << 2) + 0xff620000)
#define VDEC2_MC_HALF_PEL_TWO (0x2904)
#define P_VDEC2_MC_HALF_PEL_TWO (volatile unsigned int *)((0x2904 << 2) + 0xff620000)
#define VDEC2_POWER_CTL_MC (0x2905)
#define P_VDEC2_POWER_CTL_MC (volatile unsigned int *)((0x2905 << 2) + 0xff620000)
#define VDEC2_MC_CMD (0x2906)
#define P_VDEC2_MC_CMD (volatile unsigned int *)((0x2906 << 2) + 0xff620000)
#define VDEC2_MC_CTRL0 (0x2907)
#define P_VDEC2_MC_CTRL0 (volatile unsigned int *)((0x2907 << 2) + 0xff620000)
#define VDEC2_MC_PIC_W_H (0x2908)
#define P_VDEC2_MC_PIC_W_H (volatile unsigned int *)((0x2908 << 2) + 0xff620000)
#define VDEC2_MC_STATUS0 (0x2909)
#define P_VDEC2_MC_STATUS0 (volatile unsigned int *)((0x2909 << 2) + 0xff620000)
#define VDEC2_MC_STATUS1 (0x290a)
#define P_VDEC2_MC_STATUS1 (volatile unsigned int *)((0x290a << 2) + 0xff620000)
#define VDEC2_MC_CTRL1 (0x290b)
#define P_VDEC2_MC_CTRL1 (volatile unsigned int *)((0x290b << 2) + 0xff620000)
#define VDEC2_MC_MIX_RATIO0 (0x290c)
#define P_VDEC2_MC_MIX_RATIO0 (volatile unsigned int *)((0x290c << 2) + 0xff620000)
#define VDEC2_MC_MIX_RATIO1 (0x290d)
#define P_VDEC2_MC_MIX_RATIO1 (volatile unsigned int *)((0x290d << 2) + 0xff620000)
#define VDEC2_MC_DP_MB_XY (0x290e)
#define P_VDEC2_MC_DP_MB_XY (volatile unsigned int *)((0x290e << 2) + 0xff620000)
#define VDEC2_MC_OM_MB_XY (0x290f)
#define P_VDEC2_MC_OM_MB_XY (volatile unsigned int *)((0x290f << 2) + 0xff620000)
#define VDEC2_PSCALE_RST (0x2910)
#define P_VDEC2_PSCALE_RST (volatile unsigned int *)((0x2910 << 2) + 0xff620000)
#define VDEC2_PSCALE_CTRL (0x2911)
#define P_VDEC2_PSCALE_CTRL (volatile unsigned int *)((0x2911 << 2) + 0xff620000)
#define VDEC2_PSCALE_PICI_W (0x2912)
#define P_VDEC2_PSCALE_PICI_W (volatile unsigned int *)((0x2912 << 2) + 0xff620000)
#define VDEC2_PSCALE_PICI_H (0x2913)
#define P_VDEC2_PSCALE_PICI_H (volatile unsigned int *)((0x2913 << 2) + 0xff620000)
#define VDEC2_PSCALE_PICO_W (0x2914)
#define P_VDEC2_PSCALE_PICO_W (volatile unsigned int *)((0x2914 << 2) + 0xff620000)
#define VDEC2_PSCALE_PICO_H (0x2915)
#define P_VDEC2_PSCALE_PICO_H (volatile unsigned int *)((0x2915 << 2) + 0xff620000)
#define VDEC2_PSCALE_PICO_START_X (0x2916)
#define P_VDEC2_PSCALE_PICO_START_X (volatile unsigned int *)((0x2916 << 2) + 0xff620000)
#define VDEC2_PSCALE_PICO_START_Y (0x2917)
#define P_VDEC2_PSCALE_PICO_START_Y (volatile unsigned int *)((0x2917 << 2) + 0xff620000)
#define VDEC2_PSCALE_DUMMY (0x2918)
#define P_VDEC2_PSCALE_DUMMY (volatile unsigned int *)((0x2918 << 2) + 0xff620000)
#define VDEC2_PSCALE_FILT0_COEF0 (0x2919)
#define P_VDEC2_PSCALE_FILT0_COEF0 (volatile unsigned int *)((0x2919 << 2) + 0xff620000)
#define VDEC2_PSCALE_FILT0_COEF1 (0x291a)
#define P_VDEC2_PSCALE_FILT0_COEF1 (volatile unsigned int *)((0x291a << 2) + 0xff620000)
#define VDEC2_PSCALE_CMD_CTRL (0x291b)
#define P_VDEC2_PSCALE_CMD_CTRL (volatile unsigned int *)((0x291b << 2) + 0xff620000)
#define VDEC2_PSCALE_CMD_BLK_X (0x291c)
#define P_VDEC2_PSCALE_CMD_BLK_X (volatile unsigned int *)((0x291c << 2) + 0xff620000)
#define VDEC2_PSCALE_CMD_BLK_Y (0x291d)
#define P_VDEC2_PSCALE_CMD_BLK_Y (volatile unsigned int *)((0x291d << 2) + 0xff620000)
#define VDEC2_PSCALE_STATUS (0x291e)
#define P_VDEC2_PSCALE_STATUS (volatile unsigned int *)((0x291e << 2) + 0xff620000)
#define VDEC2_PSCALE_BMEM_ADDR (0x291f)
#define P_VDEC2_PSCALE_BMEM_ADDR (volatile unsigned int *)((0x291f << 2) + 0xff620000)
#define VDEC2_PSCALE_BMEM_DAT (0x2920)
#define P_VDEC2_PSCALE_BMEM_DAT (volatile unsigned int *)((0x2920 << 2) + 0xff620000)
#define VDEC2_PSCALE_DRAM_BUF_CTRL (0x2921)
#define P_VDEC2_PSCALE_DRAM_BUF_CTRL (volatile unsigned int *)((0x2921 << 2) + 0xff620000)
#define VDEC2_PSCALE_MCMD_CTRL (0x2922)
#define P_VDEC2_PSCALE_MCMD_CTRL (volatile unsigned int *)((0x2922 << 2) + 0xff620000)
#define VDEC2_PSCALE_MCMD_XSIZE (0x2923)
#define P_VDEC2_PSCALE_MCMD_XSIZE (volatile unsigned int *)((0x2923 << 2) + 0xff620000)
#define VDEC2_PSCALE_MCMD_YSIZE (0x2924)
#define P_VDEC2_PSCALE_MCMD_YSIZE (volatile unsigned int *)((0x2924 << 2) + 0xff620000)
#define VDEC2_PSCALE_RBUF_START_BLKX (0x2925)
#define P_VDEC2_PSCALE_RBUF_START_BLKX (volatile unsigned int *)((0x2925 << 2) + 0xff620000)
#define VDEC2_PSCALE_RBUF_START_BLKY (0x2926)
#define P_VDEC2_PSCALE_RBUF_START_BLKY (volatile unsigned int *)((0x2926 << 2) + 0xff620000)
//`define PSCALE_RBUF_MB_WIDTH 8'h27
#define VDEC2_PSCALE_PICO_SHIFT_XY (0x2928)
#define P_VDEC2_PSCALE_PICO_SHIFT_XY (volatile unsigned int *)((0x2928 << 2) + 0xff620000)
#define VDEC2_PSCALE_CTRL1 (0x2929)
#define P_VDEC2_PSCALE_CTRL1 (volatile unsigned int *)((0x2929 << 2) + 0xff620000)
//Bit 15, wmask enable
//Bit 14:13, filt0 srckey_less,
//Bit 12:11, filt1 srckey_less, in the case of the interpolated data is equal distance to
//key data and normal data, 00: select normal data, 01: select right data, 10: select key data
//Bit 10:9, srckey mode, 00: equal, 01: less than or equal, 10: great than or equal
//Bit 8, src key enable
//Bit 7:0, y src key
#define VDEC2_PSCALE_SRCKEY_CTRL0 (0x292a)
#define P_VDEC2_PSCALE_SRCKEY_CTRL0 (volatile unsigned int *)((0x292a << 2) + 0xff620000)
//Bit 15:8, cb src key
//Bit 7:0, cr src key
#define VDEC2_PSCALE_SRCKEY_CTRL1 (0x292b)
#define P_VDEC2_PSCALE_SRCKEY_CTRL1 (volatile unsigned int *)((0x292b << 2) + 0xff620000)
//Bit 22:16 canvas_rd_addr2
//Bit 14:8 canvas_rd_addr1
//Bit 6:0 canvas_rd_addr1
#define VDEC2_PSCALE_CANVAS_RD_ADDR (0x292c)
#define P_VDEC2_PSCALE_CANVAS_RD_ADDR (volatile unsigned int *)((0x292c << 2) + 0xff620000)
//Bit 22:16 canvas_wr_addr2
//Bit 14:8 canvas_wr_addr1
//Bit 6:0 canvas_wr_addr1
#define VDEC2_PSCALE_CANVAS_WR_ADDR (0x292d)
#define P_VDEC2_PSCALE_CANVAS_WR_ADDR (volatile unsigned int *)((0x292d << 2) + 0xff620000)
//bit 13:8 pscale thread ID and token
//bit 7 disable write response count adding to busy bit
//bit 5:0 pscale prearbitor burst num
#define VDEC2_PSCALE_CTRL2 (0x292e)
#define P_VDEC2_PSCALE_CTRL2 (volatile unsigned int *)((0x292e << 2) + 0xff620000)
// 31 - use_omem_mb_xy_auto
//23:16 - omem_max_mb_x
//15:8 - omem_mb_y_auto
// 7:0 - omem_mb_x_auto
#define VDEC2_HDEC_MC_OMEM_AUTO (0x2930)
#define P_VDEC2_HDEC_MC_OMEM_AUTO (volatile unsigned int *)((0x2930 << 2) + 0xff620000)
#define VDEC2_HDEC_MC_MBRIGHT_IDX (0x2931)
#define P_VDEC2_HDEC_MC_MBRIGHT_IDX (volatile unsigned int *)((0x2931 << 2) + 0xff620000)
#define VDEC2_HDEC_MC_MBRIGHT_RD (0x2932)
#define P_VDEC2_HDEC_MC_MBRIGHT_RD (volatile unsigned int *)((0x2932 << 2) + 0xff620000)
#define VDEC2_MC_MPORT_CTRL (0x2940)
#define P_VDEC2_MC_MPORT_CTRL (volatile unsigned int *)((0x2940 << 2) + 0xff620000)
#define VDEC2_MC_MPORT_DAT (0x2941)
#define P_VDEC2_MC_MPORT_DAT (volatile unsigned int *)((0x2941 << 2) + 0xff620000)
#define VDEC2_MC_WT_PRED_CTRL (0x2942)
#define P_VDEC2_MC_WT_PRED_CTRL (volatile unsigned int *)((0x2942 << 2) + 0xff620000)
#define VDEC2_MC_MBBOT_ST_EVEN_ADDR (0x2944)
#define P_VDEC2_MC_MBBOT_ST_EVEN_ADDR (volatile unsigned int *)((0x2944 << 2) + 0xff620000)
#define VDEC2_MC_MBBOT_ST_ODD_ADDR (0x2945)
#define P_VDEC2_MC_MBBOT_ST_ODD_ADDR (volatile unsigned int *)((0x2945 << 2) + 0xff620000)
#define VDEC2_MC_DPDN_MB_XY (0x2946)
#define P_VDEC2_MC_DPDN_MB_XY (volatile unsigned int *)((0x2946 << 2) + 0xff620000)
#define VDEC2_MC_OMDN_MB_XY (0x2947)
#define P_VDEC2_MC_OMDN_MB_XY (volatile unsigned int *)((0x2947 << 2) + 0xff620000)
#define VDEC2_MC_HCMDBUF_H (0x2948)
#define P_VDEC2_MC_HCMDBUF_H (volatile unsigned int *)((0x2948 << 2) + 0xff620000)
#define VDEC2_MC_HCMDBUF_L (0x2949)
#define P_VDEC2_MC_HCMDBUF_L (volatile unsigned int *)((0x2949 << 2) + 0xff620000)
#define VDEC2_MC_HCMD_H (0x294a)
#define P_VDEC2_MC_HCMD_H (volatile unsigned int *)((0x294a << 2) + 0xff620000)
#define VDEC2_MC_HCMD_L (0x294b)
#define P_VDEC2_MC_HCMD_L (volatile unsigned int *)((0x294b << 2) + 0xff620000)
#define VDEC2_MC_IDCT_DAT (0x294c)
#define P_VDEC2_MC_IDCT_DAT (volatile unsigned int *)((0x294c << 2) + 0xff620000)
#define VDEC2_MC_CTRL_GCLK_CTRL (0x294d)
#define P_VDEC2_MC_CTRL_GCLK_CTRL (volatile unsigned int *)((0x294d << 2) + 0xff620000)
#define VDEC2_MC_OTHER_GCLK_CTRL (0x294e)
#define P_VDEC2_MC_OTHER_GCLK_CTRL (volatile unsigned int *)((0x294e << 2) + 0xff620000)
//Bit 29:24, mbbot thread ID and token
//Bit 21:16, mc read/write thread ID and token
//Bit 13:8, mbbot pre-arbitor burst number
//Bit 5:0, mc pre-arbitor burst number
#define VDEC2_MC_CTRL2 (0x294f)
#define P_VDEC2_MC_CTRL2 (volatile unsigned int *)((0x294f << 2) + 0xff620000)
// `define DBLK_QUANT 8'h76 // ONLY for $ucode/real/amrisc/rv.s, reg value from apollo
//`define ANC1_CANVAS_ADDR 8'h80
//`define ANC2_CANVAS_ADDR 8'h81
//`define REC_CANVAS_ADDR 8'h89
//`define MDEC_PIC_W 8'h8c
//`define MDEC_PIC_H 8'h8d
// mdec_pic_dc_mux_ctrl[31] -- mcr_hevc_mode
#define VDEC2_MDEC_PIC_DC_MUX_CTRL (0x298d)
#define P_VDEC2_MDEC_PIC_DC_MUX_CTRL (volatile unsigned int *)((0x298d << 2) + 0xff620000)
#define VDEC2_MDEC_PIC_DC_CTRL (0x298e)
#define P_VDEC2_MDEC_PIC_DC_CTRL (volatile unsigned int *)((0x298e << 2) + 0xff620000)
#define VDEC2_MDEC_PIC_DC_STATUS (0x298f)
#define P_VDEC2_MDEC_PIC_DC_STATUS (volatile unsigned int *)((0x298f << 2) + 0xff620000)
#define VDEC2_ANC0_CANVAS_ADDR (0x2990)
#define P_VDEC2_ANC0_CANVAS_ADDR (volatile unsigned int *)((0x2990 << 2) + 0xff620000)
#define VDEC2_ANC1_CANVAS_ADDR (0x2991)
#define P_VDEC2_ANC1_CANVAS_ADDR (volatile unsigned int *)((0x2991 << 2) + 0xff620000)
#define VDEC2_ANC2_CANVAS_ADDR (0x2992)
#define P_VDEC2_ANC2_CANVAS_ADDR (volatile unsigned int *)((0x2992 << 2) + 0xff620000)
#define VDEC2_ANC3_CANVAS_ADDR (0x2993)
#define P_VDEC2_ANC3_CANVAS_ADDR (volatile unsigned int *)((0x2993 << 2) + 0xff620000)
#define VDEC2_ANC4_CANVAS_ADDR (0x2994)
#define P_VDEC2_ANC4_CANVAS_ADDR (volatile unsigned int *)((0x2994 << 2) + 0xff620000)
#define VDEC2_ANC5_CANVAS_ADDR (0x2995)
#define P_VDEC2_ANC5_CANVAS_ADDR (volatile unsigned int *)((0x2995 << 2) + 0xff620000)
#define VDEC2_ANC6_CANVAS_ADDR (0x2996)
#define P_VDEC2_ANC6_CANVAS_ADDR (volatile unsigned int *)((0x2996 << 2) + 0xff620000)
#define VDEC2_ANC7_CANVAS_ADDR (0x2997)
#define P_VDEC2_ANC7_CANVAS_ADDR (volatile unsigned int *)((0x2997 << 2) + 0xff620000)
#define VDEC2_ANC8_CANVAS_ADDR (0x2998)
#define P_VDEC2_ANC8_CANVAS_ADDR (volatile unsigned int *)((0x2998 << 2) + 0xff620000)
#define VDEC2_ANC9_CANVAS_ADDR (0x2999)
#define P_VDEC2_ANC9_CANVAS_ADDR (volatile unsigned int *)((0x2999 << 2) + 0xff620000)
#define VDEC2_ANC10_CANVAS_ADDR (0x299a)
#define P_VDEC2_ANC10_CANVAS_ADDR (volatile unsigned int *)((0x299a << 2) + 0xff620000)
#define VDEC2_ANC11_CANVAS_ADDR (0x299b)
#define P_VDEC2_ANC11_CANVAS_ADDR (volatile unsigned int *)((0x299b << 2) + 0xff620000)
#define VDEC2_ANC12_CANVAS_ADDR (0x299c)
#define P_VDEC2_ANC12_CANVAS_ADDR (volatile unsigned int *)((0x299c << 2) + 0xff620000)
#define VDEC2_ANC13_CANVAS_ADDR (0x299d)
#define P_VDEC2_ANC13_CANVAS_ADDR (volatile unsigned int *)((0x299d << 2) + 0xff620000)
#define VDEC2_ANC14_CANVAS_ADDR (0x299e)
#define P_VDEC2_ANC14_CANVAS_ADDR (volatile unsigned int *)((0x299e << 2) + 0xff620000)
#define VDEC2_ANC15_CANVAS_ADDR (0x299f)
#define P_VDEC2_ANC15_CANVAS_ADDR (volatile unsigned int *)((0x299f << 2) + 0xff620000)
#define VDEC2_ANC16_CANVAS_ADDR (0x29a0)
#define P_VDEC2_ANC16_CANVAS_ADDR (volatile unsigned int *)((0x29a0 << 2) + 0xff620000)
#define VDEC2_ANC17_CANVAS_ADDR (0x29a1)
#define P_VDEC2_ANC17_CANVAS_ADDR (volatile unsigned int *)((0x29a1 << 2) + 0xff620000)
#define VDEC2_ANC18_CANVAS_ADDR (0x29a2)
#define P_VDEC2_ANC18_CANVAS_ADDR (volatile unsigned int *)((0x29a2 << 2) + 0xff620000)
#define VDEC2_ANC19_CANVAS_ADDR (0x29a3)
#define P_VDEC2_ANC19_CANVAS_ADDR (volatile unsigned int *)((0x29a3 << 2) + 0xff620000)
#define VDEC2_ANC20_CANVAS_ADDR (0x29a4)
#define P_VDEC2_ANC20_CANVAS_ADDR (volatile unsigned int *)((0x29a4 << 2) + 0xff620000)
#define VDEC2_ANC21_CANVAS_ADDR (0x29a5)
#define P_VDEC2_ANC21_CANVAS_ADDR (volatile unsigned int *)((0x29a5 << 2) + 0xff620000)
#define VDEC2_ANC22_CANVAS_ADDR (0x29a6)
#define P_VDEC2_ANC22_CANVAS_ADDR (volatile unsigned int *)((0x29a6 << 2) + 0xff620000)
#define VDEC2_ANC23_CANVAS_ADDR (0x29a7)
#define P_VDEC2_ANC23_CANVAS_ADDR (volatile unsigned int *)((0x29a7 << 2) + 0xff620000)
#define VDEC2_ANC24_CANVAS_ADDR (0x29a8)
#define P_VDEC2_ANC24_CANVAS_ADDR (volatile unsigned int *)((0x29a8 << 2) + 0xff620000)
#define VDEC2_ANC25_CANVAS_ADDR (0x29a9)
#define P_VDEC2_ANC25_CANVAS_ADDR (volatile unsigned int *)((0x29a9 << 2) + 0xff620000)
#define VDEC2_ANC26_CANVAS_ADDR (0x29aa)
#define P_VDEC2_ANC26_CANVAS_ADDR (volatile unsigned int *)((0x29aa << 2) + 0xff620000)
#define VDEC2_ANC27_CANVAS_ADDR (0x29ab)
#define P_VDEC2_ANC27_CANVAS_ADDR (volatile unsigned int *)((0x29ab << 2) + 0xff620000)
#define VDEC2_ANC28_CANVAS_ADDR (0x29ac)
#define P_VDEC2_ANC28_CANVAS_ADDR (volatile unsigned int *)((0x29ac << 2) + 0xff620000)
#define VDEC2_ANC29_CANVAS_ADDR (0x29ad)
#define P_VDEC2_ANC29_CANVAS_ADDR (volatile unsigned int *)((0x29ad << 2) + 0xff620000)
#define VDEC2_ANC30_CANVAS_ADDR (0x29ae)
#define P_VDEC2_ANC30_CANVAS_ADDR (volatile unsigned int *)((0x29ae << 2) + 0xff620000)
#define VDEC2_ANC31_CANVAS_ADDR (0x29af)
#define P_VDEC2_ANC31_CANVAS_ADDR (volatile unsigned int *)((0x29af << 2) + 0xff620000)
#define VDEC2_DBKR_CANVAS_ADDR (0x29b0)
#define P_VDEC2_DBKR_CANVAS_ADDR (volatile unsigned int *)((0x29b0 << 2) + 0xff620000)
#define VDEC2_DBKW_CANVAS_ADDR (0x29b1)
#define P_VDEC2_DBKW_CANVAS_ADDR (volatile unsigned int *)((0x29b1 << 2) + 0xff620000)
#define VDEC2_REC_CANVAS_ADDR (0x29b2)
#define P_VDEC2_REC_CANVAS_ADDR (volatile unsigned int *)((0x29b2 << 2) + 0xff620000)
//28:24, read/write, current canvas idx, used in h264 only now
//23:0, read only, current canvas address, 23:16, Cr canvas addr, 15:8, Cb canvas addr, 7:0, Y canvas addr
#define VDEC2_CURR_CANVAS_CTRL (0x29b3)
#define P_VDEC2_CURR_CANVAS_CTRL (volatile unsigned int *)((0x29b3 << 2) + 0xff620000)
#define VDEC2_MDEC_PIC_DC_THRESH (0x29b8)
#define P_VDEC2_MDEC_PIC_DC_THRESH (volatile unsigned int *)((0x29b8 << 2) + 0xff620000)
#define VDEC2_MDEC_PICR_BUF_STATUS (0x29b9)
#define P_VDEC2_MDEC_PICR_BUF_STATUS (volatile unsigned int *)((0x29b9 << 2) + 0xff620000)
#define VDEC2_MDEC_PICW_BUF_STATUS (0x29ba)
#define P_VDEC2_MDEC_PICW_BUF_STATUS (volatile unsigned int *)((0x29ba << 2) + 0xff620000)
#define VDEC2_MCW_DBLK_WRRSP_CNT (0x29bb)
#define P_VDEC2_MCW_DBLK_WRRSP_CNT (volatile unsigned int *)((0x29bb << 2) + 0xff620000)
#define VDEC2_MC_MBBOT_WRRSP_CNT (0x29bc)
#define P_VDEC2_MC_MBBOT_WRRSP_CNT (volatile unsigned int *)((0x29bc << 2) + 0xff620000)
#define VDEC2_MDEC_PICW_BUF2_STATUS (0x29bd)
#define P_VDEC2_MDEC_PICW_BUF2_STATUS (volatile unsigned int *)((0x29bd << 2) + 0xff620000)
#define VDEC2_WRRSP_FIFO_PICW_DBK (0x29be)
#define P_VDEC2_WRRSP_FIFO_PICW_DBK (volatile unsigned int *)((0x29be << 2) + 0xff620000)
#define VDEC2_WRRSP_FIFO_PICW_MC (0x29bf)
#define P_VDEC2_WRRSP_FIFO_PICW_MC (volatile unsigned int *)((0x29bf << 2) + 0xff620000)
#define VDEC2_AV_SCRATCH_0 (0x29c0)
#define P_VDEC2_AV_SCRATCH_0 (volatile unsigned int *)((0x29c0 << 2) + 0xff620000)
#define VDEC2_AV_SCRATCH_1 (0x29c1)
#define P_VDEC2_AV_SCRATCH_1 (volatile unsigned int *)((0x29c1 << 2) + 0xff620000)
#define VDEC2_AV_SCRATCH_2 (0x29c2)
#define P_VDEC2_AV_SCRATCH_2 (volatile unsigned int *)((0x29c2 << 2) + 0xff620000)
#define VDEC2_AV_SCRATCH_3 (0x29c3)
#define P_VDEC2_AV_SCRATCH_3 (volatile unsigned int *)((0x29c3 << 2) + 0xff620000)
#define VDEC2_AV_SCRATCH_4 (0x29c4)
#define P_VDEC2_AV_SCRATCH_4 (volatile unsigned int *)((0x29c4 << 2) + 0xff620000)
#define VDEC2_AV_SCRATCH_5 (0x29c5)
#define P_VDEC2_AV_SCRATCH_5 (volatile unsigned int *)((0x29c5 << 2) + 0xff620000)
#define VDEC2_AV_SCRATCH_6 (0x29c6)
#define P_VDEC2_AV_SCRATCH_6 (volatile unsigned int *)((0x29c6 << 2) + 0xff620000)
#define VDEC2_AV_SCRATCH_7 (0x29c7)
#define P_VDEC2_AV_SCRATCH_7 (volatile unsigned int *)((0x29c7 << 2) + 0xff620000)
#define VDEC2_AV_SCRATCH_8 (0x29c8)
#define P_VDEC2_AV_SCRATCH_8 (volatile unsigned int *)((0x29c8 << 2) + 0xff620000)
#define VDEC2_AV_SCRATCH_9 (0x29c9)
#define P_VDEC2_AV_SCRATCH_9 (volatile unsigned int *)((0x29c9 << 2) + 0xff620000)
#define VDEC2_AV_SCRATCH_A (0x29ca)
#define P_VDEC2_AV_SCRATCH_A (volatile unsigned int *)((0x29ca << 2) + 0xff620000)
#define VDEC2_AV_SCRATCH_B (0x29cb)
#define P_VDEC2_AV_SCRATCH_B (volatile unsigned int *)((0x29cb << 2) + 0xff620000)
#define VDEC2_AV_SCRATCH_C (0x29cc)
#define P_VDEC2_AV_SCRATCH_C (volatile unsigned int *)((0x29cc << 2) + 0xff620000)
#define VDEC2_AV_SCRATCH_D (0x29cd)
#define P_VDEC2_AV_SCRATCH_D (volatile unsigned int *)((0x29cd << 2) + 0xff620000)
#define VDEC2_AV_SCRATCH_E (0x29ce)
#define P_VDEC2_AV_SCRATCH_E (volatile unsigned int *)((0x29ce << 2) + 0xff620000)
#define VDEC2_AV_SCRATCH_F (0x29cf)
#define P_VDEC2_AV_SCRATCH_F (volatile unsigned int *)((0x29cf << 2) + 0xff620000)
#define VDEC2_AV_SCRATCH_G (0x29d0)
#define P_VDEC2_AV_SCRATCH_G (volatile unsigned int *)((0x29d0 << 2) + 0xff620000)
#define VDEC2_AV_SCRATCH_H (0x29d1)
#define P_VDEC2_AV_SCRATCH_H (volatile unsigned int *)((0x29d1 << 2) + 0xff620000)
#define VDEC2_AV_SCRATCH_I (0x29d2)
#define P_VDEC2_AV_SCRATCH_I (volatile unsigned int *)((0x29d2 << 2) + 0xff620000)
#define VDEC2_AV_SCRATCH_J (0x29d3)
#define P_VDEC2_AV_SCRATCH_J (volatile unsigned int *)((0x29d3 << 2) + 0xff620000)
#define VDEC2_AV_SCRATCH_K (0x29d4)
#define P_VDEC2_AV_SCRATCH_K (volatile unsigned int *)((0x29d4 << 2) + 0xff620000)
#define VDEC2_AV_SCRATCH_L (0x29d5)
#define P_VDEC2_AV_SCRATCH_L (volatile unsigned int *)((0x29d5 << 2) + 0xff620000)
#define VDEC2_AV_SCRATCH_M (0x29d6)
#define P_VDEC2_AV_SCRATCH_M (volatile unsigned int *)((0x29d6 << 2) + 0xff620000)
#define VDEC2_AV_SCRATCH_N (0x29d7)
#define P_VDEC2_AV_SCRATCH_N (volatile unsigned int *)((0x29d7 << 2) + 0xff620000)
// bit[29:24] A_brst_num_co_mb
// bit[21:16] A_id_co_mb
// bit[11:0] wrrsp_count_co_mb
#define VDEC2_WRRSP_CO_MB (0x29d8)
#define P_VDEC2_WRRSP_CO_MB (volatile unsigned int *)((0x29d8 << 2) + 0xff620000)
// bit[29:24] A_brst_num_dcac
// bit[21:16] A_id_dcac
// bit[11:0] wrrsp_count_dcac
#define VDEC2_WRRSP_DCAC (0x29d9)
#define P_VDEC2_WRRSP_DCAC (volatile unsigned int *)((0x29d9 << 2) + 0xff620000)
// bit[11:0] wrrsp_count_vld
#define VDEC2_WRRSP_VLD (0x29da)
#define P_VDEC2_WRRSP_VLD (volatile unsigned int *)((0x29da << 2) + 0xff620000)
// doublew_cfg0[0]; // Second Channel Enable, 1:Enable 0:Disable
// doublew_cfg0[3:1]; // [2:0] Endian Control for Luma
// doublew_cfg0[5:4]; // [1:0] Pixel sel by horizontal, 0x:1/2 10:left 11:right
// doublew_cfg0[7:6]; // [1:0] Pixel sel by vertical, 0x:1/2 10:up 11:down
// doublew_cfg0[8]; // Size by horizontal, 0:original size 1: 1/2 shrunken size
// doublew_cfg0[9]; // Size by vertical, 0:original size 1: 1/2 shrunken size
// doublew_cfg0[10]; // 1:Round 0:Truncation
// doublew_cfg0[11]; // DMA Urgent
// doublew_cfg0[17:12]; // [5:0] DMA Burst Number
// doublew_cfg0[23:18]; // [5:0] DMA ID
// doublew_cfg0[26:24]; // [2:0] Endian Control for Chroma
// doublew_cfg0[27]; // Source from, 1:MCW 0:DBLK
// doublew_cfg0[29:28]; // [1:0] 0x:select both top and bottom 10:select top 11:select bottom
// doublew_cfg0[30]; // 0:no merge 1:automatic merge
// doublew_cfg0[31]; // 0:Y addr no change 1:Y addr divided to half
#define VDEC2_MDEC_DOUBLEW_CFG0 (0x29db)
#define P_VDEC2_MDEC_DOUBLEW_CFG0 (volatile unsigned int *)((0x29db << 2) + 0xff620000)
// doublew_cfg1[7:0]; // [7:0] DMA Canvas Address for Luma
// doublew_cfg1[15:8]; // [7:0] DMA Canvas Address for Chroma
// doublew_cfg1[16]; // Disable 1st Write -
// doublew_cfg1[17]; // Reverse to original version -
// doublew_cfg1[18]; // DMA Address Mode - 0:Canvas Mode 1:Non-Canvas Mode
#define VDEC2_MDEC_DOUBLEW_CFG1 (0x29dc)
#define P_VDEC2_MDEC_DOUBLEW_CFG1 (volatile unsigned int *)((0x29dc << 2) + 0xff620000)
// doublew_cfg2[11:0]; //[11:0] vertical flip initial value
// doublew_cfg2[15]; // vertical flip enable
// doublew_cfg2[24:16]; // [8:0] horizontal flip initial value
// doublew_cfg2[31]; // horizontal flip enable
#define VDEC2_MDEC_DOUBLEW_CFG2 (0x29dd)
#define P_VDEC2_MDEC_DOUBLEW_CFG2 (volatile unsigned int *)((0x29dd << 2) + 0xff620000)
// doublew_cfg3[31:0]; //[31:0] non-canvas start address for Luma -
#define VDEC2_MDEC_DOUBLEW_CFG3 (0x29de)
#define P_VDEC2_MDEC_DOUBLEW_CFG3 (volatile unsigned int *)((0x29de << 2) + 0xff620000)
// doublew_cfg4[31:0]; //[31:0] non-canvas start address for Chroma -
#define VDEC2_MDEC_DOUBLEW_CFG4 (0x29df)
#define P_VDEC2_MDEC_DOUBLEW_CFG4 (volatile unsigned int *)((0x29df << 2) + 0xff620000)
// doublew_cfg5[12:0]; //[12:0] non-canvas picture width for Luma -
// doublew_cfg5[28:16]; //[12:0] non-canvas picture width for Chroma -
#define VDEC2_MDEC_DOUBLEW_CFG5 (0x29e0)
#define P_VDEC2_MDEC_DOUBLEW_CFG5 (volatile unsigned int *)((0x29e0 << 2) + 0xff620000)
// doublew_cfg6: reserved
#define VDEC2_MDEC_DOUBLEW_CFG6 (0x29e1)
#define P_VDEC2_MDEC_DOUBLEW_CFG6 (volatile unsigned int *)((0x29e1 << 2) + 0xff620000)
// doublew_cfg7: reserved
#define VDEC2_MDEC_DOUBLEW_CFG7 (0x29e2)
#define P_VDEC2_MDEC_DOUBLEW_CFG7 (volatile unsigned int *)((0x29e2 << 2) + 0xff620000)
// doublew_status[11:0];//[11:0] wrrsp_count_doublew
// doublew_status[12]; // doublew_status_busy
// doublew_status[13]; // doublew_status_error
#define VDEC2_MDEC_DOUBLEW_STATUS (0x29e3)
#define P_VDEC2_MDEC_DOUBLEW_STATUS (volatile unsigned int *)((0x29e3 << 2) + 0xff620000)
#define VDEC2_MDEC_EXTIF_CFG0 (0x29e4)
#define P_VDEC2_MDEC_EXTIF_CFG0 (volatile unsigned int *)((0x29e4 << 2) + 0xff620000)
#define VDEC2_MDEC_EXTIF_CFG1 (0x29e5)
#define P_VDEC2_MDEC_EXTIF_CFG1 (volatile unsigned int *)((0x29e5 << 2) + 0xff620000)
#define VDEC2_MDEC_EXTIF_STS0 (0x29e6)
#define P_VDEC2_MDEC_EXTIF_STS0 (volatile unsigned int *)((0x29e6 << 2) + 0xff620000)
//======================================
// MC Control Register Bits
//
//======================================
// For bits, just copy the defines...don't translate to addresses
//`define MC_RESET 16'h0002
//======================================
// MB Info Register Bits
//
//======================================
//======================================
// MB Info Register Bits
//
//======================================
//========================================================================
// DBLK Register: 12'h950 - 12'h97f
//========================================================================
#define VDEC2_DBLK_RST (0x2950)
#define P_VDEC2_DBLK_RST (volatile unsigned int *)((0x2950 << 2) + 0xff620000)
#define VDEC2_DBLK_CTRL (0x2951)
#define P_VDEC2_DBLK_CTRL (volatile unsigned int *)((0x2951 << 2) + 0xff620000)
#define VDEC2_DBLK_MB_WID_HEIGHT (0x2952)
#define P_VDEC2_DBLK_MB_WID_HEIGHT (volatile unsigned int *)((0x2952 << 2) + 0xff620000)
#define VDEC2_DBLK_STATUS (0x2953)
#define P_VDEC2_DBLK_STATUS (volatile unsigned int *)((0x2953 << 2) + 0xff620000)
#define VDEC2_DBLK_CMD_CTRL (0x2954)
#define P_VDEC2_DBLK_CMD_CTRL (volatile unsigned int *)((0x2954 << 2) + 0xff620000)
#define VDEC2_DBLK_MB_XY (0x2955)
#define P_VDEC2_DBLK_MB_XY (volatile unsigned int *)((0x2955 << 2) + 0xff620000)
#define VDEC2_DBLK_QP (0x2956)
#define P_VDEC2_DBLK_QP (volatile unsigned int *)((0x2956 << 2) + 0xff620000)
#define VDEC2_DBLK_Y_BHFILT (0x2957)
#define P_VDEC2_DBLK_Y_BHFILT (volatile unsigned int *)((0x2957 << 2) + 0xff620000)
#define VDEC2_DBLK_Y_BHFILT_HIGH (0x2958)
#define P_VDEC2_DBLK_Y_BHFILT_HIGH (volatile unsigned int *)((0x2958 << 2) + 0xff620000)
#define VDEC2_DBLK_Y_BVFILT (0x2959)
#define P_VDEC2_DBLK_Y_BVFILT (volatile unsigned int *)((0x2959 << 2) + 0xff620000)
#define VDEC2_DBLK_CB_BFILT (0x295a)
#define P_VDEC2_DBLK_CB_BFILT (volatile unsigned int *)((0x295a << 2) + 0xff620000)
#define VDEC2_DBLK_CR_BFILT (0x295b)
#define P_VDEC2_DBLK_CR_BFILT (volatile unsigned int *)((0x295b << 2) + 0xff620000)
#define VDEC2_DBLK_Y_HFILT (0x295c)
#define P_VDEC2_DBLK_Y_HFILT (volatile unsigned int *)((0x295c << 2) + 0xff620000)
#define VDEC2_DBLK_Y_HFILT_HIGH (0x295d)
#define P_VDEC2_DBLK_Y_HFILT_HIGH (volatile unsigned int *)((0x295d << 2) + 0xff620000)
#define VDEC2_DBLK_Y_VFILT (0x295e)
#define P_VDEC2_DBLK_Y_VFILT (volatile unsigned int *)((0x295e << 2) + 0xff620000)
#define VDEC2_DBLK_CB_FILT (0x295f)
#define P_VDEC2_DBLK_CB_FILT (volatile unsigned int *)((0x295f << 2) + 0xff620000)
#define VDEC2_DBLK_CR_FILT (0x2960)
#define P_VDEC2_DBLK_CR_FILT (volatile unsigned int *)((0x2960 << 2) + 0xff620000)
#define VDEC2_DBLK_BETAX_QP_SEL (0x2961)
#define P_VDEC2_DBLK_BETAX_QP_SEL (volatile unsigned int *)((0x2961 << 2) + 0xff620000)
#define VDEC2_DBLK_CLIP_CTRL0 (0x2962)
#define P_VDEC2_DBLK_CLIP_CTRL0 (volatile unsigned int *)((0x2962 << 2) + 0xff620000)
#define VDEC2_DBLK_CLIP_CTRL1 (0x2963)
#define P_VDEC2_DBLK_CLIP_CTRL1 (volatile unsigned int *)((0x2963 << 2) + 0xff620000)
#define VDEC2_DBLK_CLIP_CTRL2 (0x2964)
#define P_VDEC2_DBLK_CLIP_CTRL2 (volatile unsigned int *)((0x2964 << 2) + 0xff620000)
#define VDEC2_DBLK_CLIP_CTRL3 (0x2965)
#define P_VDEC2_DBLK_CLIP_CTRL3 (volatile unsigned int *)((0x2965 << 2) + 0xff620000)
#define VDEC2_DBLK_CLIP_CTRL4 (0x2966)
#define P_VDEC2_DBLK_CLIP_CTRL4 (volatile unsigned int *)((0x2966 << 2) + 0xff620000)
#define VDEC2_DBLK_CLIP_CTRL5 (0x2967)
#define P_VDEC2_DBLK_CLIP_CTRL5 (volatile unsigned int *)((0x2967 << 2) + 0xff620000)
#define VDEC2_DBLK_CLIP_CTRL6 (0x2968)
#define P_VDEC2_DBLK_CLIP_CTRL6 (volatile unsigned int *)((0x2968 << 2) + 0xff620000)
#define VDEC2_DBLK_CLIP_CTRL7 (0x2969)
#define P_VDEC2_DBLK_CLIP_CTRL7 (volatile unsigned int *)((0x2969 << 2) + 0xff620000)
#define VDEC2_DBLK_CLIP_CTRL8 (0x296a)
#define P_VDEC2_DBLK_CLIP_CTRL8 (volatile unsigned int *)((0x296a << 2) + 0xff620000)
#define VDEC2_DBLK_STATUS1 (0x296b)
#define P_VDEC2_DBLK_STATUS1 (volatile unsigned int *)((0x296b << 2) + 0xff620000)
#define VDEC2_DBLK_GCLK_FREE (0x296c)
#define P_VDEC2_DBLK_GCLK_FREE (volatile unsigned int *)((0x296c << 2) + 0xff620000)
#define VDEC2_DBLK_GCLK_OFF (0x296d)
#define P_VDEC2_DBLK_GCLK_OFF (volatile unsigned int *)((0x296d << 2) + 0xff620000)
#define VDEC2_DBLK_AVSFLAGS (0x296e)
#define P_VDEC2_DBLK_AVSFLAGS (volatile unsigned int *)((0x296e << 2) + 0xff620000)
// bit 15:0
#define VDEC2_DBLK_CBPY (0x2970)
#define P_VDEC2_DBLK_CBPY (volatile unsigned int *)((0x2970 << 2) + 0xff620000)
// bit 11:8 -- deblk_cbpy_bottom
// bit 7:4 -- deblk_cbpy_left
// bit 3:0 -- deblk_cbpy_top
#define VDEC2_DBLK_CBPY_ADJ (0x2971)
#define P_VDEC2_DBLK_CBPY_ADJ (volatile unsigned int *)((0x2971 << 2) + 0xff620000)
// bit 7:0 -- deblk_cbpc
#define VDEC2_DBLK_CBPC (0x2972)
#define P_VDEC2_DBLK_CBPC (volatile unsigned int *)((0x2972 << 2) + 0xff620000)
// bit 15 -- bottom_mb
// bit 14 -- left_mb
// bit 13 -- top_mb
// bit 12 -- reserved
// bit 11:8 -- deblk_cbpc_bottom
// bit 7:4 -- deblk_cbpc_left
// bit 3:0 -- deblk_cbpc_top
#define VDEC2_DBLK_CBPC_ADJ (0x2973)
#define P_VDEC2_DBLK_CBPC_ADJ (volatile unsigned int *)((0x2973 << 2) + 0xff620000)
// bit 15:8 -- deblk_hmvd -- {left_1, left_0, below_1, below_0, block3-0}
// bit 7:0 -- deblk_vmvd -- {top_1, top_0, below_1, below_0, block3-0}
#define VDEC2_DBLK_VHMVD (0x2974)
#define P_VDEC2_DBLK_VHMVD (volatile unsigned int *)((0x2974 << 2) + 0xff620000)
// bit 13:12 -- right_vmvd
// bit 11 -- right_above_vmvd
// bit 10 -- left_below_hmvd
// bit 9 -- disable_dblk_luma
// bit 8 -- disable_dblk_chroma
// bit 7 -- bBelowRefDiff
// bit 6 -- bLeftRefDiff
// bit 5 -- bAboveRefDiff
// bit 4 -- reserved
// bit 3 -- s_below
// bit 2 -- s_left
// bit 1 -- s_above
// bit 0 -- s
#define VDEC2_DBLK_STRONG (0x2975)
#define P_VDEC2_DBLK_STRONG (volatile unsigned int *)((0x2975 << 2) + 0xff620000)
// bit 14:10 -- PQUANT
// bit 9:5 -- left_PQUANT
// bit 4:0 -- top_PQUANT
#define VDEC2_DBLK_RV8_QUANT (0x2976)
#define P_VDEC2_DBLK_RV8_QUANT (volatile unsigned int *)((0x2976 << 2) + 0xff620000)
#define VDEC2_DBLK_CBUS_HCMD2 (0x2977)
#define P_VDEC2_DBLK_CBUS_HCMD2 (volatile unsigned int *)((0x2977 << 2) + 0xff620000)
#define VDEC2_DBLK_CBUS_HCMD1 (0x2978)
#define P_VDEC2_DBLK_CBUS_HCMD1 (volatile unsigned int *)((0x2978 << 2) + 0xff620000)
#define VDEC2_DBLK_CBUS_HCMD0 (0x2979)
#define P_VDEC2_DBLK_CBUS_HCMD0 (volatile unsigned int *)((0x2979 << 2) + 0xff620000)
#define VDEC2_DBLK_VLD_HCMD2 (0x297a)
#define P_VDEC2_DBLK_VLD_HCMD2 (volatile unsigned int *)((0x297a << 2) + 0xff620000)
#define VDEC2_DBLK_VLD_HCMD1 (0x297b)
#define P_VDEC2_DBLK_VLD_HCMD1 (volatile unsigned int *)((0x297b << 2) + 0xff620000)
#define VDEC2_DBLK_VLD_HCMD0 (0x297c)
#define P_VDEC2_DBLK_VLD_HCMD0 (volatile unsigned int *)((0x297c << 2) + 0xff620000)
#define VDEC2_DBLK_OST_YBASE (0x297d)
#define P_VDEC2_DBLK_OST_YBASE (volatile unsigned int *)((0x297d << 2) + 0xff620000)
#define VDEC2_DBLK_OST_CBCRDIFF (0x297e)
#define P_VDEC2_DBLK_OST_CBCRDIFF (volatile unsigned int *)((0x297e << 2) + 0xff620000)
//13:8 dblk thread ID and token
//5:0 dblk prearbitor burst num
#define VDEC2_DBLK_CTRL1 (0x297f)
#define P_VDEC2_DBLK_CTRL1 (volatile unsigned int *)((0x297f << 2) + 0xff620000)
// MCRCC_CTL1
// 31:3 <reserved[23:0]>
// 2 <cfg_field_pic>
// 1 <sw_rst>
// 0 <bypass_en>
#define VDEC2_MCRCC_CTL1 (0x2980)
#define P_VDEC2_MCRCC_CTL1 (volatile unsigned int *)((0x2980 << 2) + 0xff620000)
// MCRCC_CTL2
// 31:24 <cfg_cache_anc01_c[7:0]>
// 23:16 <cfg_cache_anc01_y[7:0]>
// 15:8 <cfg_cache_anc00_c[7:0]>
// 7:0 <cfg_cache_anc00_y[7:0]>
#define VDEC2_MCRCC_CTL2 (0x2981)
#define P_VDEC2_MCRCC_CTL2 (volatile unsigned int *)((0x2981 << 2) + 0xff620000)
// MCRCC_CTL3
// 31:24 <cfg_cache_anc11_c[7:0]>
// 23:16 <cfg_cache_anc11_y[7:0]>
// 15:8 <cfg_cache_anc10_c[7:0]>
// 7:0 <cfg_cache_anc10_y[7:0]>
#define VDEC2_MCRCC_CTL3 (0x2982)
#define P_VDEC2_MCRCC_CTL3 (volatile unsigned int *)((0x2982 << 2) + 0xff620000)
// bit[31:10] reserved
// bit[9:0] sw_clock_gating control
// [9] vdec clk_en for assist and cbus.
// [8] vdec clk_en for ddr
// [7] vdec clk_en for vcpu
// [6] vdec clk_en for assist
// [5] vdec clk_en for dblk
// [4] vdec clk_en for iqidct
// [3] vdec clk_en for mc
// [2] vdec clk_en for pic_dc
// [1] vdec clk_en for psc
// [0] vdec clk_en for vld
#define VDEC2_GCLK_EN (0x2983)
#define P_VDEC2_GCLK_EN (volatile unsigned int *)((0x2983 << 2) + 0xff620000)
// [0] Reserved
// [1] Reserved
// [2] Reset assist, mdec's CBUS
// [3] Reset mdec's VLD
// [4] Reset mdec's VLD
// [5] Reset mdec's VLD
// [6] Reset mdec's IQIDCT
// [7] Reset mdec's MC
// [8] Reset mdec's DBLK
// [9] Reset mdec's PIC_DC
// [10] Reset mdec's Pscale
// [11] Reset vcpu's MCPU
// [12] Reset vcpu's CCPU
// [13] Reset mmc_pre_arb
#define VDEC2_MDEC_SW_RESET (0x2984)
#define P_VDEC2_MDEC_SW_RESET (volatile unsigned int *)((0x2984 << 2) + 0xff620000)
//DBLK last address 12'h97f
//
// Closing file: mdec_regs.h
//
//
// Reading file: mdec_regs.h
//
//========================================================================
// MDEC module level register offset
//========================================================================
// -----------------------------------------------
// CBUS_BASE: DOS_VDEC_MDEC_CBUS_BASE = 0x09
// -----------------------------------------------
#define HEVC_MC_CTRL_REG (0x3900)
#define P_HEVC_MC_CTRL_REG (volatile unsigned int *)((0x3900 << 2) + 0xff620000)
#define HEVC_MC_MB_INFO (0x3901)
#define P_HEVC_MC_MB_INFO (volatile unsigned int *)((0x3901 << 2) + 0xff620000)
#define HEVC_MC_PIC_INFO (0x3902)
#define P_HEVC_MC_PIC_INFO (volatile unsigned int *)((0x3902 << 2) + 0xff620000)
#define HEVC_MC_HALF_PEL_ONE (0x3903)
#define P_HEVC_MC_HALF_PEL_ONE (volatile unsigned int *)((0x3903 << 2) + 0xff620000)
#define HEVC_MC_HALF_PEL_TWO (0x3904)
#define P_HEVC_MC_HALF_PEL_TWO (volatile unsigned int *)((0x3904 << 2) + 0xff620000)
#define HEVC_POWER_CTL_MC (0x3905)
#define P_HEVC_POWER_CTL_MC (volatile unsigned int *)((0x3905 << 2) + 0xff620000)
#define HEVC_MC_CMD (0x3906)
#define P_HEVC_MC_CMD (volatile unsigned int *)((0x3906 << 2) + 0xff620000)
#define HEVC_MC_CTRL0 (0x3907)
#define P_HEVC_MC_CTRL0 (volatile unsigned int *)((0x3907 << 2) + 0xff620000)
#define HEVC_MC_PIC_W_H (0x3908)
#define P_HEVC_MC_PIC_W_H (volatile unsigned int *)((0x3908 << 2) + 0xff620000)
#define HEVC_MC_STATUS0 (0x3909)
#define P_HEVC_MC_STATUS0 (volatile unsigned int *)((0x3909 << 2) + 0xff620000)
#define HEVC_MC_STATUS1 (0x390a)
#define P_HEVC_MC_STATUS1 (volatile unsigned int *)((0x390a << 2) + 0xff620000)
#define HEVC_MC_CTRL1 (0x390b)
#define P_HEVC_MC_CTRL1 (volatile unsigned int *)((0x390b << 2) + 0xff620000)
#define HEVC_MC_MIX_RATIO0 (0x390c)
#define P_HEVC_MC_MIX_RATIO0 (volatile unsigned int *)((0x390c << 2) + 0xff620000)
#define HEVC_MC_MIX_RATIO1 (0x390d)
#define P_HEVC_MC_MIX_RATIO1 (volatile unsigned int *)((0x390d << 2) + 0xff620000)
#define HEVC_MC_DP_MB_XY (0x390e)
#define P_HEVC_MC_DP_MB_XY (volatile unsigned int *)((0x390e << 2) + 0xff620000)
#define HEVC_MC_OM_MB_XY (0x390f)
#define P_HEVC_MC_OM_MB_XY (volatile unsigned int *)((0x390f << 2) + 0xff620000)
#define HEVC_PSCALE_RST (0x3910)
#define P_HEVC_PSCALE_RST (volatile unsigned int *)((0x3910 << 2) + 0xff620000)
#define HEVC_PSCALE_CTRL (0x3911)
#define P_HEVC_PSCALE_CTRL (volatile unsigned int *)((0x3911 << 2) + 0xff620000)
#define HEVC_PSCALE_PICI_W (0x3912)
#define P_HEVC_PSCALE_PICI_W (volatile unsigned int *)((0x3912 << 2) + 0xff620000)
#define HEVC_PSCALE_PICI_H (0x3913)
#define P_HEVC_PSCALE_PICI_H (volatile unsigned int *)((0x3913 << 2) + 0xff620000)
#define HEVC_PSCALE_PICO_W (0x3914)
#define P_HEVC_PSCALE_PICO_W (volatile unsigned int *)((0x3914 << 2) + 0xff620000)
#define HEVC_PSCALE_PICO_H (0x3915)
#define P_HEVC_PSCALE_PICO_H (volatile unsigned int *)((0x3915 << 2) + 0xff620000)
#define HEVC_PSCALE_PICO_START_X (0x3916)
#define P_HEVC_PSCALE_PICO_START_X (volatile unsigned int *)((0x3916 << 2) + 0xff620000)
#define HEVC_PSCALE_PICO_START_Y (0x3917)
#define P_HEVC_PSCALE_PICO_START_Y (volatile unsigned int *)((0x3917 << 2) + 0xff620000)
#define HEVC_PSCALE_DUMMY (0x3918)
#define P_HEVC_PSCALE_DUMMY (volatile unsigned int *)((0x3918 << 2) + 0xff620000)
#define HEVC_PSCALE_FILT0_COEF0 (0x3919)
#define P_HEVC_PSCALE_FILT0_COEF0 (volatile unsigned int *)((0x3919 << 2) + 0xff620000)
#define HEVC_PSCALE_FILT0_COEF1 (0x391a)
#define P_HEVC_PSCALE_FILT0_COEF1 (volatile unsigned int *)((0x391a << 2) + 0xff620000)
#define HEVC_PSCALE_CMD_CTRL (0x391b)
#define P_HEVC_PSCALE_CMD_CTRL (volatile unsigned int *)((0x391b << 2) + 0xff620000)
#define HEVC_PSCALE_CMD_BLK_X (0x391c)
#define P_HEVC_PSCALE_CMD_BLK_X (volatile unsigned int *)((0x391c << 2) + 0xff620000)
#define HEVC_PSCALE_CMD_BLK_Y (0x391d)
#define P_HEVC_PSCALE_CMD_BLK_Y (volatile unsigned int *)((0x391d << 2) + 0xff620000)
#define HEVC_PSCALE_STATUS (0x391e)
#define P_HEVC_PSCALE_STATUS (volatile unsigned int *)((0x391e << 2) + 0xff620000)
#define HEVC_PSCALE_BMEM_ADDR (0x391f)
#define P_HEVC_PSCALE_BMEM_ADDR (volatile unsigned int *)((0x391f << 2) + 0xff620000)
#define HEVC_PSCALE_BMEM_DAT (0x3920)
#define P_HEVC_PSCALE_BMEM_DAT (volatile unsigned int *)((0x3920 << 2) + 0xff620000)
#define HEVC_PSCALE_DRAM_BUF_CTRL (0x3921)
#define P_HEVC_PSCALE_DRAM_BUF_CTRL (volatile unsigned int *)((0x3921 << 2) + 0xff620000)
#define HEVC_PSCALE_MCMD_CTRL (0x3922)
#define P_HEVC_PSCALE_MCMD_CTRL (volatile unsigned int *)((0x3922 << 2) + 0xff620000)
#define HEVC_PSCALE_MCMD_XSIZE (0x3923)
#define P_HEVC_PSCALE_MCMD_XSIZE (volatile unsigned int *)((0x3923 << 2) + 0xff620000)
#define HEVC_PSCALE_MCMD_YSIZE (0x3924)
#define P_HEVC_PSCALE_MCMD_YSIZE (volatile unsigned int *)((0x3924 << 2) + 0xff620000)
#define HEVC_PSCALE_RBUF_START_BLKX (0x3925)
#define P_HEVC_PSCALE_RBUF_START_BLKX (volatile unsigned int *)((0x3925 << 2) + 0xff620000)
#define HEVC_PSCALE_RBUF_START_BLKY (0x3926)
#define P_HEVC_PSCALE_RBUF_START_BLKY (volatile unsigned int *)((0x3926 << 2) + 0xff620000)
//`define PSCALE_RBUF_MB_WIDTH 8'h27
#define HEVC_PSCALE_PICO_SHIFT_XY (0x3928)
#define P_HEVC_PSCALE_PICO_SHIFT_XY (volatile unsigned int *)((0x3928 << 2) + 0xff620000)
#define HEVC_PSCALE_CTRL1 (0x3929)
#define P_HEVC_PSCALE_CTRL1 (volatile unsigned int *)((0x3929 << 2) + 0xff620000)
//Bit 15, wmask enable
//Bit 14:13, filt0 srckey_less,
//Bit 12:11, filt1 srckey_less, in the case of the interpolated data is equal distance to
//key data and normal data, 00: select normal data, 01: select right data, 10: select key data
//Bit 10:9, srckey mode, 00: equal, 01: less than or equal, 10: great than or equal
//Bit 8, src key enable
//Bit 7:0, y src key
#define HEVC_PSCALE_SRCKEY_CTRL0 (0x392a)
#define P_HEVC_PSCALE_SRCKEY_CTRL0 (volatile unsigned int *)((0x392a << 2) + 0xff620000)
//Bit 15:8, cb src key
//Bit 7:0, cr src key
#define HEVC_PSCALE_SRCKEY_CTRL1 (0x392b)
#define P_HEVC_PSCALE_SRCKEY_CTRL1 (volatile unsigned int *)((0x392b << 2) + 0xff620000)
//Bit 22:16 canvas_rd_addr2
//Bit 14:8 canvas_rd_addr1
//Bit 6:0 canvas_rd_addr1
#define HEVC_PSCALE_CANVAS_RD_ADDR (0x392c)
#define P_HEVC_PSCALE_CANVAS_RD_ADDR (volatile unsigned int *)((0x392c << 2) + 0xff620000)
//Bit 22:16 canvas_wr_addr2
//Bit 14:8 canvas_wr_addr1
//Bit 6:0 canvas_wr_addr1
#define HEVC_PSCALE_CANVAS_WR_ADDR (0x392d)
#define P_HEVC_PSCALE_CANVAS_WR_ADDR (volatile unsigned int *)((0x392d << 2) + 0xff620000)
//bit 13:8 pscale thread ID and token
//bit 7 disable write response count adding to busy bit
//bit 5:0 pscale prearbitor burst num
#define HEVC_PSCALE_CTRL2 (0x392e)
#define P_HEVC_PSCALE_CTRL2 (volatile unsigned int *)((0x392e << 2) + 0xff620000)
// 31 - use_omem_mb_xy_auto
//23:16 - omem_max_mb_x
//15:8 - omem_mb_y_auto
// 7:0 - omem_mb_x_auto
#define HEVC_HDEC_MC_OMEM_AUTO (0x3930)
#define P_HEVC_HDEC_MC_OMEM_AUTO (volatile unsigned int *)((0x3930 << 2) + 0xff620000)
#define HEVC_HDEC_MC_MBRIGHT_IDX (0x3931)
#define P_HEVC_HDEC_MC_MBRIGHT_IDX (volatile unsigned int *)((0x3931 << 2) + 0xff620000)
#define HEVC_HDEC_MC_MBRIGHT_RD (0x3932)
#define P_HEVC_HDEC_MC_MBRIGHT_RD (volatile unsigned int *)((0x3932 << 2) + 0xff620000)
#define HEVC_MC_MPORT_CTRL (0x3940)
#define P_HEVC_MC_MPORT_CTRL (volatile unsigned int *)((0x3940 << 2) + 0xff620000)
#define HEVC_MC_MPORT_DAT (0x3941)
#define P_HEVC_MC_MPORT_DAT (volatile unsigned int *)((0x3941 << 2) + 0xff620000)
#define HEVC_MC_WT_PRED_CTRL (0x3942)
#define P_HEVC_MC_WT_PRED_CTRL (volatile unsigned int *)((0x3942 << 2) + 0xff620000)
#define HEVC_MC_MBBOT_ST_EVEN_ADDR (0x3944)
#define P_HEVC_MC_MBBOT_ST_EVEN_ADDR (volatile unsigned int *)((0x3944 << 2) + 0xff620000)
#define HEVC_MC_MBBOT_ST_ODD_ADDR (0x3945)
#define P_HEVC_MC_MBBOT_ST_ODD_ADDR (volatile unsigned int *)((0x3945 << 2) + 0xff620000)
#define HEVC_MC_DPDN_MB_XY (0x3946)
#define P_HEVC_MC_DPDN_MB_XY (volatile unsigned int *)((0x3946 << 2) + 0xff620000)
#define HEVC_MC_OMDN_MB_XY (0x3947)
#define P_HEVC_MC_OMDN_MB_XY (volatile unsigned int *)((0x3947 << 2) + 0xff620000)
#define HEVC_MC_HCMDBUF_H (0x3948)
#define P_HEVC_MC_HCMDBUF_H (volatile unsigned int *)((0x3948 << 2) + 0xff620000)
#define HEVC_MC_HCMDBUF_L (0x3949)
#define P_HEVC_MC_HCMDBUF_L (volatile unsigned int *)((0x3949 << 2) + 0xff620000)
#define HEVC_MC_HCMD_H (0x394a)
#define P_HEVC_MC_HCMD_H (volatile unsigned int *)((0x394a << 2) + 0xff620000)
#define HEVC_MC_HCMD_L (0x394b)
#define P_HEVC_MC_HCMD_L (volatile unsigned int *)((0x394b << 2) + 0xff620000)
#define HEVC_MC_IDCT_DAT (0x394c)
#define P_HEVC_MC_IDCT_DAT (volatile unsigned int *)((0x394c << 2) + 0xff620000)
#define HEVC_MC_CTRL_GCLK_CTRL (0x394d)
#define P_HEVC_MC_CTRL_GCLK_CTRL (volatile unsigned int *)((0x394d << 2) + 0xff620000)
#define HEVC_MC_OTHER_GCLK_CTRL (0x394e)
#define P_HEVC_MC_OTHER_GCLK_CTRL (volatile unsigned int *)((0x394e << 2) + 0xff620000)
//Bit 29:24, mbbot thread ID and token
//Bit 21:16, mc read/write thread ID and token
//Bit 13:8, mbbot pre-arbitor burst number
//Bit 5:0, mc pre-arbitor burst number
#define HEVC_MC_CTRL2 (0x394f)
#define P_HEVC_MC_CTRL2 (volatile unsigned int *)((0x394f << 2) + 0xff620000)
// `define DBLK_QUANT 8'h76 // ONLY for $ucode/real/amrisc/rv.s, reg value from apollo
//`define ANC1_CANVAS_ADDR 8'h80
//`define ANC2_CANVAS_ADDR 8'h81
//`define REC_CANVAS_ADDR 8'h89
//`define MDEC_PIC_W 8'h8c
//`define MDEC_PIC_H 8'h8d
// mdec_pic_dc_mux_ctrl[31] -- mcr_hevc_mode
#define HEVC_MDEC_PIC_DC_MUX_CTRL (0x398d)
#define P_HEVC_MDEC_PIC_DC_MUX_CTRL (volatile unsigned int *)((0x398d << 2) + 0xff620000)
#define HEVC_MDEC_PIC_DC_CTRL (0x398e)
#define P_HEVC_MDEC_PIC_DC_CTRL (volatile unsigned int *)((0x398e << 2) + 0xff620000)
#define HEVC_MDEC_PIC_DC_STATUS (0x398f)
#define P_HEVC_MDEC_PIC_DC_STATUS (volatile unsigned int *)((0x398f << 2) + 0xff620000)
#define HEVC_ANC0_CANVAS_ADDR (0x3990)
#define P_HEVC_ANC0_CANVAS_ADDR (volatile unsigned int *)((0x3990 << 2) + 0xff620000)
#define HEVC_ANC1_CANVAS_ADDR (0x3991)
#define P_HEVC_ANC1_CANVAS_ADDR (volatile unsigned int *)((0x3991 << 2) + 0xff620000)
#define HEVC_ANC2_CANVAS_ADDR (0x3992)
#define P_HEVC_ANC2_CANVAS_ADDR (volatile unsigned int *)((0x3992 << 2) + 0xff620000)
#define HEVC_ANC3_CANVAS_ADDR (0x3993)
#define P_HEVC_ANC3_CANVAS_ADDR (volatile unsigned int *)((0x3993 << 2) + 0xff620000)
#define HEVC_ANC4_CANVAS_ADDR (0x3994)
#define P_HEVC_ANC4_CANVAS_ADDR (volatile unsigned int *)((0x3994 << 2) + 0xff620000)
#define HEVC_ANC5_CANVAS_ADDR (0x3995)
#define P_HEVC_ANC5_CANVAS_ADDR (volatile unsigned int *)((0x3995 << 2) + 0xff620000)
#define HEVC_ANC6_CANVAS_ADDR (0x3996)
#define P_HEVC_ANC6_CANVAS_ADDR (volatile unsigned int *)((0x3996 << 2) + 0xff620000)
#define HEVC_ANC7_CANVAS_ADDR (0x3997)
#define P_HEVC_ANC7_CANVAS_ADDR (volatile unsigned int *)((0x3997 << 2) + 0xff620000)
#define HEVC_ANC8_CANVAS_ADDR (0x3998)
#define P_HEVC_ANC8_CANVAS_ADDR (volatile unsigned int *)((0x3998 << 2) + 0xff620000)
#define HEVC_ANC9_CANVAS_ADDR (0x3999)
#define P_HEVC_ANC9_CANVAS_ADDR (volatile unsigned int *)((0x3999 << 2) + 0xff620000)
#define HEVC_ANC10_CANVAS_ADDR (0x399a)
#define P_HEVC_ANC10_CANVAS_ADDR (volatile unsigned int *)((0x399a << 2) + 0xff620000)
#define HEVC_ANC11_CANVAS_ADDR (0x399b)
#define P_HEVC_ANC11_CANVAS_ADDR (volatile unsigned int *)((0x399b << 2) + 0xff620000)
#define HEVC_ANC12_CANVAS_ADDR (0x399c)
#define P_HEVC_ANC12_CANVAS_ADDR (volatile unsigned int *)((0x399c << 2) + 0xff620000)
#define HEVC_ANC13_CANVAS_ADDR (0x399d)
#define P_HEVC_ANC13_CANVAS_ADDR (volatile unsigned int *)((0x399d << 2) + 0xff620000)
#define HEVC_ANC14_CANVAS_ADDR (0x399e)
#define P_HEVC_ANC14_CANVAS_ADDR (volatile unsigned int *)((0x399e << 2) + 0xff620000)
#define HEVC_ANC15_CANVAS_ADDR (0x399f)
#define P_HEVC_ANC15_CANVAS_ADDR (volatile unsigned int *)((0x399f << 2) + 0xff620000)
#define HEVC_ANC16_CANVAS_ADDR (0x39a0)
#define P_HEVC_ANC16_CANVAS_ADDR (volatile unsigned int *)((0x39a0 << 2) + 0xff620000)
#define HEVC_ANC17_CANVAS_ADDR (0x39a1)
#define P_HEVC_ANC17_CANVAS_ADDR (volatile unsigned int *)((0x39a1 << 2) + 0xff620000)
#define HEVC_ANC18_CANVAS_ADDR (0x39a2)
#define P_HEVC_ANC18_CANVAS_ADDR (volatile unsigned int *)((0x39a2 << 2) + 0xff620000)
#define HEVC_ANC19_CANVAS_ADDR (0x39a3)
#define P_HEVC_ANC19_CANVAS_ADDR (volatile unsigned int *)((0x39a3 << 2) + 0xff620000)
#define HEVC_ANC20_CANVAS_ADDR (0x39a4)
#define P_HEVC_ANC20_CANVAS_ADDR (volatile unsigned int *)((0x39a4 << 2) + 0xff620000)
#define HEVC_ANC21_CANVAS_ADDR (0x39a5)
#define P_HEVC_ANC21_CANVAS_ADDR (volatile unsigned int *)((0x39a5 << 2) + 0xff620000)
#define HEVC_ANC22_CANVAS_ADDR (0x39a6)
#define P_HEVC_ANC22_CANVAS_ADDR (volatile unsigned int *)((0x39a6 << 2) + 0xff620000)
#define HEVC_ANC23_CANVAS_ADDR (0x39a7)
#define P_HEVC_ANC23_CANVAS_ADDR (volatile unsigned int *)((0x39a7 << 2) + 0xff620000)
#define HEVC_ANC24_CANVAS_ADDR (0x39a8)
#define P_HEVC_ANC24_CANVAS_ADDR (volatile unsigned int *)((0x39a8 << 2) + 0xff620000)
#define HEVC_ANC25_CANVAS_ADDR (0x39a9)
#define P_HEVC_ANC25_CANVAS_ADDR (volatile unsigned int *)((0x39a9 << 2) + 0xff620000)
#define HEVC_ANC26_CANVAS_ADDR (0x39aa)
#define P_HEVC_ANC26_CANVAS_ADDR (volatile unsigned int *)((0x39aa << 2) + 0xff620000)
#define HEVC_ANC27_CANVAS_ADDR (0x39ab)
#define P_HEVC_ANC27_CANVAS_ADDR (volatile unsigned int *)((0x39ab << 2) + 0xff620000)
#define HEVC_ANC28_CANVAS_ADDR (0x39ac)
#define P_HEVC_ANC28_CANVAS_ADDR (volatile unsigned int *)((0x39ac << 2) + 0xff620000)
#define HEVC_ANC29_CANVAS_ADDR (0x39ad)
#define P_HEVC_ANC29_CANVAS_ADDR (volatile unsigned int *)((0x39ad << 2) + 0xff620000)
#define HEVC_ANC30_CANVAS_ADDR (0x39ae)
#define P_HEVC_ANC30_CANVAS_ADDR (volatile unsigned int *)((0x39ae << 2) + 0xff620000)
#define HEVC_ANC31_CANVAS_ADDR (0x39af)
#define P_HEVC_ANC31_CANVAS_ADDR (volatile unsigned int *)((0x39af << 2) + 0xff620000)
#define HEVC_DBKR_CANVAS_ADDR (0x39b0)
#define P_HEVC_DBKR_CANVAS_ADDR (volatile unsigned int *)((0x39b0 << 2) + 0xff620000)
#define HEVC_DBKW_CANVAS_ADDR (0x39b1)
#define P_HEVC_DBKW_CANVAS_ADDR (volatile unsigned int *)((0x39b1 << 2) + 0xff620000)
#define HEVC_REC_CANVAS_ADDR (0x39b2)
#define P_HEVC_REC_CANVAS_ADDR (volatile unsigned int *)((0x39b2 << 2) + 0xff620000)
//28:24, read/write, current canvas idx, used in h264 only now
//23:0, read only, current canvas address, 23:16, Cr canvas addr, 15:8, Cb canvas addr, 7:0, Y canvas addr
#define HEVC_CURR_CANVAS_CTRL (0x39b3)
#define P_HEVC_CURR_CANVAS_CTRL (volatile unsigned int *)((0x39b3 << 2) + 0xff620000)
#define HEVC_MDEC_PIC_DC_THRESH (0x39b8)
#define P_HEVC_MDEC_PIC_DC_THRESH (volatile unsigned int *)((0x39b8 << 2) + 0xff620000)
#define HEVC_MDEC_PICR_BUF_STATUS (0x39b9)
#define P_HEVC_MDEC_PICR_BUF_STATUS (volatile unsigned int *)((0x39b9 << 2) + 0xff620000)
#define HEVC_MDEC_PICW_BUF_STATUS (0x39ba)
#define P_HEVC_MDEC_PICW_BUF_STATUS (volatile unsigned int *)((0x39ba << 2) + 0xff620000)
#define HEVC_MCW_DBLK_WRRSP_CNT (0x39bb)
#define P_HEVC_MCW_DBLK_WRRSP_CNT (volatile unsigned int *)((0x39bb << 2) + 0xff620000)
#define HEVC_MC_MBBOT_WRRSP_CNT (0x39bc)
#define P_HEVC_MC_MBBOT_WRRSP_CNT (volatile unsigned int *)((0x39bc << 2) + 0xff620000)
#define HEVC_MDEC_PICW_BUF2_STATUS (0x39bd)
#define P_HEVC_MDEC_PICW_BUF2_STATUS (volatile unsigned int *)((0x39bd << 2) + 0xff620000)
#define HEVC_WRRSP_FIFO_PICW_DBK (0x39be)
#define P_HEVC_WRRSP_FIFO_PICW_DBK (volatile unsigned int *)((0x39be << 2) + 0xff620000)
#define HEVC_WRRSP_FIFO_PICW_MC (0x39bf)
#define P_HEVC_WRRSP_FIFO_PICW_MC (volatile unsigned int *)((0x39bf << 2) + 0xff620000)
#define HEVC_AV_SCRATCH_0 (0x39c0)
#define P_HEVC_AV_SCRATCH_0 (volatile unsigned int *)((0x39c0 << 2) + 0xff620000)
#define HEVC_AV_SCRATCH_1 (0x39c1)
#define P_HEVC_AV_SCRATCH_1 (volatile unsigned int *)((0x39c1 << 2) + 0xff620000)
#define HEVC_AV_SCRATCH_2 (0x39c2)
#define P_HEVC_AV_SCRATCH_2 (volatile unsigned int *)((0x39c2 << 2) + 0xff620000)
#define HEVC_AV_SCRATCH_3 (0x39c3)
#define P_HEVC_AV_SCRATCH_3 (volatile unsigned int *)((0x39c3 << 2) + 0xff620000)
#define HEVC_AV_SCRATCH_4 (0x39c4)
#define P_HEVC_AV_SCRATCH_4 (volatile unsigned int *)((0x39c4 << 2) + 0xff620000)
#define HEVC_AV_SCRATCH_5 (0x39c5)
#define P_HEVC_AV_SCRATCH_5 (volatile unsigned int *)((0x39c5 << 2) + 0xff620000)
#define HEVC_AV_SCRATCH_6 (0x39c6)
#define P_HEVC_AV_SCRATCH_6 (volatile unsigned int *)((0x39c6 << 2) + 0xff620000)
#define HEVC_AV_SCRATCH_7 (0x39c7)
#define P_HEVC_AV_SCRATCH_7 (volatile unsigned int *)((0x39c7 << 2) + 0xff620000)
#define HEVC_AV_SCRATCH_8 (0x39c8)
#define P_HEVC_AV_SCRATCH_8 (volatile unsigned int *)((0x39c8 << 2) + 0xff620000)
#define HEVC_AV_SCRATCH_9 (0x39c9)
#define P_HEVC_AV_SCRATCH_9 (volatile unsigned int *)((0x39c9 << 2) + 0xff620000)
#define HEVC_AV_SCRATCH_A (0x39ca)
#define P_HEVC_AV_SCRATCH_A (volatile unsigned int *)((0x39ca << 2) + 0xff620000)
#define HEVC_AV_SCRATCH_B (0x39cb)
#define P_HEVC_AV_SCRATCH_B (volatile unsigned int *)((0x39cb << 2) + 0xff620000)
#define HEVC_AV_SCRATCH_C (0x39cc)
#define P_HEVC_AV_SCRATCH_C (volatile unsigned int *)((0x39cc << 2) + 0xff620000)
#define HEVC_AV_SCRATCH_D (0x39cd)
#define P_HEVC_AV_SCRATCH_D (volatile unsigned int *)((0x39cd << 2) + 0xff620000)
#define HEVC_AV_SCRATCH_E (0x39ce)
#define P_HEVC_AV_SCRATCH_E (volatile unsigned int *)((0x39ce << 2) + 0xff620000)
#define HEVC_AV_SCRATCH_F (0x39cf)
#define P_HEVC_AV_SCRATCH_F (volatile unsigned int *)((0x39cf << 2) + 0xff620000)
#define HEVC_AV_SCRATCH_G (0x39d0)
#define P_HEVC_AV_SCRATCH_G (volatile unsigned int *)((0x39d0 << 2) + 0xff620000)
#define HEVC_AV_SCRATCH_H (0x39d1)
#define P_HEVC_AV_SCRATCH_H (volatile unsigned int *)((0x39d1 << 2) + 0xff620000)
#define HEVC_AV_SCRATCH_I (0x39d2)
#define P_HEVC_AV_SCRATCH_I (volatile unsigned int *)((0x39d2 << 2) + 0xff620000)
#define HEVC_AV_SCRATCH_J (0x39d3)
#define P_HEVC_AV_SCRATCH_J (volatile unsigned int *)((0x39d3 << 2) + 0xff620000)
#define HEVC_AV_SCRATCH_K (0x39d4)
#define P_HEVC_AV_SCRATCH_K (volatile unsigned int *)((0x39d4 << 2) + 0xff620000)
#define HEVC_AV_SCRATCH_L (0x39d5)
#define P_HEVC_AV_SCRATCH_L (volatile unsigned int *)((0x39d5 << 2) + 0xff620000)
#define HEVC_AV_SCRATCH_M (0x39d6)
#define P_HEVC_AV_SCRATCH_M (volatile unsigned int *)((0x39d6 << 2) + 0xff620000)
#define HEVC_AV_SCRATCH_N (0x39d7)
#define P_HEVC_AV_SCRATCH_N (volatile unsigned int *)((0x39d7 << 2) + 0xff620000)
// bit[29:24] A_brst_num_co_mb
// bit[21:16] A_id_co_mb
// bit[11:0] wrrsp_count_co_mb
#define HEVC_WRRSP_CO_MB (0x39d8)
#define P_HEVC_WRRSP_CO_MB (volatile unsigned int *)((0x39d8 << 2) + 0xff620000)
// bit[29:24] A_brst_num_dcac
// bit[21:16] A_id_dcac
// bit[11:0] wrrsp_count_dcac
#define HEVC_WRRSP_DCAC (0x39d9)
#define P_HEVC_WRRSP_DCAC (volatile unsigned int *)((0x39d9 << 2) + 0xff620000)
// bit[11:0] wrrsp_count_vld
#define HEVC_WRRSP_VLD (0x39da)
#define P_HEVC_WRRSP_VLD (volatile unsigned int *)((0x39da << 2) + 0xff620000)
// doublew_cfg0[0]; // Second Channel Enable, 1:Enable 0:Disable
// doublew_cfg0[3:1]; // [2:0] Endian Control for Luma
// doublew_cfg0[5:4]; // [1:0] Pixel sel by horizontal, 0x:1/2 10:left 11:right
// doublew_cfg0[7:6]; // [1:0] Pixel sel by vertical, 0x:1/2 10:up 11:down
// doublew_cfg0[8]; // Size by horizontal, 0:original size 1: 1/2 shrunken size
// doublew_cfg0[9]; // Size by vertical, 0:original size 1: 1/2 shrunken size
// doublew_cfg0[10]; // 1:Round 0:Truncation
// doublew_cfg0[11]; // DMA Urgent
// doublew_cfg0[17:12]; // [5:0] DMA Burst Number
// doublew_cfg0[23:18]; // [5:0] DMA ID
// doublew_cfg0[26:24]; // [2:0] Endian Control for Chroma
// doublew_cfg0[27]; // Source from, 1:MCW 0:DBLK
// doublew_cfg0[29:28]; // [1:0] 0x:select both top and bottom 10:select top 11:select bottom
// doublew_cfg0[30]; // 0:no merge 1:automatic merge
// doublew_cfg0[31]; // 0:Y addr no change 1:Y addr divided to half
#define HEVC_MDEC_DOUBLEW_CFG0 (0x39db)
#define P_HEVC_MDEC_DOUBLEW_CFG0 (volatile unsigned int *)((0x39db << 2) + 0xff620000)
// doublew_cfg1[7:0]; // [7:0] DMA Canvas Address for Luma
// doublew_cfg1[15:8]; // [7:0] DMA Canvas Address for Chroma
// doublew_cfg1[16]; // Disable 1st Write -
// doublew_cfg1[17]; // Reverse to original version -
// doublew_cfg1[18]; // DMA Address Mode - 0:Canvas Mode 1:Non-Canvas Mode
#define HEVC_MDEC_DOUBLEW_CFG1 (0x39dc)
#define P_HEVC_MDEC_DOUBLEW_CFG1 (volatile unsigned int *)((0x39dc << 2) + 0xff620000)
// doublew_cfg2[11:0]; //[11:0] vertical flip initial value
// doublew_cfg2[15]; // vertical flip enable
// doublew_cfg2[24:16]; // [8:0] horizontal flip initial value
// doublew_cfg2[31]; // horizontal flip enable
#define HEVC_MDEC_DOUBLEW_CFG2 (0x39dd)
#define P_HEVC_MDEC_DOUBLEW_CFG2 (volatile unsigned int *)((0x39dd << 2) + 0xff620000)
// doublew_cfg3[31:0]; //[31:0] non-canvas start address for Luma -
#define HEVC_MDEC_DOUBLEW_CFG3 (0x39de)
#define P_HEVC_MDEC_DOUBLEW_CFG3 (volatile unsigned int *)((0x39de << 2) + 0xff620000)
// doublew_cfg4[31:0]; //[31:0] non-canvas start address for Chroma -
#define HEVC_MDEC_DOUBLEW_CFG4 (0x39df)
#define P_HEVC_MDEC_DOUBLEW_CFG4 (volatile unsigned int *)((0x39df << 2) + 0xff620000)
// doublew_cfg5[12:0]; //[12:0] non-canvas picture width for Luma -
// doublew_cfg5[28:16]; //[12:0] non-canvas picture width for Chroma -
#define HEVC_MDEC_DOUBLEW_CFG5 (0x39e0)
#define P_HEVC_MDEC_DOUBLEW_CFG5 (volatile unsigned int *)((0x39e0 << 2) + 0xff620000)
// doublew_cfg6: reserved
#define HEVC_MDEC_DOUBLEW_CFG6 (0x39e1)
#define P_HEVC_MDEC_DOUBLEW_CFG6 (volatile unsigned int *)((0x39e1 << 2) + 0xff620000)
// doublew_cfg7: reserved
#define HEVC_MDEC_DOUBLEW_CFG7 (0x39e2)
#define P_HEVC_MDEC_DOUBLEW_CFG7 (volatile unsigned int *)((0x39e2 << 2) + 0xff620000)
// doublew_status[11:0];//[11:0] wrrsp_count_doublew
// doublew_status[12]; // doublew_status_busy
// doublew_status[13]; // doublew_status_error
#define HEVC_MDEC_DOUBLEW_STATUS (0x39e3)
#define P_HEVC_MDEC_DOUBLEW_STATUS (volatile unsigned int *)((0x39e3 << 2) + 0xff620000)
#define HEVC_MDEC_EXTIF_CFG0 (0x39e4)
#define P_HEVC_MDEC_EXTIF_CFG0 (volatile unsigned int *)((0x39e4 << 2) + 0xff620000)
#define HEVC_MDEC_EXTIF_CFG1 (0x39e5)
#define P_HEVC_MDEC_EXTIF_CFG1 (volatile unsigned int *)((0x39e5 << 2) + 0xff620000)
#define HEVC_MDEC_EXTIF_STS0 (0x39e6)
#define P_HEVC_MDEC_EXTIF_STS0 (volatile unsigned int *)((0x39e6 << 2) + 0xff620000)
//======================================
// MC Control Register Bits
//
//======================================
// For bits, just copy the defines...don't translate to addresses
//`define MC_RESET 16'h0002
//======================================
// MB Info Register Bits
//
//======================================
//======================================
// MB Info Register Bits
//
//======================================
//========================================================================
// DBLK Register: 12'h950 - 12'h97f
//========================================================================
#define HEVC_DBLK_RST (0x3950)
#define P_HEVC_DBLK_RST (volatile unsigned int *)((0x3950 << 2) + 0xff620000)
#define HEVC_DBLK_CTRL (0x3951)
#define P_HEVC_DBLK_CTRL (volatile unsigned int *)((0x3951 << 2) + 0xff620000)
#define HEVC_DBLK_MB_WID_HEIGHT (0x3952)
#define P_HEVC_DBLK_MB_WID_HEIGHT (volatile unsigned int *)((0x3952 << 2) + 0xff620000)
#define HEVC_DBLK_STATUS (0x3953)
#define P_HEVC_DBLK_STATUS (volatile unsigned int *)((0x3953 << 2) + 0xff620000)
#define HEVC_DBLK_CMD_CTRL (0x3954)
#define P_HEVC_DBLK_CMD_CTRL (volatile unsigned int *)((0x3954 << 2) + 0xff620000)
#define HEVC_DBLK_MB_XY (0x3955)
#define P_HEVC_DBLK_MB_XY (volatile unsigned int *)((0x3955 << 2) + 0xff620000)
#define HEVC_DBLK_QP (0x3956)
#define P_HEVC_DBLK_QP (volatile unsigned int *)((0x3956 << 2) + 0xff620000)
#define HEVC_DBLK_Y_BHFILT (0x3957)
#define P_HEVC_DBLK_Y_BHFILT (volatile unsigned int *)((0x3957 << 2) + 0xff620000)
#define HEVC_DBLK_Y_BHFILT_HIGH (0x3958)
#define P_HEVC_DBLK_Y_BHFILT_HIGH (volatile unsigned int *)((0x3958 << 2) + 0xff620000)
#define HEVC_DBLK_Y_BVFILT (0x3959)
#define P_HEVC_DBLK_Y_BVFILT (volatile unsigned int *)((0x3959 << 2) + 0xff620000)
#define HEVC_DBLK_CB_BFILT (0x395a)
#define P_HEVC_DBLK_CB_BFILT (volatile unsigned int *)((0x395a << 2) + 0xff620000)
#define HEVC_DBLK_CR_BFILT (0x395b)
#define P_HEVC_DBLK_CR_BFILT (volatile unsigned int *)((0x395b << 2) + 0xff620000)
#define HEVC_DBLK_Y_HFILT (0x395c)
#define P_HEVC_DBLK_Y_HFILT (volatile unsigned int *)((0x395c << 2) + 0xff620000)
#define HEVC_DBLK_Y_HFILT_HIGH (0x395d)
#define P_HEVC_DBLK_Y_HFILT_HIGH (volatile unsigned int *)((0x395d << 2) + 0xff620000)
#define HEVC_DBLK_Y_VFILT (0x395e)
#define P_HEVC_DBLK_Y_VFILT (volatile unsigned int *)((0x395e << 2) + 0xff620000)
#define HEVC_DBLK_CB_FILT (0x395f)
#define P_HEVC_DBLK_CB_FILT (volatile unsigned int *)((0x395f << 2) + 0xff620000)
#define HEVC_DBLK_CR_FILT (0x3960)
#define P_HEVC_DBLK_CR_FILT (volatile unsigned int *)((0x3960 << 2) + 0xff620000)
#define HEVC_DBLK_BETAX_QP_SEL (0x3961)
#define P_HEVC_DBLK_BETAX_QP_SEL (volatile unsigned int *)((0x3961 << 2) + 0xff620000)
#define HEVC_DBLK_CLIP_CTRL0 (0x3962)
#define P_HEVC_DBLK_CLIP_CTRL0 (volatile unsigned int *)((0x3962 << 2) + 0xff620000)
#define HEVC_DBLK_CLIP_CTRL1 (0x3963)
#define P_HEVC_DBLK_CLIP_CTRL1 (volatile unsigned int *)((0x3963 << 2) + 0xff620000)
#define HEVC_DBLK_CLIP_CTRL2 (0x3964)
#define P_HEVC_DBLK_CLIP_CTRL2 (volatile unsigned int *)((0x3964 << 2) + 0xff620000)
#define HEVC_DBLK_CLIP_CTRL3 (0x3965)
#define P_HEVC_DBLK_CLIP_CTRL3 (volatile unsigned int *)((0x3965 << 2) + 0xff620000)
#define HEVC_DBLK_CLIP_CTRL4 (0x3966)
#define P_HEVC_DBLK_CLIP_CTRL4 (volatile unsigned int *)((0x3966 << 2) + 0xff620000)
#define HEVC_DBLK_CLIP_CTRL5 (0x3967)
#define P_HEVC_DBLK_CLIP_CTRL5 (volatile unsigned int *)((0x3967 << 2) + 0xff620000)
#define HEVC_DBLK_CLIP_CTRL6 (0x3968)
#define P_HEVC_DBLK_CLIP_CTRL6 (volatile unsigned int *)((0x3968 << 2) + 0xff620000)
#define HEVC_DBLK_CLIP_CTRL7 (0x3969)
#define P_HEVC_DBLK_CLIP_CTRL7 (volatile unsigned int *)((0x3969 << 2) + 0xff620000)
#define HEVC_DBLK_CLIP_CTRL8 (0x396a)
#define P_HEVC_DBLK_CLIP_CTRL8 (volatile unsigned int *)((0x396a << 2) + 0xff620000)
#define HEVC_DBLK_STATUS1 (0x396b)
#define P_HEVC_DBLK_STATUS1 (volatile unsigned int *)((0x396b << 2) + 0xff620000)
#define HEVC_DBLK_GCLK_FREE (0x396c)
#define P_HEVC_DBLK_GCLK_FREE (volatile unsigned int *)((0x396c << 2) + 0xff620000)
#define HEVC_DBLK_GCLK_OFF (0x396d)
#define P_HEVC_DBLK_GCLK_OFF (volatile unsigned int *)((0x396d << 2) + 0xff620000)
#define HEVC_DBLK_AVSFLAGS (0x396e)
#define P_HEVC_DBLK_AVSFLAGS (volatile unsigned int *)((0x396e << 2) + 0xff620000)
// bit 15:0
#define HEVC_DBLK_CBPY (0x3970)
#define P_HEVC_DBLK_CBPY (volatile unsigned int *)((0x3970 << 2) + 0xff620000)
// bit 11:8 -- deblk_cbpy_bottom
// bit 7:4 -- deblk_cbpy_left
// bit 3:0 -- deblk_cbpy_top
#define HEVC_DBLK_CBPY_ADJ (0x3971)
#define P_HEVC_DBLK_CBPY_ADJ (volatile unsigned int *)((0x3971 << 2) + 0xff620000)
// bit 7:0 -- deblk_cbpc
#define HEVC_DBLK_CBPC (0x3972)
#define P_HEVC_DBLK_CBPC (volatile unsigned int *)((0x3972 << 2) + 0xff620000)
// bit 15 -- bottom_mb
// bit 14 -- left_mb
// bit 13 -- top_mb
// bit 12 -- reserved
// bit 11:8 -- deblk_cbpc_bottom
// bit 7:4 -- deblk_cbpc_left
// bit 3:0 -- deblk_cbpc_top
#define HEVC_DBLK_CBPC_ADJ (0x3973)
#define P_HEVC_DBLK_CBPC_ADJ (volatile unsigned int *)((0x3973 << 2) + 0xff620000)
// bit 15:8 -- deblk_hmvd -- {left_1, left_0, below_1, below_0, block3-0}
// bit 7:0 -- deblk_vmvd -- {top_1, top_0, below_1, below_0, block3-0}
#define HEVC_DBLK_VHMVD (0x3974)
#define P_HEVC_DBLK_VHMVD (volatile unsigned int *)((0x3974 << 2) + 0xff620000)
// bit 13:12 -- right_vmvd
// bit 11 -- right_above_vmvd
// bit 10 -- left_below_hmvd
// bit 9 -- disable_dblk_luma
// bit 8 -- disable_dblk_chroma
// bit 7 -- bBelowRefDiff
// bit 6 -- bLeftRefDiff
// bit 5 -- bAboveRefDiff
// bit 4 -- reserved
// bit 3 -- s_below
// bit 2 -- s_left
// bit 1 -- s_above
// bit 0 -- s
#define HEVC_DBLK_STRONG (0x3975)
#define P_HEVC_DBLK_STRONG (volatile unsigned int *)((0x3975 << 2) + 0xff620000)
// bit 14:10 -- PQUANT
// bit 9:5 -- left_PQUANT
// bit 4:0 -- top_PQUANT
#define HEVC_DBLK_RV8_QUANT (0x3976)
#define P_HEVC_DBLK_RV8_QUANT (volatile unsigned int *)((0x3976 << 2) + 0xff620000)
#define HEVC_DBLK_CBUS_HCMD2 (0x3977)
#define P_HEVC_DBLK_CBUS_HCMD2 (volatile unsigned int *)((0x3977 << 2) + 0xff620000)
#define HEVC_DBLK_CBUS_HCMD1 (0x3978)
#define P_HEVC_DBLK_CBUS_HCMD1 (volatile unsigned int *)((0x3978 << 2) + 0xff620000)
#define HEVC_DBLK_CBUS_HCMD0 (0x3979)
#define P_HEVC_DBLK_CBUS_HCMD0 (volatile unsigned int *)((0x3979 << 2) + 0xff620000)
#define HEVC_DBLK_VLD_HCMD2 (0x397a)
#define P_HEVC_DBLK_VLD_HCMD2 (volatile unsigned int *)((0x397a << 2) + 0xff620000)
#define HEVC_DBLK_VLD_HCMD1 (0x397b)
#define P_HEVC_DBLK_VLD_HCMD1 (volatile unsigned int *)((0x397b << 2) + 0xff620000)
#define HEVC_DBLK_VLD_HCMD0 (0x397c)
#define P_HEVC_DBLK_VLD_HCMD0 (volatile unsigned int *)((0x397c << 2) + 0xff620000)
#define HEVC_DBLK_OST_YBASE (0x397d)
#define P_HEVC_DBLK_OST_YBASE (volatile unsigned int *)((0x397d << 2) + 0xff620000)
#define HEVC_DBLK_OST_CBCRDIFF (0x397e)
#define P_HEVC_DBLK_OST_CBCRDIFF (volatile unsigned int *)((0x397e << 2) + 0xff620000)
//13:8 dblk thread ID and token
//5:0 dblk prearbitor burst num
#define HEVC_DBLK_CTRL1 (0x397f)
#define P_HEVC_DBLK_CTRL1 (volatile unsigned int *)((0x397f << 2) + 0xff620000)
// MCRCC_CTL1
// 31:3 <reserved[23:0]>
// 2 <cfg_field_pic>
// 1 <sw_rst>
// 0 <bypass_en>
#define HEVC_MCRCC_CTL1 (0x3980)
#define P_HEVC_MCRCC_CTL1 (volatile unsigned int *)((0x3980 << 2) + 0xff620000)
// MCRCC_CTL2
// 31:24 <cfg_cache_anc01_c[7:0]>
// 23:16 <cfg_cache_anc01_y[7:0]>
// 15:8 <cfg_cache_anc00_c[7:0]>
// 7:0 <cfg_cache_anc00_y[7:0]>
#define HEVC_MCRCC_CTL2 (0x3981)
#define P_HEVC_MCRCC_CTL2 (volatile unsigned int *)((0x3981 << 2) + 0xff620000)
// MCRCC_CTL3
// 31:24 <cfg_cache_anc11_c[7:0]>
// 23:16 <cfg_cache_anc11_y[7:0]>
// 15:8 <cfg_cache_anc10_c[7:0]>
// 7:0 <cfg_cache_anc10_y[7:0]>
#define HEVC_MCRCC_CTL3 (0x3982)
#define P_HEVC_MCRCC_CTL3 (volatile unsigned int *)((0x3982 << 2) + 0xff620000)
// bit[31:10] reserved
// bit[9:0] sw_clock_gating control
// [9] vdec clk_en for assist and cbus.
// [8] vdec clk_en for ddr
// [7] vdec clk_en for vcpu
// [6] vdec clk_en for assist
// [5] vdec clk_en for dblk
// [4] vdec clk_en for iqidct
// [3] vdec clk_en for mc
// [2] vdec clk_en for pic_dc
// [1] vdec clk_en for psc
// [0] vdec clk_en for vld
#define HEVC_GCLK_EN (0x3983)
#define P_HEVC_GCLK_EN (volatile unsigned int *)((0x3983 << 2) + 0xff620000)
// [0] Reserved
// [1] Reserved
// [2] Reset assist, mdec's CBUS
// [3] Reset mdec's VLD
// [4] Reset mdec's VLD
// [5] Reset mdec's VLD
// [6] Reset mdec's IQIDCT
// [7] Reset mdec's MC
// [8] Reset mdec's DBLK
// [9] Reset mdec's PIC_DC
// [10] Reset mdec's Pscale
// [11] Reset vcpu's MCPU
// [12] Reset vcpu's CCPU
// [13] Reset mmc_pre_arb
#define HEVC_MDEC_SW_RESET (0x3984)
#define P_HEVC_MDEC_SW_RESET (volatile unsigned int *)((0x3984 << 2) + 0xff620000)
//DBLK last address 12'h97f
//
// Closing file: mdec_regs.h
//
//
// Reading file: vld_regs.h
//
//========================================================================
// VLD module level register offset
//========================================================================
// -----------------------------------------------
// CBUS_BASE: DOS_VDEC_VLD_CBUS_BASE = 0x0c
// -----------------------------------------------
#define HCODEC_VLD_STATUS_CTRL (0x1c00)
#define P_HCODEC_VLD_STATUS_CTRL (volatile unsigned int *)((0x1c00 << 2) + 0xff620000)
//
// bit 10 -- use_old_shift_en
// bit 9 -- output_mv_not_pmv
// bit 8:5 -- force_zigzag
// bit 4 -- force_zigzag_en
// bit 3 -- disable_viff_anempty_int
// bit 2 -- disable_m2_ac_coeff_one_cycle
// bit 1 -- forced_reset force reset pmv
// bit 0 -- mpeg_type 0:mpeg1 1: mpeg2
#define HCODEC_MPEG1_2_REG (0x1c01)
#define P_HCODEC_MPEG1_2_REG (volatile unsigned int *)((0x1c01 << 2) + 0xff620000)
#define HCODEC_F_CODE_REG (0x1c02)
#define P_HCODEC_F_CODE_REG (volatile unsigned int *)((0x1c02 << 2) + 0xff620000)
#define HCODEC_PIC_HEAD_INFO (0x1c03)
#define P_HCODEC_PIC_HEAD_INFO (volatile unsigned int *)((0x1c03 << 2) + 0xff620000)
#define HCODEC_SLICE_VER_POS_PIC_TYPE (0x1c04)
#define P_HCODEC_SLICE_VER_POS_PIC_TYPE (volatile unsigned int *)((0x1c04 << 2) + 0xff620000)
#define HCODEC_QP_VALUE_REG (0x1c05)
#define P_HCODEC_QP_VALUE_REG (volatile unsigned int *)((0x1c05 << 2) + 0xff620000)
#define HCODEC_MBA_INC (0x1c06)
#define P_HCODEC_MBA_INC (volatile unsigned int *)((0x1c06 << 2) + 0xff620000)
#define HCODEC_MB_MOTION_MODE (0x1c07)
#define P_HCODEC_MB_MOTION_MODE (volatile unsigned int *)((0x1c07 << 2) + 0xff620000)
//`define PACKET_BYTE_COUNT 8'h08
// bit 15 -- force_search_startcode_en
// bit 14 -- int_cpu_when_error (before do anything)
// bit 13 -- vld_error_reset
// bit 12 -- return_on_slice_header
// bit 6 -- jpeg_ff00_en
// bit 5:0 -- vld_power_ctl
#define HCODEC_POWER_CTL_VLD (0x1c08)
#define P_HCODEC_POWER_CTL_VLD (volatile unsigned int *)((0x1c08 << 2) + 0xff620000)
#define HCODEC_MB_WIDTH (0x1c09)
#define P_HCODEC_MB_WIDTH (volatile unsigned int *)((0x1c09 << 2) + 0xff620000)
#define HCODEC_SLICE_QP (0x1c0a)
#define P_HCODEC_SLICE_QP (volatile unsigned int *)((0x1c0a << 2) + 0xff620000)
// `define MB_X_MB_Y 8'h0b /* current MBX and MBY */
#define HCODEC_PRE_START_CODE (0x1c0b)
#define P_HCODEC_PRE_START_CODE (volatile unsigned int *)((0x1c0b << 2) + 0xff620000)
#define HCODEC_SLICE_START_BYTE_01 (0x1c0c)
#define P_HCODEC_SLICE_START_BYTE_01 (volatile unsigned int *)((0x1c0c << 2) + 0xff620000)
#define HCODEC_SLICE_START_BYTE_23 (0x1c0d)
#define P_HCODEC_SLICE_START_BYTE_23 (volatile unsigned int *)((0x1c0d << 2) + 0xff620000)
#define HCODEC_RESYNC_MARKER_LENGTH (0x1c0e)
#define P_HCODEC_RESYNC_MARKER_LENGTH (volatile unsigned int *)((0x1c0e << 2) + 0xff620000)
// bit[6:5] - frame/field info, 01 - top, 10 - bottom, 11 - frame
// bit[4:0] - buffer ID
// L0_BUFF_ID_0, L0_BUFF_ID_1, L1_BUFF_ID_0, L1_BUFF_ID_1
#define HCODEC_DECODER_BUFFER_INFO (0x1c0f)
#define P_HCODEC_DECODER_BUFFER_INFO (volatile unsigned int *)((0x1c0f << 2) + 0xff620000)
#define HCODEC_FST_FOR_MV_X (0x1c10)
#define P_HCODEC_FST_FOR_MV_X (volatile unsigned int *)((0x1c10 << 2) + 0xff620000)
#define HCODEC_FST_FOR_MV_Y (0x1c11)
#define P_HCODEC_FST_FOR_MV_Y (volatile unsigned int *)((0x1c11 << 2) + 0xff620000)
#define HCODEC_SCD_FOR_MV_X (0x1c12)
#define P_HCODEC_SCD_FOR_MV_X (volatile unsigned int *)((0x1c12 << 2) + 0xff620000)
#define HCODEC_SCD_FOR_MV_Y (0x1c13)
#define P_HCODEC_SCD_FOR_MV_Y (volatile unsigned int *)((0x1c13 << 2) + 0xff620000)
#define HCODEC_FST_BAK_MV_X (0x1c14)
#define P_HCODEC_FST_BAK_MV_X (volatile unsigned int *)((0x1c14 << 2) + 0xff620000)
#define HCODEC_FST_BAK_MV_Y (0x1c15)
#define P_HCODEC_FST_BAK_MV_Y (volatile unsigned int *)((0x1c15 << 2) + 0xff620000)
#define HCODEC_SCD_BAK_MV_X (0x1c16)
#define P_HCODEC_SCD_BAK_MV_X (volatile unsigned int *)((0x1c16 << 2) + 0xff620000)
#define HCODEC_SCD_BAK_MV_Y (0x1c17)
#define P_HCODEC_SCD_BAK_MV_Y (volatile unsigned int *)((0x1c17 << 2) + 0xff620000)
// Bit 7:4 -- read_buffer_interlace 0-progressive, 1-interlace, used in VC1
// bit 3 -- disable_new_stcode_search_fix // From GXM
// bit 2 -- weighting_prediction
// bit 1 -- mb_weighting_flag
// bit 0 -- slice_weighting_flag
#define HCODEC_VLD_DECODE_CONTROL (0x1c18)
#define P_HCODEC_VLD_DECODE_CONTROL (volatile unsigned int *)((0x1c18 << 2) + 0xff620000)
#define HCODEC_VLD_REVERVED_19 (0x1c19)
#define P_HCODEC_VLD_REVERVED_19 (volatile unsigned int *)((0x1c19 << 2) + 0xff620000)
#define HCODEC_VIFF_BIT_CNT (0x1c1a)
#define P_HCODEC_VIFF_BIT_CNT (volatile unsigned int *)((0x1c1a << 2) + 0xff620000)
#define HCODEC_BYTE_ALIGN_PEAK_HI (0x1c1b)
#define P_HCODEC_BYTE_ALIGN_PEAK_HI (volatile unsigned int *)((0x1c1b << 2) + 0xff620000)
#define HCODEC_BYTE_ALIGN_PEAK_LO (0x1c1c)
#define P_HCODEC_BYTE_ALIGN_PEAK_LO (volatile unsigned int *)((0x1c1c << 2) + 0xff620000)
#define HCODEC_NEXT_ALIGN_PEAK (0x1c1d)
#define P_HCODEC_NEXT_ALIGN_PEAK (volatile unsigned int *)((0x1c1d << 2) + 0xff620000)
// bit 31 : byte_aligned_zero_23_from_org // From GXM
// bit 30 : force_shift_out_drop_flag_zero // From GXM
// bit 29 : en_st_protect_from_org // From GXM
// bit 28 : enable_halt_decode_start_voff
// bit 27 : disable_C_pred_check
// bit 26 : disable_I4_pred_check
// bit 25 : disable_I16_pred_check
// bit 24 : check_avs_1st_drop
// bit 23 : enable_cabac_protect // From GXM
// bit 22 : enable_avs_drop_more
// bit 21 : reset_avs_drop_ptr
// bit 20 : reset_cabac_use_next_at_end_req
// bit 19 : vc1_inv_intra_co_mb_ref_rd
// bit 18 : vc1_inv_co_mb_ref_rd
// bit 17 : vc1_inv_intra_co_mb_ref_wr
// bit 16 : vc1_inv_co_mb_ref_wr
// bit 15 : disable_mv_cal_begin_only
// bit 14 : avs_drop_enable
// bit 13:12 : avs_drop_ptr
// bit 11:8 : avs_demu_ctl_reg
// bit 7 : avs_enable
// bit 6 : disable_dblk_hcmd
// bit 5 : disable_mc_hcmd
// bit 4 : first_mode3_set enable
// bit 3 : first_mode3
// bit 2:1 : vc1_profile 0-SP, 1-MP, 2-reserved, 3-AP
// bit 0 : vc1_enable
#define HCODEC_VC1_CONTROL_REG (0x1c1e)
#define P_HCODEC_VC1_CONTROL_REG (volatile unsigned int *)((0x1c1e << 2) + 0xff620000)
#define HCODEC_PMV1_X (0x1c20)
#define P_HCODEC_PMV1_X (volatile unsigned int *)((0x1c20 << 2) + 0xff620000)
#define HCODEC_PMV1_Y (0x1c21)
#define P_HCODEC_PMV1_Y (volatile unsigned int *)((0x1c21 << 2) + 0xff620000)
#define HCODEC_PMV2_X (0x1c22)
#define P_HCODEC_PMV2_X (volatile unsigned int *)((0x1c22 << 2) + 0xff620000)
#define HCODEC_PMV2_Y (0x1c23)
#define P_HCODEC_PMV2_Y (volatile unsigned int *)((0x1c23 << 2) + 0xff620000)
#define HCODEC_PMV3_X (0x1c24)
#define P_HCODEC_PMV3_X (volatile unsigned int *)((0x1c24 << 2) + 0xff620000)
#define HCODEC_PMV3_Y (0x1c25)
#define P_HCODEC_PMV3_Y (volatile unsigned int *)((0x1c25 << 2) + 0xff620000)
#define HCODEC_PMV4_X (0x1c26)
#define P_HCODEC_PMV4_X (volatile unsigned int *)((0x1c26 << 2) + 0xff620000)
#define HCODEC_PMV4_Y (0x1c27)
#define P_HCODEC_PMV4_Y (volatile unsigned int *)((0x1c27 << 2) + 0xff620000)
// Can't use the same address for different defines
// Therefore, create a single define that covers both
// Only appears to be used in micro-code since the VLD hardware is
// hard coded.
// `define M4_TABLE_SELECT 8'h28 // Does this exist in HW ? Added from register_mp2.h
// `define M4_TABLE_OUTPUT 8'h28 // Does this exist in HW ? Added from register_mp2.h
#define HCODEC_M4_TABLE_SELECT (0x1c28)
#define P_HCODEC_M4_TABLE_SELECT (volatile unsigned int *)((0x1c28 << 2) + 0xff620000)
#define HCODEC_M4_CONTROL_REG (0x1c29)
#define P_HCODEC_M4_CONTROL_REG (volatile unsigned int *)((0x1c29 << 2) + 0xff620000)
#define HCODEC_BLOCK_NUM (0x1c2a)
#define P_HCODEC_BLOCK_NUM (volatile unsigned int *)((0x1c2a << 2) + 0xff620000)
#define HCODEC_PATTERN_CODE (0x1c2b)
#define P_HCODEC_PATTERN_CODE (volatile unsigned int *)((0x1c2b << 2) + 0xff620000)
#define HCODEC_MB_INFO (0x1c2c)
#define P_HCODEC_MB_INFO (volatile unsigned int *)((0x1c2c << 2) + 0xff620000)
#define HCODEC_VLD_DC_PRED (0x1c2d)
#define P_HCODEC_VLD_DC_PRED (volatile unsigned int *)((0x1c2d << 2) + 0xff620000)
#define HCODEC_VLD_ERROR_MASK (0x1c2e)
#define P_HCODEC_VLD_ERROR_MASK (volatile unsigned int *)((0x1c2e << 2) + 0xff620000)
#define HCODEC_VLD_DC_PRED_C (0x1c2f)
#define P_HCODEC_VLD_DC_PRED_C (volatile unsigned int *)((0x1c2f << 2) + 0xff620000)
#define HCODEC_LAST_SLICE_MV_ADDR (0x1c30)
#define P_HCODEC_LAST_SLICE_MV_ADDR (volatile unsigned int *)((0x1c30 << 2) + 0xff620000)
#define HCODEC_LAST_MVX (0x1c31)
#define P_HCODEC_LAST_MVX (volatile unsigned int *)((0x1c31 << 2) + 0xff620000)
#define HCODEC_LAST_MVY (0x1c32)
#define P_HCODEC_LAST_MVY (volatile unsigned int *)((0x1c32 << 2) + 0xff620000)
#define HCODEC_VLD_C38 (0x1c38)
#define P_HCODEC_VLD_C38 (volatile unsigned int *)((0x1c38 << 2) + 0xff620000)
#define HCODEC_VLD_C39 (0x1c39)
#define P_HCODEC_VLD_C39 (volatile unsigned int *)((0x1c39 << 2) + 0xff620000)
#define HCODEC_VLD_STATUS (0x1c3a)
#define P_HCODEC_VLD_STATUS (volatile unsigned int *)((0x1c3a << 2) + 0xff620000)
#define HCODEC_VLD_SHIFT_STATUS (0x1c3b)
#define P_HCODEC_VLD_SHIFT_STATUS (volatile unsigned int *)((0x1c3b << 2) + 0xff620000)
// `define VLD_SHIFT_INFO 8'h3b // Does this exist in HW ? used in $ucode/mpeg4
#define HCODEC_VOFF_STATUS (0x1c3c)
#define P_HCODEC_VOFF_STATUS (volatile unsigned int *)((0x1c3c << 2) + 0xff620000)
#define HCODEC_VLD_C3D (0x1c3d)
#define P_HCODEC_VLD_C3D (volatile unsigned int *)((0x1c3d << 2) + 0xff620000)
#define HCODEC_VLD_DBG_INDEX (0x1c3e)
#define P_HCODEC_VLD_DBG_INDEX (volatile unsigned int *)((0x1c3e << 2) + 0xff620000)
// vld_buff_info -- (index == 0)
// Bit11] halt_decode_start_voff
// Bit10] C_pred_error
// Bit[9] I4_pred_error
// Bit[8] I16_pred_error
// Bit[7:6] mv_UR_ready_cnt;
// Bit[5] vld_wr_idx
// Bit[4] iq_rd_idx
// Bit[3] vld_vi_block_rdy_1
// Bit[2] vld_vi_block_rdy_2
// Bit[1] voff_empty_1
// Bit[0] voff_empty_2
// cabac_buff_info_0 -- (index == 1)
// Bit[31] shift_data_ready
// Bit[30:29] Reserved
// Bit[28:24] cabac_buffer_ptr
// Bit[23:0] cabac_buffer
// cabac_buff_info_1 -- (index == 2)
// Bit[31:29] Reserved
// Bit[28:20] Drange
// Bit[19:16] bin_count_4
// Bit[15:13] Reserved
// Bit[12:6] context_mem_do
// Bit[5:3] coeff_state
// Bit[2:0] mvd_state
// h264_mv_present -- (index == 3)
// Bit[31:16] mv_present_l0
// Bit[15:0] mv_present_l1
// h264_mv_cal_info_0 -- (index == 4)
// [31:28] mv_cal_state
// [27:24] direct_spatial_cnt
// Bit[23:21] Reserved
// Bit[20] mv_UR_ready_for_mv_cal
// Bit[19] co_mb_mem_ready_for_mv_cal
// Bit[18] mc_dblk_cmd_if_busy
// Bit[17] h264_co_mb_wr_busy
// Bit[16] H264_cbp_blk_ready
// Bit[15] mc_hcmd_rrdy
// Bit[14] mc_hcmd_srdy
// Bit[13] mc_cmd_if_ready
// Bit[12] mc_hcmd_mv_available
// Bit[11:8] mc_cmd_if_state
// Bit[7] dblk_hcmd_rrdy
// Bit[6] dblk_hcmd_srdy
// Bit[5] dblk_cmd_if_ready
// Bit[4] dblk_hcmd_mv_available
// Bit[3:0] dblk_cmd_if_state
// h264_mv_cal_info_1 -- (index == 5)
// Bit[31:29] Reserved
// Bit[28:24] total_mvd_num_l0
// Bit[23:21] Reserved
// Bit[20:16] mv_cal_ptr_l0
// Bit[15:13] Reserved
// Bit[12:8] mc_hcmd_ptr_l0
// Bit[7:5] Reserved
// Bit[4:0] dblk_hcmd_ptr_l0
// h264_mv_cal_info_2 -- (index == 6)
// Bit[31:29] Reserved
// Bit[28:24] total_mvd_num_l1
// Bit[23:21] Reserved
// Bit[20:16] mv_cal_ptr_l1
// Bit[15:13] Reserved
// Bit[12:8] mc_hcmd_ptr_l1
// Bit[7:5] Reserved
// Bit[4:0] dblk_hcmd_ptr_l1
// h264_co_mb_info -- (index == 7)
// Bit[31:26] Reserved
// Bit[25] mv_scale_cal_busy
// Bit[24:20] co_mv_count
// Bit[19:16] co_mv_process_state
// Bit[15] h264_co_mb_rd_busy
// Bit[15] h264_co_mb_rd_ready
// Bit[13:12] co_mv_transfer_block_cnt
// Bit[11:8] co_mv_transfer_ptr
// Bit[7] co_mv_POC_l1_busy
// Bit[6] h264_weight_scale_cal_en
// Bit[5] weight_cal_busy
// Bit[4] weight_cal_not_finished
// Bit[3:0] weight_process_state
#define HCODEC_VLD_DBG_DATA (0x1c3f)
#define P_HCODEC_VLD_DBG_DATA (volatile unsigned int *)((0x1c3f << 2) + 0xff620000)
// --------------------------------------------
// VIFIFO DDR Interface
// --------------------------------------------
// The VIFIFO start pointer into DDR memory is a 32-bit number
// The Start pointer will automatically be truncated to land on
// an 8-byte boundary. That is, bits [2:0] = 0;
#define HCODEC_VLD_MEM_VIFIFO_START_PTR (0x1c40)
#define P_HCODEC_VLD_MEM_VIFIFO_START_PTR (volatile unsigned int *)((0x1c40 << 2) + 0xff620000)
// The current pointer points so some location between the START and END
// pointers. The current pointer is a BYTE pointer. That is, you can
// point to any BYTE address within the START/END range
#define HCODEC_VLD_MEM_VIFIFO_CURR_PTR (0x1c41)
#define P_HCODEC_VLD_MEM_VIFIFO_CURR_PTR (volatile unsigned int *)((0x1c41 << 2) + 0xff620000)
#define HCODEC_VLD_MEM_VIFIFO_END_PTR (0x1c42)
#define P_HCODEC_VLD_MEM_VIFIFO_END_PTR (volatile unsigned int *)((0x1c42 << 2) + 0xff620000)
#define HCODEC_VLD_MEM_VIFIFO_BYTES_AVAIL (0x1c43)
#define P_HCODEC_VLD_MEM_VIFIFO_BYTES_AVAIL (volatile unsigned int *)((0x1c43 << 2) + 0xff620000)
// VIFIFO FIFO Control
// bit [31:24] viff_empty_int_enable_cpu[7:0]
// bit [23:16] viff_empty_int_enable_amrisc[7:0]
// -bit 23 Video BUFFER < 0x400 Bytes
// -bit 22 Video BUFFER < 0x200 Bytes
// -bit 21 Video BUFFER < 0x100 Bytes
// -bit 20 Video BUFFER < 0x80 Bytes
// -bit 19 Video BUFFER < 0x40 Bytes
// -bit 18 Video BUFFER < 0x20 Bytes
// -bit 17 vififo < 16 double words
// -bit 16 vififo < 8 double words
// bit [15:13] unused
// bit [12] A_urgent
// bit [11] transfer_length 0 - 32x64 Bits per request, 1 - 16x64 Bits per request
// bit [10] use_level Set this bit to 1 to enable filling of the FIFO controlled by the buffer
// level control. If this bit is 0, then use bit[1] to control the enabling of filling
// bit [9] Data Ready. This bit is set when data can be popped
// bit [8] fill busy This bit will be high when we're fetching data from the DDR memory
// To reset this module, set cntl_enable = 0, and then wait for busy = 0.
// After that you can pulse cntl_init to start over
// bit [7] init_with_cntl_init
// bit [6] reserved
// bits [5:3] endian: see $lib/rtl/ddr_endian.v
// bit [2] cntl_empty_en Set to 1 to enable reading the DDR memory FIFO
// Set cntl_empty_en = cntl_fill_en = 0 when pulsing cntl_init
// bit [1] cntl_fill_en Set to 1 to enable reading data from DDR memory
// bit [0] cntl_init: After setting the read pointers, sizes, channel masks
// and read masks, set this bit to 1 and then to 0
// NOTE: You don't need to pulse cntl_init if only the start address is
// being changed
#define HCODEC_VLD_MEM_VIFIFO_CONTROL (0x1c44)
#define P_HCODEC_VLD_MEM_VIFIFO_CONTROL (volatile unsigned int *)((0x1c44 << 2) + 0xff620000)
// --------------------------------------------
// VIFIFO Buffer Level Manager
// --------------------------------------------
#define HCODEC_VLD_MEM_VIFIFO_WP (0x1c45)
#define P_HCODEC_VLD_MEM_VIFIFO_WP (volatile unsigned int *)((0x1c45 << 2) + 0xff620000)
#define HCODEC_VLD_MEM_VIFIFO_RP (0x1c46)
#define P_HCODEC_VLD_MEM_VIFIFO_RP (volatile unsigned int *)((0x1c46 << 2) + 0xff620000)
#define HCODEC_VLD_MEM_VIFIFO_LEVEL (0x1c47)
#define P_HCODEC_VLD_MEM_VIFIFO_LEVEL (volatile unsigned int *)((0x1c47 << 2) + 0xff620000)
//
// bit [8] use_parser_video2_wp
// bit [7] vbuf2_out_manual
// bit [6] vbuf_out_manual
// bit [5] empty (ReadOnly)
// bit [4] full (ReadOnly)
// bit [3:2] reserved
// bit [1] manual mode Set to 1 for manual write pointer mode
// bit [0] Init Set high then low after everything has been initialized
#define HCODEC_VLD_MEM_VIFIFO_BUF_CNTL (0x1c48)
#define P_HCODEC_VLD_MEM_VIFIFO_BUF_CNTL (volatile unsigned int *)((0x1c48 << 2) + 0xff620000)
// bit 31:16 -- drop_bytes
// bit 15:14 -- drop_status (Read-Only)
// bit 13:12 -- sync_match_position (Read-Only)
// bit 11:6 -- reserved
// bit 5:4 -- TIME_STAMP_NUMBER, 0-32bits, 1-64bits, 2-96bits, 3-128bits
// bit 3 -- stamp_soft_reset
// bit 2 -- TIME_STAMP_length_enable
// bit 1 -- TIME_STAMP_sync64_enable
// bit 0 -- TIME_STAMP_enable
#define HCODEC_VLD_TIME_STAMP_CNTL (0x1c49)
#define P_HCODEC_VLD_TIME_STAMP_CNTL (volatile unsigned int *)((0x1c49 << 2) + 0xff620000)
// bit 31:0 -- TIME_STAMP_SYNC_CODE_0
#define HCODEC_VLD_TIME_STAMP_SYNC_0 (0x1c4a)
#define P_HCODEC_VLD_TIME_STAMP_SYNC_0 (volatile unsigned int *)((0x1c4a << 2) + 0xff620000)
// bit 31:0 -- TIME_STAMP_SYNC_CODE_1
#define HCODEC_VLD_TIME_STAMP_SYNC_1 (0x1c4b)
#define P_HCODEC_VLD_TIME_STAMP_SYNC_1 (volatile unsigned int *)((0x1c4b << 2) + 0xff620000)
// bit 31:0 TIME_STAMP_0
#define HCODEC_VLD_TIME_STAMP_0 (0x1c4c)
#define P_HCODEC_VLD_TIME_STAMP_0 (volatile unsigned int *)((0x1c4c << 2) + 0xff620000)
// bit 31:0 TIME_STAMP_1
#define HCODEC_VLD_TIME_STAMP_1 (0x1c4d)
#define P_HCODEC_VLD_TIME_STAMP_1 (volatile unsigned int *)((0x1c4d << 2) + 0xff620000)
// bit 31:0 TIME_STAMP_2
#define HCODEC_VLD_TIME_STAMP_2 (0x1c4e)
#define P_HCODEC_VLD_TIME_STAMP_2 (volatile unsigned int *)((0x1c4e << 2) + 0xff620000)
// bit 31:0 TIME_STAMP_3
#define HCODEC_VLD_TIME_STAMP_3 (0x1c4f)
#define P_HCODEC_VLD_TIME_STAMP_3 (volatile unsigned int *)((0x1c4f << 2) + 0xff620000)
// bit 31:0 TIME_STAMP_LENGTH
#define HCODEC_VLD_TIME_STAMP_LENGTH (0x1c50)
#define P_HCODEC_VLD_TIME_STAMP_LENGTH (volatile unsigned int *)((0x1c50 << 2) + 0xff620000)
// bit 15:0 vififo_rd_count
#define HCODEC_VLD_MEM_VIFIFO_WRAP_COUNT (0x1c51)
#define P_HCODEC_VLD_MEM_VIFIFO_WRAP_COUNT (volatile unsigned int *)((0x1c51 << 2) + 0xff620000)
// bit 29:24 A_brst_num
// bit 21:16 A_id
// bit 15:0 level_hold
#define HCODEC_VLD_MEM_VIFIFO_MEM_CTL (0x1c52)
#define P_HCODEC_VLD_MEM_VIFIFO_MEM_CTL (volatile unsigned int *)((0x1c52 << 2) + 0xff620000)
#define HCODEC_VLD_MEM_VBUF_RD_PTR (0x1c53)
#define P_HCODEC_VLD_MEM_VBUF_RD_PTR (volatile unsigned int *)((0x1c53 << 2) + 0xff620000)
#define HCODEC_VLD_MEM_VBUF2_RD_PTR (0x1c54)
#define P_HCODEC_VLD_MEM_VBUF2_RD_PTR (volatile unsigned int *)((0x1c54 << 2) + 0xff620000)
#define HCODEC_VLD_MEM_SWAP_ADDR (0x1c55)
#define P_HCODEC_VLD_MEM_SWAP_ADDR (volatile unsigned int *)((0x1c55 << 2) + 0xff620000)
// bit[23:16] - swap_d_count (Read Only)
// bit[15:8] - swap_a_count (Read Only)
// bit [7] - swap busy (Read Only)
// bit [6:2] - reserved
// bit [1] - 1 - STORE to Memory, 0 - LOAD from Memory
// bit [0] - swap active
#define HCODEC_VLD_MEM_SWAP_CTL (0x1c56)
#define P_HCODEC_VLD_MEM_SWAP_CTL (volatile unsigned int *)((0x1c56 << 2) + 0xff620000)
//
// Closing file: vld_regs.h
//
//
// Reading file: vld_regs.h
//
//========================================================================
// VLD module level register offset
//========================================================================
// -----------------------------------------------
// CBUS_BASE: DOS_VDEC_VLD_CBUS_BASE = 0x0c
// -----------------------------------------------
#define VDEC2_VLD_STATUS_CTRL (0x2c00)
#define P_VDEC2_VLD_STATUS_CTRL (volatile unsigned int *)((0x2c00 << 2) + 0xff620000)
//
// bit 10 -- use_old_shift_en
// bit 9 -- output_mv_not_pmv
// bit 8:5 -- force_zigzag
// bit 4 -- force_zigzag_en
// bit 3 -- disable_viff_anempty_int
// bit 2 -- disable_m2_ac_coeff_one_cycle
// bit 1 -- forced_reset force reset pmv
// bit 0 -- mpeg_type 0:mpeg1 1: mpeg2
#define VDEC2_MPEG1_2_REG (0x2c01)
#define P_VDEC2_MPEG1_2_REG (volatile unsigned int *)((0x2c01 << 2) + 0xff620000)
#define VDEC2_F_CODE_REG (0x2c02)
#define P_VDEC2_F_CODE_REG (volatile unsigned int *)((0x2c02 << 2) + 0xff620000)
#define VDEC2_PIC_HEAD_INFO (0x2c03)
#define P_VDEC2_PIC_HEAD_INFO (volatile unsigned int *)((0x2c03 << 2) + 0xff620000)
#define VDEC2_SLICE_VER_POS_PIC_TYPE (0x2c04)
#define P_VDEC2_SLICE_VER_POS_PIC_TYPE (volatile unsigned int *)((0x2c04 << 2) + 0xff620000)
#define VDEC2_QP_VALUE_REG (0x2c05)
#define P_VDEC2_QP_VALUE_REG (volatile unsigned int *)((0x2c05 << 2) + 0xff620000)
#define VDEC2_MBA_INC (0x2c06)
#define P_VDEC2_MBA_INC (volatile unsigned int *)((0x2c06 << 2) + 0xff620000)
#define VDEC2_MB_MOTION_MODE (0x2c07)
#define P_VDEC2_MB_MOTION_MODE (volatile unsigned int *)((0x2c07 << 2) + 0xff620000)
//`define PACKET_BYTE_COUNT 8'h08
// bit 15 -- force_search_startcode_en
// bit 14 -- int_cpu_when_error (before do anything)
// bit 13 -- vld_error_reset
// bit 12 -- return_on_slice_header
// bit 6 -- jpeg_ff00_en
// bit 5:0 -- vld_power_ctl
#define VDEC2_POWER_CTL_VLD (0x2c08)
#define P_VDEC2_POWER_CTL_VLD (volatile unsigned int *)((0x2c08 << 2) + 0xff620000)
#define VDEC2_MB_WIDTH (0x2c09)
#define P_VDEC2_MB_WIDTH (volatile unsigned int *)((0x2c09 << 2) + 0xff620000)
#define VDEC2_SLICE_QP (0x2c0a)
#define P_VDEC2_SLICE_QP (volatile unsigned int *)((0x2c0a << 2) + 0xff620000)
// `define MB_X_MB_Y 8'h0b /* current MBX and MBY */
#define VDEC2_PRE_START_CODE (0x2c0b)
#define P_VDEC2_PRE_START_CODE (volatile unsigned int *)((0x2c0b << 2) + 0xff620000)
#define VDEC2_SLICE_START_BYTE_01 (0x2c0c)
#define P_VDEC2_SLICE_START_BYTE_01 (volatile unsigned int *)((0x2c0c << 2) + 0xff620000)
#define VDEC2_SLICE_START_BYTE_23 (0x2c0d)
#define P_VDEC2_SLICE_START_BYTE_23 (volatile unsigned int *)((0x2c0d << 2) + 0xff620000)
#define VDEC2_RESYNC_MARKER_LENGTH (0x2c0e)
#define P_VDEC2_RESYNC_MARKER_LENGTH (volatile unsigned int *)((0x2c0e << 2) + 0xff620000)
// bit[6:5] - frame/field info, 01 - top, 10 - bottom, 11 - frame
// bit[4:0] - buffer ID
// L0_BUFF_ID_0, L0_BUFF_ID_1, L1_BUFF_ID_0, L1_BUFF_ID_1
#define VDEC2_DECODER_BUFFER_INFO (0x2c0f)
#define P_VDEC2_DECODER_BUFFER_INFO (volatile unsigned int *)((0x2c0f << 2) + 0xff620000)
#define VDEC2_FST_FOR_MV_X (0x2c10)
#define P_VDEC2_FST_FOR_MV_X (volatile unsigned int *)((0x2c10 << 2) + 0xff620000)
#define VDEC2_FST_FOR_MV_Y (0x2c11)
#define P_VDEC2_FST_FOR_MV_Y (volatile unsigned int *)((0x2c11 << 2) + 0xff620000)
#define VDEC2_SCD_FOR_MV_X (0x2c12)
#define P_VDEC2_SCD_FOR_MV_X (volatile unsigned int *)((0x2c12 << 2) + 0xff620000)
#define VDEC2_SCD_FOR_MV_Y (0x2c13)
#define P_VDEC2_SCD_FOR_MV_Y (volatile unsigned int *)((0x2c13 << 2) + 0xff620000)
#define VDEC2_FST_BAK_MV_X (0x2c14)
#define P_VDEC2_FST_BAK_MV_X (volatile unsigned int *)((0x2c14 << 2) + 0xff620000)
#define VDEC2_FST_BAK_MV_Y (0x2c15)
#define P_VDEC2_FST_BAK_MV_Y (volatile unsigned int *)((0x2c15 << 2) + 0xff620000)
#define VDEC2_SCD_BAK_MV_X (0x2c16)
#define P_VDEC2_SCD_BAK_MV_X (volatile unsigned int *)((0x2c16 << 2) + 0xff620000)
#define VDEC2_SCD_BAK_MV_Y (0x2c17)
#define P_VDEC2_SCD_BAK_MV_Y (volatile unsigned int *)((0x2c17 << 2) + 0xff620000)
// Bit 7:4 -- read_buffer_interlace 0-progressive, 1-interlace, used in VC1
// bit 3 -- disable_new_stcode_search_fix // From GXM
// bit 2 -- weighting_prediction
// bit 1 -- mb_weighting_flag
// bit 0 -- slice_weighting_flag
#define VDEC2_VLD_DECODE_CONTROL (0x2c18)
#define P_VDEC2_VLD_DECODE_CONTROL (volatile unsigned int *)((0x2c18 << 2) + 0xff620000)
#define VDEC2_VLD_REVERVED_19 (0x2c19)
#define P_VDEC2_VLD_REVERVED_19 (volatile unsigned int *)((0x2c19 << 2) + 0xff620000)
#define VDEC2_VIFF_BIT_CNT (0x2c1a)
#define P_VDEC2_VIFF_BIT_CNT (volatile unsigned int *)((0x2c1a << 2) + 0xff620000)
#define VDEC2_BYTE_ALIGN_PEAK_HI (0x2c1b)
#define P_VDEC2_BYTE_ALIGN_PEAK_HI (volatile unsigned int *)((0x2c1b << 2) + 0xff620000)
#define VDEC2_BYTE_ALIGN_PEAK_LO (0x2c1c)
#define P_VDEC2_BYTE_ALIGN_PEAK_LO (volatile unsigned int *)((0x2c1c << 2) + 0xff620000)
#define VDEC2_NEXT_ALIGN_PEAK (0x2c1d)
#define P_VDEC2_NEXT_ALIGN_PEAK (volatile unsigned int *)((0x2c1d << 2) + 0xff620000)
// bit 31 : byte_aligned_zero_23_from_org // From GXM
// bit 30 : force_shift_out_drop_flag_zero // From GXM
// bit 29 : en_st_protect_from_org // From GXM
// bit 28 : enable_halt_decode_start_voff
// bit 27 : disable_C_pred_check
// bit 26 : disable_I4_pred_check
// bit 25 : disable_I16_pred_check
// bit 24 : check_avs_1st_drop
// bit 23 : enable_cabac_protect // From GXM
// bit 22 : enable_avs_drop_more
// bit 21 : reset_avs_drop_ptr
// bit 20 : reset_cabac_use_next_at_end_req
// bit 19 : vc1_inv_intra_co_mb_ref_rd
// bit 18 : vc1_inv_co_mb_ref_rd
// bit 17 : vc1_inv_intra_co_mb_ref_wr
// bit 16 : vc1_inv_co_mb_ref_wr
// bit 15 : disable_mv_cal_begin_only
// bit 14 : avs_drop_enable
// bit 13:12 : avs_drop_ptr
// bit 11:8 : avs_demu_ctl_reg
// bit 7 : avs_enable
// bit 6 : disable_dblk_hcmd
// bit 5 : disable_mc_hcmd
// bit 4 : first_mode3_set enable
// bit 3 : first_mode3
// bit 2:1 : vc1_profile 0-SP, 1-MP, 2-reserved, 3-AP
// bit 0 : vc1_enable
#define VDEC2_VC1_CONTROL_REG (0x2c1e)
#define P_VDEC2_VC1_CONTROL_REG (volatile unsigned int *)((0x2c1e << 2) + 0xff620000)
#define VDEC2_PMV1_X (0x2c20)
#define P_VDEC2_PMV1_X (volatile unsigned int *)((0x2c20 << 2) + 0xff620000)
#define VDEC2_PMV1_Y (0x2c21)
#define P_VDEC2_PMV1_Y (volatile unsigned int *)((0x2c21 << 2) + 0xff620000)
#define VDEC2_PMV2_X (0x2c22)
#define P_VDEC2_PMV2_X (volatile unsigned int *)((0x2c22 << 2) + 0xff620000)
#define VDEC2_PMV2_Y (0x2c23)
#define P_VDEC2_PMV2_Y (volatile unsigned int *)((0x2c23 << 2) + 0xff620000)
#define VDEC2_PMV3_X (0x2c24)
#define P_VDEC2_PMV3_X (volatile unsigned int *)((0x2c24 << 2) + 0xff620000)
#define VDEC2_PMV3_Y (0x2c25)
#define P_VDEC2_PMV3_Y (volatile unsigned int *)((0x2c25 << 2) + 0xff620000)
#define VDEC2_PMV4_X (0x2c26)
#define P_VDEC2_PMV4_X (volatile unsigned int *)((0x2c26 << 2) + 0xff620000)
#define VDEC2_PMV4_Y (0x2c27)
#define P_VDEC2_PMV4_Y (volatile unsigned int *)((0x2c27 << 2) + 0xff620000)
// Can't use the same address for different defines
// Therefore, create a single define that covers both
// Only appears to be used in micro-code since the VLD hardware is
// hard coded.
// `define M4_TABLE_SELECT 8'h28 // Does this exist in HW ? Added from register_mp2.h
// `define M4_TABLE_OUTPUT 8'h28 // Does this exist in HW ? Added from register_mp2.h
#define VDEC2_M4_TABLE_SELECT (0x2c28)
#define P_VDEC2_M4_TABLE_SELECT (volatile unsigned int *)((0x2c28 << 2) + 0xff620000)
#define VDEC2_M4_CONTROL_REG (0x2c29)
#define P_VDEC2_M4_CONTROL_REG (volatile unsigned int *)((0x2c29 << 2) + 0xff620000)
#define VDEC2_BLOCK_NUM (0x2c2a)
#define P_VDEC2_BLOCK_NUM (volatile unsigned int *)((0x2c2a << 2) + 0xff620000)
#define VDEC2_PATTERN_CODE (0x2c2b)
#define P_VDEC2_PATTERN_CODE (volatile unsigned int *)((0x2c2b << 2) + 0xff620000)
#define VDEC2_MB_INFO (0x2c2c)
#define P_VDEC2_MB_INFO (volatile unsigned int *)((0x2c2c << 2) + 0xff620000)
#define VDEC2_VLD_DC_PRED (0x2c2d)
#define P_VDEC2_VLD_DC_PRED (volatile unsigned int *)((0x2c2d << 2) + 0xff620000)
#define VDEC2_VLD_ERROR_MASK (0x2c2e)
#define P_VDEC2_VLD_ERROR_MASK (volatile unsigned int *)((0x2c2e << 2) + 0xff620000)
#define VDEC2_VLD_DC_PRED_C (0x2c2f)
#define P_VDEC2_VLD_DC_PRED_C (volatile unsigned int *)((0x2c2f << 2) + 0xff620000)
#define VDEC2_LAST_SLICE_MV_ADDR (0x2c30)
#define P_VDEC2_LAST_SLICE_MV_ADDR (volatile unsigned int *)((0x2c30 << 2) + 0xff620000)
#define VDEC2_LAST_MVX (0x2c31)
#define P_VDEC2_LAST_MVX (volatile unsigned int *)((0x2c31 << 2) + 0xff620000)
#define VDEC2_LAST_MVY (0x2c32)
#define P_VDEC2_LAST_MVY (volatile unsigned int *)((0x2c32 << 2) + 0xff620000)
#define VDEC2_VLD_C38 (0x2c38)
#define P_VDEC2_VLD_C38 (volatile unsigned int *)((0x2c38 << 2) + 0xff620000)
#define VDEC2_VLD_C39 (0x2c39)
#define P_VDEC2_VLD_C39 (volatile unsigned int *)((0x2c39 << 2) + 0xff620000)
#define VDEC2_VLD_STATUS (0x2c3a)
#define P_VDEC2_VLD_STATUS (volatile unsigned int *)((0x2c3a << 2) + 0xff620000)
#define VDEC2_VLD_SHIFT_STATUS (0x2c3b)
#define P_VDEC2_VLD_SHIFT_STATUS (volatile unsigned int *)((0x2c3b << 2) + 0xff620000)
// `define VLD_SHIFT_INFO 8'h3b // Does this exist in HW ? used in $ucode/mpeg4
#define VDEC2_VOFF_STATUS (0x2c3c)
#define P_VDEC2_VOFF_STATUS (volatile unsigned int *)((0x2c3c << 2) + 0xff620000)
#define VDEC2_VLD_C3D (0x2c3d)
#define P_VDEC2_VLD_C3D (volatile unsigned int *)((0x2c3d << 2) + 0xff620000)
#define VDEC2_VLD_DBG_INDEX (0x2c3e)
#define P_VDEC2_VLD_DBG_INDEX (volatile unsigned int *)((0x2c3e << 2) + 0xff620000)
// vld_buff_info -- (index == 0)
// Bit11] halt_decode_start_voff
// Bit10] C_pred_error
// Bit[9] I4_pred_error
// Bit[8] I16_pred_error
// Bit[7:6] mv_UR_ready_cnt;
// Bit[5] vld_wr_idx
// Bit[4] iq_rd_idx
// Bit[3] vld_vi_block_rdy_1
// Bit[2] vld_vi_block_rdy_2
// Bit[1] voff_empty_1
// Bit[0] voff_empty_2
// cabac_buff_info_0 -- (index == 1)
// Bit[31] shift_data_ready
// Bit[30:29] Reserved
// Bit[28:24] cabac_buffer_ptr
// Bit[23:0] cabac_buffer
// cabac_buff_info_1 -- (index == 2)
// Bit[31:29] Reserved
// Bit[28:20] Drange
// Bit[19:16] bin_count_4
// Bit[15:13] Reserved
// Bit[12:6] context_mem_do
// Bit[5:3] coeff_state
// Bit[2:0] mvd_state
// h264_mv_present -- (index == 3)
// Bit[31:16] mv_present_l0
// Bit[15:0] mv_present_l1
// h264_mv_cal_info_0 -- (index == 4)
// [31:28] mv_cal_state
// [27:24] direct_spatial_cnt
// Bit[23:21] Reserved
// Bit[20] mv_UR_ready_for_mv_cal
// Bit[19] co_mb_mem_ready_for_mv_cal
// Bit[18] mc_dblk_cmd_if_busy
// Bit[17] h264_co_mb_wr_busy
// Bit[16] H264_cbp_blk_ready
// Bit[15] mc_hcmd_rrdy
// Bit[14] mc_hcmd_srdy
// Bit[13] mc_cmd_if_ready
// Bit[12] mc_hcmd_mv_available
// Bit[11:8] mc_cmd_if_state
// Bit[7] dblk_hcmd_rrdy
// Bit[6] dblk_hcmd_srdy
// Bit[5] dblk_cmd_if_ready
// Bit[4] dblk_hcmd_mv_available
// Bit[3:0] dblk_cmd_if_state
// h264_mv_cal_info_1 -- (index == 5)
// Bit[31:29] Reserved
// Bit[28:24] total_mvd_num_l0
// Bit[23:21] Reserved
// Bit[20:16] mv_cal_ptr_l0
// Bit[15:13] Reserved
// Bit[12:8] mc_hcmd_ptr_l0
// Bit[7:5] Reserved
// Bit[4:0] dblk_hcmd_ptr_l0
// h264_mv_cal_info_2 -- (index == 6)
// Bit[31:29] Reserved
// Bit[28:24] total_mvd_num_l1
// Bit[23:21] Reserved
// Bit[20:16] mv_cal_ptr_l1
// Bit[15:13] Reserved
// Bit[12:8] mc_hcmd_ptr_l1
// Bit[7:5] Reserved
// Bit[4:0] dblk_hcmd_ptr_l1
// h264_co_mb_info -- (index == 7)
// Bit[31:26] Reserved
// Bit[25] mv_scale_cal_busy
// Bit[24:20] co_mv_count
// Bit[19:16] co_mv_process_state
// Bit[15] h264_co_mb_rd_busy
// Bit[15] h264_co_mb_rd_ready
// Bit[13:12] co_mv_transfer_block_cnt
// Bit[11:8] co_mv_transfer_ptr
// Bit[7] co_mv_POC_l1_busy
// Bit[6] h264_weight_scale_cal_en
// Bit[5] weight_cal_busy
// Bit[4] weight_cal_not_finished
// Bit[3:0] weight_process_state
#define VDEC2_VLD_DBG_DATA (0x2c3f)
#define P_VDEC2_VLD_DBG_DATA (volatile unsigned int *)((0x2c3f << 2) + 0xff620000)
// --------------------------------------------
// VIFIFO DDR Interface
// --------------------------------------------
// The VIFIFO start pointer into DDR memory is a 32-bit number
// The Start pointer will automatically be truncated to land on
// an 8-byte boundary. That is, bits [2:0] = 0;
#define VDEC2_VLD_MEM_VIFIFO_START_PTR (0x2c40)
#define P_VDEC2_VLD_MEM_VIFIFO_START_PTR (volatile unsigned int *)((0x2c40 << 2) + 0xff620000)
// The current pointer points so some location between the START and END
// pointers. The current pointer is a BYTE pointer. That is, you can
// point to any BYTE address within the START/END range
#define VDEC2_VLD_MEM_VIFIFO_CURR_PTR (0x2c41)
#define P_VDEC2_VLD_MEM_VIFIFO_CURR_PTR (volatile unsigned int *)((0x2c41 << 2) + 0xff620000)
#define VDEC2_VLD_MEM_VIFIFO_END_PTR (0x2c42)
#define P_VDEC2_VLD_MEM_VIFIFO_END_PTR (volatile unsigned int *)((0x2c42 << 2) + 0xff620000)
#define VDEC2_VLD_MEM_VIFIFO_BYTES_AVAIL (0x2c43)
#define P_VDEC2_VLD_MEM_VIFIFO_BYTES_AVAIL (volatile unsigned int *)((0x2c43 << 2) + 0xff620000)
// VIFIFO FIFO Control
// bit [31:24] viff_empty_int_enable_cpu[7:0]
// bit [23:16] viff_empty_int_enable_amrisc[7:0]
// -bit 23 Video BUFFER < 0x400 Bytes
// -bit 22 Video BUFFER < 0x200 Bytes
// -bit 21 Video BUFFER < 0x100 Bytes
// -bit 20 Video BUFFER < 0x80 Bytes
// -bit 19 Video BUFFER < 0x40 Bytes
// -bit 18 Video BUFFER < 0x20 Bytes
// -bit 17 vififo < 16 double words
// -bit 16 vififo < 8 double words
// bit [15:13] unused
// bit [12] A_urgent
// bit [11] transfer_length 0 - 32x64 Bits per request, 1 - 16x64 Bits per request
// bit [10] use_level Set this bit to 1 to enable filling of the FIFO controlled by the buffer
// level control. If this bit is 0, then use bit[1] to control the enabling of filling
// bit [9] Data Ready. This bit is set when data can be popped
// bit [8] fill busy This bit will be high when we're fetching data from the DDR memory
// To reset this module, set cntl_enable = 0, and then wait for busy = 0.
// After that you can pulse cntl_init to start over
// bit [7] init_with_cntl_init
// bit [6] reserved
// bits [5:3] endian: see $lib/rtl/ddr_endian.v
// bit [2] cntl_empty_en Set to 1 to enable reading the DDR memory FIFO
// Set cntl_empty_en = cntl_fill_en = 0 when pulsing cntl_init
// bit [1] cntl_fill_en Set to 1 to enable reading data from DDR memory
// bit [0] cntl_init: After setting the read pointers, sizes, channel masks
// and read masks, set this bit to 1 and then to 0
// NOTE: You don't need to pulse cntl_init if only the start address is
// being changed
#define VDEC2_VLD_MEM_VIFIFO_CONTROL (0x2c44)
#define P_VDEC2_VLD_MEM_VIFIFO_CONTROL (volatile unsigned int *)((0x2c44 << 2) + 0xff620000)
// --------------------------------------------
// VIFIFO Buffer Level Manager
// --------------------------------------------
#define VDEC2_VLD_MEM_VIFIFO_WP (0x2c45)
#define P_VDEC2_VLD_MEM_VIFIFO_WP (volatile unsigned int *)((0x2c45 << 2) + 0xff620000)
#define VDEC2_VLD_MEM_VIFIFO_RP (0x2c46)
#define P_VDEC2_VLD_MEM_VIFIFO_RP (volatile unsigned int *)((0x2c46 << 2) + 0xff620000)
#define VDEC2_VLD_MEM_VIFIFO_LEVEL (0x2c47)
#define P_VDEC2_VLD_MEM_VIFIFO_LEVEL (volatile unsigned int *)((0x2c47 << 2) + 0xff620000)
//
// bit [8] use_parser_video2_wp
// bit [7] vbuf2_out_manual
// bit [6] vbuf_out_manual
// bit [5] empty (ReadOnly)
// bit [4] full (ReadOnly)
// bit [3:2] reserved
// bit [1] manual mode Set to 1 for manual write pointer mode
// bit [0] Init Set high then low after everything has been initialized
#define VDEC2_VLD_MEM_VIFIFO_BUF_CNTL (0x2c48)
#define P_VDEC2_VLD_MEM_VIFIFO_BUF_CNTL (volatile unsigned int *)((0x2c48 << 2) + 0xff620000)
// bit 31:16 -- drop_bytes
// bit 15:14 -- drop_status (Read-Only)
// bit 13:12 -- sync_match_position (Read-Only)
// bit 11:6 -- reserved
// bit 5:4 -- TIME_STAMP_NUMBER, 0-32bits, 1-64bits, 2-96bits, 3-128bits
// bit 3 -- stamp_soft_reset
// bit 2 -- TIME_STAMP_length_enable
// bit 1 -- TIME_STAMP_sync64_enable
// bit 0 -- TIME_STAMP_enable
#define VDEC2_VLD_TIME_STAMP_CNTL (0x2c49)
#define P_VDEC2_VLD_TIME_STAMP_CNTL (volatile unsigned int *)((0x2c49 << 2) + 0xff620000)
// bit 31:0 -- TIME_STAMP_SYNC_CODE_0
#define VDEC2_VLD_TIME_STAMP_SYNC_0 (0x2c4a)
#define P_VDEC2_VLD_TIME_STAMP_SYNC_0 (volatile unsigned int *)((0x2c4a << 2) + 0xff620000)
// bit 31:0 -- TIME_STAMP_SYNC_CODE_1
#define VDEC2_VLD_TIME_STAMP_SYNC_1 (0x2c4b)
#define P_VDEC2_VLD_TIME_STAMP_SYNC_1 (volatile unsigned int *)((0x2c4b << 2) + 0xff620000)
// bit 31:0 TIME_STAMP_0
#define VDEC2_VLD_TIME_STAMP_0 (0x2c4c)
#define P_VDEC2_VLD_TIME_STAMP_0 (volatile unsigned int *)((0x2c4c << 2) + 0xff620000)
// bit 31:0 TIME_STAMP_1
#define VDEC2_VLD_TIME_STAMP_1 (0x2c4d)
#define P_VDEC2_VLD_TIME_STAMP_1 (volatile unsigned int *)((0x2c4d << 2) + 0xff620000)
// bit 31:0 TIME_STAMP_2
#define VDEC2_VLD_TIME_STAMP_2 (0x2c4e)
#define P_VDEC2_VLD_TIME_STAMP_2 (volatile unsigned int *)((0x2c4e << 2) + 0xff620000)
// bit 31:0 TIME_STAMP_3
#define VDEC2_VLD_TIME_STAMP_3 (0x2c4f)
#define P_VDEC2_VLD_TIME_STAMP_3 (volatile unsigned int *)((0x2c4f << 2) + 0xff620000)
// bit 31:0 TIME_STAMP_LENGTH
#define VDEC2_VLD_TIME_STAMP_LENGTH (0x2c50)
#define P_VDEC2_VLD_TIME_STAMP_LENGTH (volatile unsigned int *)((0x2c50 << 2) + 0xff620000)
// bit 15:0 vififo_rd_count
#define VDEC2_VLD_MEM_VIFIFO_WRAP_COUNT (0x2c51)
#define P_VDEC2_VLD_MEM_VIFIFO_WRAP_COUNT (volatile unsigned int *)((0x2c51 << 2) + 0xff620000)
// bit 29:24 A_brst_num
// bit 21:16 A_id
// bit 15:0 level_hold
#define VDEC2_VLD_MEM_VIFIFO_MEM_CTL (0x2c52)
#define P_VDEC2_VLD_MEM_VIFIFO_MEM_CTL (volatile unsigned int *)((0x2c52 << 2) + 0xff620000)
#define VDEC2_VLD_MEM_VBUF_RD_PTR (0x2c53)
#define P_VDEC2_VLD_MEM_VBUF_RD_PTR (volatile unsigned int *)((0x2c53 << 2) + 0xff620000)
#define VDEC2_VLD_MEM_VBUF2_RD_PTR (0x2c54)
#define P_VDEC2_VLD_MEM_VBUF2_RD_PTR (volatile unsigned int *)((0x2c54 << 2) + 0xff620000)
#define VDEC2_VLD_MEM_SWAP_ADDR (0x2c55)
#define P_VDEC2_VLD_MEM_SWAP_ADDR (volatile unsigned int *)((0x2c55 << 2) + 0xff620000)
// bit[23:16] - swap_d_count (Read Only)
// bit[15:8] - swap_a_count (Read Only)
// bit [7] - swap busy (Read Only)
// bit [6:2] - reserved
// bit [1] - 1 - STORE to Memory, 0 - LOAD from Memory
// bit [0] - swap active
#define VDEC2_VLD_MEM_SWAP_CTL (0x2c56)
#define P_VDEC2_VLD_MEM_SWAP_CTL (volatile unsigned int *)((0x2c56 << 2) + 0xff620000)
//
// Closing file: vld_regs.h
//
//
// Reading file: vld_regs.h
//
//========================================================================
// VLD module level register offset
//========================================================================
// -----------------------------------------------
// CBUS_BASE: DOS_VDEC_VLD_CBUS_BASE = 0x0c
// -----------------------------------------------
#define HEVC_VLD_STATUS_CTRL (0x3c00)
#define P_HEVC_VLD_STATUS_CTRL (volatile unsigned int *)((0x3c00 << 2) + 0xff620000)
//
// bit 10 -- use_old_shift_en
// bit 9 -- output_mv_not_pmv
// bit 8:5 -- force_zigzag
// bit 4 -- force_zigzag_en
// bit 3 -- disable_viff_anempty_int
// bit 2 -- disable_m2_ac_coeff_one_cycle
// bit 1 -- forced_reset force reset pmv
// bit 0 -- mpeg_type 0:mpeg1 1: mpeg2
#define HEVC_MPEG1_2_REG (0x3c01)
#define P_HEVC_MPEG1_2_REG (volatile unsigned int *)((0x3c01 << 2) + 0xff620000)
#define HEVC_F_CODE_REG (0x3c02)
#define P_HEVC_F_CODE_REG (volatile unsigned int *)((0x3c02 << 2) + 0xff620000)
#define HEVC_PIC_HEAD_INFO (0x3c03)
#define P_HEVC_PIC_HEAD_INFO (volatile unsigned int *)((0x3c03 << 2) + 0xff620000)
#define HEVC_SLICE_VER_POS_PIC_TYPE (0x3c04)
#define P_HEVC_SLICE_VER_POS_PIC_TYPE (volatile unsigned int *)((0x3c04 << 2) + 0xff620000)
#define HEVC_QP_VALUE_REG (0x3c05)
#define P_HEVC_QP_VALUE_REG (volatile unsigned int *)((0x3c05 << 2) + 0xff620000)
#define HEVC_MBA_INC (0x3c06)
#define P_HEVC_MBA_INC (volatile unsigned int *)((0x3c06 << 2) + 0xff620000)
#define HEVC_MB_MOTION_MODE (0x3c07)
#define P_HEVC_MB_MOTION_MODE (volatile unsigned int *)((0x3c07 << 2) + 0xff620000)
//`define PACKET_BYTE_COUNT 8'h08
// bit 15 -- force_search_startcode_en
// bit 14 -- int_cpu_when_error (before do anything)
// bit 13 -- vld_error_reset
// bit 12 -- return_on_slice_header
// bit 6 -- jpeg_ff00_en
// bit 5:0 -- vld_power_ctl
#define HEVC_POWER_CTL_VLD (0x3c08)
#define P_HEVC_POWER_CTL_VLD (volatile unsigned int *)((0x3c08 << 2) + 0xff620000)
#define HEVC_MB_WIDTH (0x3c09)
#define P_HEVC_MB_WIDTH (volatile unsigned int *)((0x3c09 << 2) + 0xff620000)
#define HEVC_SLICE_QP (0x3c0a)
#define P_HEVC_SLICE_QP (volatile unsigned int *)((0x3c0a << 2) + 0xff620000)
// `define MB_X_MB_Y 8'h0b /* current MBX and MBY */
#define HEVC_PRE_START_CODE (0x3c0b)
#define P_HEVC_PRE_START_CODE (volatile unsigned int *)((0x3c0b << 2) + 0xff620000)
#define HEVC_SLICE_START_BYTE_01 (0x3c0c)
#define P_HEVC_SLICE_START_BYTE_01 (volatile unsigned int *)((0x3c0c << 2) + 0xff620000)
#define HEVC_SLICE_START_BYTE_23 (0x3c0d)
#define P_HEVC_SLICE_START_BYTE_23 (volatile unsigned int *)((0x3c0d << 2) + 0xff620000)
#define HEVC_RESYNC_MARKER_LENGTH (0x3c0e)
#define P_HEVC_RESYNC_MARKER_LENGTH (volatile unsigned int *)((0x3c0e << 2) + 0xff620000)
// bit[6:5] - frame/field info, 01 - top, 10 - bottom, 11 - frame
// bit[4:0] - buffer ID
// L0_BUFF_ID_0, L0_BUFF_ID_1, L1_BUFF_ID_0, L1_BUFF_ID_1
#define HEVC_DECODER_BUFFER_INFO (0x3c0f)
#define P_HEVC_DECODER_BUFFER_INFO (volatile unsigned int *)((0x3c0f << 2) + 0xff620000)
#define HEVC_FST_FOR_MV_X (0x3c10)
#define P_HEVC_FST_FOR_MV_X (volatile unsigned int *)((0x3c10 << 2) + 0xff620000)
#define HEVC_FST_FOR_MV_Y (0x3c11)
#define P_HEVC_FST_FOR_MV_Y (volatile unsigned int *)((0x3c11 << 2) + 0xff620000)
#define HEVC_SCD_FOR_MV_X (0x3c12)
#define P_HEVC_SCD_FOR_MV_X (volatile unsigned int *)((0x3c12 << 2) + 0xff620000)
#define HEVC_SCD_FOR_MV_Y (0x3c13)
#define P_HEVC_SCD_FOR_MV_Y (volatile unsigned int *)((0x3c13 << 2) + 0xff620000)
#define HEVC_FST_BAK_MV_X (0x3c14)
#define P_HEVC_FST_BAK_MV_X (volatile unsigned int *)((0x3c14 << 2) + 0xff620000)
#define HEVC_FST_BAK_MV_Y (0x3c15)
#define P_HEVC_FST_BAK_MV_Y (volatile unsigned int *)((0x3c15 << 2) + 0xff620000)
#define HEVC_SCD_BAK_MV_X (0x3c16)
#define P_HEVC_SCD_BAK_MV_X (volatile unsigned int *)((0x3c16 << 2) + 0xff620000)
#define HEVC_SCD_BAK_MV_Y (0x3c17)
#define P_HEVC_SCD_BAK_MV_Y (volatile unsigned int *)((0x3c17 << 2) + 0xff620000)
// Bit 7:4 -- read_buffer_interlace 0-progressive, 1-interlace, used in VC1
// bit 3 -- disable_new_stcode_search_fix // From GXM
// bit 2 -- weighting_prediction
// bit 1 -- mb_weighting_flag
// bit 0 -- slice_weighting_flag
#define HEVC_VLD_DECODE_CONTROL (0x3c18)
#define P_HEVC_VLD_DECODE_CONTROL (volatile unsigned int *)((0x3c18 << 2) + 0xff620000)
#define HEVC_VLD_REVERVED_19 (0x3c19)
#define P_HEVC_VLD_REVERVED_19 (volatile unsigned int *)((0x3c19 << 2) + 0xff620000)
#define HEVC_VIFF_BIT_CNT (0x3c1a)
#define P_HEVC_VIFF_BIT_CNT (volatile unsigned int *)((0x3c1a << 2) + 0xff620000)
#define HEVC_BYTE_ALIGN_PEAK_HI (0x3c1b)
#define P_HEVC_BYTE_ALIGN_PEAK_HI (volatile unsigned int *)((0x3c1b << 2) + 0xff620000)
#define HEVC_BYTE_ALIGN_PEAK_LO (0x3c1c)
#define P_HEVC_BYTE_ALIGN_PEAK_LO (volatile unsigned int *)((0x3c1c << 2) + 0xff620000)
#define HEVC_NEXT_ALIGN_PEAK (0x3c1d)
#define P_HEVC_NEXT_ALIGN_PEAK (volatile unsigned int *)((0x3c1d << 2) + 0xff620000)
// bit 31 : byte_aligned_zero_23_from_org // From GXM
// bit 30 : force_shift_out_drop_flag_zero // From GXM
// bit 29 : en_st_protect_from_org // From GXM
// bit 28 : enable_halt_decode_start_voff
// bit 27 : disable_C_pred_check
// bit 26 : disable_I4_pred_check
// bit 25 : disable_I16_pred_check
// bit 24 : check_avs_1st_drop
// bit 23 : enable_cabac_protect // From GXM
// bit 22 : enable_avs_drop_more
// bit 21 : reset_avs_drop_ptr
// bit 20 : reset_cabac_use_next_at_end_req
// bit 19 : vc1_inv_intra_co_mb_ref_rd
// bit 18 : vc1_inv_co_mb_ref_rd
// bit 17 : vc1_inv_intra_co_mb_ref_wr
// bit 16 : vc1_inv_co_mb_ref_wr
// bit 15 : disable_mv_cal_begin_only
// bit 14 : avs_drop_enable
// bit 13:12 : avs_drop_ptr
// bit 11:8 : avs_demu_ctl_reg
// bit 7 : avs_enable
// bit 6 : disable_dblk_hcmd
// bit 5 : disable_mc_hcmd
// bit 4 : first_mode3_set enable
// bit 3 : first_mode3
// bit 2:1 : vc1_profile 0-SP, 1-MP, 2-reserved, 3-AP
// bit 0 : vc1_enable
#define HEVC_VC1_CONTROL_REG (0x3c1e)
#define P_HEVC_VC1_CONTROL_REG (volatile unsigned int *)((0x3c1e << 2) + 0xff620000)
#define HEVC_PMV1_X (0x3c20)
#define P_HEVC_PMV1_X (volatile unsigned int *)((0x3c20 << 2) + 0xff620000)
#define HEVC_PMV1_Y (0x3c21)
#define P_HEVC_PMV1_Y (volatile unsigned int *)((0x3c21 << 2) + 0xff620000)
#define HEVC_PMV2_X (0x3c22)
#define P_HEVC_PMV2_X (volatile unsigned int *)((0x3c22 << 2) + 0xff620000)
#define HEVC_PMV2_Y (0x3c23)
#define P_HEVC_PMV2_Y (volatile unsigned int *)((0x3c23 << 2) + 0xff620000)
#define HEVC_PMV3_X (0x3c24)
#define P_HEVC_PMV3_X (volatile unsigned int *)((0x3c24 << 2) + 0xff620000)
#define HEVC_PMV3_Y (0x3c25)
#define P_HEVC_PMV3_Y (volatile unsigned int *)((0x3c25 << 2) + 0xff620000)
#define HEVC_PMV4_X (0x3c26)
#define P_HEVC_PMV4_X (volatile unsigned int *)((0x3c26 << 2) + 0xff620000)
#define HEVC_PMV4_Y (0x3c27)
#define P_HEVC_PMV4_Y (volatile unsigned int *)((0x3c27 << 2) + 0xff620000)
// Can't use the same address for different defines
// Therefore, create a single define that covers both
// Only appears to be used in micro-code since the VLD hardware is
// hard coded.
// `define M4_TABLE_SELECT 8'h28 // Does this exist in HW ? Added from register_mp2.h
// `define M4_TABLE_OUTPUT 8'h28 // Does this exist in HW ? Added from register_mp2.h
#define HEVC_M4_TABLE_SELECT (0x3c28)
#define P_HEVC_M4_TABLE_SELECT (volatile unsigned int *)((0x3c28 << 2) + 0xff620000)
#define HEVC_M4_CONTROL_REG (0x3c29)
#define P_HEVC_M4_CONTROL_REG (volatile unsigned int *)((0x3c29 << 2) + 0xff620000)
#define HEVC_BLOCK_NUM (0x3c2a)
#define P_HEVC_BLOCK_NUM (volatile unsigned int *)((0x3c2a << 2) + 0xff620000)
#define HEVC_PATTERN_CODE (0x3c2b)
#define P_HEVC_PATTERN_CODE (volatile unsigned int *)((0x3c2b << 2) + 0xff620000)
#define HEVC_MB_INFO (0x3c2c)
#define P_HEVC_MB_INFO (volatile unsigned int *)((0x3c2c << 2) + 0xff620000)
#define HEVC_VLD_DC_PRED (0x3c2d)
#define P_HEVC_VLD_DC_PRED (volatile unsigned int *)((0x3c2d << 2) + 0xff620000)
#define HEVC_VLD_ERROR_MASK (0x3c2e)
#define P_HEVC_VLD_ERROR_MASK (volatile unsigned int *)((0x3c2e << 2) + 0xff620000)
#define HEVC_VLD_DC_PRED_C (0x3c2f)
#define P_HEVC_VLD_DC_PRED_C (volatile unsigned int *)((0x3c2f << 2) + 0xff620000)
#define HEVC_LAST_SLICE_MV_ADDR (0x3c30)
#define P_HEVC_LAST_SLICE_MV_ADDR (volatile unsigned int *)((0x3c30 << 2) + 0xff620000)
#define HEVC_LAST_MVX (0x3c31)
#define P_HEVC_LAST_MVX (volatile unsigned int *)((0x3c31 << 2) + 0xff620000)
#define HEVC_LAST_MVY (0x3c32)
#define P_HEVC_LAST_MVY (volatile unsigned int *)((0x3c32 << 2) + 0xff620000)
#define HEVC_VLD_C38 (0x3c38)
#define P_HEVC_VLD_C38 (volatile unsigned int *)((0x3c38 << 2) + 0xff620000)
#define HEVC_VLD_C39 (0x3c39)
#define P_HEVC_VLD_C39 (volatile unsigned int *)((0x3c39 << 2) + 0xff620000)
#define HEVC_VLD_STATUS (0x3c3a)
#define P_HEVC_VLD_STATUS (volatile unsigned int *)((0x3c3a << 2) + 0xff620000)
#define HEVC_VLD_SHIFT_STATUS (0x3c3b)
#define P_HEVC_VLD_SHIFT_STATUS (volatile unsigned int *)((0x3c3b << 2) + 0xff620000)
// `define VLD_SHIFT_INFO 8'h3b // Does this exist in HW ? used in $ucode/mpeg4
#define HEVC_VOFF_STATUS (0x3c3c)
#define P_HEVC_VOFF_STATUS (volatile unsigned int *)((0x3c3c << 2) + 0xff620000)
#define HEVC_VLD_C3D (0x3c3d)
#define P_HEVC_VLD_C3D (volatile unsigned int *)((0x3c3d << 2) + 0xff620000)
#define HEVC_VLD_DBG_INDEX (0x3c3e)
#define P_HEVC_VLD_DBG_INDEX (volatile unsigned int *)((0x3c3e << 2) + 0xff620000)
// vld_buff_info -- (index == 0)
// Bit11] halt_decode_start_voff
// Bit10] C_pred_error
// Bit[9] I4_pred_error
// Bit[8] I16_pred_error
// Bit[7:6] mv_UR_ready_cnt;
// Bit[5] vld_wr_idx
// Bit[4] iq_rd_idx
// Bit[3] vld_vi_block_rdy_1
// Bit[2] vld_vi_block_rdy_2
// Bit[1] voff_empty_1
// Bit[0] voff_empty_2
// cabac_buff_info_0 -- (index == 1)
// Bit[31] shift_data_ready
// Bit[30:29] Reserved
// Bit[28:24] cabac_buffer_ptr
// Bit[23:0] cabac_buffer
// cabac_buff_info_1 -- (index == 2)
// Bit[31:29] Reserved
// Bit[28:20] Drange
// Bit[19:16] bin_count_4
// Bit[15:13] Reserved
// Bit[12:6] context_mem_do
// Bit[5:3] coeff_state
// Bit[2:0] mvd_state
// h264_mv_present -- (index == 3)
// Bit[31:16] mv_present_l0
// Bit[15:0] mv_present_l1
// h264_mv_cal_info_0 -- (index == 4)
// [31:28] mv_cal_state
// [27:24] direct_spatial_cnt
// Bit[23:21] Reserved
// Bit[20] mv_UR_ready_for_mv_cal
// Bit[19] co_mb_mem_ready_for_mv_cal
// Bit[18] mc_dblk_cmd_if_busy
// Bit[17] h264_co_mb_wr_busy
// Bit[16] H264_cbp_blk_ready
// Bit[15] mc_hcmd_rrdy
// Bit[14] mc_hcmd_srdy
// Bit[13] mc_cmd_if_ready
// Bit[12] mc_hcmd_mv_available
// Bit[11:8] mc_cmd_if_state
// Bit[7] dblk_hcmd_rrdy
// Bit[6] dblk_hcmd_srdy
// Bit[5] dblk_cmd_if_ready
// Bit[4] dblk_hcmd_mv_available
// Bit[3:0] dblk_cmd_if_state
// h264_mv_cal_info_1 -- (index == 5)
// Bit[31:29] Reserved
// Bit[28:24] total_mvd_num_l0
// Bit[23:21] Reserved
// Bit[20:16] mv_cal_ptr_l0
// Bit[15:13] Reserved
// Bit[12:8] mc_hcmd_ptr_l0
// Bit[7:5] Reserved
// Bit[4:0] dblk_hcmd_ptr_l0
// h264_mv_cal_info_2 -- (index == 6)
// Bit[31:29] Reserved
// Bit[28:24] total_mvd_num_l1
// Bit[23:21] Reserved
// Bit[20:16] mv_cal_ptr_l1
// Bit[15:13] Reserved
// Bit[12:8] mc_hcmd_ptr_l1
// Bit[7:5] Reserved
// Bit[4:0] dblk_hcmd_ptr_l1
// h264_co_mb_info -- (index == 7)
// Bit[31:26] Reserved
// Bit[25] mv_scale_cal_busy
// Bit[24:20] co_mv_count
// Bit[19:16] co_mv_process_state
// Bit[15] h264_co_mb_rd_busy
// Bit[15] h264_co_mb_rd_ready
// Bit[13:12] co_mv_transfer_block_cnt
// Bit[11:8] co_mv_transfer_ptr
// Bit[7] co_mv_POC_l1_busy
// Bit[6] h264_weight_scale_cal_en
// Bit[5] weight_cal_busy
// Bit[4] weight_cal_not_finished
// Bit[3:0] weight_process_state
#define HEVC_VLD_DBG_DATA (0x3c3f)
#define P_HEVC_VLD_DBG_DATA (volatile unsigned int *)((0x3c3f << 2) + 0xff620000)
// --------------------------------------------
// VIFIFO DDR Interface
// --------------------------------------------
// The VIFIFO start pointer into DDR memory is a 32-bit number
// The Start pointer will automatically be truncated to land on
// an 8-byte boundary. That is, bits [2:0] = 0;
#define HEVC_VLD_MEM_VIFIFO_START_PTR (0x3c40)
#define P_HEVC_VLD_MEM_VIFIFO_START_PTR (volatile unsigned int *)((0x3c40 << 2) + 0xff620000)
// The current pointer points so some location between the START and END
// pointers. The current pointer is a BYTE pointer. That is, you can
// point to any BYTE address within the START/END range
#define HEVC_VLD_MEM_VIFIFO_CURR_PTR (0x3c41)
#define P_HEVC_VLD_MEM_VIFIFO_CURR_PTR (volatile unsigned int *)((0x3c41 << 2) + 0xff620000)
#define HEVC_VLD_MEM_VIFIFO_END_PTR (0x3c42)
#define P_HEVC_VLD_MEM_VIFIFO_END_PTR (volatile unsigned int *)((0x3c42 << 2) + 0xff620000)
#define HEVC_VLD_MEM_VIFIFO_BYTES_AVAIL (0x3c43)
#define P_HEVC_VLD_MEM_VIFIFO_BYTES_AVAIL (volatile unsigned int *)((0x3c43 << 2) + 0xff620000)
// VIFIFO FIFO Control
// bit [31:24] viff_empty_int_enable_cpu[7:0]
// bit [23:16] viff_empty_int_enable_amrisc[7:0]
// -bit 23 Video BUFFER < 0x400 Bytes
// -bit 22 Video BUFFER < 0x200 Bytes
// -bit 21 Video BUFFER < 0x100 Bytes
// -bit 20 Video BUFFER < 0x80 Bytes
// -bit 19 Video BUFFER < 0x40 Bytes
// -bit 18 Video BUFFER < 0x20 Bytes
// -bit 17 vififo < 16 double words
// -bit 16 vififo < 8 double words
// bit [15:13] unused
// bit [12] A_urgent
// bit [11] transfer_length 0 - 32x64 Bits per request, 1 - 16x64 Bits per request
// bit [10] use_level Set this bit to 1 to enable filling of the FIFO controlled by the buffer
// level control. If this bit is 0, then use bit[1] to control the enabling of filling
// bit [9] Data Ready. This bit is set when data can be popped
// bit [8] fill busy This bit will be high when we're fetching data from the DDR memory
// To reset this module, set cntl_enable = 0, and then wait for busy = 0.
// After that you can pulse cntl_init to start over
// bit [7] init_with_cntl_init
// bit [6] reserved
// bits [5:3] endian: see $lib/rtl/ddr_endian.v
// bit [2] cntl_empty_en Set to 1 to enable reading the DDR memory FIFO
// Set cntl_empty_en = cntl_fill_en = 0 when pulsing cntl_init
// bit [1] cntl_fill_en Set to 1 to enable reading data from DDR memory
// bit [0] cntl_init: After setting the read pointers, sizes, channel masks
// and read masks, set this bit to 1 and then to 0
// NOTE: You don't need to pulse cntl_init if only the start address is
// being changed
#define HEVC_VLD_MEM_VIFIFO_CONTROL (0x3c44)
#define P_HEVC_VLD_MEM_VIFIFO_CONTROL (volatile unsigned int *)((0x3c44 << 2) + 0xff620000)
// --------------------------------------------
// VIFIFO Buffer Level Manager
// --------------------------------------------
#define HEVC_VLD_MEM_VIFIFO_WP (0x3c45)
#define P_HEVC_VLD_MEM_VIFIFO_WP (volatile unsigned int *)((0x3c45 << 2) + 0xff620000)
#define HEVC_VLD_MEM_VIFIFO_RP (0x3c46)
#define P_HEVC_VLD_MEM_VIFIFO_RP (volatile unsigned int *)((0x3c46 << 2) + 0xff620000)
#define HEVC_VLD_MEM_VIFIFO_LEVEL (0x3c47)
#define P_HEVC_VLD_MEM_VIFIFO_LEVEL (volatile unsigned int *)((0x3c47 << 2) + 0xff620000)
//
// bit [8] use_parser_video2_wp
// bit [7] vbuf2_out_manual
// bit [6] vbuf_out_manual
// bit [5] empty (ReadOnly)
// bit [4] full (ReadOnly)
// bit [3:2] reserved
// bit [1] manual mode Set to 1 for manual write pointer mode
// bit [0] Init Set high then low after everything has been initialized
#define HEVC_VLD_MEM_VIFIFO_BUF_CNTL (0x3c48)
#define P_HEVC_VLD_MEM_VIFIFO_BUF_CNTL (volatile unsigned int *)((0x3c48 << 2) + 0xff620000)
// bit 31:16 -- drop_bytes
// bit 15:14 -- drop_status (Read-Only)
// bit 13:12 -- sync_match_position (Read-Only)
// bit 11:6 -- reserved
// bit 5:4 -- TIME_STAMP_NUMBER, 0-32bits, 1-64bits, 2-96bits, 3-128bits
// bit 3 -- stamp_soft_reset
// bit 2 -- TIME_STAMP_length_enable
// bit 1 -- TIME_STAMP_sync64_enable
// bit 0 -- TIME_STAMP_enable
#define HEVC_VLD_TIME_STAMP_CNTL (0x3c49)
#define P_HEVC_VLD_TIME_STAMP_CNTL (volatile unsigned int *)((0x3c49 << 2) + 0xff620000)
// bit 31:0 -- TIME_STAMP_SYNC_CODE_0
#define HEVC_VLD_TIME_STAMP_SYNC_0 (0x3c4a)
#define P_HEVC_VLD_TIME_STAMP_SYNC_0 (volatile unsigned int *)((0x3c4a << 2) + 0xff620000)
// bit 31:0 -- TIME_STAMP_SYNC_CODE_1
#define HEVC_VLD_TIME_STAMP_SYNC_1 (0x3c4b)
#define P_HEVC_VLD_TIME_STAMP_SYNC_1 (volatile unsigned int *)((0x3c4b << 2) + 0xff620000)
// bit 31:0 TIME_STAMP_0
#define HEVC_VLD_TIME_STAMP_0 (0x3c4c)
#define P_HEVC_VLD_TIME_STAMP_0 (volatile unsigned int *)((0x3c4c << 2) + 0xff620000)
// bit 31:0 TIME_STAMP_1
#define HEVC_VLD_TIME_STAMP_1 (0x3c4d)
#define P_HEVC_VLD_TIME_STAMP_1 (volatile unsigned int *)((0x3c4d << 2) + 0xff620000)
// bit 31:0 TIME_STAMP_2
#define HEVC_VLD_TIME_STAMP_2 (0x3c4e)
#define P_HEVC_VLD_TIME_STAMP_2 (volatile unsigned int *)((0x3c4e << 2) + 0xff620000)
// bit 31:0 TIME_STAMP_3
#define HEVC_VLD_TIME_STAMP_3 (0x3c4f)
#define P_HEVC_VLD_TIME_STAMP_3 (volatile unsigned int *)((0x3c4f << 2) + 0xff620000)
// bit 31:0 TIME_STAMP_LENGTH
#define HEVC_VLD_TIME_STAMP_LENGTH (0x3c50)
#define P_HEVC_VLD_TIME_STAMP_LENGTH (volatile unsigned int *)((0x3c50 << 2) + 0xff620000)
// bit 15:0 vififo_rd_count
#define HEVC_VLD_MEM_VIFIFO_WRAP_COUNT (0x3c51)
#define P_HEVC_VLD_MEM_VIFIFO_WRAP_COUNT (volatile unsigned int *)((0x3c51 << 2) + 0xff620000)
// bit 29:24 A_brst_num
// bit 21:16 A_id
// bit 15:0 level_hold
#define HEVC_VLD_MEM_VIFIFO_MEM_CTL (0x3c52)
#define P_HEVC_VLD_MEM_VIFIFO_MEM_CTL (volatile unsigned int *)((0x3c52 << 2) + 0xff620000)
#define HEVC_VLD_MEM_VBUF_RD_PTR (0x3c53)
#define P_HEVC_VLD_MEM_VBUF_RD_PTR (volatile unsigned int *)((0x3c53 << 2) + 0xff620000)
#define HEVC_VLD_MEM_VBUF2_RD_PTR (0x3c54)
#define P_HEVC_VLD_MEM_VBUF2_RD_PTR (volatile unsigned int *)((0x3c54 << 2) + 0xff620000)
#define HEVC_VLD_MEM_SWAP_ADDR (0x3c55)
#define P_HEVC_VLD_MEM_SWAP_ADDR (volatile unsigned int *)((0x3c55 << 2) + 0xff620000)
// bit[23:16] - swap_d_count (Read Only)
// bit[15:8] - swap_a_count (Read Only)
// bit [7] - swap busy (Read Only)
// bit [6:2] - reserved
// bit [1] - 1 - STORE to Memory, 0 - LOAD from Memory
// bit [0] - swap active
#define HEVC_VLD_MEM_SWAP_CTL (0x3c56)
#define P_HEVC_VLD_MEM_SWAP_CTL (volatile unsigned int *)((0x3c56 << 2) + 0xff620000)
//
// Closing file: vld_regs.h
//
//
// Reading file: iqidct_regs.h
//
//========================================================================
// IQ/IDCT module level register offset
//========================================================================
// -----------------------------------------------
// CBUS_BASE: DOS_VDEC_IQIDCT_CBUS_BASE = 0x0e
// -----------------------------------------------
#define HCODEC_VCOP_CTRL_REG (0x1e00)
#define P_HCODEC_VCOP_CTRL_REG (volatile unsigned int *)((0x1e00 << 2) + 0xff620000)
#define HCODEC_QP_CTRL_REG (0x1e01)
#define P_HCODEC_QP_CTRL_REG (volatile unsigned int *)((0x1e01 << 2) + 0xff620000)
#define HCODEC_INTRA_QUANT_MATRIX (0x1e02)
#define P_HCODEC_INTRA_QUANT_MATRIX (volatile unsigned int *)((0x1e02 << 2) + 0xff620000)
#define HCODEC_NON_I_QUANT_MATRIX (0x1e03)
#define P_HCODEC_NON_I_QUANT_MATRIX (volatile unsigned int *)((0x1e03 << 2) + 0xff620000)
#define HCODEC_DC_SCALER (0x1e04)
#define P_HCODEC_DC_SCALER (volatile unsigned int *)((0x1e04 << 2) + 0xff620000)
#define HCODEC_DC_AC_CTRL (0x1e05)
#define P_HCODEC_DC_AC_CTRL (volatile unsigned int *)((0x1e05 << 2) + 0xff620000)
// `define RV_AI_CTRL 8'h05 // ONLY for $ucode/real/amrisc/rv.s reg value from apollo
#define HCODEC_DC_AC_SCALE_MUL (0x1e06)
#define P_HCODEC_DC_AC_SCALE_MUL (volatile unsigned int *)((0x1e06 << 2) + 0xff620000)
#define HCODEC_DC_AC_SCALE_DIV (0x1e07)
#define P_HCODEC_DC_AC_SCALE_DIV (volatile unsigned int *)((0x1e07 << 2) + 0xff620000)
// `define DC_AC_SCALE_RESULT 8'h06
// `define RESERVED_E07 8'h07
#define HCODEC_POWER_CTL_IQIDCT (0x1e08)
#define P_HCODEC_POWER_CTL_IQIDCT (volatile unsigned int *)((0x1e08 << 2) + 0xff620000)
#define HCODEC_RV_AI_Y_X (0x1e09)
#define P_HCODEC_RV_AI_Y_X (volatile unsigned int *)((0x1e09 << 2) + 0xff620000)
#define HCODEC_RV_AI_U_X (0x1e0a)
#define P_HCODEC_RV_AI_U_X (volatile unsigned int *)((0x1e0a << 2) + 0xff620000)
#define HCODEC_RV_AI_V_X (0x1e0b)
#define P_HCODEC_RV_AI_V_X (volatile unsigned int *)((0x1e0b << 2) + 0xff620000)
// bit 15:0 will count up when rv_ai_mb finished when non zero
// and rv_ai_mb_finished_int will be generate when this is not zero
#define HCODEC_RV_AI_MB_COUNT (0x1e0c)
#define P_HCODEC_RV_AI_MB_COUNT (volatile unsigned int *)((0x1e0c << 2) + 0xff620000)
// For H264 I in PB picture Use -- dma type : h264_next_intra_dma
#define HCODEC_NEXT_INTRA_DMA_ADDRESS (0x1e0d)
#define P_HCODEC_NEXT_INTRA_DMA_ADDRESS (volatile unsigned int *)((0x1e0d << 2) + 0xff620000)
// Bit 16 -- dcac_dma_read_cache_disable
// Bit 15 -- dcac_dma_urgent
// Bit 14 -- nv21_swap
// Bit 13 -- nv21_top_dma
// Bit 12 -- reset_rv_ai_wait_rd_data
// Bit 11 -- set_rv_ai_wait_rd_data [12:11] = 3 means only dec 1 (For Skipped MB of MBAFF)
// Bit 10 -- rv_ai_wait_rd_data (Read Only)
// Bit 9 -- enable_rv_ai_wait_rd_data
// Bit 8 -- disable_vc1_mv_update
// Bit 7 -- pred_dc_signed
// Bit 6 -- inc_vld_ready_count
// Bit 5 -- dec_vld_ready_count
// Bit 4 -- disable_ref_bidir_fix
// Bit 3 -- disable_MV_UL_l1_bot_fix
// Bit 2 -- disable_mb_aff_fix
// Bit 1 -- canvas_addr_7
// Bit 0 -- constrained_intra_pred_flag for H264
#define HCODEC_IQIDCT_CONTROL (0x1e0e)
#define P_HCODEC_IQIDCT_CONTROL (volatile unsigned int *)((0x1e0e << 2) + 0xff620000)
// Bit[31:19] Reserved
// Bit[18] iq_waiting
// Bit[17] iq_om_wr_idx
// Bit[16] iq_om_rd_idx
// Bit[15] iq_om_busy
// Bit[14] iq_om_2_busy
// Bit[13] idx_fifo_0
// Bit[12] idx_fifo_1
// Bit[11] idx_fifo_2
// Bit[10] idx_fifo_3
// Bit[9] idx_fifo_4
// Bit[8] idx_fifo_5
// Bit[7] idx_fifo_6
// Bit[6] idx_fifo_7
// Bit[5:3] idx_fifo_wp
// Bit[2:0] idx_fifo_rp
#define HCODEC_IQIDCT_DEBUG_INFO_0 (0x1e0f)
#define P_HCODEC_IQIDCT_DEBUG_INFO_0 (volatile unsigned int *)((0x1e0f << 2) + 0xff620000)
// For RTL Simulation Only
#define HCODEC_DEBLK_CMD (0x1e10)
#define P_HCODEC_DEBLK_CMD (volatile unsigned int *)((0x1e10 << 2) + 0xff620000)
// Bit[15+16] ds_mc_valid_2
// Bit[14+16] new_idct1_rd_idx_2
// Bit[13+16] new_idct1_wr_idx_2
// Bit[12+16] idct1_buff0_busy_2
// Bit[11+16] idct1_buff1_busy_2
// Bit[10+16] new_idct1_busy_2
// Bit[9+16] iq_om_8val_2
// Bit[8+16] idct1_pipe_busy_2
// Bit[7+16] wait_mb_left_finish_hold_2
// Bit[6+16] new_idct2_rd_idx_2
// Bit[5+16] new_idct2_wr_idx_2
// Bit[4+16] idct2_buff0_busy_2
// Bit[3+16] idct2_buff1_busy_2
// Bit[2+16] idct2_en_2
// Bit[1+16] new_idct2_busy_2
// Bit[0+16] new_idct1_ready_2
// Bit[15] ds_mc_valid_1
// Bit[14] new_idct1_rd_idx_1
// Bit[13] new_idct1_wr_idx_1
// Bit[12] idct1_buff0_busy_1
// Bit[11] idct1_buff1_busy_1
// Bit[10] new_idct1_busy_1
// Bit[9] iq_om_8val_1
// Bit[8] idct1_pipe_busy_1
// Bit[7] wait_mb_left_finish_hold_1
// Bit[6] new_idct2_rd_idx_1
// Bit[5] new_idct2_wr_idx_1
// Bit[4] idct2_buff0_busy_1
// Bit[3] idct2_buff1_busy_1
// Bit[2] idct2_en_1
// Bit[1] new_idct2_busy_1
// Bit[0] new_idct1_ready_1
#define HCODEC_IQIDCT_DEBUG_IDCT (0x1e11)
#define P_HCODEC_IQIDCT_DEBUG_IDCT (volatile unsigned int *)((0x1e11 << 2) + 0xff620000)
// bit 31 -- convas_enable
// bit 30:24 -- convas_x_count ( 8 pixels / 64 bits )
// bit 23:16 -- convas_y_count
// bit 15 -- dcac_dma_busy
// bit 14 -- dcac_dma_read_cache_active
// bit 13:8 -- dcac_dma_count
// bit 7 -- dcac_dma_rw
// bit 6 -- dcac_skip_read_mode
// bit 5:0 -- dcac_dma_offset
#define HCODEC_DCAC_DMA_CTRL (0x1e12)
#define P_HCODEC_DCAC_DMA_CTRL (volatile unsigned int *)((0x1e12 << 2) + 0xff620000)
// when (convas_enable == 0 )
// bit 31:0 dcac_dma_addr
// when (convas_enable == 1 )
// bit 31:25 canvas_addr (7 bits)
// bit 24:12 convas_y_start ( 13 btis )
// bit 11:0 convas_x_start ( 12 btis )
#define HCODEC_DCAC_DMA_ADDRESS (0x1e13)
#define P_HCODEC_DCAC_DMA_ADDRESS (volatile unsigned int *)((0x1e13 << 2) + 0xff620000)
// bit 7:0 -- dcac_cpu_addr
#define HCODEC_DCAC_CPU_ADDRESS (0x1e14)
#define P_HCODEC_DCAC_CPU_ADDRESS (volatile unsigned int *)((0x1e14 << 2) + 0xff620000)
// bit 31:0 -- dcac_cpu_data
#define HCODEC_DCAC_CPU_DATA (0x1e15)
#define P_HCODEC_DCAC_CPU_DATA (volatile unsigned int *)((0x1e15 << 2) + 0xff620000)
// bit 31:19 -- reserved
// bit 18:16 -- block_num_reg -- Read-Only
// bit 15:0 -- dcac_mb_count
#define HCODEC_DCAC_MB_COUNT (0x1e16)
#define P_HCODEC_DCAC_MB_COUNT (volatile unsigned int *)((0x1e16 << 2) + 0xff620000)
// bit 31:18 -- reserved
// For H264 :
// bit 17:2 -- h264_quant
// bit 11:6 -- h264_quant_c
// bit 5:0 -- h264_quant_c
// For VC1 :
// bit 17 -- qindex_GT_8
// bit 16 -- HalfQPStep
// bit 15:12 -- eQuantMode
// bit 11:6 -- AltPQuant
// bit 5:0 -- PQuant
//
#define HCODEC_IQ_QUANT (0x1e17)
#define P_HCODEC_IQ_QUANT (volatile unsigned int *)((0x1e17 << 2) + 0xff620000)
// bit 31:24 -- bitplane_width
// bit 23:16 -- bitplane_height
// bit 15:14 -- bitplane_start_x
// bit 13:12 -- bitplane_start_y
// bit 11:4 -- reserved
// bit 3:1 -- bitplane_type
// bit 0 -- bitplane_busy
#define HCODEC_VC1_BITPLANE_CTL (0x1e18)
#define P_HCODEC_VC1_BITPLANE_CTL (volatile unsigned int *)((0x1e18 << 2) + 0xff620000)
// bit 24:16 -- wq_param1
// bit 8: 0 -- wq_param0
#define HCODEC_AVSP_IQ_WQ_PARAM_01 (0x1e19)
#define P_HCODEC_AVSP_IQ_WQ_PARAM_01 (volatile unsigned int *)((0x1e19 << 2) + 0xff620000)
// bit 24:16 -- wq_param3
// bit 8: 0 -- wq_param2
#define HCODEC_AVSP_IQ_WQ_PARAM_23 (0x1e1a)
#define P_HCODEC_AVSP_IQ_WQ_PARAM_23 (volatile unsigned int *)((0x1e1a << 2) + 0xff620000)
// bit 24:16 -- wq_param5
// bit 8: 0 -- wq_param4
#define HCODEC_AVSP_IQ_WQ_PARAM_45 (0x1e1b)
#define P_HCODEC_AVSP_IQ_WQ_PARAM_45 (volatile unsigned int *)((0x1e1b << 2) + 0xff620000)
// bit 31 -- weight_quant_en
// bit 17:16 -- current_scene_model
// bit 12: 8 -- chroma_qp_delta_cr
// bit 4: 0 -- chroma_qp_delta_cb
#define HCODEC_AVSP_IQ_CTL (0x1e1c)
#define P_HCODEC_AVSP_IQ_CTL (volatile unsigned int *)((0x1e1c << 2) + 0xff620000)
//======================================
// VCOP Control Register Bits
//
//======================================
//`define IQIDCT_RESET 16'h0001 // Bit 0
//======================================
// QP Control Register Bits
//
//======================================
// Duplicate Address: When actually used
// please move to a different address
// `define FLD_DCT_TYPE 16'h0100 // Bit 8 0 = Frame DCT; 1 = field DCT
//
// Closing file: iqidct_regs.h
//
//
// Reading file: iqidct_regs.h
//
//========================================================================
// IQ/IDCT module level register offset
//========================================================================
// -----------------------------------------------
// CBUS_BASE: DOS_VDEC_IQIDCT_CBUS_BASE = 0x0e
// -----------------------------------------------
#define VDEC2_VCOP_CTRL_REG (0x2e00)
#define P_VDEC2_VCOP_CTRL_REG (volatile unsigned int *)((0x2e00 << 2) + 0xff620000)
#define VDEC2_QP_CTRL_REG (0x2e01)
#define P_VDEC2_QP_CTRL_REG (volatile unsigned int *)((0x2e01 << 2) + 0xff620000)
#define VDEC2_INTRA_QUANT_MATRIX (0x2e02)
#define P_VDEC2_INTRA_QUANT_MATRIX (volatile unsigned int *)((0x2e02 << 2) + 0xff620000)
#define VDEC2_NON_I_QUANT_MATRIX (0x2e03)
#define P_VDEC2_NON_I_QUANT_MATRIX (volatile unsigned int *)((0x2e03 << 2) + 0xff620000)
#define VDEC2_DC_SCALER (0x2e04)
#define P_VDEC2_DC_SCALER (volatile unsigned int *)((0x2e04 << 2) + 0xff620000)
#define VDEC2_DC_AC_CTRL (0x2e05)
#define P_VDEC2_DC_AC_CTRL (volatile unsigned int *)((0x2e05 << 2) + 0xff620000)
// `define RV_AI_CTRL 8'h05 // ONLY for $ucode/real/amrisc/rv.s reg value from apollo
#define VDEC2_DC_AC_SCALE_MUL (0x2e06)
#define P_VDEC2_DC_AC_SCALE_MUL (volatile unsigned int *)((0x2e06 << 2) + 0xff620000)
#define VDEC2_DC_AC_SCALE_DIV (0x2e07)
#define P_VDEC2_DC_AC_SCALE_DIV (volatile unsigned int *)((0x2e07 << 2) + 0xff620000)
// `define DC_AC_SCALE_RESULT 8'h06
// `define RESERVED_E07 8'h07
#define VDEC2_POWER_CTL_IQIDCT (0x2e08)
#define P_VDEC2_POWER_CTL_IQIDCT (volatile unsigned int *)((0x2e08 << 2) + 0xff620000)
#define VDEC2_RV_AI_Y_X (0x2e09)
#define P_VDEC2_RV_AI_Y_X (volatile unsigned int *)((0x2e09 << 2) + 0xff620000)
#define VDEC2_RV_AI_U_X (0x2e0a)
#define P_VDEC2_RV_AI_U_X (volatile unsigned int *)((0x2e0a << 2) + 0xff620000)
#define VDEC2_RV_AI_V_X (0x2e0b)
#define P_VDEC2_RV_AI_V_X (volatile unsigned int *)((0x2e0b << 2) + 0xff620000)
// bit 15:0 will count up when rv_ai_mb finished when non zero
// and rv_ai_mb_finished_int will be generate when this is not zero
#define VDEC2_RV_AI_MB_COUNT (0x2e0c)
#define P_VDEC2_RV_AI_MB_COUNT (volatile unsigned int *)((0x2e0c << 2) + 0xff620000)
// For H264 I in PB picture Use -- dma type : h264_next_intra_dma
#define VDEC2_NEXT_INTRA_DMA_ADDRESS (0x2e0d)
#define P_VDEC2_NEXT_INTRA_DMA_ADDRESS (volatile unsigned int *)((0x2e0d << 2) + 0xff620000)
// Bit 16 -- dcac_dma_read_cache_disable
// Bit 15 -- dcac_dma_urgent
// Bit 14 -- nv21_swap
// Bit 13 -- nv21_top_dma
// Bit 12 -- reset_rv_ai_wait_rd_data
// Bit 11 -- set_rv_ai_wait_rd_data [12:11] = 3 means only dec 1 (For Skipped MB of MBAFF)
// Bit 10 -- rv_ai_wait_rd_data (Read Only)
// Bit 9 -- enable_rv_ai_wait_rd_data
// Bit 8 -- disable_vc1_mv_update
// Bit 7 -- pred_dc_signed
// Bit 6 -- inc_vld_ready_count
// Bit 5 -- dec_vld_ready_count
// Bit 4 -- disable_ref_bidir_fix
// Bit 3 -- disable_MV_UL_l1_bot_fix
// Bit 2 -- disable_mb_aff_fix
// Bit 1 -- canvas_addr_7
// Bit 0 -- constrained_intra_pred_flag for H264
#define VDEC2_IQIDCT_CONTROL (0x2e0e)
#define P_VDEC2_IQIDCT_CONTROL (volatile unsigned int *)((0x2e0e << 2) + 0xff620000)
// Bit[31:19] Reserved
// Bit[18] iq_waiting
// Bit[17] iq_om_wr_idx
// Bit[16] iq_om_rd_idx
// Bit[15] iq_om_busy
// Bit[14] iq_om_2_busy
// Bit[13] idx_fifo_0
// Bit[12] idx_fifo_1
// Bit[11] idx_fifo_2
// Bit[10] idx_fifo_3
// Bit[9] idx_fifo_4
// Bit[8] idx_fifo_5
// Bit[7] idx_fifo_6
// Bit[6] idx_fifo_7
// Bit[5:3] idx_fifo_wp
// Bit[2:0] idx_fifo_rp
#define VDEC2_IQIDCT_DEBUG_INFO_0 (0x2e0f)
#define P_VDEC2_IQIDCT_DEBUG_INFO_0 (volatile unsigned int *)((0x2e0f << 2) + 0xff620000)
// For RTL Simulation Only
#define VDEC2_DEBLK_CMD (0x2e10)
#define P_VDEC2_DEBLK_CMD (volatile unsigned int *)((0x2e10 << 2) + 0xff620000)
// Bit[15+16] ds_mc_valid_2
// Bit[14+16] new_idct1_rd_idx_2
// Bit[13+16] new_idct1_wr_idx_2
// Bit[12+16] idct1_buff0_busy_2
// Bit[11+16] idct1_buff1_busy_2
// Bit[10+16] new_idct1_busy_2
// Bit[9+16] iq_om_8val_2
// Bit[8+16] idct1_pipe_busy_2
// Bit[7+16] wait_mb_left_finish_hold_2
// Bit[6+16] new_idct2_rd_idx_2
// Bit[5+16] new_idct2_wr_idx_2
// Bit[4+16] idct2_buff0_busy_2
// Bit[3+16] idct2_buff1_busy_2
// Bit[2+16] idct2_en_2
// Bit[1+16] new_idct2_busy_2
// Bit[0+16] new_idct1_ready_2
// Bit[15] ds_mc_valid_1
// Bit[14] new_idct1_rd_idx_1
// Bit[13] new_idct1_wr_idx_1
// Bit[12] idct1_buff0_busy_1
// Bit[11] idct1_buff1_busy_1
// Bit[10] new_idct1_busy_1
// Bit[9] iq_om_8val_1
// Bit[8] idct1_pipe_busy_1
// Bit[7] wait_mb_left_finish_hold_1
// Bit[6] new_idct2_rd_idx_1
// Bit[5] new_idct2_wr_idx_1
// Bit[4] idct2_buff0_busy_1
// Bit[3] idct2_buff1_busy_1
// Bit[2] idct2_en_1
// Bit[1] new_idct2_busy_1
// Bit[0] new_idct1_ready_1
#define VDEC2_IQIDCT_DEBUG_IDCT (0x2e11)
#define P_VDEC2_IQIDCT_DEBUG_IDCT (volatile unsigned int *)((0x2e11 << 2) + 0xff620000)
// bit 31 -- convas_enable
// bit 30:24 -- convas_x_count ( 8 pixels / 64 bits )
// bit 23:16 -- convas_y_count
// bit 15 -- dcac_dma_busy
// bit 14 -- dcac_dma_read_cache_active
// bit 13:8 -- dcac_dma_count
// bit 7 -- dcac_dma_rw
// bit 6 -- dcac_skip_read_mode
// bit 5:0 -- dcac_dma_offset
#define VDEC2_DCAC_DMA_CTRL (0x2e12)
#define P_VDEC2_DCAC_DMA_CTRL (volatile unsigned int *)((0x2e12 << 2) + 0xff620000)
// when (convas_enable == 0 )
// bit 31:0 dcac_dma_addr
// when (convas_enable == 1 )
// bit 31:25 canvas_addr (7 bits)
// bit 24:12 convas_y_start ( 13 btis )
// bit 11:0 convas_x_start ( 12 btis )
#define VDEC2_DCAC_DMA_ADDRESS (0x2e13)
#define P_VDEC2_DCAC_DMA_ADDRESS (volatile unsigned int *)((0x2e13 << 2) + 0xff620000)
// bit 7:0 -- dcac_cpu_addr
#define VDEC2_DCAC_CPU_ADDRESS (0x2e14)
#define P_VDEC2_DCAC_CPU_ADDRESS (volatile unsigned int *)((0x2e14 << 2) + 0xff620000)
// bit 31:0 -- dcac_cpu_data
#define VDEC2_DCAC_CPU_DATA (0x2e15)
#define P_VDEC2_DCAC_CPU_DATA (volatile unsigned int *)((0x2e15 << 2) + 0xff620000)
// bit 31:19 -- reserved
// bit 18:16 -- block_num_reg -- Read-Only
// bit 15:0 -- dcac_mb_count
#define VDEC2_DCAC_MB_COUNT (0x2e16)
#define P_VDEC2_DCAC_MB_COUNT (volatile unsigned int *)((0x2e16 << 2) + 0xff620000)
// bit 31:18 -- reserved
// For H264 :
// bit 17:2 -- h264_quant
// bit 11:6 -- h264_quant_c
// bit 5:0 -- h264_quant_c
// For VC1 :
// bit 17 -- qindex_GT_8
// bit 16 -- HalfQPStep
// bit 15:12 -- eQuantMode
// bit 11:6 -- AltPQuant
// bit 5:0 -- PQuant
//
#define VDEC2_IQ_QUANT (0x2e17)
#define P_VDEC2_IQ_QUANT (volatile unsigned int *)((0x2e17 << 2) + 0xff620000)
// bit 31:24 -- bitplane_width
// bit 23:16 -- bitplane_height
// bit 15:14 -- bitplane_start_x
// bit 13:12 -- bitplane_start_y
// bit 11:4 -- reserved
// bit 3:1 -- bitplane_type
// bit 0 -- bitplane_busy
#define VDEC2_VC1_BITPLANE_CTL (0x2e18)
#define P_VDEC2_VC1_BITPLANE_CTL (volatile unsigned int *)((0x2e18 << 2) + 0xff620000)
// bit 24:16 -- wq_param1
// bit 8: 0 -- wq_param0
#define VDEC2_AVSP_IQ_WQ_PARAM_01 (0x2e19)
#define P_VDEC2_AVSP_IQ_WQ_PARAM_01 (volatile unsigned int *)((0x2e19 << 2) + 0xff620000)
// bit 24:16 -- wq_param3
// bit 8: 0 -- wq_param2
#define VDEC2_AVSP_IQ_WQ_PARAM_23 (0x2e1a)
#define P_VDEC2_AVSP_IQ_WQ_PARAM_23 (volatile unsigned int *)((0x2e1a << 2) + 0xff620000)
// bit 24:16 -- wq_param5
// bit 8: 0 -- wq_param4
#define VDEC2_AVSP_IQ_WQ_PARAM_45 (0x2e1b)
#define P_VDEC2_AVSP_IQ_WQ_PARAM_45 (volatile unsigned int *)((0x2e1b << 2) + 0xff620000)
// bit 31 -- weight_quant_en
// bit 17:16 -- current_scene_model
// bit 12: 8 -- chroma_qp_delta_cr
// bit 4: 0 -- chroma_qp_delta_cb
#define VDEC2_AVSP_IQ_CTL (0x2e1c)
#define P_VDEC2_AVSP_IQ_CTL (volatile unsigned int *)((0x2e1c << 2) + 0xff620000)
//======================================
// VCOP Control Register Bits
//
//======================================
//`define IQIDCT_RESET 16'h0001 // Bit 0
//======================================
// QP Control Register Bits
//
//======================================
// Duplicate Address: When actually used
// please move to a different address
// `define FLD_DCT_TYPE 16'h0100 // Bit 8 0 = Frame DCT; 1 = field DCT
//
// Closing file: iqidct_regs.h
//
//
// Reading file: iqidct_regs.h
//
//========================================================================
// IQ/IDCT module level register offset
//========================================================================
// -----------------------------------------------
// CBUS_BASE: DOS_VDEC_IQIDCT_CBUS_BASE = 0x0e
// -----------------------------------------------
#define HEVC_VCOP_CTRL_REG (0x3e00)
#define P_HEVC_VCOP_CTRL_REG (volatile unsigned int *)((0x3e00 << 2) + 0xff620000)
#define HEVC_QP_CTRL_REG (0x3e01)
#define P_HEVC_QP_CTRL_REG (volatile unsigned int *)((0x3e01 << 2) + 0xff620000)
#define HEVC_INTRA_QUANT_MATRIX (0x3e02)
#define P_HEVC_INTRA_QUANT_MATRIX (volatile unsigned int *)((0x3e02 << 2) + 0xff620000)
#define HEVC_NON_I_QUANT_MATRIX (0x3e03)
#define P_HEVC_NON_I_QUANT_MATRIX (volatile unsigned int *)((0x3e03 << 2) + 0xff620000)
#define HEVC_DC_SCALER (0x3e04)
#define P_HEVC_DC_SCALER (volatile unsigned int *)((0x3e04 << 2) + 0xff620000)
#define HEVC_DC_AC_CTRL (0x3e05)
#define P_HEVC_DC_AC_CTRL (volatile unsigned int *)((0x3e05 << 2) + 0xff620000)
// `define RV_AI_CTRL 8'h05 // ONLY for $ucode/real/amrisc/rv.s reg value from apollo
#define HEVC_DC_AC_SCALE_MUL (0x3e06)
#define P_HEVC_DC_AC_SCALE_MUL (volatile unsigned int *)((0x3e06 << 2) + 0xff620000)
#define HEVC_DC_AC_SCALE_DIV (0x3e07)
#define P_HEVC_DC_AC_SCALE_DIV (volatile unsigned int *)((0x3e07 << 2) + 0xff620000)
// `define DC_AC_SCALE_RESULT 8'h06
// `define RESERVED_E07 8'h07
#define HEVC_POWER_CTL_IQIDCT (0x3e08)
#define P_HEVC_POWER_CTL_IQIDCT (volatile unsigned int *)((0x3e08 << 2) + 0xff620000)
#define HEVC_RV_AI_Y_X (0x3e09)
#define P_HEVC_RV_AI_Y_X (volatile unsigned int *)((0x3e09 << 2) + 0xff620000)
#define HEVC_RV_AI_U_X (0x3e0a)
#define P_HEVC_RV_AI_U_X (volatile unsigned int *)((0x3e0a << 2) + 0xff620000)
#define HEVC_RV_AI_V_X (0x3e0b)
#define P_HEVC_RV_AI_V_X (volatile unsigned int *)((0x3e0b << 2) + 0xff620000)
// bit 15:0 will count up when rv_ai_mb finished when non zero
// and rv_ai_mb_finished_int will be generate when this is not zero
#define HEVC_RV_AI_MB_COUNT (0x3e0c)
#define P_HEVC_RV_AI_MB_COUNT (volatile unsigned int *)((0x3e0c << 2) + 0xff620000)
// For H264 I in PB picture Use -- dma type : h264_next_intra_dma
#define HEVC_NEXT_INTRA_DMA_ADDRESS (0x3e0d)
#define P_HEVC_NEXT_INTRA_DMA_ADDRESS (volatile unsigned int *)((0x3e0d << 2) + 0xff620000)
// Bit 16 -- dcac_dma_read_cache_disable
// Bit 15 -- dcac_dma_urgent
// Bit 14 -- nv21_swap
// Bit 13 -- nv21_top_dma
// Bit 12 -- reset_rv_ai_wait_rd_data
// Bit 11 -- set_rv_ai_wait_rd_data [12:11] = 3 means only dec 1 (For Skipped MB of MBAFF)
// Bit 10 -- rv_ai_wait_rd_data (Read Only)
// Bit 9 -- enable_rv_ai_wait_rd_data
// Bit 8 -- disable_vc1_mv_update
// Bit 7 -- pred_dc_signed
// Bit 6 -- inc_vld_ready_count
// Bit 5 -- dec_vld_ready_count
// Bit 4 -- disable_ref_bidir_fix
// Bit 3 -- disable_MV_UL_l1_bot_fix
// Bit 2 -- disable_mb_aff_fix
// Bit 1 -- canvas_addr_7
// Bit 0 -- constrained_intra_pred_flag for H264
#define HEVC_IQIDCT_CONTROL (0x3e0e)
#define P_HEVC_IQIDCT_CONTROL (volatile unsigned int *)((0x3e0e << 2) + 0xff620000)
// Bit[31:19] Reserved
// Bit[18] iq_waiting
// Bit[17] iq_om_wr_idx
// Bit[16] iq_om_rd_idx
// Bit[15] iq_om_busy
// Bit[14] iq_om_2_busy
// Bit[13] idx_fifo_0
// Bit[12] idx_fifo_1
// Bit[11] idx_fifo_2
// Bit[10] idx_fifo_3
// Bit[9] idx_fifo_4
// Bit[8] idx_fifo_5
// Bit[7] idx_fifo_6
// Bit[6] idx_fifo_7
// Bit[5:3] idx_fifo_wp
// Bit[2:0] idx_fifo_rp
#define HEVC_IQIDCT_DEBUG_INFO_0 (0x3e0f)
#define P_HEVC_IQIDCT_DEBUG_INFO_0 (volatile unsigned int *)((0x3e0f << 2) + 0xff620000)
// For RTL Simulation Only
#define HEVC_DEBLK_CMD (0x3e10)
#define P_HEVC_DEBLK_CMD (volatile unsigned int *)((0x3e10 << 2) + 0xff620000)
// Bit[15+16] ds_mc_valid_2
// Bit[14+16] new_idct1_rd_idx_2
// Bit[13+16] new_idct1_wr_idx_2
// Bit[12+16] idct1_buff0_busy_2
// Bit[11+16] idct1_buff1_busy_2
// Bit[10+16] new_idct1_busy_2
// Bit[9+16] iq_om_8val_2
// Bit[8+16] idct1_pipe_busy_2
// Bit[7+16] wait_mb_left_finish_hold_2
// Bit[6+16] new_idct2_rd_idx_2
// Bit[5+16] new_idct2_wr_idx_2
// Bit[4+16] idct2_buff0_busy_2
// Bit[3+16] idct2_buff1_busy_2
// Bit[2+16] idct2_en_2
// Bit[1+16] new_idct2_busy_2
// Bit[0+16] new_idct1_ready_2
// Bit[15] ds_mc_valid_1
// Bit[14] new_idct1_rd_idx_1
// Bit[13] new_idct1_wr_idx_1
// Bit[12] idct1_buff0_busy_1
// Bit[11] idct1_buff1_busy_1
// Bit[10] new_idct1_busy_1
// Bit[9] iq_om_8val_1
// Bit[8] idct1_pipe_busy_1
// Bit[7] wait_mb_left_finish_hold_1
// Bit[6] new_idct2_rd_idx_1
// Bit[5] new_idct2_wr_idx_1
// Bit[4] idct2_buff0_busy_1
// Bit[3] idct2_buff1_busy_1
// Bit[2] idct2_en_1
// Bit[1] new_idct2_busy_1
// Bit[0] new_idct1_ready_1
#define HEVC_IQIDCT_DEBUG_IDCT (0x3e11)
#define P_HEVC_IQIDCT_DEBUG_IDCT (volatile unsigned int *)((0x3e11 << 2) + 0xff620000)
// bit 31 -- convas_enable
// bit 30:24 -- convas_x_count ( 8 pixels / 64 bits )
// bit 23:16 -- convas_y_count
// bit 15 -- dcac_dma_busy
// bit 14 -- dcac_dma_read_cache_active
// bit 13:8 -- dcac_dma_count
// bit 7 -- dcac_dma_rw
// bit 6 -- dcac_skip_read_mode
// bit 5:0 -- dcac_dma_offset
#define HEVC_DCAC_DMA_CTRL (0x3e12)
#define P_HEVC_DCAC_DMA_CTRL (volatile unsigned int *)((0x3e12 << 2) + 0xff620000)
// when (convas_enable == 0 )
// bit 31:0 dcac_dma_addr
// when (convas_enable == 1 )
// bit 31:25 canvas_addr (7 bits)
// bit 24:12 convas_y_start ( 13 btis )
// bit 11:0 convas_x_start ( 12 btis )
#define HEVC_DCAC_DMA_ADDRESS (0x3e13)
#define P_HEVC_DCAC_DMA_ADDRESS (volatile unsigned int *)((0x3e13 << 2) + 0xff620000)
// bit 7:0 -- dcac_cpu_addr
#define HEVC_DCAC_CPU_ADDRESS (0x3e14)
#define P_HEVC_DCAC_CPU_ADDRESS (volatile unsigned int *)((0x3e14 << 2) + 0xff620000)
// bit 31:0 -- dcac_cpu_data
#define HEVC_DCAC_CPU_DATA (0x3e15)
#define P_HEVC_DCAC_CPU_DATA (volatile unsigned int *)((0x3e15 << 2) + 0xff620000)
// bit 31:19 -- reserved
// bit 18:16 -- block_num_reg -- Read-Only
// bit 15:0 -- dcac_mb_count
#define HEVC_DCAC_MB_COUNT (0x3e16)
#define P_HEVC_DCAC_MB_COUNT (volatile unsigned int *)((0x3e16 << 2) + 0xff620000)
// bit 31:18 -- reserved
// For H264 :
// bit 17:2 -- h264_quant
// bit 11:6 -- h264_quant_c
// bit 5:0 -- h264_quant_c
// For VC1 :
// bit 17 -- qindex_GT_8
// bit 16 -- HalfQPStep
// bit 15:12 -- eQuantMode
// bit 11:6 -- AltPQuant
// bit 5:0 -- PQuant
//
#define HEVC_IQ_QUANT (0x3e17)
#define P_HEVC_IQ_QUANT (volatile unsigned int *)((0x3e17 << 2) + 0xff620000)
// bit 31:24 -- bitplane_width
// bit 23:16 -- bitplane_height
// bit 15:14 -- bitplane_start_x
// bit 13:12 -- bitplane_start_y
// bit 11:4 -- reserved
// bit 3:1 -- bitplane_type
// bit 0 -- bitplane_busy
#define HEVC_VC1_BITPLANE_CTL (0x3e18)
#define P_HEVC_VC1_BITPLANE_CTL (volatile unsigned int *)((0x3e18 << 2) + 0xff620000)
// bit 24:16 -- wq_param1
// bit 8: 0 -- wq_param0
#define HEVC_AVSP_IQ_WQ_PARAM_01 (0x3e19)
#define P_HEVC_AVSP_IQ_WQ_PARAM_01 (volatile unsigned int *)((0x3e19 << 2) + 0xff620000)
// bit 24:16 -- wq_param3
// bit 8: 0 -- wq_param2
#define HEVC_AVSP_IQ_WQ_PARAM_23 (0x3e1a)
#define P_HEVC_AVSP_IQ_WQ_PARAM_23 (volatile unsigned int *)((0x3e1a << 2) + 0xff620000)
// bit 24:16 -- wq_param5
// bit 8: 0 -- wq_param4
#define HEVC_AVSP_IQ_WQ_PARAM_45 (0x3e1b)
#define P_HEVC_AVSP_IQ_WQ_PARAM_45 (volatile unsigned int *)((0x3e1b << 2) + 0xff620000)
// bit 31 -- weight_quant_en
// bit 17:16 -- current_scene_model
// bit 12: 8 -- chroma_qp_delta_cr
// bit 4: 0 -- chroma_qp_delta_cb
#define HEVC_AVSP_IQ_CTL (0x3e1c)
#define P_HEVC_AVSP_IQ_CTL (volatile unsigned int *)((0x3e1c << 2) + 0xff620000)
//======================================
// VCOP Control Register Bits
//
//======================================
//`define IQIDCT_RESET 16'h0001 // Bit 0
//======================================
// QP Control Register Bits
//
//======================================
// Duplicate Address: When actually used
// please move to a different address
// `define FLD_DCT_TYPE 16'h0100 // Bit 8 0 = Frame DCT; 1 = field DCT
//
// Closing file: iqidct_regs.h
//
//
// Reading file: vcpu_regs.h
//
//========================================================================
// VCPU module level register offset
//========================================================================
// -----------------------------------------------
// CBUS_BASE: DOS_VDEC_VCPU_CBUS_BASE = 0x03
// -----------------------------------------------
#define HCODEC_MSP (0x1300)
#define P_HCODEC_MSP (volatile unsigned int *)((0x1300 << 2) + 0xff620000)
#define HCODEC_MPSR (0x1301)
#define P_HCODEC_MPSR (volatile unsigned int *)((0x1301 << 2) + 0xff620000)
#define HCODEC_MINT_VEC_BASE (0x1302)
#define P_HCODEC_MINT_VEC_BASE (volatile unsigned int *)((0x1302 << 2) + 0xff620000)
#define HCODEC_MCPU_INTR_GRP (0x1303)
#define P_HCODEC_MCPU_INTR_GRP (volatile unsigned int *)((0x1303 << 2) + 0xff620000)
#define HCODEC_MCPU_INTR_MSK (0x1304)
#define P_HCODEC_MCPU_INTR_MSK (volatile unsigned int *)((0x1304 << 2) + 0xff620000)
#define HCODEC_MCPU_INTR_REQ (0x1305)
#define P_HCODEC_MCPU_INTR_REQ (volatile unsigned int *)((0x1305 << 2) + 0xff620000)
#define HCODEC_MPC_P (0x1306)
#define P_HCODEC_MPC_P (volatile unsigned int *)((0x1306 << 2) + 0xff620000)
#define HCODEC_MPC_D (0x1307)
#define P_HCODEC_MPC_D (volatile unsigned int *)((0x1307 << 2) + 0xff620000)
#define HCODEC_MPC_E (0x1308)
#define P_HCODEC_MPC_E (volatile unsigned int *)((0x1308 << 2) + 0xff620000)
#define HCODEC_MPC_W (0x1309)
#define P_HCODEC_MPC_W (volatile unsigned int *)((0x1309 << 2) + 0xff620000)
#define HCODEC_MINDEX0_REG (0x130a)
#define P_HCODEC_MINDEX0_REG (volatile unsigned int *)((0x130a << 2) + 0xff620000)
#define HCODEC_MINDEX1_REG (0x130b)
#define P_HCODEC_MINDEX1_REG (volatile unsigned int *)((0x130b << 2) + 0xff620000)
#define HCODEC_MINDEX2_REG (0x130c)
#define P_HCODEC_MINDEX2_REG (volatile unsigned int *)((0x130c << 2) + 0xff620000)
#define HCODEC_MINDEX3_REG (0x130d)
#define P_HCODEC_MINDEX3_REG (volatile unsigned int *)((0x130d << 2) + 0xff620000)
#define HCODEC_MINDEX4_REG (0x130e)
#define P_HCODEC_MINDEX4_REG (volatile unsigned int *)((0x130e << 2) + 0xff620000)
#define HCODEC_MINDEX5_REG (0x130f)
#define P_HCODEC_MINDEX5_REG (volatile unsigned int *)((0x130f << 2) + 0xff620000)
#define HCODEC_MINDEX6_REG (0x1310)
#define P_HCODEC_MINDEX6_REG (volatile unsigned int *)((0x1310 << 2) + 0xff620000)
#define HCODEC_MINDEX7_REG (0x1311)
#define P_HCODEC_MINDEX7_REG (volatile unsigned int *)((0x1311 << 2) + 0xff620000)
#define HCODEC_MMIN_REG (0x1312)
#define P_HCODEC_MMIN_REG (volatile unsigned int *)((0x1312 << 2) + 0xff620000)
#define HCODEC_MMAX_REG (0x1313)
#define P_HCODEC_MMAX_REG (volatile unsigned int *)((0x1313 << 2) + 0xff620000)
#define HCODEC_MBREAK0_REG (0x1314)
#define P_HCODEC_MBREAK0_REG (volatile unsigned int *)((0x1314 << 2) + 0xff620000)
#define HCODEC_MBREAK1_REG (0x1315)
#define P_HCODEC_MBREAK1_REG (volatile unsigned int *)((0x1315 << 2) + 0xff620000)
#define HCODEC_MBREAK2_REG (0x1316)
#define P_HCODEC_MBREAK2_REG (volatile unsigned int *)((0x1316 << 2) + 0xff620000)
#define HCODEC_MBREAK3_REG (0x1317)
#define P_HCODEC_MBREAK3_REG (volatile unsigned int *)((0x1317 << 2) + 0xff620000)
#define HCODEC_MBREAK_TYPE (0x1318)
#define P_HCODEC_MBREAK_TYPE (volatile unsigned int *)((0x1318 << 2) + 0xff620000)
#define HCODEC_MBREAK_CTRL (0x1319)
#define P_HCODEC_MBREAK_CTRL (volatile unsigned int *)((0x1319 << 2) + 0xff620000)
#define HCODEC_MBREAK_STAUTS (0x131a)
#define P_HCODEC_MBREAK_STAUTS (volatile unsigned int *)((0x131a << 2) + 0xff620000)
#define HCODEC_MDB_ADDR_REG (0x131b)
#define P_HCODEC_MDB_ADDR_REG (volatile unsigned int *)((0x131b << 2) + 0xff620000)
#define HCODEC_MDB_DATA_REG (0x131c)
#define P_HCODEC_MDB_DATA_REG (volatile unsigned int *)((0x131c << 2) + 0xff620000)
#define HCODEC_MDB_CTRL (0x131d)
#define P_HCODEC_MDB_CTRL (volatile unsigned int *)((0x131d << 2) + 0xff620000)
#define HCODEC_MSFTINT0 (0x131e)
#define P_HCODEC_MSFTINT0 (volatile unsigned int *)((0x131e << 2) + 0xff620000)
#define HCODEC_MSFTINT1 (0x131f)
#define P_HCODEC_MSFTINT1 (volatile unsigned int *)((0x131f << 2) + 0xff620000)
#define HCODEC_CSP (0x1320)
#define P_HCODEC_CSP (volatile unsigned int *)((0x1320 << 2) + 0xff620000)
#define HCODEC_CPSR (0x1321)
#define P_HCODEC_CPSR (volatile unsigned int *)((0x1321 << 2) + 0xff620000)
#define HCODEC_CINT_VEC_BASE (0x1322)
#define P_HCODEC_CINT_VEC_BASE (volatile unsigned int *)((0x1322 << 2) + 0xff620000)
#define HCODEC_CCPU_INTR_GRP (0x1323)
#define P_HCODEC_CCPU_INTR_GRP (volatile unsigned int *)((0x1323 << 2) + 0xff620000)
#define HCODEC_CCPU_INTR_MSK (0x1324)
#define P_HCODEC_CCPU_INTR_MSK (volatile unsigned int *)((0x1324 << 2) + 0xff620000)
#define HCODEC_CCPU_INTR_REQ (0x1325)
#define P_HCODEC_CCPU_INTR_REQ (volatile unsigned int *)((0x1325 << 2) + 0xff620000)
#define HCODEC_CPC_P (0x1326)
#define P_HCODEC_CPC_P (volatile unsigned int *)((0x1326 << 2) + 0xff620000)
#define HCODEC_CPC_D (0x1327)
#define P_HCODEC_CPC_D (volatile unsigned int *)((0x1327 << 2) + 0xff620000)
#define HCODEC_CPC_E (0x1328)
#define P_HCODEC_CPC_E (volatile unsigned int *)((0x1328 << 2) + 0xff620000)
#define HCODEC_CPC_W (0x1329)
#define P_HCODEC_CPC_W (volatile unsigned int *)((0x1329 << 2) + 0xff620000)
#define HCODEC_CINDEX0_REG (0x132a)
#define P_HCODEC_CINDEX0_REG (volatile unsigned int *)((0x132a << 2) + 0xff620000)
#define HCODEC_CINDEX1_REG (0x132b)
#define P_HCODEC_CINDEX1_REG (volatile unsigned int *)((0x132b << 2) + 0xff620000)
#define HCODEC_CINDEX2_REG (0x132c)
#define P_HCODEC_CINDEX2_REG (volatile unsigned int *)((0x132c << 2) + 0xff620000)
#define HCODEC_CINDEX3_REG (0x132d)
#define P_HCODEC_CINDEX3_REG (volatile unsigned int *)((0x132d << 2) + 0xff620000)
#define HCODEC_CINDEX4_REG (0x132e)
#define P_HCODEC_CINDEX4_REG (volatile unsigned int *)((0x132e << 2) + 0xff620000)
#define HCODEC_CINDEX5_REG (0x132f)
#define P_HCODEC_CINDEX5_REG (volatile unsigned int *)((0x132f << 2) + 0xff620000)
#define HCODEC_CINDEX6_REG (0x1330)
#define P_HCODEC_CINDEX6_REG (volatile unsigned int *)((0x1330 << 2) + 0xff620000)
#define HCODEC_CINDEX7_REG (0x1331)
#define P_HCODEC_CINDEX7_REG (volatile unsigned int *)((0x1331 << 2) + 0xff620000)
#define HCODEC_CMIN_REG (0x1332)
#define P_HCODEC_CMIN_REG (volatile unsigned int *)((0x1332 << 2) + 0xff620000)
#define HCODEC_CMAX_REG (0x1333)
#define P_HCODEC_CMAX_REG (volatile unsigned int *)((0x1333 << 2) + 0xff620000)
#define HCODEC_CBREAK0_REG (0x1334)
#define P_HCODEC_CBREAK0_REG (volatile unsigned int *)((0x1334 << 2) + 0xff620000)
#define HCODEC_CBREAK1_REG (0x1335)
#define P_HCODEC_CBREAK1_REG (volatile unsigned int *)((0x1335 << 2) + 0xff620000)
#define HCODEC_CBREAK2_REG (0x1336)
#define P_HCODEC_CBREAK2_REG (volatile unsigned int *)((0x1336 << 2) + 0xff620000)
#define HCODEC_CBREAK3_REG (0x1337)
#define P_HCODEC_CBREAK3_REG (volatile unsigned int *)((0x1337 << 2) + 0xff620000)
#define HCODEC_CBREAK_TYPE (0x1338)
#define P_HCODEC_CBREAK_TYPE (volatile unsigned int *)((0x1338 << 2) + 0xff620000)
#define HCODEC_CBREAK_CTRL (0x1339)
#define P_HCODEC_CBREAK_CTRL (volatile unsigned int *)((0x1339 << 2) + 0xff620000)
#define HCODEC_CBREAK_STAUTS (0x133a)
#define P_HCODEC_CBREAK_STAUTS (volatile unsigned int *)((0x133a << 2) + 0xff620000)
#define HCODEC_CDB_ADDR_REG (0x133b)
#define P_HCODEC_CDB_ADDR_REG (volatile unsigned int *)((0x133b << 2) + 0xff620000)
#define HCODEC_CDB_DATA_REG (0x133c)
#define P_HCODEC_CDB_DATA_REG (volatile unsigned int *)((0x133c << 2) + 0xff620000)
#define HCODEC_CDB_CTRL (0x133d)
#define P_HCODEC_CDB_CTRL (volatile unsigned int *)((0x133d << 2) + 0xff620000)
#define HCODEC_CSFTINT0 (0x133e)
#define P_HCODEC_CSFTINT0 (volatile unsigned int *)((0x133e << 2) + 0xff620000)
#define HCODEC_CSFTINT1 (0x133f)
#define P_HCODEC_CSFTINT1 (volatile unsigned int *)((0x133f << 2) + 0xff620000)
#define HCODEC_IMEM_DMA_CTRL (0x1340)
#define P_HCODEC_IMEM_DMA_CTRL (volatile unsigned int *)((0x1340 << 2) + 0xff620000)
#define HCODEC_IMEM_DMA_ADR (0x1341)
#define P_HCODEC_IMEM_DMA_ADR (volatile unsigned int *)((0x1341 << 2) + 0xff620000)
#define HCODEC_IMEM_DMA_COUNT (0x1342)
#define P_HCODEC_IMEM_DMA_COUNT (volatile unsigned int *)((0x1342 << 2) + 0xff620000)
// bit[29:24] A_brst_num_imem
// bit[21:16] A_id_imem
// bit[11:0] wrrsp_count_imem (reserved)
#define HCODEC_WRRSP_IMEM (0x1343)
#define P_HCODEC_WRRSP_IMEM (volatile unsigned int *)((0x1343 << 2) + 0xff620000)
#define HCODEC_LMEM_DMA_CTRL (0x1350)
#define P_HCODEC_LMEM_DMA_CTRL (volatile unsigned int *)((0x1350 << 2) + 0xff620000)
#define HCODEC_LMEM_DMA_ADR (0x1351)
#define P_HCODEC_LMEM_DMA_ADR (volatile unsigned int *)((0x1351 << 2) + 0xff620000)
#define HCODEC_LMEM_DMA_COUNT (0x1352)
#define P_HCODEC_LMEM_DMA_COUNT (volatile unsigned int *)((0x1352 << 2) + 0xff620000)
// bit[29:24] A_brst_num_lmem
// bit[21:16] A_id_lmem
// bit[11:0] wrrsp_count_lmem
#define HCODEC_WRRSP_LMEM (0x1353)
#define P_HCODEC_WRRSP_LMEM (volatile unsigned int *)((0x1353 << 2) + 0xff620000)
#define HCODEC_MAC_CTRL1 (0x1360)
#define P_HCODEC_MAC_CTRL1 (volatile unsigned int *)((0x1360 << 2) + 0xff620000)
#define HCODEC_ACC0REG1 (0x1361)
#define P_HCODEC_ACC0REG1 (volatile unsigned int *)((0x1361 << 2) + 0xff620000)
#define HCODEC_ACC1REG1 (0x1362)
#define P_HCODEC_ACC1REG1 (volatile unsigned int *)((0x1362 << 2) + 0xff620000)
#define HCODEC_MAC_CTRL2 (0x1370)
#define P_HCODEC_MAC_CTRL2 (volatile unsigned int *)((0x1370 << 2) + 0xff620000)
#define HCODEC_ACC0REG2 (0x1371)
#define P_HCODEC_ACC0REG2 (volatile unsigned int *)((0x1371 << 2) + 0xff620000)
#define HCODEC_ACC1REG2 (0x1372)
#define P_HCODEC_ACC1REG2 (volatile unsigned int *)((0x1372 << 2) + 0xff620000)
#define HCODEC_CPU_TRACE (0x1380)
#define P_HCODEC_CPU_TRACE (volatile unsigned int *)((0x1380 << 2) + 0xff620000)
//
// Closing file: vcpu_regs.h
//
//
// Reading file: vcpu_regs.h
//
//========================================================================
// VCPU module level register offset
//========================================================================
// -----------------------------------------------
// CBUS_BASE: DOS_VDEC_VCPU_CBUS_BASE = 0x03
// -----------------------------------------------
#define VDEC2_MSP (0x2300)
#define P_VDEC2_MSP (volatile unsigned int *)((0x2300 << 2) + 0xff620000)
#define VDEC2_MPSR (0x2301)
#define P_VDEC2_MPSR (volatile unsigned int *)((0x2301 << 2) + 0xff620000)
#define VDEC2_MINT_VEC_BASE (0x2302)
#define P_VDEC2_MINT_VEC_BASE (volatile unsigned int *)((0x2302 << 2) + 0xff620000)
#define VDEC2_MCPU_INTR_GRP (0x2303)
#define P_VDEC2_MCPU_INTR_GRP (volatile unsigned int *)((0x2303 << 2) + 0xff620000)
#define VDEC2_MCPU_INTR_MSK (0x2304)
#define P_VDEC2_MCPU_INTR_MSK (volatile unsigned int *)((0x2304 << 2) + 0xff620000)
#define VDEC2_MCPU_INTR_REQ (0x2305)
#define P_VDEC2_MCPU_INTR_REQ (volatile unsigned int *)((0x2305 << 2) + 0xff620000)
#define VDEC2_MPC_P (0x2306)
#define P_VDEC2_MPC_P (volatile unsigned int *)((0x2306 << 2) + 0xff620000)
#define VDEC2_MPC_D (0x2307)
#define P_VDEC2_MPC_D (volatile unsigned int *)((0x2307 << 2) + 0xff620000)
#define VDEC2_MPC_E (0x2308)
#define P_VDEC2_MPC_E (volatile unsigned int *)((0x2308 << 2) + 0xff620000)
#define VDEC2_MPC_W (0x2309)
#define P_VDEC2_MPC_W (volatile unsigned int *)((0x2309 << 2) + 0xff620000)
#define VDEC2_MINDEX0_REG (0x230a)
#define P_VDEC2_MINDEX0_REG (volatile unsigned int *)((0x230a << 2) + 0xff620000)
#define VDEC2_MINDEX1_REG (0x230b)
#define P_VDEC2_MINDEX1_REG (volatile unsigned int *)((0x230b << 2) + 0xff620000)
#define VDEC2_MINDEX2_REG (0x230c)
#define P_VDEC2_MINDEX2_REG (volatile unsigned int *)((0x230c << 2) + 0xff620000)
#define VDEC2_MINDEX3_REG (0x230d)
#define P_VDEC2_MINDEX3_REG (volatile unsigned int *)((0x230d << 2) + 0xff620000)
#define VDEC2_MINDEX4_REG (0x230e)
#define P_VDEC2_MINDEX4_REG (volatile unsigned int *)((0x230e << 2) + 0xff620000)
#define VDEC2_MINDEX5_REG (0x230f)
#define P_VDEC2_MINDEX5_REG (volatile unsigned int *)((0x230f << 2) + 0xff620000)
#define VDEC2_MINDEX6_REG (0x2310)
#define P_VDEC2_MINDEX6_REG (volatile unsigned int *)((0x2310 << 2) + 0xff620000)
#define VDEC2_MINDEX7_REG (0x2311)
#define P_VDEC2_MINDEX7_REG (volatile unsigned int *)((0x2311 << 2) + 0xff620000)
#define VDEC2_MMIN_REG (0x2312)
#define P_VDEC2_MMIN_REG (volatile unsigned int *)((0x2312 << 2) + 0xff620000)
#define VDEC2_MMAX_REG (0x2313)
#define P_VDEC2_MMAX_REG (volatile unsigned int *)((0x2313 << 2) + 0xff620000)
#define VDEC2_MBREAK0_REG (0x2314)
#define P_VDEC2_MBREAK0_REG (volatile unsigned int *)((0x2314 << 2) + 0xff620000)
#define VDEC2_MBREAK1_REG (0x2315)
#define P_VDEC2_MBREAK1_REG (volatile unsigned int *)((0x2315 << 2) + 0xff620000)
#define VDEC2_MBREAK2_REG (0x2316)
#define P_VDEC2_MBREAK2_REG (volatile unsigned int *)((0x2316 << 2) + 0xff620000)
#define VDEC2_MBREAK3_REG (0x2317)
#define P_VDEC2_MBREAK3_REG (volatile unsigned int *)((0x2317 << 2) + 0xff620000)
#define VDEC2_MBREAK_TYPE (0x2318)
#define P_VDEC2_MBREAK_TYPE (volatile unsigned int *)((0x2318 << 2) + 0xff620000)
#define VDEC2_MBREAK_CTRL (0x2319)
#define P_VDEC2_MBREAK_CTRL (volatile unsigned int *)((0x2319 << 2) + 0xff620000)
#define VDEC2_MBREAK_STAUTS (0x231a)
#define P_VDEC2_MBREAK_STAUTS (volatile unsigned int *)((0x231a << 2) + 0xff620000)
#define VDEC2_MDB_ADDR_REG (0x231b)
#define P_VDEC2_MDB_ADDR_REG (volatile unsigned int *)((0x231b << 2) + 0xff620000)
#define VDEC2_MDB_DATA_REG (0x231c)
#define P_VDEC2_MDB_DATA_REG (volatile unsigned int *)((0x231c << 2) + 0xff620000)
#define VDEC2_MDB_CTRL (0x231d)
#define P_VDEC2_MDB_CTRL (volatile unsigned int *)((0x231d << 2) + 0xff620000)
#define VDEC2_MSFTINT0 (0x231e)
#define P_VDEC2_MSFTINT0 (volatile unsigned int *)((0x231e << 2) + 0xff620000)
#define VDEC2_MSFTINT1 (0x231f)
#define P_VDEC2_MSFTINT1 (volatile unsigned int *)((0x231f << 2) + 0xff620000)
#define VDEC2_CSP (0x2320)
#define P_VDEC2_CSP (volatile unsigned int *)((0x2320 << 2) + 0xff620000)
#define VDEC2_CPSR (0x2321)
#define P_VDEC2_CPSR (volatile unsigned int *)((0x2321 << 2) + 0xff620000)
#define VDEC2_CINT_VEC_BASE (0x2322)
#define P_VDEC2_CINT_VEC_BASE (volatile unsigned int *)((0x2322 << 2) + 0xff620000)
#define VDEC2_CCPU_INTR_GRP (0x2323)
#define P_VDEC2_CCPU_INTR_GRP (volatile unsigned int *)((0x2323 << 2) + 0xff620000)
#define VDEC2_CCPU_INTR_MSK (0x2324)
#define P_VDEC2_CCPU_INTR_MSK (volatile unsigned int *)((0x2324 << 2) + 0xff620000)
#define VDEC2_CCPU_INTR_REQ (0x2325)
#define P_VDEC2_CCPU_INTR_REQ (volatile unsigned int *)((0x2325 << 2) + 0xff620000)
#define VDEC2_CPC_P (0x2326)
#define P_VDEC2_CPC_P (volatile unsigned int *)((0x2326 << 2) + 0xff620000)
#define VDEC2_CPC_D (0x2327)
#define P_VDEC2_CPC_D (volatile unsigned int *)((0x2327 << 2) + 0xff620000)
#define VDEC2_CPC_E (0x2328)
#define P_VDEC2_CPC_E (volatile unsigned int *)((0x2328 << 2) + 0xff620000)
#define VDEC2_CPC_W (0x2329)
#define P_VDEC2_CPC_W (volatile unsigned int *)((0x2329 << 2) + 0xff620000)
#define VDEC2_CINDEX0_REG (0x232a)
#define P_VDEC2_CINDEX0_REG (volatile unsigned int *)((0x232a << 2) + 0xff620000)
#define VDEC2_CINDEX1_REG (0x232b)
#define P_VDEC2_CINDEX1_REG (volatile unsigned int *)((0x232b << 2) + 0xff620000)
#define VDEC2_CINDEX2_REG (0x232c)
#define P_VDEC2_CINDEX2_REG (volatile unsigned int *)((0x232c << 2) + 0xff620000)
#define VDEC2_CINDEX3_REG (0x232d)
#define P_VDEC2_CINDEX3_REG (volatile unsigned int *)((0x232d << 2) + 0xff620000)
#define VDEC2_CINDEX4_REG (0x232e)
#define P_VDEC2_CINDEX4_REG (volatile unsigned int *)((0x232e << 2) + 0xff620000)
#define VDEC2_CINDEX5_REG (0x232f)
#define P_VDEC2_CINDEX5_REG (volatile unsigned int *)((0x232f << 2) + 0xff620000)
#define VDEC2_CINDEX6_REG (0x2330)
#define P_VDEC2_CINDEX6_REG (volatile unsigned int *)((0x2330 << 2) + 0xff620000)
#define VDEC2_CINDEX7_REG (0x2331)
#define P_VDEC2_CINDEX7_REG (volatile unsigned int *)((0x2331 << 2) + 0xff620000)
#define VDEC2_CMIN_REG (0x2332)
#define P_VDEC2_CMIN_REG (volatile unsigned int *)((0x2332 << 2) + 0xff620000)
#define VDEC2_CMAX_REG (0x2333)
#define P_VDEC2_CMAX_REG (volatile unsigned int *)((0x2333 << 2) + 0xff620000)
#define VDEC2_CBREAK0_REG (0x2334)
#define P_VDEC2_CBREAK0_REG (volatile unsigned int *)((0x2334 << 2) + 0xff620000)
#define VDEC2_CBREAK1_REG (0x2335)
#define P_VDEC2_CBREAK1_REG (volatile unsigned int *)((0x2335 << 2) + 0xff620000)
#define VDEC2_CBREAK2_REG (0x2336)
#define P_VDEC2_CBREAK2_REG (volatile unsigned int *)((0x2336 << 2) + 0xff620000)
#define VDEC2_CBREAK3_REG (0x2337)
#define P_VDEC2_CBREAK3_REG (volatile unsigned int *)((0x2337 << 2) + 0xff620000)
#define VDEC2_CBREAK_TYPE (0x2338)
#define P_VDEC2_CBREAK_TYPE (volatile unsigned int *)((0x2338 << 2) + 0xff620000)
#define VDEC2_CBREAK_CTRL (0x2339)
#define P_VDEC2_CBREAK_CTRL (volatile unsigned int *)((0x2339 << 2) + 0xff620000)
#define VDEC2_CBREAK_STAUTS (0x233a)
#define P_VDEC2_CBREAK_STAUTS (volatile unsigned int *)((0x233a << 2) + 0xff620000)
#define VDEC2_CDB_ADDR_REG (0x233b)
#define P_VDEC2_CDB_ADDR_REG (volatile unsigned int *)((0x233b << 2) + 0xff620000)
#define VDEC2_CDB_DATA_REG (0x233c)
#define P_VDEC2_CDB_DATA_REG (volatile unsigned int *)((0x233c << 2) + 0xff620000)
#define VDEC2_CDB_CTRL (0x233d)
#define P_VDEC2_CDB_CTRL (volatile unsigned int *)((0x233d << 2) + 0xff620000)
#define VDEC2_CSFTINT0 (0x233e)
#define P_VDEC2_CSFTINT0 (volatile unsigned int *)((0x233e << 2) + 0xff620000)
#define VDEC2_CSFTINT1 (0x233f)
#define P_VDEC2_CSFTINT1 (volatile unsigned int *)((0x233f << 2) + 0xff620000)
#define VDEC2_IMEM_DMA_CTRL (0x2340)
#define P_VDEC2_IMEM_DMA_CTRL (volatile unsigned int *)((0x2340 << 2) + 0xff620000)
#define VDEC2_IMEM_DMA_ADR (0x2341)
#define P_VDEC2_IMEM_DMA_ADR (volatile unsigned int *)((0x2341 << 2) + 0xff620000)
#define VDEC2_IMEM_DMA_COUNT (0x2342)
#define P_VDEC2_IMEM_DMA_COUNT (volatile unsigned int *)((0x2342 << 2) + 0xff620000)
// bit[29:24] A_brst_num_imem
// bit[21:16] A_id_imem
// bit[11:0] wrrsp_count_imem (reserved)
#define VDEC2_WRRSP_IMEM (0x2343)
#define P_VDEC2_WRRSP_IMEM (volatile unsigned int *)((0x2343 << 2) + 0xff620000)
#define VDEC2_LMEM_DMA_CTRL (0x2350)
#define P_VDEC2_LMEM_DMA_CTRL (volatile unsigned int *)((0x2350 << 2) + 0xff620000)
#define VDEC2_LMEM_DMA_ADR (0x2351)
#define P_VDEC2_LMEM_DMA_ADR (volatile unsigned int *)((0x2351 << 2) + 0xff620000)
#define VDEC2_LMEM_DMA_COUNT (0x2352)
#define P_VDEC2_LMEM_DMA_COUNT (volatile unsigned int *)((0x2352 << 2) + 0xff620000)
// bit[29:24] A_brst_num_lmem
// bit[21:16] A_id_lmem
// bit[11:0] wrrsp_count_lmem
#define VDEC2_WRRSP_LMEM (0x2353)
#define P_VDEC2_WRRSP_LMEM (volatile unsigned int *)((0x2353 << 2) + 0xff620000)
#define VDEC2_MAC_CTRL1 (0x2360)
#define P_VDEC2_MAC_CTRL1 (volatile unsigned int *)((0x2360 << 2) + 0xff620000)
#define VDEC2_ACC0REG1 (0x2361)
#define P_VDEC2_ACC0REG1 (volatile unsigned int *)((0x2361 << 2) + 0xff620000)
#define VDEC2_ACC1REG1 (0x2362)
#define P_VDEC2_ACC1REG1 (volatile unsigned int *)((0x2362 << 2) + 0xff620000)
#define VDEC2_MAC_CTRL2 (0x2370)
#define P_VDEC2_MAC_CTRL2 (volatile unsigned int *)((0x2370 << 2) + 0xff620000)
#define VDEC2_ACC0REG2 (0x2371)
#define P_VDEC2_ACC0REG2 (volatile unsigned int *)((0x2371 << 2) + 0xff620000)
#define VDEC2_ACC1REG2 (0x2372)
#define P_VDEC2_ACC1REG2 (volatile unsigned int *)((0x2372 << 2) + 0xff620000)
#define VDEC2_CPU_TRACE (0x2380)
#define P_VDEC2_CPU_TRACE (volatile unsigned int *)((0x2380 << 2) + 0xff620000)
//
// Closing file: vcpu_regs.h
//
//
// Reading file: vcpu_regs.h
//
//========================================================================
// VCPU module level register offset
//========================================================================
// -----------------------------------------------
// CBUS_BASE: DOS_VDEC_VCPU_CBUS_BASE = 0x03
// -----------------------------------------------
#define HEVC_MSP (0x3300)
#define P_HEVC_MSP (volatile unsigned int *)((0x3300 << 2) + 0xff620000)
#define HEVC_MPSR (0x3301)
#define P_HEVC_MPSR (volatile unsigned int *)((0x3301 << 2) + 0xff620000)
#define HEVC_MINT_VEC_BASE (0x3302)
#define P_HEVC_MINT_VEC_BASE (volatile unsigned int *)((0x3302 << 2) + 0xff620000)
#define HEVC_MCPU_INTR_GRP (0x3303)
#define P_HEVC_MCPU_INTR_GRP (volatile unsigned int *)((0x3303 << 2) + 0xff620000)
#define HEVC_MCPU_INTR_MSK (0x3304)
#define P_HEVC_MCPU_INTR_MSK (volatile unsigned int *)((0x3304 << 2) + 0xff620000)
#define HEVC_MCPU_INTR_REQ (0x3305)
#define P_HEVC_MCPU_INTR_REQ (volatile unsigned int *)((0x3305 << 2) + 0xff620000)
#define HEVC_MPC_P (0x3306)
#define P_HEVC_MPC_P (volatile unsigned int *)((0x3306 << 2) + 0xff620000)
#define HEVC_MPC_D (0x3307)
#define P_HEVC_MPC_D (volatile unsigned int *)((0x3307 << 2) + 0xff620000)
#define HEVC_MPC_E (0x3308)
#define P_HEVC_MPC_E (volatile unsigned int *)((0x3308 << 2) + 0xff620000)
#define HEVC_MPC_W (0x3309)
#define P_HEVC_MPC_W (volatile unsigned int *)((0x3309 << 2) + 0xff620000)
#define HEVC_MINDEX0_REG (0x330a)
#define P_HEVC_MINDEX0_REG (volatile unsigned int *)((0x330a << 2) + 0xff620000)
#define HEVC_MINDEX1_REG (0x330b)
#define P_HEVC_MINDEX1_REG (volatile unsigned int *)((0x330b << 2) + 0xff620000)
#define HEVC_MINDEX2_REG (0x330c)
#define P_HEVC_MINDEX2_REG (volatile unsigned int *)((0x330c << 2) + 0xff620000)
#define HEVC_MINDEX3_REG (0x330d)
#define P_HEVC_MINDEX3_REG (volatile unsigned int *)((0x330d << 2) + 0xff620000)
#define HEVC_MINDEX4_REG (0x330e)
#define P_HEVC_MINDEX4_REG (volatile unsigned int *)((0x330e << 2) + 0xff620000)
#define HEVC_MINDEX5_REG (0x330f)
#define P_HEVC_MINDEX5_REG (volatile unsigned int *)((0x330f << 2) + 0xff620000)
#define HEVC_MINDEX6_REG (0x3310)
#define P_HEVC_MINDEX6_REG (volatile unsigned int *)((0x3310 << 2) + 0xff620000)
#define HEVC_MINDEX7_REG (0x3311)
#define P_HEVC_MINDEX7_REG (volatile unsigned int *)((0x3311 << 2) + 0xff620000)
#define HEVC_MMIN_REG (0x3312)
#define P_HEVC_MMIN_REG (volatile unsigned int *)((0x3312 << 2) + 0xff620000)
#define HEVC_MMAX_REG (0x3313)
#define P_HEVC_MMAX_REG (volatile unsigned int *)((0x3313 << 2) + 0xff620000)
#define HEVC_MBREAK0_REG (0x3314)
#define P_HEVC_MBREAK0_REG (volatile unsigned int *)((0x3314 << 2) + 0xff620000)
#define HEVC_MBREAK1_REG (0x3315)
#define P_HEVC_MBREAK1_REG (volatile unsigned int *)((0x3315 << 2) + 0xff620000)
#define HEVC_MBREAK2_REG (0x3316)
#define P_HEVC_MBREAK2_REG (volatile unsigned int *)((0x3316 << 2) + 0xff620000)
#define HEVC_MBREAK3_REG (0x3317)
#define P_HEVC_MBREAK3_REG (volatile unsigned int *)((0x3317 << 2) + 0xff620000)
#define HEVC_MBREAK_TYPE (0x3318)
#define P_HEVC_MBREAK_TYPE (volatile unsigned int *)((0x3318 << 2) + 0xff620000)
#define HEVC_MBREAK_CTRL (0x3319)
#define P_HEVC_MBREAK_CTRL (volatile unsigned int *)((0x3319 << 2) + 0xff620000)
#define HEVC_MBREAK_STAUTS (0x331a)
#define P_HEVC_MBREAK_STAUTS (volatile unsigned int *)((0x331a << 2) + 0xff620000)
#define HEVC_MDB_ADDR_REG (0x331b)
#define P_HEVC_MDB_ADDR_REG (volatile unsigned int *)((0x331b << 2) + 0xff620000)
#define HEVC_MDB_DATA_REG (0x331c)
#define P_HEVC_MDB_DATA_REG (volatile unsigned int *)((0x331c << 2) + 0xff620000)
#define HEVC_MDB_CTRL (0x331d)
#define P_HEVC_MDB_CTRL (volatile unsigned int *)((0x331d << 2) + 0xff620000)
#define HEVC_MSFTINT0 (0x331e)
#define P_HEVC_MSFTINT0 (volatile unsigned int *)((0x331e << 2) + 0xff620000)
#define HEVC_MSFTINT1 (0x331f)
#define P_HEVC_MSFTINT1 (volatile unsigned int *)((0x331f << 2) + 0xff620000)
#define HEVC_CSP (0x3320)
#define P_HEVC_CSP (volatile unsigned int *)((0x3320 << 2) + 0xff620000)
#define HEVC_CPSR (0x3321)
#define P_HEVC_CPSR (volatile unsigned int *)((0x3321 << 2) + 0xff620000)
#define HEVC_CINT_VEC_BASE (0x3322)
#define P_HEVC_CINT_VEC_BASE (volatile unsigned int *)((0x3322 << 2) + 0xff620000)
#define HEVC_CCPU_INTR_GRP (0x3323)
#define P_HEVC_CCPU_INTR_GRP (volatile unsigned int *)((0x3323 << 2) + 0xff620000)
#define HEVC_CCPU_INTR_MSK (0x3324)
#define P_HEVC_CCPU_INTR_MSK (volatile unsigned int *)((0x3324 << 2) + 0xff620000)
#define HEVC_CCPU_INTR_REQ (0x3325)
#define P_HEVC_CCPU_INTR_REQ (volatile unsigned int *)((0x3325 << 2) + 0xff620000)
#define HEVC_CPC_P (0x3326)
#define P_HEVC_CPC_P (volatile unsigned int *)((0x3326 << 2) + 0xff620000)
#define HEVC_CPC_D (0x3327)
#define P_HEVC_CPC_D (volatile unsigned int *)((0x3327 << 2) + 0xff620000)
#define HEVC_CPC_E (0x3328)
#define P_HEVC_CPC_E (volatile unsigned int *)((0x3328 << 2) + 0xff620000)
#define HEVC_CPC_W (0x3329)
#define P_HEVC_CPC_W (volatile unsigned int *)((0x3329 << 2) + 0xff620000)
#define HEVC_CINDEX0_REG (0x332a)
#define P_HEVC_CINDEX0_REG (volatile unsigned int *)((0x332a << 2) + 0xff620000)
#define HEVC_CINDEX1_REG (0x332b)
#define P_HEVC_CINDEX1_REG (volatile unsigned int *)((0x332b << 2) + 0xff620000)
#define HEVC_CINDEX2_REG (0x332c)
#define P_HEVC_CINDEX2_REG (volatile unsigned int *)((0x332c << 2) + 0xff620000)
#define HEVC_CINDEX3_REG (0x332d)
#define P_HEVC_CINDEX3_REG (volatile unsigned int *)((0x332d << 2) + 0xff620000)
#define HEVC_CINDEX4_REG (0x332e)
#define P_HEVC_CINDEX4_REG (volatile unsigned int *)((0x332e << 2) + 0xff620000)
#define HEVC_CINDEX5_REG (0x332f)
#define P_HEVC_CINDEX5_REG (volatile unsigned int *)((0x332f << 2) + 0xff620000)
#define HEVC_CINDEX6_REG (0x3330)
#define P_HEVC_CINDEX6_REG (volatile unsigned int *)((0x3330 << 2) + 0xff620000)
#define HEVC_CINDEX7_REG (0x3331)
#define P_HEVC_CINDEX7_REG (volatile unsigned int *)((0x3331 << 2) + 0xff620000)
#define HEVC_CMIN_REG (0x3332)
#define P_HEVC_CMIN_REG (volatile unsigned int *)((0x3332 << 2) + 0xff620000)
#define HEVC_CMAX_REG (0x3333)
#define P_HEVC_CMAX_REG (volatile unsigned int *)((0x3333 << 2) + 0xff620000)
#define HEVC_CBREAK0_REG (0x3334)
#define P_HEVC_CBREAK0_REG (volatile unsigned int *)((0x3334 << 2) + 0xff620000)
#define HEVC_CBREAK1_REG (0x3335)
#define P_HEVC_CBREAK1_REG (volatile unsigned int *)((0x3335 << 2) + 0xff620000)
#define HEVC_CBREAK2_REG (0x3336)
#define P_HEVC_CBREAK2_REG (volatile unsigned int *)((0x3336 << 2) + 0xff620000)
#define HEVC_CBREAK3_REG (0x3337)
#define P_HEVC_CBREAK3_REG (volatile unsigned int *)((0x3337 << 2) + 0xff620000)
#define HEVC_CBREAK_TYPE (0x3338)
#define P_HEVC_CBREAK_TYPE (volatile unsigned int *)((0x3338 << 2) + 0xff620000)
#define HEVC_CBREAK_CTRL (0x3339)
#define P_HEVC_CBREAK_CTRL (volatile unsigned int *)((0x3339 << 2) + 0xff620000)
#define HEVC_CBREAK_STAUTS (0x333a)
#define P_HEVC_CBREAK_STAUTS (volatile unsigned int *)((0x333a << 2) + 0xff620000)
#define HEVC_CDB_ADDR_REG (0x333b)
#define P_HEVC_CDB_ADDR_REG (volatile unsigned int *)((0x333b << 2) + 0xff620000)
#define HEVC_CDB_DATA_REG (0x333c)
#define P_HEVC_CDB_DATA_REG (volatile unsigned int *)((0x333c << 2) + 0xff620000)
#define HEVC_CDB_CTRL (0x333d)
#define P_HEVC_CDB_CTRL (volatile unsigned int *)((0x333d << 2) + 0xff620000)
#define HEVC_CSFTINT0 (0x333e)
#define P_HEVC_CSFTINT0 (volatile unsigned int *)((0x333e << 2) + 0xff620000)
#define HEVC_CSFTINT1 (0x333f)
#define P_HEVC_CSFTINT1 (volatile unsigned int *)((0x333f << 2) + 0xff620000)
#define HEVC_IMEM_DMA_CTRL (0x3340)
#define P_HEVC_IMEM_DMA_CTRL (volatile unsigned int *)((0x3340 << 2) + 0xff620000)
#define HEVC_IMEM_DMA_ADR (0x3341)
#define P_HEVC_IMEM_DMA_ADR (volatile unsigned int *)((0x3341 << 2) + 0xff620000)
#define HEVC_IMEM_DMA_COUNT (0x3342)
#define P_HEVC_IMEM_DMA_COUNT (volatile unsigned int *)((0x3342 << 2) + 0xff620000)
// bit[29:24] A_brst_num_imem
// bit[21:16] A_id_imem
// bit[11:0] wrrsp_count_imem (reserved)
#define HEVC_WRRSP_IMEM (0x3343)
#define P_HEVC_WRRSP_IMEM (volatile unsigned int *)((0x3343 << 2) + 0xff620000)
#define HEVC_LMEM_DMA_CTRL (0x3350)
#define P_HEVC_LMEM_DMA_CTRL (volatile unsigned int *)((0x3350 << 2) + 0xff620000)
#define HEVC_LMEM_DMA_ADR (0x3351)
#define P_HEVC_LMEM_DMA_ADR (volatile unsigned int *)((0x3351 << 2) + 0xff620000)
#define HEVC_LMEM_DMA_COUNT (0x3352)
#define P_HEVC_LMEM_DMA_COUNT (volatile unsigned int *)((0x3352 << 2) + 0xff620000)
// bit[29:24] A_brst_num_lmem
// bit[21:16] A_id_lmem
// bit[11:0] wrrsp_count_lmem
#define HEVC_WRRSP_LMEM (0x3353)
#define P_HEVC_WRRSP_LMEM (volatile unsigned int *)((0x3353 << 2) + 0xff620000)
#define HEVC_MAC_CTRL1 (0x3360)
#define P_HEVC_MAC_CTRL1 (volatile unsigned int *)((0x3360 << 2) + 0xff620000)
#define HEVC_ACC0REG1 (0x3361)
#define P_HEVC_ACC0REG1 (volatile unsigned int *)((0x3361 << 2) + 0xff620000)
#define HEVC_ACC1REG1 (0x3362)
#define P_HEVC_ACC1REG1 (volatile unsigned int *)((0x3362 << 2) + 0xff620000)
#define HEVC_MAC_CTRL2 (0x3370)
#define P_HEVC_MAC_CTRL2 (volatile unsigned int *)((0x3370 << 2) + 0xff620000)
#define HEVC_ACC0REG2 (0x3371)
#define P_HEVC_ACC0REG2 (volatile unsigned int *)((0x3371 << 2) + 0xff620000)
#define HEVC_ACC1REG2 (0x3372)
#define P_HEVC_ACC1REG2 (volatile unsigned int *)((0x3372 << 2) + 0xff620000)
#define HEVC_CPU_TRACE (0x3380)
#define P_HEVC_CPU_TRACE (volatile unsigned int *)((0x3380 << 2) + 0xff620000)
//
// Closing file: vcpu_regs.h
//
//
// Reading file: henc_regs.h
//
//========================================================================
// MDEC module level register offset
//========================================================================
// -----------------------------------------------
// CBUS_BASE: DOS_HCODEC_HENC_CBUS_BASE = 0x0a
// -----------------------------------------------
#define HCODEC_HENC_SCRATCH_0 (0x1ac0)
#define P_HCODEC_HENC_SCRATCH_0 (volatile unsigned int *)((0x1ac0 << 2) + 0xff620000)
#define HCODEC_HENC_SCRATCH_1 (0x1ac1)
#define P_HCODEC_HENC_SCRATCH_1 (volatile unsigned int *)((0x1ac1 << 2) + 0xff620000)
#define HCODEC_HENC_SCRATCH_2 (0x1ac2)
#define P_HCODEC_HENC_SCRATCH_2 (volatile unsigned int *)((0x1ac2 << 2) + 0xff620000)
#define HCODEC_HENC_SCRATCH_3 (0x1ac3)
#define P_HCODEC_HENC_SCRATCH_3 (volatile unsigned int *)((0x1ac3 << 2) + 0xff620000)
#define HCODEC_HENC_SCRATCH_4 (0x1ac4)
#define P_HCODEC_HENC_SCRATCH_4 (volatile unsigned int *)((0x1ac4 << 2) + 0xff620000)
#define HCODEC_HENC_SCRATCH_5 (0x1ac5)
#define P_HCODEC_HENC_SCRATCH_5 (volatile unsigned int *)((0x1ac5 << 2) + 0xff620000)
#define HCODEC_HENC_SCRATCH_6 (0x1ac6)
#define P_HCODEC_HENC_SCRATCH_6 (volatile unsigned int *)((0x1ac6 << 2) + 0xff620000)
#define HCODEC_HENC_SCRATCH_7 (0x1ac7)
#define P_HCODEC_HENC_SCRATCH_7 (volatile unsigned int *)((0x1ac7 << 2) + 0xff620000)
#define HCODEC_HENC_SCRATCH_8 (0x1ac8)
#define P_HCODEC_HENC_SCRATCH_8 (volatile unsigned int *)((0x1ac8 << 2) + 0xff620000)
#define HCODEC_HENC_SCRATCH_9 (0x1ac9)
#define P_HCODEC_HENC_SCRATCH_9 (volatile unsigned int *)((0x1ac9 << 2) + 0xff620000)
#define HCODEC_HENC_SCRATCH_A (0x1aca)
#define P_HCODEC_HENC_SCRATCH_A (volatile unsigned int *)((0x1aca << 2) + 0xff620000)
#define HCODEC_HENC_SCRATCH_B (0x1acb)
#define P_HCODEC_HENC_SCRATCH_B (volatile unsigned int *)((0x1acb << 2) + 0xff620000)
#define HCODEC_HENC_SCRATCH_C (0x1acc)
#define P_HCODEC_HENC_SCRATCH_C (volatile unsigned int *)((0x1acc << 2) + 0xff620000)
#define HCODEC_HENC_SCRATCH_D (0x1acd)
#define P_HCODEC_HENC_SCRATCH_D (volatile unsigned int *)((0x1acd << 2) + 0xff620000)
#define HCODEC_HENC_SCRATCH_E (0x1ace)
#define P_HCODEC_HENC_SCRATCH_E (volatile unsigned int *)((0x1ace << 2) + 0xff620000)
#define HCODEC_HENC_SCRATCH_F (0x1acf)
#define P_HCODEC_HENC_SCRATCH_F (volatile unsigned int *)((0x1acf << 2) + 0xff620000)
#define HCODEC_HENC_SCRATCH_G (0x1ad0)
#define P_HCODEC_HENC_SCRATCH_G (volatile unsigned int *)((0x1ad0 << 2) + 0xff620000)
#define HCODEC_HENC_SCRATCH_H (0x1ad1)
#define P_HCODEC_HENC_SCRATCH_H (volatile unsigned int *)((0x1ad1 << 2) + 0xff620000)
#define HCODEC_HENC_SCRATCH_I (0x1ad2)
#define P_HCODEC_HENC_SCRATCH_I (volatile unsigned int *)((0x1ad2 << 2) + 0xff620000)
#define HCODEC_HENC_SCRATCH_J (0x1ad3)
#define P_HCODEC_HENC_SCRATCH_J (volatile unsigned int *)((0x1ad3 << 2) + 0xff620000)
#define HCODEC_HENC_SCRATCH_K (0x1ad4)
#define P_HCODEC_HENC_SCRATCH_K (volatile unsigned int *)((0x1ad4 << 2) + 0xff620000)
#define HCODEC_HENC_SCRATCH_L (0x1ad5)
#define P_HCODEC_HENC_SCRATCH_L (volatile unsigned int *)((0x1ad5 << 2) + 0xff620000)
#define HCODEC_HENC_SCRATCH_M (0x1ad6)
#define P_HCODEC_HENC_SCRATCH_M (volatile unsigned int *)((0x1ad6 << 2) + 0xff620000)
#define HCODEC_HENC_SCRATCH_N (0x1ad7)
#define P_HCODEC_HENC_SCRATCH_N (volatile unsigned int *)((0x1ad7 << 2) + 0xff620000)
// bit [7:0] data_feed_buff_id
#define HCODEC_IE_DATA_FEED_BUFF_INFO (0x1ad8)
#define P_HCODEC_IE_DATA_FEED_BUFF_INFO (volatile unsigned int *)((0x1ad8 << 2) + 0xff620000)
//
// Closing file: henc_regs.h
//
//
// Reading file: vlc_regs.h
//
//========================================================================
// VLC module level register offset
//========================================================================
// -----------------------------------------------
// CBUS_BASE: DOS_HCODEC_VLC_CBUS_BASE = 0x0d
// -----------------------------------------------
// Bit[31:28] - henc_status
// Bit[27:8] - reserved
// Bit[7] mc_hcmd_buff_enable
// Bit[6] mc_hcmd_use_mc_hcmd_buff
// Bit[5] mc_hcmd_use_mc_hcmd_hw_start
// Bit[4] no_mc_out_null_non_skipped_mb
// Bit[3] mc_out_even_skipped_mb
// Bit[2] - hcmd_enable
// Bit[1] - vlc_control_enable (0 will treat as soft_reset)
// Bit[0] - vlc_input_enable (enable input interface)
#define HCODEC_VLC_STATUS_CTRL (0x1d00)
#define P_HCODEC_VLC_STATUS_CTRL (volatile unsigned int *)((0x1d00 << 2) + 0xff620000)
// Bit [31] - small_luma_ignore_chroma
// Bit[30:16] - Reserved
// Bit [15] - enable_free_clk_mc_hcmd_buff
// Bit [14] - enable_free_clk_reg
// Bit [13] - enable_free_clk_stream
// Bit [12] - enable_free_clk_pre_buff
// Bit [11] - enable_free_clk_vb_buff
// Bit [10] - enable_free_clk_dc_input
// Bit [9] - enable_free_clk_input
// Bit [8] - enable_free_clk_mv_cal
// Bit [7] - enable_free_clk_status
// Bit [6] - enable_free_clk_mc_dblk_cmd_if
// Bit [5] - disable_mvd_enc_finished
// Bit [4] - I16MB_share_ipred_mode_with_I4MB
// Bit [3] - fixed_picture_qp
// Bit [2] - use_set_b8_mode ( not used now)
// Bit [1] - use_set_mb_skip_run
// Bit [0] - pop_coeff_even_all_zero
#define HCODEC_VLC_CONFIG (0x1d01)
#define P_HCODEC_VLC_CONFIG (volatile unsigned int *)((0x1d01 << 2) + 0xff620000)
// --------------------------------------------
// Bitstream DDR Interface
// --------------------------------------------
#define HCODEC_VLC_VB_START_PTR (0x1d10)
#define P_HCODEC_VLC_VB_START_PTR (volatile unsigned int *)((0x1d10 << 2) + 0xff620000)
#define HCODEC_VLC_VB_END_PTR (0x1d11)
#define P_HCODEC_VLC_VB_END_PTR (volatile unsigned int *)((0x1d11 << 2) + 0xff620000)
#define HCODEC_VLC_VB_WR_PTR (0x1d12)
#define P_HCODEC_VLC_VB_WR_PTR (volatile unsigned int *)((0x1d12 << 2) + 0xff620000)
// Read Only, VLC_VB_SW_RD_PTR or VLC_VB_HW_RD_PTR
#define HCODEC_VLC_VB_RD_PTR (0x1d13)
#define P_HCODEC_VLC_VB_RD_PTR (volatile unsigned int *)((0x1d13 << 2) + 0xff620000)
#define HCODEC_VLC_VB_SW_RD_PTR (0x1d14)
#define P_HCODEC_VLC_VB_SW_RD_PTR (volatile unsigned int *)((0x1d14 << 2) + 0xff620000)
// Read Only
#define HCODEC_VLC_VB_LEFT (0x1d15)
#define P_HCODEC_VLC_VB_LEFT (volatile unsigned int *)((0x1d15 << 2) + 0xff620000)
// VB FIFO Control
// bit [31:24] vb_full_int_enable_cpu[7:0]
// bit [23:16] vb_full_int_enable_amrisc[7:0]
// -bit 23 Video BUFFER LEFT < 0x400 Bytes
// -bit 22 Video BUFFER LEFT < 0x200 Bytes
// -bit 21 Video BUFFER LEFT < 0x100 Bytes
// -bit 20 Video BUFFER LEFT < 0x80 Bytes
// -bit 19 Video BUFFER LEFT < 0x40 Bytes
// -bit 18 Video BUFFER LEFT < 0x20 Bytes
// -bit 17 vbfifo left < 16 double words (8x64bits)
// -bit 16 vbfifo left < 8 double words (4x64bits)
// bit [15] wr_ptr_int_enable_cpu
// bit [14] wr_ptr_int_enable_amrisc
// bit [13] wr_ptr_int (Read Only, write 1 will clear)
// bit [12] vb_full_int_enable_cpu(Read Only)
// bit [11] vb_full_int_enable_amrisc(Read Only)
// bit [10] reserved
// bit [9] use_vb_hw_rd_ptr
// bit [8] vb_always_ready Set to 1 to ignore vb_level blocking DDR write
// bit [7] vb_ready_for_transfer (Read Only)
// bit [6] data_ready_for_transfer (Read Only)
// bits [5:3] vb_endian Set VB Endian inside DDR memory
// bit [2] vb_write_busy Read Only - indicate DDR write busy
// bit [1] vb_write_en Set to 1 to enable writing data to DDR memory
// bit [0] vb_soft_reset Soft reset
#define HCODEC_VLC_VB_CONTROL (0x1d16)
#define P_HCODEC_VLC_VB_CONTROL (volatile unsigned int *)((0x1d16 << 2) + 0xff620000)
// bit 31 transfer_length 0 - 32x64 Bits per request, 1 - 16x64 Bits per request // default : 0
// bit 30 A_urgent // default : 0
// bit 29:24 A_brst_num // default : 0x3f
// bit 23:22 reserved
// bit 21:16 A_id // default : 0x20
// bit 15:0 vb_left_hold // default : 0
#define HCODEC_VLC_VB_MEM_CTL (0x1d17)
#define P_HCODEC_VLC_VB_MEM_CTL (volatile unsigned int *)((0x1d17 << 2) + 0xff620000)
// vb_wr_ptr address to generate interrupt
#define HCODEC_VLC_VB_INT_PTR (0x1d18)
#define P_HCODEC_VLC_VB_INT_PTR (volatile unsigned int *)((0x1d18 << 2) + 0xff620000)
// bit[31:12] reserved
// bit[11:0] vlc_wrrsp_count
#define HCODEC_VLC_WRRSP (0x1d19)
#define P_HCODEC_VLC_WRRSP (volatile unsigned int *)((0x1d19 << 2) + 0xff620000)
#define HCODEC_VLC_TOTAL_BYTES (0x1d1a)
#define P_HCODEC_VLC_TOTAL_BYTES (volatile unsigned int *)((0x1d1a << 2) + 0xff620000)
// bit [31:26] reserved
// bit [25] vb_flush
// bit [24] vb_reg_ready
// bit [23:16] vb_buff_left -- Read only
// bit [15:8] vb_buff_wr_point -- RW
// bit [7:0] vb_buff_rd_point -- RW
#define HCODEC_VLC_VB_BUFF (0x1d1b)
#define P_HCODEC_VLC_VB_BUFF (volatile unsigned int *)((0x1d1b << 2) + 0xff620000)
// bit[31] flush_vlc_pre_buff
// bit[30:27] reserved
// bit[26:24] vb_pre_buff_level
// bit[23:0] vb_pre_buff_data[55:32]
#define HCODEC_VLC_VB_PRE_BUFF_HI (0x1d1c)
#define P_HCODEC_VLC_VB_PRE_BUFF_HI (volatile unsigned int *)((0x1d1c << 2) + 0xff620000)
// bit[31:0] vb_pre_buff_data[31:0]
#define HCODEC_VLC_VB_PRE_BUFF_LOW (0x1d1d)
#define P_HCODEC_VLC_VB_PRE_BUFF_LOW (volatile unsigned int *)((0x1d1d << 2) + 0xff620000)
// bit[31] stream_encap_enable // 0x0000(00-03) will be changed to 0x000003(00-03) if enabled
// bit[30:29] stream_encap_delay // delay bytes for encap used
// bit[28:24] stream_buff_point
// bit[23:0] stream_buff_data
#define HCODEC_VLC_STREAM_BUFF (0x1d1e)
#define P_HCODEC_VLC_STREAM_BUFF (volatile unsigned int *)((0x1d1e << 2) + 0xff620000)
// bit[31] push_stream_block - Read Only (Will set if vb_buff full)
// bit[30] push_stream_busy - Read Only (busy when output one byte from stream_buf (max 2 clocks for 8 bits push)
// bit[29:28] stream_encap_status - Read Only
// bit[27:21] reserved
// Long Mode : (Amrisc need movilo and mvihi high to set stream_info)
// bit[20:16] push_stream_long_length (0 or 31 : Mid or Short mode)
// bit[15:0] push_stream_data
// Mid Mode : (Amrisc need movi to set stream_info)
// bit[15:12]] push_stream_mid_length (1-12 : mid mode active, 0-short mode, 15 - byte align)
// bit[11:0] push_stream_data
// Short Mode : (Amrisc can use mtspi to push stream directely)
// bit[7:5] push_stream_short_length (0-5 : short length, else - invalid)
// bit[4:0] push_stream_data
#define HCODEC_VLC_PUSH_STREAM (0x1d1f)
#define P_HCODEC_VLC_PUSH_STREAM (volatile unsigned int *)((0x1d1f << 2) + 0xff620000)
// bit[15:8] ELEMENT_LENGTH
// bit[7:1] reserved
// bit[0] Write - push start, Read - Push Busy
#define HCODEC_VLC_PUSH_ELEMENT (0x1d20)
#define P_HCODEC_VLC_PUSH_ELEMENT (volatile unsigned int *)((0x1d20 << 2) + 0xff620000)
#define HCODEC_VLC_ELEMENT_DATA (0x1d21)
#define P_HCODEC_VLC_ELEMENT_DATA (volatile unsigned int *)((0x1d21 << 2) + 0xff620000)
// bit[7] hcmd_intra_use_sw_info
// bit[6] hcmd_use_sw_info
// bit[5] always_use_info_0_cbp_blk
// bit[4] always_update_info_0_cbp_blk
// bit[3] reset_left_mb_wr
// bit[2] reset_top_mb_wr
// bit[1] set_left_mb_wr
// bit[0] set_top_mb_wr
#define HCODEC_VLC_SPECIAL_CTL (0x1d22)
#define P_HCODEC_VLC_SPECIAL_CTL (volatile unsigned int *)((0x1d22 << 2) + 0xff620000)
// bit[28] left_intra
// bit[27:22] left_quant
// bit[21:16] left_quant_c
// bit[12] top_intra
// bit[11:6] top_quant
// bit[5:0] top_quant_c
#define HCODEC_VLC_HCMD_T_L_INFO (0x1d23)
#define P_HCODEC_VLC_HCMD_T_L_INFO (volatile unsigned int *)((0x1d23 << 2) + 0xff620000)
// bit[12] cur_intra
// bit[11:6] cur_quant
// bit[5:0] cur_quant_c
#define HCODEC_VLC_HCMD_CUR_INFO (0x1d24)
#define P_HCODEC_VLC_HCMD_CUR_INFO (volatile unsigned int *)((0x1d24 << 2) + 0xff620000)
// bit[13] top_left_info_in_data_mv_cal
// bit[12] only_use_info_0_top_left_in_I
// bit[11] top_left_info_in_data
// bit[10] early_mix_mc_hcmd
// bit[9] update_top_left_mix
// bit[8] p_top_left_mix
// bit[7] mv_cal_mixed_type
// bit[6] mc_hcmd_mixed_type
// bit[5] use_seperate_int_control
// bit[4] hcmd_intra_use_q_info
// bit[3] hcmd_left_use_prev_info
// bit[2] hcmd_use_q_info
// bit[1] use_q_delta_quant
// bit[0] detect_I16_from_I4
#define HCODEC_VLC_ADV_CONFIG (0x1d25)
#define P_HCODEC_VLC_ADV_CONFIG (volatile unsigned int *)((0x1d25 << 2) + 0xff620000)
// 31 - use_hcmd_mb_xy_auto
//23:16 - hcmd_max_mb_x
//15:8 - hcmd_mb_y_auto
// 7:0 - hcmd_mb_x_auto
#define HCODEC_VLC_HCMD_MBXY_AUTO (0x1d26)
#define P_HCODEC_VLC_HCMD_MBXY_AUTO (volatile unsigned int *)((0x1d26 << 2) + 0xff620000)
// bit[31:0] vlc_int_control_inter -- will be used when use_seperate_int_control is set
#define HCODEC_VLC_INT_CONTROL_INTER (0x1d2f)
#define P_HCODEC_VLC_INT_CONTROL_INTER (volatile unsigned int *)((0x1d2f << 2) + 0xff620000)
// --------------------------------------------
// Picture VLC
// --------------------------------------------
// (&(int|(~AND_enable))|(|(int&OR_enable)))
// bit[31] OR interrupt Enable Reserved
// bit[30] OR interrupt Enable for mv_busy
// bit[29] OR interrupt Enable for b8_mode_busy
// bit[28] OR interrupt Enable for mb_skip_run_busy
// bit[27] OR interrupt Enable for cbp_busy
// bit[26] OR interrupt Enable for Reserved
// bit[25] OR interrupt Enable for Reserved
// bit[24] OR interrupt Enable for mb_info_busy
// bit[23] AND interrupt Enable Reserved
// bit[22] AND interrupt Enable for mv_busy
// bit[21] AND interrupt Enable for b8_mode_busy
// bit[20] AND interrupt Enable for mb_skip_run_busy
// bit[19] AND interrupt Enable for cbp_busy
// bit[18] AND interrupt Enable for Reserved
// bit[17] AND interrupt Enable for Reserved
// bit[16] AND interrupt Enable for mb_info_busy
// bit[15] OR interrupt Enable Reserved
// bit[14] OR interrupt Enable for mvd
// bit[13] OR interrupt Enable for b8_mode
// bit[12] OR interrupt Enable for mb_skip_run
// bit[11] OR interrupt Enable for cbp_ready
// bit[10] OR interrupt Enable for c_ipred_mode_ready
// bit[9] OR interrupt Enable for ipred_mode_ready
// bit[8] OR interrupt Enable for mb_info_ready
// bit[7] AND interrupt Enable Reserved
// bit[6] AND interrupt Enable for mvd
// bit[5] AND interrupt Enable for b8_mode
// bit[4] AND interrupt Enable for mb_skip_run
// bit[3] AND interrupt Enable for cbp_ready
// bit[2] AND interrupt Enable for c_ipred_mode_ready
// bit[1] AND interrupt Enable for ipred_mode_ready
// bit[0] AND interrupt Enable for mb_info_ready
#define HCODEC_VLC_INT_CONTROL (0x1d30)
#define P_HCODEC_VLC_INT_CONTROL (volatile unsigned int *)((0x1d30 << 2) + 0xff620000)
// Bit[31:16] picture_height
// Bit[15:0] picture_width
#define HCODEC_VLC_PIC_SIZE (0x1d31)
#define P_HCODEC_VLC_PIC_SIZE (volatile unsigned int *)((0x1d31 << 2) + 0xff620000)
// [31:16] Reserved
// [15:3] pic_width_in_mbs_minus1
// [2:0] picture_type
#define HCODEC_VLC_PIC_INFO (0x1d32)
#define P_HCODEC_VLC_PIC_INFO (volatile unsigned int *)((0x1d32 << 2) + 0xff620000)
// Bit[31:16] MB_NR
// Bit[15:8] MBY
// Bit[7:0] MBX
#define HCODEC_VLC_PIC_POSITION (0x1d33)
#define P_HCODEC_VLC_PIC_POSITION (volatile unsigned int *)((0x1d33 << 2) + 0xff620000)
// Bit[31] MV_busy
// Bit[30:6] Reserved
// Bit[15] Reserved
// Bit[14] vlc_input_MV_busy
// Bit[13] vlc_input_b8_mode_busy
// Bit[12] vlc_input_mb_skip_run_busy
// Bit[11] vlc_input_cbp_busy
// Bit[10] Reserved
// Bit[9] Reserved
// Bit[8] vlc_input_mb_info_busy
// Bit[7] Reserved
// Bit[6] mvd
// Bit[5] b8_mode
// Bit[4] mb_skip_run
// Bit[3] cbp
// Bit[2] c_ipred_mode
// Bit[1] ipred_mode
// Bit[0] mb_info ( mb_type, mb_x, mb_y)
#define HCODEC_VLC_INPUT_STATUS (0x1d34)
#define P_HCODEC_VLC_INPUT_STATUS (volatile unsigned int *)((0x1d34 << 2) + 0xff620000)
// Bit[31:28] detected_mb_type
// Bit[27:16] mb_y
// Bit[15:4] mb_x
// Bit[3:0] mb_type
#define HCODEC_VLC_MB_INFO (0x1d35)
#define P_HCODEC_VLC_MB_INFO (volatile unsigned int *)((0x1d35 << 2) + 0xff620000)
// commnad 0 -- no pending
// normal command + 1 is pending command
//
// bit 31:28 -- pending command 7
// bit 27:24 -- pending command 6
// bit 23:20 -- pending command 5
// bit 19:16 -- pending command 4
// bit 15:12 -- pending command 3
// bit 11:8 -- pending command 2
// bit 7:4 -- pending command 1
// bit 3:0 -- pending command 0
#define HCODEC_VLC_ENC_PEND_CMD (0x1d36)
#define P_HCODEC_VLC_ENC_PEND_CMD (volatile unsigned int *)((0x1d36 << 2) + 0xff620000)
// For I Slice
// Bit[31:16] Reserved
// Bit[15:0] IntraType
#define HCODEC_HENC_TOP_INFO_0 (0x1d37)
#define P_HCODEC_HENC_TOP_INFO_0 (volatile unsigned int *)((0x1d37 << 2) + 0xff620000)
#define HCODEC_HENC_LEFT_INFO_0 (0x1d38)
#define P_HCODEC_HENC_LEFT_INFO_0 (volatile unsigned int *)((0x1d38 << 2) + 0xff620000)
// For I Slice
// Bit[31:24] V_nnz
// Bit[23:16] U_nnz
// Bit[15:0] Y_nnz
#define HCODEC_HENC_TOP_INFO_1 (0x1d39)
#define P_HCODEC_HENC_TOP_INFO_1 (volatile unsigned int *)((0x1d39 << 2) + 0xff620000)
#define HCODEC_HENC_LEFT_INFO_1 (0x1d3a)
#define P_HCODEC_HENC_LEFT_INFO_1 (volatile unsigned int *)((0x1d3a << 2) + 0xff620000)
// bit[63:0] ipred_mode
#define HCODEC_VLC_IPRED_MODE_HI (0x1d3b)
#define P_HCODEC_VLC_IPRED_MODE_HI (volatile unsigned int *)((0x1d3b << 2) + 0xff620000)
#define HCODEC_VLC_IPRED_MODE_LO (0x1d3c)
#define P_HCODEC_VLC_IPRED_MODE_LO (volatile unsigned int *)((0x1d3c << 2) + 0xff620000)
// bit[15:8] SE delta quant
// bit[7:0] UE delta quant
#define HCODEC_VLC_DELTA_QP (0x1d3d)
#define P_HCODEC_VLC_DELTA_QP (volatile unsigned int *)((0x1d3d << 2) + 0xff620000)
// bit[31:16] Reserved
// bit[15:12] Reserved
// bit[11:8] c_ipred_mode
// bit[7:0] cbp
#define HCODEC_VLC_MB_HEADER_INFO (0x1d3e)
#define P_HCODEC_VLC_MB_HEADER_INFO (volatile unsigned int *)((0x1d3e << 2) + 0xff620000)
// bit[31:16] mb_skip_run
// bit[15:0] b8_mode
#define HCODEC_VLC_P_MB_HEADER_INFO (0x1d3f)
#define P_HCODEC_VLC_P_MB_HEADER_INFO (volatile unsigned int *)((0x1d3f << 2) + 0xff620000)
// bit[31] write_ptr_update
// bit[30] read_ptr_update
// bit[29:20] coeff_buf_level
// bit[19:10] coeff_buf_write_ptr
// bit[9:0] coeff_buf_read_ptr
#define HCODEC_VLC_COEFF_BUF_STATUS (0x1d40)
#define P_HCODEC_VLC_COEFF_BUF_STATUS (volatile unsigned int *)((0x1d40 << 2) + 0xff620000)
// bit[31:10] Reserved
// bit[9:0] read_req_addr
#define HCODEC_VLC_COEFF_RD_REQ (0x1d41)
#define P_HCODEC_VLC_COEFF_RD_REQ (volatile unsigned int *)((0x1d41 << 2) + 0xff620000)
// bit[20] - coeff_buf_read_finished
// bit[19] - coeff_first
// bit[18:4] - coeff_level
// bit[3:0] - coeff_run
#define HCODEC_VLC_COEFF (0x1d42)
#define P_HCODEC_VLC_COEFF (volatile unsigned int *)((0x1d42 << 2) + 0xff620000)
// bit[31] - coeff_info_ready
// bit[30:25] - Reserved
// bit[24:15] - block_begin_addr
// bit[14:11] - trailing_one_sign
// bit[10:6] - total_coeff
// bit[5:4] - trailing_ones
// bit[3:0] - total_zeros
#define HCODEC_VLC_COEFF_INFO (0x1d43)
#define P_HCODEC_VLC_COEFF_INFO (volatile unsigned int *)((0x1d43 << 2) + 0xff620000)
// bit[31] write_ptr_update
// bit[30] read_ptr_update
// bit[29:25] Reserved
// bit[24:20] dc_buf_level -- 0-16
// bit[19:15] Reserved
// bit[14:10] dc_buf_write_ptr
// bit[9:5] Reserved
// bit[4:0] dc_buf_read_ptr
#define HCODEC_VLC_DC_BUF_STATUS (0x1d44)
#define P_HCODEC_VLC_DC_BUF_STATUS (volatile unsigned int *)((0x1d44 << 2) + 0xff620000)
// bit[31:10] Reserved
// bit[9:4] Reserved
// bit[3:0] read_req_addr
#define HCODEC_VLC_DC_RD_REQ (0x1d45)
#define P_HCODEC_VLC_DC_RD_REQ (volatile unsigned int *)((0x1d45 << 2) + 0xff620000)
// bit[31:17] - Reserved
// bit[16] - dc_first
// bit[15:1] - dc_level
// bit[0] - dc_type 0 - CDC, 1 - LDC
#define HCODEC_VLC_DC (0x1d46)
#define P_HCODEC_VLC_DC (volatile unsigned int *)((0x1d46 << 2) + 0xff620000)
// bit[31] - dc_info_ready
// bit[30:25] - Reserved
// bit[24:20] - Reserved
// bit[19:15] - dc_idx_begin_addr
// bit[14:11] - dc_trailing_one_sign
// bit[10:6] - dc_total_coeff
// bit[5:4] - dc_trailing_ones
// bit[3:0] - dc_total_zeros
#define HCODEC_VLC_DC_INFO (0x1d47)
#define P_HCODEC_VLC_DC_INFO (volatile unsigned int *)((0x1d47 << 2) + 0xff620000)
// bit[31:4] - Reserved
// bit[3:0] - mv_rw_idx (auto increment when read/write VLC_MV)
#define HCODEC_VLC_MV_INDEX (0x1d48)
#define P_HCODEC_VLC_MV_INDEX (volatile unsigned int *)((0x1d48 << 2) + 0xff620000)
// bit[31:16] - MVY
// bit[15:0] - MVX
#define HCODEC_VLC_MV (0x1d49)
#define P_HCODEC_VLC_MV (volatile unsigned int *)((0x1d49 << 2) + 0xff620000)
// bit[31:16] - MVY
// bitp15:0] - MVX
// Write to HENC_TOP_MV_0 will cause previous U->UL, UR->U, and UR write
// Read will read U MV only
#define HCODEC_HENC_TOP_MV_0 (0x1d4a)
#define P_HCODEC_HENC_TOP_MV_0 (volatile unsigned int *)((0x1d4a << 2) + 0xff620000)
#define HCODEC_HENC_TOP_MV_1 (0x1d4b)
#define P_HCODEC_HENC_TOP_MV_1 (volatile unsigned int *)((0x1d4b << 2) + 0xff620000)
#define HCODEC_HENC_TOP_MV_2 (0x1d4c)
#define P_HCODEC_HENC_TOP_MV_2 (volatile unsigned int *)((0x1d4c << 2) + 0xff620000)
#define HCODEC_HENC_TOP_MV_3 (0x1d4d)
#define P_HCODEC_HENC_TOP_MV_3 (volatile unsigned int *)((0x1d4d << 2) + 0xff620000)
#define HCODEC_HENC_LEFT_MV_0 (0x1d4e)
#define P_HCODEC_HENC_LEFT_MV_0 (volatile unsigned int *)((0x1d4e << 2) + 0xff620000)
#define HCODEC_HENC_LEFT_MV_1 (0x1d4f)
#define P_HCODEC_HENC_LEFT_MV_1 (volatile unsigned int *)((0x1d4f << 2) + 0xff620000)
#define HCODEC_HENC_LEFT_MV_2 (0x1d50)
#define P_HCODEC_HENC_LEFT_MV_2 (volatile unsigned int *)((0x1d50 << 2) + 0xff620000)
#define HCODEC_HENC_LEFT_MV_3 (0x1d51)
#define P_HCODEC_HENC_LEFT_MV_3 (volatile unsigned int *)((0x1d51 << 2) + 0xff620000)
// Bit[31:1] Reserved
// Bit[0] top_left_mv_ready
#define HCODEC_TOP_LEFT_READY (0x1d52)
#define P_HCODEC_TOP_LEFT_READY (volatile unsigned int *)((0x1d52 << 2) + 0xff620000)
// Bit[31:16] Reserved
// Bit[15:0] mb_skip_run
#define HCODEC_MB_SKIP_RUN (0x1d53)
#define P_HCODEC_MB_SKIP_RUN (volatile unsigned int *)((0x1d53 << 2) + 0xff620000)
// Bit[31:16] Reserved
// Bit[15] Reserved
// Bit[14:13] rd_struct // 00 - frame, 10 - top field, 11 - bottom field
// Bit[12:11] wr_struct // 00 - frame, 10 - top field, 11 - bottom field
// Bit[10:5] mv_buff_id
// Bit[4:0] mv_ref
#define HCODEC_VLC_HCMD_CONFIG (0x1d54)
#define P_HCODEC_VLC_HCMD_CONFIG (volatile unsigned int *)((0x1d54 << 2) + 0xff620000)
// Bit[9:0] h264_dblk_info
#define HCODEC_VLC_HCMD_DBLK_INFO (0x1d55)
#define P_HCODEC_VLC_HCMD_DBLK_INFO (volatile unsigned int *)((0x1d55 << 2) + 0xff620000)
// Bit[3:0] vlc_dbg_idx
#define HCODEC_VLC_DBG_IDX (0x1d56)
#define P_HCODEC_VLC_DBG_IDX (volatile unsigned int *)((0x1d56 << 2) + 0xff620000)
// Read Only
#define HCODEC_VLC_DBG_READ (0x1d57)
#define P_HCODEC_VLC_DBG_READ (volatile unsigned int *)((0x1d57 << 2) + 0xff620000)
// [ 29] RW jpeg_comp2_ac_table_sel. Default 0.
// [ 28] RW jpeg_comp2_dc_table_sel. Default 0.
// [26:25] RW jpeg_comp2_cnt_max. Default 0.
// [ 24] RW jpeg_comp2_en. Set 1 if the scan will include component 2 (Cr). Default 0.
// [ 21] RW jpeg_comp1_ac_table_sel. Default 0.
// [ 20] RW jpeg_comp1_dc_table_sel. Default 0.
// [18:17] RW jpeg_comp1_cnt_max. Default 0.
// [ 16] RW jpeg_comp1_en. Set 1 if the scan will include component 1 (Cb). Default 0.
// [ 13] RW jpeg_comp0_ac_table_sel. Default 0.
// [ 12] RW jpeg_comp0_dc_table_sel. Default 0.
// [10: 9] RW jpeg_comp0_cnt_max. Default 0.
// [ 8] RW jpeg_comp0_en. Set 1 if the scan will include component 0 (Y). Default 0.
// [ 1] W jpeg_coeff_init. Write 1 to this bit to initialize JPEG run length encoder.
// [ 0] RW jpeg_en. 0=Disable JPEG encoder; 1=Enable JPEG encoder. Default 0.
#define HCODEC_VLC_JPEG_CTRL (0x1d58)
#define P_HCODEC_VLC_JPEG_CTRL (volatile unsigned int *)((0x1d58 << 2) + 0xff620000)
// [ 13] RW jpeg_coeff_buf_overfl. Write this bit to 1 to clear overfl.
// [ 12] RW jpeg_coeff_buf_undrfl. Write this bit to 1 to clear undrfl.
// [ 11] R jpeg_coeff_buf_full.
// [ 10] R jpeg_coeff_buf_empty.
// [ 8: 0] R jpeg_coeff_buf_level.
#define HCODEC_VLC_JPEG_COEFF_BUF_STAT (0x1d59)
#define P_HCODEC_VLC_JPEG_COEFF_BUF_STAT (volatile unsigned int *)((0x1d59 << 2) + 0xff620000)
// [ 16] RW JPEG HUFFMAN table access mode. 0=Write; 1=Read. Default 1.
// [ 8: 0] RW JPEG HUFFMAN table addr. Default 0.
#define HCODEC_VLC_HUFFMAN_ADDR (0x1d5a)
#define P_HCODEC_VLC_HUFFMAN_ADDR (volatile unsigned int *)((0x1d5a << 2) + 0xff620000)
// [19: 0] RW JPEG HUFFMAN table data.
#define HCODEC_VLC_HUFFMAN_DATA (0x1d5b)
#define P_HCODEC_VLC_HUFFMAN_DATA (volatile unsigned int *)((0x1d5b << 2) + 0xff620000)
// bit[31:0] enc_mv_bits - including b8_mode and mvd
#define HCODEC_VLC_ENC_MV_BITS (0x1d5c)
#define P_HCODEC_VLC_ENC_MV_BITS (volatile unsigned int *)((0x1d5c << 2) + 0xff620000)
// bit[31:0] enc_coeff_bits - including cbp, token, trailing_sign, coeff_enc, h264_totzeros, h264_run
#define HCODEC_VLC_ENC_COEFF_BITS (0x1d5d)
#define P_HCODEC_VLC_ENC_COEFF_BITS (volatile unsigned int *)((0x1d5d << 2) + 0xff620000)
//
// Closing file: vlc_regs.h
//
//
// Reading file: qdct_regs.h
//
//========================================================================
// QDCT module level register offset
//========================================================================
// -----------------------------------------------
// CBUS_BASE: DOS_HCODEC_QDCT_CBUS_BASE = 0x0f
// -----------------------------------------------
// bit[31:28] - mb_info_state
#define HCODEC_QDCT_STATUS_CTRL (0x1f00)
#define P_HCODEC_QDCT_STATUS_CTRL (volatile unsigned int *)((0x1f00 << 2) + 0xff620000)
// bit[18] - enable_free_clk_sad_top
// bit[17] - enable_free_clk_ie_top
// bit[16] - enable_free_clk_ie_sub
// bit[15] - enable_free_clk_mc_out
// bit[14] - enable_free_clk_i_pred_top
// bit[13] - enable_free_clk_idct_top
// bit[12] - enable_free_clk_iq_top
// bit[11] - enable_free_clk_q_top
// bit[10] - enable_free_clk_dc_buff_8
// bit[9] - enable_free_clk_dct_top
// bit[8] - enable_free_clk_mb_info
// bit[7] - enable_free_clk_mb_buff
// bit[6] - enable_free_clk_reg
// bit[5] - ignore_1_include_2nd_half_c
// bit[4] - ignore_1_include_2nd_half
// bit[3] - ignore_t_p8x8
// bit[2] - not_ignore_dc
// bit[1] - ignore_small_lac_intra
// bit[0] - disable_fast_zero_block
#define HCODEC_QDCT_CONFIG (0x1f01)
#define P_HCODEC_QDCT_CONFIG (volatile unsigned int *)((0x1f01 << 2) + 0xff620000)
// bit[31] - ignore_lac_coeff_en
// bit[30:26] - ignore_lac_coeff_else
// bit[25:21] - ignore_lac_coeff_2
// bit[20:16] - ignore_lac_coeff_1
// bit[15] - ignore_cac_coeff_en
// bit[14:10] - ignore_cac_coeff_else
// bit[9:5] - ignore_cac_coeff_2
// bit[4:0] - ignore_cac_coeff_1
#define HCODEC_IGNORE_CONFIG (0x1f02)
#define P_HCODEC_IGNORE_CONFIG (volatile unsigned int *)((0x1f02 << 2) + 0xff620000)
// bit[31] - ignore_t_lac_coeff_en
// bit[30:26] - ignore_t_lac_coeff_else
// bit[25:21] - ignore_t_lac_coeff_2
// bit[20:16] - ignore_t_lac_coeff_1
// bit[15] - ignore_cdc_coeff_en
// bit[14] - ignore_t_lac_coeff_else_le_3
// bit[13] - ignore_t_lac_coeff_else_le_4
// bit[12] - ignore_cdc_only_when_empty_cac_inter
// bit[11] - ignore_cdc_only_when_one_empty_inter
// bit[10:9] - ignore_cdc_range_max_inter // 0-0, 1-1, 2,-2, 3-3
// bit[8:7] - ignore_cdc_abs_max_inter // 0-1, 1-2, 2,-3, 3-4
// bit[6] - reserved
// bit[5] - ignore_cdc_only_when_empty_cac_intra
// bit[4] - ignore_cdc_only_when_one_empty_intra
// bit[3:2] - ignore_cdc_range_max_intra // 0-0, 1-1, 2,-2, 3-3
// bit[1:0] - ignore_cdc_abs_max_intra // 0-1, 1-2, 2,-3, 3-4
#define HCODEC_IGNORE_CONFIG_2 (0x1f03)
#define P_HCODEC_IGNORE_CONFIG_2 (volatile unsigned int *)((0x1f03 << 2) + 0xff620000)
// --------------------------------------------
// MB DATA DDR Interface
// --------------------------------------------
#define HCODEC_QDCT_MB_START_PTR (0x1f10)
#define P_HCODEC_QDCT_MB_START_PTR (volatile unsigned int *)((0x1f10 << 2) + 0xff620000)
#define HCODEC_QDCT_MB_END_PTR (0x1f11)
#define P_HCODEC_QDCT_MB_END_PTR (volatile unsigned int *)((0x1f11 << 2) + 0xff620000)
#define HCODEC_QDCT_MB_WR_PTR (0x1f12)
#define P_HCODEC_QDCT_MB_WR_PTR (volatile unsigned int *)((0x1f12 << 2) + 0xff620000)
#define HCODEC_QDCT_MB_RD_PTR (0x1f13)
#define P_HCODEC_QDCT_MB_RD_PTR (volatile unsigned int *)((0x1f13 << 2) + 0xff620000)
#define HCODEC_QDCT_MB_LEVEL (0x1f14)
#define P_HCODEC_QDCT_MB_LEVEL (volatile unsigned int *)((0x1f14 << 2) + 0xff620000)
// bit [31] disable_mbxy_ie_save
// bit [30] no_wait_after_q_cdc
// bit [29] ie_start_int_enable
// bit [28] ignore_t_p8x8
// bit [27] zero_mc_out_null_non_skipped_mb
// bit [26] no_mc_out_null_non_skipped_mb
// bit [25] mc_out_even_skipped_mb
// bit [24] mc_out_wait_cbp_ready
// bit [23] mc_out_wait_mb_type_ready
// bit [22] i_pred_int_enable
// bit [21] intra_sat8_enable
// bit [20] ie_sub_enable
// bit [19] i_pred_enable
// bit [18] iq_enable
// bit [17] idct_enable
// bit [16] no_zero_coeff_mb
// bit [15] add_zero_coeff_block
// bit [14] mb_pause_enable
// bit [13] q_enable
// bit [12] dct_enable
// bit [11] ignore_magic_word
// bit [10] mb_info_en
// bit [9] mb_info_soft_reset
// bit [8] mb_always_ready Set to 1 to ignore mb_level blocking DDR read
// bit [7] mb_ready_for_transfer (Read Only)
// bit [6] data_ready_for_transfer (Read Only)
// bits [5:3] mb_endian Set MB Endian inside DDR memory
// bit [2] mb_read_busy Read Only - indicate DDR read busy
// bit [1] mb_read_en Set to 1 to enable reading data from DDR memory
// bit [0] mb_soft_reset Soft reset
#define HCODEC_QDCT_MB_CONTROL (0x1f15)
#define P_HCODEC_QDCT_MB_CONTROL (volatile unsigned int *)((0x1f15 << 2) + 0xff620000)
// bit 31 transfer_length 0 - 32x64 Bits per request, 1 - 16x64 Bits per request // default : 0
// bit 30 A_urgent // default : 0
// bit 29:24 A_brst_num // default : 0x3f
// bit 23 reserved
// bit 22 read_till_zero
// bit 21:16 A_id // default : 0x21
// bit 15:0 mb_level_hold // default : 0
#define HCODEC_QDCT_MB_MEM_CTL (0x1f16)
#define P_HCODEC_QDCT_MB_MEM_CTL (volatile unsigned int *)((0x1f16 << 2) + 0xff620000)
// bit [31:24] reserved
// bit [23:16] vb_buff_level -- Read only
// bit [15:8] vb_buff_wr_point -- RW
// bit [7:0] vb_buff_rd_point -- RW
#define HCODEC_QDCT_MB_BUFF (0x1f17)
#define P_HCODEC_QDCT_MB_BUFF (volatile unsigned int *)((0x1f17 << 2) + 0xff620000)
// bit [31:0] mb infor data begin magic word - default : 0xa55aaa55
#define HCODEC_QDCT_MB_MAGIC_WORD (0x1f18)
#define P_HCODEC_QDCT_MB_MAGIC_WORD (volatile unsigned int *)((0x1f18 << 2) + 0xff620000)
// Read Only Register
// bit[19] dct_ready_1
// bit[18] dct_ready_0
// bit[17] dct_rd_idx
// bit[16] dct_wr_idx
// bit[15] dct_srdy
// bit[14] dct_rrdy
// bit[13] Reserved
// bit[12:8] dct_block_number
// bit[7:4] dct_rw_addr
// bit[3:0] dct_status
#define HCODEC_QDCT_DCT_STATUS (0x1f19)
#define P_HCODEC_QDCT_DCT_STATUS (volatile unsigned int *)((0x1f19 << 2) + 0xff620000)
// bit[24:23] vlc_quant_count
// bit[22:16] vlc_delta_quant_data
// bit[15:10] vlc_quant_data
// bit[9:4] vlc_prev_quant_data
// bit[3:0] q_status
#define HCODEC_QDCT_Q_STATUS (0x1f1a)
#define P_HCODEC_QDCT_Q_STATUS (volatile unsigned int *)((0x1f1a << 2) + 0xff620000)
// bit[31:3] Reserved
// bit[2:0] picture_type
#define HCODEC_QDCT_PIC_INFO (0x1f1b)
#define P_HCODEC_QDCT_PIC_INFO (volatile unsigned int *)((0x1f1b << 2) + 0xff620000)
// bit[31:28] Reserved
// bit[27:22] I_pic_quant_c
// bit[21:16] I_pic_quant
// bit[15] reserved
// bit[14:12] quant_rem_c
// bit[11:8] quant_per_c
// bit[7] reserved
// bit[6:4] quant_rem
// bit[3:0] quant_per
#define HCODEC_QDCT_Q_QUANT_I (0x1f1c)
#define P_HCODEC_QDCT_Q_QUANT_I (volatile unsigned int *)((0x1f1c << 2) + 0xff620000)
// bit[31:28] Reserved
// bit[27:22] P_pic_quant_c
// bit[21:16] P_pic_quant
// bit[15] reserved
// bit[14:12] quant_rem_c
// bit[11:8] quant_per_c
// bit[7] reserved
// bit[6:4] quant_rem
// bit[3:0] quant_per
#define HCODEC_QDCT_Q_QUANT_P (0x1f1d)
#define P_HCODEC_QDCT_Q_QUANT_P (volatile unsigned int *)((0x1f1d << 2) + 0xff620000)
// bit[31] mb_info_pause
// bit[30:16] pause_mby
// bit[15:0] pause_mbx
#define HCODEC_QDCT_MB_PAUSE_CTL (0x1f1e)
#define P_HCODEC_QDCT_MB_PAUSE_CTL (volatile unsigned int *)((0x1f1e << 2) + 0xff620000)
// bit[31] top_control_ready_i_pred
// bit[30:28]top_dma_status
// bit[27] top_control_ready_ie
// bit[26:24]Reserved
// bit[23] ul_mb
// bit[22] right_mb
// bit[21] top_mb
// bit[20] left_mb
// bit[19:8] mb_x
// bit[7:6] i_pred_ref_idx_L
// bit[5:4] i_pred_ref_idx_UL
// bit[3:2] i_pred_ref_idx_U
// bit[1:0] i_pred_ref_idx_UR
#define HCODEC_QDCT_TOP_CONTROL (0x1f1f)
#define P_HCODEC_QDCT_TOP_CONTROL (volatile unsigned int *)((0x1f1f << 2) + 0xff620000)
// bit[31:0] top_base_addr - DDR Memory start address for save top Pixel
#define HCODEC_QDCT_TOP_BASE_MEM (0x1f20)
#define P_HCODEC_QDCT_TOP_BASE_MEM (volatile unsigned int *)((0x1f20 << 2) + 0xff620000)
// bit 15:13 Reserved
// bit 12 A_urgent // default : 0
// bit 11:6 A_brst_num // default : 0x3f
// bit 5:0 A_id // default : 0x22
#define HCODEC_QDCT_TOP_MEM_CTL (0x1f21)
#define P_HCODEC_QDCT_TOP_MEM_CTL (volatile unsigned int *)((0x1f21 << 2) + 0xff620000)
// bit [11:0] top_wrrsp_count
#define HCODEC_QDCT_TOP_WRRSP (0x1f22)
#define P_HCODEC_QDCT_TOP_WRRSP (volatile unsigned int *)((0x1f22 << 2) + 0xff620000)
// Bit[3:0] qdct_dbg_idx
#define HCODEC_QDCT_DBG_IDX (0x1f23)
#define P_HCODEC_QDCT_DBG_IDX (volatile unsigned int *)((0x1f23 << 2) + 0xff620000)
// Read Only
#define HCODEC_QDCT_DBG_READ (0x1f24)
#define P_HCODEC_QDCT_DBG_READ (volatile unsigned int *)((0x1f24 << 2) + 0xff620000)
// [19:18] RW jdct_inflow_ctrl. JPEG DCT input flow control. Default 0.
// 0=No halt;
// 1=DCT halts request at end of each 8x8 block;
// 2=DCT halts request at end of each MCU.
// [17:16] RW jpeg_coeff_last_sel. Default 0.
// Select at which point to finish processing, give update to AmRISC so it can control the next step.
// 0=Mark last coeff at the end of an 8x8 block;
// 1=Mark at the end of an MCU;
// 2=Mark at the end of a scan.
// [ 15] RW jpeg_quant_sel_comp2. 0=Comp2 select Quantization table 0; 1=Select table 1. Default 0.
// [ 14] RW jpeg_v_factor_comp2. Component 2's vertical sampling factor. Default 0.
// [ 13] RW jpeg_h_factor_comp2. Component 2's horizontal sampling factor. Default 0.
// [ 12] RW jpeg_comp2_en. Set 1 if the scan will include component 2 (Cr). Default 0.
// [ 11] RW jpeg_quant_sel_comp1. 0=Comp1 select Quantization table 0; 1=Select table 1. Default 0.
// [ 10] RW jpeg_v_factor_comp1. Component 1's vertical sampling factor. Default 0.
// [ 9] RW jpeg_h_factor_comp1. Component 1's horizontal sampling factor. Default 0.
// [ 8] RW jpeg_comp1_en. Set 1 if the scan will include component 1 (Cb). Default 0.
// [ 7] RW jpeg_quant_sel_comp0. 0=Comp0 select Quantization table 0; 1=Select table 1. Default 0.
// [ 6] RW jpeg_v_factor_comp0. Component 0's vertical sampling factor. Default 0.
// [ 5] RW jpeg_h_factor_comp0. Component 0's horizontal sampling factor. Default 0.
// [ 4] RW jpeg_comp0_en. Set 1 if the scan will include component 0 (Y). Default 0.
// [ 3: 1] RW jdct_intr_sel. JPEG DCT interrupt select. Default 0.
// 0=Disable intr;
// 1=Intr at end of each 8x8 block of DCT input;
// 2=Intr at end of each MCU of DCT input;
// 3=Intr at end of a scan of DCT input;
// 4=Intr at end of each 8x8 block of DCT output;
// 5=Intr at end of each MCU of DCT output;
// 6=Intr at end of a scan of DCT output.
// [ 0] RW jpeg_en. 0=Disable JPEG QDCT; 1=Enable JPEG QDCT. Default 0.
#define HCODEC_QDCT_JPEG_CTRL (0x1f25)
#define P_HCODEC_QDCT_JPEG_CTRL (volatile unsigned int *)((0x1f25 << 2) + 0xff620000)
// [29:16] RW jpeg_x_end. Picture X end. Default 0.
// [13: 0] RW jpeg_x_start. Picture X start. Default 0.
#define HCODEC_QDCT_JPEG_X_START_END (0x1f26)
#define P_HCODEC_QDCT_JPEG_X_START_END (volatile unsigned int *)((0x1f26 << 2) + 0xff620000)
// [29:16] RW jpeg_y_end. Picture Y end. Default 0.
// [13: 0] RW jpeg_y_start. Picture Y start. Default 0.
#define HCODEC_QDCT_JPEG_Y_START_END (0x1f27)
#define P_HCODEC_QDCT_JPEG_Y_START_END (volatile unsigned int *)((0x1f27 << 2) + 0xff620000)
// [ 8] RW JPEG QUANT table access mode. 0=Write; 1=Read. Default 1.
// [ 5: 0] RW JPEG QUANT table addr. Default 0.
#define HCODEC_QDCT_JPEG_QUANT_ADDR (0x1f28)
#define P_HCODEC_QDCT_JPEG_QUANT_ADDR (volatile unsigned int *)((0x1f28 << 2) + 0xff620000)
// [31: 0] RW JPEG QUANT table data.
#define HCODEC_QDCT_JPEG_QUANT_DATA (0x1f29)
#define P_HCODEC_QDCT_JPEG_QUANT_DATA (volatile unsigned int *)((0x1f29 << 2) + 0xff620000)
// [ 1] W resume_jdct.
// Write 1 to this bit will resume JPEG input engine when previously
// it is halted by QDCT_JPEG_CTRL.jdct_inflow_ctrl.
// [ 0] W jpeg_sof.
// Write 1 to this bit will start JPEG input engine.
#define HCODEC_QDCT_JPEG_SOF_RESUME (0x1f2a)
#define P_HCODEC_QDCT_JPEG_SOF_RESUME (volatile unsigned int *)((0x1f2a << 2) + 0xff620000)
// [31:30] R dct_st. jdct_ctrl state. 0=IDLE; 1=WAIT; 2=DCT_REQ.
// [29:28] R mfdin_comp. Current component at pixel request to MFDIN.
// [27:14] R mfdin_y. Current Y at pixel request to MFDIN.
// [13: 0] R mfdin_x. Current X at pixel request to MFDIN.
#define HCODEC_QDCT_JPEG_DCT_STATUS0 (0x1f2b)
#define P_HCODEC_QDCT_JPEG_DCT_STATUS0 (volatile unsigned int *)((0x1f2b << 2) + 0xff620000)
// [15:12] R JPEG Quant read MEM select.
// [11: 8] R JPEG DCT2 write MEM select.
// [ 7: 4] R JPEG DCT2 read MEM select.
// [ 3: 0] R JPEG DCT1 write MEM select.
#define HCODEC_QDCT_JPEG_DCT_STATUS1 (0x1f2c)
#define P_HCODEC_QDCT_JPEG_DCT_STATUS1 (volatile unsigned int *)((0x1f2c << 2) + 0xff620000)
// [28:16] RW jdct_coeff1. Default 13'h1D90; // 7568 = 4096 * sqrt(2) * (cos(Pi/8) + sin(Pi/8)) // 7569
// [12: 0] RW jdct_coeff0. Default 13'h16A1; // 5793 = 4096 * sqrt(2)
#define HCODEC_QDCT_JPEG_DCT_COEFF01 (0x1f2d)
#define P_HCODEC_QDCT_JPEG_DCT_COEFF01 (volatile unsigned int *)((0x1f2d << 2) + 0xff620000)
// [28:16] RW jdct_coeff3. Default 13'h0C3F; // 3135 = 4096 * sqrt(2) * (cos(Pi/8) - sin(Pi/8))
// [12: 0] RW jdct_coeff2. Default 13'h08A9; // 2217 = 4096 * sqrt(2) * sin(Pi/8) // 2215
#define HCODEC_QDCT_JPEG_DCT_COEFF23 (0x1f2e)
#define P_HCODEC_QDCT_JPEG_DCT_COEFF23 (volatile unsigned int *)((0x1f2e << 2) + 0xff620000)
// [28:16] RW jdct_coeff5. Default 13'h046A; // 1130 = 4096 * (cos(3Pi/16) - sin(3Pi/16))
// [12: 0] RW jdct_coeff4. Default 13'h1631; // 5681 = 4096 * (cos(3Pi/16) + sin(3Pi/16)) // 5682
#define HCODEC_QDCT_JPEG_DCT_COEFF45 (0x1f2f)
#define P_HCODEC_QDCT_JPEG_DCT_COEFF45 (volatile unsigned int *)((0x1f2f << 2) + 0xff620000)
// [28:16] RW jdct_coeff7. Default 13'h0C92; // 3218 = 4096 * (cos(Pi/16) - sin(Pi/16))
// [12: 0] RW jdct_coeff6. Default 13'h12D0; // 4816 = 4096 * (cos(Pi/16) + sin(Pi/16))
#define HCODEC_QDCT_JPEG_DCT_COEFF67 (0x1f30)
#define P_HCODEC_QDCT_JPEG_DCT_COEFF67 (volatile unsigned int *)((0x1f30 << 2) + 0xff620000)
// [28:16] RW jdct_coeff9. Default 13'h0FB1; // 4017 = 4096 * cos(Pi/16)
// [12: 0] RW jdct_coeff8. Default 13'h0D4E; // 3406 = 4096 * cos(3Pi/16)
#define HCODEC_QDCT_JPEG_DCT_COEFF89 (0x1f31)
#define P_HCODEC_QDCT_JPEG_DCT_COEFF89 (volatile unsigned int *)((0x1f31 << 2) + 0xff620000)
#define HCODEC_QDCT_I_PRED_REF_WR_IDX (0x1f32)
#define P_HCODEC_QDCT_I_PRED_REF_WR_IDX (volatile unsigned int *)((0x1f32 << 2) + 0xff620000)
#define HCODEC_QDCT_I_PRED_REF_WR_DATA (0x1f33)
#define P_HCODEC_QDCT_I_PRED_REF_WR_DATA (volatile unsigned int *)((0x1f33 << 2) + 0xff620000)
// bit[29] mb_info_latch_no_I16_pred_mode
// bit[28] ie_dma_mbxy_use_i_pred
// bit[27] ie_dma_read_write_use_ip_idx
// bit[26] ie_start_use_top_dma_count
// bit[25] i_pred_top_dma_rd_mbbot
// bit[24] i_pred_top_dma_wr_disable
// bit[23] i_pred_mix
// bit[22] me_ab_rd_when_intra_in_p
// bit[21] force_mb_skip_run_when_intra
// bit[20] mc_out_mixed_type
// bit[19] ie_start_when_quant_not_full
// bit[18] mb_info_state_mix
// bit[17] mb_type_use_mix_result
// bit[16] me_cb_ie_read_enable
// bit[15] ie_cur_data_from_me
// bit[14] rem_per_use_table
// bit[13] q_latch_int_enable
// bit[12] q_use_table
// bit[11] q_start_wait
// bit[10] LUMA_16_LEFT_use_cur
// bit[9] DC_16_LEFT_SUM_use_cur
// bit[8] c_ref_ie_sel_cur
// bit[7] c_ipred_perfect_mode
// bit[6] ref_ie_ul_sel 0-old, 1-use next_set
// bit[5] mb_type_use_ie_result
// bit[4] detect_I16_from_I4
// bit[3] ie_not_wait_ref_busy
// bit[2] ie_I16_enable
// bit[1:0] ie_done_sel (0, 1, 2, -1)
#define HCODEC_QDCT_ADV_CONFIG (0x1f34)
#define P_HCODEC_QDCT_ADV_CONFIG (volatile unsigned int *)((0x1f34 << 2) + 0xff620000)
// bit [31:16] I16x16_weight
// bit [15:0] I4x4_weight
#define HCODEC_IE_WEIGHT (0x1f35)
#define P_HCODEC_IE_WEIGHT (volatile unsigned int *)((0x1f35 << 2) + 0xff620000)
// bit [31] reserved
// bit [30] q_I16MB
// bit [29] reserved
// bit [28] reserved
// bit [27:23] quant_table_addr I4MB:[0,7], I16MB:[8:15], INTER:[16:23], Reserved:[24:31]
// bit [22] quant_table_addr_update(when notupdate_rem_per) (read is arb_result : q_intra)
// bit [21:19] quant_rem_c
// bit [18:16] quant_rem_y
// bit [15:12] quant_per_c
// bit [11:8] quant_per_y
// bit [7:2] quant
// bit [1] update_rem_per
// bit [0] clear_wait_status
#define HCODEC_Q_QUANT_CONTROL (0x1f36)
#define P_HCODEC_Q_QUANT_CONTROL (volatile unsigned int *)((0x1f36 << 2) + 0xff620000)
#define HCODEC_MBBOT_EVEN_ADDR (0x1f37)
#define P_HCODEC_MBBOT_EVEN_ADDR (volatile unsigned int *)((0x1f37 << 2) + 0xff620000)
#define HCODEC_MBBOT_ODD_ADDR (0x1f38)
#define P_HCODEC_MBBOT_ODD_ADDR (volatile unsigned int *)((0x1f38 << 2) + 0xff620000)
// bit [29:24] quant_table_data_3
// bit [21:16] quant_table_data_2
// bit [13:8] quant_table_data_1
// bit [5:0] quant_table_data_0
#define HCODEC_QUANT_TABLE_DATA (0x1f39)
#define P_HCODEC_QUANT_TABLE_DATA (volatile unsigned int *)((0x1f39 << 2) + 0xff620000)
// bit [31:16] ie_sad_offset_I16
// bit [15:0] ie_sad_offset_I4
#define HCODEC_SAD_CONTROL_0 (0x1f3a)
#define P_HCODEC_SAD_CONTROL_0 (volatile unsigned int *)((0x1f3a << 2) + 0xff620000)
// bit [31] sad_soft_reset
// bit [30:27] reserved
// bit [26:24] ie_sad_shift_I16
// bit [22:20] ie_sad_shift_I4
// bit [18:16] me_sad_shift_INTER
// bit [15:0] me_sad_offset_INTER
#define HCODEC_SAD_CONTROL_1 (0x1f3b)
#define P_HCODEC_SAD_CONTROL_1 (volatile unsigned int *)((0x1f3b << 2) + 0xff620000)
// bit [31] vlc_quant_rd_ptr
// bit [30] vlc_quant_rd_ptr_update
// bit [29] vlc_quant_wr_ptr
// bit [28] vlc_quant_wr_ptr_update
// bit [27:26] reserved
// bit [25:19] vlc_delta_quant_1
// bit [18:13] vlc_quant_1
// bit [12:6] vlc_delta_quant_0
// bit [5:0] vlc_quant_0
#define HCODEC_QDCT_VLC_QUANT_CTL_0 (0x1f3c)
#define P_HCODEC_QDCT_VLC_QUANT_CTL_0 (volatile unsigned int *)((0x1f3c << 2) + 0xff620000)
// bit [31:30] me_sad_rd_idx
// bit [29] me_sad_rd_idx_update
// bit [28:27] me_sad_wr_idx
// bit [26] me_sad_wr_idx_update
// bit [25:24] ie_sad_rd_idx
// bit [23] ie_sad_rd_idx_update
// bit [22:21] ie_sad_wr_idx
// bit [20] ie_sad_wr_idx_update
// bit [19:12] Reserved
// bit [11:6] vlc_max_delta_q_neg
// bit [5:0] vlc_max_delta_q_pos
#define HCODEC_QDCT_VLC_QUANT_CTL_1 (0x1f3d)
#define P_HCODEC_QDCT_VLC_QUANT_CTL_1 (volatile unsigned int *)((0x1f3d << 2) + 0xff620000)
// bit[4] jdct_int
// bit[3] quant_latch
// bit[2] me_done
// bit[1] ie_start
// bit[0] i_pred_start
#define HCODEC_QDCT_INT_STATUS (0x1f3e)
#define P_HCODEC_QDCT_INT_STATUS (volatile unsigned int *)((0x1f3e << 2) + 0xff620000)
// bit[3] mix_i_pred_wait_left_en
// bit[2:0] mc_pending_mb_count
#define HCODEC_QDCT_MIX_I_PRED_STATUS (0x1f3f)
#define P_HCODEC_QDCT_MIX_I_PRED_STATUS (volatile unsigned int *)((0x1f3f << 2) + 0xff620000)
// IE/ME share same cbus_base as QDCT
//
// bit[31] active_ur_block
// bit[30] active_ul_block
// bit[21] disable_HENC_V_PRED_16
// bit[20] disable_HENC_H_PRED_16
// bit[19] disable_HENC_DC_PRED_16
// bit[18] disable_HENC_HENC_HOR_UP_PRED
// bit[17] disable_HENC_VERT_LEFT_PRED
// bit[16] disable_HENC_HENC_HOR_DOWN_PRED
// bit[15] disable_HENC_VERT_RIGHT_PRED
// bit[14] disable_HENC_DIAG_DOWN_RIGHT_PRED
// bit[13] disable_HENC_DIAG_DOWN_LEFT_PRED
// bit[12] disable_HENC_DC_PRED
// bit[11] disable_HENC_HOR_PRED
// bit[10] disable_HENC_VERT_PRED
// bit[9] ie_c_wait_ie_pause
// bit[8:4] max_ie_result_buff_count
// bit[3] ie_wait_for_ie_result // use for (max_ie_result_buff_count == 0) to wait every block
// bit[2] reserved
// bit[1] ie_enable
// bit[0] ie_soft_reset
#define HCODEC_IE_CONTROL (0x1f40)
#define P_HCODEC_IE_CONTROL (volatile unsigned int *)((0x1f40 << 2) + 0xff620000)
// bit[31:12] Reserved
// bit[11:0] mb_y
#define HCODEC_IE_MB_POSITION (0x1f41)
#define P_HCODEC_IE_MB_POSITION (volatile unsigned int *)((0x1f41 << 2) + 0xff620000)
// bit[31:16] me_skip_run
// bit[15:8] reserved
// bit [7:4] me_b8_mode
// bit [3:0] ie_me_mb_type
#define HCODEC_IE_ME_MB_INFO (0x1f42)
#define P_HCODEC_IE_ME_MB_INFO (volatile unsigned int *)((0x1f42 << 2) + 0xff620000)
// bit[3] ie_result_buff_enable
// bit[2] ie_result_buff_soft_reset
// bit[1] sad_enable
// bit[0] ie_sad_soft_reset
#define HCODEC_SAD_CONTROL (0x1f43)
#define P_HCODEC_SAD_CONTROL (volatile unsigned int *)((0x1f43 << 2) + 0xff620000)
// bit[31:16] - ie_result_buff_count - read only
// bit[14:12] -current_ie_result (pred_mode) - read only
// bit[11] top_control_data_buff_wr_ptr - rd/wr
// bit[10] top_control_data_buff_rd_ptr - rd/wr
// bit[9:5] ie_result_buff_wr_ptr - rd/wr
// bit[4:0] ie_result_buff_rd_ptr - rd/wr
#define HCODEC_IE_RESULT_BUFFER (0x1f44)
#define P_HCODEC_IE_RESULT_BUFFER (volatile unsigned int *)((0x1f44 << 2) + 0xff620000)
// bit[63:0] ie_i4_pred_mode
#define HCODEC_IE_I4_PRED_MODE_HI (0x1f45)
#define P_HCODEC_IE_I4_PRED_MODE_HI (volatile unsigned int *)((0x1f45 << 2) + 0xff620000)
#define HCODEC_IE_I4_PRED_MODE_LO (0x1f46)
#define P_HCODEC_IE_I4_PRED_MODE_LO (volatile unsigned int *)((0x1f46 << 2) + 0xff620000)
// bit [31:9] reserved
// bit [8:4] i_pred_block_number
// bit [3:0] ie_c_pred_mode
#define HCODEC_IE_C_PRED_MODE (0x1f47)
#define P_HCODEC_IE_C_PRED_MODE (volatile unsigned int *)((0x1f47 << 2) + 0xff620000)
// 31:16 - Left, 0-select ie_pixel, 1-select mc_data_out
// 15:0 - Top, 0-select ie_pixel, 1-select mc_data_out
#define HCODEC_IE_CUR_REF_SEL (0x1f48)
#define P_HCODEC_IE_CUR_REF_SEL (volatile unsigned int *)((0x1f48 << 2) + 0xff620000)
// bit[31] enable_f_skip_1_step_3
// bit[30] enable_f_skip_1_step_2
// bit[29] enable_f_skip_1_step_1
// bit[28] step_3_enable
// bit[27] step_2_sub_pixel
// bit[26] always_f_skip_step_3
// bit[25] always_f_skip_step_2
// bit[24] always_f_skip_step_1
// bit[23] half_pixel_only
// bit[22:13] reserved
// bit[12] adv_mv_enable
// bit[11] sad_short_valid
// bit[10:9] mv_flexable_ctl 00:0x40, 01:0x80, 10:0xc0, 11 : 0x100
// bit[8] no_md_ab_rd
// bit[7] use_dct_state
// bit[6] enable_free_clk_me_ctl
// bit[5] enable_free_clk_me_ab
// bit[4] enable_free_clk_me_cb
// bit[3] reserved
// bit[2] me_done_int_enable
// bit[1] me_enable
// bit[0] me_soft_reset
#define HCODEC_ME_CONTROL (0x1f49)
#define P_HCODEC_ME_CONTROL (volatile unsigned int *)((0x1f49 << 2) + 0xff620000)
// bit[31:28] Reserved
// bit[27:16] me_start_mby
// bit[15:12] Reserved
// bit[11:0] me_start_mbx
#define HCODEC_ME_START_POSITION (0x1f4a)
#define P_HCODEC_ME_START_POSITION (volatile unsigned int *)((0x1f4a << 2) + 0xff620000)
// bit [31:28] me_status - Read only
// bit [27:24] me_cb_status // current buffer
// bit [23:20] me_ab_status // anc buffer
// bit [19] Reserved
// bit [18:16] me_ab_wr_ptr // read only
// bit [15:4] me_last_mbx
// bit [3:1] me_ab_rd_ptr // read only
// bit [0] me_action
#define HCODEC_ME_STATUS (0x1f4b)
#define P_HCODEC_ME_STATUS (volatile unsigned int *)((0x1f4b << 2) + 0xff620000)
// all Read-only
// bit [31:28] Reserved
// bit [27:16] me_ab_mbx
// bit [15:14] me_cb_wr_ptr
// bit [13:12] me_cb_rd_ptr
// bit [11:0] me_cb_mbx
#define HCODEC_ME_DEBUG (0x1f4c)
#define P_HCODEC_ME_DEBUG (volatile unsigned int *)((0x1f4c << 2) + 0xff620000)
// bit[29:24] step_3_skip_line
// bit[23:18] step_2_skip_line
// bit[17:12] step_1_skip_line
// bit[11:6] step_0_skip_line
// bit[5:0] read_skip_line
#define HCODEC_ME_SKIP_LINE (0x1f4d)
#define P_HCODEC_ME_SKIP_LINE (volatile unsigned int *)((0x1f4d << 2) + 0xff620000)
// bit 15:13 Reserved
// bit 12 A_urgent // default : 0
// bit 11:6 A_brst_num // default : 0x3f
// bit 5:0 A_id // default : 0x23
#define HCODEC_ME_AB_MEM_CTL (0x1f4e)
#define P_HCODEC_ME_AB_MEM_CTL (volatile unsigned int *)((0x1f4e << 2) + 0xff620000)
// bit[31:24] anc_pic_canvas
// bit[23:12] max_me_mby_num
// bit[11:0] max_me_mbx_num
#define HCODEC_ME_PIC_INFO (0x1f4f)
#define P_HCODEC_ME_PIC_INFO (volatile unsigned int *)((0x1f4f << 2) + 0xff620000)
// bit [23:12] me_sad_enough_1
// bit [11:0] me_sad_enough_0
#define HCODEC_ME_SAD_ENOUGH_01 (0x1f50)
#define P_HCODEC_ME_SAD_ENOUGH_01 (volatile unsigned int *)((0x1f50 << 2) + 0xff620000)
// bit [25:12] adv_mv_8x8_enough
// bit [11:0] me_sad_enough_2
#define HCODEC_ME_SAD_ENOUGH_23 (0x1f51)
#define P_HCODEC_ME_SAD_ENOUGH_23 (volatile unsigned int *)((0x1f51 << 2) + 0xff620000)
// bit [21:10] me_step0_big_sad
// bit [9:5] me_step0_close_mv_y
// bit [4:0] me_step0_close_mv_x
#define HCODEC_ME_STEP0_CLOSE_MV (0x1f52)
#define P_HCODEC_ME_STEP0_CLOSE_MV (volatile unsigned int *)((0x1f52 << 2) + 0xff620000)
// bit[31:24] force_skip_sad_3
// bit[23:16] force_skip_sad_2
// bit[15:08] force_skip_sad_1
// bit[07:00] force_skip_sad_0
#define HCODEC_ME_F_SKIP_SAD (0x1f53)
#define P_HCODEC_ME_F_SKIP_SAD (volatile unsigned int *)((0x1f53 << 2) + 0xff620000)
// bit[31:24] force_skip_weight_3
// bit[23:16] force_skip_weight_2
// bit[15:08] force_skip_weight_1
// bit[07:00] force_skip_weight_0
#define HCODEC_ME_F_SKIP_WEIGHT (0x1f54)
#define P_HCODEC_ME_F_SKIP_WEIGHT (volatile unsigned int *)((0x1f54 << 2) + 0xff620000)
// Merge when (
// (flex & me_merge_flex_en) |
// (big_sad & me_merge_sad_en)|
// ((~me_merge_flex_en)&(~me_merge_sad_en))
// ) &
// ( small_mv_diff |(~me_merge_small_mv_en))
// & (me_merge_flex_en | me_merge_sad_en | me_merge_small_mv_en)
// bit[31] me_merge_mv_en_16
// bit[30] me_merge_small_mv_en_16
// bit[29] me_merge_flex_en_16
// bit[28] me_merge_sad_en_16
// bit[27] me_merge_mv_en_8
// bit[26] me_merge_small_mv_en_8
// bit[25] me_merge_flex_en_8
// bit[24] me_merge_sad_en_8
// bit[23:18] me_merge_mv_diff_16
// bit[17:12] me_merge_mv_diff_8
// bit[11:0] me_merge_min_sad
#define HCODEC_ME_MV_MERGE_CTL (0x1f55)
#define P_HCODEC_ME_MV_MERGE_CTL (volatile unsigned int *)((0x1f55 << 2) + 0xff620000)
// bit[31:24] mv_step_weight_1
// bit[23:16] mv_pre_weight_1
// bit [15:0] mv_step_weight_0
// bit[7:0] mv_pre_weight_0
#define HCODEC_ME_MV_WEIGHT_01 (0x1f56)
#define P_HCODEC_ME_MV_WEIGHT_01 (volatile unsigned int *)((0x1f56 << 2) + 0xff620000)
// bit[31:24] mv_step_weight_3 (mv_step_weight_1_2nd)
// bit[23:16] mv_pre_weight_3 (mv_pre_weight_1_2nd)
// bit[15:8] mv_step_weight_2
// bit[7:0] mv_pre_weight_2
#define HCODEC_ME_MV_WEIGHT_23 (0x1f57)
#define P_HCODEC_ME_MV_WEIGHT_23 (volatile unsigned int *)((0x1f57 << 2) + 0xff620000)
// bit[31:24] me_sad_range_inc_3
// bit[23:16] me_sad_range_inc_2
// bit[15:8] me_sad_range_inc_1
// bit[7:0] me_sad_range_inc_0
#define HCODEC_ME_SAD_RANGE_INC (0x1f58)
#define P_HCODEC_ME_SAD_RANGE_INC (volatile unsigned int *)((0x1f58 << 2) + 0xff620000)
// bit[31:19] reserved
// bit[18] sub_relative_any_1_en
// bit[17] sub_relative_any_2_en
// bit[16] sub_relative_any_3_en
// bit[15] sub_relative_any_4_en
// bit[14] sub_relative_any_h_en
// bit[13] sub_make_non_flex_fix
// bit[12] sub_make_big_non_flex_fix
// bit[11:8] sub_normal_mv_diff_16
// bit[7:4] sub_normal_mv_diff_8
// bit[3:2] Reserved
// bit[1] sub_merge_enable_16
// bit[0] sub_merge_enable_8
#define HCODEC_ME_SUB_MERGE_CTL (0x1f59)
#define P_HCODEC_ME_SUB_MERGE_CTL (volatile unsigned int *)((0x1f59 << 2) + 0xff620000)
// bit[31:28] sub_ref_mv_diff_near
// bit[27:24] sub_ref_mv_diff_near_flex
// bit[23:20] sub_ref_mv_diff
// bit[19:16] sub_ref_mv_diff_flex
// bit[15:8] sub_ref_mv_near_weight
// bit[7:0] sub_ref_mv_weight
#define HCODEC_ME_SUB_REF_MV_CTL (0x1f5a)
#define P_HCODEC_ME_SUB_REF_MV_CTL (volatile unsigned int *)((0x1f5a << 2) + 0xff620000)
// bit[31:24] sub_weight_max_sad
// bit[23:16] sub_any_range_sad
// bit[15:8] sub_any_min_sad
// bit[7:0] sub_any_max_sad
#define HCODEC_ME_SUB_ANY_WEIGHT_SAD (0x1f5b)
#define P_HCODEC_ME_SUB_ANY_WEIGHT_SAD (volatile unsigned int *)((0x1f5b << 2) + 0xff620000)
// bit[31:24] sub_fix_sad
// bit[23:16] sub_fix_diff_sad
// bit[15:8] sub_sad_flex_adj
// bit[7:0] sub_big_non_flex_fix_sad
#define HCODEC_ME_SUB_FIX_SAD (0x1f5c)
#define P_HCODEC_ME_SUB_FIX_SAD (volatile unsigned int *)((0x1f5c << 2) + 0xff620000)
// bit[31:24] sub_fix_min_sad
// bit[23:16] sub_fix_min_diff_sad
// bit[15:8] sub_fix_min_sad_2
// bit[7:0] sub_fix_min_diff_sad_2
#define HCODEC_ME_SUB_FIX_MIN_SAD (0x1f5d)
#define P_HCODEC_ME_SUB_FIX_MIN_SAD (volatile unsigned int *)((0x1f5d << 2) + 0xff620000)
// bit[31:24] sub_snap_to_ref_max_sad
// bit[23] sub_snap_to_ref_non_flex
// bit[22:16] sub_snap_to_ref_mv_diff
// bit[15:4] sub_glitch_mv_sad
// bit[3:0] sub_glitch_mv_diff
#define HCODEC_ME_SUB_SNAP_GLITCH (0x1f5e)
#define P_HCODEC_ME_SUB_SNAP_GLITCH (volatile unsigned int *)((0x1f5e << 2) + 0xff620000)
// bit[31:20] sad_act_limit
// bit[19:8] s_a_any_sad
// bit[7] Reserved
// bit[6:5] sub_merge_method
// bit[4] use_sub_act_result
// bit[3] s_a_rnd
// bit[2] Reserved
// bit[1] sub_act_en_16
// bit[0] sub_act_en
#define HCODEC_ME_SUB_ACT_CTL (0x1f5f)
#define P_HCODEC_ME_SUB_ACT_CTL (volatile unsigned int *)((0x1f5f << 2) + 0xff620000)
// bit[31:16] reserved
// bit[15:0] me_weight
#define HCODEC_ME_WEIGHT (0x1f60)
#define P_HCODEC_ME_WEIGHT (volatile unsigned int *)((0x1f60 << 2) + 0xff620000)
// bit[31] ready_update
// bit[30] data_update
// bit[29:28] reserved
// bit[27:22] me_quant_0
// bit[21] ie_sad_ready_0
// bit[20:18] Reserved
// bit[17:16] me_sad_mv_type_0
// bit[15:0] me_sad_0
#define HCODEC_ME_SAD_0 (0x1f61)
#define P_HCODEC_ME_SAD_0 (volatile unsigned int *)((0x1f61 << 2) + 0xff620000)
// bit[31] ready_update
// bit[30] data_update
// bit[29:28] reserved
// bit[27:22] me_quant_1
// bit[21] me_sad_ready_1
// bit[20:18] Reserved
// bit[17:16] me_sad_mv_type_1
// bit[15:0] me_sad_1
#define HCODEC_ME_SAD_1 (0x1f62)
#define P_HCODEC_ME_SAD_1 (volatile unsigned int *)((0x1f62 << 2) + 0xff620000)
// bit[31] ready_update
// bit[30] data_update
// bit[29:28] reserved
// bit[27:22] me_quant_2
// bit[21] me_sad_ready_2
// bit[20:18] Reserved
// bit[17:16] me_sad_mv_type_2
// bit[15:0] me_sad_2
#define HCODEC_ME_SAD_2 (0x1f63)
#define P_HCODEC_ME_SAD_2 (volatile unsigned int *)((0x1f63 << 2) + 0xff620000)
// bit[31] ready_update
// bit[30] data_update
// bit[29:28] reserved
// bit[27:22] me_quant_3
// bit[21] me_sad_ready_3
// bit[20:18] Reserved
// bit[17:16] me_sad_mv_type_3
// bit[15:0] me_sad_3
#define HCODEC_ME_SAD_3 (0x1f64)
#define P_HCODEC_ME_SAD_3 (volatile unsigned int *)((0x1f64 << 2) + 0xff620000)
// bit[31] ready_update
// bit[30] data_update
// bit[29:28] reserved
// bit[27:22] ie_quant_0
// bit[21] ie_sad_ready_0
// bit[20] I4/I16 (0-I4MB, 1-I16MB)
// bit[19:0] ie_sad_0
#define HCODEC_IE_SAD_0 (0x1f65)
#define P_HCODEC_IE_SAD_0 (volatile unsigned int *)((0x1f65 << 2) + 0xff620000)
// bit[31] ready_update
// bit[30] data_update
// bit[29:28] reserved
// bit[27:22] ie_quant_1
// bit[21] ie_sad_ready_1
// bit[20] I4/I16 (0-I4MB, 1-I16MB)
// bit[19:0] ie_sad_1
#define HCODEC_IE_SAD_1 (0x1f66)
#define P_HCODEC_IE_SAD_1 (volatile unsigned int *)((0x1f66 << 2) + 0xff620000)
// bit[31] ready_update
// bit[30] data_update
// bit[29:28] reserved
// bit[27:22] ie_quant_2
// bit[21] ie_sad_ready_2
// bit[20] I4/I16 (0-I4MB, 1-I16MB)
// bit[19:0] ie_sad_2
#define HCODEC_IE_SAD_2 (0x1f67)
#define P_HCODEC_IE_SAD_2 (volatile unsigned int *)((0x1f67 << 2) + 0xff620000)
// bit[31] ready_update
// bit[30] data_update
// bit[29:28] reserved
// bit[27:22] ie_quant_3
// bit[21] ie_sad_ready_3
// bit[20] I4/I16 (0-I4MB, 1-I16MB)
// bit[19:0] ie_sad_3
#define HCODEC_IE_SAD_3 (0x1f68)
#define P_HCODEC_IE_SAD_3 (volatile unsigned int *)((0x1f68 << 2) + 0xff620000)
// bit[31] enable_large_diff_16x8
// bit[30] enable_large_diff_8x16
// bit[29:16] adv_mv_8x8_weight
// bit[15:14] reserved
// bit[13:0] adv_mv_4x4x4_weight
#define HCODEC_ADV_MV_CTL0 (0x1f69)
#define P_HCODEC_ADV_MV_CTL0 (volatile unsigned int *)((0x1f69 << 2) + 0xff620000)
// bit[31:16] adv_mv_16x16_weight
// bit[15] enable_large_diff_16x16
// bit[14:0] adv_mv_16_8_weight
#define HCODEC_ADV_MV_CTL1 (0x1f6a)
#define P_HCODEC_ADV_MV_CTL1 (volatile unsigned int *)((0x1f6a << 2) + 0xff620000)
#define HCODEC_ADV_MV_CTL2 (0x1f6b)
#define P_HCODEC_ADV_MV_CTL2 (volatile unsigned int *)((0x1f6b << 2) + 0xff620000)
// bit[31] v3_skip_enable
// bit[30] v3_step_1_weight_enable // for step1, will only use pre_weight for block0, only step_weight for block 1,2,3
// bit[29] v3_l2_skip_only_use_l2_sad // set to 1 may allow l1 maybe not skip
// bit[28] v3_mv_sad_weight_enable
// bit[27] v3_ipred_type_enable
// bit[25:12] force_skip_sad_1
// bit[11:0] force_skip_sad_0
#define HCODEC_V3_SKIP_CONTROL (0x1f6c)
#define P_HCODEC_V3_SKIP_CONTROL (volatile unsigned int *)((0x1f6c << 2) + 0xff620000)
// bit[18:16] top_ipred_type_count
// bit[15:14] Reserved
// bit[13:12] top_ipred_type_rd_idx
// bit[11:10] top_ipred_type_wr_idx
// bit[9] left_ipred_type_ready
// bit[8] top_ipred_type_ready
// bit[7:6] left_mv_idx
// bit[5:4] top_mv_idx
// bit[3] - left_mv_ready
// bit[2:0] top_mv_ready
#define HCODEC_V3_TOP_LEFT_CTL (0x1f6d)
#define P_HCODEC_V3_TOP_LEFT_CTL (volatile unsigned int *)((0x1f6d << 2) + 0xff620000)
#define HCODEC_V3_TOP_MV (0x1f6e)
#define P_HCODEC_V3_TOP_MV (volatile unsigned int *)((0x1f6e << 2) + 0xff620000)
#define HCODEC_V3_LEFT_MV (0x1f6f)
#define P_HCODEC_V3_LEFT_MV (volatile unsigned int *)((0x1f6f << 2) + 0xff620000)
// bit[31:30] reserved
// bit[29:16] v3_skip_weight_1
// bit[15:12] reserved
// bit[11:0] v3_skip_weight_0
#define HCODEC_V3_SKIP_WEIGHT (0x1f70)
#define P_HCODEC_V3_SKIP_WEIGHT (volatile unsigned int *)((0x1f70 << 2) + 0xff620000)
// bit[31:28] reserved
// bit[27:16] v3_l1_f_skip_max_sad
// bit[15:12] reserved
// bit[11:0] v3_l1_skip_max_sad
#define HCODEC_V3_L1_SKIP_MAX_SAD (0x1f71)
#define P_HCODEC_V3_L1_SKIP_MAX_SAD (volatile unsigned int *)((0x1f71 << 2) + 0xff620000)
// bit[31:16] force_skip_sad_2
// bit[15:0] v3_skip_weight_2
#define HCODEC_V3_L2_SKIP_WEIGHT (0x1f72)
#define P_HCODEC_V3_L2_SKIP_WEIGHT (volatile unsigned int *)((0x1f72 << 2) + 0xff620000)
// bit[21:16] v3_mv_sad_table_addr 0-15 table_step_0
// bit[11:0] v3_mv_sad
#define HCODEC_V3_MV_SAD_TABLE (0x1f73)
#define P_HCODEC_V3_MV_SAD_TABLE (volatile unsigned int *)((0x1f73 << 2) + 0xff620000)
// [31:16] v3_ie_f_zero_sad_i16
// [15:0] v3_ie_f_zero_sad_i4
#define HCODEC_V3_F_ZERO_CTL_0 (0x1f74)
#define P_HCODEC_V3_F_ZERO_CTL_0 (volatile unsigned int *)((0x1f74 << 2) + 0xff620000)
// [25] v3_no_ver_when_top_zero_en
// [24] v3_no_hor_when_left_zero_en
// [23:16] v3_max_I16_H_num // 0 means no break
// [15:0] v3_me_f_zero_sad
#define HCODEC_V3_F_ZERO_CTL_1 (0x1f75)
#define P_HCODEC_V3_F_ZERO_CTL_1 (volatile unsigned int *)((0x1f75 << 2) + 0xff620000)
#define HCODEC_V3_TOP_INTRA_INFO (0x1f76)
#define P_HCODEC_V3_TOP_INTRA_INFO (volatile unsigned int *)((0x1f76 << 2) + 0xff620000)
#define HCODEC_V3_LEFT_INTRA_INFO (0x1f77)
#define P_HCODEC_V3_LEFT_INTRA_INFO (volatile unsigned int *)((0x1f77 << 2) + 0xff620000)
// [31:24] C_ipred_weight_H
// [23:16] C_ipred_weight_V
// [15:8] I4_ipred_weight_else
// [7:0] I4_ipred_weight_most
#define HCODEC_V3_IPRED_TYPE_WEIGHT_0 (0x1f78)
#define P_HCODEC_V3_IPRED_TYPE_WEIGHT_0 (volatile unsigned int *)((0x1f78 << 2) + 0xff620000)
// [31:24] I16_ipred_weight_DC
// [23:16] I16_ipred_weight_H
// [15:8] I16_ipred_weight_V
// [7:0] C_ipred_weight_DC
#define HCODEC_V3_IPRED_TYPE_WEIGHT_1 (0x1f79)
#define P_HCODEC_V3_IPRED_TYPE_WEIGHT_1 (volatile unsigned int *)((0x1f79 << 2) + 0xff620000)
// [31:16] v3_left_small_max_me_sad
// [15:0] v3_left_small_max_ie_sad
#define HCODEC_V3_LEFT_SMALL_MAX_SAD (0x1f7a)
#define P_HCODEC_V3_LEFT_SMALL_MAX_SAD (volatile unsigned int *)((0x1f7a << 2) + 0xff620000)
// (qr==7) & (qp==15) means force zero block
// [31:26] v4_force_q_r_intra
// [25:20] v4_force_q_r_inter
// [19] v4_force_q_y_enable
// [18:16] v4_force_qr_y
// [15:12] v4_force_qp_y
// [11:0] v4_force_skip_sad
#define HCODEC_V4_FORCE_SKIP_CFG (0x1f7b)
#define P_HCODEC_V4_FORCE_SKIP_CFG (volatile unsigned int *)((0x1f7b << 2) + 0xff620000)
// v5 Complexity // Y(256 pixel per MB) and C(128 pixel per MB)
// For every 4x4 block, calculate average and Add abs(pixel-average) together
// bit[31:16] v5_diff_sum_C
// bit[15:0] v5_diff_sum_Y
#define HCODEC_V5_MB_DIFF_SUM (0x1f7c)
#define P_HCODEC_V5_MB_DIFF_SUM (volatile unsigned int *)((0x1f7c << 2) + 0xff620000)
// bit[31:24] v5_small_diff_cnt_C
// bit[23:16] v5_small_diff_C
// bit[15:8] v5_small_diff_cnt_Y
// bit[7:0] v5_small_diff_Y
#define HCODEC_V5_SMALL_DIFF_CNT (0x1f7d)
#define P_HCODEC_V5_SMALL_DIFF_CNT (volatile unsigned int *)((0x1f7d << 2) + 0xff620000)
// bit[31:29] Reserved
// bit[28:24] v5_simple_block_cnt // 0 -15 Y 16-23 C
// bit[23:20] v5_simple_pixel_cnt
// bit[19:18] v5_simple_dq_wr_ptr
// bit[17:16] v5_simple_dq_rd_ptr
// bit[15:12] v5_simple_dq (Read Only)
// bit[11:8] v5_simple_me_weight(Read Only)
// bit[7] v5_use_small_diff_cnt
// bit[6] v5_simple_mb_inter_all_en
// bit[5] v5_simple_mb_inter_8x8_en
// bit[4] v5_simple_mb_inter_16_8_en
// bit[3] v5_simple_mb_inter_16x16_en
// bit[2] v5_simple_mb_intra_en
// bit[1] v5_simple_mb_C_en
// bit[0] v5_simple_mb_Y_en
#define HCODEC_V5_SIMPLE_MB_CTL (0x1f7e)
#define P_HCODEC_V5_SIMPLE_MB_CTL (volatile unsigned int *)((0x1f7e << 2) + 0xff620000)
// bit[31:28] v5_simple_dq_shift
// bit[27:24] v5_simple_dq_6(-7 to +7)
// bit[23:20] v5_simple_dq_5(-7 to +7)
// bit[19:16] v5_simple_dq_4(-7 to +7)
// bit[15:12] v5_simple_dq_3(-7 to +7)
// bit[11:08] v5_simple_dq_2(-7 to +7)
// bit[07:04] v5_simple_dq_1(-7 to +7)
// bit[03:00] v5_simple_dq_0(-7 to +7)
#define HCODEC_V5_SIMPLE_MB_DQUANT (0x1f7f)
#define P_HCODEC_V5_SIMPLE_MB_DQUANT (volatile unsigned int *)((0x1f7f << 2) + 0xff620000)
// bit[31:28] v5_simple_me_weight_shift
// bit[27:24] v5_simple_me_weight_6(-7 to +7)
// bit[23:20] v5_simple_me_weight_5(-7 to +7)
// bit[19:16] v5_simple_me_weight_4(-7 to +7)
// bit[15:12] v5_simple_me_weight_3(-7 to +7)
// bit[11:08] v5_simple_me_weight_2(-7 to +7)
// bit[07:04] v5_simple_me_weight_1(-7 to +7)
// bit[03:00] v5_simple_me_weight_0(-7 to +7)
#define HCODEC_V5_SIMPLE_MB_ME_WEIGHT (0x1f80)
#define P_HCODEC_V5_SIMPLE_MB_ME_WEIGHT (volatile unsigned int *)((0x1f80 << 2) + 0xff620000)
//
// Closing file: qdct_regs.h
//
#endif // DOS_REGISTER_H
#if 0
#define Wr(addr, data) *(volatile uint32_t *)(addr)=(data)
#define Rd(addr) *(volatile uint32_t *)(addr)
#define Wr_reg_bits(reg, val, start, len) \
Wr(reg, ((Rd(reg) & ~(((1L<<(len))-1)<<(start))) | ((uint32_t)(val) << (start))))
#endif
//
// Reading file: ./register_map.h
//
// synopsys translate_off
// synopsys translate_on
//
// Reading file: stb_define.h
//
// synopsys translate_off
// synopsys translate_on
// -----------------------------------------------
// CBUS_BASE: STB_CBUS_BASE = 0x18
// -----------------------------------------------
// There are two instantiations under one CBUS slave. Each CBUS slave can support
// 256 registers. Each demux is allocated 128 registers so set the offset in
// the middle
// Copy this define but don't add a base address
#define SECOND_DEMUX_OFFSET_0 0x50
#define THIRD_DEMUX_OFFSET_0 0xa0
//========================================================================
// STB TOP Registers (8'hf0 - 8'hf7)
//========================================================================
// bit 30:28 -- ciplus_o_sel
// bit 27:26 -- ciplus_i_sel
// bit 25 -- use FAIL fro TS2
// bit 24 -- use FAIL fro TS1
// bit 23 -- use FAIL fro TS0
// bit 22 -- invert fec_error for S2P1
// bit 21 -- invert fec_data for S2P1
// bit 20 -- invert fec_sync for S2P1
// bit 19 -- invert fec_valid for S2P1
// bit 18 -- invert fec_clk for S2P1
// bit 17:16 -- fec_s_sel for S2P1 00 - select TS0, 01 -- select TS1, 10 -- select TS2, 11 - reserved
// Bit 15 -- enable_des_pl_clk
// Bit 14:13 -- reserved
// Bit 12:10 -- ts_out_select, 0-TS0, 1-TS1, 2-TS2, 3,4-Reserved, 5-S2P1, 6-S2P0, 7-File
// bit 9:8 -- des_i_sel 00 -- select_fec_0, 01 -- select_fec_1, 10 -- select_fec_2, 11 - reserved
// bit 7 -- enable_des_pl
// bit 6 -- invert fec_error for S2P0
// bit 5 -- invert fec_data for S2P0
// bit 4 -- invert fec_sync for S2P0
// bit 3 -- invert fec_valid for S2P0
// bit 2 -- invert fec_clk for S2P0
// bit 1:0 -- fec_s_sel for S2P0 00 - select TS0, 01 -- select TS1, 10 -- select TS2, 11 - reserved
#define STB_TOP_CONFIG (0x18f0)
#define P_STB_TOP_CONFIG (volatile unsigned int *)((0x18f0 << 2) + 0xffd00000)
// 31:28 - s2p1_clk_div
// 27:24 - s2p0_clk_div
// 23 - s2p1_disable
// 22 - s2p0_disable
// 21 - Reserved
// 20 -- TS_OUT_error_INVERT
// 19 -- TS_OUT_data_INVERT
// 18 -- TS_OUT_sync_INVERT
// 17 -- TS_OUT_valid_INVERT
// 16 -- TS_OUT_clk_INVERT
// 15:8 -- TS_package_length_sub_1 (default : 187)
// 7:0 -- fec_sync_byte (default : 0x47)
#define TS_TOP_CONFIG (0x18f1)
#define P_TS_TOP_CONFIG (volatile unsigned int *)((0x18f1 << 2) + 0xffd00000)
// Bit 25:24 -- transport_scrambling_control_odd_2 // should be 3
// Bit 23:16 -- file_m2ts_skip_bytes
// Bit 15:8 -- des_out_dly
// Bit 7:6 -- transport_scrambling_control_odd // should be 3
// Bit 5 -- ts_hiu_enable
// Bit 4:0 -- fec_clk_div
#define TS_FILE_CONFIG (0x18f2)
#define P_TS_FILE_CONFIG (volatile unsigned int *)((0x18f2 << 2) + 0xffd00000)
// Bit 19:14 -- des_2 ts pl state -- Read Only
// Bit 13:8 -- des ts pl state -- Read Only
// Bit 3:0 PID index to 8 PID to get key-set
// auto increse after TS_PL_PID_DATA read/write
#define TS_PL_PID_INDEX (0x18f3)
#define P_TS_PL_PID_INDEX (volatile unsigned int *)((0x18f3 << 2) + 0xffd00000)
// Bit 13 -- PID match disble
// Bit 12:0 -- PID
#define TS_PL_PID_DATA (0x18f4)
#define P_TS_PL_PID_DATA (volatile unsigned int *)((0x18f4 << 2) + 0xffd00000)
#define COMM_DESC_KEY0 (0x18f5)
#define P_COMM_DESC_KEY0 (volatile unsigned int *)((0x18f5 << 2) + 0xffd00000)
#define COMM_DESC_KEY1 (0x18f6)
#define P_COMM_DESC_KEY1 (volatile unsigned int *)((0x18f6 << 2) + 0xffd00000)
#define COMM_DESC_KEY_RW (0x18f7)
#define P_COMM_DESC_KEY_RW (volatile unsigned int *)((0x18f7 << 2) + 0xffd00000)
// CI+ Register defines
// Bits[31:0] of the key
#define CIPLUS_KEY0 (0x18f8)
#define P_CIPLUS_KEY0 (volatile unsigned int *)((0x18f8 << 2) + 0xffd00000)
// Bits[63:32] of the key
#define CIPLUS_KEY1 (0x18f9)
#define P_CIPLUS_KEY1 (volatile unsigned int *)((0x18f9 << 2) + 0xffd00000)
// Bits[95:64] of the key
#define CIPLUS_KEY2 (0x18fa)
#define P_CIPLUS_KEY2 (volatile unsigned int *)((0x18fa << 2) + 0xffd00000)
// Bits[127:96] of the key
#define CIPLUS_KEY3 (0x18fb)
#define P_CIPLUS_KEY3 (volatile unsigned int *)((0x18fb << 2) + 0xffd00000)
// bit[5] write AES IV B value
// bit[4] write AES IV A value
// bit[3] write AES B key
// bit[2] write AES A key
// bit[1] write DES B key
// bit[0] write DES A key
#define CIPLUS_KEY_WR (0x18fc)
#define P_CIPLUS_KEY_WR (volatile unsigned int *)((0x18fc << 2) + 0xffd00000)
// [15:8] TS out delay. This controls the rate at which the CIplus module drives TS out
// [3] General enable for the ciplus module
// [2] AES CBC disable (default should be 0 to enable AES CBC)
// [1] AES Enable
// [0] DES Eanble
#define CIPLUS_CONFIG (0x18fd)
#define P_CIPLUS_CONFIG (volatile unsigned int *)((0x18fd << 2) + 0xffd00000)
// bit[31:28] AES IV endian
// bit[27:24] AES message out endian
// bit[23:20] AES message in endian
// bit[19:16] AES key endian
// bit[15:11] unused
// bit[10:8] DES message out endian
// bit[6:4] DES message in endian
// bit[2:0] DES key endian
#define CIPLUS_ENDIAN (0x18fe)
#define P_CIPLUS_ENDIAN (volatile unsigned int *)((0x18fe << 2) + 0xffd00000)
// bit 15:8 - des_out_dly_2
// bit 7 - reserved
// Bit 6-- enable_des_pl_clk_2
// bit 5 - enable_des_pl_2
// bit 4:2 -- use_des_2 bit[2] -- demux0, bit[3] -- demux1, bit[4] -- demux2
// bit 1:0 -- des_i_sel_2 00 -- select_fec_0, 01 -- select_fec_1, 10 -- select_fec_2, 11 - reserved
#define COMM_DESC_2_CTL (0x18ff)
#define P_COMM_DESC_2_CTL (volatile unsigned int *)((0x18ff << 2) + 0xffd00000)
//
// NOTE: Don't process the demux registers using the standard create_headers.... perl script.
// Instead, since the demux has multiple instances (and many registers) use a separate
// script to create a separate stb_define.h for C-code.
//========================================================================
// STB Registers (8'h00 - 8'h4f)
//
//========================================================================
// STB registers are 8'h0x
// Bit 15:0 -- version number : 0x0002 (v0.01)
// Bit 15 -- fec_core_select 1 - select descramble output
// Bit 14:12 - fec_select 0-TS0, 1-TS1, 2-TS2, 3,4-Reserved, 5-S2P1, 6-S2P0, 7-File
// Bit 11 -- FEC_CLK
// Bit 10 -- SOP
// Bit 9 -- D_VALID
// Bit 8 -- D_FAIL
// Bit 7:0 -- D_DATA 7:0
// bit 31 -- enable_free_clk_fec_data_valid
// bit 30 -- enable_free_clk_stb_reg
// bit 29 -- always_use_pes_package_length
// bit 28 -- disable_pre_incomplete_section_fix
// bit 27 -- pointer_field_multi_pre_en
// bit 26 -- ignore_pre_incomplete_section
// bit 25 -- video2_enable
// bit 24:22 -- video2_type
// bit 21 -- do_not_trust_pes_package_length
// bit 20 (bit 4) -- Bypass use recoder path
// bit 19 (bit 3) -- clear_PID_continuity_counter_valid
// bit 18 (bit 2) -- Disable Splicing
// bit 17 (bit 1) -- Insert PES_STRONG_SYNC in Audio PES
// bit 16 (bit 0) -- Insert PES_STRONG_SYNC in Video PES
// Bit 15 - do not trust section length
// Bit 14 - om cmd push even zero
// Bit 13 - set_buff_ready_even_not_busy
// Bit 12 - SUB, OTHER PES interrupt at beginning of PES
// Bit 11 - discard_av_package -- for ts_recorder use only
// Bit 10 - ts_recorder_select 0:after PID filter 1:before PID filter
// Bit 9 - ts_recorder_enable
// Bit 8 - (table_id == 0xff) means section_end
// Bit 7 - do not send uncomplete section
// Bit 6 - do not discard duplicate package
// Bit 5 - search SOP when trasport_error_indicator
// Bit 4 - stb demux enable
// Bit 3 - do not reset state machine on SOP
// Bit 2 - search SOP when error happened ( when ignore_fail_n_sop, will have this case)
// Bit 1 - do not use SOP input ( check FEC sync byte instead )
// Bit 0 - ignore fec_error bit when non sop ( check error on SOP only)
// bit 15:8 demux package length - 1 ( default : 187 )
// bit 7:0 default is 0x47
// bit 31:16 -- filter memory write data hi[31:16]
// bit 15:0 -- filter memory write data low [15:0]
// bit 31:24 -- advanced setting hi
// bit 23:16 -- advanced setting low
// bit 15 -- filter memory write data request
// bit 7:0 -- filter memory write addr
// bit 13:8 demux state -- read only
// bit 7:4 -- maxnum section filter compare address
// bit 3:0 -- maxnum PID filter compare address
// bit 15 - transport_error_indicator
// bit 14 - payload_unit_start_indicator
// bit 13 - transport_priority
// bit 12:0 - PID
// bit 7:6 transport_scrambling_control
// bit 5:4 adaptation_field_control
// bit 3:0 continuity_counter
// bit 15:12 -- om_cmd_count (read only)
// bit 11:9 -- overflow_count // bit 11:9 -- om_cmd_wr_ptr (read only)
// bit 8:6 -- om_overwrite_count // bit 8:6 -- om_cmd_rd_ptr (read only)
// bit 5:3 -- type_stb_om_w_rd (read only)
// bit 2 -- unit_start_stb_om_w_rd (read only)
// bit 1 -- om_cmd_overflow (read only)
// bit 0 -- om_cmd_pending (read)
// bit 0 -- om_cmd_read_finished (write)
// bit 15:9 // bit 14:8 -- count_stb_om_w_rd (read only)
// bit 8:0 // bit 7:0 -- start_stb_om_wa_rd (read only)
// bit 11:0 -- offset for section data
// bit 31:16 -- base address for section buffer group 0 (*0x400 to get real address)
// bit 15:0 -- base address for section buffer group 1 (*0x400 to get real address)
// bit 31:16 -- ba2e address for section buffer group 2 (*0x400 to get real address)
// bit 15:0 -- base address for section buffer group 3 (*0x400 to get real address)
// bit 3:0 -- section buffer size for group 0 (bit used, for example, 10 means 1K)
// bit 7:4 -- section buffer size for group 1
// bit 11:8 -- section buffer size for group 2
// bit 15:12 -- section buffer size for group 3
// section buffer busy status for buff 31:0 ( Read Only )
// section buffer write status for buff 31:0 -- Read
// clear buffer status ( buff READY and BUSY ) -- write
// bit 4:0 -- SEC_BUFFER_INDEX RW
// bit 12:8 -- SEC_BUFFER_NUMBER for the INDEX buffer Read_Only
// bit 14 -- output_section_buffer_valid
// bit 15 -- section_reset_busy (Read Only)
// bit 9:5 -- BYPASS PID number
// bit 4:0 -- PCR PID number
// bit 15:0 -- stream_id filter bit enable
// bit 7:0 -- stream_id filter target
// bit 12 -- PCR_EN
// bit 11:0 -- PCR90K_DIV
// bit 31:0 -- PCR[31:0] R/W
// bit 31:0 -- VPTS[31:0] R/W
// bit 31:0 -- VDTS[31:0] R/W
// bit 31:0 -- APTS[31:0] R/W
// bit 31:0 -- SPTS[31:0] R/W
// read -- status, write 1 clear status
// bit 15 -- SUB_PTS[32]
// bit 14 -- AUDIO_PTS[32]
// bit 13 -- VIDEO_DTS[32]
// bit 12 -- VIDEO_PTS[32]
// bit 3 -- sub_pts_ready
// bit 2 -- audio_pts_ready
// bit 1 -- video_dts_ready
// bit 0 -- video_pts_ready
// bit 3:0 --
// 0 -- adaptation_field_length[7:0], adaption_field_byte_1[7:0]
// 1 -- stream_id[7:0], pes_header_bytes_left[7:0]
// 2 -- pes_package_bytes_left[15:0]
// 3 -- pes_ctr_byte[7:0], pes_flag_byte[7:0]
//
// read only
// bit[31] -- no_match_record_en
// bit[30:16] - reserved
// default : 0x807f
// bit 15:9 -- MAX OM DMA COUNT (default: 0x40)
// bit 8:0 -- LAST ADDR OF OM ADDR (default: 127)
// 15:0 WRITE 1 CLEAR to clear interrupt source
//12 -- INPUT_TIME_OUT
//11 -- PCR_ready
//10 -- audio_splicing_point
// 9 -- video_splicing_point
// 8 -- other_PES_int
// 7 -- sub_PES_int
// 6 -- discontinuity
// 5 -- duplicated_pack_found
// 4 -- New PDTS ready
// 3 -- om_cmd_buffer ready for access
// 2 -- section buffer ready
// 1 -- transport_error_indicator
// 0 -- TS ERROR PIN
// Bit 5:3 - demux om write endian control for bypass
// Bit 2:0 - demux om write endian control for section
// When Bit 31 - 1 write will indicate all type use sepertate endian (Write Only)
// Bit 23:21 - demux om write endian control for OTHER_PES_PACKET
// Bit 20:18 - demux om write endian control for SCR_ONLY_PACKET
// Bit 17:15 - demux om write endian control for SUB_PACKET
// Bit 14:12 - demux om write endian control for AUDIO_PACKET
// Bit 11:9 - demux om write endian control for VIDEO_PACKET
//
// When Bit 31 - 0 write will indicate all type else use Bit 8:6
// Bit 8:6 - demux om write endian control for else
// Bit 15:8 -- last_burst_threshold
// Bit 7 -- use hi_bsf interface
// Bit 6:2 - fec_clk_div
// Bit 1 ts_source_sel
// Bit 0 - Hiu TS generate enable
// bit 15:0 -- base address for section buffer start (*0x10000 to get real base)
// bit 11 -- mask bit for OTHER_PES_AHB_DMA_EN
// bit 10 -- mask bit for SUB_AHB_DMA_EN
// bit 9 -- mask bit for BYPASS_AHB_DMA_EN
// bit 8 -- mask bit for SECTION_AHB_DMA_EN
// bit 7 -- mask bit for recoder stream
// bit 6:0 -- mask bit for each type
// bit 31:0 -- vb_wr_ptr for video PDTS
// bit 31:0 -- ab_wr_ptr for audio PDTS
// bit 20:0 -- SB_WRITE_PTR (sb_wr_ptr << 3 == byte write position)
// bit 19:0 -- SB_START (sb_start << 12 == byte address);
// bit 20:0 -- SB_SIZE (sb_size << 3 == byte size, 16M maximun)
// bit 31:0 -- sb_wr_ptr for sub PES
// bit 31:16 -- ob_wr_ptr for other PES
// bit 20:0 -- OB_WRITE_PTR (ob_wr_ptr << 3 == byte write position)
// bit 19:0 -- OB_START (ob_start << 12 == byte address);
// bit 20:0 -- OB_SIZE (ob_size << 3 == byte size, 16M maximun)
// bit 31:0 -- ob_wr_ptr for sub PES
// 15:0 DEMUX interrupt MASK
// 9 -- splicing_point
// 8 -- other_PES_int
// 7 -- sub_PES_int
// 6 -- discontinuity
// 5 -- duplicated_pack_found
// 4 -- New PDTS ready
// 3 -- om_cmd_buffer ready for access
// 2 -- section buffer ready
// 1 -- transport_error_indicator
// 0 -- TS ERROR PIN
// 31:16 VIDEO PID filter data
//15 -- splicing VIDEO PID change enable
//14:10 -- VIDEO PID FILTER ADDRESS
// 9 -- PES splicing active (Read Only)
// 8 -- splicing active (Read Only)
// 7:0 splicing countdown (Read Only)
// 31:16 AUDIO PID filter data
//15 -- splicing AUDIO PID change enable
//14:10 -- AUDIO PID FILTER ADDRESS
// 9 -- PES splicing active (Read Only)
// 8 -- splicing active (Read Only)
// 7:0 splicing countdown (Read Only)
// 23:16 M2TS_SKIP_BYTES
// 15:8 LAST TS PACKAGE BYTE COUNT (Read Only)
// 7:0 PACKAGE BYTE COUNT (Read Only)
// 15:0 2 bytes strong sync add to PES
// bit 15 -- stb_om_ren
// bit 14:11 -- reserved
// bit 10:0 -- OM_DATA_RD_ADDR
// bit 15:0 -- OM_DATA_RD
// AUTO STOP SETTING for 32 channels
// 4-nbits per channel
// when write
// bit 3 -- set section active
// bit 2:0 -- auto stop after count (0 means never stop)
// when read
// bit 3 -- current active status (1 - active, 0 - stopped )
// bit 2:0 -- count down to auto stop
// section 31:24
// section 23:16
// section 15:8
// section 7:0
// bit 31:0 reset channel status - each bit reset each channel
// read -- 32 channel status
// bit 4 -- video_stamp_use_dts
// bit 3 -- audio_stamp_sync_1_en
// bit 2 -- audio_stamp_insert_en
// bit 1 -- video_stamp_sync_1_en
// bit 0 -- video_stamp_insert_en
// Write : Bit[4:0] secter filter number for reset
// Read : select according to output_section_buffer_valid :
// per bit per section buffer valid status
// or section_buffer_ignore
// bit[31:0] - channel_reset_timeout_disable
// bit[31] - no_match_reset_timeout_disable
// bit[30:0] input_time_out_int_cnt (0 -- means disable) Wr-setting, Rd-count
// bit[31:0] - channel_packet_count_disable
// bit[31] - no_match_packet_count_disable
// bit[30:0] input_packet_count
// bit[31:0] channel_record_enable
// bit[31:0] channel_process_enable
// bit[31:24] small_sec_size ((n+1) * 256 Bytes)
// bit[23:16] small_sec_rd_ptr
// bit[15:8] small_sec_wr_ptr
// bit[7:2] reserved
// bit[1] small_sec_wr_ptr_wr_enable
// bit[0] small_section_enable
// bit[31:0] small_sec_start_addr
// synopsys translate_off
// synopsys translate_on
//
// Closing file: stb_define.h
//
//
// Reading file: periphs_reg.h
//
// $periphs/rtl/periphs_core register defines for the
// APB bus
// ------------------------------------------------------------------------------------
// -----------------------------------------------
// CBUS_BASE: SC_CBUS_BASE = 0x94
// -----------------------------------------------
#define SMARTCARD_REG0 (0x9400)
#define P_SMARTCARD_REG0 (volatile unsigned int *)((0x9400 << 2) + 0xffd00000)
#define SMARTCARD_REG1 (0x9401)
#define P_SMARTCARD_REG1 (volatile unsigned int *)((0x9401 << 2) + 0xffd00000)
#define SMARTCARD_REG2 (0x9402)
#define P_SMARTCARD_REG2 (volatile unsigned int *)((0x9402 << 2) + 0xffd00000)
#define SMARTCARD_STATUS (0x9403)
#define P_SMARTCARD_STATUS (volatile unsigned int *)((0x9403 << 2) + 0xffd00000)
#define SMARTCARD_INTR (0x9404)
#define P_SMARTCARD_INTR (volatile unsigned int *)((0x9404 << 2) + 0xffd00000)
#define SMARTCARD_REG5 (0x9405)
#define P_SMARTCARD_REG5 (volatile unsigned int *)((0x9405 << 2) + 0xffd00000)
#define SMARTCARD_REG6 (0x9406)
#define P_SMARTCARD_REG6 (volatile unsigned int *)((0x9406 << 2) + 0xffd00000)
#define SMARTCARD_FIFO (0x9407)
#define P_SMARTCARD_FIFO (volatile unsigned int *)((0x9407 << 2) + 0xffd00000)
#define SMARTCARD_REG8 (0x9408)
#define P_SMARTCARD_REG8 (volatile unsigned int *)((0x9408 << 2) + 0xffd00000)
// ------------------------------------------------------------------------------------
// -----------------------------------------------
// CBUS_BASE: UART0_CBUS_BASE = 0x90
// -----------------------------------------------
#define UART0_WFIFO (0x9000)
#define P_UART0_WFIFO (volatile unsigned int *)((0x9000 << 2) + 0xffd00000)
#define UART0_RFIFO (0x9001)
#define P_UART0_RFIFO (volatile unsigned int *)((0x9001 << 2) + 0xffd00000)
#define UART0_CONTROL (0x9002)
#define P_UART0_CONTROL (volatile unsigned int *)((0x9002 << 2) + 0xffd00000)
#define UART0_STATUS (0x9003)
#define P_UART0_STATUS (volatile unsigned int *)((0x9003 << 2) + 0xffd00000)
#define UART0_MISC (0x9004)
#define P_UART0_MISC (volatile unsigned int *)((0x9004 << 2) + 0xffd00000)
#define UART0_REG5 (0x9005)
#define P_UART0_REG5 (volatile unsigned int *)((0x9005 << 2) + 0xffd00000)
// ------------------------------------------------------------------------------------
// -----------------------------------------------
// CBUS_BASE: UART1_CBUS_BASE = 0x8c
// -----------------------------------------------
#define UART1_WFIFO (0x8c00)
#define P_UART1_WFIFO (volatile unsigned int *)((0x8c00 << 2) + 0xffd00000)
#define UART1_RFIFO (0x8c01)
#define P_UART1_RFIFO (volatile unsigned int *)((0x8c01 << 2) + 0xffd00000)
#define UART1_CONTROL (0x8c02)
#define P_UART1_CONTROL (volatile unsigned int *)((0x8c02 << 2) + 0xffd00000)
#define UART1_STATUS (0x8c03)
#define P_UART1_STATUS (volatile unsigned int *)((0x8c03 << 2) + 0xffd00000)
#define UART1_MISC (0x8c04)
#define P_UART1_MISC (volatile unsigned int *)((0x8c04 << 2) + 0xffd00000)
#define UART1_REG5 (0x8c05)
#define P_UART1_REG5 (volatile unsigned int *)((0x8c05 << 2) + 0xffd00000)
// ------------------------------------------------------------------------------------
// -----------------------------------------------
// CBUS_BASE: UART2_CBUS_BASE = 0x88
// -----------------------------------------------
#define UART2_WFIFO (0x8800)
#define P_UART2_WFIFO (volatile unsigned int *)((0x8800 << 2) + 0xffd00000)
#define UART2_RFIFO (0x8801)
#define P_UART2_RFIFO (volatile unsigned int *)((0x8801 << 2) + 0xffd00000)
#define UART2_CONTROL (0x8802)
#define P_UART2_CONTROL (volatile unsigned int *)((0x8802 << 2) + 0xffd00000)
#define UART2_STATUS (0x8803)
#define P_UART2_STATUS (volatile unsigned int *)((0x8803 << 2) + 0xffd00000)
#define UART2_MISC (0x8804)
#define P_UART2_MISC (volatile unsigned int *)((0x8804 << 2) + 0xffd00000)
#define UART2_REG5 (0x8805)
#define P_UART2_REG5 (volatile unsigned int *)((0x8805 << 2) + 0xffd00000)
// ------------------------------------------------------------------------------------
// -----------------------------------------------
// CBUS_BASE: UART3_CBUS_BASE = 0x84
// -----------------------------------------------
#define UART3_DF_REG_A73 (0x8400)
#define P_UART3_DF_REG_A73 (volatile unsigned int *)((0x8400 << 2) + 0xffd00000)
#define UART3_DF_REG_A74 (0x8401)
#define P_UART3_DF_REG_A74 (volatile unsigned int *)((0x8401 << 2) + 0xffd00000)
#define UART3_DF_REG_A75 (0x8402)
#define P_UART3_DF_REG_A75 (volatile unsigned int *)((0x8402 << 2) + 0xffd00000)
#define UART3_DF_REG_A76 (0x8403)
#define P_UART3_DF_REG_A76 (volatile unsigned int *)((0x8403 << 2) + 0xffd00000)
#define UART3_DF_REG_A77 (0x8404)
#define P_UART3_DF_REG_A77 (volatile unsigned int *)((0x8404 << 2) + 0xffd00000)
#define UART3_DF_REG_A78 (0x8405)
#define P_UART3_DF_REG_A78 (volatile unsigned int *)((0x8405 << 2) + 0xffd00000)
#define UART3_DF_REG_A79 (0x8406)
#define P_UART3_DF_REG_A79 (volatile unsigned int *)((0x8406 << 2) + 0xffd00000)
#define UART3_DF_REG_A80 (0x8407)
#define P_UART3_DF_REG_A80 (volatile unsigned int *)((0x8407 << 2) + 0xffd00000)
#define UART3_DF_REG_A81 (0x8408)
#define P_UART3_DF_REG_A81 (volatile unsigned int *)((0x8408 << 2) + 0xffd00000)
#define UART3_DF_REG_A82 (0x8409)
#define P_UART3_DF_REG_A82 (volatile unsigned int *)((0x8409 << 2) + 0xffd00000)
#define UART3_DF_REG_A83 (0x8410)
#define P_UART3_DF_REG_A83 (volatile unsigned int *)((0x8410 << 2) + 0xffd00000)
#define UART3_DF_REG_A84 (0x8411)
#define P_UART3_DF_REG_A84 (volatile unsigned int *)((0x8411 << 2) + 0xffd00000)
#define UART3_DF_REG_A85 (0x8412)
#define P_UART3_DF_REG_A85 (volatile unsigned int *)((0x8412 << 2) + 0xffd00000)
#define UART3_DF_REG_A86 (0x8413)
#define P_UART3_DF_REG_A86 (volatile unsigned int *)((0x8413 << 2) + 0xffd00000)
#define UART3_DF_REG_A87 (0x8414)
#define P_UART3_DF_REG_A87 (volatile unsigned int *)((0x8414 << 2) + 0xffd00000)
#define UART3_DF_REG_A88 (0x8415)
#define P_UART3_DF_REG_A88 (volatile unsigned int *)((0x8415 << 2) + 0xffd00000)
#define UART3_DF_REG_A89 (0x8416)
#define P_UART3_DF_REG_A89 (volatile unsigned int *)((0x8416 << 2) + 0xffd00000)
#define UART3_DF_REG_A96 (0x8417)
#define P_UART3_DF_REG_A96 (volatile unsigned int *)((0x8417 << 2) + 0xffd00000)
#define UART3_DF_REG_A97 (0x8418)
#define P_UART3_DF_REG_A97 (volatile unsigned int *)((0x8418 << 2) + 0xffd00000)
#define UART3_DF_REG_A128 (0x8420)
#define P_UART3_DF_REG_A128 (volatile unsigned int *)((0x8420 << 2) + 0xffd00000)
#define UART3_DF_REG_A129 (0x8421)
#define P_UART3_DF_REG_A129 (volatile unsigned int *)((0x8421 << 2) + 0xffd00000)
#define UART3_DF_REG_A130 (0x8422)
#define P_UART3_DF_REG_A130 (volatile unsigned int *)((0x8422 << 2) + 0xffd00000)
#define UART3_DF_REG_A131 (0x8423)
#define P_UART3_DF_REG_A131 (volatile unsigned int *)((0x8423 << 2) + 0xffd00000)
#define UART3_DF_REG_A132 (0x8424)
#define P_UART3_DF_REG_A132 (volatile unsigned int *)((0x8424 << 2) + 0xffd00000)
#define UART3_DF_REG_A133 (0x8425)
#define P_UART3_DF_REG_A133 (volatile unsigned int *)((0x8425 << 2) + 0xffd00000)
#define UART3_DF_REG_A134 (0x8426)
#define P_UART3_DF_REG_A134 (volatile unsigned int *)((0x8426 << 2) + 0xffd00000)
#define UART3_DF_REG_A135 (0x8427)
#define P_UART3_DF_REG_A135 (volatile unsigned int *)((0x8427 << 2) + 0xffd00000)
#define UART3_DF_REG_A136 (0x8428)
#define P_UART3_DF_REG_A136 (volatile unsigned int *)((0x8428 << 2) + 0xffd00000)
// ----------------------------
// SANA (Stream Analyzer)
// ----------------------------
// ------------------------------------------------------------------------------------
// -----------------------------------------------
// CBUS_BASE: SANA_CBUS_BASE = 0x30
// -----------------------------------------------
// [31:16] - ddr_setting
// [15] - disable_stream_clock_gating
// [14:13] - mem_pd_ctl_sana
// [6:4] - stream_fetch_endian
// [3] - use_parser_vbuf_wp
// [2] - use_parser_vbuf2_wp
// [1] - stream_fetch_busy - Read Only
// [0] - stream_fetch_enable
#define SANA_STREAM_CONTROL (0x3020)
#define P_SANA_STREAM_CONTROL (volatile unsigned int *)((0x3020 << 2) + 0xffd00000)
#define SANA_STREAM_START_ADDR (0x3021)
#define P_SANA_STREAM_START_ADDR (volatile unsigned int *)((0x3021 << 2) + 0xffd00000)
#define SANA_STREAM_END_ADDR (0x3022)
#define P_SANA_STREAM_END_ADDR (volatile unsigned int *)((0x3022 << 2) + 0xffd00000)
// SW stream_buffer_wr_ptr
#define SANA_STREAM_WR_PTR (0x3023)
#define P_SANA_STREAM_WR_PTR (volatile unsigned int *)((0x3023 << 2) + 0xffd00000)
#define SANA_STREAM_RD_PTR (0x3024)
#define P_SANA_STREAM_RD_PTR (volatile unsigned int *)((0x3024 << 2) + 0xffd00000)
//[31:0] stream_buffer_level - read only
#define SANA_STREAM_LEVEL (0x3025)
#define P_SANA_STREAM_LEVEL (volatile unsigned int *)((0x3025 << 2) + 0xffd00000)
// [31:29] stream_buffer_hole 256*(4^0) bytes
// [28:23] stream_fifo_hole
// [22:16] stream_fifo_level
// [15] stream_fifo_wr_ptr_update_en
// [14:8] stream_fifo_wr_ptr
// [7] stream_fifo_rd_ptr_update_en
// [6:0] stream_fifo_rd_ptr
#define SANA_STREAM_FIFO_CTL (0x3026)
#define P_SANA_STREAM_FIFO_CTL (volatile unsigned int *)((0x3026 << 2) + 0xffd00000)
// [31:18] - Reserved
// [17] - sana_int_enable
// [16] - sana_int_level (default : 0(pulse))
// [15] - disable_shift_clock_gating
// [14] - startcode_protect -- TODO
// [8:6] - sft_valid_wr_position (default : 3 (at least 24 bits available))
// [5:4] - emulate_code_length_sub_1(Default : 2)
// [3] - emulation_auto_on_startcode(Default : 0)
// [2:1] - start_code_length_sub_1(Default : 2)
// [0] - stream_shift_enable(Default : 0)
#define SANA_SHIFT_CONTROL (0x3027)
#define P_SANA_SHIFT_CONTROL (volatile unsigned int *)((0x3027 << 2) + 0xffd00000)
// [31:0] - max 4-bytes start code (Default : 0x00000100)
#define SANA_SHIFT_STARTCODE (0x3028)
#define P_SANA_SHIFT_STARTCODE (volatile unsigned int *)((0x3028 << 2) + 0xffd00000)
// [31:0] - max 4-bytes emulate code (Default : 0x00000300)
#define SANA_SHIFT_EMULATECODE (0x3029)
#define P_SANA_SHIFT_EMULATECODE (volatile unsigned int *)((0x3029 << 2) + 0xffd00000)
// [3] - sana_int
// [2] - startcode_searching
// [1] - emulation_check_on
// [0] - startcode_check_on
#define SANA_SHIFT_STATUS (0x302a)
#define P_SANA_SHIFT_STATUS (volatile unsigned int *)((0x302a << 2) + 0xffd00000)
// [31:0] sana_shifted_data - read only
#define SANA_SHIFTED_DATA (0x302b)
#define P_SANA_SHIFTED_DATA (volatile unsigned int *)((0x302b << 2) + 0xffd00000)
// [31:0] shift_byte_count[31:0]
#define SANA_SHIFT_BYTE_COUNT (0x302c)
#define P_SANA_SHIFT_BYTE_COUNT (volatile unsigned int *)((0x302c << 2) + 0xffd00000)
// [31:28] - shift_byte_count[35:32]
// [27:20] - element_read_data[31:24]
// [10] - bytealign
// [9] - signed_element
// [8] - start_element_read
// [7] - shift_busy
// [6:0] - shift_bits
#define SANA_SHIFT_COMMAND (0x302d)
#define P_SANA_SHIFT_COMMAND (volatile unsigned int *)((0x302d << 2) + 0xffd00000)
// 31:8 - element_read_data[23:0]
// 7:2 - element_read_length
// 1:0 - element_read_state
#define SANA_ELEMENT_RESULT (0x302e)
#define P_SANA_ELEMENT_RESULT (volatile unsigned int *)((0x302e << 2) + 0xffd00000)
// support up to 8 masters, one bit per master
// 23:16 - lock_release (Write 1 to release)
// 15:8 - lock_req (write 1 to request)
// 7:0 - lock_result (Read Only)
#define ATOM_LOCK (0x302f)
#define P_ATOM_LOCK (volatile unsigned int *)((0x302f << 2) + 0xffd00000)
// ------------------------------------------------------------------------------------
// -----------------------------------------------
// CBUS_BASE: I2C_M_0_CBUS_BASE = 0x7c
// -----------------------------------------------
#define I2C_M_0_CONTROL_REG (0x7c00)
#define P_I2C_M_0_CONTROL_REG (volatile unsigned int *)((0x7c00 << 2) + 0xffd00000)
#define I2C_M_MANUAL_SDA_I 26
#define I2C_M_MANUAL_SCL_I 25
#define I2C_M_MANUAL_SDA_O 24
#define I2C_M_MANUAL_SCL_O 23
#define I2C_M_MANUAL_EN 22
#define I2C_M_DELAY_MSB 21
#define I2C_M_DELAY_LSB 12
#define I2C_M_DATA_CNT_MSB 11
#define I2C_M_DATA_CNT_LSB 8
#define I2C_M_CURR_TOKEN_MSB 7
#define I2C_M_CURR_TOKEN_LSB 4
#define I2C_M_ERROR 3
#define I2C_M_STATUS 2
#define I2C_M_ACK_IGNORE 1
#define I2C_M_START 0
#define I2C_M_0_SLAVE_ADDR (0x7c01)
#define P_I2C_M_0_SLAVE_ADDR (volatile unsigned int *)((0x7c01 << 2) + 0xffd00000)
#define I2C_M_0_TOKEN_LIST0 (0x7c02)
#define P_I2C_M_0_TOKEN_LIST0 (volatile unsigned int *)((0x7c02 << 2) + 0xffd00000)
#define I2C_M_0_TOKEN_LIST1 (0x7c03)
#define P_I2C_M_0_TOKEN_LIST1 (volatile unsigned int *)((0x7c03 << 2) + 0xffd00000)
#define I2C_M_0_WDATA_REG0 (0x7c04)
#define P_I2C_M_0_WDATA_REG0 (volatile unsigned int *)((0x7c04 << 2) + 0xffd00000)
#define I2C_M_0_WDATA_REG1 (0x7c05)
#define P_I2C_M_0_WDATA_REG1 (volatile unsigned int *)((0x7c05 << 2) + 0xffd00000)
#define I2C_M_0_RDATA_REG0 (0x7c06)
#define P_I2C_M_0_RDATA_REG0 (volatile unsigned int *)((0x7c06 << 2) + 0xffd00000)
#define I2C_M_0_RDATA_REG1 (0x7c07)
#define P_I2C_M_0_RDATA_REG1 (volatile unsigned int *)((0x7c07 << 2) + 0xffd00000)
// -----------------------------------------------
// CBUS_BASE: I2C_M_1_CBUS_BASE = 0x78
// -----------------------------------------------
#define I2C_M_1_CONTROL_REG (0x7800)
#define P_I2C_M_1_CONTROL_REG (volatile unsigned int *)((0x7800 << 2) + 0xffd00000)
#define I2C_M_1_SLAVE_ADDR (0x7801)
#define P_I2C_M_1_SLAVE_ADDR (volatile unsigned int *)((0x7801 << 2) + 0xffd00000)
#define I2C_M_1_TOKEN_LIST0 (0x7802)
#define P_I2C_M_1_TOKEN_LIST0 (volatile unsigned int *)((0x7802 << 2) + 0xffd00000)
#define I2C_M_1_TOKEN_LIST1 (0x7803)
#define P_I2C_M_1_TOKEN_LIST1 (volatile unsigned int *)((0x7803 << 2) + 0xffd00000)
#define I2C_M_1_WDATA_REG0 (0x7804)
#define P_I2C_M_1_WDATA_REG0 (volatile unsigned int *)((0x7804 << 2) + 0xffd00000)
#define I2C_M_1_WDATA_REG1 (0x7805)
#define P_I2C_M_1_WDATA_REG1 (volatile unsigned int *)((0x7805 << 2) + 0xffd00000)
#define I2C_M_1_RDATA_REG0 (0x7806)
#define P_I2C_M_1_RDATA_REG0 (volatile unsigned int *)((0x7806 << 2) + 0xffd00000)
#define I2C_M_1_RDATA_REG1 (0x7807)
#define P_I2C_M_1_RDATA_REG1 (volatile unsigned int *)((0x7807 << 2) + 0xffd00000)
// ------------------------------------------------------------------------------------
// -----------------------------------------------
// CBUS_BASE: I2C_M_2_CBUS_BASE = 0x74
// -----------------------------------------------
#define I2C_M_2_CONTROL_REG (0x7400)
#define P_I2C_M_2_CONTROL_REG (volatile unsigned int *)((0x7400 << 2) + 0xffd00000)
#define I2C_M_2_SLAVE_ADDR (0x7401)
#define P_I2C_M_2_SLAVE_ADDR (volatile unsigned int *)((0x7401 << 2) + 0xffd00000)
#define I2C_M_2_TOKEN_LIST0 (0x7402)
#define P_I2C_M_2_TOKEN_LIST0 (volatile unsigned int *)((0x7402 << 2) + 0xffd00000)
#define I2C_M_2_TOKEN_LIST1 (0x7403)
#define P_I2C_M_2_TOKEN_LIST1 (volatile unsigned int *)((0x7403 << 2) + 0xffd00000)
#define I2C_M_2_WDATA_REG0 (0x7404)
#define P_I2C_M_2_WDATA_REG0 (volatile unsigned int *)((0x7404 << 2) + 0xffd00000)
#define I2C_M_2_WDATA_REG1 (0x7405)
#define P_I2C_M_2_WDATA_REG1 (volatile unsigned int *)((0x7405 << 2) + 0xffd00000)
#define I2C_M_2_RDATA_REG0 (0x7406)
#define P_I2C_M_2_RDATA_REG0 (volatile unsigned int *)((0x7406 << 2) + 0xffd00000)
#define I2C_M_2_RDATA_REG1 (0x7407)
#define P_I2C_M_2_RDATA_REG1 (volatile unsigned int *)((0x7407 << 2) + 0xffd00000)
// ------------------------------------------------------------------------------------
// -----------------------------------------------
// CBUS_BASE: I2C_M_3_CBUS_BASE = 0x70
// -----------------------------------------------
#define I2C_M_3_CONTROL_REG (0x7000)
#define P_I2C_M_3_CONTROL_REG (volatile unsigned int *)((0x7000 << 2) + 0xffd00000)
#define I2C_M_3_SLAVE_ADDR (0x7001)
#define P_I2C_M_3_SLAVE_ADDR (volatile unsigned int *)((0x7001 << 2) + 0xffd00000)
#define I2C_M_3_TOKEN_LIST0 (0x7002)
#define P_I2C_M_3_TOKEN_LIST0 (volatile unsigned int *)((0x7002 << 2) + 0xffd00000)
#define I2C_M_3_TOKEN_LIST1 (0x7003)
#define P_I2C_M_3_TOKEN_LIST1 (volatile unsigned int *)((0x7003 << 2) + 0xffd00000)
#define I2C_M_3_WDATA_REG0 (0x7004)
#define P_I2C_M_3_WDATA_REG0 (volatile unsigned int *)((0x7004 << 2) + 0xffd00000)
#define I2C_M_3_WDATA_REG1 (0x7005)
#define P_I2C_M_3_WDATA_REG1 (volatile unsigned int *)((0x7005 << 2) + 0xffd00000)
#define I2C_M_3_RDATA_REG0 (0x7006)
#define P_I2C_M_3_RDATA_REG0 (volatile unsigned int *)((0x7006 << 2) + 0xffd00000)
#define I2C_M_3_RDATA_REG1 (0x7007)
#define P_I2C_M_3_RDATA_REG1 (volatile unsigned int *)((0x7007 << 2) + 0xffd00000)
// ------------------------------------------------------------------------------------
// -----------------------------------------------
// CBUS_BASE: PWM_AB_CBUS_BASE = 0x6c
// -----------------------------------------------
#define PWM_PWM_A (0x6c00)
#define P_PWM_PWM_A (volatile unsigned int *)((0x6c00 << 2) + 0xffd00000)
#define PWM_PWM_B (0x6c01)
#define P_PWM_PWM_B (volatile unsigned int *)((0x6c01 << 2) + 0xffd00000)
#define PWM_MISC_REG_AB (0x6c02)
#define P_PWM_MISC_REG_AB (volatile unsigned int *)((0x6c02 << 2) + 0xffd00000)
#define PWM_DELTA_SIGMA_AB (0x6c03)
#define P_PWM_DELTA_SIGMA_AB (volatile unsigned int *)((0x6c03 << 2) + 0xffd00000)
#define PWM_TIME_AB (0x6c04)
#define P_PWM_TIME_AB (volatile unsigned int *)((0x6c04 << 2) + 0xffd00000)
#define PWM_A2 (0x6c05)
#define P_PWM_A2 (volatile unsigned int *)((0x6c05 << 2) + 0xffd00000)
#define PWM_B2 (0x6c06)
#define P_PWM_B2 (volatile unsigned int *)((0x6c06 << 2) + 0xffd00000)
#define PWM_BLINK_AB (0x6c07)
#define P_PWM_BLINK_AB (volatile unsigned int *)((0x6c07 << 2) + 0xffd00000)
// ------------------------------------------------------------------------------------
// -----------------------------------------------
// CBUS_BASE: PWM_CD_CBUS_BASE = 0x68
// -----------------------------------------------
#define PWM_PWM_C (0x6800)
#define P_PWM_PWM_C (volatile unsigned int *)((0x6800 << 2) + 0xffd00000)
#define PWM_PWM_D (0x6801)
#define P_PWM_PWM_D (volatile unsigned int *)((0x6801 << 2) + 0xffd00000)
#define PWM_MISC_REG_CD (0x6802)
#define P_PWM_MISC_REG_CD (volatile unsigned int *)((0x6802 << 2) + 0xffd00000)
#define PWM_DELTA_SIGMA_CD (0x6803)
#define P_PWM_DELTA_SIGMA_CD (volatile unsigned int *)((0x6803 << 2) + 0xffd00000)
#define PWM_TIME_CD (0x6804)
#define P_PWM_TIME_CD (volatile unsigned int *)((0x6804 << 2) + 0xffd00000)
#define PWM_C2 (0x6805)
#define P_PWM_C2 (volatile unsigned int *)((0x6805 << 2) + 0xffd00000)
#define PWM_D2 (0x6806)
#define P_PWM_D2 (volatile unsigned int *)((0x6806 << 2) + 0xffd00000)
#define PWM_BLINK_CD (0x6807)
#define P_PWM_BLINK_CD (volatile unsigned int *)((0x6807 << 2) + 0xffd00000)
// ------------------------------------------------------------------------------------
// -----------------------------------------------
// CBUS_BASE: PWM_EF_CBUS_BASE = 0x64
// -----------------------------------------------
#define PWM_PWM_E (0x6400)
#define P_PWM_PWM_E (volatile unsigned int *)((0x6400 << 2) + 0xffd00000)
#define PWM_PWM_F (0x6401)
#define P_PWM_PWM_F (volatile unsigned int *)((0x6401 << 2) + 0xffd00000)
#define PWM_MISC_REG_EF (0x6402)
#define P_PWM_MISC_REG_EF (volatile unsigned int *)((0x6402 << 2) + 0xffd00000)
#define PWM_DELTA_SIGMA_EF (0x6403)
#define P_PWM_DELTA_SIGMA_EF (volatile unsigned int *)((0x6403 << 2) + 0xffd00000)
#define PWM_TIME_EF (0x6404)
#define P_PWM_TIME_EF (volatile unsigned int *)((0x6404 << 2) + 0xffd00000)
#define PWM_E2 (0x6405)
#define P_PWM_E2 (volatile unsigned int *)((0x6405 << 2) + 0xffd00000)
#define PWM_F2 (0x6406)
#define P_PWM_F2 (volatile unsigned int *)((0x6406 << 2) + 0xffd00000)
#define PWM_BLINK_EF (0x6407)
#define P_PWM_BLINK_EF (volatile unsigned int *)((0x6407 << 2) + 0xffd00000)
// ------------------------------------------------------------------------------------
// -----------------------------------------------
// CBUS_BASE: MSR_CLK_CBUS_BASE = 0x60
// -----------------------------------------------
#define MSR_CLK_DUTY (0x6000)
#define P_MSR_CLK_DUTY (volatile unsigned int *)((0x6000 << 2) + 0xffd00000)
#define MSR_CLK_REG0 (0x6001)
#define P_MSR_CLK_REG0 (volatile unsigned int *)((0x6001 << 2) + 0xffd00000)
#define MSR_CLK_REG1 (0x6002)
#define P_MSR_CLK_REG1 (volatile unsigned int *)((0x6002 << 2) + 0xffd00000)
#define MSR_CLK_REG2 (0x6003)
#define P_MSR_CLK_REG2 (volatile unsigned int *)((0x6003 << 2) + 0xffd00000)
#define MSR_CLK_REG3 (0x6004)
#define P_MSR_CLK_REG3 (volatile unsigned int *)((0x6004 << 2) + 0xffd00000)
#define MSR_CLK_REG4 (0x6005)
#define P_MSR_CLK_REG4 (volatile unsigned int *)((0x6005 << 2) + 0xffd00000)
#define MSR_CLK_REG5 (0x6006)
#define P_MSR_CLK_REG5 (volatile unsigned int *)((0x6006 << 2) + 0xffd00000)
// ------------------------------------------------------------------------------------
// -----------------------------------------------
// CBUS_BASE: STEAM_CBUS_BASE = 0x2c
// -----------------------------------------------
// bit 31:24 -- event_length
// bit 23:22 -- bus_1st_sel_1 //00-gpio, 01-reserved, 10-addr, 11-data
// bit 21:20 -- bus_2nd_sel_1
// bit 19:18 -- bus_1st_sel_0
// bit 17:16 -- bus_2nd_sel_0
// bit 15:0 -- set output value (output 1 will read according to external input)
#define STREAM_EVENT_INFO (0x2c00)
#define P_STREAM_EVENT_INFO (volatile unsigned int *)((0x2c00 << 2) + 0xffd00000)
// bit 31 -- force_parity_1
// bit 30 -- LSB_first
// bit 31:20 -- reserved
// bit 19:16 -- toggle point index
// bit 15:8 -- output togle point1
// bit 7:0 -- output togle point0 (0xff means input)
#define STREAM_OUTPUT_CONFIG (0x2c01)
#define P_STREAM_OUTPUT_CONFIG (volatile unsigned int *)((0x2c01 << 2) + 0xffd00000)
// bit 31:24 -- clock_divide_ext
// bit 23:20 -- s_bus_start ( sclk, sdataout, sdatain) // 0 means no s_bus used
// bit 19 -- no_sclk_on_pin // will use internal write clock and read clock (like RS232)
// bit 18 -- invert_sclk_in
// bit 17 -- sdata_send_busy // indicate one data is sending -- read only
// bit 16 -- one_sdata_received // set when one sdata is received, can write 0 to clear
// bit 15 -- sdata_parity // (write -- 0-even, 1-odd) (read -- received parity check)
// bit 14 -- sdata_send_type // 0 -- 8 bits 1 -- 32 bits ( for fujitsu only )
// bit 13 -- sdata_receive_type // 0 -- 8 bits only 1 -- 8/32 bits
// bit 12 -- invert_request_out
// bit 11:8 -- request_out_sel // 0 means disable output
// bit 7:0 -- stop_request_count
#define C_D_BUS_CONTROL (0x2c02)
#define P_C_D_BUS_CONTROL (volatile unsigned int *)((0x2c02 << 2) + 0xffd00000)
// bit 31:0 -- serial data (write: output one data, read: input data)
#define C_DATA (0x2c03)
#define P_C_DATA (volatile unsigned int *)((0x2c03 << 2) + 0xffd00000)
// bit 31:28 bus_width_1
// bit 27:24 bus_start_pin_1
// bit 23:16 bus_sel_chang_point_1
// bit 15:12 bus_width_0
// bit 11:08 bus_start_pin_0
// bit 07:00 bus_sel_chang_point_0
#define STREAM_BUS_CONFIG (0x2c04)
#define P_STREAM_BUS_CONFIG (volatile unsigned int *)((0x2c04 << 2) + 0xffd00000)
// bit 31:24 clock_divide
// bit 23:20 clock_output_sel -- 0 means disable clock output
// bit 19 -- inc_event_addr
// bit 18 -- async_fifo_endian
// bit 17 -- send_to_async_fifo
// bit 16 -- data_in_serial_lsb
// bit 15 -- invert_no_wait_condition_0
// bit 14 -- invert_no_wait_condition_1
// bit 13 -- invert_no_wait_condition_2
// bit 12 -- invert_data_bus
// bit 11 -- invert_clock_in
// bit 10 -- event_wait_clk_en
// bit 9 -- data_in_serial
// bit 8 -- invert_data_in_clk
// bit 7:4 -- data_in_begin
// bit 3:0 -- data_in_clk_sel
#define STREAM_DATA_IN_CONFIG (0x2c05)
#define P_STREAM_DATA_IN_CONFIG (volatile unsigned int *)((0x2c05 << 2) + 0xffd00000)
// wait condition and irq should not be connected to 0, 0 means disable)
// bit 31:28 -- no_wait_condition_0 (0 means disable this condition)
// bit 27:24 -- no_wait_condition_1 (0 means disable this condition)
// bit 23:20 -- no_wait_condition_2 (0 means disable this condition)
// bit 19:16 -- irq_input_sel (0 means disable this interrupt)
// bit 15:13 -- interrupt_status (read) clear status (write) (ext 0, ext 1, transfer end)
// bit 12 -- enable_sdata_irq
// bit 11 -- invert_irq_0
// bit 10 -- invert_irq_1
// bit 9 -- enable_transfer_end_irq
// bit 8 -- enable_second_ext_irq
// bit 7:0 -- no_wait_condition_check_point (0xff means no check)
#define STREAM_WAIT_IRQ_CONFIG (0x2c06)
#define P_STREAM_WAIT_IRQ_CONFIG (volatile unsigned int *)((0x2c06 << 2) + 0xffd00000)
// bit 31:24 -- event address
// bit 23:16 -- event data
// bit 15:1 -- event repeat times (0 means one time event)
// bit 0 -- Start Event (write) event_busy (read)
#define STREAM_EVENT_CTL (0x2c07)
#define P_STREAM_EVENT_CTL (volatile unsigned int *)((0x2c07 << 2) + 0xffd00000)
// ------------------------------------------------------------------------------------
// -----------------------------------------------
// CBUS_BASE: SYNC_FIFO_CBUS_BASE = 0x28
// -----------------------------------------------
#define ASYNC_FIFO_REG0 (0x2800)
#define P_ASYNC_FIFO_REG0 (volatile unsigned int *)((0x2800 << 2) + 0xffd00000)
#define ASYNC_FIFO_REG1 (0x2801)
#define P_ASYNC_FIFO_REG1 (volatile unsigned int *)((0x2801 << 2) + 0xffd00000)
#define ASYNC_FIFO_FLUSH_STATUS 31
#define ASYNC_FIFO_ERR 30
#define ASYNC_FIFO_FIFO_EMPTY 29
#define ASYNC_FIFO_TO_HIU 24
#define ASYNC_FIFO_FLUSH 23
#define ASYNC_FIFO_RESET 22
#define ASYNC_FIFO_WRAP_EN 21
#define ASYNC_FIFO_FLUSH_EN 20
#define ASYNC_FIFO_RESIDUAL_MSB 19
#define ASYNC_FIFO_RESIDUAL_LSB 15
#define ASYNC_FIFO_FLUSH_CNT_MSB 14
#define ASYNC_FIFO_FLUSH_CNT_LSB 0
#define ASYNC_FIFO_REG2 (0x2802)
#define P_ASYNC_FIFO_REG2 (volatile unsigned int *)((0x2802 << 2) + 0xffd00000)
#define ASYNC_FIFO_FIFO_FULL 26
#define ASYNC_FIFO_FILL_STATUS 25
#define ASYNC_FIFO_SOURCE_MSB 24
#define ASYNC_FIFO_SOURCE_LSB 23
#define ASYNC_FIFO_ENDIAN_MSB 22
#define ASYNC_FIFO_ENDIAN_LSB 21
#define ASYNC_FIFO_FILL_EN 20
#define ASYNC_FIFO_FILL_CNT_MSB 19
#define ASYNC_FIFO_FILL_CNT_LSB 0
#define ASYNC_FIFO_REG3 (0x2803)
#define P_ASYNC_FIFO_REG3 (volatile unsigned int *)((0x2803 << 2) + 0xffd00000)
#define ASYNC_FLUSH_SIZE_IRQ_MSB 15
#define ASYNC_FLUSH_SIZE_IRQ_LSB 0
#define ASYNC_FIFO_REG4 (0x2804)
#define P_ASYNC_FIFO_REG4 (volatile unsigned int *)((0x2804 << 2) + 0xffd00000)
#define ASYNC_FIFO_REG5 (0x2805)
#define P_ASYNC_FIFO_REG5 (volatile unsigned int *)((0x2805 << 2) + 0xffd00000)
// ------------------------------------------------------------------------------------
// -----------------------------------------------
// CBUS_BASE: SYNC_FIFO2_CBUS_BASE = 0x24
// -----------------------------------------------
#define ASYNC_FIFO2_REG0 (0x2400)
#define P_ASYNC_FIFO2_REG0 (volatile unsigned int *)((0x2400 << 2) + 0xffd00000)
#define ASYNC_FIFO2_REG1 (0x2401)
#define P_ASYNC_FIFO2_REG1 (volatile unsigned int *)((0x2401 << 2) + 0xffd00000)
#define ASYNC_FIFO2_REG2 (0x2402)
#define P_ASYNC_FIFO2_REG2 (volatile unsigned int *)((0x2402 << 2) + 0xffd00000)
#define ASYNC_FIFO2_REG3 (0x2403)
#define P_ASYNC_FIFO2_REG3 (volatile unsigned int *)((0x2403 << 2) + 0xffd00000)
#define ASYNC_FIFO2_REG4 (0x2404)
#define P_ASYNC_FIFO2_REG4 (volatile unsigned int *)((0x2404 << 2) + 0xffd00000)
#define ASYNC_FIFO2_REG5 (0x2405)
#define P_ASYNC_FIFO2_REG5 (volatile unsigned int *)((0x2405 << 2) + 0xffd00000)
// ------------------------------------------------------------------------------------
// -----------------------------------------------
// CBUS_BASE: SPIFC_CBUS_BASE = 0x50
// -----------------------------------------------
#define SPI_FLASH_CMD (0x5000)
#define P_SPI_FLASH_CMD (volatile unsigned int *)((0x5000 << 2) + 0xffd00000)
#define SPI_FLASH_READ 31
#define SPI_FLASH_WREN 30
#define SPI_FLASH_WRDI 29
#define SPI_FLASH_RDID 28
#define SPI_FLASH_RDSR 27
#define SPI_FLASH_WRSR 26
#define SPI_FLASH_PP 25
#define SPI_FLASH_SE 24
#define SPI_FLASH_BE 23
#define SPI_FLASH_CE 22
#define SPI_FLASH_DP 21
#define SPI_FLASH_RES 20
#define SPI_HPM 19
#define SPI_FLASH_USR 18
#define SPI_FLASH_USR_ADDR 15
#define SPI_FLASH_USR_DUMMY 14
#define SPI_FLASH_USR_DIN 13
#define SPI_FLASH_USR_DOUT 12
#define SPI_FLASH_USR_DUMMY_BLEN 10
#define SPI_FLASH_USR_CMD 0
#define SPI_FLASH_ADDR (0x5001)
#define P_SPI_FLASH_ADDR (volatile unsigned int *)((0x5001 << 2) + 0xffd00000)
#define SPI_FLASH_BYTES_LEN 24
#define SPI_FLASH_ADDR_START 0
#define SPI_FLASH_CTRL (0x5002)
#define P_SPI_FLASH_CTRL (volatile unsigned int *)((0x5002 << 2) + 0xffd00000)
#define SPI_ENABLE_AHB 17
#define SPI_SST_AAI 16
#define SPI_RES_RID 15
#define SPI_FREAD_DUAL 14
#define SPI_READ_READ_EN 13
#define SPI_CLK_DIV0 12
#define SPI_CLKCNT_N 8
#define SPI_CLKCNT_H 4
#define SPI_CLKCNT_L 0
#define SPI_FLASH_CTRL1 (0x5003)
#define P_SPI_FLASH_CTRL1 (volatile unsigned int *)((0x5003 << 2) + 0xffd00000)
#define SPI_FLASH_STATUS (0x5004)
#define P_SPI_FLASH_STATUS (volatile unsigned int *)((0x5004 << 2) + 0xffd00000)
#define SPI_FLASH_CTRL2 (0x5005)
#define P_SPI_FLASH_CTRL2 (volatile unsigned int *)((0x5005 << 2) + 0xffd00000)
#define SPI_FLASH_CLOCK (0x5006)
#define P_SPI_FLASH_CLOCK (volatile unsigned int *)((0x5006 << 2) + 0xffd00000)
#define SPI_FLASH_USER (0x5007)
#define P_SPI_FLASH_USER (volatile unsigned int *)((0x5007 << 2) + 0xffd00000)
#define SPI_FLASH_USER1 (0x5008)
#define P_SPI_FLASH_USER1 (volatile unsigned int *)((0x5008 << 2) + 0xffd00000)
#define SPI_FLASH_USER2 (0x5009)
#define P_SPI_FLASH_USER2 (volatile unsigned int *)((0x5009 << 2) + 0xffd00000)
#define SPI_FLASH_USER3 (0x500a)
#define P_SPI_FLASH_USER3 (volatile unsigned int *)((0x500a << 2) + 0xffd00000)
#define SPI_FLASH_USER4 (0x500b)
#define P_SPI_FLASH_USER4 (volatile unsigned int *)((0x500b << 2) + 0xffd00000)
#define SPI_FLASH_SLAVE (0x500c)
#define P_SPI_FLASH_SLAVE (volatile unsigned int *)((0x500c << 2) + 0xffd00000)
#define SPI_FLASH_SLAVE1 (0x500d)
#define P_SPI_FLASH_SLAVE1 (volatile unsigned int *)((0x500d << 2) + 0xffd00000)
#define SPI_FLASH_SLAVE2 (0x500e)
#define P_SPI_FLASH_SLAVE2 (volatile unsigned int *)((0x500e << 2) + 0xffd00000)
#define SPI_FLASH_SLAVE3 (0x500f)
#define P_SPI_FLASH_SLAVE3 (volatile unsigned int *)((0x500f << 2) + 0xffd00000)
#define SPI_FLASH_C0 (0x5010)
#define P_SPI_FLASH_C0 (volatile unsigned int *)((0x5010 << 2) + 0xffd00000)
#define SPI_FLASH_C1 (0x5011)
#define P_SPI_FLASH_C1 (volatile unsigned int *)((0x5011 << 2) + 0xffd00000)
#define SPI_FLASH_C2 (0x5012)
#define P_SPI_FLASH_C2 (volatile unsigned int *)((0x5012 << 2) + 0xffd00000)
#define SPI_FLASH_C3 (0x5013)
#define P_SPI_FLASH_C3 (volatile unsigned int *)((0x5013 << 2) + 0xffd00000)
#define SPI_FLASH_C4 (0x5014)
#define P_SPI_FLASH_C4 (volatile unsigned int *)((0x5014 << 2) + 0xffd00000)
#define SPI_FLASH_C5 (0x5015)
#define P_SPI_FLASH_C5 (volatile unsigned int *)((0x5015 << 2) + 0xffd00000)
#define SPI_FLASH_C6 (0x5016)
#define P_SPI_FLASH_C6 (volatile unsigned int *)((0x5016 << 2) + 0xffd00000)
#define SPI_FLASH_C7 (0x5017)
#define P_SPI_FLASH_C7 (volatile unsigned int *)((0x5017 << 2) + 0xffd00000)
#define SPI_FLASH_B8 (0x5018)
#define P_SPI_FLASH_B8 (volatile unsigned int *)((0x5018 << 2) + 0xffd00000)
#define SPI_FLASH_B9 (0x5019)
#define P_SPI_FLASH_B9 (volatile unsigned int *)((0x5019 << 2) + 0xffd00000)
#define SPI_FLASH_B10 (0x501a)
#define P_SPI_FLASH_B10 (volatile unsigned int *)((0x501a << 2) + 0xffd00000)
#define SPI_FLASH_B11 (0x501b)
#define P_SPI_FLASH_B11 (volatile unsigned int *)((0x501b << 2) + 0xffd00000)
#define SPI_FLASH_B12 (0x501c)
#define P_SPI_FLASH_B12 (volatile unsigned int *)((0x501c << 2) + 0xffd00000)
#define SPI_FLASH_B13 (0x501d)
#define P_SPI_FLASH_B13 (volatile unsigned int *)((0x501d << 2) + 0xffd00000)
#define SPI_FLASH_B14 (0x501e)
#define P_SPI_FLASH_B14 (volatile unsigned int *)((0x501e << 2) + 0xffd00000)
#define SPI_FLASH_B15 (0x501f)
#define P_SPI_FLASH_B15 (volatile unsigned int *)((0x501f << 2) + 0xffd00000)
// ------------------------------------------------------------------------------------
//spicc 0
// -----------------------------------------------
// CBUS_BASE: SPICC0_CBUS_BASE = 0x4c
// -----------------------------------------------
#define SPICC0_RXDATA (0x4c00)
#define P_SPICC0_RXDATA (volatile unsigned int *)((0x4c00 << 2) + 0xffd00000)
#define SPICC0_TXDATA (0x4c01)
#define P_SPICC0_TXDATA (volatile unsigned int *)((0x4c01 << 2) + 0xffd00000)
#define SPICC0_CONREG (0x4c02)
#define P_SPICC0_CONREG (volatile unsigned int *)((0x4c02 << 2) + 0xffd00000)
#define SPICC0_INTREG (0x4c03)
#define P_SPICC0_INTREG (volatile unsigned int *)((0x4c03 << 2) + 0xffd00000)
#define SPICC0_DMAREG (0x4c04)
#define P_SPICC0_DMAREG (volatile unsigned int *)((0x4c04 << 2) + 0xffd00000)
#define SPICC0_STATREG (0x4c05)
#define P_SPICC0_STATREG (volatile unsigned int *)((0x4c05 << 2) + 0xffd00000)
#define SPICC0_PERIODREG (0x4c06)
#define P_SPICC0_PERIODREG (volatile unsigned int *)((0x4c06 << 2) + 0xffd00000)
#define SPICC0_TESTREG (0x4c07)
#define P_SPICC0_TESTREG (volatile unsigned int *)((0x4c07 << 2) + 0xffd00000)
#define SPICC0_DRADDR (0x4c08)
#define P_SPICC0_DRADDR (volatile unsigned int *)((0x4c08 << 2) + 0xffd00000)
#define SPICC0_DWADDR (0x4c09)
#define P_SPICC0_DWADDR (volatile unsigned int *)((0x4c09 << 2) + 0xffd00000)
#define SPICC0_LD_CNTL0 (0x4c0a)
#define P_SPICC0_LD_CNTL0 (volatile unsigned int *)((0x4c0a << 2) + 0xffd00000)
#define SPICC0_LD_CNTL1 (0x4c0b)
#define P_SPICC0_LD_CNTL1 (volatile unsigned int *)((0x4c0b << 2) + 0xffd00000)
#define SPICC0_LD_RADDR (0x4c0c)
#define P_SPICC0_LD_RADDR (volatile unsigned int *)((0x4c0c << 2) + 0xffd00000)
#define SPICC0_LD_WADDR (0x4c0d)
#define P_SPICC0_LD_WADDR (volatile unsigned int *)((0x4c0d << 2) + 0xffd00000)
#define SPICC0_ENHANCE_CNTL (0x4c0e)
#define P_SPICC0_ENHANCE_CNTL (volatile unsigned int *)((0x4c0e << 2) + 0xffd00000)
// ------------------------------------------------------------------------------------
//spicc 1
// -----------------------------------------------
// CBUS_BASE: SPICC1_CBUS_BASE = 0x54
// -----------------------------------------------
#define SPICC1_RXDATA (0x5400)
#define P_SPICC1_RXDATA (volatile unsigned int *)((0x5400 << 2) + 0xffd00000)
#define SPICC1_TXDATA (0x5401)
#define P_SPICC1_TXDATA (volatile unsigned int *)((0x5401 << 2) + 0xffd00000)
#define SPICC1_CONREG (0x5402)
#define P_SPICC1_CONREG (volatile unsigned int *)((0x5402 << 2) + 0xffd00000)
#define SPICC1_INTREG (0x5403)
#define P_SPICC1_INTREG (volatile unsigned int *)((0x5403 << 2) + 0xffd00000)
#define SPICC1_DMAREG (0x5404)
#define P_SPICC1_DMAREG (volatile unsigned int *)((0x5404 << 2) + 0xffd00000)
#define SPICC1_STATREG (0x5405)
#define P_SPICC1_STATREG (volatile unsigned int *)((0x5405 << 2) + 0xffd00000)
#define SPICC1_PERIODREG (0x5406)
#define P_SPICC1_PERIODREG (volatile unsigned int *)((0x5406 << 2) + 0xffd00000)
#define SPICC1_TESTREG (0x5407)
#define P_SPICC1_TESTREG (volatile unsigned int *)((0x5407 << 2) + 0xffd00000)
#define SPICC1_DRADDR (0x5408)
#define P_SPICC1_DRADDR (volatile unsigned int *)((0x5408 << 2) + 0xffd00000)
#define SPICC1_DWADDR (0x5409)
#define P_SPICC1_DWADDR (volatile unsigned int *)((0x5409 << 2) + 0xffd00000)
#define SPICC1_LD_CNTL0 (0x540a)
#define P_SPICC1_LD_CNTL0 (volatile unsigned int *)((0x540a << 2) + 0xffd00000)
#define SPICC1_LD_CNTL1 (0x540b)
#define P_SPICC1_LD_CNTL1 (volatile unsigned int *)((0x540b << 2) + 0xffd00000)
#define SPICC1_LD_RADDR (0x540c)
#define P_SPICC1_LD_RADDR (volatile unsigned int *)((0x540c << 2) + 0xffd00000)
#define SPICC1_LD_WADDR (0x540d)
#define P_SPICC1_LD_WADDR (volatile unsigned int *)((0x540d << 2) + 0xffd00000)
#define SPICC1_ENHANCE_CNTL (0x540e)
#define P_SPICC1_ENHANCE_CNTL (volatile unsigned int *)((0x540e << 2) + 0xffd00000)
//
//// -------------------------------------------------------------------
//// PSEL Group #1: 0x400 ~ 0x7FF
//// -------------------------------------------------------------------
//`define PERIPHS1_CBUS_BASE 8'h28
//
//
//
//// ----------------------------
//// IR Remote (8)
//// ----------------------------
//`define IR_DEC_LDR_ACTIVE 8'h20
//`define IR_DEC_LDR_IDLE 8'h21
//`define IR_DEC_LDR_REPEAT 8'h22
//`define IR_DEC_BIT_0 8'h23
//`define IR_DEC_REG0 8'h24
//`define IR_DEC_FRAME 8'h25
//`define IR_DEC_STATUS 8'h26
//`define IR_DEC_REG1 8'h27
//
//// ----------------------------
//// Demod Sampling
//// ----------------------------
//`define DEMOD_ADC_SAMPLING 8'h2d
//// ----------------------------
//// WIFI
//// ----------------------------
//// `define WIFI_ADC_SAMPLING 8'h2e
//// `define WIFI_ADC_READBACK 8'h2f
//
//
//// ---------------------------
//// EFUSE (4)
//// ----------------------------
//// Moved to the Secure APB3 bus
//// `define EFUSE_CNTL0 8'h58
//// `define EFUSE_CNTL1 8'h59
//// `define EFUSE_CNTL2 8'h5a
//// `define EFUSE_CNTL3 8'h5b
//// `define EFUSE_CNTL4 8'h5c
//
//// ---------------------------------------------
//// Separate APB slave that shares the CBUS/APB
//// register space of the static registers
//// ---------------------------------------------
//
//`define ATAPI_IDEREG0 8'h60
// `define IDE_UDMA_PIO_STATE 15
// `define IDE_BUSY 14
// `define IDE_ERROR_BIT 13
// `define IDE_DMARQ_BIT 12
// `define IDE_IORDY_BIT 11
// `define IDE_IORDY_EN_BIT 10
// `define IDE_DIS_CSEL_BIT 9
// `define IDE_CSEL_BIT 8
// `define IDE_IRQ14 2
// `define IDE_ATAPI_GPIO_EN 3
// `define IDE_DMARQ_FULL 1
// `define IDE_ENABLE 0
//`define ATAPI_IDEREG1 8'h61
//`define ATAPI_IDEREG2 8'h62
// `define IDE_XFER_CNT_MSB_BIT 18
// `define IDE_XFER_CNT_LSB_BIT 0
//`define ATAPI_CYCTIME 8'h63
//`define ATAPI_IDETIME 8'h64
//`define ATAPI_PIO_TIMING 8'h65
//`define ATAPI_TABLE_ADD_REG 8'h66
//`define ATAPI_IDEREG3 8'h67
//`define ATAPI_UDMA_REG0 8'h68
//`define ATAPI_UDMA_REG1 8'h69
//
//// Room for registers here
//
//`define TRANS_PWMA_REG0 8'h70
//`define TRANS_PWMA_REG1 8'h71
//`define TRANS_PWMA_MUX0 8'h72
//`define TRANS_PWMA_MUX1 8'h73
//`define TRANS_PWMA_MUX2 8'h74
//`define TRANS_PWMA_MUX3 8'h75
//`define TRANS_PWMA_MUX4 8'h76
//`define TRANS_PWMA_MUX5 8'h77
//
//`define TRANS_PWMB_REG0 8'h78
//`define TRANS_PWMB_REG1 8'h79
//`define TRANS_PWMB_MUX0 8'h7a
//`define TRANS_PWMB_MUX1 8'h7b
//`define TRANS_PWMB_MUX2 8'h7c
//`define TRANS_PWMB_MUX3 8'h7d
//`define TRANS_PWMB_MUX4 8'h7e
//`define TRANS_PWMB_MUX5 8'h7f
//
//
//
//// ----------------------------
//// NAND (21)
//// ----------------------------
//`define NAND_START 8'h80
//`define NAND_ADR_CMD 8'h8a
//`define NAND_ADR_STS 8'h8b
//`define NAND_END 8'h8f
//
//// ----------------------------
//// ISP_FLASH_LED_CTRL
//// ----------------------------
////bit 31, reg_led_en //rising pulse start, falling pulse stop for torch mode
////bit 30, reg_inc_i_st_lat //for as3685, dynamic increase current during st_latch
////bit 29:28, reg_inv_en_pol //bit[29], invert en1, bit [28], invert en2
////bit 27, reg_switch_en1en2 //switch output en1 and en2. For IS3231: en1 is EN, en2 is mode.
////bit 26, reg_force_off_mode //1: reset state machine at the falling edge no matter which state it is in
////bit 25, reg_hold_nonstd_off_mode //hold the non-std led_off signal input before state "OFF"
////bit 24, reg_flash_mode_timeout_en //force to exit the Tlat state when time out, for flash mode protection
////bit 23, reg_en1_st_ini_level //en1 level during state ST_INI
////bit 22, reg_en2_st_set_mp_level //en2 level during state ST_SET_MP_HI, ST_SET_MP_LO
////bit 21, reg_en1_st_off_level //en1 level during state ST_OFF
////bit 20, reg_en2_st_off_level //en2 level during state ST_OFF
////bit 19:12, reg_en1_mp_num //en1 multi pulse number, up to 256 step current control
////bit 10:0, reg_t_st_ini //Max: 85.2 us under 24M clock input
//`define ISP_LED_CTRL 8'h98
//
////bit 31:21, reg_t_en1_inc_i_st_lat_cnt //Max: 85.2us under 24M. for as3685, dynamic increase current during st_latch
////bit 20:10, reg_t_en2_lo_st_ini //Max: 85.2 us under 24M clock input
////bit 9:0, reg_t_en2_hi1_st_lat_cnt //42.62us @24M, EN2 can output hi-lo-hi during ST_LATCH, this is the first lo -duration
//`define ISP_LED_TIMING1 8'h99
//
////bit 31:21, reg_t_en1_mp_hi_cnt //Max: 85.2 us under 24M clock input, mp means multi pulse
////bit 20:10, reg_t_en1_mp_lo_cnt //Max: 85.2 us under 24M clock input, mp means multi pulse
////bit 9:0, reg_t_en2_lo1_st_lat_cnt //42.62us @24M, EN2 can output hi-lo-hi during ST_LATCH, this is the first lo -duration
//`define ISP_LED_TIMING2 8'h9a
//
////bit 30:28, RO state
////bit 25:0, reg_flash_mode_timeout_cnt //up to 2.79s at 24Mhz clk input
//`define ISP_LED_TIMING3 8'h9b
//
////bit 25:0, reg_t_st_lat_cnt //up to 2.79s, keep the led on if it's 26'h3ffffff under torch mode
//`define ISP_LED_TIMING4 8'h9c
//
////bit 31:26, reg_t_st_off_cnt[5:0] //up to 85.2us OFF state.
////bit 25:0, reg_t_en2_hi2_st_lat_cnt //EN2 can output hi-lo-hi during ST_LATCH, this is the second hi -duration
//`define ISP_LED_TIMING5 8'h9d
//
////bit 30:26, reg_t_st_off_cnt[10:6] //up to 85.2us OFF state.
////bit 25:0, reg_t_en1_st_lat_hold_cnt //to make sure Tlat to meat it's minimum request 500us (since non-std led_off signal may comes in anytime)
//`define ISP_LED_TIMING6 8'h9e
//// ----------------------------
//// SAR ADC (16)
//// ----------------------------
////`define SAR_ADC_REG0 8'ha0
////`define SAR_ADC_CHAN_LIST 8'ha1
////`define SAR_ADC_AVG_CNTL 8'ha2
////`define SAR_ADC_REG3 8'ha3
////`define SAR_ADC_DELAY 8'ha4
////`define SAR_ADC_LAST_RD 8'ha5
////`define SAR_ADC_FIFO_RD 8'ha6
////`define SAR_ADC_AUX_SW 8'ha7
////`define SAR_ADC_CHAN_10_SW 8'ha8
////`define SAR_ADC_DETECT_IDLE_SW 8'ha9
////`define SAR_ADC_DELTA_10 8'haa
////`define SAR_ADC_REG11 8'hab
////`define SAR_ADC_REG12 8'hac
////`define SAR_ADC_REG13 8'had
//
//// ----------------------------
//// CTouch (16)
//// ----------------------------
//
//
//// ---------------------------
//// RTC (4)
//// ---------------------------
//`define RTC_ADDR0 8'hd0
//`define RTC_ADDR1 8'hd1
//`define RTC_ADDR2 8'hd2
//`define RTC_ADDR3 8'hd3
//`define RTC_ADDR4 8'hd4
//// ----------------------------
//// clock measure (4)
//// ----------------------------
//
//
//
//// -------------------------------------------------------------------
//// PSEL Group #2: 0x800 ~ 0xbFF
//// -------------------------------------------------------------------
//`define PERIPHS2_CBUS_BASE 8'h2c
//
//`define USB_ADDR0 8'h00
//`define USB_ADDR1 8'h01
//`define USB_ADDR2 8'h02
//`define USB_ADDR3 8'h03
//`define USB_ADDR4 8'h04
//`define USB_ADDR5 8'h05
//`define USB_ADDR6 8'h06
//`define USB_ADDR7 8'h07
//`define USB_ADDR8 8'h08
//`define USB_ADDR9 8'h09
//`define USB_ADDR10 8'h0a
//`define USB_ADDR11 8'h0b
//`define USB_ADDR12 8'h0c
//`define USB_ADDR13 8'h0d
//`define USB_ADDR14 8'h0e
//`define USB_ADDR15 8'h0f
//
//`define USB_ADDR16 8'h10
//`define USB_ADDR17 8'h11
//`define USB_ADDR18 8'h12
//`define USB_ADDR19 8'h13
//`define USB_ADDR20 8'h14
//`define USB_ADDR21 8'h15
//`define USB_ADDR22 8'h16
//`define USB_ADDR23 8'h17
//`define USB_ADDR24 8'h18
//`define USB_ADDR25 8'h19
//`define USB_ADDR26 8'h1a
//`define USB_ADDR27 8'h1b
//`define USB_ADDR28 8'h1c
//`define USB_ADDR29 8'h1d
//`define USB_ADDR30 8'h1e
//`define USB_ADDR31 8'h1f
//
//
//
//
//
//// -------------------------------------------------------------------
//// PSEL Group #3: 0xc00 ~ 0xFFF
//// -------------------------------------------------------------------
//`define PERIPHS3_CBUS_BASE 8'h30
//
//// ---------------------------
//// SDIO (8)
//// ---------------------------
//// `define C_SDIO_HIGH16 8'h00
//// bit 31:0 -- cmd_argument/MS_SHORT_DATA_WRITE
//`define CMD_ARGUMENT 8'h08
//// bit 31:24 -- repeat_package_times/MS_SHORT_DATA_WRITE_NUMBER
//// bit 21 -- use_int_window
//// bit 20 -- cmd_send_data/MS_HAVE_LONG_DATA_WRITE
//// bit 19 -- check_busy_on_dat0 (used for R1b response)
//// bit 18 -- response_crc7_from_8
//// bit 17 -- response_have_data/MS_HAVE_LONG_DATA_READ
//// bit 16 -- response_do_not_have_crc7/MS_SHORT_DATA_DO_NOT_HAVE_CRC16
//// bit 15:8 -- cmd_response_bits (00 means no response) /MS_SHORT_DATA_READ_NUMBER
//// bit 7:0 -- cmd_command/MS_TPC
//`define CMD_SEND 8'h09
//// bit 31:29 -- sdio_write_CRC_ok_status
//// bit 28:23 -- sdio_write_Nwr
//// bit 22:21 -- m_endian
//// bit 20 -- bus_width
//// bit 19 -- data_latch_at_negedge (normally at posedge)
//// bit 18 -- do_not_delay_data (normally delay one clock)
//// bit 17:12 -- cmd_argument_bits (before CRC, normally : 39)
//// bit 11 -- cmd_out_at_posedge (normally at negedge)
//// bit 10 -- cmd_disable_CRC
//// bit 9:0 -- cmd_clk_divide
//`define SDIO_CONFIG 8'h0a
//// bit 31:19 -- sdio_timing_out_count
//// bit 18 -- arc_timing_out_int_en
//// bit 17 -- amrisc_timing_out_int_en
//// bit 16 -- sdio_timig_out_int -- write 1 clear this int bit
//// bit 15:12 -- sdio_status_info -- used for change infor between ARC and Amrisc
//// bit 11 -- sdio_set_soft_int -- write 1 to this bit will set sdio_soft_int , read out is m_req_sdio
//// bit 10 -- sdio_soft_int -- write 1 clear this int bit
//// bit 9 -- sdio_cmd_int -- write 1 clear this int bit
//// bit 8 -- sdio_if_int -- write 1 clear this int bit
//// bit 7 -- sdio_data_write_crc16_ok -- Read-Only
//// bit 6 -- sdio_data_read_crc16_ok -- Read-Only
//// bit 5 -- sdio_response_crc7_ok -- Read-Only
//// bit 4 -- sdio_cmd_busy -- Read-Only
//// bit 3:0 -- sdio_status -- Read-Only
//`define SDIO_STATUS_IRQ 8'h0b
//// bit 31 -- halt_hole 0 -- 8 bits 1 -- 16 bits
//// bit 30 -- force_halt
//// bit 29:24 -- sdio_force_data_read (read_only)
//// bit 23:22 -- disable_mem_halt (write and read)
//// bit 21:16 -- sdio_force_output_en
//// bit 15 -- soft_reset
//// bit 14 -- sdio_force_enable
//// bit 13:8 -- sdio_force_data/sdio_read_data
//// bit 7:6 -- sdio_if_int_config
//// bit 5 -- arc_soft_int_en
//// bit 4 -- arc_cmd_int_en
//// bit 3 -- arc_if_int_en
//// bit 2 -- amrisc_soft_int_en
//// bit 1 -- amrisc_cmd_int_en
//// bit 0 -- amrisc_if_int_en
//`define SDIO_IRQ_CONFIG 8'h0c
//// bit 27:16 -- data_catch_finish_point
//// (
//// bit 15:12 -- response_read_index
//// bit 9 -- data_catch_readout_en
//// bit 8 -- write_read_out_index
//// ) this bits only write when write_read_out_index = 1
//// bit 11 -- sdio_1_data_swap01
//// bit 10 -- sdio_0_data_on_1
//// bit 7:6 -- data_catch_level
//// bit 5 -- stream_8_bits_mode
//// bit 4 -- stream_enable
//// bit 3 -- ms_sclk_always
//// bit 2 -- ms_enable
//// bit 1:0 -- SDIO_port_sel //00-sdio1, 01-sdio2, 02-sdio3
//`define SDIO_MULT_CONFIG 8'h0d
//// bit 31:0 -- m_addr_sdio
//`define SDIO_M_ADDR 8'h0e
//// bit 31 -- CRC_status_4line
//// bit 30 -- data_rw_do_not_have_crc16/MS_LONG_DATA_DO_NOT_HAVE_CRC16
//// bit 29:16 -- data_rw_number/MS_LONG_DATA_NUMBER
//// bit 15:0 -- cmd_argument_ext/MS_SHORT_DATA_EXTENSION
//`define SDIO_EXTENSION 8'h0f
//// ----------------------------
//// SDIO_AHB_CBUS (2)
//// ----------------------------
//// bit 17 -- arc_ahb_cbus_int_en
//// bit 16 -- amrisc_ahb_cbus_int_en
//// bit 15:8 -- SDIO_FIFO_count
//// bit 7:4 -- m_req_count
//// bit 3 -- reserved
//// bit 2 -- m_write_cbus
//// bit 1 -- m_req_cbus
//// bit 0 -- sdio_ahb_cbus_enable
//`define SDIO_AHB_CBUS_CTRL 8'h18
//// m_rd_data[31:0] when (m_write_cbus == 0) CBUS write
//// m_wr_data[31:0] when (m_write_cbus == 1) CBUS read
//`define SDIO_AHB_CBUS_M_DATA 8'h19
//
//
//// ----------------------------
//// SDHC (SDIO #2)
//// ----------------------------
//`define SD_REG0_ARGU 8'h80
//`define SD_REG1_SEND 8'h81
//`define SD_REG2_CNTL 8'h82
//`define SD_REG3_STAT 8'h83
//`define SD_REG4_CLKC 8'h84
//`define SD_REG5_ADDR 8'h85
//`define SD_REG6_PDMA 8'h86
//`define SD_REG7_MISC 8'h87
//`define SD_REG8_DATA 8'h88
//`define SD_REG9_ICTL 8'h89
//`define SD_REGA_ISTA 8'h8a
//`define SD_REGB_SRST 8'h8b
//`define SD_REGC_ESTA 8'h8c
//`define SD_REGD_ENHC 8'h8d
//`define SD_REGE_CLK2 8'h8e
//
//
// Closing file: periphs_reg.h
//
//
// Reading file: isa_reg.h
//
// $isa/rtl/isa_core register defines for the APB bus
// CBUS base slave address
// -----------------------------------------------
// CBUS_BASE: ISA_CBUS_BASE = 0x3c
// -----------------------------------------------
// Up to 256 registers for this base
#define ISA_DEBUG_REG0 (0x3c00)
#define P_ISA_DEBUG_REG0 (volatile unsigned int *)((0x3c00 << 2) + 0xffd00000)
#define ISA_DEBUG_REG1 (0x3c01)
#define P_ISA_DEBUG_REG1 (volatile unsigned int *)((0x3c01 << 2) + 0xffd00000)
#define ISA_DEBUG_REG2 (0x3c02)
#define P_ISA_DEBUG_REG2 (volatile unsigned int *)((0x3c02 << 2) + 0xffd00000)
#define ISA_DEBUG_REG3 (0x3c03)
#define P_ISA_DEBUG_REG3 (volatile unsigned int *)((0x3c03 << 2) + 0xffd00000)
#define ISA_PLL_CLK_SIM0 (0x3c08)
#define P_ISA_PLL_CLK_SIM0 (volatile unsigned int *)((0x3c08 << 2) + 0xffd00000)
#define ISA_CNTL_REG0 (0x3c09)
#define P_ISA_CNTL_REG0 (volatile unsigned int *)((0x3c09 << 2) + 0xffd00000)
// -----------------------------------------------------------
#define AO_CPU_IRQ_IN0_INTR_STAT (0x3c10)
#define P_AO_CPU_IRQ_IN0_INTR_STAT (volatile unsigned int *)((0x3c10 << 2) + 0xffd00000)
#define AO_CPU_IRQ_IN0_INTR_STAT_CLR (0x3c11)
#define P_AO_CPU_IRQ_IN0_INTR_STAT_CLR (volatile unsigned int *)((0x3c11 << 2) + 0xffd00000)
#define AO_CPU_IRQ_IN0_INTR_MASK (0x3c12)
#define P_AO_CPU_IRQ_IN0_INTR_MASK (volatile unsigned int *)((0x3c12 << 2) + 0xffd00000)
#define AO_CPU_IRQ_IN0_INTR_FIRQ_SEL (0x3c13)
#define P_AO_CPU_IRQ_IN0_INTR_FIRQ_SEL (volatile unsigned int *)((0x3c13 << 2) + 0xffd00000)
// define MEDIA_CPU_IRQ_IN1_INTR_STAT 8'h14
// define MEDIA_CPU_IRQ_IN1_INTR_STAT_CLR 8'h15
// define MEDIA_CPU_IRQ_IN1_INTR_MASK 8'h16
// define MEDIA_CPU_IRQ_IN1_INTR_FIRQ_SEL 8'h17
//
// define MEDIA_CPU_IRQ_IN2_INTR_STAT 8'h18
// define MEDIA_CPU_IRQ_IN2_INTR_STAT_CLR 8'h19
// define MEDIA_CPU_IRQ_IN2_INTR_MASK 8'h1a
// define MEDIA_CPU_IRQ_IN2_INTR_FIRQ_SEL 8'h1b
//
// define MEDIA_CPU_IRQ_IN3_INTR_STAT 8'h1c
// define MEDIA_CPU_IRQ_IN3_INTR_STAT_CLR 8'h1d
// define MEDIA_CPU_IRQ_IN3_INTR_MASK 8'h1e
// define MEDIA_CPU_IRQ_IN3_INTR_FIRQ_SEL 8'h1f
#define GPIO_INTR_EDGE_POL (0x3c20)
#define P_GPIO_INTR_EDGE_POL (volatile unsigned int *)((0x3c20 << 2) + 0xffd00000)
#define GPIO_INTR_GPIO_SEL0 (0x3c21)
#define P_GPIO_INTR_GPIO_SEL0 (volatile unsigned int *)((0x3c21 << 2) + 0xffd00000)
#define GPIO_INTR_GPIO_SEL1 (0x3c22)
#define P_GPIO_INTR_GPIO_SEL1 (volatile unsigned int *)((0x3c22 << 2) + 0xffd00000)
#define GPIO_INTR_FILTER_SEL0 (0x3c23)
#define P_GPIO_INTR_FILTER_SEL0 (volatile unsigned int *)((0x3c23 << 2) + 0xffd00000)
// `define GLOBAL_INTR_DISABLE 8'h24 never used
#define CVBS_IRQ0_CNTL (0x3c24)
#define P_CVBS_IRQ0_CNTL (volatile unsigned int *)((0x3c24 << 2) + 0xffd00000)
#define CVBS_IRQ1_CNTL (0x3c25)
#define P_CVBS_IRQ1_CNTL (volatile unsigned int *)((0x3c25 << 2) + 0xffd00000)
#define CVBS_IRQ0_COUNTER (0x3c26)
#define P_CVBS_IRQ0_COUNTER (volatile unsigned int *)((0x3c26 << 2) + 0xffd00000)
#define CVBS_IRQ1_COUNTER (0x3c27)
#define P_CVBS_IRQ1_COUNTER (volatile unsigned int *)((0x3c27 << 2) + 0xffd00000)
#define MEDIA_CPU_INTR_STAT (0x3c28)
#define P_MEDIA_CPU_INTR_STAT (volatile unsigned int *)((0x3c28 << 2) + 0xffd00000)
#define MEDIA_CPU_INTR_STAT_CLR (0x3c29)
#define P_MEDIA_CPU_INTR_STAT_CLR (volatile unsigned int *)((0x3c29 << 2) + 0xffd00000)
#define MEDIA_CPU_INTR_MASK (0x3c2a)
#define P_MEDIA_CPU_INTR_MASK (volatile unsigned int *)((0x3c2a << 2) + 0xffd00000)
#define MEDIA_CPU_INTR_FIRQ_SEL (0x3c2b)
#define P_MEDIA_CPU_INTR_FIRQ_SEL (volatile unsigned int *)((0x3c2b << 2) + 0xffd00000)
// -----------------------------------------------------------
#define ISA_BIST_REG0 (0x3c30)
#define P_ISA_BIST_REG0 (volatile unsigned int *)((0x3c30 << 2) + 0xffd00000)
#define ISA_BIST_REG1 (0x3c31)
#define P_ISA_BIST_REG1 (volatile unsigned int *)((0x3c31 << 2) + 0xffd00000)
// -----------------------------------------------------------
#define WATCHDOG_CNTL (0x3c34)
#define P_WATCHDOG_CNTL (volatile unsigned int *)((0x3c34 << 2) + 0xffd00000)
#define WATCHDOG_CNTL1 (0x3c35)
#define P_WATCHDOG_CNTL1 (volatile unsigned int *)((0x3c35 << 2) + 0xffd00000)
#define WATCHDOG_TCNT (0x3c36)
#define P_WATCHDOG_TCNT (volatile unsigned int *)((0x3c36 << 2) + 0xffd00000)
// Manually removed from auto-generated reg list due to conflict with
// watchdog.h macro. Code uses P_WATCHDOG_RESET so this is not needed.
// #define WATCHDOG_RESET (0x3c37)
#define P_WATCHDOG_RESET (volatile unsigned int *)((0x3c37 << 2) + 0xffd00000)
// -----------------------------------------------------------
#define AHB_ARBITER_REG (0x3c42)
#define P_AHB_ARBITER_REG (volatile unsigned int *)((0x3c42 << 2) + 0xffd00000)
#define AHB_ARBDEC_REG (0x3c43)
#define P_AHB_ARBDEC_REG (volatile unsigned int *)((0x3c43 << 2) + 0xffd00000)
#define AHB_ARBITER2_REG (0x3c4a)
#define P_AHB_ARBITER2_REG (volatile unsigned int *)((0x3c4a << 2) + 0xffd00000)
#define DEVICE_MMCP_CNTL (0x3c4b)
#define P_DEVICE_MMCP_CNTL (volatile unsigned int *)((0x3c4b << 2) + 0xffd00000)
#define AUDIO_MMCP_CNTL (0x3c4c)
#define P_AUDIO_MMCP_CNTL (volatile unsigned int *)((0x3c4c << 2) + 0xffd00000)
// -----------------------------------------------------------
#define ISA_TIMER_MUX (0x3c50)
#define P_ISA_TIMER_MUX (volatile unsigned int *)((0x3c50 << 2) + 0xffd00000)
#define ISA_TIMERA (0x3c51)
#define P_ISA_TIMERA (volatile unsigned int *)((0x3c51 << 2) + 0xffd00000)
#define ISA_TIMERB (0x3c52)
#define P_ISA_TIMERB (volatile unsigned int *)((0x3c52 << 2) + 0xffd00000)
#define ISA_TIMERC (0x3c53)
#define P_ISA_TIMERC (volatile unsigned int *)((0x3c53 << 2) + 0xffd00000)
#define ISA_TIMERD (0x3c54)
#define P_ISA_TIMERD (volatile unsigned int *)((0x3c54 << 2) + 0xffd00000)
#define FBUF_ADDR (0x3c56)
#define P_FBUF_ADDR (volatile unsigned int *)((0x3c56 << 2) + 0xffd00000)
#define VIDEO_FRM_BUF_MSB_BIT 23
#define VIDEO_FRM_BUF_LSB_BIT 2
#define SDRAM_CTL0 (0x3c57)
#define P_SDRAM_CTL0 (volatile unsigned int *)((0x3c57 << 2) + 0xffd00000)
#define SDRAM_CTL2 (0x3c58)
#define P_SDRAM_CTL2 (volatile unsigned int *)((0x3c58 << 2) + 0xffd00000)
//`define AO_CPU_CTL 8'h59
#define SDRAM_CTL4 (0x3c5a)
#define P_SDRAM_CTL4 (volatile unsigned int *)((0x3c5a << 2) + 0xffd00000)
#define SDRAM_CTL5 (0x3c5b)
#define P_SDRAM_CTL5 (volatile unsigned int *)((0x3c5b << 2) + 0xffd00000)
#define SDRAM_CTL6 (0x3c5c)
#define P_SDRAM_CTL6 (volatile unsigned int *)((0x3c5c << 2) + 0xffd00000)
#define SDRAM_CTL7 (0x3c5d)
#define P_SDRAM_CTL7 (volatile unsigned int *)((0x3c5d << 2) + 0xffd00000)
#define SDRAM_CTL8 (0x3c5e)
#define P_SDRAM_CTL8 (volatile unsigned int *)((0x3c5e << 2) + 0xffd00000)
#define AHB_MP4_MC_CTL (0x3c5f)
#define P_AHB_MP4_MC_CTL (volatile unsigned int *)((0x3c5f << 2) + 0xffd00000)
#define MEDIA_CPU_PCR (0x3c60)
#define P_MEDIA_CPU_PCR (volatile unsigned int *)((0x3c60 << 2) + 0xffd00000)
#define MEDIA_CPU_CTL (0x3c61)
#define P_MEDIA_CPU_CTL (volatile unsigned int *)((0x3c61 << 2) + 0xffd00000)
#define ISA_TIMERE (0x3c62)
#define P_ISA_TIMERE (volatile unsigned int *)((0x3c62 << 2) + 0xffd00000)
#define ISA_TIMERE_HI (0x3c63)
#define P_ISA_TIMERE_HI (volatile unsigned int *)((0x3c63 << 2) + 0xffd00000)
#define ISA_TIMER_MUX1 (0x3c64)
#define P_ISA_TIMER_MUX1 (volatile unsigned int *)((0x3c64 << 2) + 0xffd00000)
#define ISA_TIMERF (0x3c65)
#define P_ISA_TIMERF (volatile unsigned int *)((0x3c65 << 2) + 0xffd00000)
#define ISA_TIMERG (0x3c66)
#define P_ISA_TIMERG (volatile unsigned int *)((0x3c66 << 2) + 0xffd00000)
#define ISA_TIMERH (0x3c67)
#define P_ISA_TIMERH (volatile unsigned int *)((0x3c67 << 2) + 0xffd00000)
#define ISA_TIMERI (0x3c68)
#define P_ISA_TIMERI (volatile unsigned int *)((0x3c68 << 2) + 0xffd00000)
// ---------------------------------------------
#define ABUF_WR_CTL0 (0x3c70)
#define P_ABUF_WR_CTL0 (volatile unsigned int *)((0x3c70 << 2) + 0xffd00000)
#define ABUF_WR_INT_EN 31
#define ABUF_WR_INT_POS_MSB 30
#define ABUF_WR_INT_POS_LSB 16
#define ABUF_WR_BLK_SIZE_MSB 14
#define ABUF_WR_BLK_SIZE_LSB 0
#define ABUF_WR_CTL1 (0x3c71)
#define P_ABUF_WR_CTL1 (volatile unsigned int *)((0x3c71 << 2) + 0xffd00000)
#define ABUF_WR_INT_EN 31
#define ABUF_WR_INT_POS_MSB 30
#define ABUF_WR_INT_POS_LSB 16
#define ABUF_WR_BLK_SIZE_MSB 14
#define ABUF_WR_BLK_SIZE_LSB 0
#define ABUF_WR_CTL2 (0x3c72)
#define P_ABUF_WR_CTL2 (volatile unsigned int *)((0x3c72 << 2) + 0xffd00000)
#define ABUF_WR_CUR_FF_CNT_MSB 21
#define ABUF_WR_CUR_FF_CNT_LSB 16
#define ABUF_WR_CUR_BLK_MSB 14
#define ABUF_WR_CUR_BLK_LSB 0
#define ABUF_WR_CTL3 (0x3c73)
#define P_ABUF_WR_CTL3 (volatile unsigned int *)((0x3c73 << 2) + 0xffd00000)
#define ABUF_WR_AHB_RST_PLS 3
#define ABUF_WR_FF_CLR_PLS 2
#define ABUF_WR_PLY_RPT_LVL 1
#define ABUF_WR_FF_PAUSE_LVL 0
#define ABUF_RD_CTL0 (0x3c74)
#define P_ABUF_RD_CTL0 (volatile unsigned int *)((0x3c74 << 2) + 0xffd00000)
#define ABUF_RD_CTL1 (0x3c75)
#define P_ABUF_RD_CTL1 (volatile unsigned int *)((0x3c75 << 2) + 0xffd00000)
#define ABUF_RD_INT_EN 31
#define ABUF_RD_INT_POS_MSB 30
#define ABUF_RD_INT_POS_LSB 16
#define ABUF_RD_BLK_SIZE_MSB 14
#define ABUF_RD_BLK_SIZE_LSB 0
#define ABUF_RD_CTL2 (0x3c76)
#define P_ABUF_RD_CTL2 (volatile unsigned int *)((0x3c76 << 2) + 0xffd00000)
#define ABUF_RD_CUR_FF_CNT_MSB 21
#define ABUF_RD_CUR_FF_CNT_LSB 16
#define ABUF_RD_CUR_BLK_MSB 14
#define ABUF_RD_CUR_BLK_LSB 0
#define ABUF_RD_CTL3 (0x3c77)
#define P_ABUF_RD_CTL3 (volatile unsigned int *)((0x3c77 << 2) + 0xffd00000)
#define ABUF_RD_PLY_ONCE_PLS 4
#define ABUF_RD_AHB_RST_PLS 3
#define ABUF_RD_FF_CLR_PLS 2
#define ABUF_RD_PLY_RPT_LVL 1
#define ABUF_RD_FF_PAUSE_LVL 0
#define ABUF_ARB_CTL0 (0x3c78)
#define P_ABUF_ARB_CTL0 (volatile unsigned int *)((0x3c78 << 2) + 0xffd00000)
#define ABUF_FIFO_CTL0 (0x3c79)
#define P_ABUF_FIFO_CTL0 (volatile unsigned int *)((0x3c79 << 2) + 0xffd00000)
#define AIUout_FIFO_THRESHOLD_MSB 11
#define AIUout_FIFO_THRESHOLD_LSB 6
#define AIUin_FIFO_THRESHOLD_MSB 5
#define AIUin_FIFO_THRESHOLD_LSB 0
// ---------------------------------------------
#define AHB_BRIDGE_CNTL_WR (0x3c80)
#define P_AHB_BRIDGE_CNTL_WR (volatile unsigned int *)((0x3c80 << 2) + 0xffd00000)
#define AHB_BRIDGE_REMAP0 (0x3c81)
#define P_AHB_BRIDGE_REMAP0 (volatile unsigned int *)((0x3c81 << 2) + 0xffd00000)
#define AHB_BRIDGE_REMAP1 (0x3c82)
#define P_AHB_BRIDGE_REMAP1 (volatile unsigned int *)((0x3c82 << 2) + 0xffd00000)
#define AHB_BRIDGE_REMAP2 (0x3c83)
#define P_AHB_BRIDGE_REMAP2 (volatile unsigned int *)((0x3c83 << 2) + 0xffd00000)
#define AHB_BRIDGE_REMAP3 (0x3c84)
#define P_AHB_BRIDGE_REMAP3 (volatile unsigned int *)((0x3c84 << 2) + 0xffd00000)
#define AHB_BRIDGE_CNTL_REG1 (0x3c85)
#define P_AHB_BRIDGE_CNTL_REG1 (volatile unsigned int *)((0x3c85 << 2) + 0xffd00000)
#define AHB_BRIDGE_CNTL_REG2 (0x3c86)
#define P_AHB_BRIDGE_CNTL_REG2 (volatile unsigned int *)((0x3c86 << 2) + 0xffd00000)
// ---------------------------------------------
// ----------------------------------------------
// `define SYS_CPU_0_IRQ_IN0_INTR_STAT 8'h90
// `define SYS_CPU_0_IRQ_IN0_INTR_STAT_CLR 8'h91
// `define SYS_CPU_0_IRQ_IN0_INTR_MASK 8'h92
// `define SYS_CPU_0_IRQ_IN0_INTR_FIRQ_SEL 8'h93
// `define SYS_CPU_0_IRQ_IN1_INTR_STAT 8'h94
// `define SYS_CPU_0_IRQ_IN1_INTR_STAT_CLR 8'h95
// `define SYS_CPU_0_IRQ_IN1_INTR_MASK 8'h96
// `define SYS_CPU_0_IRQ_IN1_INTR_FIRQ_SEL 8'h97
// `define SYS_CPU_0_IRQ_IN2_INTR_STAT 8'h98
// `define SYS_CPU_0_IRQ_IN2_INTR_STAT_CLR 8'h99
// `define SYS_CPU_0_IRQ_IN2_INTR_MASK 8'h9a
// `define SYS_CPU_0_IRQ_IN2_INTR_FIRQ_SEL 8'h9b
// `define SYS_CPU_0_IRQ_IN3_INTR_STAT 8'h9c
// `define SYS_CPU_0_IRQ_IN3_INTR_STAT_CLR 8'h9d
// `define SYS_CPU_0_IRQ_IN3_INTR_MASK 8'h9e
// `define SYS_CPU_0_IRQ_IN3_INTR_FIRQ_SEL 8'h9f
// ----------------------------------------------
// `define SYS_CPU_1_IRQ_IN0_INTR_STAT 8'ha0
// `define SYS_CPU_1_IRQ_IN0_INTR_STAT_CLR 8'ha1
// `define SYS_CPU_1_IRQ_IN0_INTR_MASK 8'ha2
// `define SYS_CPU_1_IRQ_IN0_INTR_FIRQ_SEL 8'ha3
//
// `define SYS_CPU_1_IRQ_IN1_INTR_STAT 8'ha4
// `define SYS_CPU_1_IRQ_IN1_INTR_STAT_CLR 8'ha5
// `define SYS_CPU_1_IRQ_IN1_INTR_MASK 8'ha6
// `define SYS_CPU_1_IRQ_IN1_INTR_FIRQ_SEL 8'ha7
//
// `define SYS_CPU_1_IRQ_IN2_INTR_STAT 8'ha8
// `define SYS_CPU_1_IRQ_IN2_INTR_STAT_CLR 8'ha9
// `define SYS_CPU_1_IRQ_IN2_INTR_MASK 8'haa
// `define SYS_CPU_1_IRQ_IN2_INTR_FIRQ_SEL 8'hab
//
// `define SYS_CPU_1_IRQ_IN3_INTR_STAT 8'hac
// `define SYS_CPU_1_IRQ_IN3_INTR_STAT_CLR 8'had
// `define SYS_CPU_1_IRQ_IN3_INTR_MASK 8'hae
// `define SYS_CPU_1_IRQ_IN3_INTR_FIRQ_SEL 8'haf
// ----------------------------------------------
// `define MEDIA_CPU_IRQ_IN4_INTR_STAT 8'hb0
// `define MEDIA_CPU_IRQ_IN4_INTR_STAT_CLR 8'hb1
// `define MEDIA_CPU_IRQ_IN4_INTR_MASK 8'hb2
// `define MEDIA_CPU_IRQ_IN4_INTR_FIRQ_SEL 8'hb3
// `define SYS_CPU_0_IRQ_IN4_INTR_STAT 8'hb4
// `define SYS_CPU_0_IRQ_IN4_INTR_STAT_CLR 8'hb5
// `define SYS_CPU_0_IRQ_IN4_INTR_MASK 8'hb6
// `define SYS_CPU_0_IRQ_IN4_INTR_FIRQ_SEL 8'hb7
// `define SYS_CPU_1_IRQ_IN4_INTR_STAT 8'hb8
// `define SYS_CPU_1_IRQ_IN4_INTR_STAT_CLR 8'hb9
// `define SYS_CPU_1_IRQ_IN4_INTR_MASK 8'hba
// `define SYS_CPU_1_IRQ_IN4_INTR_FIRQ_SEL 8'hbb
// `define SYS_CPU_2_IRQ_IN4_INTR_STAT 8'hbc
// `define SYS_CPU_2_IRQ_IN4_INTR_STAT_CLR 8'hbd
// `define SYS_CPU_2_IRQ_IN4_INTR_MASK 8'hbe
// `define SYS_CPU_2_IRQ_IN4_INTR_FIRQ_SEL 8'hbf
// ----------------------------------------------
// `define SYS_CPU_2_IRQ_IN0_INTR_STAT 8'hc0
// `define SYS_CPU_2_IRQ_IN0_INTR_STAT_CLR 8'hc1
// `define SYS_CPU_2_IRQ_IN0_INTR_MASK 8'hc2
// `define SYS_CPU_2_IRQ_IN0_INTR_FIRQ_SEL 8'hc3
// `define SYS_CPU_2_IRQ_IN1_INTR_STAT 8'hc4
// `define SYS_CPU_2_IRQ_IN1_INTR_STAT_CLR 8'hc5
// `define SYS_CPU_2_IRQ_IN1_INTR_MASK 8'hc6
// `define SYS_CPU_2_IRQ_IN1_INTR_FIRQ_SEL 8'hc7
// `define SYS_CPU_2_IRQ_IN2_INTR_STAT 8'hc8
// `define SYS_CPU_2_IRQ_IN2_INTR_STAT_CLR 8'hc9
// `define SYS_CPU_2_IRQ_IN2_INTR_MASK 8'hca
// `define SYS_CPU_2_IRQ_IN2_INTR_FIRQ_SEL 8'hcb
// `define SYS_CPU_2_IRQ_IN3_INTR_STAT 8'hcc
// `define SYS_CPU_2_IRQ_IN3_INTR_STAT_CLR 8'hcd
// `define SYS_CPU_2_IRQ_IN3_INTR_MASK 8'hce
// `define SYS_CPU_2_IRQ_IN3_INTR_FIRQ_SEL 8'hcf
// ----------------------------------------------
// `define SYS_CPU_3_IRQ_IN0_INTR_STAT 8'hd0
// `define SYS_CPU_3_IRQ_IN0_INTR_STAT_CLR 8'hd1
// `define SYS_CPU_3_IRQ_IN0_INTR_MASK 8'hd2
// `define SYS_CPU_3_IRQ_IN0_INTR_FIRQ_SEL 8'hd3
// `define SYS_CPU_3_IRQ_IN1_INTR_STAT 8'hd4
// `define SYS_CPU_3_IRQ_IN1_INTR_STAT_CLR 8'hd5
// `define SYS_CPU_3_IRQ_IN1_INTR_MASK 8'hd6
// `define SYS_CPU_3_IRQ_IN1_INTR_FIRQ_SEL 8'hd7
// `define SYS_CPU_3_IRQ_IN2_INTR_STAT 8'hd8
// `define SYS_CPU_3_IRQ_IN2_INTR_STAT_CLR 8'hd9
// `define SYS_CPU_3_IRQ_IN2_INTR_MASK 8'hda
// `define SYS_CPU_3_IRQ_IN2_INTR_FIRQ_SEL 8'hdb
// `define SYS_CPU_3_IRQ_IN3_INTR_STAT 8'hdc
// `define SYS_CPU_3_IRQ_IN3_INTR_STAT_CLR 8'hdd
// `define SYS_CPU_3_IRQ_IN3_INTR_MASK 8'hde
// `define SYS_CPU_3_IRQ_IN3_INTR_FIRQ_SEL 8'hdf
// ----------------------------------------------
// `define SYS_CPU_3_IRQ_IN4_INTR_STAT 8'he0
// `define SYS_CPU_3_IRQ_IN4_INTR_STAT_CLR 8'he1
// `define SYS_CPU_3_IRQ_IN4_INTR_MASK 8'he2
// `define SYS_CPU_3_IRQ_IN4_INTR_FIRQ_SEL 8'he3
// `define MEDIA_CPU_IRQ_IN5_INTR_STAT 8'he4
// `define MEDIA_CPU_IRQ_IN5_INTR_STAT_CLR 8'he5
// `define MEDIA_CPU_IRQ_IN5_INTR_MASK 8'he6
// `define MEDIA_CPU_IRQ_IN5_INTR_FIRQ_SEL 8'he7
// `define SYS_CPU_0_IRQ_IN5_INTR_STAT 8'he8
// `define SYS_CPU_0_IRQ_IN5_INTR_STAT_CLR 8'he9
// `define SYS_CPU_0_IRQ_IN5_INTR_MASK 8'hea
// `define SYS_CPU_0_IRQ_IN5_INTR_FIRQ_SEL 8'heb
//
// Closing file: isa_reg.h
//
//`include "bt656_reg.h"
//`include "pdm_reg.h"
//========================================================================
// Global Control Registers (12'h000 - 12'h0ff)
//
//========================================================================
// -----------------------------------------------
// CBUS_BASE: RESET_CBUS_BASE = 0x04
// -----------------------------------------------
#define VERSION_CTRL (0x0400)
#define P_VERSION_CTRL (volatile unsigned int *)((0x0400 << 2) + 0xffd00000)
#define RESET0_REGISTER (0x0401)
#define P_RESET0_REGISTER (volatile unsigned int *)((0x0401 << 2) + 0xffd00000)
#define RESET1_REGISTER (0x0402)
#define P_RESET1_REGISTER (volatile unsigned int *)((0x0402 << 2) + 0xffd00000)
#define RESET2_REGISTER (0x0403)
#define P_RESET2_REGISTER (volatile unsigned int *)((0x0403 << 2) + 0xffd00000)
#define RESET3_REGISTER (0x0404)
#define P_RESET3_REGISTER (volatile unsigned int *)((0x0404 << 2) + 0xffd00000)
#define RESET4_REGISTER (0x0405)
#define P_RESET4_REGISTER (volatile unsigned int *)((0x0405 << 2) + 0xffd00000)
#define RESET5_REGISTER (0x0406)
#define P_RESET5_REGISTER (volatile unsigned int *)((0x0406 << 2) + 0xffd00000)
#define RESET6_REGISTER (0x0407)
#define P_RESET6_REGISTER (volatile unsigned int *)((0x0407 << 2) + 0xffd00000)
#define RESET7_REGISTER (0x0408)
#define P_RESET7_REGISTER (volatile unsigned int *)((0x0408 << 2) + 0xffd00000)
#define RESET0_MASK (0x0410)
#define P_RESET0_MASK (volatile unsigned int *)((0x0410 << 2) + 0xffd00000)
#define RESET1_MASK (0x0411)
#define P_RESET1_MASK (volatile unsigned int *)((0x0411 << 2) + 0xffd00000)
#define RESET2_MASK (0x0412)
#define P_RESET2_MASK (volatile unsigned int *)((0x0412 << 2) + 0xffd00000)
#define RESET3_MASK (0x0413)
#define P_RESET3_MASK (volatile unsigned int *)((0x0413 << 2) + 0xffd00000)
#define RESET4_MASK (0x0414)
#define P_RESET4_MASK (volatile unsigned int *)((0x0414 << 2) + 0xffd00000)
#define RESET5_MASK (0x0415)
#define P_RESET5_MASK (volatile unsigned int *)((0x0415 << 2) + 0xffd00000)
#define RESET6_MASK (0x0416)
#define P_RESET6_MASK (volatile unsigned int *)((0x0416 << 2) + 0xffd00000)
#define CRT_MASK (0x0417)
#define P_CRT_MASK (volatile unsigned int *)((0x0417 << 2) + 0xffd00000)
#define RESET7_MASK (0x0418)
#define P_RESET7_MASK (volatile unsigned int *)((0x0418 << 2) + 0xffd00000)
#define RESET0_LEVEL (0x0420)
#define P_RESET0_LEVEL (volatile unsigned int *)((0x0420 << 2) + 0xffd00000)
#define RESET1_LEVEL (0x0421)
#define P_RESET1_LEVEL (volatile unsigned int *)((0x0421 << 2) + 0xffd00000)
#define RESET2_LEVEL (0x0422)
#define P_RESET2_LEVEL (volatile unsigned int *)((0x0422 << 2) + 0xffd00000)
#define RESET3_LEVEL (0x0423)
#define P_RESET3_LEVEL (volatile unsigned int *)((0x0423 << 2) + 0xffd00000)
#define RESET4_LEVEL (0x0424)
#define P_RESET4_LEVEL (volatile unsigned int *)((0x0424 << 2) + 0xffd00000)
#define RESET5_LEVEL (0x0425)
#define P_RESET5_LEVEL (volatile unsigned int *)((0x0425 << 2) + 0xffd00000)
#define RESET6_LEVEL (0x0426)
#define P_RESET6_LEVEL (volatile unsigned int *)((0x0426 << 2) + 0xffd00000)
#define RESET7_LEVEL (0x0427)
#define P_RESET7_LEVEL (volatile unsigned int *)((0x0427 << 2) + 0xffd00000)
//======================================
// Reset Register Bits
//
//======================================
#define HIU_RESET 0x0001
#define VLD_RESET 0x0002
#define IQIDCT_RESET 0x0004
#define MC_RESET 0x0008
#define DCU_RESET 0x0010
#define VIU_RESET 0x0020
#define AIU_RESET 0x0040
#define CPU_RESET 0x0080
#define AC3_RESET 0x0100
#define MPEG_RESET 0x0200
//-----------------------------------------------------------
// PARSER
//-----------------------------------------------------------
// -----------------------------------------------
// CBUS_BASE: PARSER_CBUS_BASE = 0x38
// -----------------------------------------------
// bit 31:8 -- es_pack_size
// bit 7:6 -- es_type 00-Video, 01-Audio, 10-Subtitle
// bit 5 -- es_write
// bit 4 -- es_passthrough
// bit 3 -- insert_before_es_write
// bit 2 -- discard_cmd
// bit 1 -- search_cmd
// bit 0 -- Parser Busy
#define PARSER_CONTROL (0x3860)
#define P_PARSER_CONTROL (volatile unsigned int *)((0x3860 << 2) + 0xffd00000)
// Write
// bit 31:0 begin address for parser fetch
// Read
// 32 bit current fetch address
#define PARSER_FETCH_ADDR (0x3861)
#define P_PARSER_FETCH_ADDR (volatile unsigned int *)((0x3861 << 2) + 0xffd00000)
// Write
// bit 31 circle buffer indicator
// bit 30 check_buffer_stop_addr
// bit 29:27 fetch endian
// bit 26:0 buffer size ( Bytes )
// Special command:
// when bit 26:0 == 27'h0
// then bit 29 -- stream_passthrough_enable
// bit 28:27 -- stream_passthrough_type
// Read
// 6:5 cmd_rd_ptr
// 4:3 cmd_wr_ptr
// 2:0 cmd_number
#define PARSER_FETCH_CMD (0x3862)
#define P_PARSER_FETCH_CMD (volatile unsigned int *)((0x3862 << 2) + 0xffd00000)
// 31:0 stop_fetch_addr
#define PARSER_FETCH_STOP_ADDR (0x3863)
#define P_PARSER_FETCH_STOP_ADDR (volatile unsigned int *)((0x3863 << 2) + 0xffd00000)
// 31:0 stop_fetch_addr - current_write_addr // read only
#define PARSER_FETCH_LEVEL (0x3864)
#define P_PARSER_FETCH_LEVEL (volatile unsigned int *)((0x3864 << 2) + 0xffd00000)
// bit 31 - fetch_dma_urgent
// bit 30 - stream_dma_urgent
// bit 29 - force_pfifo_ren
// bit 28 - pfifo_peak_enable
// bit 27 - enable_free_clk_parser_reg
// bit 26 -
// bit 25:24 - parser_src_sel (00 - fetch, 01 - aux1, 10 - aux2 11 - aux3)
// bit 23:16 - pfifo_empty_count
// bit 15:12 - max_es_write_cycle (x16x64bits)
// 11:10 - start code width ( 00-8bits, 01-16bits, 10-24bits, 11-32bits )
// 9:8 - pfifo data access width ( 00-8bits, 01-16bits, 10-24bits, 11-32bits )
// 7:0 - empty room for fetch data ( max_fetch_cycle ) x64 bits
#define PARSER_CONFIG (0x3865)
#define P_PARSER_CONFIG (volatile unsigned int *)((0x3865 << 2) + 0xffd00000)
// bit 24:16 -- pfifo_level
// bit 9:0 -- point to byte address
#define PFIFO_WR_PTR (0x3866)
#define P_PFIFO_WR_PTR (volatile unsigned int *)((0x3866 << 2) + 0xffd00000)
// bit 9:0 -- point to byte address
#define PFIFO_RD_PTR (0x3867)
#define P_PFIFO_RD_PTR (volatile unsigned int *)((0x3867 << 2) + 0xffd00000)
// bit 31:0 -- 8/16/24/32 bits data acording to pfifo_data_width
#define PFIFO_DATA (0x3868)
#define P_PFIFO_DATA (volatile unsigned int *)((0x3868 << 2) + 0xffd00000)
// bit 31:0 -- parser search pattern
#define PARSER_SEARCH_PATTERN (0x3869)
#define P_PARSER_SEARCH_PATTERN (volatile unsigned int *)((0x3869 << 2) + 0xffd00000)
// bit 31:0 -- parser search mask ( 0 - disable bit match test )
#define PARSER_SEARCH_MASK (0x386a)
#define P_PARSER_SEARCH_MASK (volatile unsigned int *)((0x386a << 2) + 0xffd00000)
// bit 31:16 -- parser_int_disable_count
// bit 15:8 -- Parser interrupt enable for host cpu
// bit 7:0 -- Parser interrupt enable for Amrisc
#define PARSER_INT_ENABLE (0x386b)
#define P_PARSER_INT_ENABLE (volatile unsigned int *)((0x386b << 2) + 0xffd00000)
// Bit 7 -- fetch_cmd_finished
// Bit 6:5 -- reserved
// Bit 4 -- parse finished
// Bit 3 -- discard finished
// Bit 2 -- insert zero finished
// Bit 1 -- Action Finished Except Search Start Code
// Bit 0 -- Search match interrupt (StartCode found)
// Read 7:0 int status
// Write will clear (bit based)
#define PARSER_INT_STATUS (0x386c)
#define P_PARSER_INT_STATUS (volatile unsigned int *)((0x386c << 2) + 0xffd00000)
// 15 - SCR_32_READ_OUT (Read Only)
// 14 - SCR_32_data_valid
// 13 - SCR_32_data
// 12 - SCR_count_en
// 11:0 - SCR90K_DIV
#define PARSER_SCR_CTL (0x386d)
#define P_PARSER_SCR_CTL (volatile unsigned int *)((0x386d << 2) + 0xffd00000)
// bit 31:0 SCR value
#define PARSER_SCR (0x386e)
#define P_PARSER_SCR (volatile unsigned int *)((0x386e << 2) + 0xffd00000)
// bit 31:24 -- insert_loop_number
// bit 23:21 --
// bit 20:16 -- insert_byte_number
// bit 15:0 -- discard number
#define PARSER_PARAMETER (0x386f)
#define P_PARSER_PARAMETER (volatile unsigned int *)((0x386f << 2) + 0xffd00000)
// bit 31:0 -- insert data // write only
// write to PARSER_CONTROL will reset the write position
// continous write to this address can write upto 16 bytes
#define PARSER_INSERT_DATA (0x3870)
#define P_PARSER_INSERT_DATA (volatile unsigned int *)((0x3870 << 2) + 0xffd00000)
// Bit 31:24 -- Reserved Stream_ID
// Bit 23:16 -- Sub Stream_ID
// Bit 15:8 -- Audio Stream_ID
// Bit 7:0 -- Video Stream_ID
#define VAS_STREAM_ID (0x3871)
#define P_VAS_STREAM_ID (volatile unsigned int *)((0x3871 << 2) + 0xffd00000)
// Bit 31:0 -- VIDEO_DTS
#define VIDEO_DTS (0x3872)
#define P_VIDEO_DTS (volatile unsigned int *)((0x3872 << 2) + 0xffd00000)
// Bit 31:0 -- VIDEO_PTS
#define VIDEO_PTS (0x3873)
#define P_VIDEO_PTS (volatile unsigned int *)((0x3873 << 2) + 0xffd00000)
// Bit 31:0 -- VIDEO_PTS_DTS_WR_PTR
#define VIDEO_PTS_DTS_WR_PTR (0x3874)
#define P_VIDEO_PTS_DTS_WR_PTR (volatile unsigned int *)((0x3874 << 2) + 0xffd00000)
// Bit 31:0 -- AUDIO_PTS
#define AUDIO_PTS (0x3875)
#define P_AUDIO_PTS (volatile unsigned int *)((0x3875 << 2) + 0xffd00000)
// Bit 31:0 -- AUDIO_PTS_WR_PTR
#define AUDIO_PTS_WR_PTR (0x3876)
#define P_AUDIO_PTS_WR_PTR (volatile unsigned int *)((0x3876 << 2) + 0xffd00000)
// bit 31:20 -- stream_es_count ( Read Only)
// bit 19 -- req_pending ( parser ddr_A_fifo ) (Read Only)
// bit 18 -- stream_es_passthrough_enable
// bit 17:16 -- stream_es_passthrough_type
// bit 15:13 -- VIDEO2 Ees_write Endian
// bit 12 -- VIDEO2 using manual read point
// bit 11:9 -- SUB Ees_write Endian
// bit 8 -- SUB using manual read point
// bit 7:5 -- AUDIO Ees_write Endian
// bit 4 -- AUDIO using manual read point
// bit 3:1 -- VIDEO Ees_write Endian
// bit 0 -- VIDEO using manual read point
#define PARSER_ES_CONTROL (0x3877)
#define P_PARSER_ES_CONTROL (volatile unsigned int *)((0x3877 << 2) + 0xffd00000)
// Bit 31:0 PFIFO_MONITOR
#define PFIFO_MONITOR (0x3878)
#define P_PFIFO_MONITOR (volatile unsigned int *)((0x3878 << 2) + 0xffd00000)
// --------------------------------------------
// PARSER_VIDEO DDR Interface
// --------------------------------------------
// The PARSER_VIDEO start pointer into DDR memory is a 32-bit number
// The Start pointer will automatically be truncated to land on
// an 8-byte boundary. That is, bits [2:0] = 0;
#define PARSER_VIDEO_START_PTR (0x3880)
#define P_PARSER_VIDEO_START_PTR (volatile unsigned int *)((0x3880 << 2) + 0xffd00000)
#define PARSER_VIDEO_END_PTR (0x3881)
#define P_PARSER_VIDEO_END_PTR (volatile unsigned int *)((0x3881 << 2) + 0xffd00000)
// --------------------------------------------
// PARSER_VIDEO Buffer Level Manager
// --------------------------------------------
#define PARSER_VIDEO_WP (0x3882)
#define P_PARSER_VIDEO_WP (volatile unsigned int *)((0x3882 << 2) + 0xffd00000)
#define PARSER_VIDEO_RP (0x3883)
#define P_PARSER_VIDEO_RP (volatile unsigned int *)((0x3883 << 2) + 0xffd00000)
#define PARSER_VIDEO_HOLE (0x3884)
#define P_PARSER_VIDEO_HOLE (volatile unsigned int *)((0x3884 << 2) + 0xffd00000)
// --------------------------------------------
// PARSER_AUDIO DDR Interface
// --------------------------------------------
// The PARSER_AUDIO start pointer into DDR memory is a 32-bit number
// The Start pointer will automatically be truncated to land on
// an 8-byte boundary. That is, bits [2:0] = 0;
#define PARSER_AUDIO_START_PTR (0x3885)
#define P_PARSER_AUDIO_START_PTR (volatile unsigned int *)((0x3885 << 2) + 0xffd00000)
#define PARSER_AUDIO_END_PTR (0x3886)
#define P_PARSER_AUDIO_END_PTR (volatile unsigned int *)((0x3886 << 2) + 0xffd00000)
// --------------------------------------------
// PARSER_AUDIO Buffer Level Manager
// --------------------------------------------
#define PARSER_AUDIO_WP (0x3887)
#define P_PARSER_AUDIO_WP (volatile unsigned int *)((0x3887 << 2) + 0xffd00000)
#define PARSER_AUDIO_RP (0x3888)
#define P_PARSER_AUDIO_RP (volatile unsigned int *)((0x3888 << 2) + 0xffd00000)
#define PARSER_AUDIO_HOLE (0x3889)
#define P_PARSER_AUDIO_HOLE (volatile unsigned int *)((0x3889 << 2) + 0xffd00000)
// --------------------------------------------
// PARSER_SUB DDR Interface
// --------------------------------------------
// The PARSER_SUB start pointer into DDR memory is a 32-bit number
// The Start pointer will automatically be truncated to land on
// an 8-byte boundary. That is, bits [2:0] = 0;
#define PARSER_SUB_START_PTR (0x388a)
#define P_PARSER_SUB_START_PTR (volatile unsigned int *)((0x388a << 2) + 0xffd00000)
#define PARSER_SUB_END_PTR (0x388b)
#define P_PARSER_SUB_END_PTR (volatile unsigned int *)((0x388b << 2) + 0xffd00000)
// --------------------------------------------
// PARSER_SUB Buffer Level Manager
// --------------------------------------------
#define PARSER_SUB_WP (0x388c)
#define P_PARSER_SUB_WP (volatile unsigned int *)((0x388c << 2) + 0xffd00000)
#define PARSER_SUB_RP (0x388d)
#define P_PARSER_SUB_RP (volatile unsigned int *)((0x388d << 2) + 0xffd00000)
#define PARSER_SUB_HOLE (0x388e)
#define P_PARSER_SUB_HOLE (volatile unsigned int *)((0x388e << 2) + 0xffd00000)
// Bit[31] dma_busy
// Bit[30] cur_fetch_or_es_write
// Bit[29:28] reserved
// Bit[27:24] fetch_status
// Bit[23:0] buffer_cycles_left
#define PARSER_FETCH_INFO (0x388f)
#define P_PARSER_FETCH_INFO (volatile unsigned int *)((0x388f << 2) + 0xffd00000)
// Bit[31:28] ctl_status
// Bit[27:24] insert_byte_offset
// Bit[23:0] es_pack_left_cycle
#define PARSER_STATUS (0x3890)
#define P_PARSER_STATUS (volatile unsigned int *)((0x3890 << 2) + 0xffd00000)
// Bit [31:16] AUDIO_wrap_count
// Bit [15:0] VIDEO_wrap_count
#define PARSER_AV_WRAP_COUNT (0x3891)
#define P_PARSER_AV_WRAP_COUNT (volatile unsigned int *)((0x3891 << 2) + 0xffd00000)
// bit[29:24] A_brst_num_parser
// bit[21:16] A_id_parser
// bit[11:0] wrrsp_count_parser
#define WRRSP_PARSER (0x3892)
#define P_WRRSP_PARSER (volatile unsigned int *)((0x3892 << 2) + 0xffd00000)
// `define CSS_cmd 12'h200 // address of css command and indirect register
// `define CSS_cntl 12'h201 // css control register
// `define CSS_data 12'h202 // indirect register
// `define CSS_id1_data 12'h203 // ID data for the first and second bytes
// `define CSS_id2_data 12'h204 // ID data for the third and fourth bytes
//CPPM registers
// `define CPPM_IFIFO_CTRL 12'h210 //CPPM input FIFO control
// `define CPPM_C2BC_KEY 12'h211 //CPPM C2 Block Cipher Key register
// `define CPPM_C2BC_DIN 12'h212 //CPPM C2 Block Cipher data input register
// `define CPPM_C2BC_DOUT 12'h213 //CPPM C2 Block Cipher data result register
// `define CPPM_CMD 12'h214 //CPPM command and control register
// `define CPPM_CTRL_STATUS 12'h215 //CPPM control status, mainly for debug
// `define CPPM_IFIFO_DATA 12'h216 //CPPM input FIFO data pop port, just for debug
// --------------------------------------------
// PARSER_VIDEO2 DDR Interface
// --------------------------------------------
// The PARSER_VIDEO2 start pointer into DDR memory is a 32-bit number
// The Start pointer will automatically be truncated to land on
// an 8-byte boundary. That is, bits [2:0] = 0;
#define PARSER_VIDEO2_START_PTR (0x3893)
#define P_PARSER_VIDEO2_START_PTR (volatile unsigned int *)((0x3893 << 2) + 0xffd00000)
#define PARSER_VIDEO2_END_PTR (0x3894)
#define P_PARSER_VIDEO2_END_PTR (volatile unsigned int *)((0x3894 << 2) + 0xffd00000)
// --------------------------------------------
// PARSER_VIDEO2 Buffer Level Manager
// --------------------------------------------
#define PARSER_VIDEO2_WP (0x3895)
#define P_PARSER_VIDEO2_WP (volatile unsigned int *)((0x3895 << 2) + 0xffd00000)
#define PARSER_VIDEO2_RP (0x3896)
#define P_PARSER_VIDEO2_RP (volatile unsigned int *)((0x3896 << 2) + 0xffd00000)
#define PARSER_VIDEO2_HOLE (0x3897)
#define P_PARSER_VIDEO2_HOLE (volatile unsigned int *)((0x3897 << 2) + 0xffd00000)
// Bit [31:16] AUDIO_wrap_count
// Bit [15:0] VIDEO2_wrap_count
#define PARSER_AV2_WRAP_COUNT (0x3898)
#define P_PARSER_AV2_WRAP_COUNT (volatile unsigned int *)((0x3898 << 2) + 0xffd00000)
// DDR registers
//`define USE_DDR2
//========================================================================
// DVIN Registers (12'h2e0 - 12'h2ef)
//
//========================================================================
// -----------------------------------------------
// CBUS_BASE: DVIN_CBUS_BASE = 0x08
// -----------------------------------------------
// Bit 31:12 Rsrv
// Bit 11:10 RW, vs_hs_tim_ctrl: Controls which edge of HS/VS the active pixel/line is related:
// bit[0]=0: start of active pixel is counted from the rising edge of HS;
// bit[0]=1: start of active pixel is counted from the falling edge of HS;
// bit[1]=0: start of active line is counted from the rising edge of VS;
// bit[1]=1: start of active line is counted from the falling edge of VS.
// Bit 9 RW, sample_clk_neg: 1=invert input dvin_clk
// Bit 8: 7 RW, mode_422to444: 0=No convertion; 1=Rsrv; 2=Convert 422 to 444, use previous C value; 3=Convert 422 to 444, use average C value.
// Bit 6: 5 RW, de_mode: 0x=ignore input DE signal, use internal detection to to determine active pixel;
// 10=during active pixel, if DE is low, replace input data with the last good data before DE goes low;
// 11=Active pixel is determined by DE, no internal detection.
// Bit 4 RW, ext_field_sel: 1=Select external input Field, 0=Use internal detected Field.
// Bit 3 RW, field_pol_inv: set to 1 if input Field is low active and ext_field_sel=1
// Bit 2 RW, de_pol_inv: set to 1 if input DE is low active
// Bit 1 RW, vs_pol_inv: set to 1 if input VS is low active
// Bit 0 RW, hs_pol_inv: set to 1 if input HS is low active
#define DVIN_FRONT_END_CTRL (0x08e0)
#define P_DVIN_FRONT_END_CTRL (volatile unsigned int *)((0x08e0 << 2) + 0xffd00000)
// Bit 31:28 Reserved
// Bit 27:16 RW, hs_lead_vs_odd_max: Criteria for HW detecting odd/even Field internally: max clock cycles allowed for HS
// active edge to lead before VS active edge, in odd field. Failing it the field is even.
// Bit 15:12 Reserved
// Bit 11: 0 RW, hs_lead_vs_odd_min: Criteria for HW detecting odd/even Field internally -- min clock cycles allowed for HS
// active edge to lead before VS active edge, in odd field. Failing it the field is even.
#define DVIN_HS_LEAD_VS_ODD (0x08e1)
#define P_DVIN_HS_LEAD_VS_ODD (volatile unsigned int *)((0x08e1 << 2) + 0xffd00000)
// Bit 31:28 Reserved
// Bit 27:16 RW, active_start_pix_fo
// Bit 15:12 Reserved
// Bit 11: 0 RW, active_start_pix_fe
#define DVIN_ACTIVE_START_PIX (0x08e2)
#define P_DVIN_ACTIVE_START_PIX (volatile unsigned int *)((0x08e2 << 2) + 0xffd00000)
// Bit 31:28 Reserved
// Bit 27:16 RW, active_start_line_fo
// Bit 15:12 Reserved
// Bit 11: 0 RW, active_start_line_fe
#define DVIN_ACTIVE_START_LINE (0x08e3)
#define P_DVIN_ACTIVE_START_LINE (volatile unsigned int *)((0x08e3 << 2) + 0xffd00000)
// Bit 31:28 Reserved
// Bit 27:16 RW, field_height_m1
// Bit 15:12 Reserved
// Bit 11: 0 RW, line_width_m1
#define DVIN_DISPLAY_SIZE (0x08e4)
#define P_DVIN_DISPLAY_SIZE (volatile unsigned int *)((0x08e4 << 2) + 0xffd00000)
// Bit 31 Rsrv
// Bit 30 R, vs_in_polarity: 0=active high; 1=active low.
// Bit 29 R, hs_in_polarity: 0=active high; 1=active low.
// Bit 28 R, field_odd
// Bit 27:16 R, hs_lead_vs_cnt
// Bit 15: 4 Rsrv
// Bit 3: 1 RW, data_comp_map: Re-map input data to form YCbCr.
// 0=YCbCr is {[29:20], [19:10], [ 9: 0]};
// 1=YCbCr is {[29:20], [ 9: 0], [19:10]};
// 2=YCbCr is {[ 9: 0], [29:20], [19:10]};
// 3=YCbCr is {[19:10], [29:20], [ 9: 0]};
// 4=YCbCr is {[19:10], [ 9: 0], [29:20]};
// 5=YCbCr is {[ 9: 0], [19:10], [29:20]};
// 6,7=Rsrv
// Bit 0 RW, dvin_enable
#define DVIN_CTRL_STAT (0x08e5)
#define P_DVIN_CTRL_STAT (volatile unsigned int *)((0x08e5 << 2) + 0xffd00000)
//========================================================================
// DOS registers APB allocation from 32'hd0050000
//
//========================================================================
//=======================================================================
// XIF module
// `include "xregs.h"
#define X_INT_ADR 0x400
#define GPIO_ADR 0x401
#define GPIO_ADR_H8 0x402
#define WFIFO_DEPTH 8
#define WFIFO_PointerWidth 3
#define WFIFO_WORDSIZE 32
// MAC module
// move them to cpu domain.
//`define CLR_ACC_MAC 12'h410
//`define CLR_ACC_MAC2 12'h411
//`define ACC_0 12'h412
//`define ACC_1 12'h413
//`define ACC_2 12'h414
//`define ACC_3 12'h415
//========================================================================
// Audio EQ DRC Interface (15'h1400 - 15'h14ff)
//
//========================================================================
//
// Reading file: audio_eq_drc.h
//
// -----------------------------------------------
// CBUS_BASE: AED_CBUS_BASE = 0x10
// -----------------------------------------------
/* defined in g12a secure_apb.h */
#if 0
#define AED_EQ_CH1_COEF00 (0x1000)
#define P_AED_EQ_CH1_COEF00 (volatile unsigned int *)((0x1000 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF01 (0x1001)
#define P_AED_EQ_CH1_COEF01 (volatile unsigned int *)((0x1001 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF02 (0x1002)
#define P_AED_EQ_CH1_COEF02 (volatile unsigned int *)((0x1002 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF03 (0x1003)
#define P_AED_EQ_CH1_COEF03 (volatile unsigned int *)((0x1003 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF04 (0x1004)
#define P_AED_EQ_CH1_COEF04 (volatile unsigned int *)((0x1004 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF10 (0x1005)
#define P_AED_EQ_CH1_COEF10 (volatile unsigned int *)((0x1005 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF11 (0x1006)
#define P_AED_EQ_CH1_COEF11 (volatile unsigned int *)((0x1006 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF12 (0x1007)
#define P_AED_EQ_CH1_COEF12 (volatile unsigned int *)((0x1007 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF13 (0x1008)
#define P_AED_EQ_CH1_COEF13 (volatile unsigned int *)((0x1008 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF14 (0x1009)
#define P_AED_EQ_CH1_COEF14 (volatile unsigned int *)((0x1009 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF20 (0x100a)
#define P_AED_EQ_CH1_COEF20 (volatile unsigned int *)((0x100a << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF21 (0x100b)
#define P_AED_EQ_CH1_COEF21 (volatile unsigned int *)((0x100b << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF22 (0x100c)
#define P_AED_EQ_CH1_COEF22 (volatile unsigned int *)((0x100c << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF23 (0x100d)
#define P_AED_EQ_CH1_COEF23 (volatile unsigned int *)((0x100d << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF24 (0x100e)
#define P_AED_EQ_CH1_COEF24 (volatile unsigned int *)((0x100e << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF30 (0x100f)
#define P_AED_EQ_CH1_COEF30 (volatile unsigned int *)((0x100f << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF31 (0x1010)
#define P_AED_EQ_CH1_COEF31 (volatile unsigned int *)((0x1010 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF32 (0x1011)
#define P_AED_EQ_CH1_COEF32 (volatile unsigned int *)((0x1011 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF33 (0x1012)
#define P_AED_EQ_CH1_COEF33 (volatile unsigned int *)((0x1012 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF34 (0x1013)
#define P_AED_EQ_CH1_COEF34 (volatile unsigned int *)((0x1013 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF40 (0x1014)
#define P_AED_EQ_CH1_COEF40 (volatile unsigned int *)((0x1014 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF41 (0x1015)
#define P_AED_EQ_CH1_COEF41 (volatile unsigned int *)((0x1015 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF42 (0x1016)
#define P_AED_EQ_CH1_COEF42 (volatile unsigned int *)((0x1016 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF43 (0x1017)
#define P_AED_EQ_CH1_COEF43 (volatile unsigned int *)((0x1017 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF44 (0x1018)
#define P_AED_EQ_CH1_COEF44 (volatile unsigned int *)((0x1018 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF50 (0x1019)
#define P_AED_EQ_CH1_COEF50 (volatile unsigned int *)((0x1019 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF51 (0x101a)
#define P_AED_EQ_CH1_COEF51 (volatile unsigned int *)((0x101a << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF52 (0x101b)
#define P_AED_EQ_CH1_COEF52 (volatile unsigned int *)((0x101b << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF53 (0x101c)
#define P_AED_EQ_CH1_COEF53 (volatile unsigned int *)((0x101c << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF54 (0x101d)
#define P_AED_EQ_CH1_COEF54 (volatile unsigned int *)((0x101d << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF60 (0x101e)
#define P_AED_EQ_CH1_COEF60 (volatile unsigned int *)((0x101e << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF61 (0x101f)
#define P_AED_EQ_CH1_COEF61 (volatile unsigned int *)((0x101f << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF62 (0x1020)
#define P_AED_EQ_CH1_COEF62 (volatile unsigned int *)((0x1020 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF63 (0x1021)
#define P_AED_EQ_CH1_COEF63 (volatile unsigned int *)((0x1021 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF64 (0x1022)
#define P_AED_EQ_CH1_COEF64 (volatile unsigned int *)((0x1022 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF70 (0x1023)
#define P_AED_EQ_CH1_COEF70 (volatile unsigned int *)((0x1023 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF71 (0x1024)
#define P_AED_EQ_CH1_COEF71 (volatile unsigned int *)((0x1024 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF72 (0x1025)
#define P_AED_EQ_CH1_COEF72 (volatile unsigned int *)((0x1025 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF73 (0x1026)
#define P_AED_EQ_CH1_COEF73 (volatile unsigned int *)((0x1026 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF74 (0x1027)
#define P_AED_EQ_CH1_COEF74 (volatile unsigned int *)((0x1027 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF80 (0x1028)
#define P_AED_EQ_CH1_COEF80 (volatile unsigned int *)((0x1028 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF81 (0x1029)
#define P_AED_EQ_CH1_COEF81 (volatile unsigned int *)((0x1029 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF82 (0x102a)
#define P_AED_EQ_CH1_COEF82 (volatile unsigned int *)((0x102a << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF83 (0x102b)
#define P_AED_EQ_CH1_COEF83 (volatile unsigned int *)((0x102b << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF84 (0x102c)
#define P_AED_EQ_CH1_COEF84 (volatile unsigned int *)((0x102c << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF90 (0x102d)
#define P_AED_EQ_CH1_COEF90 (volatile unsigned int *)((0x102d << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF91 (0x102e)
#define P_AED_EQ_CH1_COEF91 (volatile unsigned int *)((0x102e << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF92 (0x102f)
#define P_AED_EQ_CH1_COEF92 (volatile unsigned int *)((0x102f << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF93 (0x1030)
#define P_AED_EQ_CH1_COEF93 (volatile unsigned int *)((0x1030 << 2) + 0xffd00000)
#define AED_EQ_CH1_COEF94 (0x1031)
#define P_AED_EQ_CH1_COEF94 (volatile unsigned int *)((0x1031 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF00 (0x1032)
#define P_AED_EQ_CH2_COEF00 (volatile unsigned int *)((0x1032 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF01 (0x1033)
#define P_AED_EQ_CH2_COEF01 (volatile unsigned int *)((0x1033 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF02 (0x1034)
#define P_AED_EQ_CH2_COEF02 (volatile unsigned int *)((0x1034 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF03 (0x1035)
#define P_AED_EQ_CH2_COEF03 (volatile unsigned int *)((0x1035 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF04 (0x1036)
#define P_AED_EQ_CH2_COEF04 (volatile unsigned int *)((0x1036 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF10 (0x1037)
#define P_AED_EQ_CH2_COEF10 (volatile unsigned int *)((0x1037 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF11 (0x1038)
#define P_AED_EQ_CH2_COEF11 (volatile unsigned int *)((0x1038 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF12 (0x1039)
#define P_AED_EQ_CH2_COEF12 (volatile unsigned int *)((0x1039 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF13 (0x103a)
#define P_AED_EQ_CH2_COEF13 (volatile unsigned int *)((0x103a << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF14 (0x103b)
#define P_AED_EQ_CH2_COEF14 (volatile unsigned int *)((0x103b << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF20 (0x103c)
#define P_AED_EQ_CH2_COEF20 (volatile unsigned int *)((0x103c << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF21 (0x103d)
#define P_AED_EQ_CH2_COEF21 (volatile unsigned int *)((0x103d << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF22 (0x103e)
#define P_AED_EQ_CH2_COEF22 (volatile unsigned int *)((0x103e << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF23 (0x103f)
#define P_AED_EQ_CH2_COEF23 (volatile unsigned int *)((0x103f << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF24 (0x1040)
#define P_AED_EQ_CH2_COEF24 (volatile unsigned int *)((0x1040 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF30 (0x1041)
#define P_AED_EQ_CH2_COEF30 (volatile unsigned int *)((0x1041 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF31 (0x1042)
#define P_AED_EQ_CH2_COEF31 (volatile unsigned int *)((0x1042 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF32 (0x1043)
#define P_AED_EQ_CH2_COEF32 (volatile unsigned int *)((0x1043 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF33 (0x1044)
#define P_AED_EQ_CH2_COEF33 (volatile unsigned int *)((0x1044 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF34 (0x1045)
#define P_AED_EQ_CH2_COEF34 (volatile unsigned int *)((0x1045 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF40 (0x1046)
#define P_AED_EQ_CH2_COEF40 (volatile unsigned int *)((0x1046 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF41 (0x1047)
#define P_AED_EQ_CH2_COEF41 (volatile unsigned int *)((0x1047 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF42 (0x1048)
#define P_AED_EQ_CH2_COEF42 (volatile unsigned int *)((0x1048 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF43 (0x1049)
#define P_AED_EQ_CH2_COEF43 (volatile unsigned int *)((0x1049 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF44 (0x104a)
#define P_AED_EQ_CH2_COEF44 (volatile unsigned int *)((0x104a << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF50 (0x104b)
#define P_AED_EQ_CH2_COEF50 (volatile unsigned int *)((0x104b << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF51 (0x104c)
#define P_AED_EQ_CH2_COEF51 (volatile unsigned int *)((0x104c << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF52 (0x104d)
#define P_AED_EQ_CH2_COEF52 (volatile unsigned int *)((0x104d << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF53 (0x104e)
#define P_AED_EQ_CH2_COEF53 (volatile unsigned int *)((0x104e << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF54 (0x104f)
#define P_AED_EQ_CH2_COEF54 (volatile unsigned int *)((0x104f << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF60 (0x1050)
#define P_AED_EQ_CH2_COEF60 (volatile unsigned int *)((0x1050 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF61 (0x1051)
#define P_AED_EQ_CH2_COEF61 (volatile unsigned int *)((0x1051 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF62 (0x1052)
#define P_AED_EQ_CH2_COEF62 (volatile unsigned int *)((0x1052 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF63 (0x1053)
#define P_AED_EQ_CH2_COEF63 (volatile unsigned int *)((0x1053 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF64 (0x1054)
#define P_AED_EQ_CH2_COEF64 (volatile unsigned int *)((0x1054 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF70 (0x1055)
#define P_AED_EQ_CH2_COEF70 (volatile unsigned int *)((0x1055 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF71 (0x1056)
#define P_AED_EQ_CH2_COEF71 (volatile unsigned int *)((0x1056 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF72 (0x1057)
#define P_AED_EQ_CH2_COEF72 (volatile unsigned int *)((0x1057 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF73 (0x1058)
#define P_AED_EQ_CH2_COEF73 (volatile unsigned int *)((0x1058 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF74 (0x1059)
#define P_AED_EQ_CH2_COEF74 (volatile unsigned int *)((0x1059 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF80 (0x105a)
#define P_AED_EQ_CH2_COEF80 (volatile unsigned int *)((0x105a << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF81 (0x105b)
#define P_AED_EQ_CH2_COEF81 (volatile unsigned int *)((0x105b << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF82 (0x105c)
#define P_AED_EQ_CH2_COEF82 (volatile unsigned int *)((0x105c << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF83 (0x105d)
#define P_AED_EQ_CH2_COEF83 (volatile unsigned int *)((0x105d << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF84 (0x105e)
#define P_AED_EQ_CH2_COEF84 (volatile unsigned int *)((0x105e << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF90 (0x105f)
#define P_AED_EQ_CH2_COEF90 (volatile unsigned int *)((0x105f << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF91 (0x1060)
#define P_AED_EQ_CH2_COEF91 (volatile unsigned int *)((0x1060 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF92 (0x1061)
#define P_AED_EQ_CH2_COEF92 (volatile unsigned int *)((0x1061 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF93 (0x1062)
#define P_AED_EQ_CH2_COEF93 (volatile unsigned int *)((0x1062 << 2) + 0xffd00000)
#define AED_EQ_CH2_COEF94 (0x1063)
#define P_AED_EQ_CH2_COEF94 (volatile unsigned int *)((0x1063 << 2) + 0xffd00000)
#define AED_EQ_EN (0x1064)
#define P_AED_EQ_EN (volatile unsigned int *)((0x1064 << 2) + 0xffd00000)
#define AED_EQ_VOLUME (0x1065)
#define P_AED_EQ_VOLUME (volatile unsigned int *)((0x1065 << 2) + 0xffd00000)
#define AED_EQ_VOLUME_SLEW_CNT (0x1066)
#define P_AED_EQ_VOLUME_SLEW_CNT (volatile unsigned int *)((0x1066 << 2) + 0xffd00000)
#define AED_MUTE (0x1067)
#define P_AED_MUTE (volatile unsigned int *)((0x1067 << 2) + 0xffd00000)
#define AED_DRC_EN (0x1070)
#define P_AED_DRC_EN (volatile unsigned int *)((0x1070 << 2) + 0xffd00000)
#define AED_DRC_AE (0x1071)
#define P_AED_DRC_AE (volatile unsigned int *)((0x1071 << 2) + 0xffd00000)
#define AED_DRC_AA (0x1072)
#define P_AED_DRC_AA (volatile unsigned int *)((0x1072 << 2) + 0xffd00000)
#define AED_DRC_AD (0x1073)
#define P_AED_DRC_AD (volatile unsigned int *)((0x1073 << 2) + 0xffd00000)
#define AED_DRC_AE_1M (0x1074)
#define P_AED_DRC_AE_1M (volatile unsigned int *)((0x1074 << 2) + 0xffd00000)
#define AED_DRC_AA_1M (0x1075)
#define P_AED_DRC_AA_1M (volatile unsigned int *)((0x1075 << 2) + 0xffd00000)
#define AED_DRC_AD_1M (0x1076)
#define P_AED_DRC_AD_1M (volatile unsigned int *)((0x1076 << 2) + 0xffd00000)
#define AED_DRC_OFFSET0 (0x1077)
#define P_AED_DRC_OFFSET0 (volatile unsigned int *)((0x1077 << 2) + 0xffd00000)
#define AED_DRC_OFFSET1 (0x1078)
#define P_AED_DRC_OFFSET1 (volatile unsigned int *)((0x1078 << 2) + 0xffd00000)
#define AED_DRC_THD0 (0x1079)
#define P_AED_DRC_THD0 (volatile unsigned int *)((0x1079 << 2) + 0xffd00000)
#define AED_DRC_THD1 (0x107a)
#define P_AED_DRC_THD1 (volatile unsigned int *)((0x107a << 2) + 0xffd00000)
#define AED_DRC_K0 (0x107b)
#define P_AED_DRC_K0 (volatile unsigned int *)((0x107b << 2) + 0xffd00000)
#define AED_DRC_K1 (0x107c)
#define P_AED_DRC_K1 (volatile unsigned int *)((0x107c << 2) + 0xffd00000)
#define AED_CLIP_THD (0x107d)
#define P_AED_CLIP_THD (volatile unsigned int *)((0x107d << 2) + 0xffd00000)
#define AED_NG_THD0 (0x107e)
#define P_AED_NG_THD0 (volatile unsigned int *)((0x107e << 2) + 0xffd00000)
#define AED_NG_THD1 (0x107f)
#define P_AED_NG_THD1 (volatile unsigned int *)((0x107f << 2) + 0xffd00000)
#define AED_NG_CNT_THD (0x1080)
#define P_AED_NG_CNT_THD (volatile unsigned int *)((0x1080 << 2) + 0xffd00000)
#define AED_NG_CTL (0x1081)
#define P_AED_NG_CTL (volatile unsigned int *)((0x1081 << 2) + 0xffd00000)
#define AED_ED_CTL (0x1082)
#define P_AED_ED_CTL (volatile unsigned int *)((0x1082 << 2) + 0xffd00000)
#define AED_DEBUG0 (0x1083)
#define P_AED_DEBUG0 (volatile unsigned int *)((0x1083 << 2) + 0xffd00000)
#define AED_DEBUG1 (0x1084)
#define P_AED_DEBUG1 (volatile unsigned int *)((0x1084 << 2) + 0xffd00000)
#define AED_DEBUG2 (0x1085)
#define P_AED_DEBUG2 (volatile unsigned int *)((0x1085 << 2) + 0xffd00000)
#define AED_DEBUG3 (0x1086)
#define P_AED_DEBUG3 (volatile unsigned int *)((0x1086 << 2) + 0xffd00000)
#define AED_DEBUG4 (0x1087)
#define P_AED_DEBUG4 (volatile unsigned int *)((0x1087 << 2) + 0xffd00000)
#define AED_DEBUG5 (0x1088)
#define P_AED_DEBUG5 (volatile unsigned int *)((0x1088 << 2) + 0xffd00000)
#define AED_DEBUG6 (0x1089)
#define P_AED_DEBUG6 (volatile unsigned int *)((0x1089 << 2) + 0xffd00000)
#define AED_TOP_CTL (0x1090)
#define P_AED_TOP_CTL (volatile unsigned int *)((0x1090 << 2) + 0xffd00000)
#endif
//
// Closing file: audio_eq_drc.h
//
//========================================================================
// Audio Interface (12'h500 - 12'h5ff)
//
//========================================================================
//
// Reading file: aregs.h
//
//========================================================================
// Audio Interface (8'h00 - 8'hff)
// Modified : Xuyun Chen Jan 2001
//========================================================================
// Number of bytes expected per NON-PCM frame, including the header.
// 16 bits.
// -----------------------------------------------
// CBUS_BASE: AIU_CBUS_BASE = 0x14
// -----------------------------------------------
#define AIU_958_BPF (0x1400)
#define P_AIU_958_BPF (volatile unsigned int *)((0x1400 << 2) + 0xffd00000)
// Value of burst_info used in IEC958 preamble for a NON-PCM frame. See
// ATSC AC-3 spec Annex B. 16 bits.
#define AIU_958_BRST (0x1401)
#define P_AIU_958_BRST (volatile unsigned int *)((0x1401 << 2) + 0xffd00000)
// Value of length_code used in IEC958 preamble for an NON-PCM frame. See
// ATSC AC-3 spec Annex B. 16 bits.
#define AIU_958_LENGTH (0x1402)
#define P_AIU_958_LENGTH (volatile unsigned int *)((0x1402 << 2) + 0xffd00000)
// How many subframes to padd around the NON-PCM frame. This will
// be set to 'd3072 if it is a AC-3 audio stream.
// 16 bits
#define AIU_958_PADDSIZE (0x1403)
#define P_AIU_958_PADDSIZE (volatile unsigned int *)((0x1403 << 2) + 0xffd00000)
// 16'd3072
// Misc. control settings for IEC958 interface
// Bit 15:14 pcm_sample_ctl, 00-pcm_no_sample, 01-pcm_sample_up, 10-pcm_sample_down, 11-pcm_sample_down_drop
// Bit 13: if true, force each audio data to left or right according to the bit attached with the audio data
// This bit should be used with Register AIU_958_force_left(0x505) together
// Bit 12: if true, the U(user data) is from the stream otherwise it is filled by
// zero while encoding iec958 frame
// Bit 11 : if true big endian(highword,lowword) otherwise little endian(lowword,highword)
// for 32bit mode
// Bit 10:8 : shift number for 32 bit mode
// Bit 7 : 32 bit mode turn on while This bit is true and Bit 1 is true
// Bit 6:5 : Specifies output alignment for 16 bit pcm data.
// 00 : dout = {8'b0, din};
// 01 : dout = {4'b0, din, 4'b0};
// 10 : dout = { din, 8'b0};
// Bit 4 : True if data should be sent out MSB first. LSB first is the
// default in the spec.
// Bit 3 : True if msb should be extended (only used with 16 bit pcm data.)
// Bit 2 : True if msb of PCM data should be inverted.
// Bit 1 : True if PCM data is 16 bits wide. False if 24 bit or 32bit mode.
// Bit 0 : True if source data is non-PCM data. False if it is PCM data.
#define AIU_958_MISC (0x1404)
#define P_AIU_958_MISC (volatile unsigned int *)((0x1404 << 2) + 0xffd00000)
// 14'b0_0_0_000_0_0000001
// A write to this register specifies that the next pcm sample sent out
// of the iec958 interface should go into the _left_ channel.
#define AIU_958_FORCE_LEFT (0x1405)
#define P_AIU_958_FORCE_LEFT (volatile unsigned int *)((0x1405 << 2) + 0xffd00000)
//Read Only
//bit 6:0 how many data discarded in the last dma after one frame data finish transfering to AIU
// should used together with register AIU_958_dcu_ff_ctrl
#define AIU_958_DISCARD_NUM (0x1406)
#define P_AIU_958_DISCARD_NUM (volatile unsigned int *)((0x1406 << 2) + 0xffd00000)
//bit 15:8 : A read from this register indicates the IEC958 FIFO count value
//bit 7 : ai_958_req_size if ture, set to 8 bits interface, used to handle odd frame continous read
//bit 6 : continue seeking and dont discard the rest data in one dma after frame end
//bit 5 : if true, byte by byte seeking, otherwise word by word seeking
//bit 4 : if true, the function for sync head seeking is enabled
//bit 3:2 : IEC958 interrupt mode
// There are two conditions to generate interrupt. The First condition is that one frame data
// have been finished writing into FIFO. The second condition is at least some data of the current
// frame have been read out(refer to Register AIU_958_ffrdout_thd)
// 00: interrupt is not generated
// 10: interrupt is generated if the first condition is true
// 01: interrupt is generated if the second condition is true
// 11: interrupt is generated if both of the conditions are true
//bit 1: fifo auto disable, High means after one frame data put into the FIFO, the FIFO
// will automatically disabled
//bit 0: fifo enable
#define AIU_958_DCU_FF_CTRL (0x1407)
#define P_AIU_958_DCU_FF_CTRL (volatile unsigned int *)((0x1407 << 2) + 0xffd00000)
// 'b0_0_1_11_1_0
// channel status registers for Left channel
// chstat_l0[15:0] contains bits 15:0 of the channel status word. Note
// that bit zero of the channel status word is sent out first.
// chstat_l1[15:0] contains bits 31:16 of the channel status word.
#define AIU_958_CHSTAT_L0 (0x1408)
#define P_AIU_958_CHSTAT_L0 (volatile unsigned int *)((0x1408 << 2) + 0xffd00000)
#define AIU_958_CHSTAT_L1 (0x1409)
#define P_AIU_958_CHSTAT_L1 (volatile unsigned int *)((0x1409 << 2) + 0xffd00000)
// Control register for IEC958 interface
// Bit 9:8 what to do if there is a fifo underrun
// 00 => insert 24'h000000
// 01 => insert mute constant as defined below
// 10 => repeat last l/r samples
// Bit 7:5 mute constant
// 000 => 24'h000000
// 001 => 24'h800000
// 010 => 24'h080000
// 011 => 24'h008000
// 100 => 24'h000001
// 101 => 24'h000010
// 110 => 24'h000100
// Bit 4 mute left speaker
// Bit 3 mute right speaker
// Bit 2:1 swap channels
// 00 : L R => L R
// 01 : L R => L L
// 10 : L R => R R
// 11 : L R => R L
// Bit 0 Set this bit to hold iec958 interface after the current
// subframe has been completely transmitted.
#define AIU_958_CTRL (0x140a)
#define P_AIU_958_CTRL (volatile unsigned int *)((0x140a << 2) + 0xffd00000)
// 10'b00_000_00_00_0
// A write operation to this register will cause one of the output samples
// to be repeated. This can be used to switch the left and the right
// channels.
#define AIU_958_RPT (0x140b)
#define P_AIU_958_RPT (volatile unsigned int *)((0x140b << 2) + 0xffd00000)
// Channel swap and mute control register.
// Bit 15: Mute extra left channel
// Bit 14: Mute extra right channel
// Bit 13: Mute center
// Bit 12: Mute subwoofer
// Bit 11: Mute surround left
// Bit 10: Mute surround right
// Bit 9: Mute left
// Bit 8: Mute right
// Bit 7:6 Channel swap for xtra dac
// Bit 5:4 Channel swap for sub/center dac
// Bit 3:2 Channel swap for surround dac
// Bit 1:0 Channel swap for main l/r dac
// Channel swap possibilities:
// 00 : L R => L R
// 01 : L R => L L
// 10 : L R => R R
// 11 : L R => R L
#define AIU_I2S_MUTE_SWAP (0x140c)
#define P_AIU_I2S_MUTE_SWAP (volatile unsigned int *)((0x140c << 2) + 0xffd00000)
// 16'b0
// Bit 0 : 0=> single two channel stream
// 1=> four two channel streams
#define AIU_I2S_SOURCE_DESC (0x140d)
#define P_AIU_I2S_SOURCE_DESC (volatile unsigned int *)((0x140d << 2) + 0xffd00000)
// Median filter control register
// Bit 1: 0=> data is offset binary
// 1=> data is signed
// Bit 0: enable median filter
#define AIU_I2S_MED_CTRL (0x140e)
#define P_AIU_I2S_MED_CTRL (volatile unsigned int *)((0x140e << 2) + 0xffd00000)
// 2'b10
// Median filter threshold constant
// 16 bits
#define AIU_I2S_MED_THRESH (0x140f)
#define P_AIU_I2S_MED_THRESH (volatile unsigned int *)((0x140f << 2) + 0xffd00000)
// 16'h8000
// Describes dac's connected to I2S interface
// Bit 7: sign extend sample before downshift.
// Bit 6:4 payload downshift constant
// Bit 3: mute constant
// 0 => 'h0000000
// 1 => 'h800000
// Bit 2: send msb first
// Bit 1:0 Size of payload
// Note that this parameter used to be called "size of dacs"
// It is now called the payload size since a 24 bit payload can
// actually be connected to any size of dac. The dac will simply
// disregard the extra bits.
// 00 => 16 bit, alrclk = aoclk/32
// 01 => 20 bit, alrclk = aoclk/40
// 10 => 24 bit, alrclk = aoclk/48
// 11 => 24 bit, but alrclk = aoclk/64
#define AIU_I2S_DAC_CFG (0x1410)
#define P_AIU_I2S_DAC_CFG (volatile unsigned int *)((0x1410 << 2) + 0xffd00000)
// 8'b0_000_1_1_10
// A write to this register will cause the interface to repeat the current
// sample. Can be used to regain synchronization.
// A read from this register indicates that the next sample to be sent
// out of the interface should go into the _left_ channel of the dac.
#define AIU_I2S_SYNC (0x1411)
#define P_AIU_I2S_SYNC (volatile unsigned int *)((0x1411 << 2) + 0xffd00000)
// Misc regs
// Bit 4 if true, force each audio data to left or right according to the bit attached with the audio data
// This bit should be used with Register AIU_i2s_sync(0x511) together
// Bit 3: Same Audio source for IEC958 and I2s stream 0, both from i2s buffer
// Bit 2: Set this bit to put i2s interface in hold mode
// Bit 1:0 How to handle underruns
// 00 => send zeros
// 01 => send 'h800000
// 10 => repeat last samples
#define AIU_I2S_MISC (0x1412)
#define P_AIU_I2S_MISC (volatile unsigned int *)((0x1412 << 2) + 0xffd00000)
// 5'b0
// Bit 7:0 Audio output config.
// 2 bits for each dac, 7:6 for dac3, 5:4 for dac2,
// 3:2 for dac1, 1:0 for dac0
// For each 2bits: 00: connect channel0-1 to the dac
// 01: connect channel2-3 to the dac
// 10: connect channel4-5 to the dac
// 11: connect channel6-7 to the dac
#define AIU_I2S_OUT_CFG (0x1413)
#define P_AIU_I2S_OUT_CFG (volatile unsigned int *)((0x1413 << 2) + 0xffd00000)
// 8'b0_000000_0
#define AIU_I2S_FF_CTRL (0x1414)
#define P_AIU_I2S_FF_CTRL (volatile unsigned int *)((0x1414 << 2) + 0xffd00000)
// A write to this register resets the AIU
//Bit 3 reset slow domain iec958
//Bit 2 soft reset iec958 fast domain
//Bit 1 reset slow domain i2s
//Bit 0 soft reset i2s fast domain
#define AIU_RST_SOFT (0x1415)
#define P_AIU_RST_SOFT (volatile unsigned int *)((0x1415 << 2) + 0xffd00000)
// Clock generation control register
// Bit 15: enable_ddr_arb, set low to reset
// Bit 14:13 parser_A_addr_sel 00-A_addr_aififo2, 01-A_addr_iec958, 10-A_addr_aififo, 11-A_addr_i2s
// Bit 12: 958 divisor more, if true, divided by 2, 4, 6, 8
// Bit 11: amclk output divisor
// 0 => dont divide
// 1 => divide by 2
// Bit 10: clock source selection
// 0 => aiclk from pin
// 1 => ai_pll_clk from pll
// Bit 9:8 alrclk skew
// 00 => alrclk transitions at the same time msb is sent
// 01 => alrclk transitions on the cycle before msb is sent
// 10 => alrclk transitions on the cycle after msb is sent
// Bit 7: invert alrclk
// Bit 6: invert aoclk
// Bit 5:4 958 divisor
// 00 => divide by 1
// 01 => divide by 2
// 10 => divide by 3
// 11 => divide by 4
// Bit 3:2 i2s divisor. NOTE: this value is ignored if AIU_clk_ctrl_more[5:0] != 0
// 00 => divide by 1
// 01 => divide by 2
// 10 => divide by 4
// 11 => divide by 8
// Bit 1: enable 958 divider
// Bit 0: enable i2s divider
#define AIU_CLK_CTRL (0x1416)
#define P_AIU_CLK_CTRL (volatile unsigned int *)((0x1416 << 2) + 0xffd00000)
// 13'b0_0_1_01_1_1_10_11_0_0
// Misc settings that determine the type of adc that is
// connected to the AIU. Reverb mode is deleted.
// Bit 12: selects adc input
// Bit 11:10 adc size
// 00 => 16 bits
// 01 => 18 bits
// 10 => 20 bits
// 11 => 24 bits
// Bit 9:8 adc l/r swap mode
// 00 => stereo
// 01 => send the right adc input to both l and r speakers
// 01 => send the left adc input to both l and r speakers
// 11 => sum the left and right inputs and forward to
// both speakers
// Bit 7:5 adata/lrclk skew mode
// Bit 4 1=>invert the adc's lrclk (This is the lrclk going _out_
// of the chip.
// Bit 3 1=>Latch the data on the positive edge of the _internal_
// aoclk.
// Bit 2 1=>adc data is in signed 2's complement mode
#define AIU_MIX_ADCCFG (0x1417)
#define P_AIU_MIX_ADCCFG (volatile unsigned int *)((0x1417 << 2) + 0xffd00000)
// 12'b01_00_001_1_0_1_00
// Control register that can be changed dynamically. These control
// signals are synchronized internally.
// Bit 12: if true, toggle each mixed audio data to left or right channel
// Bit 11: abuf din left selection, if true, select bit 24 of the data from abuf
// otherwise select bit 25 of the data from abuf
// Bit 10:9 mix sync select, when music, mic and abuf are mixed togather, the main
// sync source can be selected
// 00: not sync source
// 01: music data is the main sync source
// 10: abuf input data is the main sync source
// 11: music and abuf togather as the sync source
// Bit 8: 0=> data from abuf is offset binary
// 1=> data from abuf is signed
// Bit 7:6 the source for data from aiu to abuf
// 00 => mic
// 01 => mic saled + abuf scaled
// 10 => mic scaled + abuf scaled + music scaled
// 11 => music
// Bit 5 channel from aiu to abuf is on
// Bit 4 channel from abuf to aiu is on
// Bit 3 mic is on
// Bit 2 music is on
// Bit 1 if true the mixed data are outputed to i2s dac channel,
// otherwise the mixed data are outputed to IEC958 output
// Bit 0 if true music source for mixing is from i2s buffer,
// otherwise music source is from iec958 buffer
#define AIU_MIX_CTRL (0x1418)
#define P_AIU_MIX_CTRL (volatile unsigned int *)((0x1418 << 2) + 0xffd00000)
// 11'b01_1_01_0_0_0_1_1_1
// Bit 15 invert_audin_sclk.
// Bit 14 enable_adc_sclk.
// Bit 13: 8 divisor_adc_sclk.
// Bit 7 invert_acodec_adc_sclk.
// Bit 6 hdmitx_sel_aoclkx2: 0=Select cts_clk_i958 as AIU clk to hdmi_tx_audio_master_clk; 1=Select cts_aoclkx2_int as AIU clk to hdmi_tx_audio_master_clk;
// Bit 5: 0 More control on i2s divisor. For backward compatiblity, this value is ignored if is 0,
// if non-zero, it takes effect over AIU_clk_ctrl[3:2].
// 0=i2s divisor will use the old value in AIU_clk_ctrl[3:2] (divide by 1/2/4/8)
// 1=divide by 2;
// 2=divide by 3;
// 3=divide by 4;
// ... and so on ...
// 63=divide by 64.
#define AIU_CLK_CTRL_MORE (0x1419)
#define P_AIU_CLK_CTRL_MORE (volatile unsigned int *)((0x1419 << 2) + 0xffd00000)
// A read from this register pops 16 bits of data off the 958
// fifo. A write has no effect.
#define AIU_958_POP (0x141a)
#define P_AIU_958_POP (volatile unsigned int *)((0x141a << 2) + 0xffd00000)
//gain register for mixing
// for each gain,
// 00000: x 0
// 00001: x 1
// 00010: x 2
// 00011: x 3
// 00100: x 4
// 00101: x 5
// 00110: x 6
// ......
// 01110: x14
// 01111: x15
// 10000: x 0
// 10001: x 1/16
// 10010: x 2/16
// 10011: x 3/16
// 10100: x 4/16
// ......
// 11110: x 14/16
// 11111: x 15/16
//Bit 14:10 mic gain
//Bit 9:5 abuf gain
//Bit 4:0 music gain
#define AIU_MIX_GAIN (0x141b)
#define P_AIU_MIX_GAIN (volatile unsigned int *)((0x141b << 2) + 0xffd00000)
// 15'b00001_00001_00001
//sync head seeking is supported. The maxinium length of sync head is
//48-bit-wide.(in byte by byte seeking mode, the maximium is 44-bit-wide).
//It is consisted of 3 words (synword1_synword2_syncword3).
//You can configure the sync head pattern by using sync mask(mask1_mask2_mask3).
//For example. AC-3 sync head is a 16-bit word(0b77), so syncword1 is set as 0b77,
//mask1 is 0000(not set), mask2 and mask3 is all masked.
#define AIU_958_SYNWORD1 (0x141c)
#define P_AIU_958_SYNWORD1 (volatile unsigned int *)((0x141c << 2) + 0xffd00000)
//16'h0b77 //ac-3 sync head
#define AIU_958_SYNWORD2 (0x141d)
#define P_AIU_958_SYNWORD2 (volatile unsigned int *)((0x141d << 2) + 0xffd00000)
//16'h0000
#define AIU_958_SYNWORD3 (0x141e)
#define P_AIU_958_SYNWORD3 (volatile unsigned int *)((0x141e << 2) + 0xffd00000)
//16'h0000
#define AIU_958_SYNWORD1_MASK (0x141f)
#define P_AIU_958_SYNWORD1_MASK (volatile unsigned int *)((0x141f << 2) + 0xffd00000)
//16'h0000 //16-bit ac-3 sync_head
#define AIU_958_SYNWORD2_MASK (0x1420)
#define P_AIU_958_SYNWORD2_MASK (volatile unsigned int *)((0x1420 << 2) + 0xffd00000)
//16'hffff
#define AIU_958_SYNWORD3_MASK (0x1421)
#define P_AIU_958_SYNWORD3_MASK (volatile unsigned int *)((0x1421 << 2) + 0xffd00000)
//16'hffff
//fifo read-out threshold, one condition to generate interrupt is met after fifo readout counter
//reach this value in a frame, please refer to register AIU_958_dcu_ff_ctrl
#define AIU_958_FFRDOUT_THD (0x1422)
#define P_AIU_958_FFRDOUT_THD (volatile unsigned int *)((0x1422 << 2) + 0xffd00000)
//'h0004
//For pause burst sequence adding, one pause burst sequence is consist of a serious
// pause burst.
//This register defines the length of each pause burst in a pause burst sequence. The size of the
//preamble(Pa, Pb, Pc, Pd) is not counted, but the size of stuff data is counted.
#define AIU_958_LENGTH_PER_PAUSE (0x1423)
#define P_AIU_958_LENGTH_PER_PAUSE (volatile unsigned int *)((0x1423 << 2) + 0xffd00000)
//'h0000
//This reigster defines the number of pause burst in a pause burst sequence.
//Bit 15 if true, one pause burst sequence will be added
//Bit 14:0 the number of pause burst in a pause burst sequence
#define AIU_958_PAUSE_NUM (0x1424)
#define P_AIU_958_PAUSE_NUM (volatile unsigned int *)((0x1424 << 2) + 0xffd00000)
//'h0000
//The first 16-bit in the payload of pause burst sequence (gap_length)
#define AIU_958_PAUSE_PAYLOAD (0x1425)
#define P_AIU_958_PAUSE_PAYLOAD (volatile unsigned int *)((0x1425 << 2) + 0xffd00000)
//'h0000
//For auto pause function, when enabled, pause burst sequence will be automatically added if the data in
// 958 fifo is less than auto_pause threshold and if fifo is disabled.
//Bit 15 if true, auto pause function enable
//Bit 14 pause pack option, just for debugging and adding one option
//Bit 7:0 auto_pause threshold
#define AIU_958_AUTO_PAUSE (0x1426)
#define P_AIU_958_AUTO_PAUSE (volatile unsigned int *)((0x1426 << 2) + 0xffd00000)
//'h0000
//pause burst sequence payload length( = AIU_958_pause_num * AIU_958_length_per_pause)
#define AIU_958_PAUSE_PD_LENGTH (0x1427)
#define P_AIU_958_PAUSE_PD_LENGTH (volatile unsigned int *)((0x1427 << 2) + 0xffd00000)
//'h0000
// Bit 15:12 Rsrv.
// Bit 11: 0 dac_lrclk_div: Default is 48-1=47, which means lrclk is sclk divide by 48.
#define AIU_CODEC_DAC_LRCLK_CTRL (0x1428)
#define P_AIU_CODEC_DAC_LRCLK_CTRL (volatile unsigned int *)((0x1428 << 2) + 0xffd00000)
//'h002f
// Bit 15:14 Rsrv.
// Bit 13 inv_audin_lrclk: whether to invert lrclk before output to Audin
// Bit 12 inv_acodec_adc_lrclk: whether to invert lrclk before output to Audio Codec
// Bit 11: 0 adc_lrclk_div: Default is 48-1=47, which means lrclk is sclk divide by 48.
#define AIU_CODEC_ADC_LRCLK_CTRL (0x1429)
#define P_AIU_CODEC_ADC_LRCLK_CTRL (volatile unsigned int *)((0x1429 << 2) + 0xffd00000)
//'h002f
// Bit 15:6 Rsrv.
// Bit 5: 4 hdmi_data_sel: 00=output 0, disable hdmi data; 01=Select pcm data; 10=Select AIU I2S data; 11=Not allowed.
// Bit 3: 2 Rsrv.
// Bit 1: 0 hdmi_clk_sel: 00=Disable output hdmi clock; 01=Select pcm clock; 10=Select AIU clk; 11=Not allowed.
#define AIU_HDMI_CLK_DATA_CTRL (0x142a)
#define P_AIU_HDMI_CLK_DATA_CTRL (volatile unsigned int *)((0x142a << 2) + 0xffd00000)
//'h0000
// Bit 15:6 Rsrv.
// Bit 5: 4 acodec_data_sel: 00=output 0, disable acodec_sdin; 01=Select pcm data; 10=Select AIU I2S data; 11=Not allowed.
// Bit 3: 2 Rsrv.
// Bit 1: 0 acodec_clk_sel: 00=Disable output acodec_sclk; 01=Select pcm clock; 10=Select AIU aoclk; 11=Not allowed.
#define AIU_CODEC_CLK_DATA_CTRL (0x142b)
#define P_AIU_CODEC_CLK_DATA_CTRL (volatile unsigned int *)((0x142b << 2) + 0xffd00000)
//'h0000
#define AIU_ACODEC_CTRL (0x142c)
#define P_AIU_ACODEC_CTRL (volatile unsigned int *)((0x142c << 2) + 0xffd00000)
// channel status registers for right channel
// chstat_r0[15:0] contains bits 15:0 of the channel status word. Note
// that bit zero of the channel status word is sent out first.
// chstat_r1[15:0] contains bits 31:16 of the channel status word.
#define AIU_958_CHSTAT_R0 (0x1430)
#define P_AIU_958_CHSTAT_R0 (volatile unsigned int *)((0x1430 << 2) + 0xffd00000)
#define AIU_958_CHSTAT_R1 (0x1431)
#define P_AIU_958_CHSTAT_R1 (volatile unsigned int *)((0x1431 << 2) + 0xffd00000)
//Bit 1 if true, turn on Digital output Valid control
//Bit 0 0: output 0, 1: output 1 to the valid bit in audio digital output when Bit 1 is true
#define AIU_958_VALID_CTRL (0x1432)
#define P_AIU_958_VALID_CTRL (volatile unsigned int *)((0x1432 << 2) + 0xffd00000)
//-----------------------------------------------------------------------------
// Audio Amplifier controls
//-----------------------------------------------------------------------------
#define AIU_AUDIO_AMP_REG0 (0x143c)
#define P_AIU_AUDIO_AMP_REG0 (volatile unsigned int *)((0x143c << 2) + 0xffd00000)
#define AIU_AUDIO_AMP_REG1 (0x143d)
#define P_AIU_AUDIO_AMP_REG1 (volatile unsigned int *)((0x143d << 2) + 0xffd00000)
#define AIU_AUDIO_AMP_REG2 (0x143e)
#define P_AIU_AUDIO_AMP_REG2 (volatile unsigned int *)((0x143e << 2) + 0xffd00000)
#define AIU_AUDIO_AMP_REG3 (0x143f)
#define P_AIU_AUDIO_AMP_REG3 (volatile unsigned int *)((0x143f << 2) + 0xffd00000)
//-----------------------------------------------------------------------------
//add for AIFIFO2 channel
//-----------------------------------------------------------------------------
//Bit 3 CRC pop aififo2 enable
//Bit 2 writing to this bit to 1 causes CRC module reset
//Bit 1 unused
//Bit 0 writing to this bit to 1 causes AIFIFO2 soft reset
#define AIU_AIFIFO2_CTRL (0x1440)
#define P_AIU_AIFIFO2_CTRL (volatile unsigned int *)((0x1440 << 2) + 0xffd00000)
//'h0000
//AIFIFO2 status register
//Bit 4:0 //how many bits left in the first pop register
#define AIU_AIFIFO2_STATUS (0x1441)
#define P_AIU_AIFIFO2_STATUS (volatile unsigned int *)((0x1441 << 2) + 0xffd00000)
//Same fucntion as the AIGBIT of AIFIFO in CDROM module
//write to this register how many bits wanna pop,
//and reading this register gets the corresponding bits data
#define AIU_AIFIFO2_GBIT (0x1442)
#define P_AIU_AIFIFO2_GBIT (volatile unsigned int *)((0x1442 << 2) + 0xffd00000)
//Same function as the AICLB of AIFIFO in CDROM module
//return the leading zeros by reading this registers
#define AIU_AIFIFO2_CLB (0x1443)
#define P_AIU_AIFIFO2_CLB (volatile unsigned int *)((0x1443 << 2) + 0xffd00000)
//CRC control register, read/write
//Bit 0 CRC caculation start
//Bit 1 CRC core soft reset
//Bit 2 CRC input register clear
//Bit 3 CRC pop data from FIFO enable
//Bit 13:8 CRC polynomial equation order, between 1 to 32
#define AIU_CRC_CTRL (0x1444)
#define P_AIU_CRC_CTRL (volatile unsigned int *)((0x1444 << 2) + 0xffd00000)
//16'h1000
//CRC status register, read only
//Bit 7:4 CRC internal shift register bit select, just for debug purpose
//Bit 3 CRC internal shift register data valid, just for debug purpose
//Bit 2 CRC input register data valid
//Bit 1 CRC result, 1: CRC not correct, 0: CRC correct
//Bit 0 CRC state, 1: CRC busy, 0: CRC idle
#define AIU_CRC_STATUS (0x1445)
#define P_AIU_CRC_STATUS (volatile unsigned int *)((0x1445 << 2) + 0xffd00000)
//CRC internal shift register, read only, for debug purpose
#define AIU_CRC_SHIFT_REG (0x1446)
#define P_AIU_CRC_SHIFT_REG (volatile unsigned int *)((0x1446 << 2) + 0xffd00000)
//CRC data input register, read/write
#define AIU_CRC_IREG (0x1447)
#define P_AIU_CRC_IREG (volatile unsigned int *)((0x1447 << 2) + 0xffd00000)
//16'h0000
//CRC calculation register high-bit part [31:16], read/write
#define AIU_CRC_CAL_REG1 (0x1448)
#define P_AIU_CRC_CAL_REG1 (volatile unsigned int *)((0x1448 << 2) + 0xffd00000)
//CRC calculation register low-bit part [15:0], read/write
#define AIU_CRC_CAL_REG0 (0x1449)
#define P_AIU_CRC_CAL_REG0 (volatile unsigned int *)((0x1449 << 2) + 0xffd00000)
//32'h00000000
//CRC polynomial coefficient high-bit part [31:16], read/write
#define AIU_CRC_POLY_COEF1 (0x144a)
#define P_AIU_CRC_POLY_COEF1 (volatile unsigned int *)((0x144a << 2) + 0xffd00000)
//CRC polynomial coefficient low-bit part [15:0], read/write
#define AIU_CRC_POLY_COEF0 (0x144b)
#define P_AIU_CRC_POLY_COEF0 (volatile unsigned int *)((0x144b << 2) + 0xffd00000)
//32'h80050000 default CRC-16
//CRC frame size, high-bit part [19:16], read/write
#define AIU_CRC_BIT_SIZE1 (0x144c)
#define P_AIU_CRC_BIT_SIZE1 (volatile unsigned int *)((0x144c << 2) + 0xffd00000)
//CRC frame size, low-bit part [15:0], read/write
#define AIU_CRC_BIT_SIZE0 (0x144d)
#define P_AIU_CRC_BIT_SIZE0 (volatile unsigned int *)((0x144d << 2) + 0xffd00000)
//20'hfffff
//how many bits have been processed right now in the current frame, read only
//high-bit part [19:16]
#define AIU_CRC_BIT_CNT1 (0x144e)
#define P_AIU_CRC_BIT_CNT1 (volatile unsigned int *)((0x144e << 2) + 0xffd00000)
//low-bit part [15:0]
#define AIU_CRC_BIT_CNT0 (0x144f)
#define P_AIU_CRC_BIT_CNT0 (volatile unsigned int *)((0x144f << 2) + 0xffd00000)
// -------------------------------------
// AMCLK Measurement
// -------------------------------------
// Used to measure the amclk frequency
#define AIU_AMCLK_GATE_HI (0x1450)
#define P_AIU_AMCLK_GATE_HI (volatile unsigned int *)((0x1450 << 2) + 0xffd00000)
#define AIU_AMCLK_GATE_LO (0x1451)
#define P_AIU_AMCLK_GATE_LO (volatile unsigned int *)((0x1451 << 2) + 0xffd00000)
#define AIU_AMCLK_MSR (0x1452)
#define P_AIU_AMCLK_MSR (volatile unsigned int *)((0x1452 << 2) + 0xffd00000)
#define AIU_AUDAC_CTRL0 (0x1453)
#define P_AIU_AUDAC_CTRL0 (volatile unsigned int *)((0x1453 << 2) + 0xffd00000)
// -------------------------------------
// Super Simple Delta Sigma DAC
// -------------------------------------
// bit 15 1 = invert the clock to the analog filter
// bit 14 1 = digital mute
// bit 13 1 = enable analog mute (in the analog block)
// bit 12 1 = enable Right channel 3 in the analog block
// bit 11 1 = enable Left channel 3 in the analog block
// bit 10 1 = enable Right channel 2 in the analog block
// bit 9 1 = enable Left channel 2 in the analog block
// bit 8 1 = enable Right channel 1 in the analog block
// bit 7 1 = enable Left channel 1 in the analog block
// bit 6 1 = enable Right channel 0 in the analog block
// bit 5 1 = enable Left channel 0 in the analog block
// bit 4: bit select for serial input data
// bit 3: invert alrclk used by the delta-sigma DAC
// bit 2: 1 = use serial I2S data. 0 = use parallel audio data
// bits 1:0 Which data to send to the delta-sigma DAC
// 11 = use channel 3 data
// 10 = use channel 2 data
// 01 = use channel 1 data
// 00 = use channel 0 data
#define AIU_DELTA_SIGMA0 (0x1455)
#define P_AIU_DELTA_SIGMA0 (volatile unsigned int *)((0x1455 << 2) + 0xffd00000)
// Delta Sigma MUTE Value
#define AIU_DELTA_SIGMA1 (0x1456)
#define P_AIU_DELTA_SIGMA1 (volatile unsigned int *)((0x1456 << 2) + 0xffd00000)
// Additional Audio filter controls
#define AIU_DELTA_SIGMA2 (0x1457)
#define P_AIU_DELTA_SIGMA2 (volatile unsigned int *)((0x1457 << 2) + 0xffd00000)
//Bit 14, left channel Delta Sigma modulator soft reset
//Bit 13, right channel Delta Sigma modulator soft reset
//Bit 12, left channel Delta Sigma modulator internal state clear enable when it is unstable
//Bit 11, right channel Delta Sigma modulator internal state clear enable when it is unstable
//Bit 10, left channel Delta Sigma detect unstable state enable
//Bit 9, right channel Delta Sigma detect unstable state enable
//Bit 8, dither high pass filter enable in the Delta Sigma loop
//Bit 7:6, reserved
//Bit 5:0, Delta Sigma input data gain 0/32 ~ 63/32
//default: 16'h3
#define AIU_DELTA_SIGMA3 (0x1458)
#define P_AIU_DELTA_SIGMA3 (volatile unsigned int *)((0x1458 << 2) + 0xffd00000)
//15:8, Added Delta Sigma DC level, range:+-1/2, minimium: +-1/128 (assume max is -1 ~ +1)
//7:0, max same sequence number, used for unstable detection
//default: 16'h0
#define AIU_DELTA_SIGMA4 (0x1459)
#define P_AIU_DELTA_SIGMA4 (volatile unsigned int *)((0x1459 << 2) + 0xffd00000)
//Bit 15:8, square wave divide num
//Bit 7:0, square wave amplitude, -1/4 ~ 1/4, minimium: +-1/1024
//default: 16'h0
#define AIU_DELTA_SIGMA5 (0x145a)
#define P_AIU_DELTA_SIGMA5 (volatile unsigned int *)((0x145a << 2) + 0xffd00000)
//Bit 11:8, loop dither amplitude2, 0/32 ~ 15/32
//Bit 7:4, loop dither amplitude1, 0/32 ~ 15/32
//Bit 3:0, loop dither amplitude0, 0/32 ~ 15/32
//default: 16'h0
#define AIU_DELTA_SIGMA6 (0x145b)
#define P_AIU_DELTA_SIGMA6 (volatile unsigned int *)((0x145b << 2) + 0xffd00000)
//Bit 15:8, loop dithering threshold1 0, 1/512, 2/512 ... 1/2
//Bit 7:0, loop dithering threshold0 0, 1/512, 2/512 ... 1/2
//default: 16'h0
#define AIU_DELTA_SIGMA7 (0x145c)
#define P_AIU_DELTA_SIGMA7 (volatile unsigned int *)((0x145c << 2) + 0xffd00000)
//read only
//Bit 15:8 left channel Delta Sigma clear counter number, how many times Delta Sigma has been reseted
// It will saturate to 255, if more than 255 time
//Bit 7:0 left channel max same sequence number
#define AIU_DELTA_SIGMA_LCNTS (0x145d)
#define P_AIU_DELTA_SIGMA_LCNTS (volatile unsigned int *)((0x145d << 2) + 0xffd00000)
//read only
//Bit 15:8 right channel Delta Sigma clear counter number, how many times Delta Sigma has been reseted
// It will saturate to 255, if more than 255 time
//Bit 7:0 right channel max same sequence number
#define AIU_DELTA_SIGMA_RCNTS (0x145e)
#define P_AIU_DELTA_SIGMA_RCNTS (volatile unsigned int *)((0x145e << 2) + 0xffd00000)
// --------------------------------------------
// I2S DDR Interface
// --------------------------------------------
// The I2S start pointer into DDR memory is a 32-bit number
#define AIU_MEM_I2S_START_PTR (0x1460)
#define P_AIU_MEM_I2S_START_PTR (volatile unsigned int *)((0x1460 << 2) + 0xffd00000)
#define AIU_MEM_I2S_RD_PTR (0x1461)
#define P_AIU_MEM_I2S_RD_PTR (volatile unsigned int *)((0x1461 << 2) + 0xffd00000)
#define AIU_MEM_I2S_END_PTR (0x1462)
#define P_AIU_MEM_I2S_END_PTR (volatile unsigned int *)((0x1462 << 2) + 0xffd00000)
// There are two masks that control how data is read:
// [31:16] IRQ block.
// [15:8] chan_mem_mask. Each bit indicates which channels exist in memory
// [7:0] chan_rd_mask. Each bit indicates which channels are READ from memory
#define AIU_MEM_I2S_MASKS (0x1463)
#define P_AIU_MEM_I2S_MASKS (volatile unsigned int *)((0x1463 << 2) + 0xffd00000)
// I2S FIFO Control
// bits [11:10] Select which hardware pointer to use to control the buffer
// level:
// 00 = parser
// 01 = audin_fifo0_wrpt
// 1x = audin_fifo1_wrpt
// bit [9] Use level control: 1 = use buffer level control
// bit [8] Read Only. This bit is 1 when there is data available for reading
// bit [7] Read only. This bit will be high when we're fetching data from the DDR memory
// To reset this module, set cntl_enable = 0, and then wait for busy = 0.
// After that you can pulse cntl_init to start over
// bit [6] cntl_mode_16bit:Set to 1 for 16 bit storage format in DDR
// bits [5:3] endian: see $lib/rtl/ddr_endian.v
// bit [2] cntl_empty_en Set to 1 to enable reading data from the FIFO
// bit [1] cntl_fill_en Set to 1 to enable reading data from DDR memory
// bit [0] cntl_init: After setting the read pointers, sizes, channel masks
// and read masks, set this bit to 1 and then to 0
#define AIU_MEM_I2S_CONTROL (0x1464)
#define P_AIU_MEM_I2S_CONTROL (volatile unsigned int *)((0x1464 << 2) + 0xffd00000)
// --------------------------------------------
// IEC958 DDR Interface
// --------------------------------------------
// The IEC958 start pointer into DDR memory is a 32-bit number
#define AIU_MEM_IEC958_START_PTR (0x1465)
#define P_AIU_MEM_IEC958_START_PTR (volatile unsigned int *)((0x1465 << 2) + 0xffd00000)
#define AIU_MEM_IEC958_RD_PTR (0x1466)
#define P_AIU_MEM_IEC958_RD_PTR (volatile unsigned int *)((0x1466 << 2) + 0xffd00000)
#define AIU_MEM_IEC958_END_PTR (0x1467)
#define P_AIU_MEM_IEC958_END_PTR (volatile unsigned int *)((0x1467 << 2) + 0xffd00000)
// There are two masks that control how data is read:
// [15:8] chan_mem_mask. Each bit indicates which channels exist in memory
// [7:0] chan_rd_mask. Each bit indicates which channels are READ from memory
#define AIU_MEM_IEC958_MASKS (0x1468)
#define P_AIU_MEM_IEC958_MASKS (volatile unsigned int *)((0x1468 << 2) + 0xffd00000)
// IEC958 FIFO Control
// bit [31] A_urgent
// bit [30] ch_always_8
// bit [29:24] rdata_rd_base_begin ( used for select from different channel )
// bit [23:14] reserved
// bit [13] cntl_sim_en
// bit [12] cntl_use_level
// bit [11] Read only. This bit will be set to 1 when there is data in the FIFO to process
// bit [10] Read only. This bit will be high when we're fetching data from the DDR memory
// To reset this module, set cntl_enable = 0, and then wait for busy = 0.
// After that you can pulse cntl_init to start over
// bit [9] cntl_endian_jic Just in case endian. last minute byte swap of the data out of
// the FIFO to the rest of the IEC958 logic
// bit [8] mode_raw: Set this bit to 1 to tell the IEC958 FIFO to read
// and process data linearly for raw data.
// bit [7] cntl_mode_16bit:Set to 1 for 16 bit storage format in DDR. Only valid when mode_raw = 0
// bit [6] cntl_rd_ddr Set this bit to read if you want AIU_MEM_IEC958_RD_PTR and
// AIU_MEM_IEC958_RD_PTR_HIGH to refer to the pointer into DDR memory.
// Otherwise, the curr_ptr registers refer to the byte address of the data
// at the output of the FIFO to the rest of the IEC958 logic
// bits [5:3] endian: see $lib/rtl/ddr_endian.v
// bit [2] cntl_empty_en Set to 1 to enable reading the DDR memory FIFO and filling the pipeline to get-bit
// Set cntl_empty_en = cntl_fill_en = 0 when pulsing cntl_init
// bit [1] cntl_fill_en Set to 1 to enable reading data from DDR memory
// bit [0] cntl_init: After setting the read pointers, sizes, channel masks
// and read masks, set this bit to 1 and then to 0
#define AIU_MEM_IEC958_CONTROL (0x1469)
#define P_AIU_MEM_IEC958_CONTROL (volatile unsigned int *)((0x1469 << 2) + 0xffd00000)
// --------------------------------------------
// AIFIFO2 DDR Interface
// --------------------------------------------
// The AIFIFO2 start pointer into DDR memory is a 32-bit number
// The Start pointer will automatically be truncated to land on
// an 8-byte boundary. That is, bits [2:0] = 0;
#define AIU_MEM_AIFIFO2_START_PTR (0x146a)
#define P_AIU_MEM_AIFIFO2_START_PTR (volatile unsigned int *)((0x146a << 2) + 0xffd00000)
// The current pointer points so some location between the START and END
// pointers. The current pointer is a BYTE pointer. That is, you can
// point to any BYTE address within the START/END range
#define AIU_MEM_AIFIFO2_CURR_PTR (0x146b)
#define P_AIU_MEM_AIFIFO2_CURR_PTR (volatile unsigned int *)((0x146b << 2) + 0xffd00000)
#define AIU_MEM_AIFIFO2_END_PTR (0x146c)
#define P_AIU_MEM_AIFIFO2_END_PTR (volatile unsigned int *)((0x146c << 2) + 0xffd00000)
#define AIU_MEM_AIFIFO2_BYTES_AVAIL (0x146d)
#define P_AIU_MEM_AIFIFO2_BYTES_AVAIL (volatile unsigned int *)((0x146d << 2) + 0xffd00000)
// AIFIFO2 FIFO Control
// bit [15:11] unused
// bit [10] use_level Set this bit to 1 to enable filling of the FIFO controlled by the buffer
// level control. If this bit is 0, then use bit[1] to control the enabling of filling
// bit [9] Data Ready. This bit is set when data can be popped
// bit [8] fill busy This bit will be high when we're fetching data from the DDR memory
// To reset this module, set cntl_enable = 0, and then wait for busy = 0.
// After that you can pulse cntl_init to start over
// bit [7] cntl_endian_jic Just in case endian. last minute byte swap of the data out of
// the FIFO to getbit
// bit [6] unused
// bits [5:3] endian: see $lib/rtl/ddr_endian.v
// bit [2] cntl_empty_en Set to 1 to enable reading the DDR memory FIFO and filling the pipeline to get-bit
// Set cntl_empty_en = cntl_fill_en = 0 when pulsing cntl_init
// bit [1] cntl_fill_en Set to 1 to enable reading data from DDR memory
// bit [0] cntl_init: After setting the read pointers, sizes, channel masks
// and read masks, set this bit to 1 and then to 0
// NOTE: You don't need to pulse cntl_init if only the start address is
// being changed
#define AIU_MEM_AIFIFO2_CONTROL (0x146e)
#define P_AIU_MEM_AIFIFO2_CONTROL (volatile unsigned int *)((0x146e << 2) + 0xffd00000)
// --------------------------------------------
// AIFIFO2 Buffer Level Manager
// --------------------------------------------
#define AIU_MEM_AIFIFO2_MAN_WP (0x146f)
#define P_AIU_MEM_AIFIFO2_MAN_WP (volatile unsigned int *)((0x146f << 2) + 0xffd00000)
#define AIU_MEM_AIFIFO2_MAN_RP (0x1470)
#define P_AIU_MEM_AIFIFO2_MAN_RP (volatile unsigned int *)((0x1470 << 2) + 0xffd00000)
#define AIU_MEM_AIFIFO2_LEVEL (0x1471)
#define P_AIU_MEM_AIFIFO2_LEVEL (volatile unsigned int *)((0x1471 << 2) + 0xffd00000)
//
// bit [1] manual mode Set to 1 for manual write pointer mode
// bit [0] Init Set high then low after everything has been initialized
#define AIU_MEM_AIFIFO2_BUF_CNTL (0x1472)
#define P_AIU_MEM_AIFIFO2_BUF_CNTL (volatile unsigned int *)((0x1472 << 2) + 0xffd00000)
// --------------------------------------------
// I2S Buffer Level Manager
// --------------------------------------------
#define AIU_MEM_I2S_MAN_WP (0x1473)
#define P_AIU_MEM_I2S_MAN_WP (volatile unsigned int *)((0x1473 << 2) + 0xffd00000)
#define AIU_MEM_I2S_MAN_RP (0x1474)
#define P_AIU_MEM_I2S_MAN_RP (volatile unsigned int *)((0x1474 << 2) + 0xffd00000)
#define AIU_MEM_I2S_LEVEL (0x1475)
#define P_AIU_MEM_I2S_LEVEL (volatile unsigned int *)((0x1475 << 2) + 0xffd00000)
//
// bit [1] mode 0 = parser (or audin_fifo0 or audin_fifo1),
// 1 for manual write pointer
// bit [0] Init Set high then low after everything has been initialized
#define AIU_MEM_I2S_BUF_CNTL (0x1476)
#define P_AIU_MEM_I2S_BUF_CNTL (volatile unsigned int *)((0x1476 << 2) + 0xffd00000)
#define AIU_MEM_I2S_BUF_WRAP_COUNT (0x1477)
#define P_AIU_MEM_I2S_BUF_WRAP_COUNT (volatile unsigned int *)((0x1477 << 2) + 0xffd00000)
// bit 29:24 A_brst_num
// bit 21:16 A_id
// bit 15:0 level_hold
#define AIU_MEM_I2S_MEM_CTL (0x1478)
#define P_AIU_MEM_I2S_MEM_CTL (volatile unsigned int *)((0x1478 << 2) + 0xffd00000)
//-----------------------------------------------------------------------------
// Additional IEC958 registers (new feature)
//-----------------------------------------------------------------------------
// bit 29:24 A_brst_num
// bit 21:16 A_id
// bit 15:0 level_hold
#define AIU_MEM_IEC958_MEM_CTL (0x1479)
#define P_AIU_MEM_IEC958_MEM_CTL (volatile unsigned int *)((0x1479 << 2) + 0xffd00000)
#define AIU_MEM_IEC958_WRAP_COUNT (0x147a)
#define P_AIU_MEM_IEC958_WRAP_COUNT (volatile unsigned int *)((0x147a << 2) + 0xffd00000)
#define AIU_MEM_IEC958_IRQ_LEVEL (0x147b)
#define P_AIU_MEM_IEC958_IRQ_LEVEL (volatile unsigned int *)((0x147b << 2) + 0xffd00000)
#define AIU_MEM_IEC958_MAN_WP (0x147c)
#define P_AIU_MEM_IEC958_MAN_WP (volatile unsigned int *)((0x147c << 2) + 0xffd00000)
#define AIU_MEM_IEC958_MAN_RP (0x147d)
#define P_AIU_MEM_IEC958_MAN_RP (volatile unsigned int *)((0x147d << 2) + 0xffd00000)
#define AIU_MEM_IEC958_LEVEL (0x147e)
#define P_AIU_MEM_IEC958_LEVEL (volatile unsigned int *)((0x147e << 2) + 0xffd00000)
#define AIU_MEM_IEC958_BUF_CNTL (0x147f)
#define P_AIU_MEM_IEC958_BUF_CNTL (volatile unsigned int *)((0x147f << 2) + 0xffd00000)
//-----------------------------------------------------------------------------
// add for AIFIFO channel (old $cdrom/rtl/cdr_top/getbit)
//-----------------------------------------------------------------------------
// Bit 3 CRC pop aififo enable
// Bit 2 writing to this bit to 1 causes CRC module reset
// Bit 1 enable aififo
// Bit 0 writing to this bit to 1 causes aififo soft reset
#define AIU_AIFIFO_CTRL (0x1480)
#define P_AIU_AIFIFO_CTRL (volatile unsigned int *)((0x1480 << 2) + 0xffd00000)
//'h0000
// AIFIFO status register
// Bit 13 //aififo request to dcu status
// Bit 12 //dcu select status
// Bit 11:5 //aififo word counter number
// Bit 4:0 //how many bits left in the first pop register
#define AIU_AIFIFO_STATUS (0x1481)
#define P_AIU_AIFIFO_STATUS (volatile unsigned int *)((0x1481 << 2) + 0xffd00000)
// Same fucntion as the AIGBIT of AIFIFO in CDROM module
// write to this register how many bits wanna pop,
// and reading this register gets the corresponding bits data
#define AIU_AIFIFO_GBIT (0x1482)
#define P_AIU_AIFIFO_GBIT (volatile unsigned int *)((0x1482 << 2) + 0xffd00000)
// Same function as the AICLB of AIFIFO in CDROM module
// return the leading zeros by reading this registers
#define AIU_AIFIFO_CLB (0x1483)
#define P_AIU_AIFIFO_CLB (volatile unsigned int *)((0x1483 << 2) + 0xffd00000)
// --------------------------------------------
// AIFIFO DDR Interface
// --------------------------------------------
// The AIFIFO start pointer into DDR memory is a 32-bit number
// The Start pointer will automatically be truncated to land on
// an 8-byte boundary. That is, bits [2:0] = 0;
#define AIU_MEM_AIFIFO_START_PTR (0x1484)
#define P_AIU_MEM_AIFIFO_START_PTR (volatile unsigned int *)((0x1484 << 2) + 0xffd00000)
// The current pointer points so some location between the START and END
// pointers. The current pointer is a BYTE pointer. That is, you can
// point to any BYTE address within the START/END range
#define AIU_MEM_AIFIFO_CURR_PTR (0x1485)
#define P_AIU_MEM_AIFIFO_CURR_PTR (volatile unsigned int *)((0x1485 << 2) + 0xffd00000)
#define AIU_MEM_AIFIFO_END_PTR (0x1486)
#define P_AIU_MEM_AIFIFO_END_PTR (volatile unsigned int *)((0x1486 << 2) + 0xffd00000)
#define AIU_MEM_AIFIFO_BYTES_AVAIL (0x1487)
#define P_AIU_MEM_AIFIFO_BYTES_AVAIL (volatile unsigned int *)((0x1487 << 2) + 0xffd00000)
// AIFIFO FIFO Control
// bit [15:11] unused
// bit [10] use_level Set this bit to 1 to enable filling of the FIFO controlled by the buffer
// level control. If this bit is 0, then use bit[1] to control the enabling of filling
// bit [9] Data Ready. This bit is set when data can be popped
// bit [8] fill busy This bit will be high when we're fetching data from the DDR memory
// To reset this module, set cntl_enable = 0, and then wait for busy = 0.
// After that you can pulse cntl_init to start over
// bit [7] cntl_endian_jic Just in case endian. last minute byte swap of the data out of
// the FIFO to getbit
// bit [6] unused
// bits [5:3] endian: see $lib/rtl/ddr_endian.v
// bit [2] cntl_empty_en Set to 1 to enable reading the DDR memory FIFO and filling the pipeline to get-bit
// Set cntl_empty_en = cntl_fill_en = 0 when pulsing cntl_init
// bit [1] cntl_fill_en Set to 1 to enable reading data from DDR memory
// bit [0] cntl_init: After setting the read pointers, sizes, channel masks
// and read masks, set this bit to 1 and then to 0
// NOTE: You don't need to pulse cntl_init if only the start address is
// being changed
#define AIU_MEM_AIFIFO_CONTROL (0x1488)
#define P_AIU_MEM_AIFIFO_CONTROL (volatile unsigned int *)((0x1488 << 2) + 0xffd00000)
// --------------------------------------------
// AIFIFO Buffer Level Manager
// --------------------------------------------
#define AIU_MEM_AIFIFO_MAN_WP (0x1489)
#define P_AIU_MEM_AIFIFO_MAN_WP (volatile unsigned int *)((0x1489 << 2) + 0xffd00000)
#define AIU_MEM_AIFIFO_MAN_RP (0x148a)
#define P_AIU_MEM_AIFIFO_MAN_RP (volatile unsigned int *)((0x148a << 2) + 0xffd00000)
#define AIU_MEM_AIFIFO_LEVEL (0x148b)
#define P_AIU_MEM_AIFIFO_LEVEL (volatile unsigned int *)((0x148b << 2) + 0xffd00000)
//
// bit [1] manual mode Set to 1 for manual write pointer mode
// bit [0] Init Set high then low after everything has been initialized
#define AIU_MEM_AIFIFO_BUF_CNTL (0x148c)
#define P_AIU_MEM_AIFIFO_BUF_CNTL (volatile unsigned int *)((0x148c << 2) + 0xffd00000)
#define AIU_MEM_AIFIFO_BUF_WRAP_COUNT (0x148d)
#define P_AIU_MEM_AIFIFO_BUF_WRAP_COUNT (volatile unsigned int *)((0x148d << 2) + 0xffd00000)
#define AIU_MEM_AIFIFO2_BUF_WRAP_COUNT (0x148e)
#define P_AIU_MEM_AIFIFO2_BUF_WRAP_COUNT (volatile unsigned int *)((0x148e << 2) + 0xffd00000)
// bit 29:24 A_brst_num
// bit 21:16 A_id
// bit 15:0 level_hold
#define AIU_MEM_AIFIFO_MEM_CTL (0x148f)
#define P_AIU_MEM_AIFIFO_MEM_CTL (volatile unsigned int *)((0x148f << 2) + 0xffd00000)
// bit 31:16 -- drop_bytes
// bit 15:14 -- drop_status (Read-Only)
// bit 13:12 -- sync_match_position (Read-Only)
// bit 11:6 -- reserved
// bit 5:4 -- TIME_STAMP_NUMBER, 0-32bits, 1-64bits, 2-96bits, 3-128bits
// bit 3 -- stamp_soft_reset
// bit 2 -- TIME_STAMP_length_enable
// bit 1 -- TIME_STAMP_sync64_enable
// bit 0 -- TIME_STAMP_enable
#define AIFIFO_TIME_STAMP_CNTL (0x1490)
#define P_AIFIFO_TIME_STAMP_CNTL (volatile unsigned int *)((0x1490 << 2) + 0xffd00000)
// bit 31:0 -- TIME_STAMP_SYNC_CODE_0
#define AIFIFO_TIME_STAMP_SYNC_0 (0x1491)
#define P_AIFIFO_TIME_STAMP_SYNC_0 (volatile unsigned int *)((0x1491 << 2) + 0xffd00000)
// bit 31:0 -- TIME_STAMP_SYNC_CODE_1
#define AIFIFO_TIME_STAMP_SYNC_1 (0x1492)
#define P_AIFIFO_TIME_STAMP_SYNC_1 (volatile unsigned int *)((0x1492 << 2) + 0xffd00000)
// bit 31:0 TIME_STAMP_0
#define AIFIFO_TIME_STAMP_0 (0x1493)
#define P_AIFIFO_TIME_STAMP_0 (volatile unsigned int *)((0x1493 << 2) + 0xffd00000)
// bit 31:0 TIME_STAMP_1
#define AIFIFO_TIME_STAMP_1 (0x1494)
#define P_AIFIFO_TIME_STAMP_1 (volatile unsigned int *)((0x1494 << 2) + 0xffd00000)
// bit 31:0 TIME_STAMP_2
#define AIFIFO_TIME_STAMP_2 (0x1495)
#define P_AIFIFO_TIME_STAMP_2 (volatile unsigned int *)((0x1495 << 2) + 0xffd00000)
// bit 31:0 TIME_STAMP_3
#define AIFIFO_TIME_STAMP_3 (0x1496)
#define P_AIFIFO_TIME_STAMP_3 (volatile unsigned int *)((0x1496 << 2) + 0xffd00000)
// bit 31:0 TIME_STAMP_LENGTH
#define AIFIFO_TIME_STAMP_LENGTH (0x1497)
#define P_AIFIFO_TIME_STAMP_LENGTH (volatile unsigned int *)((0x1497 << 2) + 0xffd00000)
// bit 31:16 -- drop_bytes
// bit 15:14 -- drop_status (Read-Only)
// bit 13:12 -- sync_match_position (Read-Only)
// bit 11:6 -- reserved
// bit 5:4 -- TIME_STAMP_NUMBER, 0-32bits, 1-64bits, 2-96bits, 3-128bits
// bit 3 -- stamp_soft_reset
// bit 2 -- TIME_STAMP_length_enable
// bit 1 -- TIME_STAMP_sync64_enable
// bit 0 -- TIME_STAMP_enable
#define AIFIFO2_TIME_STAMP_CNTL (0x1498)
#define P_AIFIFO2_TIME_STAMP_CNTL (volatile unsigned int *)((0x1498 << 2) + 0xffd00000)
// bit 31:0 -- TIME_STAMP_SYNC_CODE_0
#define AIFIFO2_TIME_STAMP_SYNC_0 (0x1499)
#define P_AIFIFO2_TIME_STAMP_SYNC_0 (volatile unsigned int *)((0x1499 << 2) + 0xffd00000)
// bit 31:0 -- TIME_STAMP_SYNC_CODE_1
#define AIFIFO2_TIME_STAMP_SYNC_1 (0x149a)
#define P_AIFIFO2_TIME_STAMP_SYNC_1 (volatile unsigned int *)((0x149a << 2) + 0xffd00000)
// bit 31:0 TIME_STAMP_0
#define AIFIFO2_TIME_STAMP_0 (0x149b)
#define P_AIFIFO2_TIME_STAMP_0 (volatile unsigned int *)((0x149b << 2) + 0xffd00000)
// bit 31:0 TIME_STAMP_1
#define AIFIFO2_TIME_STAMP_1 (0x149c)
#define P_AIFIFO2_TIME_STAMP_1 (volatile unsigned int *)((0x149c << 2) + 0xffd00000)
// bit 31:0 TIME_STAMP_2
#define AIFIFO2_TIME_STAMP_2 (0x149d)
#define P_AIFIFO2_TIME_STAMP_2 (volatile unsigned int *)((0x149d << 2) + 0xffd00000)
// bit 31:0 TIME_STAMP_3
#define AIFIFO2_TIME_STAMP_3 (0x149e)
#define P_AIFIFO2_TIME_STAMP_3 (volatile unsigned int *)((0x149e << 2) + 0xffd00000)
// bit 31:0 TIME_STAMP_LENGTH
#define AIFIFO2_TIME_STAMP_LENGTH (0x149f)
#define P_AIFIFO2_TIME_STAMP_LENGTH (volatile unsigned int *)((0x149f << 2) + 0xffd00000)
// bit 31:16 -- drop_bytes
// bit 15:14 -- drop_status (Read-Only)
// bit 13:12 -- sync_match_position (Read-Only)
// bit 11:6 -- reserved
// bit 5:4 -- TIME_STAMP_NUMBER, 0-32bits, 1-64bits, 2-96bits, 3-128bits
// bit 3 -- stamp_soft_reset
// bit 2 -- TIME_STAMP_length_enable
// bit 1 -- TIME_STAMP_sync64_enable
// bit 0 -- TIME_STAMP_enable
#define IEC958_TIME_STAMP_CNTL (0x14a0)
#define P_IEC958_TIME_STAMP_CNTL (volatile unsigned int *)((0x14a0 << 2) + 0xffd00000)
// bit 31:0 -- TIME_STAMP_SYNC_CODE_0
#define IEC958_TIME_STAMP_SYNC_0 (0x14a1)
#define P_IEC958_TIME_STAMP_SYNC_0 (volatile unsigned int *)((0x14a1 << 2) + 0xffd00000)
// bit 31:0 -- TIME_STAMP_SYNC_CODE_1
#define IEC958_TIME_STAMP_SYNC_1 (0x14a2)
#define P_IEC958_TIME_STAMP_SYNC_1 (volatile unsigned int *)((0x14a2 << 2) + 0xffd00000)
// bit 31:0 TIME_STAMP_0
#define IEC958_TIME_STAMP_0 (0x14a3)
#define P_IEC958_TIME_STAMP_0 (volatile unsigned int *)((0x14a3 << 2) + 0xffd00000)
// bit 31:0 TIME_STAMP_1
#define IEC958_TIME_STAMP_1 (0x14a4)
#define P_IEC958_TIME_STAMP_1 (volatile unsigned int *)((0x14a4 << 2) + 0xffd00000)
// bit 31:0 TIME_STAMP_2
#define IEC958_TIME_STAMP_2 (0x14a5)
#define P_IEC958_TIME_STAMP_2 (volatile unsigned int *)((0x14a5 << 2) + 0xffd00000)
// bit 31:0 TIME_STAMP_3
#define IEC958_TIME_STAMP_3 (0x14a6)
#define P_IEC958_TIME_STAMP_3 (volatile unsigned int *)((0x14a6 << 2) + 0xffd00000)
// bit 31:0 TIME_STAMP_LENGTH
#define IEC958_TIME_STAMP_LENGTH (0x14a7)
#define P_IEC958_TIME_STAMP_LENGTH (volatile unsigned int *)((0x14a7 << 2) + 0xffd00000)
// bit 29:24 A_brst_num
// bit 21:16 A_id
// bit 15:0 level_hold
#define AIU_MEM_AIFIFO2_MEM_CTL (0x14a8)
#define P_AIU_MEM_AIFIFO2_MEM_CTL (volatile unsigned int *)((0x14a8 << 2) + 0xffd00000)
// --------------------------------------------
// CBUS_DDR interface for I2S_FAST
// --------------------------------------------
// bit[31:26] unused
// bit[25] A_req level
// bit[24] data_req If this bit is 1, then (a_req_cnt != 'h0)
// bit[23:16] a_req_cnt This value corresponds to the number of 32-bit words
// requested by the i2s_fast() module
// bit[15:7] unused
// bit[6] Set this bit to mux in the cbus_ddr_interface
// bit[5] Set this bit to allow back to back A_req's to be serviced
// bit[4] Set this bit to generate an IRQ on the first A_req
// If this bit is 0, then an IRQ is generated after all requests
// are completed and how many 32-bit words to send is calculated.
// bit[3:1] Endian
// bit[0] Set this bit enable the cbus_ddr_interface
#define AIU_I2S_CBUS_DDR_CNTL (0x14a9)
#define P_AIU_I2S_CBUS_DDR_CNTL (volatile unsigned int *)((0x14a9 << 2) + 0xffd00000)
// 32-bit data to write to the cbus_ddr interface
#define AIU_I2S_CBUS_DDR_WDATA (0x14aa)
#define P_AIU_I2S_CBUS_DDR_WDATA (volatile unsigned int *)((0x14aa << 2) + 0xffd00000)
// First address associated with the first request by the i2s_fast() to read DDR data
#define AIU_I2S_CBUS_DDR_ADDR (0x14ab)
#define P_AIU_I2S_CBUS_DDR_ADDR (volatile unsigned int *)((0x14ab << 2) + 0xffd00000)
//
// Closing file: aregs.h
//
//========================================================================
// CDROM Interface (12'h600 - 12'h6ff)
//
//========================================================================
//========================================================================
// registers for ge2d (12'h8a0 - 12'h8ff)
//========================================================================
////`include "ge2d_regs.h" // not in cbus domain any more, it is located in vapb3 bus now
//========================================================================
// DSP Co-Processor Registers ( 8'he00 - 12'hfff)
//
//========================================================================
// Duplicate Address: When actually used
// please move to a different address
// `define AUDIO_COP_CTL1 12'hf00 // r & w; r-> 6'h00,bsmod[2:0],acmod[2:0],lfeon,nfchans[2:0]
//
// Incorrect format....should be 8'bits only
//
// Removed by Chris Maslyar `define AUDIO_COP_CTL2 12'hf01 // r & w; r-> frame_size[12:0],dsurmod[1:0]
// Removed by Chris Maslyar
// Removed by Chris Maslyar // f02 -f0d are special regs , not in ac3_reg.h, but used by CPU for AC3 operations
// Removed by Chris Maslyar
// Removed by Chris Maslyar `define OPERAND_M_CTL 12'hf02
// Removed by Chris Maslyar `define OPERAND1_ADDR 12'hf03
// Removed by Chris Maslyar `define OPERAND2_ADDR 12'hf04
// Removed by Chris Maslyar `define RESULT_M_CTL 12'hf05
// Removed by Chris Maslyar `define RESULT1_ADDR 12'hf06
// Removed by Chris Maslyar `define RESULT2_ADDR 12'hf07
// Removed by Chris Maslyar `define ADD_SHFT_CTL 12'hf08
// Removed by Chris Maslyar `define OPERAND_ONE_H 12'hf09
// Removed by Chris Maslyar `define OPERAND_ONE_L 12'hf0a
// Removed by Chris Maslyar `define OPERAND_TWO_H 12'hf0b
// Removed by Chris Maslyar `define OPERAND_TWO_L 12'hf0c
// Removed by Chris Maslyar `define RESULT_H 12'hf0d
// Removed by Chris Maslyar
// Removed by Chris Maslyar
// Removed by Chris Maslyar `define RESULT_M 12'hf0e // r & w; ac3_reg_14
// Removed by Chris Maslyar
// Removed by Chris Maslyar // special reg
// Removed by Chris Maslyar `define RESULT_L 12'hf0f
// Removed by Chris Maslyar
// Removed by Chris Maslyar //
// Removed by Chris Maslyar `define WMEM_R_PTR 12'hf10 // r & w ; endmant0 &1
// Removed by Chris Maslyar
// Removed by Chris Maslyar `define WMEM_W_PTR 12'hf11
// Removed by Chris Maslyar `define AUDIO_LAYER 12'hf20
// Removed by Chris Maslyar `define AC3_DECODING 12'hf21
// Removed by Chris Maslyar `define AC3_DYNAMIC 12'hf22
// Removed by Chris Maslyar `define AC3_MELODY 12'hf23
// Removed by Chris Maslyar `define AC3_VOCAL 12'hf24
//======================================
// CPU Assist module
//
//======================================
// -----------------------------------------------
// CBUS_BASE: ASSIST_CBUS_BASE = 0x20
// -----------------------------------------------
//`define ASSIST_AMR_MBOX1_INT 8'h4d
//`define ASSIST_AMR_MBOX2_INT 8'h4e
#define ASSIST_AMR_SCRATCH0 (0x204f)
#define P_ASSIST_AMR_SCRATCH0 (volatile unsigned int *)((0x204f << 2) + 0xffd00000)
#define ASSIST_AMR_SCRATCH1 (0x2050)
#define P_ASSIST_AMR_SCRATCH1 (volatile unsigned int *)((0x2050 << 2) + 0xffd00000)
#define ASSIST_AMR_SCRATCH2 (0x2051)
#define P_ASSIST_AMR_SCRATCH2 (volatile unsigned int *)((0x2051 << 2) + 0xffd00000)
#define ASSIST_AMR_SCRATCH3 (0x2052)
#define P_ASSIST_AMR_SCRATCH3 (volatile unsigned int *)((0x2052 << 2) + 0xffd00000)
#define ASSIST_HW_REV (0x2053)
#define P_ASSIST_HW_REV (volatile unsigned int *)((0x2053 << 2) + 0xffd00000)
//`define ASSIST_CBUS_ARB 8'h54
#define ASSIST_POR_CONFIG (0x2055)
#define P_ASSIST_POR_CONFIG (volatile unsigned int *)((0x2055 << 2) + 0xffd00000)
#define ASSIST_SPARE16_REG1 (0x2056)
#define P_ASSIST_SPARE16_REG1 (volatile unsigned int *)((0x2056 << 2) + 0xffd00000)
#define ASSIST_SPARE16_REG2 (0x2057)
#define P_ASSIST_SPARE16_REG2 (volatile unsigned int *)((0x2057 << 2) + 0xffd00000)
#define ASSIST_SPARE8_REG1 (0x2058)
#define P_ASSIST_SPARE8_REG1 (volatile unsigned int *)((0x2058 << 2) + 0xffd00000)
#define ASSIST_SPARE8_REG2 (0x2059)
#define P_ASSIST_SPARE8_REG2 (volatile unsigned int *)((0x2059 << 2) + 0xffd00000)
// Duplicate Address...when used please move to a new address
// `define TO_AMRISC_REG 8'h59 // for amrisc
#define ASSIST_SPARE8_REG3 (0x205a)
#define P_ASSIST_SPARE8_REG3 (volatile unsigned int *)((0x205a << 2) + 0xffd00000)
// Duplicate Address...when used please move to a new address
// `define FROM_AMRISC_REG 8'h5a // for amrisc
// Duplicate Address...when used please move to a new address
// `define MPEG2_DECODER_CONTROL 8'h5b // for amrisc
#define AC3_CTRL_REG1 (0x205b)
#define P_AC3_CTRL_REG1 (volatile unsigned int *)((0x205b << 2) + 0xffd00000)
#define AC3_CTRL_REG2 (0x205c)
#define P_AC3_CTRL_REG2 (volatile unsigned int *)((0x205c << 2) + 0xffd00000)
#define AC3_CTRL_REG3 (0x205d)
#define P_AC3_CTRL_REG3 (volatile unsigned int *)((0x205d << 2) + 0xffd00000)
#define AC3_CTRL_REG4 (0x205e)
#define P_AC3_CTRL_REG4 (volatile unsigned int *)((0x205e << 2) + 0xffd00000)
//`define ASSIST_PMEM_SPLIT 8'h5f
#define ASSIST_GEN_CNTL (0x2068)
#define P_ASSIST_GEN_CNTL (volatile unsigned int *)((0x2068 << 2) + 0xffd00000)
#define EE_ASSIST_MBOX0_IRQ_REG (0x2070)
#define P_EE_ASSIST_MBOX0_IRQ_REG (volatile unsigned int *)((0x2070 << 2) + 0xffd00000)
#define EE_ASSIST_MBOX0_CLR_REG (0x2071)
#define P_EE_ASSIST_MBOX0_CLR_REG (volatile unsigned int *)((0x2071 << 2) + 0xffd00000)
#define EE_ASSIST_MBOX0_MASK (0x2072)
#define P_EE_ASSIST_MBOX0_MASK (volatile unsigned int *)((0x2072 << 2) + 0xffd00000)
#define EE_ASSIST_MBOX0_FIQ_SEL (0x2073)
#define P_EE_ASSIST_MBOX0_FIQ_SEL (volatile unsigned int *)((0x2073 << 2) + 0xffd00000)
#define EE_ASSIST_MBOX1_IRQ_REG (0x2074)
#define P_EE_ASSIST_MBOX1_IRQ_REG (volatile unsigned int *)((0x2074 << 2) + 0xffd00000)
#define EE_ASSIST_MBOX1_CLR_REG (0x2075)
#define P_EE_ASSIST_MBOX1_CLR_REG (volatile unsigned int *)((0x2075 << 2) + 0xffd00000)
#define EE_ASSIST_MBOX1_MASK (0x2076)
#define P_EE_ASSIST_MBOX1_MASK (volatile unsigned int *)((0x2076 << 2) + 0xffd00000)
#define EE_ASSIST_MBOX1_FIQ_SEL (0x2077)
#define P_EE_ASSIST_MBOX1_FIQ_SEL (volatile unsigned int *)((0x2077 << 2) + 0xffd00000)
#define EE_ASSIST_MBOX2_IRQ_REG (0x2078)
#define P_EE_ASSIST_MBOX2_IRQ_REG (volatile unsigned int *)((0x2078 << 2) + 0xffd00000)
#define EE_ASSIST_MBOX2_CLR_REG (0x2079)
#define P_EE_ASSIST_MBOX2_CLR_REG (volatile unsigned int *)((0x2079 << 2) + 0xffd00000)
#define EE_ASSIST_MBOX2_MASK (0x207a)
#define P_EE_ASSIST_MBOX2_MASK (volatile unsigned int *)((0x207a << 2) + 0xffd00000)
#define EE_ASSIST_MBOX2_FIQ_SEL (0x207b)
#define P_EE_ASSIST_MBOX2_FIQ_SEL (volatile unsigned int *)((0x207b << 2) + 0xffd00000)
#define EE_ASSIST_MBOX3_IRQ_REG (0x207c)
#define P_EE_ASSIST_MBOX3_IRQ_REG (volatile unsigned int *)((0x207c << 2) + 0xffd00000)
#define EE_ASSIST_MBOX3_CLR_REG (0x207d)
#define P_EE_ASSIST_MBOX3_CLR_REG (volatile unsigned int *)((0x207d << 2) + 0xffd00000)
#define EE_ASSIST_MBOX3_MASK (0x207e)
#define P_EE_ASSIST_MBOX3_MASK (volatile unsigned int *)((0x207e << 2) + 0xffd00000)
#define EE_ASSIST_MBOX3_FIQ_SEL (0x207f)
#define P_EE_ASSIST_MBOX3_FIQ_SEL (volatile unsigned int *)((0x207f << 2) + 0xffd00000)
// -----------------------------------------------
// CBUS_BASE: AUD_CBUS_BASE = 0x34
// -----------------------------------------------
// ----------------------------
// AUDIN (64)
// ----------------------------
#define AUDIN_SPDIF_MODE (0x3400)
#define P_AUDIN_SPDIF_MODE (volatile unsigned int *)((0x3400 << 2) + 0xffd00000)
#define SPDIF_EN 31
#define SPDIF_INT_EN 30
#define SPDIF_BURST_PRE_INT_EN 29
#define SPDIF_TIE_0 24
#define SPDIF_SAMPLE_SEL 23
#define SPDIF_REVERSE_EN 22
#define SPDIF_BIT_ORDER 20
#define SPDIF_CHNL_ORDER 19
#define SPDIF_DATA_TYPE_SEL 18
#define SPDIF_XTDCLK_UPD_ITVL 14 //16:14
#define SPDIF_CLKNUM_54U 0 //13:0
#define AUDIN_SPDIF_FS_CLK_RLTN (0x3401)
#define P_AUDIN_SPDIF_FS_CLK_RLTN (volatile unsigned int *)((0x3401 << 2) + 0xffd00000)
#define SPDIF_CLKNUM_192K 24 //29:24
#define SPDIF_CLKNUM_96K 18 //23:18
#define SPDIF_CLKNUM_48K 12 //17:12
#define SPDIF_CLKNUM_44K 6 // 11:6
#define SPDIF_CLKNUM_32K 0 // 5:0
#define AUDIN_SPDIF_CHNL_STS_A (0x3402)
#define P_AUDIN_SPDIF_CHNL_STS_A (volatile unsigned int *)((0x3402 << 2) + 0xffd00000)
#define AUDIN_SPDIF_CHNL_STS_B (0x3403)
#define P_AUDIN_SPDIF_CHNL_STS_B (volatile unsigned int *)((0x3403 << 2) + 0xffd00000)
#define AUDIN_SPDIF_MISC (0x3404)
#define P_AUDIN_SPDIF_MISC (volatile unsigned int *)((0x3404 << 2) + 0xffd00000)
#define AUDIN_SPDIF_NPCM_PCPD (0x3405)
#define P_AUDIN_SPDIF_NPCM_PCPD (volatile unsigned int *)((0x3405 << 2) + 0xffd00000)
#define AUDIN_SPDIF_END (0x340f)
#define P_AUDIN_SPDIF_END (volatile unsigned int *)((0x340f << 2) + 0xffd00000)
#define AUDIN_I2SIN_CTRL (0x3410)
#define P_AUDIN_I2SIN_CTRL (volatile unsigned int *)((0x3410 << 2) + 0xffd00000)
#define I2SIN_DIR 0 // I2S CLK and LRCLK direction. 0 : input 1 : output.
#define I2SIN_CLK_SEL 1 // I2S clk selection : 0 : from pad input. 1 : from AIU.
#define I2SIN_LRCLK_SEL 2
#define I2SIN_POS_SYNC 3
#define I2SIN_LRCLK_SKEW 4 // 6:4
#define I2SIN_LRCLK_INVT 7
#define I2SIN_SIZE 8 //9:8 : 0 16 bit. 1 : 18 bits 2 : 20 bits 3 : 24bits.
#define I2SIN_CHAN_EN 10 //13:10.
#define I2SIN_EN 15
// Bit 31:15 Rsrv.
// Bit 14:12 RW HDMI-RX SPDIF channel status select to report on AUDIN_DECODE_CHANNEL_STATUS_A_*: 0=select channel 1; 1=channel 2; ...; 7=channel 8.
// Bit 11: 8 RW HDMI-RX SPDIF channel status extraction enable, 1-bit per channel pair. To enable, SPDIF input source also must select 1.
// Bit 7: 6 Rsrv.
// Bit 5: 4 RW SPDIF input source select. 0=Default, select chip external; 1=select HDMI RX output; 2/3=Rsrv.
// Bit 3: 2 Rsrv.
// Bit 1: 0 RW I2S input source select. 0=Default, select chip external; 1=select audio codec output; 2=select HDMI RX output; 3=Rsrv.
#define AUDIN_SOURCE_SEL (0x3411)
#define P_AUDIN_SOURCE_SEL (volatile unsigned int *)((0x3411 << 2) + 0xffd00000)
// The following registers control the new alternative decoder -- hdmi_tx_audio_decoder, in audin module
// Bit 31:25 Rsrv.
// Bit 24 RW SPDIF enable.
// Bit 23:22 Rsrv.
// Bit 21:20 RW i2s_block_start_src: 0=left channel 0 is approved as block start generator, ..., 3=left channel 3 is the block start generator.
// Bit 19:17 Rsrv.
// Bit 16 RW I2S enable.
// Bit 15: 8 RW audio_channel_alloc: Usage indication of up to 8 channels. If the correspoinding bit is 1, then this channel is used.
// E.g.: In 2-channel audio, it is 00000011
// Bit 7 RW hdmi_tx_audio_decoder input sel: 0=SPDIF; 1=I2S.
// Bit 6 RW i2s_channel_config: 0=2-channel; 1=8-channel.
// Bit 5: 4 RW i2s_format_select: 0=left-justify; 1=right-justify; 2=I2S format; 3=DSP format.
// Bit 3: 2 RW i2s_bit_width: 0=16-bit; 1=18-bit; 2=20-bit; 3=24-bit.
// Bit 1 RW ws polarity: 0=0 is left, 1 is right; 1=1 is left, 0 is right.
// Bit 0 RW For SPDIF mode, 0=use channel status from input data; 1=use channel status from registers;
// For I2S mode, 0=one-bit audio; 1=I2S.
#define AUDIN_DECODE_FORMAT (0x3412)
#define P_AUDIN_DECODE_FORMAT (volatile unsigned int *)((0x3412 << 2) + 0xffd00000)
// Bit 31:25 Rsrv.
// Bit 24 R channel_status stablility indicator.
// Bit 23:16 RW Valid bits for audio sample packet. [7] for valid_sp3_right, [6] for valid_sp3_left, ..., [1] for valid_sp0_right, [0] for valid_sp0_left.
// Bit 15: 8 RW User bits for audio sample packet. [7] for user_sp3_right, [6] for user_sp3_left, ..., [1] for user_sp0_right, [0] for user_sp0_left.
// Bit 7: 4 RW cntl_init_discard: Number of initial hdmi_tx_audio_decoder samples to discard from reset.
// Bit 3 RW cntl_invert_i2s_lrclk: Invert WS before input to hdmi_tx_audio_decoder.
// Bit 2 RW audio_valid_overwrite: Valid bit selection in audio packet. 0=use input data; 1=use
// Bit 1 RW audio_user_overwrite: User bit selection in audio packet. 0=use input data; 1=use
// Bit 0 RW audio_sample_valid: sample non-flat indication. 0=flat, non-valid; 1=non-flat, valid.
#define AUDIN_DECODE_CONTROL_STATUS (0x3413)
#define P_AUDIN_DECODE_CONTROL_STATUS (volatile unsigned int *)((0x3413 << 2) + 0xffd00000)
// IEC958 192-bit channel status: muxed between 8 channels, channel selection by AUDIN_SOURCE_SEL[14:12]
#define AUDIN_DECODE_CHANNEL_STATUS_A_0 (0x3414)
#define P_AUDIN_DECODE_CHANNEL_STATUS_A_0 (volatile unsigned int *)((0x3414 << 2) + 0xffd00000)
#define AUDIN_DECODE_CHANNEL_STATUS_A_1 (0x3415)
#define P_AUDIN_DECODE_CHANNEL_STATUS_A_1 (volatile unsigned int *)((0x3415 << 2) + 0xffd00000)
#define AUDIN_DECODE_CHANNEL_STATUS_A_2 (0x3416)
#define P_AUDIN_DECODE_CHANNEL_STATUS_A_2 (volatile unsigned int *)((0x3416 << 2) + 0xffd00000)
#define AUDIN_DECODE_CHANNEL_STATUS_A_3 (0x3417)
#define P_AUDIN_DECODE_CHANNEL_STATUS_A_3 (volatile unsigned int *)((0x3417 << 2) + 0xffd00000)
#define AUDIN_DECODE_CHANNEL_STATUS_A_4 (0x3418)
#define P_AUDIN_DECODE_CHANNEL_STATUS_A_4 (volatile unsigned int *)((0x3418 << 2) + 0xffd00000)
#define AUDIN_DECODE_CHANNEL_STATUS_A_5 (0x3419)
#define P_AUDIN_DECODE_CHANNEL_STATUS_A_5 (volatile unsigned int *)((0x3419 << 2) + 0xffd00000)
#define AUDIN_FIFO0_START (0x3420)
#define P_AUDIN_FIFO0_START (volatile unsigned int *)((0x3420 << 2) + 0xffd00000)
#define AUDIN_FIFO0_END (0x3421)
#define P_AUDIN_FIFO0_END (volatile unsigned int *)((0x3421 << 2) + 0xffd00000)
#define AUDIN_FIFO0_PTR (0x3422)
#define P_AUDIN_FIFO0_PTR (volatile unsigned int *)((0x3422 << 2) + 0xffd00000)
#define AUDIN_FIFO0_INTR (0x3423)
#define P_AUDIN_FIFO0_INTR (volatile unsigned int *)((0x3423 << 2) + 0xffd00000)
#define AUDIN_FIFO0_RDPTR (0x3424)
#define P_AUDIN_FIFO0_RDPTR (volatile unsigned int *)((0x3424 << 2) + 0xffd00000)
#define AUDIN_FIFO0_CTRL (0x3425)
#define P_AUDIN_FIFO0_CTRL (volatile unsigned int *)((0x3425 << 2) + 0xffd00000)
#define AUDIN_FIFO0_EN 0
#define AUDIN_FIFO0_RST 1
#define AUDIN_FIFO0_LOAD 2 //write 1 to load address to AUDIN_FIFO0.
#define AUDIN_FIFO0_DIN_SEL 3
// 0 spdifIN
// 1 i2Sin
// 2 PCMIN
// 3 HDMI in
// 4 DEMODULATOR IN
#define AUDIN_FIFO0_ENDIAN 8 //10:8 data endian control.
#define AUDIN_FIFO0_CHAN 11 //14:11 channel number. in M1 suppose there's only 1 channel and 2 channel.
#define AUDIN_FIFO0_UG 15 // urgent request enable.
#define AUDIN_FIFO0_HOLD0_EN 19
#define AUDIN_FIFO0_HOLD1_EN 20
#define AUDIN_FIFO0_HOLD2_EN 21
#define AUDIN_FIFO0_HOLD0_SEL 22 // 23:22
#define AUDIN_FIFO0_HOLD1_SEL 24 // 25:24
#define AUDIN_FIFO0_HOLD2_SEL 26 // 27:26
#define AUDIN_FIFO0_HOLD_LVL 28 // 27:26
#define AUDIN_FIFO0_CTRL1 (0x3426)
#define P_AUDIN_FIFO0_CTRL1 (volatile unsigned int *)((0x3426 << 2) + 0xffd00000)
#define AUDIN_FIFO0_LVL0 (0x3427)
#define P_AUDIN_FIFO0_LVL0 (volatile unsigned int *)((0x3427 << 2) + 0xffd00000)
#define AUDIN_FIFO0_LVL1 (0x3428)
#define P_AUDIN_FIFO0_LVL1 (volatile unsigned int *)((0x3428 << 2) + 0xffd00000)
#define AUDIN_FIFO0_LVL2 (0x3429)
#define P_AUDIN_FIFO0_LVL2 (volatile unsigned int *)((0x3429 << 2) + 0xffd00000)
#define AUDIN_FIFO0_REQID (0x3430)
#define P_AUDIN_FIFO0_REQID (volatile unsigned int *)((0x3430 << 2) + 0xffd00000)
#define AUDIN_FIFO0_WRAP (0x3431)
#define P_AUDIN_FIFO0_WRAP (volatile unsigned int *)((0x3431 << 2) + 0xffd00000)
#define AUDIN_FIFO1_START (0x3433)
#define P_AUDIN_FIFO1_START (volatile unsigned int *)((0x3433 << 2) + 0xffd00000)
#define AUDIN_FIFO1_END (0x3434)
#define P_AUDIN_FIFO1_END (volatile unsigned int *)((0x3434 << 2) + 0xffd00000)
#define AUDIN_FIFO1_PTR (0x3435)
#define P_AUDIN_FIFO1_PTR (volatile unsigned int *)((0x3435 << 2) + 0xffd00000)
#define AUDIN_FIFO1_INTR (0x3436)
#define P_AUDIN_FIFO1_INTR (volatile unsigned int *)((0x3436 << 2) + 0xffd00000)
#define AUDIN_FIFO1_RDPTR (0x3437)
#define P_AUDIN_FIFO1_RDPTR (volatile unsigned int *)((0x3437 << 2) + 0xffd00000)
#define AUDIN_FIFO1_CTRL (0x3438)
#define P_AUDIN_FIFO1_CTRL (volatile unsigned int *)((0x3438 << 2) + 0xffd00000)
#define AUDIN_FIFO1_EN 0
#define AUDIN_FIFO1_RST 1
#define AUDIN_FIFO1_LOAD 2 //write 1 to load address to AUDIN_FIFO0.
#define AUDIN_FIFO1_DIN_SEL 3
// 0 spdifIN
// 1 i2Sin
// 2 PCMIN
// 3 HDMI in
// 4 DEMODULATOR IN
#define AUDIN_FIFO1_ENDIAN 8 //10:8 data endian control.
#define AUDIN_FIFO1_CHAN 11 //14:11 channel number. in M1 suppose there's only 1 channel and 2 channel.
#define AUDIN_FIFO1_UG 15 // urgent request enable.
#define AUDIN_FIFO1_HOLD0_EN 19
#define AUDIN_FIFO1_HOLD1_EN 20
#define AUDIN_FIFO1_HOLD2_EN 21
#define AUDIN_FIFO1_HOLD0_SEL 22 // 23:22
#define AUDIN_FIFO1_HOLD1_SEL 24 // 25:24
#define AUDIN_FIFO1_HOLD2_SEL 26 // 27:26
#define AUDIN_FIFO1_HOLD_LVL 28 // 27:26
#define AUDIN_FIFO1_CTRL1 (0x3439)
#define P_AUDIN_FIFO1_CTRL1 (volatile unsigned int *)((0x3439 << 2) + 0xffd00000)
#define AUDIN_FIFO1_LVL0 (0x3440)
#define P_AUDIN_FIFO1_LVL0 (volatile unsigned int *)((0x3440 << 2) + 0xffd00000)
#define AUDIN_FIFO1_LVL1 (0x3441)
#define P_AUDIN_FIFO1_LVL1 (volatile unsigned int *)((0x3441 << 2) + 0xffd00000)
#define AUDIN_FIFO1_LVL2 (0x3442)
#define P_AUDIN_FIFO1_LVL2 (volatile unsigned int *)((0x3442 << 2) + 0xffd00000)
#define AUDIN_FIFO1_REQID (0x3443)
#define P_AUDIN_FIFO1_REQID (volatile unsigned int *)((0x3443 << 2) + 0xffd00000)
#define AUDIN_FIFO1_WRAP (0x3444)
#define P_AUDIN_FIFO1_WRAP (volatile unsigned int *)((0x3444 << 2) + 0xffd00000)
#define AUDIN_FIFO2_START (0x3445)
#define P_AUDIN_FIFO2_START (volatile unsigned int *)((0x3445 << 2) + 0xffd00000)
#define AUDIN_FIFO2_END (0x3446)
#define P_AUDIN_FIFO2_END (volatile unsigned int *)((0x3446 << 2) + 0xffd00000)
#define AUDIN_FIFO2_PTR (0x3447)
#define P_AUDIN_FIFO2_PTR (volatile unsigned int *)((0x3447 << 2) + 0xffd00000)
#define AUDIN_FIFO2_INTR (0x3448)
#define P_AUDIN_FIFO2_INTR (volatile unsigned int *)((0x3448 << 2) + 0xffd00000)
#define AUDIN_FIFO2_RDPTR (0x3449)
#define P_AUDIN_FIFO2_RDPTR (volatile unsigned int *)((0x3449 << 2) + 0xffd00000)
#define AUDIN_FIFO2_CTRL (0x344a)
#define P_AUDIN_FIFO2_CTRL (volatile unsigned int *)((0x344a << 2) + 0xffd00000)
#define AUDIN_FIFO2_CTRL1 (0x344b)
#define P_AUDIN_FIFO2_CTRL1 (volatile unsigned int *)((0x344b << 2) + 0xffd00000)
#define AUDIN_FIFO2_LVL0 (0x344c)
#define P_AUDIN_FIFO2_LVL0 (volatile unsigned int *)((0x344c << 2) + 0xffd00000)
#define AUDIN_FIFO2_LVL1 (0x344d)
#define P_AUDIN_FIFO2_LVL1 (volatile unsigned int *)((0x344d << 2) + 0xffd00000)
#define AUDIN_FIFO2_LVL2 (0x344e)
#define P_AUDIN_FIFO2_LVL2 (volatile unsigned int *)((0x344e << 2) + 0xffd00000)
#define AUDIN_FIFO2_REQID (0x344f)
#define P_AUDIN_FIFO2_REQID (volatile unsigned int *)((0x344f << 2) + 0xffd00000)
#define AUDIN_FIFO2_WRAP (0x3450)
#define P_AUDIN_FIFO2_WRAP (volatile unsigned int *)((0x3450 << 2) + 0xffd00000)
#define AUDIN_INT_CTRL (0x3451)
#define P_AUDIN_INT_CTRL (volatile unsigned int *)((0x3451 << 2) + 0xffd00000)
#define AUDIN_FIFO_INT (0x3452)
#define P_AUDIN_FIFO_INT (volatile unsigned int *)((0x3452 << 2) + 0xffd00000)
#define PCMIN_CTRL0 (0x3460)
#define P_PCMIN_CTRL0 (volatile unsigned int *)((0x3460 << 2) + 0xffd00000)
#define PCMIN_CTRL1 (0x3461)
#define P_PCMIN_CTRL1 (volatile unsigned int *)((0x3461 << 2) + 0xffd00000)
#define PCMIN_CTRL2 (0x3462)
#define P_PCMIN_CTRL2 (volatile unsigned int *)((0x3462 << 2) + 0xffd00000)
//`define PCMIN1_CTRL0 8'h62
//`define PCMIN1_CTRL1 8'h63
#define PCMOUT_CTRL0 (0x3470)
#define P_PCMOUT_CTRL0 (volatile unsigned int *)((0x3470 << 2) + 0xffd00000)
#define PCMOUT_CTRL1 (0x3471)
#define P_PCMOUT_CTRL1 (volatile unsigned int *)((0x3471 << 2) + 0xffd00000)
#define PCMOUT_CTRL2 (0x3472)
#define P_PCMOUT_CTRL2 (volatile unsigned int *)((0x3472 << 2) + 0xffd00000)
#define PCMOUT_CTRL3 (0x3473)
#define P_PCMOUT_CTRL3 (volatile unsigned int *)((0x3473 << 2) + 0xffd00000)
#define PCMOUT_CTRL4 (0x3474)
#define P_PCMOUT_CTRL4 (volatile unsigned int *)((0x3474 << 2) + 0xffd00000)
//`define PCMOUT1_CTRL0 8'h74
//`define PCMOUT1_CTRL1 8'h75
//`define PCMOUT1_CTRL2 8'h76
//`define PCMOUT1_CTRL3 8'h77
#define AUDOUT_CTRL (0x3480)
#define P_AUDOUT_CTRL (volatile unsigned int *)((0x3480 << 2) + 0xffd00000)
#define AUDOUT_CTRL1 (0x3481)
#define P_AUDOUT_CTRL1 (volatile unsigned int *)((0x3481 << 2) + 0xffd00000)
#define AUDOUT_BUF0_STA (0x3482)
#define P_AUDOUT_BUF0_STA (volatile unsigned int *)((0x3482 << 2) + 0xffd00000)
#define AUDOUT_BUF0_EDA (0x3483)
#define P_AUDOUT_BUF0_EDA (volatile unsigned int *)((0x3483 << 2) + 0xffd00000)
#define AUDOUT_BUF0_WPTR (0x3484)
#define P_AUDOUT_BUF0_WPTR (volatile unsigned int *)((0x3484 << 2) + 0xffd00000)
#define AUDOUT_BUF1_STA (0x3485)
#define P_AUDOUT_BUF1_STA (volatile unsigned int *)((0x3485 << 2) + 0xffd00000)
#define AUDOUT_BUF1_EDA (0x3486)
#define P_AUDOUT_BUF1_EDA (volatile unsigned int *)((0x3486 << 2) + 0xffd00000)
#define AUDOUT_BUF1_WPTR (0x3487)
#define P_AUDOUT_BUF1_WPTR (volatile unsigned int *)((0x3487 << 2) + 0xffd00000)
#define AUDOUT_FIFO_RPTR (0x3488)
#define P_AUDOUT_FIFO_RPTR (volatile unsigned int *)((0x3488 << 2) + 0xffd00000)
#define AUDOUT_INTR_PTR (0x3489)
#define P_AUDOUT_INTR_PTR (volatile unsigned int *)((0x3489 << 2) + 0xffd00000)
#define AUDOUT_FIFO_STS (0x348a)
#define P_AUDOUT_FIFO_STS (volatile unsigned int *)((0x348a << 2) + 0xffd00000)
//`define AUDOUT1_CTRL 8'h90
//`define AUDOUT1_CTRL1 8'h91
//`define AUDOUT1_BUF0_STA 8'h92
//`define AUDOUT1_BUF0_EDA 8'h93
//`define AUDOUT1_BUF0_WPTR 8'h94
//`define AUDOUT1_BUF1_STA 8'h95
//`define AUDOUT1_BUF1_EDA 8'h96
//`define AUDOUT1_BUF1_WPTR 8'h97
//`define AUDOUT1_FIFO_RPTR 8'h98
//`define AUDOUT1_INTR_PTR 8'h99
//`define AUDOUT1_FIFO_STS 8'h9a
//// Bit 31: 0 RW cntl_mute_val: Use this value during mute, if cntl_mute_mode=2.
//`define AUDIN_MUTE_VAL 8'h35
#define AUDIN_HDMI_MEAS_CTRL (0x34a0)
#define P_AUDIN_HDMI_MEAS_CTRL (volatile unsigned int *)((0x34a0 << 2) + 0xffd00000)
#define AUDIN_HDMI_MEAS_CYCLES_M1 (0x34a1)
#define P_AUDIN_HDMI_MEAS_CYCLES_M1 (volatile unsigned int *)((0x34a1 << 2) + 0xffd00000)
#define AUDIN_HDMI_MEAS_INTR_MASKN (0x34a2)
#define P_AUDIN_HDMI_MEAS_INTR_MASKN (volatile unsigned int *)((0x34a2 << 2) + 0xffd00000)
#define AUDIN_HDMI_MEAS_INTR_STAT (0x34a3)
#define P_AUDIN_HDMI_MEAS_INTR_STAT (volatile unsigned int *)((0x34a3 << 2) + 0xffd00000)
#define AUDIN_HDMI_REF_CYCLES_STAT_0 (0x34a4)
#define P_AUDIN_HDMI_REF_CYCLES_STAT_0 (volatile unsigned int *)((0x34a4 << 2) + 0xffd00000)
#define AUDIN_HDMI_REF_CYCLES_STAT_1 (0x34a5)
#define P_AUDIN_HDMI_REF_CYCLES_STAT_1 (volatile unsigned int *)((0x34a5 << 2) + 0xffd00000)
#define AUDIN_HDMIRX_AFIFO_STAT (0x34a6)
#define P_AUDIN_HDMIRX_AFIFO_STAT (volatile unsigned int *)((0x34a6 << 2) + 0xffd00000)
#define AUDIN_MEM_PD (0x34aa)
#define P_AUDIN_MEM_PD (volatile unsigned int *)((0x34aa << 2) + 0xffd00000)
#define AUDIN_FIFO0_PIO_STS (0x34b0)
#define P_AUDIN_FIFO0_PIO_STS (volatile unsigned int *)((0x34b0 << 2) + 0xffd00000)
#define AUDIN_FIFO0_PIO_RDL (0x34b1)
#define P_AUDIN_FIFO0_PIO_RDL (volatile unsigned int *)((0x34b1 << 2) + 0xffd00000)
#define AUDIN_FIFO0_PIO_RDH (0x34b2)
#define P_AUDIN_FIFO0_PIO_RDH (volatile unsigned int *)((0x34b2 << 2) + 0xffd00000)
#define AUDIN_FIFO1_PIO_STS (0x34b3)
#define P_AUDIN_FIFO1_PIO_STS (volatile unsigned int *)((0x34b3 << 2) + 0xffd00000)
#define AUDIN_FIFO1_PIO_RDL (0x34b4)
#define P_AUDIN_FIFO1_PIO_RDL (volatile unsigned int *)((0x34b4 << 2) + 0xffd00000)
#define AUDIN_FIFO1_PIO_RDH (0x34b5)
#define P_AUDIN_FIFO1_PIO_RDH (volatile unsigned int *)((0x34b5 << 2) + 0xffd00000)
#define AUDIN_FIFO2_PIO_STS (0x34b6)
#define P_AUDIN_FIFO2_PIO_STS (volatile unsigned int *)((0x34b6 << 2) + 0xffd00000)
#define AUDIN_FIFO2_PIO_RDL (0x34b7)
#define P_AUDIN_FIFO2_PIO_RDL (volatile unsigned int *)((0x34b7 << 2) + 0xffd00000)
#define AUDIN_FIFO2_PIO_RDH (0x34b8)
#define P_AUDIN_FIFO2_PIO_RDH (volatile unsigned int *)((0x34b8 << 2) + 0xffd00000)
#define AUDOUT_FIFO_PIO_STS (0x34b9)
#define P_AUDOUT_FIFO_PIO_STS (volatile unsigned int *)((0x34b9 << 2) + 0xffd00000)
#define AUDOUT_FIFO_PIO_WRL (0x34ba)
#define P_AUDOUT_FIFO_PIO_WRL (volatile unsigned int *)((0x34ba << 2) + 0xffd00000)
#define AUDOUT_FIFO_PIO_WRH (0x34bb)
#define P_AUDOUT_FIFO_PIO_WRH (volatile unsigned int *)((0x34bb << 2) + 0xffd00000)
//`define AUDOUT1_FIFO_PIO_STS 8'hbc
//`define AUDOUT1_FIFO_PIO_WRL 8'hbd
//`define AUDOUT1_FIFO_PIO_WRH 8'hbe
#define AUD_RESAMPLE_CTRL0 (0x34bf)
#define P_AUD_RESAMPLE_CTRL0 (volatile unsigned int *)((0x34bf << 2) + 0xffd00000)
#define AUD_RESAMPLE_CTRL1 (0x34c0)
#define P_AUD_RESAMPLE_CTRL1 (volatile unsigned int *)((0x34c0 << 2) + 0xffd00000)
#define AUD_RESAMPLE_STATUS (0x34c1)
#define P_AUD_RESAMPLE_STATUS (volatile unsigned int *)((0x34c1 << 2) + 0xffd00000)
#define AUD_RESAMPLE_CTRL2 (0x34c2)
#define P_AUD_RESAMPLE_CTRL2 (volatile unsigned int *)((0x34c2 << 2) + 0xffd00000)
#define AUD_RESAMPLE_COEF0 (0x34c3)
#define P_AUD_RESAMPLE_COEF0 (volatile unsigned int *)((0x34c3 << 2) + 0xffd00000)
#define AUD_RESAMPLE_COEF1 (0x34c4)
#define P_AUD_RESAMPLE_COEF1 (volatile unsigned int *)((0x34c4 << 2) + 0xffd00000)
#define AUD_RESAMPLE_COEF2 (0x34c5)
#define P_AUD_RESAMPLE_COEF2 (volatile unsigned int *)((0x34c5 << 2) + 0xffd00000)
#define AUD_RESAMPLE_COEF3 (0x34c6)
#define P_AUD_RESAMPLE_COEF3 (volatile unsigned int *)((0x34c6 << 2) + 0xffd00000)
#define AUD_RESAMPLE_COEF4 (0x34c7)
#define P_AUD_RESAMPLE_COEF4 (volatile unsigned int *)((0x34c7 << 2) + 0xffd00000)
#define AUDIN_ADDR_END (0x34c8)
#define P_AUDIN_ADDR_END (volatile unsigned int *)((0x34c8 << 2) + 0xffd00000)
#define AUDIN_ATV_DEMOD_CTRL (0x34d0)
#define P_AUDIN_ATV_DEMOD_CTRL (volatile unsigned int *)((0x34d0 << 2) + 0xffd00000)
// synopsys translate_off
// synopsys translate_on
//
// Closing file: ./register_map.h
//
//
// Reading file: ./vcbus_regs.h
//
// synopsys translate_off
// synopsys translate_on
//===========================================================================
//`define RDMA_VCBUS_BASE 8'h11
//===========================================================================
//
// Reading file: rdma_regs.h
//
//===========================================================================
// RDMA registers 0x00 - 0xff
//===========================================================================
// -----------------------------------------------
// CBUS_BASE: RDMA_VCBUS_BASE = 0x11
// -----------------------------------------------
// Bit 31: 0 RW AHB start address for manual start DMA
#define RDMA_AHB_START_ADDR_MAN (0x1100)
#define P_RDMA_AHB_START_ADDR_MAN (volatile unsigned int *)((0x1100 << 2) + 0xff900000)
// Bit 31: 0 RW AHB end address for manual start DMA
#define RDMA_AHB_END_ADDR_MAN (0x1101)
#define P_RDMA_AHB_END_ADDR_MAN (volatile unsigned int *)((0x1101 << 2) + 0xff900000)
// Bit 31: 0 RW AHB start address for auto start source 1
#define RDMA_AHB_START_ADDR_1 (0x1102)
#define P_RDMA_AHB_START_ADDR_1 (volatile unsigned int *)((0x1102 << 2) + 0xff900000)
// Bit 31: 0 RW AHB end address for auto start source 1
#define RDMA_AHB_END_ADDR_1 (0x1103)
#define P_RDMA_AHB_END_ADDR_1 (volatile unsigned int *)((0x1103 << 2) + 0xff900000)
// Bit 31: 0 RW AHB start address for auto start source 2
#define RDMA_AHB_START_ADDR_2 (0x1104)
#define P_RDMA_AHB_START_ADDR_2 (volatile unsigned int *)((0x1104 << 2) + 0xff900000)
// Bit 31: 0 RW AHB end address for auto start source 2
#define RDMA_AHB_END_ADDR_2 (0x1105)
#define P_RDMA_AHB_END_ADDR_2 (volatile unsigned int *)((0x1105 << 2) + 0xff900000)
// Bit 31: 0 RW AHB start address for auto start source 3
#define RDMA_AHB_START_ADDR_3 (0x1106)
#define P_RDMA_AHB_START_ADDR_3 (volatile unsigned int *)((0x1106 << 2) + 0xff900000)
// Bit 31: 0 RW AHB end address for auto start source 3
#define RDMA_AHB_END_ADDR_3 (0x1107)
#define P_RDMA_AHB_END_ADDR_3 (volatile unsigned int *)((0x1107 << 2) + 0xff900000)
// Bit 31: 0 RW AHB start address for auto start source 4
#define RDMA_AHB_START_ADDR_4 (0x1108)
#define P_RDMA_AHB_START_ADDR_4 (volatile unsigned int *)((0x1108 << 2) + 0xff900000)
// Bit 31: 0 RW AHB end address for auto start source 4
#define RDMA_AHB_END_ADDR_4 (0x1109)
#define P_RDMA_AHB_END_ADDR_4 (volatile unsigned int *)((0x1109 << 2) + 0xff900000)
// Bit 31: 0 RW AHB start address for auto start source 5
#define RDMA_AHB_START_ADDR_5 (0x110a)
#define P_RDMA_AHB_START_ADDR_5 (volatile unsigned int *)((0x110a << 2) + 0xff900000)
// Bit 31: 0 RW AHB end address for auto start source 5
#define RDMA_AHB_END_ADDR_5 (0x110b)
#define P_RDMA_AHB_END_ADDR_5 (volatile unsigned int *)((0x110b << 2) + 0xff900000)
// Bit 31: 0 RW AHB start address for auto start source 6
#define RDMA_AHB_START_ADDR_6 (0x110c)
#define P_RDMA_AHB_START_ADDR_6 (volatile unsigned int *)((0x110c << 2) + 0xff900000)
// Bit 31: 0 RW AHB end address for auto start source 6
#define RDMA_AHB_END_ADDR_6 (0x110d)
#define P_RDMA_AHB_END_ADDR_6 (volatile unsigned int *)((0x110d << 2) + 0xff900000)
// Bit 31: 0 RW AHB start address for auto start source 7
#define RDMA_AHB_START_ADDR_7 (0x110e)
#define P_RDMA_AHB_START_ADDR_7 (volatile unsigned int *)((0x110e << 2) + 0xff900000)
// Bit 31: 0 RW AHB end address for auto start source 7
#define RDMA_AHB_END_ADDR_7 (0x110f)
#define P_RDMA_AHB_END_ADDR_7 (volatile unsigned int *)((0x110f << 2) + 0xff900000)
// Auto start DMA control:
// Bit 31:24 RW ctrl_enable_int_3. Interrupt inputs enable mask for source 3.
// Bit 23:16 RW ctrl_enable_int_2. Interrupt inputs enable mask for source 2.
// Bit 15: 8 RW ctrl_enable_int_1. Interrupt inputs enable mask for source 1.
// Bit 7 RW ctrl_cbus_write_3. Register read/write mode for auto-start 3. 1=Register write; 0=Register read.
// Bit 6 RW ctrl_cbus_write_3. Register read/write mode for auto-start 2. 1=Register write; 0=Register read.
// Bit 5 RW ctrl_cbus_write_3. Register read/write mode for auto-start 1. 1=Register write; 0=Register read.
// Bit 4 R Rsrv.
// Bit 3 RW ctrl_cbus_addr_incr_3. 1=Incremental register access for auto-start 3; 0=Non-incremental (individual) register access.
// Bit 2 RW ctrl_cbus_addr_incr_2. 1=Incremental register access for auto-start 2; 0=Non-incremental (individual) register access.
// Bit 1 RW ctrl_cbus_addr_incr_1. 1=Incremental register access for auto-start 1; 0=Non-incremental (individual) register access.
// Bit 0 R Rsrv.
#define RDMA_ACCESS_AUTO (0x1110)
#define P_RDMA_ACCESS_AUTO (volatile unsigned int *)((0x1110 << 2) + 0xff900000)
#define RDMA_ACCESS_AUTO2 (0x1111)
#define P_RDMA_ACCESS_AUTO2 (volatile unsigned int *)((0x1111 << 2) + 0xff900000)
#define RDMA_ACCESS_AUTO3 (0x1112)
#define P_RDMA_ACCESS_AUTO3 (volatile unsigned int *)((0x1112 << 2) + 0xff900000)
// Manual start DMA control:
// Bit 31: 3 R Rsrv.
// Bit 2 RW ctrl_cbus_write_man. Register read/write mode for manual-start. 1=Register write; 0=Register read.
// Bit 1 RW ctrl_cbus_addr_incr_man. 1=Incremental register access for manual-start; 0=Non-incremental (individual) register access.
// Bit 0 W ctrl_start_man. Write 1 to this bit to manual-start DMA. This bit always read back 0.
#define RDMA_ACCESS_MAN (0x1113)
#define P_RDMA_ACCESS_MAN (volatile unsigned int *)((0x1113 << 2) + 0xff900000)
// RDMA general control:
// Bit 31:25 R Rsrv.
// Bit 24 W ctrl_clr_rdma_done_int. Write 1 to reset rdma_int level to 0. No need to clear this bit.
// Bit 23:19 R Rsrv.
// Bit 18:13 R Rsrv.
// Bit 12: 7 R Rsrv.
// Bit 6 RW ctrl_ddr_urgent.
// Bit 5: 4 RW ctrl_ahb_wr_burst_size. 0=ABH write request burst size 16;
// 1=ABH write request burst size 24;
// 2=ABH write request burst size 32;
// 3=ABH write request burst size 48.
// Bit 3: 2 RW ctrl_ahb_rd_burst_size. 0=ABH read request burst size 16;
// 1=ABH read request burst size 24;
// 2=ABH read request burst size 32;
// 3=ABH read request burst size 48.
// Bit 1 RW ctrl_sw_reset. 1=Reset RDMA logics except register.
// Bit 0 RW ctrl_free_clk_enable. 0=Default, Enable clock gating. 1=No clock gating, enable free clock.
#define RDMA_CTRL (0x1114)
#define P_RDMA_CTRL (volatile unsigned int *)((0x1114 << 2) + 0xff900000)
// Read only.
// Bit 31:29 R Rsrv.
// Bit 28 R rdma_done_int.
// Bit 27:25 R Rsrv.
// Bit 24:18 R ahb_wrfifo_cnt. FIFO for buffering CBus read data to be sent to AHB
// Bit 17:11 R ahb_rdfifo_cnt. FIFO for buffering data read from AHB.
// Bit 10: 8 R ddr_req_st. =0 -- Idle; !=0 -- AHB interfacing ongoing.
// Bit 7: 4 R curr_req. Latest requests that is being/been serviced. E.g. 0000=Idle; 0010=Latest serviced request is Req 1.
// Bit 3: 0 R req_latch. Requests that are yet to be serviced. E.g. 0000=No request; 0001=Req 0 waiting; 1100=Req 2 and 3 waiting.
#define RDMA_STATUS (0x1115)
#define P_RDMA_STATUS (volatile unsigned int *)((0x1115 << 2) + 0xff900000)
#define RDMA_STATUS2 (0x1116)
#define P_RDMA_STATUS2 (volatile unsigned int *)((0x1116 << 2) + 0xff900000)
#define RDMA_STATUS3 (0x1117)
#define P_RDMA_STATUS3 (volatile unsigned int *)((0x1117 << 2) + 0xff900000)
#define RDMA_ACCESS_AUTO4 (0x1118)
#define P_RDMA_ACCESS_AUTO4 (volatile unsigned int *)((0x1118 << 2) + 0xff900000)
#define RDMA_SRAM_CNTL (0x1120)
#define P_RDMA_SRAM_CNTL (volatile unsigned int *)((0x1120 << 2) + 0xff900000)
#define RDMA_SRAM_REGADDR (0x1121)
#define P_RDMA_SRAM_REGADDR (volatile unsigned int *)((0x1121 << 2) + 0xff900000)
#define RDMA_SRAM_REGDATA (0x1122)
#define P_RDMA_SRAM_REGDATA (volatile unsigned int *)((0x1122 << 2) + 0xff900000)
//
// Closing file: rdma_regs.h
//
//===========================================================================
// VDIN
//===========================================================================
// -----------------------------------------------
// CBUS_BASE: VDIN_VCBUS_BASE = 0x12
// -----------------------------------------------
//VDIN0 8'h00 - 8'h7f
//VDIN1 8'h80 - 8'hef
#define VDIN0_OFFSET 0x00
#define VDIN1_OFFSET 0x80
#define VDIN_SCALE_COEF_IDX (0x1200)
#define P_VDIN_SCALE_COEF_IDX (volatile unsigned int *)((0x1200 << 2) + 0xff900000)
#define VDIN_SCALE_COEF (0x1201)
#define P_VDIN_SCALE_COEF (volatile unsigned int *)((0x1201 << 2) + 0xff900000)
//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)
#define P_VDIN_COM_CTRL0 (volatile unsigned int *)((0x1202 << 2) + 0xff900000)
//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)
#define P_VDIN_ACTIVE_MAX_PIX_CNT_STATUS (volatile unsigned int *)((0x1203 << 2) + 0xff900000)
//Bit 28:16 go_line_cnt, readonly
//Bit 12:0 active_line_cnt, readonly
#define VDIN_LCNT_STATUS (0x1204)
#define P_VDIN_LCNT_STATUS (volatile unsigned int *)((0x1204 << 2) + 0xff900000)
//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)
#define P_VDIN_COM_STATUS0 (volatile unsigned int *)((0x1205 << 2) + 0xff900000)
//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)
#define P_VDIN_COM_STATUS1 (volatile unsigned int *)((0x1206 << 2) + 0xff900000)
//Bit 28:16 go_line_cnt_shadow, readonly
//Bit 12:0 active_line_cnt_shadow, readonly
#define VDIN_LCNT_SHADOW_STATUS (0x1207)
#define P_VDIN_LCNT_SHADOW_STATUS (volatile unsigned int *)((0x1207 << 2) + 0xff900000)
//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)
#define P_VDIN_ASFIFO_CTRL0 (volatile unsigned int *)((0x1208 << 2) + 0xff900000)
//Bit 7:0 vdi3 asfifo_ctrl
//Bit 23:16 vdi4 asfifo_ctrl
#define VDIN_ASFIFO_CTRL1 (0x1209)
#define P_VDIN_ASFIFO_CTRL1 (volatile unsigned int *)((0x1209 << 2) + 0xff900000)
//Bit 28:16 input width minus 1, after the window function
//Bit 12:0 output width minus 1
#define VDIN_WIDTHM1I_WIDTHM1O (0x120a)
#define P_VDIN_WIDTHM1I_WIDTHM1O (volatile unsigned int *)((0x120a << 2) + 0xff900000)
//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)
#define P_VDIN_SC_MISC_CTRL (volatile unsigned int *)((0x120b << 2) + 0xff900000)
//Bit 28:24, integer portion
//Bit 23:0, fraction portion
#define VDIN_HSC_PHASE_STEP (0x120c)
#define P_VDIN_HSC_PHASE_STEP (volatile unsigned int *)((0x120c << 2) + 0xff900000)
//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)
#define P_VDIN_HSC_INI_CTRL (volatile unsigned int *)((0x120d << 2) + 0xff900000)
//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)
#define P_VDIN_COM_STATUS2 (volatile unsigned int *)((0x120e << 2) + 0xff900000)
//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)
#define P_VDIN_ASFIFO_CTRL2 (volatile unsigned int *)((0x120f << 2) + 0xff900000)
//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)
#define P_VDIN_MATRIX_CTRL (volatile unsigned int *)((0x1210 << 2) + 0xff900000)
//Bit 28:16 coef00
//Bit 12:0 coef01
#define VDIN_MATRIX_COEF00_01 (0x1211)
#define P_VDIN_MATRIX_COEF00_01 (volatile unsigned int *)((0x1211 << 2) + 0xff900000)
//Bit 28:16 coef02
//Bit 12:0 coef10
#define VDIN_MATRIX_COEF02_10 (0x1212)
#define P_VDIN_MATRIX_COEF02_10 (volatile unsigned int *)((0x1212 << 2) + 0xff900000)
//Bit 28:16 coef11
//Bit 12:0 coef12
#define VDIN_MATRIX_COEF11_12 (0x1213)
#define P_VDIN_MATRIX_COEF11_12 (volatile unsigned int *)((0x1213 << 2) + 0xff900000)
//Bit 28:16 coef20
//Bit 12:0 coef21
#define VDIN_MATRIX_COEF20_21 (0x1214)
#define P_VDIN_MATRIX_COEF20_21 (volatile unsigned int *)((0x1214 << 2) + 0xff900000)
//BIt 18:16 conv_rs
//Bit 12:0 coef22
#define VDIN_MATRIX_COEF22 (0x1215)
#define P_VDIN_MATRIX_COEF22 (volatile unsigned int *)((0x1215 << 2) + 0xff900000)
//Bit 26:16 offset0
//Bit 10:0 offset1
#define VDIN_MATRIX_OFFSET0_1 (0x1216)
#define P_VDIN_MATRIX_OFFSET0_1 (volatile unsigned int *)((0x1216 << 2) + 0xff900000)
//Bit 10:0 offset2
#define VDIN_MATRIX_OFFSET2 (0x1217)
#define P_VDIN_MATRIX_OFFSET2 (volatile unsigned int *)((0x1217 << 2) + 0xff900000)
//Bit 26:16 pre_offset0
//Bit 10:0 pre_offset1
#define VDIN_MATRIX_PRE_OFFSET0_1 (0x1218)
#define P_VDIN_MATRIX_PRE_OFFSET0_1 (volatile unsigned int *)((0x1218 << 2) + 0xff900000)
//Bit 10:0 pre_offset2
#define VDIN_MATRIX_PRE_OFFSET2 (0x1219)
#define P_VDIN_MATRIX_PRE_OFFSET2 (volatile unsigned int *)((0x1219 << 2) + 0xff900000)
//12:0 lfifo_buf_size
#define VDIN_LFIFO_CTRL (0x121a)
#define P_VDIN_LFIFO_CTRL (volatile unsigned int *)((0x121a << 2) + 0xff900000)
#define VDIN_COM_GCLK_CTRL (0x121b)
#define P_VDIN_COM_GCLK_CTRL (volatile unsigned int *)((0x121b << 2) + 0xff900000)
//12:0 VDIN input interface width minus 1, before the window function, after the de decimation
#define VDIN_INTF_WIDTHM1 (0x121c)
#define P_VDIN_INTF_WIDTHM1 (volatile unsigned int *)((0x121c << 2) + 0xff900000)
//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)
#define P_VDIN_LFIFO_URG_CTRL (volatile unsigned int *)((0x121e << 2) + 0xff900000)
//Bit 8, 1: discard data before line fifo, 0: normal mode
//Bit 7:0 Write chroma canvas address
#define VDIN_WR_CTRL2 (0x121f)
#define P_VDIN_WR_CTRL2 (volatile unsigned int *)((0x121f << 2) + 0xff900000)
//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)
#define P_VDIN_WR_CTRL (volatile unsigned int *)((0x1220 << 2) + 0xff900000)
//Bit 29, if true, horizontal reverse
//Bit 28:16 start
//Bit 12:0 end
#define VDIN_WR_H_START_END (0x1221)
#define P_VDIN_WR_H_START_END (volatile unsigned int *)((0x1221 << 2) + 0xff900000)
//Bit 29, if true, vertical reverse
//Bit 28:16 start
//Bit 12:0 end
#define VDIN_WR_V_START_END (0x1222)
#define P_VDIN_WR_V_START_END (volatile unsigned int *)((0x1222 << 2) + 0xff900000)
//Bit 24:20, integer portion
//Bit 19:0, fraction portion
#define VDIN_VSC_PHASE_STEP (0x1223)
#define P_VDIN_VSC_PHASE_STEP (volatile unsigned int *)((0x1223 << 2) + 0xff900000)
//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)
#define P_VDIN_VSC_INI_CTRL (volatile unsigned int *)((0x1224 << 2) + 0xff900000)
//Bit 28:16, vshrink input height minus 1
//Bit 12:0, scaler input height minus 1
#define VDIN_SCIN_HEIGHTM1 (0x1225)
#define P_VDIN_SCIN_HEIGHTM1 (volatile unsigned int *)((0x1225 << 2) + 0xff900000)
//Bit 23:16, dummy component 0
//Bit 15:8, dummy component 1
//Bit 7:0, dummy component 2
#define VDIN_DUMMY_DATA (0x1226)
#define P_VDIN_DUMMY_DATA (volatile unsigned int *)((0x1226 << 2) + 0xff900000)
//Read only
//Bit 29:20 component 0
//Bit 19:10 component 1
//Bit 9:0 component 2
#define VDIN_MATRIX_PROBE_COLOR (0x1228)
#define P_VDIN_MATRIX_PROBE_COLOR (volatile unsigned int *)((0x1228 << 2) + 0xff900000)
//Bit 23:16 component 0
//Bit 15:8 component 1
//Bit 7:0 component 2
#define VDIN_MATRIX_HL_COLOR (0x1229)
#define P_VDIN_MATRIX_HL_COLOR (volatile unsigned int *)((0x1229 << 2) + 0xff900000)
//28:16 probe x, postion
//12:0 probe y, position
#define VDIN_MATRIX_PROBE_POS (0x122a)
#define P_VDIN_MATRIX_PROBE_POS (volatile unsigned int *)((0x122a << 2) + 0xff900000)
#define VDIN_CHROMA_ADDR_PORT (0x122b)
#define P_VDIN_CHROMA_ADDR_PORT (volatile unsigned int *)((0x122b << 2) + 0xff900000)
#define VDIN_CHROMA_DATA_PORT (0x122c)
#define P_VDIN_CHROMA_DATA_PORT (volatile unsigned int *)((0x122c << 2) + 0xff900000)
//
#define VDIN_CM_BRI_CON_CTRL (0x122d)
#define P_VDIN_CM_BRI_CON_CTRL (volatile unsigned int *)((0x122d << 2) + 0xff900000)
//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)
#define P_VDIN_GO_LINE_CTRL (volatile unsigned int *)((0x122f << 2) + 0xff900000)
//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)
#define P_VDIN_HIST_CTRL (volatile unsigned int *)((0x1230 << 2) + 0xff900000)
//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)
#define P_VDIN_HIST_H_START_END (volatile unsigned int *)((0x1231 << 2) + 0xff900000)
//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)
#define P_VDIN_HIST_V_START_END (volatile unsigned int *)((0x1232 << 2) + 0xff900000)
//Bit 15:8 hist_max maximum value
//Bit 7:0 hist_min minimum value
//read only
#define VDIN_HIST_MAX_MIN (0x1233)
#define P_VDIN_HIST_MAX_MIN (volatile unsigned int *)((0x1233 << 2) + 0xff900000)
//Bit 31:0 hist_spl_rd
//counts for the total luma value
//read only
#define VDIN_HIST_SPL_VAL (0x1234)
#define P_VDIN_HIST_SPL_VAL (volatile unsigned int *)((0x1234 << 2) + 0xff900000)
//Bit 21:0 hist_spl_pixel_count
//counts for the total calculated pixels
//read only
#define VDIN_HIST_SPL_PIX_CNT (0x1235)
#define P_VDIN_HIST_SPL_PIX_CNT (volatile unsigned int *)((0x1235 << 2) + 0xff900000)
//Bit 31:0 hist_chroma_sum
//counts for the total chroma value
//read only
#define VDIN_HIST_CHROMA_SUM (0x1236)
#define P_VDIN_HIST_CHROMA_SUM (volatile unsigned int *)((0x1236 << 2) + 0xff900000)
//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)
#define P_VDIN_DNLP_HIST00 (volatile unsigned int *)((0x1237 << 2) + 0xff900000)
#define VDIN_DNLP_HIST01 (0x1238)
#define P_VDIN_DNLP_HIST01 (volatile unsigned int *)((0x1238 << 2) + 0xff900000)
#define VDIN_DNLP_HIST02 (0x1239)
#define P_VDIN_DNLP_HIST02 (volatile unsigned int *)((0x1239 << 2) + 0xff900000)
#define VDIN_DNLP_HIST03 (0x123a)
#define P_VDIN_DNLP_HIST03 (volatile unsigned int *)((0x123a << 2) + 0xff900000)
#define VDIN_DNLP_HIST04 (0x123b)
#define P_VDIN_DNLP_HIST04 (volatile unsigned int *)((0x123b << 2) + 0xff900000)
#define VDIN_DNLP_HIST05 (0x123c)
#define P_VDIN_DNLP_HIST05 (volatile unsigned int *)((0x123c << 2) + 0xff900000)
#define VDIN_DNLP_HIST06 (0x123d)
#define P_VDIN_DNLP_HIST06 (volatile unsigned int *)((0x123d << 2) + 0xff900000)
#define VDIN_DNLP_HIST07 (0x123e)
#define P_VDIN_DNLP_HIST07 (volatile unsigned int *)((0x123e << 2) + 0xff900000)
#define VDIN_DNLP_HIST08 (0x123f)
#define P_VDIN_DNLP_HIST08 (volatile unsigned int *)((0x123f << 2) + 0xff900000)
#define VDIN_DNLP_HIST09 (0x1240)
#define P_VDIN_DNLP_HIST09 (volatile unsigned int *)((0x1240 << 2) + 0xff900000)
#define VDIN_DNLP_HIST10 (0x1241)
#define P_VDIN_DNLP_HIST10 (volatile unsigned int *)((0x1241 << 2) + 0xff900000)
#define VDIN_DNLP_HIST11 (0x1242)
#define P_VDIN_DNLP_HIST11 (volatile unsigned int *)((0x1242 << 2) + 0xff900000)
#define VDIN_DNLP_HIST12 (0x1243)
#define P_VDIN_DNLP_HIST12 (volatile unsigned int *)((0x1243 << 2) + 0xff900000)
#define VDIN_DNLP_HIST13 (0x1244)
#define P_VDIN_DNLP_HIST13 (volatile unsigned int *)((0x1244 << 2) + 0xff900000)
#define VDIN_DNLP_HIST14 (0x1245)
#define P_VDIN_DNLP_HIST14 (volatile unsigned int *)((0x1245 << 2) + 0xff900000)
#define VDIN_DNLP_HIST15 (0x1246)
#define P_VDIN_DNLP_HIST15 (volatile unsigned int *)((0x1246 << 2) + 0xff900000)
#define VDIN_DNLP_HIST16 (0x1247)
#define P_VDIN_DNLP_HIST16 (volatile unsigned int *)((0x1247 << 2) + 0xff900000)
#define VDIN_DNLP_HIST17 (0x1248)
#define P_VDIN_DNLP_HIST17 (volatile unsigned int *)((0x1248 << 2) + 0xff900000)
#define VDIN_DNLP_HIST18 (0x1249)
#define P_VDIN_DNLP_HIST18 (volatile unsigned int *)((0x1249 << 2) + 0xff900000)
#define VDIN_DNLP_HIST19 (0x124a)
#define P_VDIN_DNLP_HIST19 (volatile unsigned int *)((0x124a << 2) + 0xff900000)
#define VDIN_DNLP_HIST20 (0x124b)
#define P_VDIN_DNLP_HIST20 (volatile unsigned int *)((0x124b << 2) + 0xff900000)
#define VDIN_DNLP_HIST21 (0x124c)
#define P_VDIN_DNLP_HIST21 (volatile unsigned int *)((0x124c << 2) + 0xff900000)
#define VDIN_DNLP_HIST22 (0x124d)
#define P_VDIN_DNLP_HIST22 (volatile unsigned int *)((0x124d << 2) + 0xff900000)
#define VDIN_DNLP_HIST23 (0x124e)
#define P_VDIN_DNLP_HIST23 (volatile unsigned int *)((0x124e << 2) + 0xff900000)
#define VDIN_DNLP_HIST24 (0x124f)
#define P_VDIN_DNLP_HIST24 (volatile unsigned int *)((0x124f << 2) + 0xff900000)
#define VDIN_DNLP_HIST25 (0x1250)
#define P_VDIN_DNLP_HIST25 (volatile unsigned int *)((0x1250 << 2) + 0xff900000)
#define VDIN_DNLP_HIST26 (0x1251)
#define P_VDIN_DNLP_HIST26 (volatile unsigned int *)((0x1251 << 2) + 0xff900000)
#define VDIN_DNLP_HIST27 (0x1252)
#define P_VDIN_DNLP_HIST27 (volatile unsigned int *)((0x1252 << 2) + 0xff900000)
#define VDIN_DNLP_HIST28 (0x1253)
#define P_VDIN_DNLP_HIST28 (volatile unsigned int *)((0x1253 << 2) + 0xff900000)
#define VDIN_DNLP_HIST29 (0x1254)
#define P_VDIN_DNLP_HIST29 (volatile unsigned int *)((0x1254 << 2) + 0xff900000)
#define VDIN_DNLP_HIST30 (0x1255)
#define P_VDIN_DNLP_HIST30 (volatile unsigned int *)((0x1255 << 2) + 0xff900000)
#define VDIN_DNLP_HIST31 (0x1256)
#define P_VDIN_DNLP_HIST31 (volatile unsigned int *)((0x1256 << 2) + 0xff900000)
//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)
#define P_VDIN_LDIM_STTS_HIST_REGION_IDX (volatile unsigned int *)((0x1257 << 2) + 0xff900000)
//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)
#define P_VDIN_LDIM_STTS_HIST_SET_REGION (volatile unsigned int *)((0x1258 << 2) + 0xff900000)
//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)
#define P_VDIN_LDIM_STTS_HIST_READ_REGION (volatile unsigned int *)((0x1259 << 2) + 0xff900000)
//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)
#define P_VDIN_MEAS_CTRL0 (volatile unsigned int *)((0x125a << 2) + 0xff900000)
//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)
#define P_VDIN_MEAS_VS_COUNT_HI (volatile unsigned int *)((0x125b << 2) + 0xff900000)
//Read only
//31:0, low bit portion of vsync total counter
#define VDIN_MEAS_VS_COUNT_LO (0x125c)
#define P_VDIN_MEAS_VS_COUNT_LO (volatile unsigned int *)((0x125c << 2) + 0xff900000)
//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)
#define P_VDIN_MEAS_HS_RANGE (volatile unsigned int *)((0x125d << 2) + 0xff900000)
//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 coutner
//meas_hs_index == 2, third range hs coutner
//meas_hs_index == 3, fourth range hs coutner
//23:0
#define VDIN_MEAS_HS_COUNT (0x125e)
#define P_VDIN_MEAS_HS_COUNT (volatile unsigned int *)((0x125e << 2) + 0xff900000)
//Bit 8 white_enable
//Bit 7:0 blkbar_white_level
#define VDIN_BLKBAR_CTRL1 (0x125f)
#define P_VDIN_BLKBAR_CTRL1 (volatile unsigned int *)((0x125f << 2) + 0xff900000)
// 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)
#define P_VDIN_BLKBAR_CTRL0 (volatile unsigned int *)((0x1260 << 2) + 0xff900000)
// 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)
#define P_VDIN_BLKBAR_H_START_END (volatile unsigned int *)((0x1261 << 2) + 0xff900000)
// 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)
#define P_VDIN_BLKBAR_V_START_END (volatile unsigned int *)((0x1262 << 2) + 0xff900000)
// 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)
#define P_VDIN_BLKBAR_CNT_THRESHOLD (volatile unsigned int *)((0x1263 << 2) + 0xff900000)
// 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)
#define P_VDIN_BLKBAR_ROW_TH1_TH2 (volatile unsigned int *)((0x1264 << 2) + 0xff900000)
//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)
#define P_VDIN_BLKBAR_IND_LEFT_START_END (volatile unsigned int *)((0x1265 << 2) + 0xff900000)
//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)
#define P_VDIN_BLKBAR_IND_RIGHT_START_END (volatile unsigned int *)((0x1266 << 2) + 0xff900000)
//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)
#define P_VDIN_BLKBAR_IND_LEFT1_CNT (volatile unsigned int *)((0x1267 << 2) + 0xff900000)
//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)
#define P_VDIN_BLKBAR_IND_LEFT2_CNT (volatile unsigned int *)((0x1268 << 2) + 0xff900000)
//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)
#define P_VDIN_BLKBAR_IND_RIGHT1_CNT (volatile unsigned int *)((0x1269 << 2) + 0xff900000)
//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)
#define P_VDIN_BLKBAR_IND_RIGHT2_CNT (volatile unsigned int *)((0x126a << 2) + 0xff900000)
//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)
#define P_VDIN_BLKBAR_STATUS0 (volatile unsigned int *)((0x126b << 2) + 0xff900000)
//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)
#define P_VDIN_BLKBAR_STATUS1 (volatile unsigned int *)((0x126c << 2) + 0xff900000)
//Bit 28:16 input window H start
//Bit 12:0 input window H end
#define VDIN_WIN_H_START_END (0x126d)
#define P_VDIN_WIN_H_START_END (volatile unsigned int *)((0x126d << 2) + 0xff900000)
//Bit 28:16 input window H start
//Bit 12:0 input window V start
#define VDIN_WIN_V_START_END (0x126e)
#define P_VDIN_WIN_V_START_END (volatile unsigned int *)((0x126e << 2) + 0xff900000)
//Bit 23:16 vdi8 asfifo_ctrl
//Bit 15:8 vdi7 asfifo_ctrl
//Bit 7:0 vdi6 asfifo_ctrl
#define VDIN_ASFIFO_CTRL3 (0x126f)
#define P_VDIN_ASFIFO_CTRL3 (volatile unsigned int *)((0x126f << 2) + 0xff900000)
//Bit 3:2 vshrk_clk2_ctrl
//Bit 1:0 vshrk_clk1_ctrl
#define VDIN_COM_GCLK_CTRL2 (0x1270)
#define P_VDIN_COM_GCLK_CTRL2 (volatile unsigned int *)((0x1270 << 2) + 0xff900000)
//Bit 27 vshrk_en
//Bit 26:25 vshrk_mode
//Bit 24 vshrk_lpf_mode
//Bit 23:0 vshrk_dummy
#define VDIN_VSHRK_CTRL (0x1271)
#define P_VDIN_VSHRK_CTRL (volatile unsigned int *)((0x1271 << 2) + 0xff900000)
#define VDIN_DNLP_HIST32 (0x1272)
#define P_VDIN_DNLP_HIST32 (volatile unsigned int *)((0x1272 << 2) + 0xff900000)
//Read only
//Bit 7, vdi9 fifo overflow
//Bit 5:0, vdi9_asfifo_cnt
#define VDIN_COM_STATUS3 (0x1273)
#define P_VDIN_COM_STATUS3 (volatile unsigned int *)((0x1273 << 2) + 0xff900000)
#define VDIN_SYNC_MASK (0x1274)
#define P_VDIN_SYNC_MASK (volatile unsigned int *)((0x1274 << 2) + 0xff900000)
//Bit 7:0, hsync_mask_num
//Bit 15:8, vsync_mask_num
//Bit 16, hsync_mask_enable
//Bit 17, vsync_mask_num
//dolby vdin
#define VDIN_DOLBY_DSC_CTRL0 (0x1275)
#define P_VDIN_DOLBY_DSC_CTRL0 (volatile unsigned int *)((0x1275 << 2) + 0xff900000)
#define VDIN_DOLBY_DSC_CTRL1 (0x1276)
#define P_VDIN_DOLBY_DSC_CTRL1 (volatile unsigned int *)((0x1276 << 2) + 0xff900000)
#define VDIN_DOLBY_DSC_CTRL2 (0x1277)
#define P_VDIN_DOLBY_DSC_CTRL2 (volatile unsigned int *)((0x1277 << 2) + 0xff900000)
#define VDIN_DOLBY_DSC_CTRL3 (0x1278)
#define P_VDIN_DOLBY_DSC_CTRL3 (volatile unsigned int *)((0x1278 << 2) + 0xff900000)
#define VDIN_DOLBY_AXI_CTRL0 (0x1279)
#define P_VDIN_DOLBY_AXI_CTRL0 (volatile unsigned int *)((0x1279 << 2) + 0xff900000)
#define VDIN_DOLBY_AXI_CTRL1 (0x127a)
#define P_VDIN_DOLBY_AXI_CTRL1 (volatile unsigned int *)((0x127a << 2) + 0xff900000)
#define VDIN_DOLBY_AXI_CTRL2 (0x127b)
#define P_VDIN_DOLBY_AXI_CTRL2 (volatile unsigned int *)((0x127b << 2) + 0xff900000)
#define VDIN_DOLBY_AXI_CTRL3 (0x127c)
#define P_VDIN_DOLBY_AXI_CTRL3 (volatile unsigned int *)((0x127c << 2) + 0xff900000)
#define VDIN_DOLBY_DSC_STATUS0 (0x127d)
#define P_VDIN_DOLBY_DSC_STATUS0 (volatile unsigned int *)((0x127d << 2) + 0xff900000)
#define VDIN_DOLBY_DSC_STATUS1 (0x127e)
#define P_VDIN_DOLBY_DSC_STATUS1 (volatile unsigned int *)((0x127e << 2) + 0xff900000)
#define VDIN_DOLBY_DSC_STATUS2 (0x127f)
#define P_VDIN_DOLBY_DSC_STATUS2 (volatile unsigned int *)((0x127f << 2) + 0xff900000)
#define VDIN_DOLBY_DSC_STATUS3 (0x121d)
#define P_VDIN_DOLBY_DSC_STATUS3 (volatile unsigned int *)((0x121d << 2) + 0xff900000)
//8'h72 occupied by histogram 32
//VDIN0 8'h00 - 8'h7f
#define VDIN0_SCALE_COEF_IDX ((VDIN0_OFFSET << 2) + VDIN_SCALE_COEF_IDX )
#define VDIN0_SCALE_COEF ((VDIN0_OFFSET << 2) + VDIN_SCALE_COEF )
#define VDIN0_COM_CTRL0 ((VDIN0_OFFSET << 2) + VDIN_COM_CTRL0 )
#define VDIN0_ACTIVE_MAX_PIX_CNT_STATUS ((VDIN0_OFFSET << 2) + VDIN_ACTIVE_MAX_PIX_CNT_STATUS )
#define VDIN0_LCNT_STATUS ((VDIN0_OFFSET << 2) + VDIN_LCNT_STATUS )
#define VDIN0_COM_STATUS0 ((VDIN0_OFFSET << 2) + VDIN_COM_STATUS0 )
#define VDIN0_COM_STATUS1 ((VDIN0_OFFSET << 2) + VDIN_COM_STATUS1 )
#define VDIN0_LCNT_SHADOW_STATUS ((VDIN0_OFFSET << 2) + VDIN_LCNT_SHADOW_STATUS )
#define VDIN0_ASFIFO_CTRL0 ((VDIN0_OFFSET << 2) + VDIN_ASFIFO_CTRL0 )
#define VDIN0_ASFIFO_CTRL1 ((VDIN0_OFFSET << 2) + VDIN_ASFIFO_CTRL1 )
#define VDIN0_WIDTHM1I_WIDTHM1O ((VDIN0_OFFSET << 2) + VDIN_WIDTHM1I_WIDTHM1O )
#define VDIN0_SC_MISC_CTRL ((VDIN0_OFFSET << 2) + VDIN_SC_MISC_CTRL )
#define VDIN0_HSC_PHASE_STEP ((VDIN0_OFFSET << 2) + VDIN_HSC_PHASE_STEP )
#define VDIN0_HSC_INI_CTRL ((VDIN0_OFFSET << 2) + VDIN_HSC_INI_CTRL )
#define VDIN0_COM_STATUS2 ((VDIN0_OFFSET << 2) + VDIN_COM_STATUS2 )
#define VDIN0_COM_STATUS3 ((VDIN0_OFFSET << 2) + VDIN_COM_STATUS3 )
#define VDIN0_ASFIFO_CTRL2 ((VDIN0_OFFSET << 2) + VDIN_ASFIFO_CTRL2 )
#define VDIN0_MATRIX_CTRL ((VDIN0_OFFSET << 2) + VDIN_MATRIX_CTRL )
#define VDIN0_MATRIX_COEF00_01 ((VDIN0_OFFSET << 2) + VDIN_MATRIX_COEF00_01 )
#define VDIN0_MATRIX_COEF02_10 ((VDIN0_OFFSET << 2) + VDIN_MATRIX_COEF02_10 )
#define VDIN0_MATRIX_COEF11_12 ((VDIN0_OFFSET << 2) + VDIN_MATRIX_COEF11_12 )
#define VDIN0_MATRIX_COEF20_21 ((VDIN0_OFFSET << 2) + VDIN_MATRIX_COEF20_21 )
#define VDIN0_MATRIX_COEF22 ((VDIN0_OFFSET << 2) + VDIN_MATRIX_COEF22 )
#define VDIN0_MATRIX_OFFSET0_1 ((VDIN0_OFFSET << 2) + VDIN_MATRIX_OFFSET0_1 )
#define VDIN0_MATRIX_OFFSET2 ((VDIN0_OFFSET << 2) + VDIN_MATRIX_OFFSET2 )
#define VDIN0_MATRIX_PRE_OFFSET0_1 ((VDIN0_OFFSET << 2) + VDIN_MATRIX_PRE_OFFSET0_1 )
#define VDIN0_MATRIX_PRE_OFFSET2 ((VDIN0_OFFSET << 2) + VDIN_MATRIX_PRE_OFFSET2 )
#define VDIN0_LFIFO_CTRL ((VDIN0_OFFSET << 2) + VDIN_LFIFO_CTRL )
#define VDIN0_COM_GCLK_CTRL ((VDIN0_OFFSET << 2) + VDIN_COM_GCLK_CTRL )
#define VDIN0_INTF_WIDTHM1 ((VDIN0_OFFSET << 2) + VDIN_INTF_WIDTHM1 )
#define VDIN0_WR_CTRL2 ((VDIN0_OFFSET << 2) + VDIN_WR_CTRL2 )
#define VDIN0_WR_CTRL ((VDIN0_OFFSET << 2) + VDIN_WR_CTRL )
#define VDIN0_WR_H_START_END ((VDIN0_OFFSET << 2) + VDIN_WR_H_START_END )
#define VDIN0_WR_V_START_END ((VDIN0_OFFSET << 2) + VDIN_WR_V_START_END )
#define VDIN0_VSC_PHASE_STEP ((VDIN0_OFFSET << 2) + VDIN_VSC_PHASE_STEP )
#define VDIN0_VSC_INI_CTRL ((VDIN0_OFFSET << 2) + VDIN_VSC_INI_CTRL )
#define VDIN0_SCIN_HEIGHTM1 ((VDIN0_OFFSET << 2) + VDIN_SCIN_HEIGHTM1 )
#define VDIN0_DUMMY_DATA ((VDIN0_OFFSET << 2) + VDIN_DUMMY_DATA )
#define VDIN0_MATRIX_PROBE_COLOR ((VDIN0_OFFSET << 2) + VDIN_MATRIX_PROBE_COLOR )
#define VDIN0_MATRIX_HL_COLOR ((VDIN0_OFFSET << 2) + VDIN_MATRIX_HL_COLOR )
#define VDIN0_MATRIX_PROBE_POS ((VDIN0_OFFSET << 2) + VDIN_MATRIX_PROBE_POS )
#define VDIN0_CHROMA_ADDR_PORT ((VDIN0_OFFSET << 2) + VDIN_CHROMA_ADDR_PORT )
#define VDIN0_CHROMA_DATA_PORT ((VDIN0_OFFSET << 2) + VDIN_CHROMA_DATA_PORT )
#define VDIN0_CM_BRI_CON_CTRL ((VDIN0_OFFSET << 2) + VDIN_CM_BRI_CON_CTRL )
#define VDIN0_HIST_CTRL ((VDIN0_OFFSET << 2) + VDIN_HIST_CTRL )
#define VDIN0_HIST_H_START_END ((VDIN0_OFFSET << 2) + VDIN_HIST_H_START_END )
#define VDIN0_HIST_V_START_END ((VDIN0_OFFSET << 2) + VDIN_HIST_V_START_END )
#define VDIN0_HIST_MAX_MIN ((VDIN0_OFFSET << 2) + VDIN_HIST_MAX_MIN )
#define VDIN0_HIST_SPL_VAL ((VDIN0_OFFSET << 2) + VDIN_HIST_SPL_VAL )
#define VDIN0_HIST_SPL_PIX_CNT ((VDIN0_OFFSET << 2) + VDIN_HIST_SPL_PIX_CNT )
#define VDIN0_HIST_CHROMA_SUM ((VDIN0_OFFSET << 2) + VDIN_HIST_CHROMA_SUM )
#define VDIN0_DNLP_HIST00 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST00 )
#define VDIN0_DNLP_HIST01 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST01 )
#define VDIN0_DNLP_HIST02 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST02 )
#define VDIN0_DNLP_HIST03 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST03 )
#define VDIN0_DNLP_HIST04 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST04 )
#define VDIN0_DNLP_HIST05 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST05 )
#define VDIN0_DNLP_HIST06 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST06 )
#define VDIN0_DNLP_HIST07 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST07 )
#define VDIN0_DNLP_HIST08 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST08 )
#define VDIN0_DNLP_HIST09 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST09 )
#define VDIN0_DNLP_HIST10 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST10 )
#define VDIN0_DNLP_HIST11 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST11 )
#define VDIN0_DNLP_HIST12 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST12 )
#define VDIN0_DNLP_HIST13 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST13 )
#define VDIN0_DNLP_HIST14 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST14 )
#define VDIN0_DNLP_HIST15 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST15 )
#define VDIN0_DNLP_HIST16 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST16 )
#define VDIN0_DNLP_HIST17 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST17 )
#define VDIN0_DNLP_HIST18 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST18 )
#define VDIN0_DNLP_HIST19 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST19 )
#define VDIN0_DNLP_HIST20 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST20 )
#define VDIN0_DNLP_HIST21 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST21 )
#define VDIN0_DNLP_HIST22 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST22 )
#define VDIN0_DNLP_HIST23 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST23 )
#define VDIN0_DNLP_HIST24 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST24 )
#define VDIN0_DNLP_HIST25 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST25 )
#define VDIN0_DNLP_HIST26 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST26 )
#define VDIN0_DNLP_HIST27 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST27 )
#define VDIN0_DNLP_HIST28 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST28 )
#define VDIN0_DNLP_HIST29 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST29 )
#define VDIN0_DNLP_HIST30 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST30 )
#define VDIN0_DNLP_HIST31 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST31 )
#define VDIN0_DNLP_HIST32 ((VDIN0_OFFSET << 2) + VDIN_DNLP_HIST32 )
#define VDIN0_LDIM_STTS_HIST_REGION_IDX ((VDIN0_OFFSET << 2) + VDIN_LDIM_STTS_HIST_REGION_IDX )
#define VDIN0_LDIM_STTS_HIST_SET_REGION ((VDIN0_OFFSET << 2) + VDIN_LDIM_STTS_HIST_SET_REGION )
#define VDIN0_LDIM_STTS_HIST_READ_REGION ((VDIN0_OFFSET << 2) + VDIN_LDIM_STTS_HIST_READ_REGION )
#define VDIN0_MEAS_CTRL0 ((VDIN0_OFFSET << 2) + VDIN_MEAS_CTRL0 )
#define VDIN0_MEAS_VS_COUNT_HI ((VDIN0_OFFSET << 2) + VDIN_MEAS_VS_COUNT_HI )
#define VDIN0_MEAS_VS_COUNT_LO ((VDIN0_OFFSET << 2) + VDIN_MEAS_VS_COUNT_LO )
#define VDIN0_MEAS_HS_RANGE ((VDIN0_OFFSET << 2) + VDIN_MEAS_HS_RANGE )
#define VDIN0_MEAS_HS_COUNT ((VDIN0_OFFSET << 2) + VDIN_MEAS_HS_COUNT )
#define VDIN0_BLKBAR_CTRL1 ((VDIN0_OFFSET << 2) + VDIN_BLKBAR_CTRL1 )
#define VDIN0_BLKBAR_CTRL0 ((VDIN0_OFFSET << 2) + VDIN_BLKBAR_CTRL0 )
#define VDIN0_BLKBAR_H_START_END ((VDIN0_OFFSET << 2) + VDIN_BLKBAR_H_START_END )
#define VDIN0_BLKBAR_V_START_END ((VDIN0_OFFSET << 2) + VDIN_BLKBAR_V_START_END )
#define VDIN0_BLKBAR_CNT_THRESHOLD ((VDIN0_OFFSET << 2) + VDIN_BLKBAR_CNT_THRESHOLD )
#define VDIN0_BLKBAR_ROW_TH1_TH2 ((VDIN0_OFFSET << 2) + VDIN_BLKBAR_ROW_TH1_TH2 )
#define VDIN0_BLKBAR_IND_LEFT_START_END ((VDIN0_OFFSET << 2) + VDIN_BLKBAR_IND_LEFT_START_END )
#define VDIN0_BLKBAR_IND_RIGHT_START_END ((VDIN0_OFFSET << 2) + VDIN_BLKBAR_IND_RIGHT_START_END )
#define VDIN0_BLKBAR_IND_LEFT1_CNT ((VDIN0_OFFSET << 2) + VDIN_BLKBAR_IND_LEFT1_CNT )
#define VDIN0_BLKBAR_IND_LEFT2_CNT ((VDIN0_OFFSET << 2) + VDIN_BLKBAR_IND_LEFT2_CNT )
#define VDIN0_BLKBAR_IND_RIGHT1_CNT ((VDIN0_OFFSET << 2) + VDIN_BLKBAR_IND_RIGHT1_CNT )
#define VDIN0_BLKBAR_IND_RIGHT2_CNT ((VDIN0_OFFSET << 2) + VDIN_BLKBAR_IND_RIGHT2_CNT )
#define VDIN0_BLKBAR_STATUS0 ((VDIN0_OFFSET << 2) + VDIN_BLKBAR_STATUS0 )
#define VDIN0_BLKBAR_STATUS1 ((VDIN0_OFFSET << 2) + VDIN_BLKBAR_STATUS1 )
#define VDIN0_WIN_H_START_END ((VDIN0_OFFSET << 2) + VDIN_WIN_H_START_END )
#define VDIN0_WIN_V_START_END ((VDIN0_OFFSET << 2) + VDIN_WIN_V_START_END )
#define VDIN0_ASFIFO_CTRL3 ((VDIN0_OFFSET << 2) + VDIN_ASFIFO_CTRL3 )
#define VDIN0_COM_GCLK_CTRL2 ((VDIN0_OFFSET << 2) + VDIN_COM_GCLK_CTRL2 )
#define VDIN0_VSHRK_CTRL ((VDIN0_OFFSET << 2) + VDIN_VSHRK_CTRL )
#define VDIN0_SYNC_MASK ((VDIN0_OFFSET << 2) + VDIN_SYNC_MASK )
#define VDIN0_DOLBY_DSC_CTRL0 ((VDIN0_OFFSET << 2) + VDIN_DOLBY_DSC_CTRL0 )
#define VDIN0_DOLBY_DSC_CTRL1 ((VDIN0_OFFSET << 2) + VDIN_DOLBY_DSC_CTRL1 )
#define VDIN0_DOLBY_DSC_CTRL2 ((VDIN0_OFFSET << 2) + VDIN_DOLBY_DSC_CTRL2 )
#define VDIN0_DOLBY_DSC_CTRL3 ((VDIN0_OFFSET << 2) + VDIN_DOLBY_DSC_CTRL3 )
#define VDIN0_DOLBY_AXI_CTRL0 ((VDIN0_OFFSET << 2) + VDIN_DOLBY_AXI_CTRL0 )
#define VDIN0_DOLBY_AXI_CTRL1 ((VDIN0_OFFSET << 2) + VDIN_DOLBY_AXI_CTRL1 )
#define VDIN0_DOLBY_AXI_CTRL2 ((VDIN0_OFFSET << 2) + VDIN_DOLBY_AXI_CTRL2 )
#define VDIN0_DOLBY_AXI_CTRL3 ((VDIN0_OFFSET << 2) + VDIN_DOLBY_AXI_CTRL3 )
#define VDIN0_DOLBY_DSC_STATUS0 ((VDIN0_OFFSET << 2) + VDIN_DOLBY_DSC_STATUS0)
#define VDIN0_DOLBY_DSC_STATUS1 ((VDIN0_OFFSET << 2) + VDIN_DOLBY_DSC_STATUS1)
#define VDIN0_DOLBY_DSC_STATUS2 ((VDIN0_OFFSET << 2) + VDIN_DOLBY_DSC_STATUS2)
#define VDIN0_DOLBY_DSC_STATUS3 ((VDIN0_OFFSET << 2) + VDIN_DOLBY_DSC_STATUS3)
//VDIN1 8'h80 - 8'hef
#define VDIN1_SCALE_COEF_IDX ((VDIN1_OFFSET << 2) + VDIN_SCALE_COEF_IDX )
#define VDIN1_SCALE_COEF ((VDIN1_OFFSET << 2) + VDIN_SCALE_COEF )
#define VDIN1_COM_CTRL0 ((VDIN1_OFFSET << 2) + VDIN_COM_CTRL0 )
#define VDIN1_ACTIVE_MAX_PIX_CNT_STATUS ((VDIN1_OFFSET << 2) + VDIN_ACTIVE_MAX_PIX_CNT_STATUS )
#define VDIN1_LCNT_STATUS ((VDIN1_OFFSET << 2) + VDIN_LCNT_STATUS )
#define VDIN1_COM_STATUS0 ((VDIN1_OFFSET << 2) + VDIN_COM_STATUS0 )
#define VDIN1_COM_STATUS1 ((VDIN1_OFFSET << 2) + VDIN_COM_STATUS1 )
#define VDIN1_LCNT_SHADOW_STATUS ((VDIN1_OFFSET << 2) + VDIN_LCNT_SHADOW_STATUS )
#define VDIN1_ASFIFO_CTRL0 ((VDIN1_OFFSET << 2) + VDIN_ASFIFO_CTRL0 )
#define VDIN1_ASFIFO_CTRL1 ((VDIN1_OFFSET << 2) + VDIN_ASFIFO_CTRL1 )
#define VDIN1_WIDTHM1I_WIDTHM1O ((VDIN1_OFFSET << 2) + VDIN_WIDTHM1I_WIDTHM1O )
#define VDIN1_SC_MISC_CTRL ((VDIN1_OFFSET << 2) + VDIN_SC_MISC_CTRL )
#define VDIN1_HSC_PHASE_STEP ((VDIN1_OFFSET << 2) + VDIN_HSC_PHASE_STEP )
#define VDIN1_HSC_INI_CTRL ((VDIN1_OFFSET << 2) + VDIN_HSC_INI_CTRL )
#define VDIN1_COM_STATUS2 ((VDIN1_OFFSET << 2) + VDIN_COM_STATUS2 )
#define VDIN1_COM_STATUS3 ((VDIN1_OFFSET << 2) + VDIN_COM_STATUS3 )
#define VDIN1_ASFIFO_CTRL2 ((VDIN1_OFFSET << 2) + VDIN_ASFIFO_CTRL2 )
#define VDIN1_MATRIX_CTRL ((VDIN1_OFFSET << 2) + VDIN_MATRIX_CTRL )
#define VDIN1_MATRIX_COEF00_01 ((VDIN1_OFFSET << 2) + VDIN_MATRIX_COEF00_01 )
#define VDIN1_MATRIX_COEF02_10 ((VDIN1_OFFSET << 2) + VDIN_MATRIX_COEF02_10 )
#define VDIN1_MATRIX_COEF11_12 ((VDIN1_OFFSET << 2) + VDIN_MATRIX_COEF11_12 )
#define VDIN1_MATRIX_COEF20_21 ((VDIN1_OFFSET << 2) + VDIN_MATRIX_COEF20_21 )
#define VDIN1_MATRIX_COEF22 ((VDIN1_OFFSET << 2) + VDIN_MATRIX_COEF22 )
#define VDIN1_MATRIX_OFFSET0_1 ((VDIN1_OFFSET << 2) + VDIN_MATRIX_OFFSET0_1 )
#define VDIN1_MATRIX_OFFSET2 ((VDIN1_OFFSET << 2) + VDIN_MATRIX_OFFSET2 )
#define VDIN1_MATRIX_PRE_OFFSET0_1 ((VDIN1_OFFSET << 2) + VDIN_MATRIX_PRE_OFFSET0_1 )
#define VDIN1_MATRIX_PRE_OFFSET2 ((VDIN1_OFFSET << 2) + VDIN_MATRIX_PRE_OFFSET2 )
#define VDIN1_LFIFO_CTRL ((VDIN1_OFFSET << 2) + VDIN_LFIFO_CTRL )
#define VDIN1_COM_GCLK_CTRL ((VDIN1_OFFSET << 2) + VDIN_COM_GCLK_CTRL )
#define VDIN1_INTF_WIDTHM1 ((VDIN1_OFFSET << 2) + VDIN_INTF_WIDTHM1 )
#define VDIN1_WR_CTRL2 ((VDIN1_OFFSET << 2) + VDIN_WR_CTRL2 )
#define VDIN1_WR_CTRL ((VDIN1_OFFSET << 2) + VDIN_WR_CTRL )
#define VDIN1_WR_H_START_END ((VDIN1_OFFSET << 2) + VDIN_WR_H_START_END )
#define VDIN1_WR_V_START_END ((VDIN1_OFFSET << 2) + VDIN_WR_V_START_END )
#define VDIN1_VSC_PHASE_STEP ((VDIN1_OFFSET << 2) + VDIN_VSC_PHASE_STEP )
#define VDIN1_VSC_INI_CTRL ((VDIN1_OFFSET << 2) + VDIN_VSC_INI_CTRL )
#define VDIN1_SCIN_HEIGHTM1 ((VDIN1_OFFSET << 2) + VDIN_SCIN_HEIGHTM1 )
#define VDIN1_DUMMY_DATA ((VDIN1_OFFSET << 2) + VDIN_DUMMY_DATA )
#define VDIN1_MATRIX_PROBE_COLOR ((VDIN1_OFFSET << 2) + VDIN_MATRIX_PROBE_COLOR )
#define VDIN1_MATRIX_HL_COLOR ((VDIN1_OFFSET << 2) + VDIN_MATRIX_HL_COLOR )
#define VDIN1_MATRIX_PROBE_POS ((VDIN1_OFFSET << 2) + VDIN_MATRIX_PROBE_POS )
#define VDIN1_CHROMA_ADDR_PORT ((VDIN1_OFFSET << 2) + VDIN_CHROMA_ADDR_PORT )
#define VDIN1_CHROMA_DATA_PORT ((VDIN1_OFFSET << 2) + VDIN_CHROMA_DATA_PORT )
#define VDIN1_CM_BRI_CON_CTRL ((VDIN1_OFFSET << 2) + VDIN_CM_BRI_CON_CTRL )
#define VDIN1_HIST_CTRL ((VDIN1_OFFSET << 2) + VDIN_HIST_CTRL )
#define VDIN1_HIST_H_START_END ((VDIN1_OFFSET << 2) + VDIN_HIST_H_START_END )
#define VDIN1_HIST_V_START_END ((VDIN1_OFFSET << 2) + VDIN_HIST_V_START_END )
#define VDIN1_HIST_MAX_MIN ((VDIN1_OFFSET << 2) + VDIN_HIST_MAX_MIN )
#define VDIN1_HIST_SPL_VAL ((VDIN1_OFFSET << 2) + VDIN_HIST_SPL_VAL )
#define VDIN1_HIST_SPL_PIX_CNT ((VDIN1_OFFSET << 2) + VDIN_HIST_SPL_PIX_CNT )
#define VDIN1_HIST_CHROMA_SUM ((VDIN1_OFFSET << 2) + VDIN_HIST_CHROMA_SUM )
#define VDIN1_DNLP_HIST00 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST00 )
#define VDIN1_DNLP_HIST01 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST01 )
#define VDIN1_DNLP_HIST02 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST02 )
#define VDIN1_DNLP_HIST03 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST03 )
#define VDIN1_DNLP_HIST04 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST04 )
#define VDIN1_DNLP_HIST05 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST05 )
#define VDIN1_DNLP_HIST06 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST06 )
#define VDIN1_DNLP_HIST07 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST07 )
#define VDIN1_DNLP_HIST08 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST08 )
#define VDIN1_DNLP_HIST09 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST09 )
#define VDIN1_DNLP_HIST10 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST10 )
#define VDIN1_DNLP_HIST11 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST11 )
#define VDIN1_DNLP_HIST12 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST12 )
#define VDIN1_DNLP_HIST13 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST13 )
#define VDIN1_DNLP_HIST14 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST14 )
#define VDIN1_DNLP_HIST15 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST15 )
#define VDIN1_DNLP_HIST16 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST16 )
#define VDIN1_DNLP_HIST17 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST17 )
#define VDIN1_DNLP_HIST18 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST18 )
#define VDIN1_DNLP_HIST19 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST19 )
#define VDIN1_DNLP_HIST20 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST20 )
#define VDIN1_DNLP_HIST21 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST21 )
#define VDIN1_DNLP_HIST22 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST22 )
#define VDIN1_DNLP_HIST23 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST23 )
#define VDIN1_DNLP_HIST24 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST24 )
#define VDIN1_DNLP_HIST25 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST25 )
#define VDIN1_DNLP_HIST26 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST26 )
#define VDIN1_DNLP_HIST27 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST27 )
#define VDIN1_DNLP_HIST28 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST28 )
#define VDIN1_DNLP_HIST29 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST29 )
#define VDIN1_DNLP_HIST30 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST30 )
#define VDIN1_DNLP_HIST31 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST31 )
#define VDIN1_DNLP_HIST32 ((VDIN1_OFFSET << 2) + VDIN_DNLP_HIST32 )
#define VDIN1_LDIM_STTS_HIST_REGION_IDX ((VDIN1_OFFSET << 2) + VDIN_LDIM_STTS_HIST_REGION_IDX )
#define VDIN1_LDIM_STTS_HIST_SET_REGION ((VDIN1_OFFSET << 2) + VDIN_LDIM_STTS_HIST_SET_REGION )
#define VDIN1_LDIM_STTS_HIST_READ_REGION ((VDIN1_OFFSET << 2) + VDIN_LDIM_STTS_HIST_READ_REGION )
#define VDIN1_MEAS_CTRL0 ((VDIN1_OFFSET << 2) + VDIN_MEAS_CTRL0 )
#define VDIN1_MEAS_VS_COUNT_HI ((VDIN1_OFFSET << 2) + VDIN_MEAS_VS_COUNT_HI )
#define VDIN1_MEAS_VS_COUNT_LO ((VDIN1_OFFSET << 2) + VDIN_MEAS_VS_COUNT_LO )
#define VDIN1_MEAS_HS_RANGE ((VDIN1_OFFSET << 2) + VDIN_MEAS_HS_RANGE )
#define VDIN1_MEAS_HS_COUNT ((VDIN1_OFFSET << 2) + VDIN_MEAS_HS_COUNT )
#define VDIN1_BLKBAR_CTRL1 ((VDIN1_OFFSET << 2) + VDIN_BLKBAR_CTRL1 )
#define VDIN1_BLKBAR_CTRL0 ((VDIN1_OFFSET << 2) + VDIN_BLKBAR_CTRL0 )
#define VDIN1_BLKBAR_H_START_END ((VDIN1_OFFSET << 2) + VDIN_BLKBAR_H_START_END )
#define VDIN1_BLKBAR_V_START_END ((VDIN1_OFFSET << 2) + VDIN_BLKBAR_V_START_END )
#define VDIN1_BLKBAR_CNT_THRESHOLD ((VDIN1_OFFSET << 2) + VDIN_BLKBAR_CNT_THRESHOLD )
#define VDIN1_BLKBAR_ROW_TH1_TH2 ((VDIN1_OFFSET << 2) + VDIN_BLKBAR_ROW_TH1_TH2 )
#define VDIN1_BLKBAR_IND_LEFT_START_END ((VDIN1_OFFSET << 2) + VDIN_BLKBAR_IND_LEFT_START_END )
#define VDIN1_BLKBAR_IND_RIGHT_START_END ((VDIN1_OFFSET << 2) + VDIN_BLKBAR_IND_RIGHT_START_END )
#define VDIN1_BLKBAR_IND_LEFT1_CNT ((VDIN1_OFFSET << 2) + VDIN_BLKBAR_IND_LEFT1_CNT )
#define VDIN1_BLKBAR_IND_LEFT2_CNT ((VDIN1_OFFSET << 2) + VDIN_BLKBAR_IND_LEFT2_CNT )
#define VDIN1_BLKBAR_IND_RIGHT1_CNT ((VDIN1_OFFSET << 2) + VDIN_BLKBAR_IND_RIGHT1_CNT )
#define VDIN1_BLKBAR_IND_RIGHT2_CNT ((VDIN1_OFFSET << 2) + VDIN_BLKBAR_IND_RIGHT2_CNT )
#define VDIN1_BLKBAR_STATUS0 ((VDIN1_OFFSET << 2) + VDIN_BLKBAR_STATUS0 )
#define VDIN1_BLKBAR_STATUS1 ((VDIN1_OFFSET << 2) + VDIN_BLKBAR_STATUS1 )
#define VDIN1_WIN_H_START_END ((VDIN1_OFFSET << 2) + VDIN_WIN_H_START_END )
#define VDIN1_WIN_V_START_END ((VDIN1_OFFSET << 2) + VDIN_WIN_V_START_END )
#define VDIN1_ASFIFO_CTRL3 ((VDIN1_OFFSET << 2) + VDIN_ASFIFO_CTRL3 )
#define VDIN1_COM_GCLK_CTRL2 ((VDIN1_OFFSET << 2) + VDIN_COM_GCLK_CTRL2 )
#define VDIN1_VSHRK_CTRL ((VDIN1_OFFSET << 2) + VDIN_VSHRK_CTRL )
#define VDIN1_SYNC_MASK ((VDIN1_OFFSET << 2) + VDIN_SYNC_MASK )
#define VDIN1_DOLBY_DSC_CTRL0 ((VDIN1_OFFSET << 2) + VDIN_DOLBY_DSC_CTRL0 )
#define VDIN1_DOLBY_DSC_CTRL1 ((VDIN1_OFFSET << 2) + VDIN_DOLBY_DSC_CTRL1 )
#define VDIN1_DOLBY_DSC_CTRL2 ((VDIN1_OFFSET << 2) + VDIN_DOLBY_DSC_CTRL2 )
#define VDIN1_DOLBY_DSC_CTRL3 ((VDIN1_OFFSET << 2) + VDIN_DOLBY_DSC_CTRL3 )
#define VDIN1_DOLBY_AXI_CTRL0 ((VDIN1_OFFSET << 2) + VDIN_DOLBY_AXI_CTRL0 )
#define VDIN1_DOLBY_AXI_CTRL1 ((VDIN1_OFFSET << 2) + VDIN_DOLBY_AXI_CTRL1 )
#define VDIN1_DOLBY_AXI_CTRL2 ((VDIN1_OFFSET << 2) + VDIN_DOLBY_AXI_CTRL2 )
#define VDIN1_DOLBY_AXI_CTRL3 ((VDIN1_OFFSET << 2) + VDIN_DOLBY_AXI_CTRL3 )
#define VDIN1_DOLBY_DSC_STATUS0 ((VDIN1_OFFSET << 2) + VDIN_DOLBY_DSC_STATUS0)
#define VDIN1_DOLBY_DSC_STATUS1 ((VDIN1_OFFSET << 2) + VDIN_DOLBY_DSC_STATUS1)
#define VDIN1_DOLBY_DSC_STATUS2 ((VDIN1_OFFSET << 2) + VDIN_DOLBY_DSC_STATUS2)
#define VDIN1_DOLBY_DSC_STATUS3 ((VDIN1_OFFSET << 2) + VDIN_DOLBY_DSC_STATUS3)
//`define LCD_VCBUS_BASE 8'h14
//
// Reading file: lcd_regs.h
//
// -----------------------------------------------
// CBUS_BASE: LCD_VCBUS_BASE = 0x14
// -----------------------------------------------
//========================================================================
//LCD DRV 12'h480~12'h4ef
//=======================================================================
#define L_GAMMA_CNTL_PORT (0x1400)
#define P_L_GAMMA_CNTL_PORT (volatile unsigned int *)((0x1400 << 2) + 0xff900000)
#define L_GAMMA_DATA_PORT (0x1401)
#define P_L_GAMMA_DATA_PORT (volatile unsigned int *)((0x1401 << 2) + 0xff900000)
#define L_GAMMA_ADDR_PORT (0x1402)
#define P_L_GAMMA_ADDR_PORT (volatile unsigned int *)((0x1402 << 2) + 0xff900000)
#define L_GAMMA_VCOM_HSWITCH_ADDR (0x1403)
#define P_L_GAMMA_VCOM_HSWITCH_ADDR (volatile unsigned int *)((0x1403 << 2) + 0xff900000)
#define L_RGB_BASE_ADDR (0x1405)
#define P_L_RGB_BASE_ADDR (volatile unsigned int *)((0x1405 << 2) + 0xff900000)
#define L_RGB_COEFF_ADDR (0x1406)
#define P_L_RGB_COEFF_ADDR (volatile unsigned int *)((0x1406 << 2) + 0xff900000)
#define L_POL_CNTL_ADDR (0x1407)
#define P_L_POL_CNTL_ADDR (volatile unsigned int *)((0x1407 << 2) + 0xff900000)
#define L_DITH_CNTL_ADDR (0x1408)
#define P_L_DITH_CNTL_ADDR (volatile unsigned int *)((0x1408 << 2) + 0xff900000)
#define L_GAMMA_PROBE_CTRL (0x1409)
#define P_L_GAMMA_PROBE_CTRL (volatile unsigned int *)((0x1409 << 2) + 0xff900000)
//read only
#define L_GAMMA_PROBE_COLOR_L (0x140a)
#define P_L_GAMMA_PROBE_COLOR_L (volatile unsigned int *)((0x140a << 2) + 0xff900000)
#define L_GAMMA_PROBE_COLOR_H (0x140b)
#define P_L_GAMMA_PROBE_COLOR_H (volatile unsigned int *)((0x140b << 2) + 0xff900000)
#define L_GAMMA_PROBE_HL_COLOR (0x140c)
#define P_L_GAMMA_PROBE_HL_COLOR (volatile unsigned int *)((0x140c << 2) + 0xff900000)
#define L_GAMMA_PROBE_POS_X (0x140d)
#define P_L_GAMMA_PROBE_POS_X (volatile unsigned int *)((0x140d << 2) + 0xff900000)
#define L_GAMMA_PROBE_POS_Y (0x140e)
#define P_L_GAMMA_PROBE_POS_Y (volatile unsigned int *)((0x140e << 2) + 0xff900000)
#define L_STH1_HS_ADDR (0x1410)
#define P_L_STH1_HS_ADDR (volatile unsigned int *)((0x1410 << 2) + 0xff900000)
#define L_STH1_HE_ADDR (0x1411)
#define P_L_STH1_HE_ADDR (volatile unsigned int *)((0x1411 << 2) + 0xff900000)
#define L_STH1_VS_ADDR (0x1412)
#define P_L_STH1_VS_ADDR (volatile unsigned int *)((0x1412 << 2) + 0xff900000)
#define L_STH1_VE_ADDR (0x1413)
#define P_L_STH1_VE_ADDR (volatile unsigned int *)((0x1413 << 2) + 0xff900000)
#define L_STH2_HS_ADDR (0x1414)
#define P_L_STH2_HS_ADDR (volatile unsigned int *)((0x1414 << 2) + 0xff900000)
#define L_STH2_HE_ADDR (0x1415)
#define P_L_STH2_HE_ADDR (volatile unsigned int *)((0x1415 << 2) + 0xff900000)
#define L_STH2_VS_ADDR (0x1416)
#define P_L_STH2_VS_ADDR (volatile unsigned int *)((0x1416 << 2) + 0xff900000)
#define L_STH2_VE_ADDR (0x1417)
#define P_L_STH2_VE_ADDR (volatile unsigned int *)((0x1417 << 2) + 0xff900000)
#define L_OEH_HS_ADDR (0x1418)
#define P_L_OEH_HS_ADDR (volatile unsigned int *)((0x1418 << 2) + 0xff900000)
#define L_OEH_HE_ADDR (0x1419)
#define P_L_OEH_HE_ADDR (volatile unsigned int *)((0x1419 << 2) + 0xff900000)
#define L_OEH_VS_ADDR (0x141a)
#define P_L_OEH_VS_ADDR (volatile unsigned int *)((0x141a << 2) + 0xff900000)
#define L_OEH_VE_ADDR (0x141b)
#define P_L_OEH_VE_ADDR (volatile unsigned int *)((0x141b << 2) + 0xff900000)
#define L_VCOM_HSWITCH_ADDR (0x141c)
#define P_L_VCOM_HSWITCH_ADDR (volatile unsigned int *)((0x141c << 2) + 0xff900000)
#define L_VCOM_VS_ADDR (0x141d)
#define P_L_VCOM_VS_ADDR (volatile unsigned int *)((0x141d << 2) + 0xff900000)
#define L_VCOM_VE_ADDR (0x141e)
#define P_L_VCOM_VE_ADDR (volatile unsigned int *)((0x141e << 2) + 0xff900000)
#define L_CPV1_HS_ADDR (0x141f)
#define P_L_CPV1_HS_ADDR (volatile unsigned int *)((0x141f << 2) + 0xff900000)
#define L_CPV1_HE_ADDR (0x1420)
#define P_L_CPV1_HE_ADDR (volatile unsigned int *)((0x1420 << 2) + 0xff900000)
#define L_CPV1_VS_ADDR (0x1421)
#define P_L_CPV1_VS_ADDR (volatile unsigned int *)((0x1421 << 2) + 0xff900000)
#define L_CPV1_VE_ADDR (0x1422)
#define P_L_CPV1_VE_ADDR (volatile unsigned int *)((0x1422 << 2) + 0xff900000)
#define L_CPV2_HS_ADDR (0x1423)
#define P_L_CPV2_HS_ADDR (volatile unsigned int *)((0x1423 << 2) + 0xff900000)
#define L_CPV2_HE_ADDR (0x1424)
#define P_L_CPV2_HE_ADDR (volatile unsigned int *)((0x1424 << 2) + 0xff900000)
#define L_CPV2_VS_ADDR (0x1425)
#define P_L_CPV2_VS_ADDR (volatile unsigned int *)((0x1425 << 2) + 0xff900000)
#define L_CPV2_VE_ADDR (0x1426)
#define P_L_CPV2_VE_ADDR (volatile unsigned int *)((0x1426 << 2) + 0xff900000)
#define L_STV1_HS_ADDR (0x1427)
#define P_L_STV1_HS_ADDR (volatile unsigned int *)((0x1427 << 2) + 0xff900000)
#define L_STV1_HE_ADDR (0x1428)
#define P_L_STV1_HE_ADDR (volatile unsigned int *)((0x1428 << 2) + 0xff900000)
#define L_STV1_VS_ADDR (0x1429)
#define P_L_STV1_VS_ADDR (volatile unsigned int *)((0x1429 << 2) + 0xff900000)
#define L_STV1_VE_ADDR (0x142a)
#define P_L_STV1_VE_ADDR (volatile unsigned int *)((0x142a << 2) + 0xff900000)
#define L_STV2_HS_ADDR (0x142b)
#define P_L_STV2_HS_ADDR (volatile unsigned int *)((0x142b << 2) + 0xff900000)
#define L_STV2_HE_ADDR (0x142c)
#define P_L_STV2_HE_ADDR (volatile unsigned int *)((0x142c << 2) + 0xff900000)
#define L_STV2_VS_ADDR (0x142d)
#define P_L_STV2_VS_ADDR (volatile unsigned int *)((0x142d << 2) + 0xff900000)
#define L_STV2_VE_ADDR (0x142e)
#define P_L_STV2_VE_ADDR (volatile unsigned int *)((0x142e << 2) + 0xff900000)
#define L_OEV1_HS_ADDR (0x142f)
#define P_L_OEV1_HS_ADDR (volatile unsigned int *)((0x142f << 2) + 0xff900000)
#define L_OEV1_HE_ADDR (0x1430)
#define P_L_OEV1_HE_ADDR (volatile unsigned int *)((0x1430 << 2) + 0xff900000)
#define L_OEV1_VS_ADDR (0x1431)
#define P_L_OEV1_VS_ADDR (volatile unsigned int *)((0x1431 << 2) + 0xff900000)
#define L_OEV1_VE_ADDR (0x1432)
#define P_L_OEV1_VE_ADDR (volatile unsigned int *)((0x1432 << 2) + 0xff900000)
#define L_OEV2_HS_ADDR (0x1433)
#define P_L_OEV2_HS_ADDR (volatile unsigned int *)((0x1433 << 2) + 0xff900000)
#define L_OEV2_HE_ADDR (0x1434)
#define P_L_OEV2_HE_ADDR (volatile unsigned int *)((0x1434 << 2) + 0xff900000)
#define L_OEV2_VS_ADDR (0x1435)
#define P_L_OEV2_VS_ADDR (volatile unsigned int *)((0x1435 << 2) + 0xff900000)
#define L_OEV2_VE_ADDR (0x1436)
#define P_L_OEV2_VE_ADDR (volatile unsigned int *)((0x1436 << 2) + 0xff900000)
#define L_OEV3_HS_ADDR (0x1437)
#define P_L_OEV3_HS_ADDR (volatile unsigned int *)((0x1437 << 2) + 0xff900000)
#define L_OEV3_HE_ADDR (0x1438)
#define P_L_OEV3_HE_ADDR (volatile unsigned int *)((0x1438 << 2) + 0xff900000)
#define L_OEV3_VS_ADDR (0x1439)
#define P_L_OEV3_VS_ADDR (volatile unsigned int *)((0x1439 << 2) + 0xff900000)
#define L_OEV3_VE_ADDR (0x143a)
#define P_L_OEV3_VE_ADDR (volatile unsigned int *)((0x143a << 2) + 0xff900000)
#define L_LCD_PWR_ADDR (0x143b)
#define P_L_LCD_PWR_ADDR (volatile unsigned int *)((0x143b << 2) + 0xff900000)
#define L_LCD_PWM0_LO_ADDR (0x143c)
#define P_L_LCD_PWM0_LO_ADDR (volatile unsigned int *)((0x143c << 2) + 0xff900000)
#define L_LCD_PWM0_HI_ADDR (0x143d)
#define P_L_LCD_PWM0_HI_ADDR (volatile unsigned int *)((0x143d << 2) + 0xff900000)
#define L_LCD_PWM1_LO_ADDR (0x143e)
#define P_L_LCD_PWM1_LO_ADDR (volatile unsigned int *)((0x143e << 2) + 0xff900000)
#define L_LCD_PWM1_HI_ADDR (0x143f)
#define P_L_LCD_PWM1_HI_ADDR (volatile unsigned int *)((0x143f << 2) + 0xff900000)
#define L_INV_CNT_ADDR (0x1440)
#define P_L_INV_CNT_ADDR (volatile unsigned int *)((0x1440 << 2) + 0xff900000)
#define L_TCON_MISC_SEL_ADDR (0x1441)
#define P_L_TCON_MISC_SEL_ADDR (volatile unsigned int *)((0x1441 << 2) + 0xff900000)
#define L_DUAL_PORT_CNTL_ADDR (0x1442)
#define P_L_DUAL_PORT_CNTL_ADDR (volatile unsigned int *)((0x1442 << 2) + 0xff900000)
#define MLVDS_CLK_CTL1_HI (0x1443)
#define P_MLVDS_CLK_CTL1_HI (volatile unsigned int *)((0x1443 << 2) + 0xff900000)
#define MLVDS_CLK_CTL1_LO (0x1444)
#define P_MLVDS_CLK_CTL1_LO (volatile unsigned int *)((0x1444 << 2) + 0xff900000)
// [31:30] enable mlvds clocks
// [24] mlvds_clk_half_delay 24 // Bit 0
// [23:0] mlvds_clk_pattern 0 // Bit 23:0
#define L_TCON_DOUBLE_CTL (0x1449)
#define P_L_TCON_DOUBLE_CTL (volatile unsigned int *)((0x1449 << 2) + 0xff900000)
#define L_TCON_PATTERN_HI (0x144a)
#define P_L_TCON_PATTERN_HI (volatile unsigned int *)((0x144a << 2) + 0xff900000)
#define L_TCON_PATTERN_LO (0x144b)
#define P_L_TCON_PATTERN_LO (volatile unsigned int *)((0x144b << 2) + 0xff900000)
#define LDIM_BL_ADDR_PORT (0x144e)
#define P_LDIM_BL_ADDR_PORT (volatile unsigned int *)((0x144e << 2) + 0xff900000)
#define LDIM_BL_DATA_PORT (0x144f)
#define P_LDIM_BL_DATA_PORT (volatile unsigned int *)((0x144f << 2) + 0xff900000)
#define L_DE_HS_ADDR (0x1451)
#define P_L_DE_HS_ADDR (volatile unsigned int *)((0x1451 << 2) + 0xff900000)
#define L_DE_HE_ADDR (0x1452)
#define P_L_DE_HE_ADDR (volatile unsigned int *)((0x1452 << 2) + 0xff900000)
#define L_DE_VS_ADDR (0x1453)
#define P_L_DE_VS_ADDR (volatile unsigned int *)((0x1453 << 2) + 0xff900000)
#define L_DE_VE_ADDR (0x1454)
#define P_L_DE_VE_ADDR (volatile unsigned int *)((0x1454 << 2) + 0xff900000)
#define L_HSYNC_HS_ADDR (0x1455)
#define P_L_HSYNC_HS_ADDR (volatile unsigned int *)((0x1455 << 2) + 0xff900000)
#define L_HSYNC_HE_ADDR (0x1456)
#define P_L_HSYNC_HE_ADDR (volatile unsigned int *)((0x1456 << 2) + 0xff900000)
#define L_HSYNC_VS_ADDR (0x1457)
#define P_L_HSYNC_VS_ADDR (volatile unsigned int *)((0x1457 << 2) + 0xff900000)
#define L_HSYNC_VE_ADDR (0x1458)
#define P_L_HSYNC_VE_ADDR (volatile unsigned int *)((0x1458 << 2) + 0xff900000)
#define L_VSYNC_HS_ADDR (0x1459)
#define P_L_VSYNC_HS_ADDR (volatile unsigned int *)((0x1459 << 2) + 0xff900000)
#define L_VSYNC_HE_ADDR (0x145a)
#define P_L_VSYNC_HE_ADDR (volatile unsigned int *)((0x145a << 2) + 0xff900000)
#define L_VSYNC_VS_ADDR (0x145b)
#define P_L_VSYNC_VS_ADDR (volatile unsigned int *)((0x145b << 2) + 0xff900000)
#define L_VSYNC_VE_ADDR (0x145c)
#define P_L_VSYNC_VE_ADDR (volatile unsigned int *)((0x145c << 2) + 0xff900000)
// bit 8 -- vfifo_mcu_enable
// bit 7 -- halt_vs_de
// bit 6 -- R8G8B8_format
// bit 5 -- R6G6B6_format (round to 6 bits)
// bit 4 -- R5G6B5_format
// bit 3 -- dac_dith_sel
// bit 2 -- lcd_mcu_enable_de -- ReadOnly
// bit 1 -- lcd_mcu_enable_vsync -- ReadOnly
// bit 0 -- lcd_mcu_enable
#define L_LCD_MCU_CTL (0x145d)
#define P_L_LCD_MCU_CTL (volatile unsigned int *)((0x145d << 2) + 0xff900000)
//**************************************************************************
//* Dual port mLVDS registers
//**************************************************************************
// bit 3 - enable_u_dual_mlvds_dp_clk
// bit 2 - enable_u_map_mlvds_r_clk
// bit 1 - enable_u_map_mlvds_l_clk
// bit 0 - dual_mlvds_en
//`define DUAL_MLVDS_CTL 8'h60
// bit[12:0] - dual_mlvds_line_start
//`define DUAL_MLVDS_LINE_START 8'h61
// bit[12:0] - dual_mlvds_line_end
//`define DUAL_MLVDS_LINE_END 8'h62
// bit[12:0] - dual_mlvds_w_pixel_start_l
//`define DUAL_MLVDS_PIXEL_W_START_L 8'h63
// bit[12:0] - dual_mlvds_w_pixel_end_l
//`define DUAL_MLVDS_PIXEL_W_END_L 8'h64
// bit[12:0] - dual_mlvds_w_pixel_start_r
//`define DUAL_MLVDS_PIXEL_W_START_R 8'h65
// bit[12:0] - dual_mlvds_w_pixel_end_r
//`define DUAL_MLVDS_PIXEL_W_END_R 8'h66
// bit[12:0] - dual_mlvds_r_pixel_start_l
//`define DUAL_MLVDS_PIXEL_R_START_L 8'h67
// bit[12:0] - dual_mlvds_r_pixel_cnt_l
//`define DUAL_MLVDS_PIXEL_R_CNT_L 8'h68
// bit[12:0] - dual_mlvds_r_pixel_start_r
//`define DUAL_MLVDS_PIXEL_R_START_R 8'h69
// bit[12:0] - dual_mlvds_r_pixel_cnt_r
//`define DUAL_MLVDS_PIXEL_R_CNT_R 8'h6a
// bit[15] - v_inversion_en
// bit[12:0] - v_inversion_pixel
//`define V_INVERSION_PIXEL 8'h70
// bit[15] - v_inversion_sync_en
// bit[12:0] - v_inversion_line
//`define V_INVERSION_LINE 8'h71
// bit[15:12] - v_loop_r
// bit[11:10] - v_pattern_1_r
// bit[9:8] - v_pattern_0_r
// bit[7:4] - v_loop_l
// bit[3:2] - v_pattern_1_l
// bit[1:0] - v_pattern_0_l
//`define V_INVERSION_CONTROL 8'h72
//`define MLVDS2_CONTROL 8'h74
#define mLVDS2_RESERVED 15 // 15
#define mLVDS2_double_pattern 14 // 14
#define mLVDS2_ins_reset 8 // 13:8 // each channel has one bit
#define mLVDS2_dual_gate 7
#define mLVDS2_bit_num 6 // 0-6Bits, 1-8Bits
#define mLVDS2_pair_num 5 // 0-3Pairs, 1-6Pairs
#define mLVDS2_msb_first 4
#define mLVDS2_PORT_SWAP 3
#define mLVDS2_MLSB_SWAP 2
#define mLVDS2_PN_SWAP 1
#define mLVDS2_en 0
//`define MLVDS2_CONFIG_HI 8'h75
//`define MLVDS2_CONFIG_LO 8'h76
#define mLVDS2_reset_offset 29 // Bit 31:29
#define mLVDS2_reset_length 23 // Bit 28:23
#define mLVDS2_config_reserved 20 // Bit 22:20
#define mLVDS2_reset_start_bit12 19 // Bit 19
#define mLVDS2_data_write_toggle 18
#define mLVDS2_data_write_ini 17
#define mLVDS2_data_latch_1_toggle 16
#define mLVDS2_data_latch_1_ini 15
#define mLVDS2_data_latch_0_toggle 14
#define mLVDS2_data_latch_0_ini 13
#define mLVDS2_reset_1_select 12 // 0 - same as reset_0, 1 - 1 clock delay of reset_0
#define mLVDS2_reset_start 0 // Bit 11:0
//`define MLVDS2_DUAL_GATE_WR_START 8'h77
// `define mlvds2_dual_gate_wr_start 0 // Bit 12:0
//`define MLVDS2_DUAL_GATE_WR_END 8'h78
// `define mlvds2_dual_gate_wr_end 0 // Bit 12:0
//
//`define MLVDS2_DUAL_GATE_RD_START 8'h79
// `define mlvds2_dual_gate_rd_start 0 // Bit 12:0
//`define MLVDS2_DUAL_GATE_RD_END 8'h7a
// `define mlvds2_dual_gate_rd_end 0 // Bit 12:0
//`define MLVDS2_SECOND_RESET_CTL 8'h7b
// `define mLVDS2_2nd_reset_start 0 // Bit 12:0
//
//`define MLVDS2_DUAL_GATE_CTL_HI 8'h7c
//`define MLVDS2_DUAL_GATE_CTL_LO 8'h7d
// `define mlvds2_tcon_field_en 24 // Bit 7:0
// `define mlvds2_dual_gate_reserved 21 // Bit 2:0
// `define mlvds2_scan_mode_start_line_bit12 20 // Bit 0
// `define mlvds2_scan_mode_odd 16 // Bit 3:0
// `define mlvds2_scan_mode_even 12 // Bit 3:0
// `define mlvds2_scan_mode_start_line 0 // Bit 11:0
//
//`define MLVDS2_RESET_CONFIG_HI 8'h7e
//`define MLVDS2_RESET_CONFIG_LO 8'h7f
// `define mLVDS2_reset_range_enable 31 // Bit 0
// `define mLVDS2_reset_range_inv 30 // Bit 0
// `define mLVDS2_reset_config_res1 29 // Bit 0
// `define mLVDS2_reset_range_line_0 16 // Bit 11:0
// `define mLVDS2_reset_config_res3 13 // Bit 2:0
// `define mLVDS2_reset_range_line_1 0 // Bit 11:0
//
//**************************************************************************
//* Vbyone registers (Note: no MinLVDS in G9tv, share the register)
//**************************************************************************
#define VBO_CTRL_L (0x1460)
#define P_VBO_CTRL_L (volatile unsigned int *)((0x1460 << 2) + 0xff900000)
#define VBO_CTRL_H (0x1461)
#define P_VBO_CTRL_H (volatile unsigned int *)((0x1461 << 2) + 0xff900000)
#define VBO_SOFT_RST (0x1462)
#define P_VBO_SOFT_RST (volatile unsigned int *)((0x1462 << 2) + 0xff900000)
#define VBO_LANES (0x1463)
#define P_VBO_LANES (volatile unsigned int *)((0x1463 << 2) + 0xff900000)
#define VBO_VIN_CTRL (0x1464)
#define P_VBO_VIN_CTRL (volatile unsigned int *)((0x1464 << 2) + 0xff900000)
#define VBO_ACT_VSIZE (0x1465)
#define P_VBO_ACT_VSIZE (volatile unsigned int *)((0x1465 << 2) + 0xff900000)
#define VBO_REGION_00 (0x1466)
#define P_VBO_REGION_00 (volatile unsigned int *)((0x1466 << 2) + 0xff900000)
#define VBO_REGION_01 (0x1467)
#define P_VBO_REGION_01 (volatile unsigned int *)((0x1467 << 2) + 0xff900000)
#define VBO_REGION_02 (0x1468)
#define P_VBO_REGION_02 (volatile unsigned int *)((0x1468 << 2) + 0xff900000)
#define VBO_REGION_03 (0x1469)
#define P_VBO_REGION_03 (volatile unsigned int *)((0x1469 << 2) + 0xff900000)
#define VBO_VBK_CTRL_0 (0x146a)
#define P_VBO_VBK_CTRL_0 (volatile unsigned int *)((0x146a << 2) + 0xff900000)
#define VBO_VBK_CTRL_1 (0x146b)
#define P_VBO_VBK_CTRL_1 (volatile unsigned int *)((0x146b << 2) + 0xff900000)
#define VBO_HBK_CTRL (0x146c)
#define P_VBO_HBK_CTRL (volatile unsigned int *)((0x146c << 2) + 0xff900000)
#define VBO_PXL_CTRL (0x146d)
#define P_VBO_PXL_CTRL (volatile unsigned int *)((0x146d << 2) + 0xff900000)
#define VBO_LANE_SKEW_L (0x146e)
#define P_VBO_LANE_SKEW_L (volatile unsigned int *)((0x146e << 2) + 0xff900000)
#define VBO_LANE_SKEW_H (0x146f)
#define P_VBO_LANE_SKEW_H (volatile unsigned int *)((0x146f << 2) + 0xff900000)
#define VBO_GCLK_LANE_L (0x1470)
#define P_VBO_GCLK_LANE_L (volatile unsigned int *)((0x1470 << 2) + 0xff900000)
#define VBO_GCLK_LANE_H (0x1471)
#define P_VBO_GCLK_LANE_H (volatile unsigned int *)((0x1471 << 2) + 0xff900000)
#define VBO_GCLK_MAIN (0x1472)
#define P_VBO_GCLK_MAIN (volatile unsigned int *)((0x1472 << 2) + 0xff900000)
#define VBO_STATUS_L (0x1473)
#define P_VBO_STATUS_L (volatile unsigned int *)((0x1473 << 2) + 0xff900000)
#define VBO_STATUS_H (0x1474)
#define P_VBO_STATUS_H (volatile unsigned int *)((0x1474 << 2) + 0xff900000)
#define VBO_LANE_OUTPUT (0x1475)
#define P_VBO_LANE_OUTPUT (volatile unsigned int *)((0x1475 << 2) + 0xff900000)
#define LCD_PORT_SWAP (0x1476)
#define P_LCD_PORT_SWAP (volatile unsigned int *)((0x1476 << 2) + 0xff900000)
#define VBO_TMCHK_THRD_L (0x1478)
#define P_VBO_TMCHK_THRD_L (volatile unsigned int *)((0x1478 << 2) + 0xff900000)
#define VBO_TMCHK_THRD_H (0x1479)
#define P_VBO_TMCHK_THRD_H (volatile unsigned int *)((0x1479 << 2) + 0xff900000)
#define VBO_FSM_HOLDER_L (0x147a)
#define P_VBO_FSM_HOLDER_L (volatile unsigned int *)((0x147a << 2) + 0xff900000)
#define VBO_FSM_HOLDER_H (0x147b)
#define P_VBO_FSM_HOLDER_H (volatile unsigned int *)((0x147b << 2) + 0xff900000)
#define VBO_INTR_STATE_CTRL (0x147c)
#define P_VBO_INTR_STATE_CTRL (volatile unsigned int *)((0x147c << 2) + 0xff900000)
#define VBO_INTR_UNMASK (0x147d)
#define P_VBO_INTR_UNMASK (volatile unsigned int *)((0x147d << 2) + 0xff900000)
#define VBO_TMCHK_HSYNC_STATE_L (0x147e)
#define P_VBO_TMCHK_HSYNC_STATE_L (volatile unsigned int *)((0x147e << 2) + 0xff900000)
#define VBO_TMCHK_HSYNC_STATE_H (0x147f)
#define P_VBO_TMCHK_HSYNC_STATE_H (volatile unsigned int *)((0x147f << 2) + 0xff900000)
#define VBO_TMCHK_VSYNC_STATE_L (0x14f4)
#define P_VBO_TMCHK_VSYNC_STATE_L (volatile unsigned int *)((0x14f4 << 2) + 0xff900000)
#define VBO_TMCHK_VSYNC_STATE_H (0x14f5)
#define P_VBO_TMCHK_VSYNC_STATE_H (volatile unsigned int *)((0x14f5 << 2) + 0xff900000)
#define VBO_TMCHK_VDE_STATE_L (0x14f6)
#define P_VBO_TMCHK_VDE_STATE_L (volatile unsigned int *)((0x14f6 << 2) + 0xff900000)
#define VBO_TMCHK_VDE_STATE_H (0x14f7)
#define P_VBO_TMCHK_VDE_STATE_H (volatile unsigned int *)((0x14f7 << 2) + 0xff900000)
#define VBO_INTR_STATE (0x14f8)
#define P_VBO_INTR_STATE (volatile unsigned int *)((0x14f8 << 2) + 0xff900000)
#define VBO_INFILTER_CTRL (0x14f9)
#define P_VBO_INFILTER_CTRL (volatile unsigned int *)((0x14f9 << 2) + 0xff900000)
#define VBO_INSGN_CTRL (0x14fa)
#define P_VBO_INSGN_CTRL (volatile unsigned int *)((0x14fa << 2) + 0xff900000)
//**************************************************************************
//* NOTE:: When Programming the Gamma, please turn off the IRQ service *
//**************************************************************************
#define GAMMA_CNTL_PORT (0x1480)
#define P_GAMMA_CNTL_PORT (volatile unsigned int *)((0x1480 << 2) + 0xff900000)
#define GAMMA_VCOM_POL 7 //RW
#define GAMMA_RVS_OUT 6 //RW
#define ADR_RDY 5 //Read Only
#define WR_RDY 4 //Read Only
#define RD_RDY 3 //Read Only
#define GAMMA_TR 2 //RW
#define GAMMA_SET 1 //RW
#define GAMMA_EN 0 //RW
#define GAMMA_DATA_PORT (0x1481)
#define P_GAMMA_DATA_PORT (volatile unsigned int *)((0x1481 << 2) + 0xff900000)
#define GAMMA_ADDR_PORT (0x1482)
#define P_GAMMA_ADDR_PORT (volatile unsigned int *)((0x1482 << 2) + 0xff900000)
#define H_RD 12
#define H_AUTO_INC 11
#define H_SEL_R 10
#define H_SEL_G 9
#define H_SEL_B 8
#define HADR_MSB 7 //7:0
#define HADR 0 //7:0
#define GAMMA_VCOM_HSWITCH_ADDR (0x1483)
#define P_GAMMA_VCOM_HSWITCH_ADDR (volatile unsigned int *)((0x1483 << 2) + 0xff900000)
#define RGB_BASE_ADDR (0x1485)
#define P_RGB_BASE_ADDR (volatile unsigned int *)((0x1485 << 2) + 0xff900000)
#define RGB_COEFF_ADDR (0x1486)
#define P_RGB_COEFF_ADDR (volatile unsigned int *)((0x1486 << 2) + 0xff900000)
#define POL_CNTL_ADDR (0x1487)
#define P_POL_CNTL_ADDR (volatile unsigned int *)((0x1487 << 2) + 0xff900000)
#define DCLK_SEL 14 //FOR DCLK OUTPUT
#define TCON_VSYNC_SEL_DVI 11 //FOR RGB format DVI output
#define TCON_HSYNC_SEL_DVI 10 //FOR RGB format DVI output
#define TCON_DE_SEL_DVI 9 //FOR RGB format DVI output
#define CPH3_POL 8
#define CPH2_POL 7
#define CPH1_POL 6
#define TCON_DE_SEL 5
#define TCON_VS_SEL 4
#define TCON_HS_SEL 3
#define DE_POL 2
#define VS_POL 1
#define HS_POL 0
#define DITH_CNTL_ADDR (0x1488)
#define P_DITH_CNTL_ADDR (volatile unsigned int *)((0x1488 << 2) + 0xff900000)
#define DITH10_EN 10
#define DITH8_EN 9
#define DITH_MD 8
#define DITH10_CNTL_MSB 7 //7:4
#define DITH10_CNTL 4 //7:4
#define DITH8_CNTL_MSB 3 //3:0
#define DITH8_CNTL 0 //3:0
//Bit 1 highlight_en
//Bit 0 probe_en
#define GAMMA_PROBE_CTRL (0x1489)
#define P_GAMMA_PROBE_CTRL (volatile unsigned int *)((0x1489 << 2) + 0xff900000)
//read only
//Bit [15:0] probe_color[15:0]
#define GAMMA_PROBE_COLOR_L (0x148a)
#define P_GAMMA_PROBE_COLOR_L (volatile unsigned int *)((0x148a << 2) + 0xff900000)
//Read only
//Bit 15: if true valid probed color
//Bit [13:0] probe_color[29:16]
#define GAMMA_PROBE_COLOR_H (0x148b)
#define P_GAMMA_PROBE_COLOR_H (volatile unsigned int *)((0x148b << 2) + 0xff900000)
//bit 15:0, 5:6:5 color
#define GAMMA_PROBE_HL_COLOR (0x148c)
#define P_GAMMA_PROBE_HL_COLOR (volatile unsigned int *)((0x148c << 2) + 0xff900000)
//12:0 pos_x
#define GAMMA_PROBE_POS_X (0x148d)
#define P_GAMMA_PROBE_POS_X (volatile unsigned int *)((0x148d << 2) + 0xff900000)
//12:0 pos_y
#define GAMMA_PROBE_POS_Y (0x148e)
#define P_GAMMA_PROBE_POS_Y (volatile unsigned int *)((0x148e << 2) + 0xff900000)
#define STH1_HS_ADDR (0x1490)
#define P_STH1_HS_ADDR (volatile unsigned int *)((0x1490 << 2) + 0xff900000)
#define STH1_HE_ADDR (0x1491)
#define P_STH1_HE_ADDR (volatile unsigned int *)((0x1491 << 2) + 0xff900000)
#define STH1_VS_ADDR (0x1492)
#define P_STH1_VS_ADDR (volatile unsigned int *)((0x1492 << 2) + 0xff900000)
#define STH1_VE_ADDR (0x1493)
#define P_STH1_VE_ADDR (volatile unsigned int *)((0x1493 << 2) + 0xff900000)
#define STH2_HS_ADDR (0x1494)
#define P_STH2_HS_ADDR (volatile unsigned int *)((0x1494 << 2) + 0xff900000)
#define STH2_HE_ADDR (0x1495)
#define P_STH2_HE_ADDR (volatile unsigned int *)((0x1495 << 2) + 0xff900000)
#define STH2_VS_ADDR (0x1496)
#define P_STH2_VS_ADDR (volatile unsigned int *)((0x1496 << 2) + 0xff900000)
#define STH2_VE_ADDR (0x1497)
#define P_STH2_VE_ADDR (volatile unsigned int *)((0x1497 << 2) + 0xff900000)
#define OEH_HS_ADDR (0x1498)
#define P_OEH_HS_ADDR (volatile unsigned int *)((0x1498 << 2) + 0xff900000)
#define OEH_HE_ADDR (0x1499)
#define P_OEH_HE_ADDR (volatile unsigned int *)((0x1499 << 2) + 0xff900000)
#define OEH_VS_ADDR (0x149a)
#define P_OEH_VS_ADDR (volatile unsigned int *)((0x149a << 2) + 0xff900000)
#define OEH_VE_ADDR (0x149b)
#define P_OEH_VE_ADDR (volatile unsigned int *)((0x149b << 2) + 0xff900000)
#define VCOM_HSWITCH_ADDR (0x149c)
#define P_VCOM_HSWITCH_ADDR (volatile unsigned int *)((0x149c << 2) + 0xff900000)
#define VCOM_VS_ADDR (0x149d)
#define P_VCOM_VS_ADDR (volatile unsigned int *)((0x149d << 2) + 0xff900000)
#define VCOM_VE_ADDR (0x149e)
#define P_VCOM_VE_ADDR (volatile unsigned int *)((0x149e << 2) + 0xff900000)
#define CPV1_HS_ADDR (0x149f)
#define P_CPV1_HS_ADDR (volatile unsigned int *)((0x149f << 2) + 0xff900000)
#define CPV1_HE_ADDR (0x14a0)
#define P_CPV1_HE_ADDR (volatile unsigned int *)((0x14a0 << 2) + 0xff900000)
#define CPV1_VS_ADDR (0x14a1)
#define P_CPV1_VS_ADDR (volatile unsigned int *)((0x14a1 << 2) + 0xff900000)
#define CPV1_VE_ADDR (0x14a2)
#define P_CPV1_VE_ADDR (volatile unsigned int *)((0x14a2 << 2) + 0xff900000)
#define CPV2_HS_ADDR (0x14a3)
#define P_CPV2_HS_ADDR (volatile unsigned int *)((0x14a3 << 2) + 0xff900000)
#define CPV2_HE_ADDR (0x14a4)
#define P_CPV2_HE_ADDR (volatile unsigned int *)((0x14a4 << 2) + 0xff900000)
#define CPV2_VS_ADDR (0x14a5)
#define P_CPV2_VS_ADDR (volatile unsigned int *)((0x14a5 << 2) + 0xff900000)
#define CPV2_VE_ADDR (0x14a6)
#define P_CPV2_VE_ADDR (volatile unsigned int *)((0x14a6 << 2) + 0xff900000)
#define STV1_HS_ADDR (0x14a7)
#define P_STV1_HS_ADDR (volatile unsigned int *)((0x14a7 << 2) + 0xff900000)
#define STV1_HE_ADDR (0x14a8)
#define P_STV1_HE_ADDR (volatile unsigned int *)((0x14a8 << 2) + 0xff900000)
#define STV1_VS_ADDR (0x14a9)
#define P_STV1_VS_ADDR (volatile unsigned int *)((0x14a9 << 2) + 0xff900000)
#define STV1_VE_ADDR (0x14aa)
#define P_STV1_VE_ADDR (volatile unsigned int *)((0x14aa << 2) + 0xff900000)
#define STV2_HS_ADDR (0x14ab)
#define P_STV2_HS_ADDR (volatile unsigned int *)((0x14ab << 2) + 0xff900000)
#define STV2_HE_ADDR (0x14ac)
#define P_STV2_HE_ADDR (volatile unsigned int *)((0x14ac << 2) + 0xff900000)
#define STV2_VS_ADDR (0x14ad)
#define P_STV2_VS_ADDR (volatile unsigned int *)((0x14ad << 2) + 0xff900000)
#define STV2_VE_ADDR (0x14ae)
#define P_STV2_VE_ADDR (volatile unsigned int *)((0x14ae << 2) + 0xff900000)
#define OEV1_HS_ADDR (0x14af)
#define P_OEV1_HS_ADDR (volatile unsigned int *)((0x14af << 2) + 0xff900000)
#define OEV1_HE_ADDR (0x14b0)
#define P_OEV1_HE_ADDR (volatile unsigned int *)((0x14b0 << 2) + 0xff900000)
#define OEV1_VS_ADDR (0x14b1)
#define P_OEV1_VS_ADDR (volatile unsigned int *)((0x14b1 << 2) + 0xff900000)
#define OEV1_VE_ADDR (0x14b2)
#define P_OEV1_VE_ADDR (volatile unsigned int *)((0x14b2 << 2) + 0xff900000)
#define OEV2_HS_ADDR (0x14b3)
#define P_OEV2_HS_ADDR (volatile unsigned int *)((0x14b3 << 2) + 0xff900000)
#define OEV2_HE_ADDR (0x14b4)
#define P_OEV2_HE_ADDR (volatile unsigned int *)((0x14b4 << 2) + 0xff900000)
#define OEV2_VS_ADDR (0x14b5)
#define P_OEV2_VS_ADDR (volatile unsigned int *)((0x14b5 << 2) + 0xff900000)
#define OEV2_VE_ADDR (0x14b6)
#define P_OEV2_VE_ADDR (volatile unsigned int *)((0x14b6 << 2) + 0xff900000)
#define OEV3_HS_ADDR (0x14b7)
#define P_OEV3_HS_ADDR (volatile unsigned int *)((0x14b7 << 2) + 0xff900000)
#define OEV3_HE_ADDR (0x14b8)
#define P_OEV3_HE_ADDR (volatile unsigned int *)((0x14b8 << 2) + 0xff900000)
#define OEV3_VS_ADDR (0x14b9)
#define P_OEV3_VS_ADDR (volatile unsigned int *)((0x14b9 << 2) + 0xff900000)
#define OEV3_VE_ADDR (0x14ba)
#define P_OEV3_VE_ADDR (volatile unsigned int *)((0x14ba << 2) + 0xff900000)
#define LCD_PWR_ADDR (0x14bb)
#define P_LCD_PWR_ADDR (volatile unsigned int *)((0x14bb << 2) + 0xff900000)
#define LCD_VDD 5
#define LCD_VBL 4
#define LCD_GPI_MSB 3
#define LCD_GPIO 0
#define LCD_PWM0_LO_ADDR (0x14bc)
#define P_LCD_PWM0_LO_ADDR (volatile unsigned int *)((0x14bc << 2) + 0xff900000)
#define LCD_PWM0_HI_ADDR (0x14bd)
#define P_LCD_PWM0_HI_ADDR (volatile unsigned int *)((0x14bd << 2) + 0xff900000)
#define LCD_PWM1_LO_ADDR (0x14be)
#define P_LCD_PWM1_LO_ADDR (volatile unsigned int *)((0x14be << 2) + 0xff900000)
#define LCD_PWM1_HI_ADDR (0x14bf)
#define P_LCD_PWM1_HI_ADDR (volatile unsigned int *)((0x14bf << 2) + 0xff900000)
#define INV_CNT_ADDR (0x14c0)
#define P_INV_CNT_ADDR (volatile unsigned int *)((0x14c0 << 2) + 0xff900000)
#define INV_EN 4
#define INV_CNT_MSB 3
#define INV_CNT 0
#define TCON_MISC_SEL_ADDR (0x14c1)
#define P_TCON_MISC_SEL_ADDR (volatile unsigned int *)((0x14c1 << 2) + 0xff900000)
#define STH2_SEL 12
#define STH1_SEL 11
#define OEH_SEL 10
#define VCOM_SEL 9
#define DB_LINE_SW 8
#define CPV2_SEL 7
#define CPV1_SEL 6
#define STV2_SEL 5
#define STV1_SEL 4
#define OEV_UNITE 3
#define OEV3_SEL 2
#define OEV2_SEL 1
#define OEV1_SEL 0
#define DUAL_PORT_CNTL_ADDR (0x14c2)
#define P_DUAL_PORT_CNTL_ADDR (volatile unsigned int *)((0x14c2 << 2) + 0xff900000)
#define OUTPUT_YUV 15
#define DUAL_IDF 12 // 14:12
#define DUAL_ISF 9 // 11:9
#define LCD_ANALOG_SEL_CPH3 8
#define LCD_ANALOG_3PHI_CLK_SEL 7
#define LCD_LVDS_SEL54 6
#define LCD_LVDS_SEL27 5
#define LCD_TTL_SEL 4
#define DUAL_LVDC_EN 3
#define PORT_SWP 2
#define RGB_SWP 1
#define BIT_SWP 0
#define MLVDS_CONTROL (0x14c3)
#define P_MLVDS_CONTROL (volatile unsigned int *)((0x14c3 << 2) + 0xff900000)
#define mLVDS_RESERVED 15 // 15
#define mLVDS_double_pattern 14 // 14
#define mLVDS_ins_reset 8 // 13:8 // each channel has one bit
#define mLVDS_dual_gate 7
#define mLVDS_bit_num 6 // 0-6Bits, 1-8Bits
#define mLVDS_pair_num 5 // 0-3Pairs, 1-6Pairs
#define mLVDS_msb_first 4
#define mLVDS_PORT_SWAP 3
#define mLVDS_MLSB_SWAP 2
#define mLVDS_PN_SWAP 1
#define mLVDS_en 0
#define MLVDS_RESET_PATTERN_HI (0x14c4)
#define P_MLVDS_RESET_PATTERN_HI (volatile unsigned int *)((0x14c4 << 2) + 0xff900000)
#define MLVDS_RESET_PATTERN_LO (0x14c5)
#define P_MLVDS_RESET_PATTERN_LO (volatile unsigned int *)((0x14c5 << 2) + 0xff900000)
#define mLVDS_reset_pattern 0 // Bit 47:16
#define MLVDS_RESET_PATTERN_EXT (0x14c6)
#define P_MLVDS_RESET_PATTERN_EXT (volatile unsigned int *)((0x14c6 << 2) + 0xff900000)
#define mLVDS_reset_pattern_ext 0 // Bit 15:0
#define MLVDS_CONFIG_HI (0x14c7)
#define P_MLVDS_CONFIG_HI (volatile unsigned int *)((0x14c7 << 2) + 0xff900000)
#define MLVDS_CONFIG_LO (0x14c8)
#define P_MLVDS_CONFIG_LO (volatile unsigned int *)((0x14c8 << 2) + 0xff900000)
#define mLVDS_reset_offset 29 // Bit 31:29
#define mLVDS_reset_length 23 // Bit 28:23
#define mLVDS_config_reserved 20 // Bit 22:20
#define mLVDS_reset_start_bit12 19 // Bit 19
#define mLVDS_data_write_toggle 18
#define mLVDS_data_write_ini 17
#define mLVDS_data_latch_1_toggle 16
#define mLVDS_data_latch_1_ini 15
#define mLVDS_data_latch_0_toggle 14
#define mLVDS_data_latch_0_ini 13
#define mLVDS_reset_1_select 12 // 0 - same as reset_0, 1 - 1 clock delay of reset_0
#define mLVDS_reset_start 0 // Bit 11:0
#define TCON_DOUBLE_CTL (0x14c9)
#define P_TCON_DOUBLE_CTL (volatile unsigned int *)((0x14c9 << 2) + 0xff900000)
#define tcon_double_ini 8 // Bit 7:0
#define tcon_double_inv 0 // Bit 7:0
#define TCON_PATTERN_HI (0x14ca)
#define P_TCON_PATTERN_HI (volatile unsigned int *)((0x14ca << 2) + 0xff900000)
#define TCON_PATTERN_LO (0x14cb)
#define P_TCON_PATTERN_LO (volatile unsigned int *)((0x14cb << 2) + 0xff900000)
#define tcon_pattern_loop_data 16 // Bit 15:0
#define tcon_pattern_loop_start 12 // Bit 3:0
#define tcon_pattern_loop_end 8 // Bit 3:0
#define tcon_pattern_enable 0 // Bit 7:0
#define TCON_CONTROL_HI (0x14cc)
#define P_TCON_CONTROL_HI (volatile unsigned int *)((0x14cc << 2) + 0xff900000)
#define TCON_CONTROL_LO (0x14cd)
#define P_TCON_CONTROL_LO (volatile unsigned int *)((0x14cd << 2) + 0xff900000)
#define tcon_pclk_enable 26 // Bit 5:0 (enable pclk on TCON channel 7 to 2)
#define tcon_pclk_div 24 // Bit 1:0 (control phy clok divide 2,4,6,8)
#define tcon_delay 0 // Bit 23:0 (3 bit for each channel)
#define LVDS_BLANK_DATA_HI (0x14ce)
#define P_LVDS_BLANK_DATA_HI (volatile unsigned int *)((0x14ce << 2) + 0xff900000)
#define LVDS_BLANK_DATA_LO (0x14cf)
#define P_LVDS_BLANK_DATA_LO (volatile unsigned int *)((0x14cf << 2) + 0xff900000)
#define LVDS_blank_data_reserved 30 // 31:30
#define LVDS_blank_data_r 20 // 29:20
#define LVDS_blank_data_g 10 // 19:10
#define LVDS_blank_data_b 0 // 9:0
#define LVDS_PACK_CNTL_ADDR (0x14d0)
#define P_LVDS_PACK_CNTL_ADDR (volatile unsigned int *)((0x14d0 << 2) + 0xff900000)
#define LVDS_USE_TCON 7
#define LVDS_DUAL 6
#define PN_SWP 5
#define LSB_FIRST 4
#define LVDS_RESV 3
#define ODD_EVEN_SWP 2
#define LVDS_REPACK 0
// New from M3 :
// Bit 15:12 -- Enable OFFSET Double Generate(TOCN7-TCON4)
// Bit 11:0 -- de_hs(old tcon) second offset_hs (new tcon)
#define DE_HS_ADDR (0x14d1)
#define P_DE_HS_ADDR (volatile unsigned int *)((0x14d1 << 2) + 0xff900000)
// New from M3 :
// Bit 15:12 -- Enable OFFSET Double Generate(TOCN3-TCON0)
#define DE_HE_ADDR (0x14d2)
#define P_DE_HE_ADDR (volatile unsigned int *)((0x14d2 << 2) + 0xff900000)
#define DE_VS_ADDR (0x14d3)
#define P_DE_VS_ADDR (volatile unsigned int *)((0x14d3 << 2) + 0xff900000)
#define DE_VE_ADDR (0x14d4)
#define P_DE_VE_ADDR (volatile unsigned int *)((0x14d4 << 2) + 0xff900000)
#define HSYNC_HS_ADDR (0x14d5)
#define P_HSYNC_HS_ADDR (volatile unsigned int *)((0x14d5 << 2) + 0xff900000)
#define HSYNC_HE_ADDR (0x14d6)
#define P_HSYNC_HE_ADDR (volatile unsigned int *)((0x14d6 << 2) + 0xff900000)
#define HSYNC_VS_ADDR (0x14d7)
#define P_HSYNC_VS_ADDR (volatile unsigned int *)((0x14d7 << 2) + 0xff900000)
#define HSYNC_VE_ADDR (0x14d8)
#define P_HSYNC_VE_ADDR (volatile unsigned int *)((0x14d8 << 2) + 0xff900000)
#define VSYNC_HS_ADDR (0x14d9)
#define P_VSYNC_HS_ADDR (volatile unsigned int *)((0x14d9 << 2) + 0xff900000)
#define VSYNC_HE_ADDR (0x14da)
#define P_VSYNC_HE_ADDR (volatile unsigned int *)((0x14da << 2) + 0xff900000)
#define VSYNC_VS_ADDR (0x14db)
#define P_VSYNC_VS_ADDR (volatile unsigned int *)((0x14db << 2) + 0xff900000)
#define VSYNC_VE_ADDR (0x14dc)
#define P_VSYNC_VE_ADDR (volatile unsigned int *)((0x14dc << 2) + 0xff900000)
// bit 8 -- vfifo_mcu_enable
// bit 7 -- halt_vs_de
// bit 6 -- R8G8B8_format
// bit 5 -- R6G6B6_format (round to 6 bits)
// bit 4 -- R5G6B5_format
// bit 3 -- dac_dith_sel
// bit 2 -- lcd_mcu_enable_de -- ReadOnly
// bit 1 -- lcd_mcu_enable_vsync -- ReadOnly
// bit 0 -- lcd_mcu_enable
#define LCD_MCU_CTL (0x14dd)
#define P_LCD_MCU_CTL (volatile unsigned int *)((0x14dd << 2) + 0xff900000)
// ReadOnly
// R5G6B5 when R5G6B5_format
// G8R8 when R8G8B8_format
// G5R10 Other
#define LCD_MCU_DATA_0 (0x14de)
#define P_LCD_MCU_DATA_0 (volatile unsigned int *)((0x14de << 2) + 0xff900000)
// ReadOnly
// G8B8 when R8G8B8_format
// G5B10 Other
#define LCD_MCU_DATA_1 (0x14df)
#define P_LCD_MCU_DATA_1 (volatile unsigned int *)((0x14df << 2) + 0xff900000)
// LVDS
#define LVDS_GEN_CNTL (0x14e0)
#define P_LVDS_GEN_CNTL (volatile unsigned int *)((0x14e0 << 2) + 0xff900000)
#define LVDS_PHY_CNTL0 (0x14e1)
#define P_LVDS_PHY_CNTL0 (volatile unsigned int *)((0x14e1 << 2) + 0xff900000)
#define LVDS_PHY_CNTL1 (0x14e2)
#define P_LVDS_PHY_CNTL1 (volatile unsigned int *)((0x14e2 << 2) + 0xff900000)
#define LVDS_PHY_CNTL2 (0x14e3)
#define P_LVDS_PHY_CNTL2 (volatile unsigned int *)((0x14e3 << 2) + 0xff900000)
#define LVDS_PHY_CNTL3 (0x14e4)
#define P_LVDS_PHY_CNTL3 (volatile unsigned int *)((0x14e4 << 2) + 0xff900000)
#define LVDS_PHY_CNTL4 (0x14e5)
#define P_LVDS_PHY_CNTL4 (volatile unsigned int *)((0x14e5 << 2) + 0xff900000)
#define LVDS_PHY_CNTL5 (0x14e6)
#define P_LVDS_PHY_CNTL5 (volatile unsigned int *)((0x14e6 << 2) + 0xff900000)
#define LVDS_SRG_TEST (0x14e8)
#define P_LVDS_SRG_TEST (volatile unsigned int *)((0x14e8 << 2) + 0xff900000)
#define LVDS_BIST_MUX0 (0x14e9)
#define P_LVDS_BIST_MUX0 (volatile unsigned int *)((0x14e9 << 2) + 0xff900000)
#define LVDS_BIST_MUX1 (0x14ea)
#define P_LVDS_BIST_MUX1 (volatile unsigned int *)((0x14ea << 2) + 0xff900000)
#define LVDS_BIST_FIXED0 (0x14eb)
#define P_LVDS_BIST_FIXED0 (volatile unsigned int *)((0x14eb << 2) + 0xff900000)
#define LVDS_BIST_FIXED1 (0x14ec)
#define P_LVDS_BIST_FIXED1 (volatile unsigned int *)((0x14ec << 2) + 0xff900000)
#define LVDS_BIST_CNTL0 (0x14ed)
#define P_LVDS_BIST_CNTL0 (volatile unsigned int *)((0x14ed << 2) + 0xff900000)
#define LVDS_CLKB_CLKA (0x14ee)
#define P_LVDS_CLKB_CLKA (volatile unsigned int *)((0x14ee << 2) + 0xff900000)
#define LVDS_PHY_CLK_CNTL (0x14ef)
#define P_LVDS_PHY_CLK_CNTL (volatile unsigned int *)((0x14ef << 2) + 0xff900000)
#define LVDS_SER_EN (0x14f0)
#define P_LVDS_SER_EN (volatile unsigned int *)((0x14f0 << 2) + 0xff900000)
#define LVDS_PHY_CNTL6 (0x14f1)
#define P_LVDS_PHY_CNTL6 (volatile unsigned int *)((0x14f1 << 2) + 0xff900000)
#define LVDS_PHY_CNTL7 (0x14f2)
#define P_LVDS_PHY_CNTL7 (volatile unsigned int *)((0x14f2 << 2) + 0xff900000)
#define LVDS_PHY_CNTL8 (0x14f3)
#define P_LVDS_PHY_CNTL8 (volatile unsigned int *)((0x14f3 << 2) + 0xff900000)
//`define MLVDS_CLK_CTL0_HI 8'hf4
//`define MLVDS_CLK_CTL0_LO 8'hf5
// `define mlvds_clk_pattern_reserved 31 // Bit 31
// `define mpclk_dly 28 // Bit 2:0
// `define mpclk_div 26 // Bit 1:0 (control phy clok divide 2,4,6,8)
// `define use_mpclk 25 // Bit 0
// `define mlvds_clk_half_delay 24 // Bit 0
// `define mlvds_clk_pattern 0 // Bit 23:0
//`define MLVDS_DUAL_GATE_WR_START 8'hf6
// `define mlvds_dual_gate_wr_start 0 // Bit 12:0
//`define MLVDS_DUAL_GATE_WR_END 8'hf7
// `define mlvds_dual_gate_wr_end 0 // Bit 12:0
//
//`define MLVDS_DUAL_GATE_RD_START 8'hf8
// `define mlvds_dual_gate_rd_start 0 // Bit 12:0
//`define MLVDS_DUAL_GATE_RD_END 8'hf9
// `define mlvds_dual_gate_rd_end 0 // Bit 12:0
//`define MLVDS_SECOND_RESET_CTL 8'hfa
// `define mLVDS_2nd_reset_start 0 // Bit 12:0
//
#define MLVDS_DUAL_GATE_CTL_HI (0x14fb)
#define P_MLVDS_DUAL_GATE_CTL_HI (volatile unsigned int *)((0x14fb << 2) + 0xff900000)
#define MLVDS_DUAL_GATE_CTL_LO (0x14fc)
#define P_MLVDS_DUAL_GATE_CTL_LO (volatile unsigned int *)((0x14fc << 2) + 0xff900000)
// `define mlvds_tcon_field_en 24 // Bit 7:0
// `define mlvds_dual_gate_reserved 21 // Bit 2:0
// `define mlvds_scan_mode_start_line_bit12 20 // Bit 0
// `define mlvds_scan_mode_odd 16 // Bit 3:0
// `define mlvds_scan_mode_even 12 // Bit 3:0
// `define mlvds_scan_mode_start_line 0 // Bit 11:0
//
//`define MLVDS_RESET_CONFIG_HI 8'hfd
//`define MLVDS_RESET_CONFIG_LO 8'hfe
// `define mLVDS_reset_range_enable 31 // Bit 0
// `define mLVDS_reset_range_inv 30 // Bit 0
// `define mLVDS_reset_config_res1 29 // Bit 0
// `define mLVDS_reset_range_line_0 16 // Bit 11:0
// `define mLVDS_reset_config_res3 13 // Bit 2:0
// `define mLVDS_reset_range_line_1 0 // Bit 11:0
//===============================================================
//LCD DRIVER BASE END
//===============================================================
//
// Closing file: lcd_regs.h
//
//`define MAD_VCBUS_BASE 8'h17
//
// Reading file: mad_regs.h
//
//DEINTERLACE module start from 8'h90 end to 8'hff
// -----------------------------------------------
// CBUS_BASE: MAD_VCBUS_BASE = 0x17
// -----------------------------------------------
#define DI_PRE_CTRL (0x1700)
#define P_DI_PRE_CTRL (volatile unsigned int *)((0x1700 << 2) + 0xff900000)
// bit 31, cbus_pre_frame_rst
// bit 30, cbus_pre_soft_rst
// bit 29, pre_field_num
// bit 27:26, mode_444c422
// bit 25, di_cont_read_en
// bit 24:23, mode_422c444
// bit 22, mtn_after_nr
// bit 21:16, pre_hold_fifo_lines
// bit 15, nr_wr_by
// bit 14, use_vdin_go_line
// bit 13, di_prevdin_en
// bit 12, di_pre_viu_link
// bit 11, di_pre_repeat
// bit 10, di_pre_drop_1st
// bit 9, di_buf2_en
// bit 8, di_chan2_en
// bit 7, prenr_hist_en
// bit 6, chan2_hist_en
// bit 5, hist_check_en
// bit 4, check_after_nr
// bit 3, check222p_en
// bit 2, check322p_en
// bit 1, mtn_en
// bit 0, nr_en
#define DI_POST_CTRL (0x1701)
#define P_DI_POST_CTRL (volatile unsigned int *)((0x1701 << 2) + 0xff900000)
// bit 31, cbus_post_frame_rst
// bit 30, cbus_post_soft_rst
// bit 29, post_field_num
// bit 21:16, post_hold_fifo_lines
// bit 13, prepost_link
// bit 12, di_post_viu_link
// bit 11, di_post_repeat
// bit 10, di_post_drop_1st
// bit 9, mif0_to_vpp_en
// bit 8, di_vpp_out_en
// bit 7, di_wr_bk_en
// bit 6, di_mux_en
// bit 5, di_blend_en
// bit 4, di_mtnp_read_en
// bit 3, di_mtn_buf_en
// bit 2, di_ei_en
// bit 1, di_buf1_en
// bit 0, di_buf0_en
#define DI_POST_SIZE (0x1702)
#define P_DI_POST_SIZE (volatile unsigned int *)((0x1702 << 2) + 0xff900000)
//bit 28:16, vsize1post
//bit 12:0, hsize1post
#define DI_PRE_SIZE (0x1703)
#define P_DI_PRE_SIZE (volatile unsigned int *)((0x1703 << 2) + 0xff900000)
//bit 28:16, vsize1pre
//bit 12:0, hsize1pre
#define DI_EI_CTRL0 (0x1704)
#define P_DI_EI_CTRL0 (volatile unsigned int *)((0x1704 << 2) + 0xff900000)
//bit 23:16, ei0_filter[2:+] abs_diff_left>filter && ...right>filter && ...top>filter && ...bot>filter -> filter
//bit 15:8, ei0_threshold[2:+]
//bit 3, ei0_vertical
//bit 2, ei0_bpscf2
//bit 1, ei0_bpsfar1
#define DI_EI_CTRL1 (0x1705)
#define P_DI_EI_CTRL1 (volatile unsigned int *)((0x1705 << 2) + 0xff900000)
//bit 31:24, ei0_diff
//bit 23:16, ei0_angle45
//bit 15:8, ei0_peak
//bit 7:0, ei0_cross
#define DI_EI_CTRL2 (0x1706)
#define P_DI_EI_CTRL2 (volatile unsigned int *)((0x1706 << 2) + 0xff900000)
//bit 31:24, ei0_close2
//bit 23:16, ei0_close1
//bit 15:8, ei0_far2
//bit 7:0, ei0_far1
#define DI_NR_CTRL0 (0x1707)
#define P_DI_NR_CTRL0 (volatile unsigned int *)((0x1707 << 2) + 0xff900000)
//bit 26, nr_cue_en
//bit 25, nr2_en
#define DI_NR_CTRL1 (0x1708)
#define P_DI_NR_CTRL1 (volatile unsigned int *)((0x1708 << 2) + 0xff900000)
//bit 31:30, mot_p1txtcore_mode
//bit 29:24, mot_p1txtcore_clmt
//bit 21:16, mot_p1txtcore_ylmt
//bit 15:8, mot_p1txtcore_crate
//bit 7:0, mot_p1txtcore_yrate
#define DI_NR_CTRL2 (0x1709)
#define P_DI_NR_CTRL2 (volatile unsigned int *)((0x1709 << 2) + 0xff900000)
//bit 29:24, mot_curtxtcore_clmt
//bit 21:16, mot_curtxtcore_ylmt
//bit 15:8, mot_curtxtcore_crate
//bit 7:0, mot_curtxtcore_yrate
//`define DI_NR_CTRL3 8'h0a
//no use
//`define DI_MTN_CTRL 8'h0b
//no use
#define DI_CANVAS_URGENT0 (0x170a)
#define P_DI_CANVAS_URGENT0 (volatile unsigned int *)((0x170a << 2) + 0xff900000)
#define DI_CANVAS_URGENT1 (0x170b)
#define P_DI_CANVAS_URGENT1 (volatile unsigned int *)((0x170b << 2) + 0xff900000)
#define DI_MTN_CTRL1 (0x170c)
#define P_DI_MTN_CTRL1 (volatile unsigned int *)((0x170c << 2) + 0xff900000)
//bit 13 , me enable
//bit 12 , me autoenable
//bit 11:8, mtn_paramtnthd
//bit 7:0, mtn_parafltthd
#define DI_BLEND_CTRL (0x170d)
#define P_DI_BLEND_CTRL (volatile unsigned int *)((0x170d << 2) + 0xff900000)
//bit 31, blend_1_en
//bit 30, blend_mtn_lpf
//bit 28, post_mb_en
//bit 27, blend_mtn3p_max
//bit 26, blend_mtn3p_min
//bit 25, blend_mtn3p_ave
//bit 24, blend_mtn3p_maxtb
//bit 23, blend_mtn_flt_en
//bit 22, blend_data_flt_en
//bit 21:20, blend_top_mode
//bit 19, blend_reg3_enable
//bit 18, blend_reg2_enable
//bit 17, blend_reg1_enable
//bit 16, blend_reg0_enable
//bit 15:14, blend_reg3_mode
//bit 13:12, blend_reg2_mode
//bit 11:10, blend_reg1_mode
//bit 9:8, blend_reg0_mode
//bit 7:0, kdeint
//`define DI_BLEND_CTRL1 8'h0e
//no use
#define DI_CANVAS_URGENT2 (0x170e)
#define P_DI_CANVAS_URGENT2 (volatile unsigned int *)((0x170e << 2) + 0xff900000)
//`define DI_BLEND_CTRL2 8'h0f
//no use
#define DI_ARB_CTRL (0x170f)
#define P_DI_ARB_CTRL (volatile unsigned int *)((0x170f << 2) + 0xff900000)
//bit 31:26, di_arb_thd1
//bit 25:20, di_arb_thd0
//bit 19, di_arb_tid_mode
//bit 18, di_arb_arb_mode
//bit 17, di_arb_acq_en
//bit 16, di_arb_disable_clk
//bit 15:0, di_arb_req_en
#define DI_BLEND_REG0_X (0x1710)
#define P_DI_BLEND_REG0_X (volatile unsigned int *)((0x1710 << 2) + 0xff900000)
//bit 27:16, blend_reg0_startx
//bit 11:0, blend_reg0_endx
#define DI_BLEND_REG0_Y (0x1711)
#define P_DI_BLEND_REG0_Y (volatile unsigned int *)((0x1711 << 2) + 0xff900000)
#define DI_BLEND_REG1_X (0x1712)
#define P_DI_BLEND_REG1_X (volatile unsigned int *)((0x1712 << 2) + 0xff900000)
#define DI_BLEND_REG1_Y (0x1713)
#define P_DI_BLEND_REG1_Y (volatile unsigned int *)((0x1713 << 2) + 0xff900000)
#define DI_BLEND_REG2_X (0x1714)
#define P_DI_BLEND_REG2_X (volatile unsigned int *)((0x1714 << 2) + 0xff900000)
#define DI_BLEND_REG2_Y (0x1715)
#define P_DI_BLEND_REG2_Y (volatile unsigned int *)((0x1715 << 2) + 0xff900000)
#define DI_BLEND_REG3_X (0x1716)
#define P_DI_BLEND_REG3_X (volatile unsigned int *)((0x1716 << 2) + 0xff900000)
#define DI_BLEND_REG3_Y (0x1717)
#define P_DI_BLEND_REG3_Y (volatile unsigned int *)((0x1717 << 2) + 0xff900000)
#define DI_CLKG_CTRL (0x1718)
#define P_DI_CLKG_CTRL (volatile unsigned int *)((0x1718 << 2) + 0xff900000)
//bit 31:24, pre_gclk_ctrl no clk gate control. if ==1, module clk is not gated (always on). [3] for pulldown,[2] for mtn_1,[1] for mtn_0,[0] for nr
//bit 23:16, post_gclk_ctrl no clk gate control. [4] for ei_1, [3] for ei_0,[2] for ei_top, [1] for blend_1, [0] for blend_0
//bit 1, di_gate_all clk shut down. if ==1 , all di clock shut down
//bit 0, di_no_clk_gate no clk gate control. if di_gated_all==0 and di_no_clk_gate ==1, all di clock is always working.
#define DI_EI_CTRL3 (0x1719)
#define P_DI_EI_CTRL3 (volatile unsigned int *)((0x1719 << 2) + 0xff900000)
//bit 31, reg_ei_1
//bit 30, reg_demon_en
//bit 26:24, reg_demon_mux
//bit 23:20, reg_right_win
//bit 19:16, reg_left_win
//bit 7:4, reg_ei_sadm_quatize_margin
//bit 1:0, reg_ei_sad_relative_mode
#define DI_EI_CTRL4 (0x171a)
#define P_DI_EI_CTRL4 (volatile unsigned int *)((0x171a << 2) + 0xff900000)
//bit 29, reg_ei_caldrt_ambliike2_biasvertical
//bit 28:24, reg_ei_caldrt_addxla2list_drtmax
//bit 22:20, reg_ei_caldrt_addxla2list_signm0th
//bit 19, reg_ei_caldrt_addxla2list_mode
//bit 18:16, reg_ei_signm_sad_cor_rate
//bit 15:12, reg_ei_signm_sadi_cor_rate
//bit 11:6, reg_ei_signm_sadi_cor_ofst
//bit 5:0, reg_ei_signm_sad_ofst
#define DI_EI_CTRL5 (0x171b)
#define P_DI_EI_CTRL5 (volatile unsigned int *)((0x171b << 2) + 0xff900000)
//bit 30:28, reg_ei_caldrt_cnflcctchk_frcverthrd
//bit 26:24, reg_ei_caldrt_cnflctchk_mg
//bit 23:22, reg_ei_caldrt_cnflctchk_ws
//bit 21, reg_ei_caldrt_cnflctchk_en
//bit 20, reg_ei_caldrt_verfrc_final_en
//bit 19, reg_ei_caldrt_verfrc_retimflt_en
//bit 18:16, reg_ei_caldrt_verftc_eithratemth
//bit 15, reg_ei_caldrt_verfrc_retiming_en
//bit 14:12, reg_ei_caldrt_verfrc_bothratemth
//bit 11:9, reg_ei_caldrt_ver_thrd
//bit 8:4, reg_ei_caldrt_addxla2list_drtmin
//bit 3:0, reg_ei_caldrt_addxla2list_drtlimit
#define DI_EI_CTRL6 (0x171c)
#define P_DI_EI_CTRL6 (volatile unsigned int *)((0x171c << 2) + 0xff900000)
//bit 31:24, reg_ei_caldrt_abext_sad12thhig
//bit 23:16, reg_ei_caldrt_abext_sad00thlow
//bit 15:8, reg_ei_caldrt_abext_sad12thlow
//bit 6:4, reg_ei_caldrt_abext_ratemth
//bit 2:0, reg_ei_caldrt_abext_drtthrd
#define DI_EI_CTRL7 (0x171d)
#define P_DI_EI_CTRL7 (volatile unsigned int *)((0x171d << 2) + 0xff900000)
//bit 29, reg_ei_caldrt_xlanopeak_codien
//bit 28:24, reg_ei_caldrt_xlanopeak_drtmax
//bit 23, reg_ei_caldrt_xlanopeak_en
//bit 28:24, reg_ei_caldrt_abext_monotrnd_alpha
//bit 28:24, reg_ei_caldrt_abext_mononum12_thrd
//bit 28:24, reg_ei_caldrt_abext_mononum00_thrd
//bit 28:24, reg_ei_caldrt_abext_sad00rate
//bit 28:24, reg_ei_caldrt_abext_sad12rate
//bit 28:24, reg_ei_caldrt_abext_sad00thhig
#define DI_EI_CTRL8 (0x171e)
#define P_DI_EI_CTRL8 (volatile unsigned int *)((0x171e << 2) + 0xff900000)
//bit 30:28, reg_ei_assign_headtail_magin
//bit 26:24, reg_ei_retime_lastcurpncnfltchk_mode
//bit 22:21, reg_ei_retime_lastcurpncnfltchk_drtth
//bit 20, reg_ei_caldrt_histchk_cnfid
//bit 19:16, reg_ei_caldrt_histchk_thrd
//bit 15, reg_ei_caldrt_histchk_abext
//bit 14, reg_ei_caldrt_histchk_npen
//bit 13:11, reg_ei_caldrt_amblike2_drtmg
//bit 10:8, reg_ei_caldrt_amblike2_valmg
//bit 7:4, reg_ei_caldrt_amblike2_alpha
//bit 3:0, reg_ei_caldrt_amblike2_drtth
#define DI_EI_CTRL9 (0x171f)
#define P_DI_EI_CTRL9 (volatile unsigned int *)((0x171f << 2) + 0xff900000)
//bit 31:28, reg_ei_caldrt_hcnfcheck_frcvert_xla_th3
//bit 27, reg_ei_caldrt_hcnfcheck_frcvert_xla_en
//bit 26:24, reg_ei_caldrt_conf_drtth
//bit 23:20, reg_ei_caldrt_conf_absdrtth
//bit 19:18, reg_ei_caldrt_abcheck_mode1
//bit 17:16, reg_ei_caldrt_abcheck_mode0
//bit 15:12, reg_ei_caldrt_abcheck_drth1
//bit 11:8, reg_ei_caldrt_abcheck_drth0
//bit 6:4, reg_ei_caldrt_abpnchk1_th
//bit 1, reg_ei_caldrt_abpnchk1_en
//bit 0, reg_ei_caldrt_abpnchk0_en
// DEINTERLACE mode check.
#define DI_MC_REG0_X (0x1720)
#define P_DI_MC_REG0_X (volatile unsigned int *)((0x1720 << 2) + 0xff900000)
//bit 27:16, mc_reg0_start_x
//bit 11:0, mc_reg0_end_x
#define DI_MC_REG0_Y (0x1721)
#define P_DI_MC_REG0_Y (volatile unsigned int *)((0x1721 << 2) + 0xff900000)
#define DI_MC_REG1_X (0x1722)
#define P_DI_MC_REG1_X (volatile unsigned int *)((0x1722 << 2) + 0xff900000)
#define DI_MC_REG1_Y (0x1723)
#define P_DI_MC_REG1_Y (volatile unsigned int *)((0x1723 << 2) + 0xff900000)
#define DI_MC_REG2_X (0x1724)
#define P_DI_MC_REG2_X (volatile unsigned int *)((0x1724 << 2) + 0xff900000)
#define DI_MC_REG2_Y (0x1725)
#define P_DI_MC_REG2_Y (volatile unsigned int *)((0x1725 << 2) + 0xff900000)
#define DI_MC_REG3_X (0x1726)
#define P_DI_MC_REG3_X (volatile unsigned int *)((0x1726 << 2) + 0xff900000)
#define DI_MC_REG3_Y (0x1727)
#define P_DI_MC_REG3_Y (volatile unsigned int *)((0x1727 << 2) + 0xff900000)
#define DI_MC_REG4_X (0x1728)
#define P_DI_MC_REG4_X (volatile unsigned int *)((0x1728 << 2) + 0xff900000)
#define DI_MC_REG4_Y (0x1729)
#define P_DI_MC_REG4_Y (volatile unsigned int *)((0x1729 << 2) + 0xff900000)
#define DI_MC_32LVL0 (0x172a)
#define P_DI_MC_32LVL0 (volatile unsigned int *)((0x172a << 2) + 0xff900000)
//bit 31:24, mc_reg2_32lvl
//bit 23:16, mc_reg1_32lvl
//bit 15:8, mc_reg0_32lvl
//bit 7:0, field_32lvl
#define DI_MC_32LVL1 (0x172b)
#define P_DI_MC_32LVL1 (volatile unsigned int *)((0x172b << 2) + 0xff900000)
//bit 15:8, mc_reg3_32lvl
//bit 7:0, mc_reg4_32lvl
#define DI_MC_22LVL0 (0x172c)
#define P_DI_MC_22LVL0 (volatile unsigned int *)((0x172c << 2) + 0xff900000)
//bit 31:16, mc_reg0_22lvl
//bit 15:0, field_22lvl
#define DI_MC_22LVL1 (0x172d)
#define P_DI_MC_22LVL1 (volatile unsigned int *)((0x172d << 2) + 0xff900000)
//bit 31:16, mc_reg2_22lvl
//bit 15:0, mc_reg1_22lvl
#define DI_MC_22LVL2 (0x172e)
#define P_DI_MC_22LVL2 (volatile unsigned int *)((0x172e << 2) + 0xff900000)
//bit 31:16, mc_reg4_22lvl
//bit 15:0, mc_reg3_22lvl
#define DI_MC_CTRL (0x172f)
#define P_DI_MC_CTRL (volatile unsigned int *)((0x172f << 2) + 0xff900000)
//bit 4, mc_reg4_en
//bit 3, mc_reg3_en
//bit 2, mc_reg2_en
//bit 1, mc_reg1_en
//bit 0, mc_reg0_en
#define DI_INTR_CTRL (0x1730)
#define P_DI_INTR_CTRL (volatile unsigned int *)((0x1730 << 2) + 0xff900000)
#define DI_INFO_ADDR (0x1731)
#define P_DI_INFO_ADDR (volatile unsigned int *)((0x1731 << 2) + 0xff900000)
#define DI_INFO_DATA (0x1732)
#define P_DI_INFO_DATA (volatile unsigned int *)((0x1732 << 2) + 0xff900000)
#define DI_PRE_HOLD (0x1733)
#define P_DI_PRE_HOLD (volatile unsigned int *)((0x1733 << 2) + 0xff900000)
//// DET 3D REG DEFINE BEGIN ////
//// 8'h34~8'h3f
// `define DET3D_MOTN_CFG 8'h34
// //Bit 16, reg_det3d_intr_en Det3d interrupt enable
// //Bit 9:8, reg_Det3D_Motion_Mode U2 Different mode for Motion Calculation of Luma and Chroma:
// // 0: MotY, 1: (2*MotY + (MotU + MotV))/4; 2: Max(MotY, MotU,MotV); 3:Max(MotY, (MotU+MotV)/2)
// //Bit 7:4, reg_Det3D_Motion_Core_Rate U4 K Rate to Edge (HV) details for coring of Motion Calculations, normalized to 32
// //Bit 3:0, reg_Det3D_Motion_Core_Thrd U4 2X: static coring value for Motion Detection.
//
// `define DET3D_CB_CFG 8'h35
// //Bit 7:4, reg_Det3D_ChessBd_NHV_ofst U4, Noise immune offset for NON-Horizotnal or vertical combing detection.
// //Bit 3:0, reg_Det3D_ChessBd_HV_ofst U4, Noise immune offset for Horizotnal or vertical combing detection.
//
// `define DET3D_SPLT_CFG 8'h36
// //Bit 7:4, reg_Det3D_SplitValid_ratio U4, Ratio between max_value and the avg_value of the edge mapping for split line valid detection.
// // The smaller of this value, the easier of the split line detected.
// //Bit 3:0, reg_Det3D_AvgIdx_ratio U4, Ratio to the avg_value of the edge mapping for split line position estimation.
// // The smaller of this value, the more samples will be added to the estimation.
//
// `define DET3D_HV_MUTE 8'h37
// //Bit 23:20, reg_Det3D_Edge_Ver_Mute U4 X2: Horizontal pixels to be mute from H/V Edge calculation Top and Bottom border part.
// //Bit 19:16, reg_Det3D_Edge_Hor_Mute U4 X2: Horizontal pixels to be mute from H/V Edge calculation Left and right border part.
// //Bit 15:12, reg_Det3D_ChessBd_Ver_Mute U4 X2: Horizontal pixels to be mute from ChessBoard statistics calculation in middle part
// //Bit 11:8, reg_Det3D_ChessBd_Hor_Mute U4 X2: Horizontal pixels to be mute from ChessBoard statistics calculation in middle part
// //Bit 7:4, reg_Det3D_STA8X8_Ver_Mute U4 1X: Vertical pixels to be mute from 8x8 statistics calculation in each block.
// //Bit 3:0, reg_Det3D_STA8X8_Hor_Mute U4 1X: Horizontal pixels to be mute from 8x8 statistics calculation in each block.
//
// `define DET3D_MAT_STA_P1M1 8'h38
// //Bit 31:24, reg_Det3D_STA8X8_P1_K0_R8 U8 SAD to SAI ratio to decide P1, normalized to 256 (0.8)
// //Bit 23:16, reg_Det3D_STA8X8_P1_K1_R7 U8 SAD to ENG ratio to decide P1, normalized to 128 (0.5)
// //Bit 15:8, reg_Det3D_STA8X8_M1_K0_R6 U8 SAD to SAI ratio to decide M1, normalized to 64 (1.1)
// //Bit 7:0, reg_Det3D_STA8X8_M1_K1_R6 U8 SAD to ENG ratio to decide M1, normalized to 64 (0.8)
//
// `define DET3D_MAT_STA_P1TH 8'h39
// //Bit 23:16, reg_Det3D_STAYUV_P1_TH_L4 U8 SAD to ENG Thrd offset to decide P1, X16 (100)
// //Bit 15:8, reg_Det3D_STAEDG_P1_TH_L4 U8 SAD to ENG Thrd offset to decide P1, X16 (80)
// //Bit 7:0, reg_Det3D_STAMOT_P1_TH_L4 U8 SAD to ENG Thrd offset to decide P1, X16 (48)
//
// `define DET3D_MAT_STA_M1TH 8'h3a
// //Bit 23:16, reg_Det3D_STAYUV_M1_TH_L4 U8 SAD to ENG Thrd offset to decide M1, X16 (100)
// //Bit 15:8, reg_Det3D_STAEDG_M1_TH_L4 U8 SAD to ENG Thrd offset to decide M1, X16 (80)
// //Bit 7:0, reg_Det3D_STAMOT_M1_TH_L4 U8 SAD to ENG Thrd offset to decide M1, X16 (64)
//
// `define DET3D_MAT_STA_RSFT 8'h3b
// //Bit 5:4, reg_Det3D_STAYUV_RSHFT U2 YUV statistics SAD and SAI calculation result right shift bits to accommodate the 12bits clipping:
// // 0: mainly for images <=720x480: 1: mainly for images <=1366x768: 2: mainly for images <=1920X1080: 2; 3: other higher resolutions
// //Bit 3:2, reg_Det3D_STAEDG_RSHFT U2 Horizontal and Vertical Edge Statistics SAD and SAI calculation result right shift bits to accommodate the 12bits clipping:
// // 0: mainly for images <=720x480: 1: mainly for images <=1366x768: 2: mainly for images <=1920X1080: 2; 3: other higher resolutions
// //Bit 1:0, reg_Det3D_STAMOT_RSHFT U2 Motion SAD and SAI calculation result right shift bits to accommodate the 12bits clipping:
// // 0: mainly for images <=720x480: 1: mainly for images <=1366x768: 2: mainly for images <=1920X1080: 2; 3: other higher resolutions
//
// `define DET3D_MAT_SYMTC_TH 8'h3c
// //Bit 31:24, reg_Det3D_STALUM_symtc_Th U8 threshold to decide if the Luma statistics is TB or LR symmetric.
// //Bit 23:16, reg_Det3D_STACHR_symtc_Th U8 threshold to decide if the Chroma (UV) statistics is TB or LR symmetric.
// //Bit 15:8, reg_Det3D_STAEDG_symtc_Th U8 threshold to decide if the Horizontal and Vertical Edge statistics is TB or LR symmetric.
// //Bit 7:0, reg_Det3D_STAMOT_symtc_Th U8 threshold to decide if the Motion statistics is TB or LR symmetric.
//
// `define DET3D_RO_DET_CB_HOR 8'h3d
// //Bit 31:16, RO_Det3D_ChessBd_NHor_value U16 X64: number of Pixels of Horizontally Surely NOT matching Chessboard pattern.
// //Bit 15:0, RO_Det3D_ChessBd_Hor_value U16 X64: number of Pixels of Horizontally Surely matching Chessboard pattern.
//
// `define DET3D_RO_DET_CB_VER 8'h3e
// //Bit 31:16, RO_Det3D_ChessBd_NVer_value U16 X64: number of Pixels of Vertically Surely NOT matching Chessboard pattern.
// //Bit 15:0, RO_Det3D_ChessBd_Ver_value U16 X64: number of Pixels of Vertically Surely matching Chessboard pattern.
//
// `define DET3D_RO_SPLT_HT 8'h3f
// //Bit 24, RO_Det3D_Split_HT_valid U1 horizontal LR split border detected valid signal for top half picture
// //Bit 20:16, RO_Det3D_Split_HT_pxnum U5 number of pixels included for the LR split position estimation for top half picture
// //Bit 9:0, RO_Det3D_Split_HT_idxX4 S10 X4: horizontal pixel shifts of LR split position to the (ColMax/2) for top half picture
//
// //// DET 3D REG DEFINE END ////
#define DI_MTN_1_CTRL1 (0x1740)
#define P_DI_MTN_1_CTRL1 (volatile unsigned int *)((0x1740 << 2) + 0xff900000)
//bit 31, mtn_1_en
//bit 30, mtn_init
//bit 29, di2nr_txt_en
//bit 28, reserved
//bit 27:24, mtn_def
//bit 23:16, mtn_adp_yc
//bit 15:8, mtn_adp_2c
//bit 7:0, mtn_adp_2y
#define DI_MTN_1_CTRL2 (0x1741)
#define P_DI_MTN_1_CTRL2 (volatile unsigned int *)((0x1741 << 2) + 0xff900000)
//bit 31:24, mtn_ykinter
//bit 23:16, mtn_ckinter
//bit 15:8, mtn_ykintra
//bit 7:0, mtn_ckintra
#define DI_MTN_1_CTRL3 (0x1742)
#define P_DI_MTN_1_CTRL3 (volatile unsigned int *)((0x1742 << 2) + 0xff900000)
//bit 31:24, mtn_tyrate
//bit 23:16, mtn_tcrate
//bit 15: 8, mtn_mxcmby
//bit 7: 0, mtn_mxcmbc
#define DI_MTN_1_CTRL4 (0x1743)
#define P_DI_MTN_1_CTRL4 (volatile unsigned int *)((0x1743 << 2) + 0xff900000)
//bit 31:24, mtn_tcorey
//bit 23:16, mtn_tcorec
//bit 15: 8, mtn_minth
//bit 7: 0, mtn_maxth
#define DI_MTN_1_CTRL5 (0x1744)
#define P_DI_MTN_1_CTRL5 (volatile unsigned int *)((0x1744 << 2) + 0xff900000)
//bit 31:28, mtn_m1b_extnd
//bit 27:24, mtn_m1b_errod
//bit 21:20, mtn_mot_txt_mode
//bit 19:18, mtn_replace_cbyy
//bit 17:16, mtn_replace_ybyc
//bit 15: 8, mtn_core_ykinter
//bit 7: 0, mtn_core_ckinter
//// NR2 REG DEFINE BEGIN////
#define NR2_MET_NM_CTRL (0x1745)
#define P_NR2_MET_NM_CTRL (volatile unsigned int *)((0x1745 << 2) + 0xff900000)
//Bit 28, reg_NM_reset Reset to the status of the Loop filter.
//Bit 27:24, reg_NM_calc_length Length mode of the Noise measurement sample number for statistics.
// 0: 256 samples; 1: 512 samples; 2: 1024 samples; 隆颅X: 2^(8+x) samples
//Bit 23:20, reg_NM_inc_step Loop filter input gain increase step.
//Bit 19:16, reg_NM_dec_step Loop filter input gain decrease step.
//Bit 15:8, reg_NM_YHPmot_thrd Luma channel HP portion motion for condition of pixels included in Luma Noise measurement.
//Bit 7:0, reg_NM_CHPmot_thrd Chroma channel HP portion motion for condition of pixels included in Chroma Noise measurement.
#define NR2_MET_NM_YCTRL (0x1746)
#define P_NR2_MET_NM_YCTRL (volatile unsigned int *)((0x1746 << 2) + 0xff900000)
//Bit 31:28, reg_NM_YPLL_target Target rate of NM_Ynoise_thrd to mean of the Luma Noise
//Bit 27:24, reg_NM_YLPmot_thrd Luma channel LP portion motion for condition of pixels included in Luma Noise measurement.
//Bit 23:16, reg_NM_YHPmot_thrd_min Minimum threshold for Luma channel HP portion motion to decide whether the pixel will be included in Luma noise measurement.
//Bit 15:8, reg_NM_YHPmot_thrd_max Maximum threshold for Luma channel HP portion motion to decide whether the pixel will be included in Luma noise measurement.
//Bit 7:0, reg_NM_Ylock_rate Rate to decide whether the Luma noise measurement is lock or not.
#define NR2_MET_NM_CCTRL (0x1747)
#define P_NR2_MET_NM_CCTRL (volatile unsigned int *)((0x1747 << 2) + 0xff900000)
//Bit 31:28, reg_NM_CPLL_target Target rate of NM_Cnoise_thrd to mean of the Chroma Noise
//Bit 27:24, reg_NM_CLPmot_thrd Chroma channel LP portion motion for condition of pixels included in Chroma Noise measurement.
//Bit 23:16, reg_NM_CHPmot_thrd_min Minimum threshold for Chroma channel HP portion motion to decide whether the pixel will be included in Chroma noise measurement.
//Bit 15:8, reg_NM_CHPmot_thrd_max Maximum threshold for Chroma channel HP portion motion to decide whether the pixel will be included in Chroma noise measurement.
//Bit 7:0, reg_NM_Clock_rate Rate to decide whether the Chroma noise measurement is lock or not;
#define NR2_MET_NM_TNR (0x1748)
#define P_NR2_MET_NM_TNR (volatile unsigned int *)((0x1748 << 2) + 0xff900000)
//Bit 25, ro_NM_TNR_Ylock Read-only register to tell ifLuma channel noise measurement is locked or not.
//Bit 24, ro_NM_TNR_Clock Read-only register to tell if Chroma channel noise measurement is locked or not.
//Bit 23:12, ro_NM_TNR_Ylevel Read-only register to give Luma channel noise level. It was 16x of pixel difference in 8 bits of YHPmot.
//Bit 11:0, ro_NM_TNR_Clevel Read-only register to give Chroma channel noise level. It was 16x of pixel difference in 8 bits of CHPmot.
#define NR2_MET_NMFRM_TNR_YLEV (0x1749)
#define P_NR2_MET_NMFRM_TNR_YLEV (volatile unsigned int *)((0x1749 << 2) + 0xff900000)
//Bit 28:0, ro_NMFrm_TNR_Ylevel Frame based Read-only register to give Luma channel noise level within one frame/field.
#define NR2_MET_NMFRM_TNR_YCNT (0x174a)
#define P_NR2_MET_NMFRM_TNR_YCNT (volatile unsigned int *)((0x174a << 2) + 0xff900000)
//Bit 23:0, ro_NMFrm_TNR_Ycount Number ofLuma channel pixels included in Frame/Field based noise level measurement.
#define NR2_MET_NMFRM_TNR_CLEV (0x174b)
#define P_NR2_MET_NMFRM_TNR_CLEV (volatile unsigned int *)((0x174b << 2) + 0xff900000)
//Bit 28:0, ro_NMFrm_TNR_Clevel Frame based Read-only register to give Chroma channel noise level within one frame/field.
#define NR2_MET_NMFRM_TNR_CCNT (0x174c)
#define P_NR2_MET_NMFRM_TNR_CCNT (volatile unsigned int *)((0x174c << 2) + 0xff900000)
//Bit 23:0, ro_NMFrm_TNR_Ccount Number of Chroma channel pixels included in Frame/Field based noise level measurement.
#define NR2_3DEN_MODE (0x174d)
#define P_NR2_3DEN_MODE (volatile unsigned int *)((0x174d << 2) + 0xff900000)
//Bit 6:4, Blend_3dnr_en_r
//Bit 2:0, Blend_3dnr_en_l
// `define NR2_IIR_CTRL 8'h4e
// //Bit 15:14, reg_LP_IIR_8bit_mode LP IIR membitwidth mode:0: 10bits will be store in memory;1: 9bits will be store in memory;
// // 2: 8bits will be store in memory;3: 7bits will be store in memory;
// //Bit 13:12, reg_LP_IIR_mute_mode Mode for the LP IIR mute,
// //Bit 11:8, reg_LP_IIR_mute_thrd Threshold of LP IIR mute to avoid ghost:
// //Bit 7:6, reg_HP_IIR_8bit_mode IIR membitwidth mode:0: 10bits will be store in memory;1: 9bits will be store in memory;
// // 2: 8bits will be store in memory;3: 7bits will be store in memory;
// //Bit 5:4, reg_HP_IIR_mute_mode Mode for theLP IIR mute
// //Bit 3:0, reg_HP_IIR_mute_thrd Threshold of HP IIR mute to avoid ghost
// //
#define NR2_SW_EN (0x174f)
#define P_NR2_SW_EN (volatile unsigned int *)((0x174f << 2) + 0xff900000)
//Bit 17:8, Clk_gate_ctrl
//Bit 7, Cfr_enable
//Bit 5, Det3d_en
//Bit 4, Nr2_proc_en
//Bit 0, Nr2_sw_en
#define NR2_FRM_SIZE (0x1750)
#define P_NR2_FRM_SIZE (volatile unsigned int *)((0x1750 << 2) + 0xff900000)
//Bit 27:16, Frm_heigh Frame/field height
//Bit 11: 0, Frm_width Frame/field width
// `define NR2_SNR_SAD_CFG 8'h51
// //Bit 12, reg_MATNR_SNR_SAD_CenRPL U1, Enable signal for Current pixel position SAD to be replaced by SAD_min.0: do not replace Current pixel position SAD by SAD_min;1: do replacements
// //Bit 11:8, reg_MATNR_SNR_SAD_coring Coring value of the intra-frame SAD. sum = (sum - reg_MATNR_SNR_SAD_coring);sum = (sum<0) ? 0: (sum>255)? 255: sum;
// //Bit 6:5, reg_MATNR_SNR_SAD_WinMod Unsigned, Intra-frame SAD matching window mode:0: 1x1; 1: [1 1 1] 2: [1 2 1]; 3: [1 2 2 2 1];
// //Bit 4:0, Sad_coef_num Sad coeffient
//
// `define NR2_MATNR_SNR_OS 8'h52
// //Bit 7:4, reg_MATNR_SNR_COS SNR Filter overshoot control margin for UV channel (X2 to u10 scale)
// //Bit 3:0, reg_MATNR_SNR_YOS SNR Filter overshoot control margin for luma channel (X2 to u10 scale)
//
// `define NR2_MATNR_SNR_NRM_CFG 8'h53
// //Bit 23:16, reg_MATNR_SNR_NRM_ofst Edge based SNR boosting normalization offset to SAD_max ;
// //Bit 15:8, reg_MATNR_SNR_NRM_max Edge based SNR boosting normalization Max value
// //Bit 7:0, reg_MATNR_SNR_NRM_min Edge based SNR boosting normalization Min value
//
// `define NR2_MATNR_SNR_NRM_GAIN 8'h54
// //Bit 15:8, reg_MATNR_SNR_NRM_Cgain Edge based SNR boosting normalization Gain for Chrm channel (norm 32 as 1)
// //Bit 7:0, reg_MATNR_SNR_NRM_Ygain Edge based SNR boosting normalization Gain for Luma channel (norm 32 as 1)
//
// `define NR2_MATNR_SNR_LPF_CFG 8'h55
// //Bit 23:16,reg_MATNR_SNRLPF_SADmaxTH U8, Threshold to SADmax to use TNRLPF to replace SNRLPF. i.e.if (SAD_max<reg_MATNR_SNRLPF_SADmaxTH) SNRLPF_yuv[k] = TNRLPF_yuv[k];
// //Bit 13:11,reg_MATNR_SNRLPF_Cmode LPF based SNR filtering mode on CHRM channel:
// // 0: gradient LPF [1 1]/2, 1: gradient LPF [2 1 1]/4; 2: gradient LPF [3 3 2]/8; 3: gradient LPF [5 4 4 3]/16;
// // 4: TNRLPF; 5 : CurLPF3x3_yuv[]; 6: CurLPF3o3_yuv[] 7: CurLPF3x5_yuv[]
// //Bit 10:8, reg_MATNR_SNRLPF_Ymode LPF based SNR filtering mode on LUMA channel:
// // 0: gradient LPF //Bit [1 1]/2, 1: gradient LPF [2 1 1]/4; 2: gradient LPF [3 3 2]/8;3: gradient LPF [5 4 4 3]/16;
// // 4: TNRLPF; 5 : CurLPF3x3_yuv[]; 6: CurLPF3o3_yuv[] 7: CurLPF3x5_yuv[]
// //Bit 7:4, reg_MATNR_SNRLPF_SADmin3TH Offset threshold to SAD_min to Discard SAD_min3 corresponding pixel in LPF SNR filtering. (X8 to u8 scale)
// //Bit 3:0, reg_MATNR_SNRLPF_SADmin2TH Offset threshold to SAD_min to Discard SAD_min2 corresponding pixel in LPF SNR filtering. (X8 to u8 scale)
//
// `define NR2_MATNR_SNR_USF_GAIN 8'h56
// //Bit 15:8, reg_MATNR_SNR_USF_Cgain Un-sharp (HP) compensate back Chrm portion gain, (norm 64 as 1)
// //Bit 7:0, reg_MATNR_SNR_USF_Ygain Un-sharp (HP) compensate back Luma portion gain, (norm 64 as 1)
//
// `define NR2_MATNR_SNR_EDGE2B 8'h57
// //Bit 15:8, reg_MATNR_SNR_Edge2Beta_ofst U8, Offset for Beta based on Edge.
// //Bit 7:0, reg_MATNR_SNR_Edge2Beta_gain U8. Gain to SAD_min for Beta based on Edge. (norm 16 as 1)
//
// `define NR2_MATNR_BETA_EGAIN 8'h58
// //Bit 15:8, reg_MATNR_CBeta_Egain U8, Gain to Edge based Beta for Chrm channel. (normalized to 32 as 1)
// //Bit 7:0, reg_MATNR_YBeta_Egain U8, Gain to Edge based Beta for Luma channel. (normalized to 32 as 1)
//
// `define NR2_MATNR_BETA_BRT 8'h59
// //Bit 31:28, reg_MATNR_beta_BRT_limt_hi U4, Beta adjustment based on Brightness high side Limit. (X16 to u8 scale)
// //Bit 27:24, reg_MATNR_beta_BRT_slop_hi U4, Beta adjustment based on Brightness high side slope. Normalized to 16 as 1
// //Bit 23:16, reg_MATNR_beta_BRT_thrd_hi U8, Beta adjustment based on Brightness high threshold.(u8 scale)
// //Bit 15:12, reg_MATNR_beta_BRT_limt_lo U4, Beta adjustment based on Brightness low side Limit. (X16 to u8 scale)
// //Bit 11:8, reg_MATNR_beta_BRT_slop_lo U4, Beta adjustment based on Brightness low side slope. Normalized to 16 as 1
// //Bit 7:0, reg_MATNR_beta_BRT_thrd_lo U8, Beta adjustment based on Brightness low threshold.(u8 scale)
// `define NR2_MATNR_XBETA_CFG 8'h5a
// //Bit 19:18, reg_MATNR_CBeta_use_mode U2, Beta options (mux) from beta_motion and beta_edge for Chrm channel;
// //Bit 17:16, reg_MATNR_YBeta_use_mode U2, Beta options (mux) from beta_motion and beta_edge for Luma channel;
// //Bit 15: 8, reg_MATNR_CBeta_Ofst U8, Offset to Beta for Chrm channel.(after beta_edge and beta_motion mux)
// //Bit 7: 0, reg_MATNR_YBeta_Ofst U8, Offset to Beta for Luma channel.(after beta_edge and beta_motion mux)
// `define NR2_MATNR_YBETA_SCL 8'h5b
// //Bit 31:24, reg_MATNR_YBeta_scale_min U8, Final step Beta scale low limit for Luma channel;
// //Bit 23:16, reg_MATNR_YBeta_scale_max U8, Final step Beta scale high limit for Luma channe;
// //Bit 15: 8, reg_MATNR_YBeta_scale_gain U8, Final step Beta scale Gain for Luma channel (normalized 32 to 1);
// //Bit 7 : 0, reg_MATNR_YBeta_scale_ofst S8, Final step Beta scale offset for Luma channel ;
// `define NR2_MATNR_CBETA_SCL 8'h5c
// //Bit 31:24, reg_MATNR_CBeta_scale_min Final step Beta scale low limit for Chrm channel.Similar to Y
// //Bit 23:16, reg_MATNR_CBeta_scale_max U8, Final step Beta scale high limit for Chrm channel.Similar to Y
// //Bit 15: 8, reg_MATNR_CBeta_scale_gain U8, Final step Beta scale Gain for Chrm channel Similar to Y
// //Bit 7: 0, reg_MATNR_CBeta_scale_ofst S8, Final step Beta scale offset for Chrm channel Similar to Y
// `define NR2_SNR_MASK 8'h5d
// //Bit 20:0, SAD_MSK Valid signal in the 3x7 SAD surface
// `define NR2_SAD2NORM_LUT0 8'h5e
// //Bit 31:24, reg_MATNR_SAD2Norm_LUT_3 SAD convert normal LUT node 3
// //Bit 23:16, reg_MATNR_SAD2Norm_LUT_2 SAD convert normal LUT node 2
// //Bit 15: 8, reg_MATNR_SAD2Norm_LUT_1 SAD convert normal LUT node 1
// //Bit 7: 0, reg_MATNR_SAD2Norm_LUT_0 SAD convert normal LUT node 0
// `define NR2_SAD2NORM_LUT1 8'h5f
// //Bit 31:24, reg_MATNR_SAD2Norm_LUT_7 SAD convert normal LUT node 7
// //Bit 23:16, reg_MATNR_SAD2Norm_LUT_6 SAD convert normal LUT node 6
// //Bit 15: 8, reg_MATNR_SAD2Norm_LUT_5 SAD convert normal LUT node 5
// //Bit 7: 0, reg_MATNR_SAD2Norm_LUT_4 SAD convert normal LUT node 4
// `define NR2_SAD2NORM_LUT2 8'h60
// //Bit 31:24, reg_MATNR_SAD2Norm_LUT_11 SAD convert normal LUT node 11
// //Bit 23:16, reg_MATNR_SAD2Norm_LUT_10 SAD convert normal LUT node 10
// //Bit 15: 8, reg_MATNR_SAD2Norm_LUT_9 SAD convert normal LUT node 9
// //Bit 7: 0, reg_MATNR_SAD2Norm_LUT_8 SAD convert normal LUT node 8
// `define NR2_SAD2NORM_LUT3 8'h61
// //Bit 31:24, reg_MATNR_SAD2Norm_LUT_15 SAD convert normal LUT node 15
// //Bit 23:16, reg_MATNR_SAD2Norm_LUT_14 SAD convert normal LUT node 14
// //Bit 15:8, reg_MATNR_SAD2Norm_LUT_13 SAD convert normal LUT node 13
// //Bit 7:0, reg_MATNR_SAD2Norm_LUT_12 SAD convert normal LUT node 12
// `define NR2_EDGE2BETA_LUT0 8'h62
// //Bit 31:24, reg_MATNR_Edge2Beta_LUT_3 Edge convert beta LUT node 3
// //Bit 23:16, reg_MATNR_Edge2Beta_LUT_2 Edge convert beta LUT node 2
// //Bit 15: 8, reg_MATNR_Edge2Beta_LUT_1 Edge convert beta LUT node 1
// //Bit 7: 0, reg_MATNR_Edge2Beta_LUT_0 Edge convert beta LUT node 0
// `define NR2_EDGE2BETA_LUT1 8'h63
// //Bit 31:24, reg_MATNR_Edge2Beta_LUT_7 Edge convert beta LUT node 7
// //Bit 23:16, reg_MATNR_Edge2Beta_LUT_6 Edge convert beta LUT node 6
// //Bit 15: 8, reg_MATNR_Edge2Beta_LUT_5 Edge convert beta LUT node 5
// //Bit 7: 0, reg_MATNR_Edge2Beta_LUT_4 Edge convert beta LUT node 4
// `define NR2_EDGE2BETA_LUT2 8'h64
// //Bit 31:24, reg_MATNR_Edge2Beta_LUT_11 Edge convert beta LUT node 11
// //Bit 23:16, reg_MATNR_Edge2Beta_LUT_10 Edge convert beta LUT node 10
// //Bit 15: 8, reg_MATNR_Edge2Beta_LUT_9 Edge convert beta LUT node 9
// //Bit 7: 0, reg_MATNR_Edge2Beta_LUT_8 Edge convert beta LUT node 8
// `define NR2_EDGE2BETA_LUT3 8'h65
// //Bit 31:24, reg_MATNR_Edge2Beta_LUT_15 Edge convert beta LUT node 15
// //Bit 23:16, reg_MATNR_Edge2Beta_LUT_14 Edge convert beta LUT node 14
// //Bit 15: 8, reg_MATNR_Edge2Beta_LUT_13 Edge convert beta LUT node 13
// //Bit 7: 0, reg_MATNR_Edge2Beta_LUT_12 Edge convert beta LUT node 12
// `define NR2_MOTION2BETA_LUT0 8'h66
// //Bit 31:24, reg_MATNR_Mot2Beta_LUT_3 Motion convert beta LUT node 3
// //Bit 23:16, reg_MATNR_Mot2Beta_LUT_2 Motion convert beta LUT node 2
// //Bit 15: 8, reg_MATNR_Mot2Beta_LUT_1 Motion convert beta LUT node 1
// //Bit 7: 0, reg_MATNR_Mot2Beta_LUT_0 Motion convert beta LUT node 0
// `define NR2_MOTION2BETA_LUT1 8'h67
// //Bit 31:24, reg_MATNR_Mot2Beta_LUT_7 Motion convert beta LUT node 7
// //Bit 23:16, reg_MATNR_Mot2Beta_LUT_6 Motion convert beta LUT node 6
// //Bit 15: 8, reg_MATNR_Mot2Beta_LUT_5 Motion convert beta LUT node 5
// //Bit 7: 0, reg_MATNR_Mot2Beta_LUT_4 Motion convert beta LUT node 4
// `define NR2_MOTION2BETA_LUT2 8'h68
// //Bit 31:24, reg_MATNR_Mot2Beta_LUT_11 Motion convert beta LUT node 11
// //Bit 23:16, reg_MATNR_Mot2Beta_LUT_10 Motion convert beta LUT node 10
// //Bit 15: 8, reg_MATNR_Mot2Beta_LUT_9 Motion convert beta LUT node 9
// //Bit 7: 0, reg_MATNR_Mot2Beta_LUT_8 Motion convert beta LUT node 8
// `define NR2_MOTION2BETA_LUT3 8'h69
// //Bit 31:24, reg_MATNR_Mot2Beta_LUT_15 Motion convert beta LUT node 15
// //Bit 23:16, reg_MATNR_Mot2Beta_LUT_14 Motion convert beta LUT node 14
// //Bit 15: 8, reg_MATNR_Mot2Beta_LUT_13 Motion convert beta LUT node 13
// //Bit 7: 0, reg_MATNR_Mot2Beta_LUT_12 Motion convert beta LUT node 12
// `define NR2_MATNR_MTN_CRTL 8'h6a
// //Bit 25:24, reg_MATNR_Vmtn_use_mode Motion_yuvV channel motion selection mode:0: Vmot;1:Ymot/2 + (Umot+Vmot)/4; 2:Ymot/2 + max(Umot,Vmot)/2; 3: max(Ymot,Umot, Vmot)
// //Bit 21:20, reg_MATNR_Umtn_use_mode Motion_yuvU channel motion selection mode:0:Umot;1:Ymot/2 + (Umot+Vmot)/4; 2:Ymot/2 + max(Umot,Vmot)/2; 3: max(Ymot,Umot, Vmot)
// //Bit 17:16, reg_MATNR_Ymtn_use_mode Motion_yuvLuma channel motion selection mode:0: Ymot, 1: Ymot/2 + (Umot+Vmot)/4; 2: Ymot/2 + max(Umot,Vmot)/2; 3: max(Ymot,Umot, Vmot)
// //Bit 13:12, reg_MATNR_mtn_txt_mode Texture detection mode for adaptive coring of HP motion
// //Bit 9: 8, reg_MATNR_mtn_cor_mode Coring selection mode based on texture detection;
// //Bit 6: 4, reg_MATNR_mtn_hpf_mode video mode of current and previous frame/field for MotHPF_yuv[k] calculation:
// //Bit 2: 0, reg_MATNR_mtn_lpf_mode LPF video mode of current and previous frame/field for MotLPF_yuv[k] calculation:
// `define NR2_MATNR_MTN_CRTL2 8'h6b
// //Bit 18:16, reg_MATNR_iir_BS_Ymode IIR TNR filter Band split filter mode for Luma LPF result generation (Cur and Prev);
// //Bit 15: 8, reg_MATNR_mtnb_alpLP_Cgain Scale of motion_brthp_uv to motion_brtlp_uv, normalized to 32 as 1
// //Bit 7: 0, reg_MATNR_mtnb_alpLP_Ygain Scale of motion_brthp_y to motion_brtlp_y, normalized to 32 as 1
// `define NR2_MATNR_MTN_COR 8'h6c
// //Bit 15:12, reg_MATNR_mtn_cor_Cofst Coring Offset for Chroma Motion.
// //Bit 11: 8, reg_MATNR_mtn_cor_Cgain Gain to texture based coring for Chroma Motion. Normalized to 16 as 1
// //Bit 7: 4, reg_MATNR_mtn_cor_Yofst Coring Offset for Luma Motion.
// //Bit 3: 0, reg_MATNR_mtn_cor_Ygain Gain to texture based coring for Luma Motion. Normalized to 16 as 1
// `define NR2_MATNR_MTN_GAIN 8'h6d
// //Bit 31:24, reg_MATNR_mtn_hp_Cgain Gain to MotHPF_yuv[k] Chrm channel for motion calculation, normalized to 64 as 1
// //Bit 23:16, reg_MATNR_mtn_hp_Ygain Gain to MotHPF_yuv[k] Luma channel for motion calculation, normalized to 64 as 1
// //Bit 15: 8, reg_MATNR_mtn_lp_Cgain Gain to MotLPF_yuv[k] Chrm channel for motion calculation, normalized to 32 as 1
// //Bit 7: 0, reg_MATNR_mtn_lp_Ygain Gain to MotLPF_yuv[k] Luma channel for motion calculation, normalized to 32 as 1
// `define NR2_MATNR_DEGHOST 8'h6e
// //Bit 8, reg_MATNR_DeGhost_En Enable signal for DeGhost function:0: disable; 1: enable
// //Bit 7:4, reg_MATNR_DeGhost_COS DeGhost Overshoot margin for UV channel, (X2 to u10 scale)
// //Bit 3:0, reg_MATNR_DeGhost_YOS DeGhost Overshoot margin for Luma channel, (X2 to u10 scale)
//
// `define NR2_MATNR_ALPHALP_LUT0 8'h6f
// //Bit 31:24, reg_MATNR_AlphaLP_LUT_3 Matnr low-pass filter alpha LUT node 3
// //Bit 23:16, reg_MATNR_AlphaLP_LUT_2 Matnr low-pass filter alpha LUT node 2
// //Bit 15: 8, reg_MATNR_AlphaLP_LUT_1 Matnr low-pass filter alpha LUT node 1
// //Bit 7: 0, reg_MATNR_AlphaLP_LUT_0 Matnr low-pass filter alpha LUT node 0
// `define NR2_MATNR_ALPHALP_LUT1 8'h70
// //Bit 31:24, reg_MATNR_AlphaLP_LUT_7 Matnr low-pass filter alpha LUT node 7
// //Bit 23:16, reg_MATNR_AlphaLP_LUT_6 Matnr low-pass filter alpha LUT node 6
// //Bit 15: 8, reg_MATNR_AlphaLP_LUT_5 Matnr low-pass filter alpha LUT node 5
// //Bit 7: 0, reg_MATNR_AlphaLP_LUT_4 Matnr low-pass filter alpha LUT node 4
// `define NR2_MATNR_ALPHALP_LUT2 8'h71
// //Bit 31:24, reg_MATNR_AlphaLP_LUT_11 Matnr low-pass filter alpha LUT node 11
// //Bit 23:16, reg_MATNR_AlphaLP_LUT_10 Matnr low-pass filter alpha LUT node 10
// //Bit 15: 8, reg_MATNR_AlphaLP_LUT_9 Matnr low-pass filter alpha LUT node 9
// //Bit 7: 0, reg_MATNR_AlphaLP_LUT_8 Matnr low-pass filter alpha LUT node 8
// `define NR2_MATNR_ALPHALP_LUT3 8'h72
// //Bit 31:24, reg_MATNR_AlphaLP_LUT_15 Matnr low-pass filter alpha LUT node 15
// //Bit 23:16, reg_MATNR_AlphaLP_LUT_14 Matnr low-pass filter alpha LUT node 14
// //Bit 15: 8, reg_MATNR_AlphaLP_LUT_13 Matnr low-pass filter alpha LUT node 13
// //Bit 7: 0, reg_MATNR_AlphaLP_LUT_12 Matnr low-pass filter alpha LUT node 12
// `define NR2_MATNR_ALPHAHP_LUT0 8'h73
// //Bit 31:24, reg_MATNR_AlphaHP_LUT_3 Matnr high-pass filter alpha LUT node 3
// //Bit 23:16, reg_MATNR_AlphaHP_LUT_2 Matnr high-pass filter alpha LUT node 2
// //Bit 15: 8, reg_MATNR_AlphaHP_LUT_1 Matnr high-pass filter alpha LUT node 1
// //Bit 7: 0, reg_MATNR_AlphaHP_LUT_0 Matnr high-pass filter alpha LUT node 0
// `define NR2_MATNR_ALPHAHP_LUT1 8'h74
// //Bit 31:24, reg_MATNR_AlphaHP_LUT_7 Matnr high-pass filter alpha LUT node 7
// //Bit 23:16, reg_MATNR_AlphaHP_LUT_6 Matnr high-pass filter alpha LUT node 6
// //Bit 15: 8, reg_MATNR_AlphaHP_LUT_5 Matnr high-pass filter alpha LUT node 5
// //Bit 7: 0, reg_MATNR_AlphaHP_LUT_4 Matnr high-pass filter alpha LUT node 4
// `define NR2_MATNR_ALPHAHP_LUT2 8'h75
// //Bit 31:24, reg_MATNR_AlphaHP_LUT_11 Matnr high-pass filter alpha LUT node 11
// //Bit 23:16, reg_MATNR_AlphaHP_LUT_10 Matnr high-pass filter alpha LUT node 10
// //Bit 15: 8, reg_MATNR_AlphaHP_LUT_9 Matnr high-pass filter alpha LUT node 9
// //Bit 7: 0, reg_MATNR_AlphaHP_LUT_8 Matnr high-pass filter alpha LUT node 8
// `define NR2_MATNR_ALPHAHP_LUT3 8'h76
// //Bit 31:24, reg_MATNR_AlphaHP_LUT_15 Matnr high-pass filter alpha LUT node 15
// //Bit 23:16, reg_MATNR_AlphaHP_LUT_14 Matnr high-pass filter alpha LUT node 14
// //Bit 15: 8, reg_MATNR_AlphaHP_LUT_13 Matnr high-pass filter alpha LUT node 13
// //Bit 7: 0, reg_MATNR_AlphaHP_LUT_12 Matnr high-pass filter alpha LUT node 12
//
// `define NR2_MATNR_MTNB_BRT 8'h77
// //Bit 31:28, reg_MATNR_mtnb_BRT_limt_hi Motion adjustment based on Brightness high side Limit. (X16 to u8 scale)
// //Bit 27:24, reg_MATNR_mtnb_BRT_slop_hi Motion adjustment based on Brightness high side slope. Normalized to 16 as 1
// //Bit 23:16, reg_MATNR_mtnb_BRT_thrd_hi Motion adjustment based on Brightness high threshold.(u8 scale)
// //Bit 15:12, reg_MATNR_mtnb_BRT_limt_lo Motion adjustment based on Brightness low side Limit. (X16 to u8 scale)
// //Bit 11: 8, reg_MATNR_mtnb_BRT_slop_lo Motion adjustment based on Brightness low side slope. Normalized to 16 as 1
// //Bit 7: 0, reg_MATNR_mtnb_BRT_thrd_lo Motion adjustment based on Brightness low threshold.(u8 scale)
// 0x51 - 0x69 | 0x4e | 0x6a - 0x77
//
// Reading file: nr2_regs.h
//
// synopsys translate_off
// synopsys translate_on
//========== nr2_snr_regs register begin ==========//
#define NR2_SNR_SAD_CFG (0x1751)
#define P_NR2_SNR_SAD_CFG (volatile unsigned int *)((0x1751 << 2) + 0xff900000)
//Bit 31:13 reserved
//Bit 12 reg_matnr_snr_sad_cenrpl // unsigned , default = 1
//Bit 11: 8 reg_matnr_snr_sad_coring // unsigned , default = 3
//Bit 7 reserved
//Bit 6: 5 reg_matnr_snr_sad_winmod // unsigned , default = 1 0: 1x1; 1: [1 1 1] 2: [1 2 1]; 3: [1 2 2 2 1];
//Bit 4: 0 sad_coef_num // unsigned , default = 1 0: 1x1; 1: [1 1 1] 2: [1 2 1]; 3: [1 2 2 2 1];
#define NR2_MATNR_SNR_OS (0x1752)
#define P_NR2_MATNR_SNR_OS (volatile unsigned int *)((0x1752 << 2) + 0xff900000)
//Bit 31: 8 reserved
//Bit 7: 4 reg_matnr_snr_cos // unsigned , default = 8
//Bit 3: 0 reg_matnr_snr_yos // unsigned , default = 13
#define NR2_MATNR_SNR_NRM_CFG (0x1753)
#define P_NR2_MATNR_SNR_NRM_CFG (volatile unsigned int *)((0x1753 << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23:16 reg_matnr_snr_nrm_ofst // signed , default = 64
//Bit 15: 8 reg_matnr_snr_nrm_max // unsigned , default = 255
//Bit 7: 0 reg_matnr_snr_nrm_min // unsigned , default = 0
#define NR2_MATNR_SNR_NRM_GAIN (0x1754)
#define P_NR2_MATNR_SNR_NRM_GAIN (volatile unsigned int *)((0x1754 << 2) + 0xff900000)
//Bit 31:16 reserved
//Bit 15: 8 reg_matnr_snr_nrm_cgain // unsigned , default = 0 norm 32
//Bit 7: 0 reg_matnr_snr_nrm_ygain // unsigned , default = 32 norm 32
#define NR2_MATNR_SNR_LPF_CFG (0x1755)
#define P_NR2_MATNR_SNR_LPF_CFG (volatile unsigned int *)((0x1755 << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23:16 reg_matnr_snrlpf_sadmaxth // unsigned , default = 12
//Bit 15:14 reserved
//Bit 13:11 reg_matnr_snrlpf_cmode // unsigned , default = 2 0: gradient LPF [1 1]/2, 1: gradient LPF [2 1 1]/4; 2: gradient LPF [3 3 2]/8; 3: gradient LPF [5 5 4 3]/16;
//Bit 10: 8 reg_matnr_snrlpf_ymode // unsigned , default = 2 0: gradient LPF [1 1]/2, 1: gradient LPF [2 1 1]/4; 2: gradient LPF [3 3 2]/8; 3: gradient LPF [5 5 4 3]/16;
//Bit 7: 4 reg_matnr_snrlpf_sadmin3th // unsigned , default = 6 X8
//Bit 3: 0 reg_matnr_snrlpf_sadmin2th // unsigned , default = 4 X8
#define NR2_MATNR_SNR_USF_GAIN (0x1756)
#define P_NR2_MATNR_SNR_USF_GAIN (volatile unsigned int *)((0x1756 << 2) + 0xff900000)
//Bit 31:16 reserved
//Bit 15: 8 reg_matnr_snr_usf_cgain // unsigned , default = 0 norm 64
//Bit 7: 0 reg_matnr_snr_usf_ygain // unsigned , default = 0 norm 64
#define NR2_MATNR_SNR_EDGE2B (0x1757)
#define P_NR2_MATNR_SNR_EDGE2B (volatile unsigned int *)((0x1757 << 2) + 0xff900000)
//Bit 31:16 reserved
//Bit 15: 8 reg_matnr_snr_edge2beta_ofst // unsigned , default = 128
//Bit 7: 0 reg_matnr_snr_edge2beta_gain // unsigned , default = 16
#define NR2_MATNR_BETA_EGAIN (0x1758)
#define P_NR2_MATNR_BETA_EGAIN (volatile unsigned int *)((0x1758 << 2) + 0xff900000)
//Bit 31:16 reserved
//Bit 15: 8 reg_matnr_cbeta_egain // unsigned , default = 32 normalized to 32
//Bit 7: 0 reg_matnr_ybeta_egain // unsigned , default = 32 normalized to 32
#define NR2_MATNR_BETA_BRT (0x1759)
#define P_NR2_MATNR_BETA_BRT (volatile unsigned int *)((0x1759 << 2) + 0xff900000)
//Bit 31:28 reg_matnr_beta_brt_limt_hi // unsigned , default = 0
//Bit 27:24 reg_matnr_beta_brt_slop_hi // unsigned , default = 0
//Bit 23:16 reg_matnr_beta_brt_thrd_hi // unsigned , default = 160
//Bit 15:12 reg_matnr_beta_brt_limt_lo // unsigned , default = 6
//Bit 11: 8 reg_matnr_beta_brt_slop_lo // unsigned , default = 6
//Bit 7: 0 reg_matnr_beta_brt_thrd_lo // unsigned , default = 100
#define NR2_MATNR_XBETA_CFG (0x175a)
#define P_NR2_MATNR_XBETA_CFG (volatile unsigned int *)((0x175a << 2) + 0xff900000)
//Bit 31:20 reserved
//Bit 19:18 reg_matnr_cbeta_use_mode // unsigned , default = 0 0: beta_motion; 1: beta_edge; 2: min(beta_mot,beta_edge); 3: (beta_mot + beta_edge)/2
//Bit 17:16 reg_matnr_ybeta_use_mode // unsigned , default = 0 0: beta_motion; 1: beta_edge; 2: min(beta_mot,beta_edge); 3: (beta_mot + beta_edge)/2;
//Bit 15: 8 reg_matnr_cbeta_ofst // unsigned , default = 0
//Bit 7: 0 reg_matnr_ybeta_ofst // unsigned , default = 0
#define NR2_MATNR_YBETA_SCL (0x175b)
#define P_NR2_MATNR_YBETA_SCL (volatile unsigned int *)((0x175b << 2) + 0xff900000)
//Bit 31:24 reg_matnr_ybeta_scale_min // unsigned , default = 60
//Bit 23:16 reg_matnr_ybeta_scale_max // unsigned , default = 255
//Bit 15: 8 reg_matnr_ybeta_scale_gain // unsigned , default = 32 normalized 32 to 1.0
//Bit 7: 0 reg_matnr_ybeta_scale_ofst // signed , default = 0
#define NR2_MATNR_CBETA_SCL (0x175c)
#define P_NR2_MATNR_CBETA_SCL (volatile unsigned int *)((0x175c << 2) + 0xff900000)
//Bit 31:24 reg_matnr_cbeta_scale_min // unsigned , default = 0
//Bit 23:16 reg_matnr_cbeta_scale_max // unsigned , default = 255
//Bit 15: 8 reg_matnr_cbeta_scale_gain // unsigned , default = 32 normalized 32 to 1.0
//Bit 7: 0 reg_matnr_cbeta_scale_ofst // signed , default = 0
#define NR2_SNR_MASK (0x175d)
#define P_NR2_SNR_MASK (volatile unsigned int *)((0x175d << 2) + 0xff900000)
//Bit 31:21 reserved
//Bit 20: 0 sad_msk // unsigned , default = 0x0f9f3e
#define NR2_SAD2NORM_LUT0 (0x175e)
#define P_NR2_SAD2NORM_LUT0 (volatile unsigned int *)((0x175e << 2) + 0xff900000)
//Bit 31:24 reg_matnr_sad2norm_lut3 // unsigned , default = 114
//Bit 23:16 reg_matnr_sad2norm_lut2 // unsigned , default = 146
//Bit 15: 8 reg_matnr_sad2norm_lut1 // unsigned , default = 171
//Bit 7: 0 reg_matnr_sad2norm_lut0 // unsigned , default = 205
#define NR2_SAD2NORM_LUT1 (0x175f)
#define P_NR2_SAD2NORM_LUT1 (volatile unsigned int *)((0x175f << 2) + 0xff900000)
//Bit 31:24 reg_matnr_sad2norm_lut7 // unsigned , default = 28
//Bit 23:16 reg_matnr_sad2norm_lut6 // unsigned , default = 35
//Bit 15: 8 reg_matnr_sad2norm_lut5 // unsigned , default = 49
//Bit 7: 0 reg_matnr_sad2norm_lut4 // unsigned , default = 79
#define NR2_SAD2NORM_LUT2 (0x1760)
#define P_NR2_SAD2NORM_LUT2 (volatile unsigned int *)((0x1760 << 2) + 0xff900000)
//Bit 31:24 reg_matnr_sad2norm_lut11 // unsigned , default = 15
//Bit 23:16 reg_matnr_sad2norm_lut10 // unsigned , default = 17
//Bit 15: 8 reg_matnr_sad2norm_lut9 // unsigned , default = 19
//Bit 7: 0 reg_matnr_sad2norm_lut8 // unsigned , default = 23
#define NR2_SAD2NORM_LUT3 (0x1761)
#define P_NR2_SAD2NORM_LUT3 (volatile unsigned int *)((0x1761 << 2) + 0xff900000)
//Bit 31:24 reg_matnr_sad2norm_lut15 // unsigned , default = 8
//Bit 23:16 reg_matnr_sad2norm_lut14 // unsigned , default = 9
//Bit 15: 8 reg_matnr_sad2norm_lut13 // unsigned , default = 10
//Bit 7: 0 reg_matnr_sad2norm_lut12 // unsigned , default = 12
#define NR2_EDGE2BETA_LUT0 (0x1762)
#define P_NR2_EDGE2BETA_LUT0 (volatile unsigned int *)((0x1762 << 2) + 0xff900000)
//Bit 31:24 reg_matnr_edge2beta_lut3 // unsigned , default = 128
//Bit 23:16 reg_matnr_edge2beta_lut2 // unsigned , default = 160
//Bit 15: 8 reg_matnr_edge2beta_lut1 // unsigned , default = 224
//Bit 7: 0 reg_matnr_edge2beta_lut0 // unsigned , default = 255
#define NR2_EDGE2BETA_LUT1 (0x1763)
#define P_NR2_EDGE2BETA_LUT1 (volatile unsigned int *)((0x1763 << 2) + 0xff900000)
//Bit 31:24 reg_matnr_edge2beta_lut7 // unsigned , default = 4
//Bit 23:16 reg_matnr_edge2beta_lut6 // unsigned , default = 16
//Bit 15: 8 reg_matnr_edge2beta_lut5 // unsigned , default = 32
//Bit 7: 0 reg_matnr_edge2beta_lut4 // unsigned , default = 80
#define NR2_EDGE2BETA_LUT2 (0x1764)
#define P_NR2_EDGE2BETA_LUT2 (volatile unsigned int *)((0x1764 << 2) + 0xff900000)
//Bit 31:24 reg_matnr_edge2beta_lut11 // unsigned , default = 0
//Bit 23:16 reg_matnr_edge2beta_lut10 // unsigned , default = 0
//Bit 15: 8 reg_matnr_edge2beta_lut9 // unsigned , default = 0
//Bit 7: 0 reg_matnr_edge2beta_lut8 // unsigned , default = 2
#define NR2_EDGE2BETA_LUT3 (0x1765)
#define P_NR2_EDGE2BETA_LUT3 (volatile unsigned int *)((0x1765 << 2) + 0xff900000)
//Bit 31:24 reg_matnr_edge2beta_lut15 // unsigned , default = 0
//Bit 23:16 reg_matnr_edge2beta_lut14 // unsigned , default = 0
//Bit 15: 8 reg_matnr_edge2beta_lut13 // unsigned , default = 0
//Bit 7: 0 reg_matnr_edge2beta_lut12 // unsigned , default = 0
#define NR2_MOTION2BETA_LUT0 (0x1766)
#define P_NR2_MOTION2BETA_LUT0 (volatile unsigned int *)((0x1766 << 2) + 0xff900000)
//Bit 31:24 reg_matnr_mot2beta_lut3 // unsigned , default = 32
//Bit 23:16 reg_matnr_mot2beta_lut2 // unsigned , default = 16
//Bit 15: 8 reg_matnr_mot2beta_lut1 // unsigned , default = 4
//Bit 7: 0 reg_matnr_mot2beta_lut0 // unsigned , default = 0
#define NR2_MOTION2BETA_LUT1 (0x1767)
#define P_NR2_MOTION2BETA_LUT1 (volatile unsigned int *)((0x1767 << 2) + 0xff900000)
//Bit 31:24 reg_matnr_mot2beta_lut7 // unsigned , default = 196
//Bit 23:16 reg_matnr_mot2beta_lut6 // unsigned , default = 128
//Bit 15: 8 reg_matnr_mot2beta_lut5 // unsigned , default = 64
//Bit 7: 0 reg_matnr_mot2beta_lut4 // unsigned , default = 48
#define NR2_MOTION2BETA_LUT2 (0x1768)
#define P_NR2_MOTION2BETA_LUT2 (volatile unsigned int *)((0x1768 << 2) + 0xff900000)
//Bit 31:24 reg_matnr_mot2beta_lut11 // unsigned , default = 255
//Bit 23:16 reg_matnr_mot2beta_lut10 // unsigned , default = 255
//Bit 15: 8 reg_matnr_mot2beta_lut9 // unsigned , default = 240
//Bit 7: 0 reg_matnr_mot2beta_lut8 // unsigned , default = 224
#define NR2_MOTION2BETA_LUT3 (0x1769)
#define P_NR2_MOTION2BETA_LUT3 (volatile unsigned int *)((0x1769 << 2) + 0xff900000)
//Bit 31:24 reg_matnr_mot2beta_lut15 // unsigned , default = 255
//Bit 23:16 reg_matnr_mot2beta_lut14 // unsigned , default = 255
//Bit 15: 8 reg_matnr_mot2beta_lut13 // unsigned , default = 255
//Bit 7: 0 reg_matnr_mot2beta_lut12 // unsigned , default = 255
//========== nr2_snr_regs register end ==========//
//========== nr2_tnr_regs register begin ==========//
#define NR2_IIR_CTRL (0x174e)
#define P_NR2_IIR_CTRL (volatile unsigned int *)((0x174e << 2) + 0xff900000)
//Bit 31:16 reserved
//Bit 15:14 reg_lp_iir_8bit_mode // unsigned , default = 0 10bits; 1: 9bits; 2: 8bits 3: 7bits
//Bit 13:12 reg_hp_iir_mute_mode // unsigned , default = 0
//Bit 11: 8 reg_hp_iir_mute_thrd // unsigned , default = 0
//Bit 7: 6 reg_hp_iir_8bit_mode // unsigned , default = 0
//Bit 5: 4 reg_lp_iir_mute_mode // unsigned , default = 0
//Bit 3: 0 reg_lp_iir_mute_thrd // unsigned , default = 0
#define NR2_MATNR_MTN_CRTL (0x176a)
#define P_NR2_MATNR_MTN_CRTL (volatile unsigned int *)((0x176a << 2) + 0xff900000)
//Bit 31:20 reserved
//Bit 19:18 reg_matnr_vmtn_use_mode // unsigned , default = 0 0- Vmot, 1- Ymot/2 + (Umot+Vmot)/4; 2- Ymot/2 + max(Umot,Vmot)/2; 3- max(Ymot,Umot, Vmot)
//Bit 17:16 reg_matnr_umtn_use_mode // unsigned , default = 0 0- Umot, 1- Ymot/2 + (Umot+Vmot)/4; 2- Ymot/2 + max(Umot,Vmot)/2; 3- max(Ymot,Umot, Vmot)
//Bit 15:14 reg_matnr_ymtn_use_mode // unsigned , default = 0 0- Ymot, 1- Ymot/2 + (Umot+Vmot)/4; 2- Ymot/2 + max(Umot,Vmot)/2; 3- max(Ymot,Umot, Vmot)
//Bit 13:12 reg_matnr_mtn_txt_mode // unsigned , default = 1
//Bit 11 reserved
//Bit 10: 8 reg_matnr_mtn_cor_mode // unsigned , default = 1 changes)
//Bit 7: 4 reg_matnr_mtn_hpf_mode // unsigned , default = 8 extend to u4 for nr4, 0- 1x1; 1: 1x3; 2: 1x5; 3: 3x3; 4: 3o3; 5: 3x5, 6:3x3 SAD, 7: 5x3 SAD, 8-15: drt adaptive
//Bit 3 reserved
//Bit 2: 0 reg_matnr_mtn_lpf_mode // unsigned , default = 6 0- 1x1; 1: 1x3; 2: 1x5; 3: 3x3; 4: 3o3; 5: 3x5, 6,7: drt adaptive
#define NR2_MATNR_MTN_CRTL2 (0x176b)
#define P_NR2_MATNR_MTN_CRTL2 (volatile unsigned int *)((0x176b << 2) + 0xff900000)
//Bit 31:19 reserved
//Bit 18:16 reg_matnr_iir_bs_ymode // unsigned , default = 6 LPF~~ 0- 1x1; 1: 1x3; 2: 1x5; 3: 3x3; 4: 3o3; 5: 3x5; 6/7: 0
//Bit 15: 8 reg_matnr_mtnb_alplp_cgain // unsigned , default = 64 to 32
//Bit 7: 0 reg_matnr_mtnb_alplp_ygain // unsigned , default = 64 to 32
#define NR2_MATNR_MTN_COR (0x176c)
#define P_NR2_MATNR_MTN_COR (volatile unsigned int *)((0x176c << 2) + 0xff900000)
//Bit 31:16 reserved
//Bit 15:12 reg_matnr_mtn_cor_cofst // unsigned , default = 3 Offset for Chroma Motion.
//Bit 11: 8 reg_matnr_mtn_cor_cgain // unsigned , default = 3 to texture based coring for Chroma Motion. Normalized to 16 as 1
//Bit 7: 4 reg_matnr_mtn_cor_yofst // unsigned , default = 3 Offset for Luma Motion.
//Bit 3: 0 reg_matnr_mtn_cor_ygain // unsigned , default = 3 to texture based coring for Luma Motion. Normalized to 16 as 1
#define NR2_MATNR_MTN_GAIN (0x176d)
#define P_NR2_MATNR_MTN_GAIN (volatile unsigned int *)((0x176d << 2) + 0xff900000)
//Bit 31:24 reg_matnr_mtn_hp_cgain // unsigned , default = 64 to MotHPF_yuv[k] Chrm channel for motion calculation, normalized to 64 as 1
//Bit 23:16 reg_matnr_mtn_hp_ygain // unsigned , default = 64 to MotHPF_yuv[k] Luma channel for motion calculation, normalized to 64 as 1
//Bit 15: 8 reg_matnr_mtn_lp_cgain // unsigned , default = 64 to MotLPF_yuv[k] Chrm channel for motion calculation, normalized to 32 as 1
//Bit 7: 0 reg_matnr_mtn_lp_ygain // unsigned , default = 64 to MotLPF_yuv[k] Luma channel for motion calculation, normalized to 32 as 1
#define NR2_MATNR_DEGHOST (0x176e)
#define P_NR2_MATNR_DEGHOST (volatile unsigned int *)((0x176e << 2) + 0xff900000)
//Bit 31 reserved
//Bit 30:28 reg_matnr_deghost_mode // unsigned , default = 0 0:old_deghost; 1:soft_denoise & strong_deghost; 2:strong_denoise & soft_deghost; 3:strong_denoise & strong_deghost
//Bit 27:25 reserved
//Bit 24:20 reg_matnr_deghost_ygain // unsigned , default = 4
//Bit 19:17 reserved
//Bit 16:12 reg_matnr_deghost_cgain // unsigned , default = 4
//Bit 11: 9 reserved
//Bit 8 reg_matnr_deghost_en // unsigned , default = 1 0: disable; 1: enable Enable signal for DeGhost function:0: disable; 1: enable
//Bit 7: 4 reg_matnr_deghost_cos // unsigned , default = 3 DeGhost Overshoot margin for UV channel, (X2 to u10 scale)
//Bit 3: 0 reg_matnr_deghost_yos // unsigned , default = 3 DeGhost Overshoot margin for Luma channel, (X2 to u10 scale)
#define NR2_MATNR_ALPHALP_LUT0 (0x176f)
#define P_NR2_MATNR_ALPHALP_LUT0 (volatile unsigned int *)((0x176f << 2) + 0xff900000)
//Bit 31:24 reg_matnr_alphalp_lut3 // unsigned , default = 64 low-pass filter alpha LUT
//Bit 23:16 reg_matnr_alphalp_lut2 // unsigned , default = 128 low-pass filter alpha LUT
//Bit 15: 8 reg_matnr_alphalp_lut1 // unsigned , default = 128 low-pass filter alpha LUT
//Bit 7: 0 reg_matnr_alphalp_lut0 // unsigned , default = 128 low-pass filter alpha LUT
#define NR2_MATNR_ALPHALP_LUT1 (0x1770)
#define P_NR2_MATNR_ALPHALP_LUT1 (volatile unsigned int *)((0x1770 << 2) + 0xff900000)
//Bit 31:24 reg_matnr_alphalp_lut7 // unsigned , default = 255 low-pass filter alpha LUT
//Bit 23:16 reg_matnr_alphalp_lut6 // unsigned , default = 128 low-pass filter alpha LUT
//Bit 15: 8 reg_matnr_alphalp_lut5 // unsigned , default = 80 low-pass filter alpha LUT
//Bit 7: 0 reg_matnr_alphalp_lut4 // unsigned , default = 64 low-pass filter alpha LUT
#define NR2_MATNR_ALPHALP_LUT2 (0x1771)
#define P_NR2_MATNR_ALPHALP_LUT2 (volatile unsigned int *)((0x1771 << 2) + 0xff900000)
//Bit 31:24 reg_matnr_alphalp_lut11 // unsigned , default = 255 low-pass filter alpha LUT
//Bit 23:16 reg_matnr_alphalp_lut10 // unsigned , default = 255 low-pass filter alpha LUT
//Bit 15: 8 reg_matnr_alphalp_lut9 // unsigned , default = 255 low-pass filter alpha LUT
//Bit 7: 0 reg_matnr_alphalp_lut8 // unsigned , default = 255 low-pass filter alpha LUT
#define NR2_MATNR_ALPHALP_LUT3 (0x1772)
#define P_NR2_MATNR_ALPHALP_LUT3 (volatile unsigned int *)((0x1772 << 2) + 0xff900000)
//Bit 31:24 reg_matnr_alphalp_lut15 // unsigned , default = 255 low-pass filter alpha LUT
//Bit 23:16 reg_matnr_alphalp_lut14 // unsigned , default = 255 low-pass filter alpha LUT
//Bit 15: 8 reg_matnr_alphalp_lut13 // unsigned , default = 255 low-pass filter alpha LUT
//Bit 7: 0 reg_matnr_alphalp_lut12 // unsigned , default = 255 low-pass filter alpha LUT
#define NR2_MATNR_ALPHAHP_LUT0 (0x1773)
#define P_NR2_MATNR_ALPHAHP_LUT0 (volatile unsigned int *)((0x1773 << 2) + 0xff900000)
//Bit 31:24 reg_matnr_alphahp_lut3 // unsigned , default = 64 high-pass filter alpha LUT
//Bit 23:16 reg_matnr_alphahp_lut2 // unsigned , default = 128 high-pass filter alpha LUT
//Bit 15: 8 reg_matnr_alphahp_lut1 // unsigned , default = 128 high-pass filter alpha LUT
//Bit 7: 0 reg_matnr_alphahp_lut0 // unsigned , default = 128 high-pass filter alpha LUT
#define NR2_MATNR_ALPHAHP_LUT1 (0x1774)
#define P_NR2_MATNR_ALPHAHP_LUT1 (volatile unsigned int *)((0x1774 << 2) + 0xff900000)
//Bit 31:24 reg_matnr_alphahp_lut7 // unsigned , default = 255 high-pass filter alpha LUT
//Bit 23:16 reg_matnr_alphahp_lut6 // unsigned , default = 128 high-pass filter alpha LUT
//Bit 15: 8 reg_matnr_alphahp_lut5 // unsigned , default = 80 high-pass filter alpha LUT
//Bit 7: 0 reg_matnr_alphahp_lut4 // unsigned , default = 64 high-pass filter alpha LUT
#define NR2_MATNR_ALPHAHP_LUT2 (0x1775)
#define P_NR2_MATNR_ALPHAHP_LUT2 (volatile unsigned int *)((0x1775 << 2) + 0xff900000)
//Bit 31:24 reg_matnr_alphahp_lut11 // unsigned , default = 255 high-pass filter alpha LUT
//Bit 23:16 reg_matnr_alphahp_lut10 // unsigned , default = 255 high-pass filter alpha LUT
//Bit 15: 8 reg_matnr_alphahp_lut9 // unsigned , default = 255 high-pass filter alpha LUT
//Bit 7: 0 reg_matnr_alphahp_lut8 // unsigned , default = 255 high-pass filter alpha LUT
#define NR2_MATNR_ALPHAHP_LUT3 (0x1776)
#define P_NR2_MATNR_ALPHAHP_LUT3 (volatile unsigned int *)((0x1776 << 2) + 0xff900000)
//Bit 31:24 reg_matnr_alphahp_lut15 // unsigned , default = 255 high-pass filter alpha LUT
//Bit 23:16 reg_matnr_alphahp_lut14 // unsigned , default = 255 high-pass filter alpha LUT
//Bit 15: 8 reg_matnr_alphahp_lut13 // unsigned , default = 255 high-pass filter alpha LUT
//Bit 7: 0 reg_matnr_alphahp_lut12 // unsigned , default = 255 high-pass filter alpha LUT
#define NR2_MATNR_MTNB_BRT (0x1777)
#define P_NR2_MATNR_MTNB_BRT (volatile unsigned int *)((0x1777 << 2) + 0xff900000)
//Bit 31:28 reg_matnr_mtnb_brt_limt_hi // unsigned , default = 0
//Bit 27:24 reg_matnr_mtnb_brt_slop_hi // unsigned , default = 0
//Bit 23:16 reg_matnr_mtnb_brt_thrd_hi // unsigned , default = 160
//Bit 15:12 reg_matnr_mtnb_brt_limt_lo // unsigned , default = 6
//Bit 11: 8 reg_matnr_mtnb_brt_slop_lo // unsigned , default = 6
//Bit 7: 0 reg_matnr_mtnb_brt_thrd_lo // unsigned , default = 100
//========== nr2_tnr_regs register end ==========//
// synopsys translate_off
// synopsys translate_on
//
// Closing file: nr2_regs.h
//
#define DI_EI_DRT_CTRL (0x1778)
#define P_DI_EI_DRT_CTRL (volatile unsigned int *)((0x1778 << 2) + 0xff900000)
//Bit 31, reg_rectg_en ;u1
//Bit 30, reg_recbld_en ;u1
//Bit 29:28, reg_rectg_ws ;u2
//Bit 27, reserved
//Bit 26:24, reg_abq_margin ;u3
//Bit 23, reserved
//Bit 22:20, reg_trend_mg ;u3
//Bit 19:16, reg_int_d16xc1 ;u4
//Bit 15:14, reserved
//Bit 13: 8, reg_int_chlmt1 ;u6
//Bit 7, reserved
//Bit 6: 4, reg_nscheck_thrd ;u3
//Bit 3, reserved
//Bit 2: 0, reg_horsl_ws ;u3
#define DI_EI_DRT_PIXTH (0x1779)
#define P_DI_EI_DRT_PIXTH (volatile unsigned int *)((0x1779 << 2) + 0xff900000)
//Bit 31:24, reg_min_pix ;u8
//Bit 23:16, reg_max_pix ;u8
//Bit 15: 8, reg_dmaxmin_thrdma ;u8
//Bit 7: 0, reg_dmaxmin_thrdmi ;u8
#define DI_EI_DRT_CORRPIXTH (0x177a)
#define P_DI_EI_DRT_CORRPIXTH (volatile unsigned int *)((0x177a << 2) + 0xff900000)
//Bit 31:24, reg_newcorrpix_maxthrd ;u8
//Bit 23:16, reg_corrpix_diffthrd ;u8
//Bit 15: 8, reg_corrpix_minthrd ;u8
//Bit 7: 0, reg_corrpix_maxthrd ;u8
#define DI_EI_DRT_RECTG_WAVE (0x177b)
#define P_DI_EI_DRT_RECTG_WAVE (volatile unsigned int *)((0x177b << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28:24, reg_max_pixwave ;u5
//Bit 23:21, reserved
//Bit 20:16, reg_pix_wave ;u5
//Bit 15:14, reserved
//Bit 13: 8, reg_maxdrt_thrd ;u6
//Bit 7: 0, reg_wave_thrd ;u8
#define DI_EI_DRT_PIX_DIFFTH (0x177c)
#define P_DI_EI_DRT_PIX_DIFFTH (volatile unsigned int *)((0x177c << 2) + 0xff900000)
//Bit 31:24, reg_newraw_thrd ;u8
//Bit 23:16, reg_tb_max_thrd ;u8
//Bit 15: 8, reg_diffpix_thrd ;u8
//Bit 7: 6, reserved
//Bit 5: 0, reg_bilt_trendnumt ;u8
#define DI_EI_DRT_UNBITREND_TH (0x177d)
#define P_DI_EI_DRT_UNBITREND_TH (volatile unsigned int *)((0x177d << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28:24, reg_trend_numb ;u5
//Bit 23:21, reserved
//Bit 20:16, reg_bilt_trendnum ;u5
//Bit 15:13, reserved
//Bit 12: 8, reg_unil_trendnumt ;u5
//Bit 7: 5, reserved
//Bit 4: 0, reg_trend_num ;u5
#define NR2_CONV_MODE (0x177f)
#define P_NR2_CONV_MODE (volatile unsigned int *)((0x177f << 2) + 0xff900000)
//Bit 3:2, Conv_c444_mode The format convert mode about 422 to 444 when data read out line buffer
//Bit 1:0, Conv_c422_mode the format convert mode about 444 to 422 when data write to line buffer
//// NR2 REG DEFINE END ////
//// DET 3D REG DEFINE BEGIN ////
//// 8'h34~8'h3f | 8'h80~8'h8f | 0x9a-0x9b
//
// Reading file: det3d_regs.h
//
//// DET 3D REG DEFINE BEGIN ////
//// 8'h34~8'h3f
//// DET 3D REG DEFINE END ////
#define DET3D_MOTN_CFG (0x1734)
#define P_DET3D_MOTN_CFG (volatile unsigned int *)((0x1734 << 2) + 0xff900000)
//Bit 16, reg_det3d_intr_en Det3d interrupt enable
//Bit 9:8, reg_Det3D_Motion_Mode U2 Different mode for Motion Calculation of Luma and Chroma:
// 0: MotY, 1: (2*MotY + (MotU + MotV))/4; 2: Max(MotY, MotU,MotV); 3:Max(MotY, (MotU+MotV)/2)
//Bit 7:4, reg_Det3D_Motion_Core_Rate U4 K Rate to Edge (HV) details for coring of Motion Calculations, normalized to 32
//Bit 3:0, reg_Det3D_Motion_Core_Thrd U4 2X: static coring value for Motion Detection.
#define DET3D_CB_CFG (0x1735)
#define P_DET3D_CB_CFG (volatile unsigned int *)((0x1735 << 2) + 0xff900000)
//Bit 7:4, reg_Det3D_ChessBd_HV_ofst U4, Noise immune offset for Horizotnal or vertical combing detection.
//Bit 3:0, reg_Det3D_ChessBd_NHV_ofst U4, Noise immune offset for NON-Horizotnal or vertical combing detection.
#define DET3D_SPLT_CFG (0x1736)
#define P_DET3D_SPLT_CFG (volatile unsigned int *)((0x1736 << 2) + 0xff900000)
//Bit 7:4, reg_Det3D_SplitValid_ratio U4, Ratio between max_value and the avg_value of the edge mapping for split line valid detection.
// The smaller of this value, the easier of the split line detected.
//Bit 3:0, reg_Det3D_AvgIdx_ratio U4, Ratio to the avg_value of the edge mapping for split line position estimation.
// The smaller of this value, the more samples will be added to the estimation.
#define DET3D_HV_MUTE (0x1737)
#define P_DET3D_HV_MUTE (volatile unsigned int *)((0x1737 << 2) + 0xff900000)
//Bit 23:20, reg_Det3D_Edge_Ver_Mute U4 X2: Horizontal pixels to be mute from H/V Edge calculation Top and Bottom border part.
//Bit 19:16, reg_Det3D_Edge_Hor_Mute U4 X2: Horizontal pixels to be mute from H/V Edge calculation Left and right border part.
//Bit 15:12, reg_Det3D_ChessBd_Ver_Mute U4 X2: Horizontal pixels to be mute from ChessBoard statistics calculation in middle part
//Bit 11:8, reg_Det3D_ChessBd_Hor_Mute U4 X2: Horizontal pixels to be mute from ChessBoard statistics calculation in middle part
//Bit 7:4, reg_Det3D_STA8X8_Ver_Mute U4 1X: Vertical pixels to be mute from 8x8 statistics calculation in each block.
//Bit 3:0, reg_Det3D_STA8X8_Hor_Mute U4 1X: Horizontal pixels to be mute from 8x8 statistics calculation in each block.
#define DET3D_MAT_STA_P1M1 (0x1738)
#define P_DET3D_MAT_STA_P1M1 (volatile unsigned int *)((0x1738 << 2) + 0xff900000)
//Bit 31:24, reg_Det3D_STA8X8_P1_K0_R8 U8 SAD to SAI ratio to decide P1, normalized to 256 (0.8)
//Bit 23:16, reg_Det3D_STA8X8_P1_K1_R7 U8 SAD to ENG ratio to decide P1, normalized to 128 (0.5)
//Bit 15:8, reg_Det3D_STA8X8_M1_K0_R6 U8 SAD to SAI ratio to decide M1, normalized to 64 (1.1)
//Bit 7:0, reg_Det3D_STA8X8_M1_K1_R6 U8 SAD to ENG ratio to decide M1, normalized to 64 (0.8)
#define DET3D_MAT_STA_P1TH (0x1739)
#define P_DET3D_MAT_STA_P1TH (volatile unsigned int *)((0x1739 << 2) + 0xff900000)
//Bit 23:16, reg_Det3D_STAYUV_P1_TH_L4 U8 SAD to ENG Thrd offset to decide P1, X16 (100)
//Bit 15:8, reg_Det3D_STAEDG_P1_TH_L4 U8 SAD to ENG Thrd offset to decide P1, X16 (80)
//Bit 7:0, reg_Det3D_STAMOT_P1_TH_L4 U8 SAD to ENG Thrd offset to decide P1, X16 (48)
#define DET3D_MAT_STA_M1TH (0x173a)
#define P_DET3D_MAT_STA_M1TH (volatile unsigned int *)((0x173a << 2) + 0xff900000)
//Bit 23:16, reg_Det3D_STAYUV_M1_TH_L4 U8 SAD to ENG Thrd offset to decide M1, X16 (100)
//Bit 15:8, reg_Det3D_STAEDG_M1_TH_L4 U8 SAD to ENG Thrd offset to decide M1, X16 (80)
//Bit 7:0, reg_Det3D_STAMOT_M1_TH_L4 U8 SAD to ENG Thrd offset to decide M1, X16 (64)
#define DET3D_MAT_STA_RSFT (0x173b)
#define P_DET3D_MAT_STA_RSFT (volatile unsigned int *)((0x173b << 2) + 0xff900000)
//Bit 5:4, reg_Det3D_STAYUV_RSHFT U2 YUV statistics SAD and SAI calculation result right shift bits to accommodate the 12bits clipping:
// 0: mainly for images <=720x480: 1: mainly for images <=1366x768: 2: mainly for images <=1920X1080: 2; 3: other higher resolutions
//Bit 3:2, reg_Det3D_STAEDG_RSHFT U2 Horizontal and Vertical Edge Statistics SAD and SAI calculation result right shift bits to accommodate the 12bits clipping:
// 0: mainly for images <=720x480: 1: mainly for images <=1366x768: 2: mainly for images <=1920X1080: 2; 3: other higher resolutions
//Bit 1:0, reg_Det3D_STAMOT_RSHFT U2 Motion SAD and SAI calculation result right shift bits to accommodate the 12bits clipping:
// 0: mainly for images <=720x480: 1: mainly for images <=1366x768: 2: mainly for images <=1920X1080: 2; 3: other higher resolutions
#define DET3D_MAT_SYMTC_TH (0x173c)
#define P_DET3D_MAT_SYMTC_TH (volatile unsigned int *)((0x173c << 2) + 0xff900000)
//Bit 31:24, reg_Det3D_STALUM_symtc_Th U8 threshold to decide if the Luma statistics is TB or LR symmetric.
//Bit 23:16, reg_Det3D_STACHR_symtc_Th U8 threshold to decide if the Chroma (UV) statistics is TB or LR symmetric.
//Bit 15:8, reg_Det3D_STAEDG_symtc_Th U8 threshold to decide if the Horizontal and Vertical Edge statistics is TB or LR symmetric.
//Bit 7:0, reg_Det3D_STAMOT_symtc_Th U8 threshold to decide if the Motion statistics is TB or LR symmetric.
#define DET3D_RO_DET_CB_HOR (0x173d)
#define P_DET3D_RO_DET_CB_HOR (volatile unsigned int *)((0x173d << 2) + 0xff900000)
//Bit 31:16, RO_Det3D_ChessBd_NHor_value U16 X64: number of Pixels of Horizontally Surely NOT matching Chessboard pattern.
//Bit 15:0, RO_Det3D_ChessBd_Hor_value U16 X64: number of Pixels of Horizontally Surely matching Chessboard pattern.
#define DET3D_RO_DET_CB_VER (0x173e)
#define P_DET3D_RO_DET_CB_VER (volatile unsigned int *)((0x173e << 2) + 0xff900000)
//Bit 31:16, RO_Det3D_ChessBd_NVer_value U16 X64: number of Pixels of Vertically Surely NOT matching Chessboard pattern.
//Bit 15:0, RO_Det3D_ChessBd_Ver_value U16 X64: number of Pixels of Vertically Surely matching Chessboard pattern.
#define DET3D_RO_SPLT_HT (0x173f)
#define P_DET3D_RO_SPLT_HT (volatile unsigned int *)((0x173f << 2) + 0xff900000)
//Bit 24, RO_Det3D_Split_HT_valid U1 horizontal LR split border detected valid signal for top half picture
//Bit 20:16, RO_Det3D_Split_HT_pxnum U5 number of pixels included for the LR split position estimation for top half picture
//Bit 9:0, RO_Det3D_Split_HT_idxX4 S10 X4: horizontal pixel shifts of LR split position to the (ColMax/2) for top half picture
//// DET 3D REG DEFINE BEGIN ////
//// 8'h80~8'h8f
#define DET3D_RO_SPLT_HB (0x1780)
#define P_DET3D_RO_SPLT_HB (volatile unsigned int *)((0x1780 << 2) + 0xff900000)
//Bit 24, RO_Det3D_Split_HB_valid U1 horizontal LR split border detected valid signal for top half picture
//Bit 20:16, RO_Det3D_Split_HB_pxnum U5 number of pixels included for the LR split position estimation for top half picture
//Bit 9: 0, RO_Det3D_Split_HB_idxX4 S10 X4: horizontal pixel shifts of LR split position to the (ColMax/2) for top half picture
#define DET3D_RO_SPLT_VL (0x1781)
#define P_DET3D_RO_SPLT_VL (volatile unsigned int *)((0x1781 << 2) + 0xff900000)
//Bit 24, RO_Det3D_Split_VL_valid U1 horizontal LR split border detected valid signal for top half picture
//Bit 20:16, RO_Det3D_Split_VL_pxnum U5 number of pixels included for the LR split position estimation for top half picture
//Bit 9: 0, RO_Det3D_Split_VL_idxX4 S10 X4: horizontal pixel shifts of LR split position to the (ColMax/2) for top half picture
#define DET3D_RO_SPLT_VR (0x1782)
#define P_DET3D_RO_SPLT_VR (volatile unsigned int *)((0x1782 << 2) + 0xff900000)
//Bit 24 , RO_Det3D_Split_VR_valid U1 horizontal LR split border detected valid signal for top half picture
//Bit 20:16, RO_Det3D_Split_VR_pxnum U5 number of pixels included for the LR split position estimation for top half picture
//Bit 9: 0, RO_Det3D_Split_VR_idxX4 S10 X4: horizontal pixel shifts of LR split position to the (ColMax/2) for top half picture
#define DET3D_RO_MAT_LUMA_LR (0x1783)
#define P_DET3D_RO_MAT_LUMA_LR (volatile unsigned int *)((0x1783 << 2) + 0xff900000)
//Bit 15:0, RO_Luma_LR_score S2*8 LUMA statistics left right decision score for each band (8bands vertically),
// it can be -1/0/1:-1: most likely not LR symmetric 0: not sure 1: most likely LR symmetric
//Bit 7:0, RO_Luma_LR_symtc U1*8 Luma statistics left right pure symmetric for each band (8bands vertically),
// it can be 0/1: 0: not sure 1: most likely LR is pure symmetric
//Bit 4:0, RO_Luma_LR_sum S5 Total score of 8x8 Luma statistics for LR like decision,
// the larger this score, the more confidence that this is a LR 3D video. It is sum of RO_Luma_LR_score[0~7]
#define DET3D_RO_MAT_LUMA_TB (0x1784)
#define P_DET3D_RO_MAT_LUMA_TB (volatile unsigned int *)((0x1784 << 2) + 0xff900000)
//Bit 15:0, RO_Luma_TB_score S2*8 LUMA statistics Top/Bottom decision score for each band (8bands Horizontally),
//Bit 7:0, RO_Luma_TB_symtc Luma statistics Top/Bottompure symmetric for each band (8bands Horizontally),
//Bit 4:0, RO_Luma_TB_sum Total score of 8x8 Luma statistics for TB like decision,
#define DET3D_RO_MAT_CHRU_LR (0x1785)
#define P_DET3D_RO_MAT_CHRU_LR (volatile unsigned int *)((0x1785 << 2) + 0xff900000)
//Bit 15:0, RO_ChrU_LR_score S2*8 LUMA statistics left right decision score for each band (8bands vertically),
//Bit 7:0, RO_ChrU_LR_symtc CHRU statistics left right pure symmetric for each band (8bands vertically),
//Bit 4:0, RO_ChrU_LR_sum Total score of 8x8 ChrU statistics for LR like decision,
#define DET3D_RO_MAT_CHRU_TB (0x1786)
#define P_DET3D_RO_MAT_CHRU_TB (volatile unsigned int *)((0x1786 << 2) + 0xff900000)
//Bit 15:0, RO_ChrU_TB_score S2*8 CHRU statistics Top/Bottom decision score for each band (8bands Horizontally)
//Bit 7:0, RO_ChrU_TB_symtc CHRU statistics Top/Bottompure symmetric for each band (8bands Horizontally)
//Bit 4:0, RO_ChrU_TB_sum Total score of 8x8 ChrU statistics for TB like decision
#define DET3D_RO_MAT_CHRV_LR (0x1787)
#define P_DET3D_RO_MAT_CHRV_LR (volatile unsigned int *)((0x1787 << 2) + 0xff900000)
//Bit 15:0, RO_ChrV_LR_score S2*8 CHRUstatistics left right decision score for each band (8bands vertically)
//Bit 7:0, RO_ChrV_LR_symtc CHRV statistics left right pure symmetric for each band (8bands vertically)
//Bit 4:0, RO_ChrV_LR_sum Total score of 8x8 ChrV statistics for LR like decision
#define DET3D_RO_MAT_CHRV_TB (0x1788)
#define P_DET3D_RO_MAT_CHRV_TB (volatile unsigned int *)((0x1788 << 2) + 0xff900000)
//Bit 15:0, RO_ChrV_TB_score CHRV statistics Top/Bottom decision score for each band (8bands Horizontally)
//Bit 7:0, RO_ChrV_TB_symtc CHRV statistics Top/Bottompure symmetric for each band (8bands Horizontally)
//Bit 4:0, RO_ChrV_TB_sum Total score of 8x8 ChrV statistics for TB like decision
#define DET3D_RO_MAT_HEDG_LR (0x1789)
#define P_DET3D_RO_MAT_HEDG_LR (volatile unsigned int *)((0x1789 << 2) + 0xff900000)
//Bit 15:0, RO_Hedg_LR_score Horizontal Edge statistics left right decision score for each band (8bands vertically)
//Bit 7:0, RO_Hedg_LR_symtc Horizontal Edge statistics left right pure symmetric for each band (8bands vertically)
//Bit 4:0, RO_Hedg_LR_sum Total score of 8x8 Hedg statistics for LR like decision
#define DET3D_RO_MAT_HEDG_TB (0x178a)
#define P_DET3D_RO_MAT_HEDG_TB (volatile unsigned int *)((0x178a << 2) + 0xff900000)
//Bit 15:0, RO_Hedg_TB_score Horizontal Edge statistics Top/Bottom decision score for each band (8bands Horizontally)
//Bit 7:0, RO_Hedg_TB_symtc Horizontal Edge statistics Top/Bottompure symmetric for each band (8bands Horizontally)
//Bit 4:0, RO_Hedg_TB_sum Total score of 8x8 Hedg statistics for TB like decision
#define DET3D_RO_MAT_VEDG_LR (0x178b)
#define P_DET3D_RO_MAT_VEDG_LR (volatile unsigned int *)((0x178b << 2) + 0xff900000)
//Bit 15:0, RO_Vedg_LR_score Vertical Edge statistics left right decision score for each band (8bands vertically)
//Bit 7:0, RO_Vedg_LR_symtc Vertical Edge statistics left right pure symmetric for each band (8bands vertically)
//Bit 4:0, RO_Vedg_LR_sum Total score of 8x8 Vedg statistics for LR like decision
#define DET3D_RO_MAT_VEDG_TB (0x178c)
#define P_DET3D_RO_MAT_VEDG_TB (volatile unsigned int *)((0x178c << 2) + 0xff900000)
//Bit 15:0, RO_Vedg_TB_score Vertical Edge statistics Top/Bottom decision score for each band (8bands Horizontally)
//Bit 7:0, RO_Vedg_TB_symtc Vertical Edge statistics Top/Bottompure symmetric for each band (8bands Horizontally)
//Bit 4:0, RO_Vedg_TB_sum Total score of 8x8 Vedg statistics for TB like decision
#define DET3D_RO_MAT_MOTN_LR (0x178d)
#define P_DET3D_RO_MAT_MOTN_LR (volatile unsigned int *)((0x178d << 2) + 0xff900000)
//Bit 15:0, RO_Motn_LR_score Motion statistics left right decision score for each band (8bands vertically)
//Bit 7:0, RO_Motn_LR_symtc Motion statistics left right pure symmetric for each band (8bands vertically)
//Bit 4:0, RO_Motn_LR_sum Total score of 8x8 Motion statistics for LR like decision
#define DET3D_RO_MAT_MOTN_TB (0x178e)
#define P_DET3D_RO_MAT_MOTN_TB (volatile unsigned int *)((0x178e << 2) + 0xff900000)
//Bit 15:0, RO_Motn_TB_score Motion statistics Top/Bottom decision score for each band (8bands Horizontally)
//Bit 7:0, RO_Motn_TB_symtc Motion statistics Top/Bottompure symmetric for each band (8bands Horizontally)
//Bit 4:0, RO_Motn_TB_sum Total score of 8x8 Motion statistics for TB like decision
#define DET3D_RO_FRM_MOTN (0x178f)
#define P_DET3D_RO_FRM_MOTN (volatile unsigned int *)((0x178f << 2) + 0xff900000)
//Bit 15:0, RO_Det3D_Frame_Motion U16 frame based motion value sum for still image decision in FW.
/// mat ram read enter addr
#define DET3D_RAMRD_ADDR_PORT (0x179a)
#define P_DET3D_RAMRD_ADDR_PORT (volatile unsigned int *)((0x179a << 2) + 0xff900000)
#define DET3D_RAMRD_DATA_PORT (0x179b)
#define P_DET3D_RAMRD_DATA_PORT (volatile unsigned int *)((0x179b << 2) + 0xff900000)
//
// Closing file: det3d_regs.h
//
// `define DET3D_RO_SPLT_HB 8'h80
// //Bit 24, RO_Det3D_Split_HB_valid U1 horizontal LR split border detected valid signal for top half picture
// //Bit 20:16, RO_Det3D_Split_HB_pxnum U5 number of pixels included for the LR split position estimation for top half picture
// //Bit 9: 0, RO_Det3D_Split_HB_idxX4 S10 X4: horizontal pixel shifts of LR split position to the (ColMax/2) for top half picture
// `define DET3D_RO_SPLT_VL 8'h81
// //Bit 24, RO_Det3D_Split_VL_valid U1 horizontal LR split border detected valid signal for top half picture
// //Bit 20:16, RO_Det3D_Split_VL_pxnum U5 number of pixels included for the LR split position estimation for top half picture
// //Bit 9: 0, RO_Det3D_Split_VL_idxX4 S10 X4: horizontal pixel shifts of LR split position to the (ColMax/2) for top half picture
// `define DET3D_RO_SPLT_VR 8'h82
// //Bit 24 , RO_Det3D_Split_VR_valid U1 horizontal LR split border detected valid signal for top half picture
// //Bit 20:16, RO_Det3D_Split_VR_pxnum U5 number of pixels included for the LR split position estimation for top half picture
// //Bit 9: 0, RO_Det3D_Split_VR_idxX4 S10 X4: horizontal pixel shifts of LR split position to the (ColMax/2) for top half picture
// `define DET3D_RO_MAT_LUMA_LR 8'h83
// //Bit 15:0, RO_Luma_LR_score S2*8 LUMA statistics left right decision score for each band (8bands vertically),
// // it can be -1/0/1:-1: most likely not LR symmetric 0: not sure 1: most likely LR symmetric
// //Bit 7:0, RO_Luma_LR_symtc U1*8 Luma statistics left right pure symmetric for each band (8bands vertically),
// // it can be 0/1: 0: not sure 1: most likely LR is pure symmetric
// //Bit 4:0, RO_Luma_LR_sum S5 Total score of 8x8 Luma statistics for LR like decision,
// // the larger this score, the more confidence that this is a LR 3D video. It is sum of RO_Luma_LR_score[0~7]
// `define DET3D_RO_MAT_LUMA_TB 8'h84
// //Bit 15:0, RO_Luma_TB_score S2*8 LUMA statistics Top/Bottom decision score for each band (8bands Horizontally),
// //Bit 7:0, RO_Luma_TB_symtc Luma statistics Top/Bottompure symmetric for each band (8bands Horizontally),
// //Bit 4:0, RO_Luma_TB_sum Total score of 8x8 Luma statistics for TB like decision,
// `define DET3D_RO_MAT_CHRU_LR 8'h85
// //Bit 15:0, RO_ChrU_LR_score S2*8 LUMA statistics left right decision score for each band (8bands vertically),
// //Bit 7:0, RO_ChrU_LR_symtc CHRU statistics left right pure symmetric for each band (8bands vertically),
// //Bit 4:0, RO_ChrU_LR_sum Total score of 8x8 ChrU statistics for LR like decision,
// `define DET3D_RO_MAT_CHRU_TB 8'h86
// //Bit 15:0, RO_ChrU_TB_score S2*8 CHRU statistics Top/Bottom decision score for each band (8bands Horizontally)
// //Bit 7:0, RO_ChrU_TB_symtc CHRU statistics Top/Bottompure symmetric for each band (8bands Horizontally)
// //Bit 4:0, RO_ChrU_TB_sum Total score of 8x8 ChrU statistics for TB like decision
// `define DET3D_RO_MAT_CHRV_LR 8'h87
// //Bit 15:0, RO_ChrV_LR_score S2*8 CHRUstatistics left right decision score for each band (8bands vertically)
// //Bit 7:0, RO_ChrV_LR_symtc CHRV statistics left right pure symmetric for each band (8bands vertically)
// //Bit 4:0, RO_ChrV_LR_sum Total score of 8x8 ChrV statistics for LR like decision
// `define DET3D_RO_MAT_CHRV_TB 8'h88
// //Bit 15:0, RO_ChrV_TB_score CHRV statistics Top/Bottom decision score for each band (8bands Horizontally)
// //Bit 7:0, RO_ChrV_TB_symtc CHRV statistics Top/Bottompure symmetric for each band (8bands Horizontally)
// //Bit 4:0, RO_ChrV_TB_sum Total score of 8x8 ChrV statistics for TB like decision
// `define DET3D_RO_MAT_HEDG_LR 8'h89
// //Bit 15:0, RO_Hedg_LR_score Horizontal Edge statistics left right decision score for each band (8bands vertically)
// //Bit 7:0, RO_Hedg_LR_symtc Horizontal Edge statistics left right pure symmetric for each band (8bands vertically)
// //Bit 4:0, RO_Hedg_LR_sum Total score of 8x8 Hedg statistics for LR like decision
// `define DET3D_RO_MAT_HEDG_TB 8'h8a
// //Bit 15:0, RO_Hedg_TB_score Horizontal Edge statistics Top/Bottom decision score for each band (8bands Horizontally)
// //Bit 7:0, RO_Hedg_TB_symtc Horizontal Edge statistics Top/Bottompure symmetric for each band (8bands Horizontally)
// //Bit 4:0, RO_Hedg_TB_sum Total score of 8x8 Hedg statistics for TB like decision
// `define DET3D_RO_MAT_VEDG_LR 8'h8b
// //Bit 15:0, RO_Vedg_LR_score Vertical Edge statistics left right decision score for each band (8bands vertically)
// //Bit 7:0, RO_Vedg_LR_symtc Vertical Edge statistics left right pure symmetric for each band (8bands vertically)
// //Bit 4:0, RO_Vedg_LR_sum Total score of 8x8 Vedg statistics for LR like decision
// `define DET3D_RO_MAT_VEDG_TB 8'h8c
// //Bit 15:0, RO_Vedg_TB_score Vertical Edge statistics Top/Bottom decision score for each band (8bands Horizontally)
// //Bit 7:0, RO_Vedg_TB_symtc Vertical Edge statistics Top/Bottompure symmetric for each band (8bands Horizontally)
// //Bit 4:0, RO_Vedg_TB_sum Total score of 8x8 Vedg statistics for TB like decision
// `define DET3D_RO_MAT_MOTN_LR 8'h8d
// //Bit 15:0, RO_Motn_LR_score Motion statistics left right decision score for each band (8bands vertically)
// //Bit 7:0, RO_Motn_LR_symtc Motion statistics left right pure symmetric for each band (8bands vertically)
// //Bit 4:0, RO_Motn_LR_sum Total score of 8x8 Motion statistics for LR like decision
// `define DET3D_RO_MAT_MOTN_TB 8'h8e
// //Bit 15:0, RO_Motn_TB_score Motion statistics Top/Bottom decision score for each band (8bands Horizontally)
// //Bit 7:0, RO_Motn_TB_symtc Motion statistics Top/Bottompure symmetric for each band (8bands Horizontally)
// //Bit 4:0, RO_Motn_TB_sum Total score of 8x8 Motion statistics for TB like decision
// `define DET3D_RO_FRM_MOTN 8'h8f
// //Bit 15:0, RO_Det3D_Frame_Motion U16 frame based motion value sum for still image decision in FW.
#define DI_EI_CTRL10 (0x1793)
#define P_DI_EI_CTRL10 (volatile unsigned int *)((0x1793 << 2) + 0xff900000)
//bit 31:28, reg_ei_caldrt_hstrrgchk_drtth
//bit 27:24, reg_ei_caldrt_hstrrgchk_frcverthrd
//bit 23:20, reg_ei_caldrt_hstrrgchk_mg
//bit 19, reg_ei_caldrt_hstrrgchk_1sidnul
//bit 18, reg_ei_caldrt_hstrrgchk_excpcnf
//bit 17:16, reg_ei_caldrt_hstrrgchk_ws
//bit 15, reg_ei_caldrt_hstrrgchk_en
//bit 14:13, reg_ei_caldrt_hpncheck_mode
//bit 12, reg_ei_caldrt_hpncheck_mute
//bit 11:9, reg_ei_caldrt_hcnfcheck_mg2
//bit 8:6, reg_ei_caldrt_hcnfcheck_mg1
//bit 5:4, reg_ei_caldrt_hcnfcheck_mode
//bit 3:0, reg_ei_caldrt_hcnfcheck_mg2
#define DI_NR_1_CTRL0 (0x1794)
#define P_DI_NR_1_CTRL0 (volatile unsigned int *)((0x1794 << 2) + 0xff900000)
#define DI_NR_1_CTRL1 (0x1795)
#define P_DI_NR_1_CTRL1 (volatile unsigned int *)((0x1795 << 2) + 0xff900000)
#define DI_NR_1_CTRL2 (0x1796)
#define P_DI_NR_1_CTRL2 (volatile unsigned int *)((0x1796 << 2) + 0xff900000)
#define DI_NR_1_CTRL3 (0x1797)
#define P_DI_NR_1_CTRL3 (volatile unsigned int *)((0x1797 << 2) + 0xff900000)
#define DI_EI_XWIN0 (0x1798)
#define P_DI_EI_XWIN0 (volatile unsigned int *)((0x1798 << 2) + 0xff900000)
//bit 27:16, ei_xend0
//bit 11:0, ei_xstart0
#define DI_EI_XWIN1 (0x1799)
#define P_DI_EI_XWIN1 (volatile unsigned int *)((0x1799 << 2) + 0xff900000)
/// mat ram read enter addr
// `define DET3D_RAMRD_ADDR_PORT 8'h9a
// `define DET3D_RAMRD_DATA_PORT 8'h9b
#define NR2_CFR_PARA_CFG0 (0x179c)
#define P_NR2_CFR_PARA_CFG0 (volatile unsigned int *)((0x179c << 2) + 0xff900000)
//Bit 8, reg_CFR_CurDif_luma_mode Current Field Top/Bot line Luma difference calculation mode
//Bit 7:6, reg_MACFR_frm_phase U2 This will be a field based phase register that need to be set by FW phase to phase:
// this will be calculated based on dbdr_phase of the specific line of this frame.
// u1: dbdr_phase=1, center line is DB in current line; dbdr_phase=2, center line is Dr in current line;
//Bit 5:4, reg_CFR_CurDif_tran_mode U2 Current Field Top/Bot line Luma/Chroma transition level calculation mode,
//Bit 3:2, reg_CFR_alpha_mode U2 Alpha selection mode for CFR block from curAlp and motAlp i.e. 0: motAlp; 1: (motAlp+curAlp)/2; 2: min(motAlp,curAlp); 3: max(motAlp,curAlp);
//Bit 1:0, reg_CFR_Motion_Luma_mode U2 LumaMotion Calculation mode for MA-CFR. 0: top/bot Lumma motion; 1: middle Luma Motion 2: top/bot + middle motion; 3: max(top/tot motion, middle motion)
#define NR2_CFR_PARA_CFG1 (0x179d)
#define P_NR2_CFR_PARA_CFG1 (volatile unsigned int *)((0x179d << 2) + 0xff900000)
//Bit 23:16, reg_CFR_alpha_gain gain to map muxed curAlp and motAlp to alpha that will be used for final blending.
//Bit 15: 8, reg_CFR_Motion_ofst Offset to Motion to calculate the motAlp, e,g:motAlp= reg_CFR_Motion_ofst- Motion;This register can be seen as the level of motion that we consider it at moving.
//Bit 7: 0, reg_CFR_CurDif_gain gain to CurDif to map to alpha, normalized to 32;
//// DET 3D REG DEFINE END ////
#define DI_EI_CTRL11 (0x179e)
#define P_DI_EI_CTRL11 (volatile unsigned int *)((0x179e << 2) + 0xff900000)
//bit 30:29, reg_ei_amb_detect_mode
//bit 28:24, reg_ei_amb_detect_winth
//bit 23:21, reg_ei_amb_decide_rppth
//bit 20:19, reg_ei_retime_lastmappncnfltchk_drtth
//bit 18:16, reg_ei_retime_lastmappncnfltchk_mode
//bit 15:14, reg_ei_retime_lastmapvertfrcchk_mode
//bit 13:12, reg_ei_retime_lastvertfrcchk_mode
//bit 11:8, reg_ei_retime_lastpnchk_drtth
//bit 6, reg_ei_retime_lastpnchk_en
//bit 5:4, reg_ei_retime_mode
//bit 3, reg_ei_retime_last_en
//bit 2, reg_ei_retime_ab_en
//bit 1, reg_ei_caldrt_hstrvertfrcchk_en
//bit 0, reg_ei_caldrt_hstrrgchk_mode
#define DI_EI_CTRL12 (0x179f)
#define P_DI_EI_CTRL12 (volatile unsigned int *)((0x179f << 2) + 0xff900000)
//bit 31:28, reg_ei_drtdelay2_lmt
//bit 27:26, reg_ei_drtdelay2_notver_lrwin
//bit 25:24, reg_ei_drtdelay_mode
//bit 23, reg_ei_drtdelay2_mode
//bit 22:20, reg_ei_assign_xla_signm0th
//bit 19, reg_ei_assign_pkbiasvert_en
//bit 18, reg_ei_assign_xla_en
//bit 17:16, reg_ei_assign_xla_mode
//bit 15:12, reg_ei_assign_nlfilter_magin
//bit 11:8, reg_ei_localsearch_maxrange
//bit 7:4, reg_ei_xla_drtth
//bit 3:0, reg_ei_flatmsad_thrd
#define DI_CONTWR_X (0x17a0)
#define P_DI_CONTWR_X (volatile unsigned int *)((0x17a0 << 2) + 0xff900000)
#define DI_CONTWR_Y (0x17a1)
#define P_DI_CONTWR_Y (volatile unsigned int *)((0x17a1 << 2) + 0xff900000)
#define DI_CONTWR_CTRL (0x17a2)
#define P_DI_CONTWR_CTRL (volatile unsigned int *)((0x17a2 << 2) + 0xff900000)
#define DI_CONTPRD_X (0x17a3)
#define P_DI_CONTPRD_X (volatile unsigned int *)((0x17a3 << 2) + 0xff900000)
#define DI_CONTPRD_Y (0x17a4)
#define P_DI_CONTPRD_Y (volatile unsigned int *)((0x17a4 << 2) + 0xff900000)
#define DI_CONTP2RD_X (0x17a5)
#define P_DI_CONTP2RD_X (volatile unsigned int *)((0x17a5 << 2) + 0xff900000)
#define DI_CONTP2RD_Y (0x17a6)
#define P_DI_CONTP2RD_Y (volatile unsigned int *)((0x17a6 << 2) + 0xff900000)
#define DI_CONTRD_CTRL (0x17a7)
#define P_DI_CONTRD_CTRL (volatile unsigned int *)((0x17a7 << 2) + 0xff900000)
#define DI_EI_CTRL13 (0x17a8)
#define P_DI_EI_CTRL13 (volatile unsigned int *)((0x17a8 << 2) + 0xff900000)
//bit 27:24, reg_ei_int_drt2x_chrdrt_limit
//bit 23:20, reg_ei_int_drt16x_core
//bit 19:16, reg_ei_int_drtdelay2_notver_cancv
//bit 15:8, reg_ei_int_drtdelay2_notver_sadth
//bit 7:0, reg_ei_int_drtdelay2_vlddrt_sadth
#define DI_MTN_1_CTRL6 (0x17a9)
#define P_DI_MTN_1_CTRL6 (volatile unsigned int *)((0x17a9 << 2) + 0xff900000)
//bit 31:24, mtn_m1b_extnd
//bit 23:16, mtn_m1b_errod
//bit 15: 8, mtn_core_ykinter
//bit 7: 0, mtn_core_ckinter
#define DI_MTN_1_CTRL7 (0x17aa)
#define P_DI_MTN_1_CTRL7 (volatile unsigned int *)((0x17aa << 2) + 0xff900000)
//bit 31:24, mtn_core_mxcmby
//bit 23:16, mtn_core_mxcmbc
//bit 15: 8, mtn_core_y
//bit 7: 0, mtn_core_c
#define DI_MTN_1_CTRL8 (0x17ab)
#define P_DI_MTN_1_CTRL8 (volatile unsigned int *)((0x17ab << 2) + 0xff900000)
//bit 31:24, mtn_fcore_ykinter
//bit 23:16, mtn_fcore_ckinter
//bit 15: 8, mtn_fcore_ykintra
//bit 7: 0, mtn_fcore_ckintra
#define DI_MTN_1_CTRL9 (0x17ac)
#define P_DI_MTN_1_CTRL9 (volatile unsigned int *)((0x17ac << 2) + 0xff900000)
//bit 31:24, mtn_fcore_2yrate
//bit 23:16, mtn_fcore_2crate
//bit 15: 8, mtn_fcore_y
//bit 7: 0, mtn_fcore_c
#define DI_MTN_1_CTRL10 (0x17ad)
#define P_DI_MTN_1_CTRL10 (volatile unsigned int *)((0x17ad << 2) + 0xff900000)
//bit 27:24, mtn_motfld0
//bit 19:16, mtn_stlfld0
//bit 11: 8, mtn_motfld1
//bit 3: 0, mtn_stlfld1
#define DI_MTN_1_CTRL11 (0x17ae)
#define P_DI_MTN_1_CTRL11 (volatile unsigned int *)((0x17ae << 2) + 0xff900000)
//bit 27:24, mtn_smotevn
//bit 20:16, mtn_smotodd
//bit 11: 8, mtn_sstlevn
//bit 4: 0, mtn_sstlodd
#define DI_MTN_1_CTRL12 (0x17af)
#define P_DI_MTN_1_CTRL12 (volatile unsigned int *)((0x17af << 2) + 0xff900000)
//bit 31:24, mtn_mgain
//bit 17:16, mtn_mmode
//bit 15: 8, mtn_sthrd
//bit 4: 0, mtn_sgain
#define DI_NRWR_X (0x17c0)
#define P_DI_NRWR_X (volatile unsigned int *)((0x17c0 << 2) + 0xff900000)
#define DI_NRWR_Y (0x17c1)
#define P_DI_NRWR_Y (volatile unsigned int *)((0x17c1 << 2) + 0xff900000)
//bit 31:30 nrwr_words_lim
//bit 29 nrwr_rev_y
//bit 28:16 nrwr_start_y
//bit 15 nrwr_ext_en
//bit 12:0 nrwr_end_y
#define DI_NRWR_CTRL (0x17c2)
#define P_DI_NRWR_CTRL (volatile unsigned int *)((0x17c2 << 2) + 0xff900000)
//bit 31 pending_ddr_wrrsp_diwr
//bit 30 nrwr_reg_swap
//bit 29:26 nrwr_burst_lim
//bit 25 nrwr_canvas_syncen
//bit 24 nrwr_no_clk_gate
//bit 23:22 nrwr_rgb_mode 0:422 to one canvas;1:4:4:4 to one canvas;
//bit 21:20 nrwr_hconv_mode
//bit 19:18 nrwr_vconv_mode
//bit 17 nrwr_swap_cbcr
//bit 16 nrwr_urgent
//bit 15:8 nrwr_canvas_index_chroma
//bit 7:0 nrwr_canvas_index_luma
#define DI_MTNWR_X (0x17c3)
#define P_DI_MTNWR_X (volatile unsigned int *)((0x17c3 << 2) + 0xff900000)
#define DI_MTNWR_Y (0x17c4)
#define P_DI_MTNWR_Y (volatile unsigned int *)((0x17c4 << 2) + 0xff900000)
#define DI_MTNWR_CTRL (0x17c5)
#define P_DI_MTNWR_CTRL (volatile unsigned int *)((0x17c5 << 2) + 0xff900000)
#define DI_DIWR_X (0x17c6)
#define P_DI_DIWR_X (volatile unsigned int *)((0x17c6 << 2) + 0xff900000)
#define DI_DIWR_Y (0x17c7)
#define P_DI_DIWR_Y (volatile unsigned int *)((0x17c7 << 2) + 0xff900000)
//bit 31:30 diwr_words_lim
//bit 29 diwr_rev_y
//bit 28:16 diwr_start_y
//bit 15 diwr_ext_en
//bit 12:0 diwr_end_y
#define DI_DIWR_CTRL (0x17c8)
#define P_DI_DIWR_CTRL (volatile unsigned int *)((0x17c8 << 2) + 0xff900000)
//bit 31 pending_ddr_wrrsp_diwr
//bit 30 diwr_reg_swap
//bit 29:26 diwr_burst_lim
//bit 25 diwr_canvas_syncen
//bit 24 diwr_no_clk_gate
//bit 23:22 diwr_rgb_mode 0:422 to one canvas;1:4:4:4 to one canvas;
//bit 21:20 diwr_hconv_mode
//bit 19:18 diwr_vconv_mode
//bit 17 diwr_swap_cbcr
//bit 16 diwr_urgent
//bit 15:8 diwr_canvas_index_chroma
//bit 7:0 diwr_canvas_index_luma
//`define DI_MTNCRD_X 8'hc9
//`define DI_MTNCRD_Y 8'hca
#define DI_MTNPRD_X (0x17cb)
#define P_DI_MTNPRD_X (volatile unsigned int *)((0x17cb << 2) + 0xff900000)
#define DI_MTNPRD_Y (0x17cc)
#define P_DI_MTNPRD_Y (volatile unsigned int *)((0x17cc << 2) + 0xff900000)
#define DI_MTNRD_CTRL (0x17cd)
#define P_DI_MTNRD_CTRL (volatile unsigned int *)((0x17cd << 2) + 0xff900000)
#define DI_INP_GEN_REG (0x17ce)
#define P_DI_INP_GEN_REG (volatile unsigned int *)((0x17ce << 2) + 0xff900000)
#define DI_INP_CANVAS0 (0x17cf)
#define P_DI_INP_CANVAS0 (volatile unsigned int *)((0x17cf << 2) + 0xff900000)
#define DI_INP_LUMA_X0 (0x17d0)
#define P_DI_INP_LUMA_X0 (volatile unsigned int *)((0x17d0 << 2) + 0xff900000)
#define DI_INP_LUMA_Y0 (0x17d1)
#define P_DI_INP_LUMA_Y0 (volatile unsigned int *)((0x17d1 << 2) + 0xff900000)
#define DI_INP_CHROMA_X0 (0x17d2)
#define P_DI_INP_CHROMA_X0 (volatile unsigned int *)((0x17d2 << 2) + 0xff900000)
#define DI_INP_CHROMA_Y0 (0x17d3)
#define P_DI_INP_CHROMA_Y0 (volatile unsigned int *)((0x17d3 << 2) + 0xff900000)
#define DI_INP_RPT_LOOP (0x17d4)
#define P_DI_INP_RPT_LOOP (volatile unsigned int *)((0x17d4 << 2) + 0xff900000)
#define DI_INP_LUMA0_RPT_PAT (0x17d5)
#define P_DI_INP_LUMA0_RPT_PAT (volatile unsigned int *)((0x17d5 << 2) + 0xff900000)
#define DI_INP_CHROMA0_RPT_PAT (0x17d6)
#define P_DI_INP_CHROMA0_RPT_PAT (volatile unsigned int *)((0x17d6 << 2) + 0xff900000)
#define DI_INP_DUMMY_PIXEL (0x17d7)
#define P_DI_INP_DUMMY_PIXEL (volatile unsigned int *)((0x17d7 << 2) + 0xff900000)
#define DI_INP_LUMA_FIFO_SIZE (0x17d8)
#define P_DI_INP_LUMA_FIFO_SIZE (volatile unsigned int *)((0x17d8 << 2) + 0xff900000)
#define DI_INP_RANGE_MAP_Y (0x17ba)
#define P_DI_INP_RANGE_MAP_Y (volatile unsigned int *)((0x17ba << 2) + 0xff900000)
#define DI_INP_RANGE_MAP_CB (0x17bb)
#define P_DI_INP_RANGE_MAP_CB (volatile unsigned int *)((0x17bb << 2) + 0xff900000)
#define DI_INP_RANGE_MAP_CR (0x17bc)
#define P_DI_INP_RANGE_MAP_CR (volatile unsigned int *)((0x17bc << 2) + 0xff900000)
#define DI_INP_GEN_REG2 (0x1791)
#define P_DI_INP_GEN_REG2 (volatile unsigned int *)((0x1791 << 2) + 0xff900000)
#define DI_INP_FMT_CTRL (0x17d9)
#define P_DI_INP_FMT_CTRL (volatile unsigned int *)((0x17d9 << 2) + 0xff900000)
#define DI_INP_FMT_W (0x17da)
#define P_DI_INP_FMT_W (volatile unsigned int *)((0x17da << 2) + 0xff900000)
#define DI_MEM_GEN_REG (0x17db)
#define P_DI_MEM_GEN_REG (volatile unsigned int *)((0x17db << 2) + 0xff900000)
#define DI_MEM_CANVAS0 (0x17dc)
#define P_DI_MEM_CANVAS0 (volatile unsigned int *)((0x17dc << 2) + 0xff900000)
#define DI_MEM_LUMA_X0 (0x17dd)
#define P_DI_MEM_LUMA_X0 (volatile unsigned int *)((0x17dd << 2) + 0xff900000)
#define DI_MEM_LUMA_Y0 (0x17de)
#define P_DI_MEM_LUMA_Y0 (volatile unsigned int *)((0x17de << 2) + 0xff900000)
#define DI_MEM_CHROMA_X0 (0x17df)
#define P_DI_MEM_CHROMA_X0 (volatile unsigned int *)((0x17df << 2) + 0xff900000)
#define DI_MEM_CHROMA_Y0 (0x17e0)
#define P_DI_MEM_CHROMA_Y0 (volatile unsigned int *)((0x17e0 << 2) + 0xff900000)
#define DI_MEM_RPT_LOOP (0x17e1)
#define P_DI_MEM_RPT_LOOP (volatile unsigned int *)((0x17e1 << 2) + 0xff900000)
#define DI_MEM_LUMA0_RPT_PAT (0x17e2)
#define P_DI_MEM_LUMA0_RPT_PAT (volatile unsigned int *)((0x17e2 << 2) + 0xff900000)
#define DI_MEM_CHROMA0_RPT_PAT (0x17e3)
#define P_DI_MEM_CHROMA0_RPT_PAT (volatile unsigned int *)((0x17e3 << 2) + 0xff900000)
#define DI_MEM_DUMMY_PIXEL (0x17e4)
#define P_DI_MEM_DUMMY_PIXEL (volatile unsigned int *)((0x17e4 << 2) + 0xff900000)
#define DI_MEM_LUMA_FIFO_SIZE (0x17e5)
#define P_DI_MEM_LUMA_FIFO_SIZE (volatile unsigned int *)((0x17e5 << 2) + 0xff900000)
#define DI_MEM_RANGE_MAP_Y (0x17bd)
#define P_DI_MEM_RANGE_MAP_Y (volatile unsigned int *)((0x17bd << 2) + 0xff900000)
#define DI_MEM_RANGE_MAP_CB (0x17be)
#define P_DI_MEM_RANGE_MAP_CB (volatile unsigned int *)((0x17be << 2) + 0xff900000)
#define DI_MEM_RANGE_MAP_CR (0x17bf)
#define P_DI_MEM_RANGE_MAP_CR (volatile unsigned int *)((0x17bf << 2) + 0xff900000)
#define DI_MEM_GEN_REG2 (0x1792)
#define P_DI_MEM_GEN_REG2 (volatile unsigned int *)((0x1792 << 2) + 0xff900000)
#define DI_MEM_FMT_CTRL (0x17e6)
#define P_DI_MEM_FMT_CTRL (volatile unsigned int *)((0x17e6 << 2) + 0xff900000)
#define DI_MEM_FMT_W (0x17e7)
#define P_DI_MEM_FMT_W (volatile unsigned int *)((0x17e7 << 2) + 0xff900000)
#define DI_IF1_GEN_REG (0x17e8)
#define P_DI_IF1_GEN_REG (volatile unsigned int *)((0x17e8 << 2) + 0xff900000)
#define DI_IF1_CANVAS0 (0x17e9)
#define P_DI_IF1_CANVAS0 (volatile unsigned int *)((0x17e9 << 2) + 0xff900000)
#define DI_IF1_LUMA_X0 (0x17ea)
#define P_DI_IF1_LUMA_X0 (volatile unsigned int *)((0x17ea << 2) + 0xff900000)
#define DI_IF1_LUMA_Y0 (0x17eb)
#define P_DI_IF1_LUMA_Y0 (volatile unsigned int *)((0x17eb << 2) + 0xff900000)
#define DI_IF1_CHROMA_X0 (0x17ec)
#define P_DI_IF1_CHROMA_X0 (volatile unsigned int *)((0x17ec << 2) + 0xff900000)
#define DI_IF1_CHROMA_Y0 (0x17ed)
#define P_DI_IF1_CHROMA_Y0 (volatile unsigned int *)((0x17ed << 2) + 0xff900000)
#define DI_IF1_RPT_LOOP (0x17ee)
#define P_DI_IF1_RPT_LOOP (volatile unsigned int *)((0x17ee << 2) + 0xff900000)
#define DI_IF1_LUMA0_RPT_PAT (0x17ef)
#define P_DI_IF1_LUMA0_RPT_PAT (volatile unsigned int *)((0x17ef << 2) + 0xff900000)
#define DI_IF1_CHROMA0_RPT_PAT (0x17f0)
#define P_DI_IF1_CHROMA0_RPT_PAT (volatile unsigned int *)((0x17f0 << 2) + 0xff900000)
#define DI_IF1_DUMMY_PIXEL (0x17f1)
#define P_DI_IF1_DUMMY_PIXEL (volatile unsigned int *)((0x17f1 << 2) + 0xff900000)
#define DI_IF1_LUMA_FIFO_SIZE (0x17f2)
#define P_DI_IF1_LUMA_FIFO_SIZE (volatile unsigned int *)((0x17f2 << 2) + 0xff900000)
#define DI_IF1_RANGE_MAP_Y (0x17fc)
#define P_DI_IF1_RANGE_MAP_Y (volatile unsigned int *)((0x17fc << 2) + 0xff900000)
#define DI_IF1_RANGE_MAP_CB (0x17fd)
#define P_DI_IF1_RANGE_MAP_CB (volatile unsigned int *)((0x17fd << 2) + 0xff900000)
#define DI_IF1_RANGE_MAP_CR (0x17fe)
#define P_DI_IF1_RANGE_MAP_CR (volatile unsigned int *)((0x17fe << 2) + 0xff900000)
#define DI_IF1_GEN_REG2 (0x1790)
#define P_DI_IF1_GEN_REG2 (volatile unsigned int *)((0x1790 << 2) + 0xff900000)
#define DI_IF1_FMT_CTRL (0x17f3)
#define P_DI_IF1_FMT_CTRL (volatile unsigned int *)((0x17f3 << 2) + 0xff900000)
#define DI_IF1_FMT_W (0x17f4)
#define P_DI_IF1_FMT_W (volatile unsigned int *)((0x17f4 << 2) + 0xff900000)
#define DI_CHAN2_GEN_REG (0x17f5)
#define P_DI_CHAN2_GEN_REG (volatile unsigned int *)((0x17f5 << 2) + 0xff900000)
#define DI_CHAN2_CANVAS0 (0x17f6)
#define P_DI_CHAN2_CANVAS0 (volatile unsigned int *)((0x17f6 << 2) + 0xff900000)
#define DI_CHAN2_LUMA_X0 (0x17f7)
#define P_DI_CHAN2_LUMA_X0 (volatile unsigned int *)((0x17f7 << 2) + 0xff900000)
#define DI_CHAN2_LUMA_Y0 (0x17f8)
#define P_DI_CHAN2_LUMA_Y0 (volatile unsigned int *)((0x17f8 << 2) + 0xff900000)
#define DI_CHAN2_CHROMA_X0 (0x17f9)
#define P_DI_CHAN2_CHROMA_X0 (volatile unsigned int *)((0x17f9 << 2) + 0xff900000)
#define DI_CHAN2_CHROMA_Y0 (0x17fa)
#define P_DI_CHAN2_CHROMA_Y0 (volatile unsigned int *)((0x17fa << 2) + 0xff900000)
#define DI_CHAN2_RPT_LOOP (0x17fb)
#define P_DI_CHAN2_RPT_LOOP (volatile unsigned int *)((0x17fb << 2) + 0xff900000)
#define DI_CHAN2_LUMA0_RPT_PAT (0x17b0)
#define P_DI_CHAN2_LUMA0_RPT_PAT (volatile unsigned int *)((0x17b0 << 2) + 0xff900000)
#define DI_CHAN2_CHROMA0_RPT_PAT (0x17b1)
#define P_DI_CHAN2_CHROMA0_RPT_PAT (volatile unsigned int *)((0x17b1 << 2) + 0xff900000)
#define DI_CHAN2_DUMMY_PIXEL (0x17b2)
#define P_DI_CHAN2_DUMMY_PIXEL (volatile unsigned int *)((0x17b2 << 2) + 0xff900000)
#define DI_CHAN2_LUMA_FIFO_SIZE (0x17b3)
#define P_DI_CHAN2_LUMA_FIFO_SIZE (volatile unsigned int *)((0x17b3 << 2) + 0xff900000)
#define DI_CHAN2_RANGE_MAP_Y (0x17b4)
#define P_DI_CHAN2_RANGE_MAP_Y (volatile unsigned int *)((0x17b4 << 2) + 0xff900000)
#define DI_CHAN2_RANGE_MAP_CB (0x17b5)
#define P_DI_CHAN2_RANGE_MAP_CB (volatile unsigned int *)((0x17b5 << 2) + 0xff900000)
#define DI_CHAN2_RANGE_MAP_CR (0x17b6)
#define P_DI_CHAN2_RANGE_MAP_CR (volatile unsigned int *)((0x17b6 << 2) + 0xff900000)
#define DI_CHAN2_GEN_REG2 (0x17b7)
#define P_DI_CHAN2_GEN_REG2 (volatile unsigned int *)((0x17b7 << 2) + 0xff900000)
#define DI_CHAN2_FMT_CTRL (0x17b8)
#define P_DI_CHAN2_FMT_CTRL (volatile unsigned int *)((0x17b8 << 2) + 0xff900000)
#define DI_CHAN2_FMT_W (0x17b9)
#define P_DI_CHAN2_FMT_W (volatile unsigned int *)((0x17b9 << 2) + 0xff900000)
//
#define DOLBY_PATH_CTRL 0x1a0c
#define OSD_PATH_MISC_CTRL 0x1a0e
#define MALI_AFBCD_TOP_CTRL 0x1a0f
#define VPP_VD2_HDR_IN_SIZE 0x1df0
#define VPP_OSD1_IN_SIZE 0x1df1
#define VPP_GCLK_CTRL2 0x1df2
#define VD2_PPS_DUMMY_DATA 0x1df4
#define VPP_OSD1_BLD_H_SCOPE 0x1df5
#define VPP_OSD1_BLD_V_SCOPE 0x1df6
#define VPP_OSD2_BLD_H_SCOPE 0x1df7
#define VPP_OSD2_BLD_V_SCOPE 0x1df8
#define VPP_WRBAK_CTRL 0x1df9
#define VPP_SLEEP_CTRL 0x1dfa
#define VD1_BLEND_SRC_CTRL 0x1dfb
#define VD2_BLEND_SRC_CTRL 0x1dfc
#define OSD1_BLEND_SRC_CTRL 0x1dfd
#define OSD2_BLEND_SRC_CTRL 0x1dfe
#define VIU_OSD_BLEND_CTRL 0x39b0
#define VIU_OSD_BLEND_CTRL1 0x39c0
#define VIU_OSD_BLEND_DIN0_SCOPE_H 0x39b1
#define VIU_OSD_BLEND_DIN0_SCOPE_V 0x39b2
#define VIU_OSD_BLEND_DIN1_SCOPE_H 0x39b3
#define VIU_OSD_BLEND_DIN1_SCOPE_V 0x39b4
#define VIU_OSD_BLEND_DIN2_SCOPE_H 0x39b5
#define VIU_OSD_BLEND_DIN2_SCOPE_V 0x39b6
#define VIU_OSD_BLEND_DIN3_SCOPE_H 0x39b7
#define VIU_OSD_BLEND_DIN3_SCOPE_V 0x39b8
#define VIU_OSD_BLEND_DUMMY_DATA0 0x39b9
#define VIU_OSD_BLEND_DUMMY_ALPHA 0x39ba
#define VIU_OSD_BLEND_BLEND0_SIZE 0x39bb
#define VIU_OSD_BLEND_BLEND1_SIZE 0x39bc
#define VIU_OSD_BLEND_RO_CURRENT_XY 0x39bf
#define VPP_POST_BLEND_BLEND_DUMMY_DATA 0x3968
#define VPP_POST_BLEND_DUMMY_ALPHA 0x3969
#define VPP_POST2_MATRIX_COEF00_01 0x39a0
#define VPP_POST2_MATRIX_COEF02_10 0x39a1
#define VPP_POST2_MATRIX_COEF11_12 0x39a2
#define VPP_POST2_MATRIX_COEF20_21 0x39a3
#define VPP_POST2_MATRIX_COEF22 0x39a4
#define VPP_POST2_MATRIX_COEF13_14 0x39a5
#define VPP_POST2_MATRIX_COEF23_24 0x39a6
#define VPP_POST2_MATRIX_COEF15_25 0x39a7
#define VPP_POST2_MATRIX_CLIP 0x39a8
#define VPP_POST2_MATRIX_OFFSET0_1 0x39a9
#define VPP_POST2_MATRIX_OFFSET2 0x39aa
#define VPP_POST2_MATRIX_PRE_OFFSET0_1 0x39ab
#define VPP_POST2_MATRIX_PRE_OFFSET2 0x39ac
#define VPP_POST2_MATRIX_EN_CTRL 0x39ad
#define VPP_WRAP_OSD1_MATRIX_COEF00_01 0x3d60
#define VPP_WRAP_OSD1_MATRIX_COEF02_10 0x3d61
#define VPP_WRAP_OSD1_MATRIX_COEF11_12 0x3d62
#define VPP_WRAP_OSD1_MATRIX_COEF20_21 0x3d63
#define VPP_WRAP_OSD1_MATRIX_COEF22 0x3d64
#define VPP_WRAP_OSD1_MATRIX_COEF13_14 0x3d65
#define VPP_WRAP_OSD1_MATRIX_COEF23_24 0x3d66
#define VPP_WRAP_OSD1_MATRIX_COEF15_25 0x3d67
#define VPP_WRAP_OSD1_MATRIX_CLIP 0x3d68
#define VPP_WRAP_OSD1_MATRIX_OFFSET0_1 0x3d69
#define VPP_WRAP_OSD1_MATRIX_OFFSET2 0x3d6a
#define VPP_WRAP_OSD1_MATRIX_PRE_OFFSET0_1 0x3d6b
#define VPP_WRAP_OSD1_MATRIX_PRE_OFFSET2 0x3d6c
#define VPP_WRAP_OSD1_MATRIX_EN_CTRL 0x3d6d
#define VPP_WRAP_OSD2_MATRIX_COEF00_01 0x3d70
#define VPP_WRAP_OSD2_MATRIX_COEF02_10 0x3d71
#define VPP_WRAP_OSD2_MATRIX_COEF11_12 0x3d72
#define VPP_WRAP_OSD2_MATRIX_COEF20_21 0x3d73
#define VPP_WRAP_OSD2_MATRIX_COEF22 0x3d74
#define VPP_WRAP_OSD2_MATRIX_COEF13_14 0x3d75
#define VPP_WRAP_OSD2_MATRIX_COEF23_24 0x3d76
#define VPP_WRAP_OSD2_MATRIX_COEF15_25 0x3d77
#define VPP_WRAP_OSD2_MATRIX_CLIP 0x3d78
#define VPP_WRAP_OSD2_MATRIX_OFFSET0_1 0x3d79
#define VPP_WRAP_OSD2_MATRIX_OFFSET2 0x3d7a
#define VPP_WRAP_OSD2_MATRIX_PRE_OFFSET0_1 0x3d7b
#define VPP_WRAP_OSD2_MATRIX_PRE_OFFSET2 0x3d7c
#define VPP_WRAP_OSD2_MATRIX_EN_CTRL 0x3d7d
#define VPP_WRAP_OSD3_MATRIX_COEF00_01 0x3db0
#define VPP_WRAP_OSD3_MATRIX_COEF02_10 0x3db1
#define VPP_WRAP_OSD3_MATRIX_COEF11_12 0x3db2
#define VPP_WRAP_OSD3_MATRIX_COEF20_21 0x3db3
#define VPP_WRAP_OSD3_MATRIX_COEF22 0x3db4
#define VPP_WRAP_OSD3_MATRIX_COEF13_14 0x3db5
#define VPP_WRAP_OSD3_MATRIX_COEF23_24 0x3db6
#define VPP_WRAP_OSD3_MATRIX_COEF15_25 0x3db7
#define VPP_WRAP_OSD3_MATRIX_CLIP 0x3db8
#define VPP_WRAP_OSD3_MATRIX_OFFSET0_1 0x3db9
#define VPP_WRAP_OSD3_MATRIX_OFFSET2 0x3dba
#define VPP_WRAP_OSD3_MATRIX_PRE_OFFSET0_1 0x3dbb
#define VPP_WRAP_OSD3_MATRIX_PRE_OFFSET2 0x3dbc
#define VPP_WRAP_OSD3_MATRIX_EN_CTRL 0x3dbd
// Closing file: mad_regs.h
//
//`define VPP2_VCBUS_BASE 8'h19
//
// Reading file: vpp2_regs.h
//
// synopsys translate_off
// synopsys translate_on
// -----------------------------------------------
// CBUS_BASE: VPP2_VCBUS_BASE = 0x19
// -----------------------------------------------
//===========================================================================
// Video postprocesing Registers
//===========================================================================
// dummy data used in the VPP preblend and scaler
// Bit 23:16
// Bit 15:8 CB
// Bit 7:0 CR
#define VPP2_DUMMY_DATA (0x1900)
#define P_VPP2_DUMMY_DATA (volatile unsigned int *)((0x1900 << 2) + 0xff900000)
//input line length used in VPP
#define VPP2_LINE_IN_LENGTH (0x1901)
#define P_VPP2_LINE_IN_LENGTH (volatile unsigned int *)((0x1901 << 2) + 0xff900000)
//input Picture height used in VPP
#define VPP2_PIC_IN_HEIGHT (0x1902)
#define P_VPP2_PIC_IN_HEIGHT (volatile unsigned int *)((0x1902 << 2) + 0xff900000)
//Because there are many coefficients used in the vertical filter and horizontal filters,
//indirect access the coefficients of vertical filter and horizontal filter is used.
//For vertical filter, there are 33x4 coefficients
//For horizontal filter, there are 33x4 coefficients
//Bit 15 index increment, if bit9 == 1 then (0: index increase 1, 1: index increase 2) else (index increase 2)
//Bit 14 1: read coef through cbus enable, just for debug purpose in case when we wanna check the coef in ram in correct or not
//Bit 13 if true, vertical separated coef enable
//Bit 9 if true, use 9bit resolution coef, other use 8bit resolution coef
//Bit 8:7 type of index, 00: vertical coef, 01: vertical chroma coef: 10: horizontal coef, 11: resevered
//Bit 6:0 coef index
#define VPP2_SCALE_COEF_IDX (0x1903)
#define P_VPP2_SCALE_COEF_IDX (volatile unsigned int *)((0x1903 << 2) + 0xff900000)
//coefficients for vertical filter and horizontal filter
#define VPP2_SCALE_COEF (0x1904)
#define P_VPP2_SCALE_COEF (volatile unsigned int *)((0x1904 << 2) + 0xff900000)
//these following registers are the absolute line address pointer for output divided screen
//The output divided screen is shown in the following:
//
// -------------------------- <------ line zero
// .
// .
// . region0 <---------- nonlinear region or nonscaling region
// .
// ---------------------------
// --------------------------- <------ region1_startp
// .
// . region1 <---------- nonlinear region
// .
// .
// ---------------------------
// --------------------------- <------ region2_startp
// .
// . region2 <---------- linear region
// .
// .
// ---------------------------
// --------------------------- <------ region3_startp
// .
// . region3 <---------- nonlinear region
// .
// .
// ---------------------------
// --------------------------- <------ region4_startp
// .
// . region4 <---------- nonlinear region or nonoscaling region
// .
// .
// --------------------------- <------ region4_endp
//Bit 28:16 region1 startp
//Bit 12:0 region2 startp
#define VPP2_VSC_REGION12_STARTP (0x1905)
#define P_VPP2_VSC_REGION12_STARTP (volatile unsigned int *)((0x1905 << 2) + 0xff900000)
//Bit 28:16 region3 startp
//Bit 12:0 region4 startp
#define VPP2_VSC_REGION34_STARTP (0x1906)
#define P_VPP2_VSC_REGION34_STARTP (volatile unsigned int *)((0x1906 << 2) + 0xff900000)
#define VPP2_VSC_REGION4_ENDP (0x1907)
#define P_VPP2_VSC_REGION4_ENDP (volatile unsigned int *)((0x1907 << 2) + 0xff900000)
//vertical start phase step, (source/dest)*(2^24)
//Bit 27:24 integer part
//Bit 23:0 fraction part
#define VPP2_VSC_START_PHASE_STEP (0x1908)
#define P_VPP2_VSC_START_PHASE_STEP (volatile unsigned int *)((0x1908 << 2) + 0xff900000)
//vertical scaler region0 phase slope, Bit24 signed bit
#define VPP2_VSC_REGION0_PHASE_SLOPE (0x1909)
#define P_VPP2_VSC_REGION0_PHASE_SLOPE (volatile unsigned int *)((0x1909 << 2) + 0xff900000)
//vertical scaler region1 phase slope, Bit24 signed bit
#define VPP2_VSC_REGION1_PHASE_SLOPE (0x190a)
#define P_VPP2_VSC_REGION1_PHASE_SLOPE (volatile unsigned int *)((0x190a << 2) + 0xff900000)
//vertical scaler region3 phase slope, Bit24 signed bit
#define VPP2_VSC_REGION3_PHASE_SLOPE (0x190b)
#define P_VPP2_VSC_REGION3_PHASE_SLOPE (volatile unsigned int *)((0x190b << 2) + 0xff900000)
//vertical scaler region4 phase slope, Bit24 signed bit
#define VPP2_VSC_REGION4_PHASE_SLOPE (0x190c)
#define P_VPP2_VSC_REGION4_PHASE_SLOPE (volatile unsigned int *)((0x190c << 2) + 0xff900000)
//Bit 18:17 double line mode, input/output line width of vscaler becomes 2X,
// so only 2 line buffer in this case, use for 3D line by line interleave scaling
// bit1 true, double the input width and half input height, bit0 true, change line buffer 2 lines instead of 4 lines
//Bit 16 0: progressive output, 1: interlace output
//Bit 15 vertical scaler output line0 in advance or not for bottom field
//Bit 14:13 vertical scaler initial repeat line0 number for bottom field
//Bit 11:8 vertical scaler initial receiving number for bottom field
//Bit 7 vertical scaler output line0 in advance or not for top field
//Bit 6:5 vertical scaler initial repeat line0 number for top field
//Bit 3:0 vertical scaler initial receiving number for top field
#define VPP2_VSC_PHASE_CTRL (0x190d)
#define P_VPP2_VSC_PHASE_CTRL (volatile unsigned int *)((0x190d << 2) + 0xff900000)
//Bit 31:16 vertical scaler field initial phase for bottom field
//Bit 15:0 vertical scaler field initial phase for top field
#define VPP2_VSC_INI_PHASE (0x190e)
#define P_VPP2_VSC_INI_PHASE (volatile unsigned int *)((0x190e << 2) + 0xff900000)
//Bit 28:16 region1 startp
//Bit 12:0 region2 startp
#define VPP2_HSC_REGION12_STARTP (0x1910)
#define P_VPP2_HSC_REGION12_STARTP (volatile unsigned int *)((0x1910 << 2) + 0xff900000)
//Bit 28:16 region3 startp
//Bit 12:0 region4 startp
#define VPP2_HSC_REGION34_STARTP (0x1911)
#define P_VPP2_HSC_REGION34_STARTP (volatile unsigned int *)((0x1911 << 2) + 0xff900000)
#define VPP2_HSC_REGION4_ENDP (0x1912)
#define P_VPP2_HSC_REGION4_ENDP (volatile unsigned int *)((0x1912 << 2) + 0xff900000)
//horizontal start phase step, (source/dest)*(2^24)
//Bit 27:24 integer part
//Bit 23:0 fraction part
#define VPP2_HSC_START_PHASE_STEP (0x1913)
#define P_VPP2_HSC_START_PHASE_STEP (volatile unsigned int *)((0x1913 << 2) + 0xff900000)
//horizontal scaler region0 phase slope, Bit24 signed bit
#define VPP2_HSC_REGION0_PHASE_SLOPE (0x1914)
#define P_VPP2_HSC_REGION0_PHASE_SLOPE (volatile unsigned int *)((0x1914 << 2) + 0xff900000)
//horizontal scaler region1 phase slope, Bit24 signed bit
#define VPP2_HSC_REGION1_PHASE_SLOPE (0x1915)
#define P_VPP2_HSC_REGION1_PHASE_SLOPE (volatile unsigned int *)((0x1915 << 2) + 0xff900000)
//horizontal scaler region3 phase slope, Bit24 signed bit
#define VPP2_HSC_REGION3_PHASE_SLOPE (0x1916)
#define P_VPP2_HSC_REGION3_PHASE_SLOPE (volatile unsigned int *)((0x1916 << 2) + 0xff900000)
//horizontal scaler region4 phase slope, Bit24 signed bit
#define VPP2_HSC_REGION4_PHASE_SLOPE (0x1917)
#define P_VPP2_HSC_REGION4_PHASE_SLOPE (volatile unsigned int *)((0x1917 << 2) + 0xff900000)
//Bit 22:21 horizontal scaler initial repeat pixel0 number
//Bit 19:16 horizontal scaler initial receiving number
//Bit 15:0 horizontal scaler top field initial phase
#define VPP2_HSC_PHASE_CTRL (0x1918)
#define P_VPP2_HSC_PHASE_CTRL (volatile unsigned int *)((0x1918 << 2) + 0xff900000)
// Bit 22 if true, divide VSC line length 2 as the HSC input length, othwise VSC length length is the same as the VSC line length,
// just for special usage, more flexibility
// Bit 21 if true, prevsc uses lin buffer, otherwise prevsc does not use line buffer, it should be same as prevsc_en
// Bit 20 prehsc_en
// Bit 19 prevsc_en
// Bit 18 vsc_en
// Bit 17 hsc_en
// Bit 16 scale_top_en
// Bit 15 video1 scale out enable
// Bit 12 if true, region0,region4 are nonlinear regions, otherwise they are not scaling regions, for horizontal scaler
// Bit 10:8 horizontal scaler bank length
// Bit 5, vertical scaler phase field mode, if true, disable the opposite parity line output, more bandwith needed if output 1080i
// Bit 4 if true, region0,region4 are nonlinear regions, otherwise they are not scaling regions, for vertical scaler
// Bit 2:0 vertical scaler bank length
#define VPP2_SC_MISC (0x1919)
#define P_VPP2_SC_MISC (volatile unsigned int *)((0x1919 << 2) + 0xff900000)
// preblend video1 horizontal start and end
//Bit 28:16 start
//Bit 12:0 end
#define VPP2_PREBLEND_VD1_H_START_END (0x191a)
#define P_VPP2_PREBLEND_VD1_H_START_END (volatile unsigned int *)((0x191a << 2) + 0xff900000)
// preblend video1 vertical start and end
//Bit 28:16 start
//Bit 12:0 end
#define VPP2_PREBLEND_VD1_V_START_END (0x191b)
#define P_VPP2_PREBLEND_VD1_V_START_END (volatile unsigned int *)((0x191b << 2) + 0xff900000)
// postblend video1 horizontal start and end
//Bit 28:16 start
//Bit 12:0 end
#define VPP2_POSTBLEND_VD1_H_START_END (0x191c)
#define P_VPP2_POSTBLEND_VD1_H_START_END (volatile unsigned int *)((0x191c << 2) + 0xff900000)
// postblend video1 vertical start and end
//Bit 28:16 start
//Bit 12:0 end
#define VPP2_POSTBLEND_VD1_V_START_END (0x191d)
#define P_VPP2_POSTBLEND_VD1_V_START_END (volatile unsigned int *)((0x191d << 2) + 0xff900000)
// preblend horizontal size
#define VPP2_PREBLEND_H_SIZE (0x1920)
#define P_VPP2_PREBLEND_H_SIZE (volatile unsigned int *)((0x1920 << 2) + 0xff900000)
// postblend horizontal size
#define VPP2_POSTBLEND_H_SIZE (0x1921)
#define P_VPP2_POSTBLEND_H_SIZE (volatile unsigned int *)((0x1921 << 2) + 0xff900000)
//VPP hold lines
//Bit 29:24
//Bit 21:16
//Bit 15:8 preblend hold lines
//Bit 7:0 postblend hold lines
#define VPP2_HOLD_LINES (0x1922)
#define P_VPP2_HOLD_LINES (volatile unsigned int *)((0x1922 << 2) + 0xff900000)
//Bit 25 if true, change screen to one color value for preblender
//Bit 24 if true, change screen to one color value for postblender
// Bit 23:16 one color Y
// Bit 15:8 one color Cb
// Bit 7:0 one color Cr
#define VPP2_BLEND_ONECOLOR_CTRL (0x1923)
#define P_VPP2_BLEND_ONECOLOR_CTRL (volatile unsigned int *)((0x1923 << 2) + 0xff900000)
//Read Only, VPP preblend current_x, current_y
//Bit 28:16 current_x
//Bit 12:0 current_y
#define VPP2_PREBLEND_CURRENT_XY (0x1924)
#define P_VPP2_PREBLEND_CURRENT_XY (volatile unsigned int *)((0x1924 << 2) + 0xff900000)
//Read Only, VPP postblend current_x, current_y
//Bit 28:16 current_x
//Bit 12:0 current_y
#define VPP2_POSTBLEND_CURRENT_XY (0x1925)
#define P_VPP2_POSTBLEND_CURRENT_XY (volatile unsigned int *)((0x1925 << 2) + 0xff900000)
// Bit 31 vd1_bgosd_exchange_en for preblend
// Bit 30 vd1_bgosd_exchange_en for postblend
// bit 28 color management enable
// Bit 27, reserved
// Bit 26:18, reserved
// Bit 17, osd2 enable for preblend
// Bit 16, osd1 enable for preblend
// Bit 15, reserved
// Bit 14, vd1 enable for preblend
// Bit 13, osd2 enable for postblend
// Bit 12, osd1 enable for postblend
// Bit 11, reserved
// Bit 10, vd1 enable for postblend
// Bit 9, if true, osd1 is alpha premultipiled
// Bit 8, if true, osd2 is alpha premultipiled
// Bit 7, postblend module enable
// Bit 6, preblend module enable
// Bit 5, if true, osd2 foreground compared with osd1 in preblend
// Bit 4, if true, osd2 foreground compared with osd1 in postblend
// Bit 3,
// Bit 2, if true, disable resetting async fifo every vsync, otherwise every vsync
// the aync fifo will be reseted.
// Bit 1,
// Bit 0 if true, the output result of VPP is saturated
#define VPP2_MISC (0x1926)
#define P_VPP2_MISC (volatile unsigned int *)((0x1926 << 2) + 0xff900000)
//Bit 31:20 ofifo line length minus 1
//Bit 19 if true invert input vs
//Bit 18 if true invert input hs
//Bit 17 force top/bottom field, enable
//Bit 16 force top/bottom field, 0: top, 1: bottom
//Bit 15 force one go_field, one pluse, write only
//Bit 14 force one go_line, one pluse, write only
//Bit 12:0 ofifo size (actually only bit 10:1 is valid), always even number
#define VPP2_OFIFO_SIZE (0x1927)
#define P_VPP2_OFIFO_SIZE (volatile unsigned int *)((0x1927 << 2) + 0xff900000)
//Read only
//Bit 28:17 current scale out fifo counter
//Bit 16:12 current afifo counter
//Bit 11:0 current ofifo counter
#define VPP2_FIFO_STATUS (0x1928)
#define P_VPP2_FIFO_STATUS (volatile unsigned int *)((0x1928 << 2) + 0xff900000)
// Bit 3 SMOKE2 postblend enable only when postblend osd2 is not enable
// Bit 2 SMOKE2 preblend enable only when preblend osd2 is not enable
// Bit 1 SMOKE1 postblend enable only when postblend osd1 is not enable
// Bit 0 SMOKE1 preblend enable only when preblend osd1 is not enable
#define VPP2_SMOKE_CTRL (0x1929)
#define P_VPP2_SMOKE_CTRL (volatile unsigned int *)((0x1929 << 2) + 0xff900000)
//smoke can be used only when that blending is disable and then be used as smoke function
//smoke1 for OSD1 chanel
//smoke2 for OSD2 chanel
//31:24 Y
//23:16 Cb
//15:8 Cr
//7:0 Alpha
#define VPP2_SMOKE1_VAL (0x192a)
#define P_VPP2_SMOKE1_VAL (volatile unsigned int *)((0x192a << 2) + 0xff900000)
#define VPP2_SMOKE2_VAL (0x192b)
#define P_VPP2_SMOKE2_VAL (volatile unsigned int *)((0x192b << 2) + 0xff900000)
//Bit 28:16 start
//Bit 12:0 end
#define VPP2_SMOKE1_H_START_END (0x192d)
#define P_VPP2_SMOKE1_H_START_END (volatile unsigned int *)((0x192d << 2) + 0xff900000)
//Bit 28:16 start
//Bit 12:0 end
#define VPP2_SMOKE1_V_START_END (0x192e)
#define P_VPP2_SMOKE1_V_START_END (volatile unsigned int *)((0x192e << 2) + 0xff900000)
//Bit 28:16 start
//Bit 12:0 end
#define VPP2_SMOKE2_H_START_END (0x192f)
#define P_VPP2_SMOKE2_H_START_END (volatile unsigned int *)((0x192f << 2) + 0xff900000)
//Bit 28:16 start
//Bit 12:0 end
#define VPP2_SMOKE2_V_START_END (0x1930)
#define P_VPP2_SMOKE2_V_START_END (volatile unsigned int *)((0x1930 << 2) + 0xff900000)
//Bit 27:16 scale out fifo line length minus 1
//Bit 12:0 scale out fifo size (actually only bit 11:1 is valid, 11:1, max 1024), always even number
#define VPP2_SCO_FIFO_CTRL (0x1933)
#define P_VPP2_SCO_FIFO_CTRL (volatile unsigned int *)((0x1933 << 2) + 0xff900000)
//for 3D quincunx sub-sampling and horizontal pixel by pixel 3D interleaving
//Bit 27:24, 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 23 horizontal scaler double pixel mode
//Bit 22:21 horizontal scaler initial repeat pixel0 number1
//Bit 19:16 horizontal scaler initial receiving number1
//Bit 15:0 horizontal scaler top field initial phase1
#define VPP2_HSC_PHASE_CTRL1 (0x1934)
#define P_VPP2_HSC_PHASE_CTRL1 (volatile unsigned int *)((0x1934 << 2) + 0xff900000)
//for 3D quincunx sub-sampling
//31:24 prehsc pattern, each patten 1 bit, from lsb -> msb
//22:20 prehsc pattern start
//18:16 prehsc pattern end
//15:8 pattern, each patten 1 bit, from lsb -> msb
//6:4 pattern start
//2:0 pattern end
#define VPP2_HSC_INI_PAT_CTRL (0x1935)
#define P_VPP2_HSC_INI_PAT_CTRL (volatile unsigned int *)((0x1935 << 2) + 0xff900000)
//Bit 3 minus black level enable for vadj2
//Bit 2 Video adjustment enable for vadj2
//Bit 1 minus black level enable for vadj1
//Bit 0 Video adjustment enable for vadj1
#define VPP2_VADJ_CTRL (0x1940)
#define P_VPP2_VADJ_CTRL (volatile unsigned int *)((0x1940 << 2) + 0xff900000)
//Bit 16:8 brightness, signed value
//Bit 7:0 contrast, unsigned value, contrast from 0 <= contrast <2
#define VPP2_VADJ1_Y (0x1941)
#define P_VPP2_VADJ1_Y (volatile unsigned int *)((0x1941 << 2) + 0xff900000)
//cb' = cb*ma + cr*mb
//cr' = cb*mc + cr*md
//all are bit 9:0, signed value, -2 < ma/mb/mc/md < 2
#define VPP2_VADJ1_MA_MB (0x1942)
#define P_VPP2_VADJ1_MA_MB (volatile unsigned int *)((0x1942 << 2) + 0xff900000)
#define VPP2_VADJ1_MC_MD (0x1943)
#define P_VPP2_VADJ1_MC_MD (volatile unsigned int *)((0x1943 << 2) + 0xff900000)
//Bit 16:8 brightness, signed value
//Bit 7:0 contrast, unsigned value, contrast from 0 <= contrast <2
#define VPP2_VADJ2_Y (0x1944)
#define P_VPP2_VADJ2_Y (volatile unsigned int *)((0x1944 << 2) + 0xff900000)
//cb' = cb*ma + cr*mb
//cr' = cb*mc + cr*md
//all are bit 9:0, signed value, -2 < ma/mb/mc/md < 2
#define VPP2_VADJ2_MA_MB (0x1945)
#define P_VPP2_VADJ2_MA_MB (volatile unsigned int *)((0x1945 << 2) + 0xff900000)
#define VPP2_VADJ2_MC_MD (0x1946)
#define P_VPP2_VADJ2_MC_MD (volatile unsigned int *)((0x1946 << 2) + 0xff900000)
//Read only
//Bit 31, if it is true, it means this probe is valid in the last field/frame
//Bit 29:20 component 0
//Bit 19:10 component 1
//Bit 9:0 component 2
#define VPP2_MATRIX_PROBE_COLOR (0x195c)
#define P_VPP2_MATRIX_PROBE_COLOR (volatile unsigned int *)((0x195c << 2) + 0xff900000)
//Bit 23:16 component 0
//Bit 15:8 component 1
//Bit 7:0 component 2
#define VPP2_MATRIX_HL_COLOR (0x195d)
#define P_VPP2_MATRIX_HL_COLOR (volatile unsigned int *)((0x195d << 2) + 0xff900000)
//28:16 probe x, postion
//12:0 probe y, position
#define VPP2_MATRIX_PROBE_POS (0x195e)
#define P_VPP2_MATRIX_PROBE_POS (volatile unsigned int *)((0x195e << 2) + 0xff900000)
//Bit 16, highlight_en
//Bit 15 probe_post, if true, probe pixel data after matrix, otherwise probe pixel data before matrix
//Bit 14:12 probe_sel, 000: select post matrix, 001: select vd1 matrix,
//Bit 9:8 matrix coef idx selection, 00: select post matrix, 01: select vd1 matrix
//Bit 5 vd1 conversion matrix enable
//Bit 4 reserved
//Bit 2 output y/cb/cr saturation enable, only for post matrix (y saturate to 16-235, cb/cr saturate to 16-240)
//Bit 1 input y/cb/cr saturation enable, only for post matrix (y saturate to 16-235, cb/cr saturate to 16-240)
//Bit 0 post conversion matrix enable
#define VPP2_MATRIX_CTRL (0x195f)
#define P_VPP2_MATRIX_CTRL (volatile unsigned int *)((0x195f << 2) + 0xff900000)
//Bit 28:16 coef00
//Bit 12:0 coef01
#define VPP2_MATRIX_COEF00_01 (0x1960)
#define P_VPP2_MATRIX_COEF00_01 (volatile unsigned int *)((0x1960 << 2) + 0xff900000)
//Bit 28:16 coef02
//Bit 12:0 coef10
#define VPP2_MATRIX_COEF02_10 (0x1961)
#define P_VPP2_MATRIX_COEF02_10 (volatile unsigned int *)((0x1961 << 2) + 0xff900000)
//Bit 28:16 coef11
//Bit 12:0 coef12
#define VPP2_MATRIX_COEF11_12 (0x1962)
#define P_VPP2_MATRIX_COEF11_12 (volatile unsigned int *)((0x1962 << 2) + 0xff900000)
//Bit 28:16 coef20
//Bit 12:0 coef21
#define VPP2_MATRIX_COEF20_21 (0x1963)
#define P_VPP2_MATRIX_COEF20_21 (volatile unsigned int *)((0x1963 << 2) + 0xff900000)
#define VPP2_MATRIX_COEF22 (0x1964)
#define P_VPP2_MATRIX_COEF22 (volatile unsigned int *)((0x1964 << 2) + 0xff900000)
//Bit 26:16 offset0
//Bit 10:0 offset1
#define VPP2_MATRIX_OFFSET0_1 (0x1965)
#define P_VPP2_MATRIX_OFFSET0_1 (volatile unsigned int *)((0x1965 << 2) + 0xff900000)
//Bit 10:0 offset2
#define VPP2_MATRIX_OFFSET2 (0x1966)
#define P_VPP2_MATRIX_OFFSET2 (volatile unsigned int *)((0x1966 << 2) + 0xff900000)
//Bit 26:16 pre_offset0
//Bit 10:0 pre_offset1
#define VPP2_MATRIX_PRE_OFFSET0_1 (0x1967)
#define P_VPP2_MATRIX_PRE_OFFSET0_1 (volatile unsigned int *)((0x1967 << 2) + 0xff900000)
//Bit 10:0 pre_offset2
#define VPP2_MATRIX_PRE_OFFSET2 (0x1968)
#define P_VPP2_MATRIX_PRE_OFFSET2 (volatile unsigned int *)((0x1968 << 2) + 0xff900000)
// dummy data used in the VPP postblend
// Bit 23:16 Y
// Bit 15:8 CB
// Bit 7:0 CR
#define VPP2_DUMMY_DATA1 (0x1969)
#define P_VPP2_DUMMY_DATA1 (volatile unsigned int *)((0x1969 << 2) + 0xff900000)
//Bit 31 gainoff module enable
//Bit 26:16 gain0, 1.10 unsigned data
//Bit 10:0 gain1, 1.10 unsigned dat
#define VPP2_GAINOFF_CTRL0 (0x196a)
#define P_VPP2_GAINOFF_CTRL0 (volatile unsigned int *)((0x196a << 2) + 0xff900000)
//Bit 26:16 gain2, 1.10 unsigned data
//Bit 10:0, offset0, signed data
#define VPP2_GAINOFF_CTRL1 (0x196b)
#define P_VPP2_GAINOFF_CTRL1 (volatile unsigned int *)((0x196b << 2) + 0xff900000)
//Bit 26:16, offset1, signed data
//Bit 10:0, offset2, signed data
#define VPP2_GAINOFF_CTRL2 (0x196c)
#define P_VPP2_GAINOFF_CTRL2 (volatile unsigned int *)((0x196c << 2) + 0xff900000)
//Bit 26:16, pre_offset0, signed data
//Bit 10:0, pre_offset1, signed data
#define VPP2_GAINOFF_CTRL3 (0x196d)
#define P_VPP2_GAINOFF_CTRL3 (volatile unsigned int *)((0x196d << 2) + 0xff900000)
//Bit 10:0, pre_offset2, signed data
#define VPP2_GAINOFF_CTRL4 (0x196e)
#define P_VPP2_GAINOFF_CTRL4 (volatile unsigned int *)((0x196e << 2) + 0xff900000)
//only two registers used in the color management, which are defined in the chroma_reg.h
#define VPP2_CHROMA_ADDR_PORT (0x1970)
#define P_VPP2_CHROMA_ADDR_PORT (volatile unsigned int *)((0x1970 << 2) + 0xff900000)
#define VPP2_CHROMA_DATA_PORT (0x1971)
#define P_VPP2_CHROMA_DATA_PORT (volatile unsigned int *)((0x1971 << 2) + 0xff900000)
//`include "chroma_reg.h" //defined inside is the indirect addressed registers
//(hsvsharp), (blue), gainoff, mat_vd1,mat_vd2, mat_post, prebld, postbld,(hsharp),sco_ff, vadj1, vadj2, ofifo, (chroma1), clk0(free_clk) vpp_reg
//each item 2bits, for each 2bits, if bit 2*i+1 == 1, free clk, else if bit 2*i == 1 no clk, else auto gated clock
//bit1 is not used, because I can not turn off vpp_reg clk because I can not turn on again
//because the register itself canot be set again without clk
//Bit 31:0
#define VPP2_GCLK_CTRL0 (0x1972)
#define P_VPP2_GCLK_CTRL0 (volatile unsigned int *)((0x1972 << 2) + 0xff900000)
//Chroma2_filter, Chroma2, (Ccoring), (blackext), dnlp
//Bit 9:0
#define VPP2_GCLK_CTRL1 (0x1973)
#define P_VPP2_GCLK_CTRL1 (volatile unsigned int *)((0x1973 << 2) + 0xff900000)
//prehsc_clk, line_buf, prevsc, vsc, hsc_clk, clk0(free_clk)
//Bit 11:0
#define VPP2_SC_GCLK_CTRL (0x1974)
#define P_VPP2_SC_GCLK_CTRL (volatile unsigned int *)((0x1974 << 2) + 0xff900000)
//Bit 17:9 VD1 alpha for preblend
//Bit 8:0 VD1 alpha for postblend
#define VPP2_MISC1 (0x1976)
#define P_VPP2_MISC1 (volatile unsigned int *)((0x1976 << 2) + 0xff900000)
//Bit 31:24 bottom of region03 output value
//Bit 23:16 bottom of region02 output value
//Bit 15:8 bottom of region01 output value
//Bit 7:0 bottom of region00 output value
#define VPP2_DNLP_CTRL_00 (0x1981)
#define P_VPP2_DNLP_CTRL_00 (volatile unsigned int *)((0x1981 << 2) + 0xff900000)
//Bit 31:24 bottom of region07 output value
//Bit 23:16 bottom of region06 output value
//Bit 15:8 bottom of region05 output value
//Bit 7:0 bottom of region04 output value
#define VPP2_DNLP_CTRL_01 (0x1982)
#define P_VPP2_DNLP_CTRL_01 (volatile unsigned int *)((0x1982 << 2) + 0xff900000)
//Bit 31:24 bottom of region11 output value
//Bit 23:16 bottom of region10 output value
//Bit 15:8 bottom of region09 output value
//Bit 7:0 bottom of region08 output value
#define VPP2_DNLP_CTRL_02 (0x1983)
#define P_VPP2_DNLP_CTRL_02 (volatile unsigned int *)((0x1983 << 2) + 0xff900000)
//Bit 31:24 bottom of region15 output value
//Bit 23:16 bottom of region14 output value
//Bit 15:8 bottom of region13 output value
//Bit 7:0 bottom of region12 output value
#define VPP2_DNLP_CTRL_03 (0x1984)
#define P_VPP2_DNLP_CTRL_03 (volatile unsigned int *)((0x1984 << 2) + 0xff900000)
//Bit 31:24 bottom of region19 output value
//Bit 23:16 bottom of region18 output value
//Bit 15:8 bottom of region17 output value
//Bit 7:0 bottom of region16 output value
#define VPP2_DNLP_CTRL_04 (0x1985)
#define P_VPP2_DNLP_CTRL_04 (volatile unsigned int *)((0x1985 << 2) + 0xff900000)
//Bit 31:24 bottom of region23 output value
//Bit 23:16 bottom of region22 output value
//Bit 15:8 bottom of region21 output value
//Bit 7:0 bottom of region20 output value
#define VPP2_DNLP_CTRL_05 (0x1986)
#define P_VPP2_DNLP_CTRL_05 (volatile unsigned int *)((0x1986 << 2) + 0xff900000)
//Bit 31:24 bottom of region27 output value
//Bit 23:16 bottom of region26 output value
//Bit 15:8 bottom of region25 output value
//Bit 7:0 bottom of region24 output value
#define VPP2_DNLP_CTRL_06 (0x1987)
#define P_VPP2_DNLP_CTRL_06 (volatile unsigned int *)((0x1987 << 2) + 0xff900000)
//Bit 31:24 bottom of region31 output value
//Bit 23:16 bottom of region30 output value
//Bit 15:8 bottom of region29 output value
//Bit 7:0 bottom of region28 output value
#define VPP2_DNLP_CTRL_07 (0x1988)
#define P_VPP2_DNLP_CTRL_07 (volatile unsigned int *)((0x1988 << 2) + 0xff900000)
//Bit 31:24 bottom of region35 output value
//Bit 23:16 bottom of region34 output value
//Bit 15:8 bottom of region33 output value
//Bit 7:0 bottom of region32 output value
#define VPP2_DNLP_CTRL_08 (0x1989)
#define P_VPP2_DNLP_CTRL_08 (volatile unsigned int *)((0x1989 << 2) + 0xff900000)
//Bit 31:24 bottom of region39 output value
//Bit 23:16 bottom of region38 output value
//Bit 15:8 bottom of region37 output value
//Bit 7:0 bottom of region36 output value
#define VPP2_DNLP_CTRL_09 (0x198a)
#define P_VPP2_DNLP_CTRL_09 (volatile unsigned int *)((0x198a << 2) + 0xff900000)
//Bit 31:24 bottom of region43 output value
//Bit 23:16 bottom of region42 output value
//Bit 15:8 bottom of region41 output value
//Bit 7:0 bottom of region40 output value
#define VPP2_DNLP_CTRL_10 (0x198b)
#define P_VPP2_DNLP_CTRL_10 (volatile unsigned int *)((0x198b << 2) + 0xff900000)
//Bit 31:24 bottom of region47 output value
//Bit 23:16 bottom of region46 output value
//Bit 15:8 bottom of region45 output value
//Bit 7:0 bottom of region44 output value
#define VPP2_DNLP_CTRL_11 (0x198c)
#define P_VPP2_DNLP_CTRL_11 (volatile unsigned int *)((0x198c << 2) + 0xff900000)
//Bit 31:24 bottom of region51 output value
//Bit 23:16 bottom of region50 output value
//Bit 15:8 bottom of region49 output value
//Bit 7:0 bottom of region48 output value
#define VPP2_DNLP_CTRL_12 (0x198d)
#define P_VPP2_DNLP_CTRL_12 (volatile unsigned int *)((0x198d << 2) + 0xff900000)
//Bit 31:24 bottom of region55 output value
//Bit 23:16 bottom of region54 output value
//Bit 15:8 bottom of region53 output value
//Bit 7:0 bottom of region52 output value
#define VPP2_DNLP_CTRL_13 (0x198e)
#define P_VPP2_DNLP_CTRL_13 (volatile unsigned int *)((0x198e << 2) + 0xff900000)
//Bit 31:24 bottom of region59 output value
//Bit 23:16 bottom of region58 output value
//Bit 15:8 bottom of region57 output value
//Bit 7:0 bottom of region56 output value
#define VPP2_DNLP_CTRL_14 (0x198f)
#define P_VPP2_DNLP_CTRL_14 (volatile unsigned int *)((0x198f << 2) + 0xff900000)
//Bit 31:24 bottom of region63 output value
//Bit 23:16 bottom of region62 output value
//Bit 15:8 bottom of region61 output value
//Bit 7:0 bottom of region60 output value
#define VPP2_DNLP_CTRL_15 (0x1990)
#define P_VPP2_DNLP_CTRL_15 (volatile unsigned int *)((0x1990 << 2) + 0xff900000)
//Bit 20 reserved
//Bit 19 reserved
//Bit 18 demo dynamic nonlinear luma processing enable
//Bit 17 reserved
//Bit 16 reserved
//Bit 15:14, 2'b00: demo adjust on top, 2'b01: demo adjust on bottom, 2'b10: demo adjust on left, 2'b11: demo adjust on right
//Bit 4 reserved
//Bit 3 reserved
//Bit 2 dynamic nonlinear luma processing enable
//Bit 1 reserved
//Bit 0 reserved
#define VPP2_VE_ENABLE_CTRL (0x19a1)
#define P_VPP2_VE_ENABLE_CTRL (volatile unsigned int *)((0x19a1 << 2) + 0xff900000)
//Bit 12:0, demo left or top screen width
#define VPP2_VE_DEMO_LEFT_TOP_SCREEN_WIDTH (0x19a2)
#define P_VPP2_VE_DEMO_LEFT_TOP_SCREEN_WIDTH (volatile unsigned int *)((0x19a2 << 2) + 0xff900000)
#define VPP2_VE_DEMO_CENTER_BAR (0x19a3)
#define P_VPP2_VE_DEMO_CENTER_BAR (volatile unsigned int *)((0x19a3 << 2) + 0xff900000)
//28:16 ve_line_length
//12:0 ve_pic_height
#define VPP2_VE_H_V_SIZE (0x19a4)
#define P_VPP2_VE_H_V_SIZE (volatile unsigned int *)((0x19a4 << 2) + 0xff900000)
//Bit 10 reset bit, high active
//Bit 9 0: measuring rising edge, 1: measuring falling edge
//Bit 8 if true, accumulate the counter number, otherwise not
//Bit 7:0 vsync_span, define how many vsync span need to measure
#define VPP2_VDO_MEAS_CTRL (0x19a8)
#define P_VPP2_VDO_MEAS_CTRL (volatile unsigned int *)((0x19a8 << 2) + 0xff900000)
//Read only
//19:16 ind_meas_count_n, every number of sync_span vsyncs, this counter add 1
//15:0, high bit portion of counter
#define VPP2_VDO_MEAS_VS_COUNT_HI (0x19a9)
#define P_VPP2_VDO_MEAS_VS_COUNT_HI (volatile unsigned int *)((0x19a9 << 2) + 0xff900000)
//Read only
//31:0, low bit portion of counter
#define VPP2_VDO_MEAS_VS_COUNT_LO (0x19aa)
#define P_VPP2_VDO_MEAS_VS_COUNT_LO (volatile unsigned int *)((0x19aa << 2) + 0xff900000)
//vertical scaler phase step
//Bit 27:0, 4.24 format
#define VPP2_OSD_VSC_PHASE_STEP (0x19c0)
#define P_VPP2_OSD_VSC_PHASE_STEP (volatile unsigned int *)((0x19c0 << 2) + 0xff900000)
//Bit 31:16, botttom vertical scaler initial phase
//Bit 15:0, top vertical scaler initial phase
#define VPP2_OSD_VSC_INI_PHASE (0x19c1)
#define P_VPP2_OSD_VSC_INI_PHASE (volatile unsigned int *)((0x19c1 << 2) + 0xff900000)
//Bit 24 osd vertical Scaler enable
//Bit 23 osd_prog_interlace 0: current field is progressive, 1: current field is interlace
//Bit 22:21 osd_vsc_double_line_mode, bit1, double input width and half input height, bit0, change line buffer becomes 2 lines
//Bit 20 osd_vsc_phase0_always_en
//Bit 19 osd_vsc_nearest_en
//Bit 17:16 osd_vsc_bot_rpt_l0_num
//Bit 14:11 osd_vsc_bot_ini_rcv_num
//Bit 9:8 osd_vsc_top_rpt_l0_num
//Bit 6:3 osd_vsc_top_ini_rcv_num
//Bit 2:0 osd_vsc_bank_length
#define VPP2_OSD_VSC_CTRL0 (0x19c2)
#define P_VPP2_OSD_VSC_CTRL0 (volatile unsigned int *)((0x19c2 << 2) + 0xff900000)
//horizontal scaler phase step
//Bit 27:0, 4.24 format
#define VPP2_OSD_HSC_PHASE_STEP (0x19c3)
#define P_VPP2_OSD_HSC_PHASE_STEP (volatile unsigned int *)((0x19c3 << 2) + 0xff900000)
//Bit 31:16, horizontal scaler initial phase1
//Bit 15:0, horizontal scaler initial phase0
#define VPP2_OSD_HSC_INI_PHASE (0x19c4)
#define P_VPP2_OSD_HSC_INI_PHASE (volatile unsigned int *)((0x19c4 << 2) + 0xff900000)
//Bit 22 osd horizontal scaler enable
//Bit 21 osd_hsc_double_pix_mode
//Bit 20 osd_hsc_phase0_always_en
//Bit 19 osd_hsc_nearest_en
//Bit 17:16 osd_hsc_rpt_p0_num1
//Bit 14:11 osd_hsc_ini_rcv_num1
//Bit 9:8 osd_hsc_rpt_p0_num0
//Bit 6:3 osd_hsc_ini_rcv_num0
//Bit 2:0 osd_hsc_bank_length
#define VPP2_OSD_HSC_CTRL0 (0x19c5)
#define P_VPP2_OSD_HSC_CTRL0 (volatile unsigned int *)((0x19c5 << 2) + 0xff900000)
//for 3D quincunx sub-sampling
//bit 15:8 pattern, each patten 1 bit, from lsb -> msb
//bit 6:4 pattern start
//bit 2:0 pattern end
#define VPP2_OSD_HSC_INI_PAT_CTRL (0x19c6)
#define P_VPP2_OSD_HSC_INI_PAT_CTRL (volatile unsigned int *)((0x19c6 << 2) + 0xff900000)
//bit 31:24, componet 0
//bit 23:16, component 1
//bit 15:8, component 2
//bit 7:0 component 3, alpha
#define VPP2_OSD_SC_DUMMY_DATA (0x19c7)
#define P_VPP2_OSD_SC_DUMMY_DATA (volatile unsigned int *)((0x19c7 << 2) + 0xff900000)
//Bit 14 osc_sc_din_osd1_alpha_mode, 1: (alpha >= 128) ? alpha -1: alpha, 0: (alpha >=1) ? alpha - 1: alpha.
//Bit 13 osc_sc_din_osd2_alpha_mode, 1: (alpha >= 128) ? alpha -1: alpha, 0: (alpha >=1) ? alpha - 1: alpha.
//Bit 12 osc_sc_dout_alpha_mode, 1: (alpha >= 128) ? alpha + 1: alpha, 0: (alpha >=1) ? alpha + 1: alpha.
//Bit 12 osc_sc_alpha_mode, 1: (alpha >= 128) ? alpha + 1: alpha, 0: (alpha >=1) ? alpha + 1: alpha.
//Bit 11:4 default alpha for vd1 or vd2 if they are selected as the source
//Bit 3 osd scaler path enable
//Bit 1:0 osd_sc_sel, 00: select osd1 input, 01: select osd2 input, 10: select vd1 input, 11: select vd2 input after matrix
#define VPP2_OSD_SC_CTRL0 (0x19c8)
#define P_VPP2_OSD_SC_CTRL0 (volatile unsigned int *)((0x19c8 << 2) + 0xff900000)
//Bit 28:16 OSD scaler input width minus 1
//Bit 12:0 OSD scaler input height minus 1
#define VPP2_OSD_SCI_WH_M1 (0x19c9)
#define P_VPP2_OSD_SCI_WH_M1 (volatile unsigned int *)((0x19c9 << 2) + 0xff900000)
//Bit 28:16 OSD scaler output horizontal start
//Bit 12:0 OSD scaler output horizontal end
#define VPP2_OSD_SCO_H_START_END (0x19ca)
#define P_VPP2_OSD_SCO_H_START_END (volatile unsigned int *)((0x19ca << 2) + 0xff900000)
//Bit 28:16 OSD scaler output vertical start
//Bit 12:0 OSD scaler output vertical end
#define VPP2_OSD_SCO_V_START_END (0x19cb)
#define P_VPP2_OSD_SCO_V_START_END (volatile unsigned int *)((0x19cb << 2) + 0xff900000)
//Because there are many coefficients used in the vertical filter and horizontal filters,
//indirect access the coefficients of vertical filter and horizontal filter is used.
//For vertical filter, there are 33x4 coefficients
//For horizontal filter, there are 33x4 coefficients
//Bit 15 index increment, if bit9 == 1 then (0: index increase 1, 1: index increase 2) else (index increase 2)
//Bit 14 1: read coef through cbus enable, just for debug purpose in case when we wanna check the coef in ram in correct or not
//Bit 9 if true, use 9bit resolution coef, other use 8bit resolution coef
//Bit 8 type of index, 0: vertical coef, 1: horizontal coef
//Bit 6:0 coef index
#define VPP2_OSD_SCALE_COEF_IDX (0x19cc)
#define P_VPP2_OSD_SCALE_COEF_IDX (volatile unsigned int *)((0x19cc << 2) + 0xff900000)
//coefficients for vertical filter and horizontal filter
#define VPP2_OSD_SCALE_COEF (0x19cd)
#define P_VPP2_OSD_SCALE_COEF (volatile unsigned int *)((0x19cd << 2) + 0xff900000)
//Bit 12:0 line number use to generate interrupt when line == this number
#define VPP2_INT_LINE_NUM (0x19ce)
#define P_VPP2_INT_LINE_NUM (volatile unsigned int *)((0x19ce << 2) + 0xff900000)
// synopsys translate_off
// synopsys translate_on
//
// Closing file: vpp2_regs.h
//
//`define VIU_VCBUS_BASE 8'h1a
//
// Reading file: vregs_clk2.h
//
//===========================================================================
// Video Interface Registers 0xa00 - 0xaff
//===========================================================================
// -----------------------------------------------
// CBUS_BASE: VIU_VCBUS_BASE = 0x1a
// -----------------------------------------------
#define VIU_ADDR_START (0x1a00)
#define P_VIU_ADDR_START (volatile unsigned int *)((0x1a00 << 2) + 0xff900000)
#define VIU_ADDR_END (0x1aff)
#define P_VIU_ADDR_END (volatile unsigned int *)((0x1aff << 2) + 0xff900000)
//`define TRACE_REG 8'ff
//------------------------------------------------------------------------------
// VIU top-level registers
//------------------------------------------------------------------------------
// Bit 0 RW, osd1_reset
// Bit 1 RW, osd2_reset
// Bit 2 RW, vd1_reset
// Bit 3 RW, vd1_fmt_reset
// Bit 4 RW, vd2_reset
// Bit 5 RW, vd2_fmt_reset
// Bit 6 RW, di_dsr1to2_reset
// Bit 7 RW, vpp_reset
// Bit 8 RW, di_if1_reset
// Bit 9 RW, di_if1_fmt_reset
// Bit 10 RW, di_inp_reset
// Bit 11 RW, di_inp_fmt_reset
// Bit 12 RW, di_mem_reset
// Bit 13 RW, di_mem_fmt_reset
// Bit 14 RW, di_nr_wr_mif_reset
// Bit 15 RW, dein_wr_mif_reset
// Bit 16 RW, di_chan2_mif_reset
// Bit 17 RW, di_mtn_wr_mif_reset
// Bit 18 RW, di_mtn_rd_mif_reset
// Bit 19 RW, di_mad_reset
// Bit 20 RW, vdin0_reset
// Bit 21 RW, vdin1_reset
// Bit 22 RW, nrin_mux_reset
// Bit 23 RW, vdin0_wr_reset
// Bit 24 RW, vdin1_wr_reset
// Bit 25 RW, reserved
// Bit 26 RW, d2d3_reset
// Bit 27 RW, di_cont_wr_mif_reset
// Bit 28 RW, di_cont_rd_mif_reset
#define VIU_SW_RESET (0x1a01)
#define P_VIU_SW_RESET (volatile unsigned int *)((0x1a01 << 2) + 0xff900000)
#define VIU_SW_RESET0 (0x1a02)
#define P_VIU_SW_RESET0 (volatile unsigned int *)((0x1a02 << 2) + 0xff900000)
// Bit 0 RW, software reset for mcvecrd_mif
// Bit 1 RW, software reset for mcinfowr_mif
// Bit 2 RW, software reset for mcinford_mif
#define VIU_SECURE_REG (0x1a04)
#define P_VIU_SECURE_REG (volatile unsigned int *)((0x1a04 << 2) + 0xff900000)
// Bit 0 RW, dolby core1_tv secure w and r
// Bit 1 RW, dolby core2 secure w and r
// Bit 2 RW, dolby core3 secure w and r
// Bit 3 RW, for osd1 secure read
// Bit 4 RW, for osd2 secure read
#define DOLBY_INT_STAT (0x1a05)
#define P_DOLBY_INT_STAT (volatile unsigned int *)((0x1a05 << 2) + 0xff900000)
// todo
//bit 15:12 osdbld_gclk_ctrl 3:2 regclk ctrl 1:0 blending clk control
//bit 8 if true, vsync interrup is generate only field == 0
//bit 7:0 fix_disable
#define VIU_MISC_CTRL0 (0x1a06)
#define P_VIU_MISC_CTRL0 (volatile unsigned int *)((0x1a06 << 2) + 0xff900000)
#define VIU_MISC_CTRL1 (0x1a07)
#define P_VIU_MISC_CTRL1 (volatile unsigned int *)((0x1a07 << 2) + 0xff900000)
// Bit 15:14 mali_afbcd_gclk_ctrl mali_afbcd clock gate control[5:4]
// Bit 12 osd1_afbcd_axi_mux 0 : use the osd mif as input; 1 : use afbcd as input
// Bit 11:8 mali_afbcd_gclk_ctrl mali_afbcd clock gate control[3:0]
// Bit 7:2 vd2_afbcd_gclk_ctrl vd2_afbcd clock gate control
// Bit 1 vpp_vd2_din_sel 0: vpp vd2 sel the mif input; 1: vpp vd2 sel the dos afbcd
// Bit 0 vd2_afbcd_out_sel 0: vd2_afbcd output to vpp; 1 : vd2_afbcd output to di inp
#define D2D3_INTF_LENGTH (0x1a08)
#define P_D2D3_INTF_LENGTH (volatile unsigned int *)((0x1a08 << 2) + 0xff900000)
// Bit 31:30 vdin0 dout splitter, bit 0 turns on vdin0 to old path, bit 1 turns on vdin0 to d2d3_intf vdin0 input path
// Bit 29:28 vdin1 dout splitter, bit 0 turns on vdin1 to old path, bit 1 turns on vdin1 to d2d3_intf vdin1 input path
// Bit 27:26 NR write dout splitter, bit 0 turns on NR write to old path, bit 1 turns on NR WR to d2d3_intf NR WR input path
// Bit 23 if true, turn on clk_d2d3_reg (register clock)
// Bit 22 if true, turn on clk_d2d3
// Bit 21 reg_v1_go_line
// Bit 20 reg_v1_go_field
// Bit 19 reg_v0_go_field
// Bit 18:16 v1_gofld_sel, 000: display go_field/go_line, 001: DI pre_frame_rst/go_line, 010: vdin0 go_field/go_line,
//011: vdin1 go_field/go_line, otherwise: force go_field by reg_v1_go_field(bit20), force go_line by reg_v1_go_line(bit21)
// Bit 15:13 v0_gofld_sel, 000: display go_field, 001: DI pre_frame_rst, 010: vdin0 go_field, 011: vdin1 go_field, otherwise: force go_field by
// reg_v0_go_field(bit19)
// Bit 12:6 hole_lines for d2d3 depth read interface
// Bit 5:4 d2d3_v1_sel, 2'b01: video display read interface(DI or vd1 fomart output), 2'b10: scale output, otherwise nothing as v1
// Bit 3 use_vdin_eol, if true, use vdin eol as the v0_eol, otherwise using length to get the v0_eol
// Bit 2:0 d2d3_v0_sel 001: vdin0, 010: vdin1, 011: NRW, 100: video display read interface(DI or vd1 fomart output), 101: vpp scale output
//
#define D2D3_INTF_CTRL0 (0x1a09)
#define P_D2D3_INTF_CTRL0 (volatile unsigned int *)((0x1a09 << 2) + 0xff900000)
//------------------------------------------------------------------------------
// OSD1 registers
//------------------------------------------------------------------------------
// Bit 31 Reserved
// Bit 30 RW, enable_free_clk: 1=use free-running clock to drive logics;
// 0=use gated clock for low power.
// Bit 29 R, test_rd_dsr
// Bit 28 R, osd_done
// Bit 27:24 R, osd_blk_mode
// Bit 23:22 R, osd_blk_ptr
// Bit 21 R, osd_enable
//
// Bit 20:12 RW, global_alpha
// Bit 11 RW, test_rd_en
// Bit 10: 9 Reserved for control signals
// Bit 8: 5 RW, ctrl_mtch_y
// Bit 4 RW, ctrl_422to444
// Bit 3: 0 RW, osd_blk_enable. Bit 0 to enable block 0: 1=enable, 0=disable;
// Bit 1 to enable block 1, and so on.
#define VIU_OSD1_CTRL_STAT (0x1a10)
#define P_VIU_OSD1_CTRL_STAT (volatile unsigned int *)((0x1a10 << 2) + 0xff900000)
// Bit 31:26 Reserved
// Bit 25:16 R, fifo_count
// Bit 15 RW, osd_dpath_sel 0-osd1 mif 1-vpu mali afbcd
// Bit 14 RW, replaced_alpha_en
// Bit 13: 6 RW, replaced_alpha
// Bit 5: 4 RW, hold_fifo_lines[6:5]
// Bit 3 RW, rgb2yuv_full_range
// Bit 2 RW, alpha_9b_mode
// Bit 1 RW, reserved
// Bit 0 RW, color_expand_mode
#define VIU_OSD1_CTRL_STAT2 (0x1a2d)
#define P_VIU_OSD1_CTRL_STAT2 (volatile unsigned int *)((0x1a2d << 2) + 0xff900000)
// Bit 31: 9 Reserved
// Bit 8 RW, 0 = Write LUT, 1 = Read LUT
// Bit 7: 0 RW, lut_addr
#define VIU_OSD1_COLOR_ADDR (0x1a11)
#define P_VIU_OSD1_COLOR_ADDR (volatile unsigned int *)((0x1a11 << 2) + 0xff900000)
// Bit 31:24 RW, Y or R
// Bit 23:16 RW, Cb or G
// Bit 15: 8 RW, Cr or B
// Bit 7: 0 RW, Alpha
#define VIU_OSD1_COLOR (0x1a12)
#define P_VIU_OSD1_COLOR (volatile unsigned int *)((0x1a12 << 2) + 0xff900000)
// Bit 31:24 RW, Y or R
// Bit 23:16 RW, Cb or G
// Bit 15: 8 RW, Cr or B
// Bit 7: 0 RW, Alpha
#define VIU_OSD1_TCOLOR_AG0 (0x1a17)
#define P_VIU_OSD1_TCOLOR_AG0 (volatile unsigned int *)((0x1a17 << 2) + 0xff900000)
#define VIU_OSD1_TCOLOR_AG1 (0x1a18)
#define P_VIU_OSD1_TCOLOR_AG1 (volatile unsigned int *)((0x1a18 << 2) + 0xff900000)
#define VIU_OSD1_TCOLOR_AG2 (0x1a19)
#define P_VIU_OSD1_TCOLOR_AG2 (volatile unsigned int *)((0x1a19 << 2) + 0xff900000)
#define VIU_OSD1_TCOLOR_AG3 (0x1a1a)
#define P_VIU_OSD1_TCOLOR_AG3 (volatile unsigned int *)((0x1a1a << 2) + 0xff900000)
// Bit 31:30 Reserved
// Bit 29 RW, y_rev: 0=normal read, 1=reverse read in Y direction
// Bit 28 RW, x_rev: 0=normal read, 1=reverse read in X direction
// Bit 27:24 Reserved
// Bit 23:16 RW, tbl_addr
// Bit 15 RW, little_endian: 0=big endian, 1=little endian
// Bit 14 RW, rpt_y
// Bit 13:12 RW, interp_ctrl. 0x=No interpolation; 10=Interpolate with previous
// pixel; 11=Interpolate with the average value
// between previous and next pixel.
// Bit 11: 8 RW, osd_blk_mode
// Bit 7 RW, rgb_en
// Bit 6 RW, tc_alpha_en
// Bit 5: 2 RW, color_matrix
// Bit 1 RW, interlace_en
// Bit 0 RW, interlace_sel_odd
#define VIU_OSD1_BLK0_CFG_W0 (0x1a1b)
#define P_VIU_OSD1_BLK0_CFG_W0 (volatile unsigned int *)((0x1a1b << 2) + 0xff900000)
#define VIU_OSD1_BLK1_CFG_W0 (0x1a1f)
#define P_VIU_OSD1_BLK1_CFG_W0 (volatile unsigned int *)((0x1a1f << 2) + 0xff900000)
#define VIU_OSD1_BLK2_CFG_W0 (0x1a23)
#define P_VIU_OSD1_BLK2_CFG_W0 (volatile unsigned int *)((0x1a23 << 2) + 0xff900000)
#define VIU_OSD1_BLK3_CFG_W0 (0x1a27)
#define P_VIU_OSD1_BLK3_CFG_W0 (volatile unsigned int *)((0x1a27 << 2) + 0xff900000)
// Bit 31:29 Reserved
// Bit 28:16 RW, x_end
// Bit 15:13 Reserved
// Bit 12: 0 RW, x_start
#define VIU_OSD1_BLK0_CFG_W1 (0x1a1c)
#define P_VIU_OSD1_BLK0_CFG_W1 (volatile unsigned int *)((0x1a1c << 2) + 0xff900000)
#define VIU_OSD1_BLK1_CFG_W1 (0x1a20)
#define P_VIU_OSD1_BLK1_CFG_W1 (volatile unsigned int *)((0x1a20 << 2) + 0xff900000)
#define VIU_OSD1_BLK2_CFG_W1 (0x1a24)
#define P_VIU_OSD1_BLK2_CFG_W1 (volatile unsigned int *)((0x1a24 << 2) + 0xff900000)
#define VIU_OSD1_BLK3_CFG_W1 (0x1a28)
#define P_VIU_OSD1_BLK3_CFG_W1 (volatile unsigned int *)((0x1a28 << 2) + 0xff900000)
// Bit 31:29 Reserved
// Bit 28:16 RW, y_end
// Bit 15:13 Reserved
// Bit 12: 0 RW, y_start
#define VIU_OSD1_BLK0_CFG_W2 (0x1a1d)
#define P_VIU_OSD1_BLK0_CFG_W2 (volatile unsigned int *)((0x1a1d << 2) + 0xff900000)
#define VIU_OSD1_BLK1_CFG_W2 (0x1a21)
#define P_VIU_OSD1_BLK1_CFG_W2 (volatile unsigned int *)((0x1a21 << 2) + 0xff900000)
#define VIU_OSD1_BLK2_CFG_W2 (0x1a25)
#define P_VIU_OSD1_BLK2_CFG_W2 (volatile unsigned int *)((0x1a25 << 2) + 0xff900000)
#define VIU_OSD1_BLK3_CFG_W2 (0x1a29)
#define P_VIU_OSD1_BLK3_CFG_W2 (volatile unsigned int *)((0x1a29 << 2) + 0xff900000)
// Bit 31:28 Reserved
// Bit 27:16 RW, h_end
// Bit 15:12 Reserved
// Bit 11: 0 RW, h_start
#define VIU_OSD1_BLK0_CFG_W3 (0x1a1e)
#define P_VIU_OSD1_BLK0_CFG_W3 (volatile unsigned int *)((0x1a1e << 2) + 0xff900000)
#define VIU_OSD1_BLK1_CFG_W3 (0x1a22)
#define P_VIU_OSD1_BLK1_CFG_W3 (volatile unsigned int *)((0x1a22 << 2) + 0xff900000)
#define VIU_OSD1_BLK2_CFG_W3 (0x1a26)
#define P_VIU_OSD1_BLK2_CFG_W3 (volatile unsigned int *)((0x1a26 << 2) + 0xff900000)
#define VIU_OSD1_BLK3_CFG_W3 (0x1a2a)
#define P_VIU_OSD1_BLK3_CFG_W3 (volatile unsigned int *)((0x1a2a << 2) + 0xff900000)
// Bit 31:28 Reserved
// Bit 27:16 RW, v_end
// Bit 15:12 Reserved
// Bit 11: 0 RW, v_start
#define VIU_OSD1_BLK0_CFG_W4 (0x1a13)
#define P_VIU_OSD1_BLK0_CFG_W4 (volatile unsigned int *)((0x1a13 << 2) + 0xff900000)
#define VIU_OSD1_BLK1_CFG_W4 (0x1a14)
#define P_VIU_OSD1_BLK1_CFG_W4 (volatile unsigned int *)((0x1a14 << 2) + 0xff900000)
#define VIU_OSD1_BLK2_CFG_W4 (0x1a15)
#define P_VIU_OSD1_BLK2_CFG_W4 (volatile unsigned int *)((0x1a15 << 2) + 0xff900000)
#define VIU_OSD1_BLK3_CFG_W4 (0x1a16)
#define P_VIU_OSD1_BLK3_CFG_W4 (volatile unsigned int *)((0x1a16 << 2) + 0xff900000)
// Bit 31 RW, burst_len_sel[2] of [2:0]
// Bit 30 RW, byte_swap: In addition to endian control, further define
// whether to swap upper and lower byte within a 16-bit mem word.
// 0=No swap; 1=Swap data[15:0] to be {data[7:0], data[15:8]}
// Bit 29 RW, div_swap : swap the 2 64bits words in 128 bit word
// Bit 28:24 RW, fifo_lim : when osd fifo is small than the fifo_lim*16, closed the rq port of osd_rd_mif
// Bit 23:22 RW, fifo_ctrl: 00 : for 1 word in 1 burst , 01 : for 2words in 1burst, 10: for 4words in 1burst, 11: reserved
// Bit 21:20 R, fifo_st. 0=IDLE, 1=FILL, 2=ABORT
// Bit 19 R, fifo_overflow
// Bit 18:12 RW, fifo_depth_val, max value=64: set actual fifo depth to fifo_depth_val*8.
// Bit 11:10 RW, burst_len_sel[1:0] of [2:0]. 0=24(default), 1=32, 2=48, 3=64, 4=96, 5=128.
// Bit 9: 5 RW, hold_fifo_lines[4:0]
// Bit 4 RW, clear_err: one pulse to clear fifo_overflow
// Bit 3 RW, fifo_sync_rst
// Bit 2: 1 RW, endian
// Bit 0 RW, urgent
#define VIU_OSD1_FIFO_CTRL_STAT (0x1a2b)
#define P_VIU_OSD1_FIFO_CTRL_STAT (volatile unsigned int *)((0x1a2b << 2) + 0xff900000)
// Bit 31:24 R, Y or R
// Bit 23:16 R, Cb or G
// Bit 15: 8 R, Cr or B
// Bit 7: 0 R, Output Alpha[8:1]
#define VIU_OSD1_TEST_RDDATA (0x1a2c)
#define P_VIU_OSD1_TEST_RDDATA (volatile unsigned int *)((0x1a2c << 2) + 0xff900000)
// Bit 15 RW, prot_en: 1=Borrow PROT's FIFO storage, either for rotate or non-rotate.
// Bit 12: 0 RW, effective FIFO size when prot_en=1.
#define VIU_OSD1_PROT_CTRL (0x1a2e)
#define P_VIU_OSD1_PROT_CTRL (volatile unsigned int *)((0x1a2e << 2) + 0xff900000)
//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 VIU_OSD1_MATRIX_CTRL (0x1a90)
#define P_VIU_OSD1_MATRIX_CTRL (volatile unsigned int *)((0x1a90 << 2) + 0xff900000)
//Bit 28:16 coef00
//Bit 12:0 coef01
#define VIU_OSD1_MATRIX_COEF00_01 (0x1a91)
#define P_VIU_OSD1_MATRIX_COEF00_01 (volatile unsigned int *)((0x1a91 << 2) + 0xff900000)
//Bit 28:16 coef02
//Bit 12:0 coef10
#define VIU_OSD1_MATRIX_COEF02_10 (0x1a92)
#define P_VIU_OSD1_MATRIX_COEF02_10 (volatile unsigned int *)((0x1a92 << 2) + 0xff900000)
//Bit 28:16 coef11
//Bit 12:0 coef12
#define VIU_OSD1_MATRIX_COEF11_12 (0x1a93)
#define P_VIU_OSD1_MATRIX_COEF11_12 (volatile unsigned int *)((0x1a93 << 2) + 0xff900000)
//Bit 28:16 coef20
//Bit 12:0 coef21
#define VIU_OSD1_MATRIX_COEF20_21 (0x1a94)
#define P_VIU_OSD1_MATRIX_COEF20_21 (volatile unsigned int *)((0x1a94 << 2) + 0xff900000)
//Bit 31:30 mat_clmod
//Bit 18:16 mat_convrs
//Bit 12:0 mat_coef42
#define VIU_OSD1_MATRIX_COLMOD_COEF42 (0x1a95)
#define P_VIU_OSD1_MATRIX_COLMOD_COEF42 (volatile unsigned int *)((0x1a95 << 2) + 0xff900000)
//Bit 26:16 offset0
//Bit 10:0 offset1
#define VIU_OSD1_MATRIX_OFFSET0_1 (0x1a96)
#define P_VIU_OSD1_MATRIX_OFFSET0_1 (volatile unsigned int *)((0x1a96 << 2) + 0xff900000)
//Bit 10:0 offset2
#define VIU_OSD1_MATRIX_OFFSET2 (0x1a97)
#define P_VIU_OSD1_MATRIX_OFFSET2 (volatile unsigned int *)((0x1a97 << 2) + 0xff900000)
//Bit 26:16 pre_offset0
//Bit 10:0 pre_offset1
#define VIU_OSD1_MATRIX_PRE_OFFSET0_1 (0x1a98)
#define P_VIU_OSD1_MATRIX_PRE_OFFSET0_1 (volatile unsigned int *)((0x1a98 << 2) + 0xff900000)
//Bit 10:0 pre_offset2
#define VIU_OSD1_MATRIX_PRE_OFFSET2 (0x1a99)
#define P_VIU_OSD1_MATRIX_PRE_OFFSET2 (volatile unsigned int *)((0x1a99 << 2) + 0xff900000)
//Read only
//Bit 29:20 component 0
//Bit 19:10 component 1
//Bit 9:0 component 2
#define VIU_OSD1_MATRIX_PROBE_COLOR (0x1a9a)
#define P_VIU_OSD1_MATRIX_PROBE_COLOR (volatile unsigned int *)((0x1a9a << 2) + 0xff900000)
//Bit 23:16 component 0
//Bit 15:8 component 1
//Bit 7:0 component 2
#define VIU_OSD1_MATRIX_HL_COLOR (0x1a9b)
#define P_VIU_OSD1_MATRIX_HL_COLOR (volatile unsigned int *)((0x1a9b << 2) + 0xff900000)
//28:16 probe x, postion
//12:0 probe y, position
#define VIU_OSD1_MATRIX_PROBE_POS (0x1a9c)
#define P_VIU_OSD1_MATRIX_PROBE_POS (volatile unsigned int *)((0x1a9c << 2) + 0xff900000)
//Bit 28:16 coef22
//Bit 12:0 coef30
#define VIU_OSD1_MATRIX_COEF22_30 (0x1a9d)
#define P_VIU_OSD1_MATRIX_COEF22_30 (volatile unsigned int *)((0x1a9d << 2) + 0xff900000)
//Bit 28:16 coef31
//Bit 12:0 coef32
#define VIU_OSD1_MATRIX_COEF31_32 (0x1a9e)
#define P_VIU_OSD1_MATRIX_COEF31_32 (volatile unsigned int *)((0x1a9e << 2) + 0xff900000)
//Bit 28:16 coef40
//Bit 12:0 coef41
#define VIU_OSD1_MATRIX_COEF40_41 (0x1a9f)
#define P_VIU_OSD1_MATRIX_COEF40_41 (volatile unsigned int *)((0x1a9f << 2) + 0xff900000)
//Bit 31:27 for all [31] for all eotf enable,[30] for matrix3x3 enable, [29:27] for eotf_ch0~3
//Bit 17:6 for clock gating
//Bit 5:4 pscale_mode ch2
//Bit 3:2 pscale_mode ch1
//Bit 1:0 pscale_mode ch0
#define VIU_OSD1_EOTF_CTL (0x1ad4)
#define P_VIU_OSD1_EOTF_CTL (volatile unsigned int *)((0x1ad4 << 2) + 0xff900000)
//Bit 28:16 coef00
//Bit 12:0 coef01
#define VIU_OSD1_EOTF_COEF00_01 (0x1ad5)
#define P_VIU_OSD1_EOTF_COEF00_01 (volatile unsigned int *)((0x1ad5 << 2) + 0xff900000)
//Bit 28:16 coef02
//Bit 12:0 coef10
#define VIU_OSD1_EOTF_COEF02_10 (0x1ad6)
#define P_VIU_OSD1_EOTF_COEF02_10 (volatile unsigned int *)((0x1ad6 << 2) + 0xff900000)
//Bit 28:16 coef11
//Bit 12:0 coef12
#define VIU_OSD1_EOTF_COEF11_12 (0x1ad7)
#define P_VIU_OSD1_EOTF_COEF11_12 (volatile unsigned int *)((0x1ad7 << 2) + 0xff900000)
//Bit 28:16 coef20
//Bit 12:0 coef21
#define VIU_OSD1_EOTF_COEF20_21 (0x1ad8)
#define P_VIU_OSD1_EOTF_COEF20_21 (volatile unsigned int *)((0x1ad8 << 2) + 0xff900000)
//Bit 28:16 coef22
//Bit 2:0 coef_rs
#define VIU_OSD1_EOTF_COEF22_RS (0x1ad9)
#define P_VIU_OSD1_EOTF_COEF22_RS (volatile unsigned int *)((0x1ad9 << 2) + 0xff900000)
#define VIU_OSD1_EOTF_LUT_ADDR_PORT (0x1ada)
#define P_VIU_OSD1_EOTF_LUT_ADDR_PORT (volatile unsigned int *)((0x1ada << 2) + 0xff900000)
#define VIU_OSD1_EOTF_LUT_DATA_PORT (0x1adb)
#define P_VIU_OSD1_EOTF_LUT_DATA_PORT (volatile unsigned int *)((0x1adb << 2) + 0xff900000)
//Bit 31:29 for OETF ch0~ch2
//Bit 21:12 for clock gating
//Bit 11:8 for oetf_scl_ch2
//Bit 7:4 for oetf_scl_ch1
//Bit 3:0 for oetf_scl_ch0
#define VIU_OSD1_OETF_CTL (0x1adc)
#define P_VIU_OSD1_OETF_CTL (volatile unsigned int *)((0x1adc << 2) + 0xff900000)
#define VIU_OSD1_OETF_LUT_ADDR_PORT (0x1add)
#define P_VIU_OSD1_OETF_LUT_ADDR_PORT (volatile unsigned int *)((0x1add << 2) + 0xff900000)
#define VIU_OSD1_OETF_LUT_DATA_PORT (0x1ade)
#define P_VIU_OSD1_OETF_LUT_DATA_PORT (volatile unsigned int *)((0x1ade << 2) + 0xff900000)
#define VIU_OSD1_OETF_3X3_OFST_0 (0x1aa0)
#define P_VIU_OSD1_OETF_3X3_OFST_0 (volatile unsigned int *)((0x1aa0 << 2) + 0xff900000)
#define VIU_OSD1_OETF_3X3_OFST_1 (0x1aa1)
#define P_VIU_OSD1_OETF_3X3_OFST_1 (volatile unsigned int *)((0x1aa1 << 2) + 0xff900000)
//------------------------------------------------------------------------------
// OSD2 registers
//------------------------------------------------------------------------------
// Bit 31 Reserved
// Bit 30 RW, enable_free_clk: 1=use free-running clock to drive logics;
// 0=use gated clock for low power.
// Bit 29 R, test_rd_dsr
// Bit 28 R, osd_done
// Bit 27:24 R, osd_blk_mode
// Bit 23:22 R, osd_blk_ptr
// Bit 21 R, osd_enable
//
// Bit 20:12 RW, global_alpha
// Bit 11 RW, test_rd_en
// Bit 10 RW, hl2_en
// Bit 9 RW, hl1_en
// Bit 8: 5 RW, ctrl_mtch_y
// Bit 4 RW, ctrl_422to444
// Bit 3: 0 RW, osd_blk_enable. Bit 0 to enable block 0: 1=enable, 0=disable;
// Bit 1 to enable block 1, and so on.
#define VIU_OSD2_CTRL_STAT (0x1a30)
#define P_VIU_OSD2_CTRL_STAT (volatile unsigned int *)((0x1a30 << 2) + 0xff900000)
// Bit 31:26 Reserved
// Bit 25:16 R, fifo_count
// Bit 15 Reserved
// Bit 14 RW, replaced_alpha_en
// Bit 13: 6 RW, replaced_alpha
// Bit 5: 4 RW, hold_fifo_lines[6:5]
// Bit 3 RW, rgb2yuv_full_range
// Bit 2 RW, alpha_9b_mode
// Bit 1 RW, reserved
// Bit 0 RW, color_expand_mode
#define VIU_OSD2_CTRL_STAT2 (0x1a4d)
#define P_VIU_OSD2_CTRL_STAT2 (volatile unsigned int *)((0x1a4d << 2) + 0xff900000)
// Bit 31: 9 Reserved
// Bit 8 RW, 0 = Write LUT, 1 = Read LUT
// Bit 7: 0 RW, lut_addr
#define VIU_OSD2_COLOR_ADDR (0x1a31)
#define P_VIU_OSD2_COLOR_ADDR (volatile unsigned int *)((0x1a31 << 2) + 0xff900000)
// Bit 31:24 RW, Y or R
// Bit 23:16 RW, Cb or G
// Bit 15: 8 RW, Cr or B
// Bit 7: 0 RW, Alpha
#define VIU_OSD2_COLOR (0x1a32)
#define P_VIU_OSD2_COLOR (volatile unsigned int *)((0x1a32 << 2) + 0xff900000)
// Bit 31:28 Reserved
// Bit 27:16 RW, hl[1-2]_h/v_start
// Bit 15:12 Reserved
// Bit 11: 0 RW, hl[1-2]_h/v_end
#define VIU_OSD2_HL1_H_START_END (0x1a33)
#define P_VIU_OSD2_HL1_H_START_END (volatile unsigned int *)((0x1a33 << 2) + 0xff900000)
#define VIU_OSD2_HL1_V_START_END (0x1a34)
#define P_VIU_OSD2_HL1_V_START_END (volatile unsigned int *)((0x1a34 << 2) + 0xff900000)
#define VIU_OSD2_HL2_H_START_END (0x1a35)
#define P_VIU_OSD2_HL2_H_START_END (volatile unsigned int *)((0x1a35 << 2) + 0xff900000)
#define VIU_OSD2_HL2_V_START_END (0x1a36)
#define P_VIU_OSD2_HL2_V_START_END (volatile unsigned int *)((0x1a36 << 2) + 0xff900000)
// Bit 31:24 RW, Y or R
// Bit 23:16 RW, Cb or G
// Bit 15: 8 RW, Cr or B
// Bit 7: 0 RW, Alpha
#define VIU_OSD2_TCOLOR_AG0 (0x1a37)
#define P_VIU_OSD2_TCOLOR_AG0 (volatile unsigned int *)((0x1a37 << 2) + 0xff900000)
#define VIU_OSD2_TCOLOR_AG1 (0x1a38)
#define P_VIU_OSD2_TCOLOR_AG1 (volatile unsigned int *)((0x1a38 << 2) + 0xff900000)
#define VIU_OSD2_TCOLOR_AG2 (0x1a39)
#define P_VIU_OSD2_TCOLOR_AG2 (volatile unsigned int *)((0x1a39 << 2) + 0xff900000)
#define VIU_OSD2_TCOLOR_AG3 (0x1a3a)
#define P_VIU_OSD2_TCOLOR_AG3 (volatile unsigned int *)((0x1a3a << 2) + 0xff900000)
// Bit 31:24 Reserved
// Bit 23:16 RW, tbl_addr
// Bit 15 RW, little_endian: 0=big endian, 1=little endian
// Bit 14 RW, rpt_y
// Bit 13:12 RW, interp_ctrl. 0x=No interpolation; 10=Interpolate with previous
// pixel; 11=Interpolate with the average value
// between previous and next pixel.
// Bit 11: 8 RW, osd_blk_mode
// Bit 7 RW, rgb_en
// Bit 6 RW, tc_alpha_en
// Bit 5: 2 RW, color_matrix
// Bit 1 RW, interlace_en
// Bit 0 RW, interlace_sel_odd
#define VIU_OSD2_BLK0_CFG_W0 (0x1a3b)
#define P_VIU_OSD2_BLK0_CFG_W0 (volatile unsigned int *)((0x1a3b << 2) + 0xff900000)
#define VIU_OSD2_BLK1_CFG_W0 (0x1a3f)
#define P_VIU_OSD2_BLK1_CFG_W0 (volatile unsigned int *)((0x1a3f << 2) + 0xff900000)
#define VIU_OSD2_BLK2_CFG_W0 (0x1a43)
#define P_VIU_OSD2_BLK2_CFG_W0 (volatile unsigned int *)((0x1a43 << 2) + 0xff900000)
#define VIU_OSD2_BLK3_CFG_W0 (0x1a47)
#define P_VIU_OSD2_BLK3_CFG_W0 (volatile unsigned int *)((0x1a47 << 2) + 0xff900000)
// Bit 31:29 Reserved
// Bit 28:16 RW, x_end
// Bit 15:13 Reserved
// Bit 12: 0 RW, x_start
#define VIU_OSD2_BLK0_CFG_W1 (0x1a3c)
#define P_VIU_OSD2_BLK0_CFG_W1 (volatile unsigned int *)((0x1a3c << 2) + 0xff900000)
#define VIU_OSD2_BLK1_CFG_W1 (0x1a40)
#define P_VIU_OSD2_BLK1_CFG_W1 (volatile unsigned int *)((0x1a40 << 2) + 0xff900000)
#define VIU_OSD2_BLK2_CFG_W1 (0x1a44)
#define P_VIU_OSD2_BLK2_CFG_W1 (volatile unsigned int *)((0x1a44 << 2) + 0xff900000)
#define VIU_OSD2_BLK3_CFG_W1 (0x1a48)
#define P_VIU_OSD2_BLK3_CFG_W1 (volatile unsigned int *)((0x1a48 << 2) + 0xff900000)
// Bit 31:29 Reserved
// Bit 28:16 RW, y_end
// Bit 15:13 Reserved
// Bit 12: 0 RW, y_start
#define VIU_OSD2_BLK0_CFG_W2 (0x1a3d)
#define P_VIU_OSD2_BLK0_CFG_W2 (volatile unsigned int *)((0x1a3d << 2) + 0xff900000)
#define VIU_OSD2_BLK1_CFG_W2 (0x1a41)
#define P_VIU_OSD2_BLK1_CFG_W2 (volatile unsigned int *)((0x1a41 << 2) + 0xff900000)
#define VIU_OSD2_BLK2_CFG_W2 (0x1a45)
#define P_VIU_OSD2_BLK2_CFG_W2 (volatile unsigned int *)((0x1a45 << 2) + 0xff900000)
#define VIU_OSD2_BLK3_CFG_W2 (0x1a49)
#define P_VIU_OSD2_BLK3_CFG_W2 (volatile unsigned int *)((0x1a49 << 2) + 0xff900000)
// Bit 31:28 Reserved
// Bit 27:16 RW, h_end
// Bit 15:12 Reserved
// Bit 11: 0 RW, h_start
#define VIU_OSD2_BLK0_CFG_W3 (0x1a3e)
#define P_VIU_OSD2_BLK0_CFG_W3 (volatile unsigned int *)((0x1a3e << 2) + 0xff900000)
#define VIU_OSD2_BLK1_CFG_W3 (0x1a42)
#define P_VIU_OSD2_BLK1_CFG_W3 (volatile unsigned int *)((0x1a42 << 2) + 0xff900000)
#define VIU_OSD2_BLK2_CFG_W3 (0x1a46)
#define P_VIU_OSD2_BLK2_CFG_W3 (volatile unsigned int *)((0x1a46 << 2) + 0xff900000)
#define VIU_OSD2_BLK3_CFG_W3 (0x1a4a)
#define P_VIU_OSD2_BLK3_CFG_W3 (volatile unsigned int *)((0x1a4a << 2) + 0xff900000)
// Bit 31:28 Reserved
// Bit 27:16 RW, v_end
// Bit 15:12 Reserved
// Bit 11: 0 RW, v_start
#define VIU_OSD2_BLK0_CFG_W4 (0x1a64)
#define P_VIU_OSD2_BLK0_CFG_W4 (volatile unsigned int *)((0x1a64 << 2) + 0xff900000)
#define VIU_OSD2_BLK1_CFG_W4 (0x1a65)
#define P_VIU_OSD2_BLK1_CFG_W4 (volatile unsigned int *)((0x1a65 << 2) + 0xff900000)
#define VIU_OSD2_BLK2_CFG_W4 (0x1a66)
#define P_VIU_OSD2_BLK2_CFG_W4 (volatile unsigned int *)((0x1a66 << 2) + 0xff900000)
#define VIU_OSD2_BLK3_CFG_W4 (0x1a67)
#define P_VIU_OSD2_BLK3_CFG_W4 (volatile unsigned int *)((0x1a67 << 2) + 0xff900000)
// Bit 31 RW, burst_len_sel[2] of [2:0]
// Bit 30 RW, byte_swap: In addition to endian control, further define
// whether to swap upper and lower byte within a 16-bit mem word.
// 0=No swap; 1=Swap data[15:0] to be {data[7:0], data[15:8]}
// Bit 29 RW, div_swap : swap the 2 64bits words in 128 bit word
// Bit 28:24 RW, fifo_lim : when osd fifo is small than the fifo_lim*16, closed the rq port of osd_rd_mif
// Bit 23:22 RW, fifo_ctrl: 00 : for 1 word in 1 burst , 01 : for 2words in 1burst, 10: for 4words in 1burst, 11: reserved
// Bit 21:20 R, fifo_st. 0=IDLE, 1=FILL, 2=ABORT
// Bit 19 R, fifo_overflow
//
// Bit 18:12 RW, fifo_depth_val, max value=64: set actual fifo depth to fifo_depth_val*8.
// Bit 11:10 RW, burst_len_sel[1:0] of [2:0]. 0=24(default), 1=32, 2=48, 3=64, 4=96, 5=128.
// Bit 9: 5 RW, hold_fifo_lines[4:0]
// Bit 4 RW, clear_err: one pulse to clear fifo_overflow
// Bit 3 RW, fifo_sync_rst
// Bit 2: 1 RW, endian
// Bit 0 RW, urgent
#define VIU_OSD2_FIFO_CTRL_STAT (0x1a4b)
#define P_VIU_OSD2_FIFO_CTRL_STAT (volatile unsigned int *)((0x1a4b << 2) + 0xff900000)
// Bit 31:24 R, Y or R
// Bit 23:16 R, Cb or G
// Bit 15: 8 R, Cr or B
// Bit 7: 0 R, Output Alpha[8:1]
#define VIU_OSD2_TEST_RDDATA (0x1a4c)
#define P_VIU_OSD2_TEST_RDDATA (volatile unsigned int *)((0x1a4c << 2) + 0xff900000)
// Bit 15 RW, prot_en: 1=Borrow PROT's FIFO storage, either for rotate or non-rotate.
// Bit 12: 0 RW, effective FIFO size when prot_en=1.
#define VIU_OSD2_PROT_CTRL (0x1a4e)
#define P_VIU_OSD2_PROT_CTRL (volatile unsigned int *)((0x1a4e << 2) + 0xff900000)
//------------------------------------------------------------------------------
// VD1 path
//------------------------------------------------------------------------------
#define VD1_IF0_GEN_REG (0x1a50)
#define P_VD1_IF0_GEN_REG (volatile unsigned int *)((0x1a50 << 2) + 0xff900000)
#define VD1_IF0_CANVAS0 (0x1a51)
#define P_VD1_IF0_CANVAS0 (volatile unsigned int *)((0x1a51 << 2) + 0xff900000)
#define VD1_IF0_CANVAS1 (0x1a52)
#define P_VD1_IF0_CANVAS1 (volatile unsigned int *)((0x1a52 << 2) + 0xff900000)
#define VD1_IF0_LUMA_X0 (0x1a53)
#define P_VD1_IF0_LUMA_X0 (volatile unsigned int *)((0x1a53 << 2) + 0xff900000)
#define VD1_IF0_LUMA_Y0 (0x1a54)
#define P_VD1_IF0_LUMA_Y0 (volatile unsigned int *)((0x1a54 << 2) + 0xff900000)
#define VD1_IF0_CHROMA_X0 (0x1a55)
#define P_VD1_IF0_CHROMA_X0 (volatile unsigned int *)((0x1a55 << 2) + 0xff900000)
#define VD1_IF0_CHROMA_Y0 (0x1a56)
#define P_VD1_IF0_CHROMA_Y0 (volatile unsigned int *)((0x1a56 << 2) + 0xff900000)
#define VD1_IF0_LUMA_X1 (0x1a57)
#define P_VD1_IF0_LUMA_X1 (volatile unsigned int *)((0x1a57 << 2) + 0xff900000)
#define VD1_IF0_LUMA_Y1 (0x1a58)
#define P_VD1_IF0_LUMA_Y1 (volatile unsigned int *)((0x1a58 << 2) + 0xff900000)
#define VD1_IF0_CHROMA_X1 (0x1a59)
#define P_VD1_IF0_CHROMA_X1 (volatile unsigned int *)((0x1a59 << 2) + 0xff900000)
#define VD1_IF0_CHROMA_Y1 (0x1a5a)
#define P_VD1_IF0_CHROMA_Y1 (volatile unsigned int *)((0x1a5a << 2) + 0xff900000)
#define VD1_IF0_RPT_LOOP (0x1a5b)
#define P_VD1_IF0_RPT_LOOP (volatile unsigned int *)((0x1a5b << 2) + 0xff900000)
#define VD1_IF0_LUMA0_RPT_PAT (0x1a5c)
#define P_VD1_IF0_LUMA0_RPT_PAT (volatile unsigned int *)((0x1a5c << 2) + 0xff900000)
#define VD1_IF0_CHROMA0_RPT_PAT (0x1a5d)
#define P_VD1_IF0_CHROMA0_RPT_PAT (volatile unsigned int *)((0x1a5d << 2) + 0xff900000)
#define VD1_IF0_LUMA1_RPT_PAT (0x1a5e)
#define P_VD1_IF0_LUMA1_RPT_PAT (volatile unsigned int *)((0x1a5e << 2) + 0xff900000)
#define VD1_IF0_CHROMA1_RPT_PAT (0x1a5f)
#define P_VD1_IF0_CHROMA1_RPT_PAT (volatile unsigned int *)((0x1a5f << 2) + 0xff900000)
#define VD1_IF0_LUMA_PSEL (0x1a60)
#define P_VD1_IF0_LUMA_PSEL (volatile unsigned int *)((0x1a60 << 2) + 0xff900000)
#define VD1_IF0_CHROMA_PSEL (0x1a61)
#define P_VD1_IF0_CHROMA_PSEL (volatile unsigned int *)((0x1a61 << 2) + 0xff900000)
#define VD1_IF0_DUMMY_PIXEL (0x1a62)
#define P_VD1_IF0_DUMMY_PIXEL (volatile unsigned int *)((0x1a62 << 2) + 0xff900000)
#define VD1_IF0_LUMA_FIFO_SIZE (0x1a63)
#define P_VD1_IF0_LUMA_FIFO_SIZE (volatile unsigned int *)((0x1a63 << 2) + 0xff900000)
#define VD1_IF0_RANGE_MAP_Y (0x1a6a)
#define P_VD1_IF0_RANGE_MAP_Y (volatile unsigned int *)((0x1a6a << 2) + 0xff900000)
#define VD1_IF0_RANGE_MAP_CB (0x1a6b)
#define P_VD1_IF0_RANGE_MAP_CB (volatile unsigned int *)((0x1a6b << 2) + 0xff900000)
#define VD1_IF0_RANGE_MAP_CR (0x1a6c)
#define P_VD1_IF0_RANGE_MAP_CR (volatile unsigned int *)((0x1a6c << 2) + 0xff900000)
#define VD1_IF0_GEN_REG2 (0x1a6d)
#define P_VD1_IF0_GEN_REG2 (volatile unsigned int *)((0x1a6d << 2) + 0xff900000)
#define VD1_IF0_PROT_CNTL (0x1a6e)
#define P_VD1_IF0_PROT_CNTL (volatile unsigned int *)((0x1a6e << 2) + 0xff900000)
#define VD1_IF0_URGENT_CTRL (0x1a6f)
#define P_VD1_IF0_URGENT_CTRL (volatile unsigned int *)((0x1a6f << 2) + 0xff900000)
//Bit 31 it true, disable clock, otherwise enable clock
//Bit 30 soft rst bit
//Bit 28 if true, horizontal formatter use repeating to generete pixel, otherwise use bilinear interpolation
//Bit 27:24 horizontal formatter initial phase
//Bit 23 horizontal formatter repeat pixel 0 enable
//Bit 22:21 horizontal Y/C ratio, 00: 1:1, 01: 2:1, 10: 4:1
//Bit 20 horizontal formatter enable
//Bit 19 if true, always use phase0 while vertical formater, meaning always
// repeat data, no interpolation
//Bit 18 if true, disable vertical formatter chroma repeat last line
//Bit 17 veritcal formatter dont need repeat line on phase0, 1: enable, 0: disable
//Bit 16 veritcal formatter repeat line 0 enable
//Bit 15:12 vertical formatter skip line num at the beginning
//Bit 11:8 vertical formatter initial phase
//Bit 7:1 vertical formatter phase step (3.4)
//Bit 0 vertical formatter enable
#define VIU_VD1_FMT_CTRL (0x1a68)
#define P_VIU_VD1_FMT_CTRL (volatile unsigned int *)((0x1a68 << 2) + 0xff900000)
//Bit 27:16 horizontal formatter width
//Bit 11:0 vertical formatter width
#define VIU_VD1_FMT_W (0x1a69)
#define P_VIU_VD1_FMT_W (volatile unsigned int *)((0x1a69 << 2) + 0xff900000)
//------------------------------------------------------------------------------
// VD2 path
//------------------------------------------------------------------------------
#define VD2_IF0_GEN_REG (0x1a70)
#define P_VD2_IF0_GEN_REG (volatile unsigned int *)((0x1a70 << 2) + 0xff900000)
#define VD2_IF0_CANVAS0 (0x1a71)
#define P_VD2_IF0_CANVAS0 (volatile unsigned int *)((0x1a71 << 2) + 0xff900000)
#define VD2_IF0_CANVAS1 (0x1a72)
#define P_VD2_IF0_CANVAS1 (volatile unsigned int *)((0x1a72 << 2) + 0xff900000)
#define VD2_IF0_LUMA_X0 (0x1a73)
#define P_VD2_IF0_LUMA_X0 (volatile unsigned int *)((0x1a73 << 2) + 0xff900000)
#define VD2_IF0_LUMA_Y0 (0x1a74)
#define P_VD2_IF0_LUMA_Y0 (volatile unsigned int *)((0x1a74 << 2) + 0xff900000)
#define VD2_IF0_CHROMA_X0 (0x1a75)
#define P_VD2_IF0_CHROMA_X0 (volatile unsigned int *)((0x1a75 << 2) + 0xff900000)
#define VD2_IF0_CHROMA_Y0 (0x1a76)
#define P_VD2_IF0_CHROMA_Y0 (volatile unsigned int *)((0x1a76 << 2) + 0xff900000)
#define VD2_IF0_LUMA_X1 (0x1a77)
#define P_VD2_IF0_LUMA_X1 (volatile unsigned int *)((0x1a77 << 2) + 0xff900000)
#define VD2_IF0_LUMA_Y1 (0x1a78)
#define P_VD2_IF0_LUMA_Y1 (volatile unsigned int *)((0x1a78 << 2) + 0xff900000)
#define VD2_IF0_CHROMA_X1 (0x1a79)
#define P_VD2_IF0_CHROMA_X1 (volatile unsigned int *)((0x1a79 << 2) + 0xff900000)
#define VD2_IF0_CHROMA_Y1 (0x1a7a)
#define P_VD2_IF0_CHROMA_Y1 (volatile unsigned int *)((0x1a7a << 2) + 0xff900000)
#define VD2_IF0_RPT_LOOP (0x1a7b)
#define P_VD2_IF0_RPT_LOOP (volatile unsigned int *)((0x1a7b << 2) + 0xff900000)
#define VD2_IF0_LUMA0_RPT_PAT (0x1a7c)
#define P_VD2_IF0_LUMA0_RPT_PAT (volatile unsigned int *)((0x1a7c << 2) + 0xff900000)
#define VD2_IF0_CHROMA0_RPT_PAT (0x1a7d)
#define P_VD2_IF0_CHROMA0_RPT_PAT (volatile unsigned int *)((0x1a7d << 2) + 0xff900000)
#define VD2_IF0_LUMA1_RPT_PAT (0x1a7e)
#define P_VD2_IF0_LUMA1_RPT_PAT (volatile unsigned int *)((0x1a7e << 2) + 0xff900000)
#define VD2_IF0_CHROMA1_RPT_PAT (0x1a7f)
#define P_VD2_IF0_CHROMA1_RPT_PAT (volatile unsigned int *)((0x1a7f << 2) + 0xff900000)
#define VD2_IF0_LUMA_PSEL (0x1a80)
#define P_VD2_IF0_LUMA_PSEL (volatile unsigned int *)((0x1a80 << 2) + 0xff900000)
#define VD2_IF0_CHROMA_PSEL (0x1a81)
#define P_VD2_IF0_CHROMA_PSEL (volatile unsigned int *)((0x1a81 << 2) + 0xff900000)
#define VD2_IF0_DUMMY_PIXEL (0x1a82)
#define P_VD2_IF0_DUMMY_PIXEL (volatile unsigned int *)((0x1a82 << 2) + 0xff900000)
#define VD2_IF0_LUMA_FIFO_SIZE (0x1a83)
#define P_VD2_IF0_LUMA_FIFO_SIZE (volatile unsigned int *)((0x1a83 << 2) + 0xff900000)
#define VD2_IF0_RANGE_MAP_Y (0x1a8a)
#define P_VD2_IF0_RANGE_MAP_Y (volatile unsigned int *)((0x1a8a << 2) + 0xff900000)
#define VD2_IF0_RANGE_MAP_CB (0x1a8b)
#define P_VD2_IF0_RANGE_MAP_CB (volatile unsigned int *)((0x1a8b << 2) + 0xff900000)
#define VD2_IF0_RANGE_MAP_CR (0x1a8c)
#define P_VD2_IF0_RANGE_MAP_CR (volatile unsigned int *)((0x1a8c << 2) + 0xff900000)
#define VD2_IF0_GEN_REG2 (0x1a8d)
#define P_VD2_IF0_GEN_REG2 (volatile unsigned int *)((0x1a8d << 2) + 0xff900000)
#define VD2_IF0_PROT_CNTL (0x1a8e)
#define P_VD2_IF0_PROT_CNTL (volatile unsigned int *)((0x1a8e << 2) + 0xff900000)
#define VD2_IF0_URGENT_CTRL (0x1a8f)
#define P_VD2_IF0_URGENT_CTRL (volatile unsigned int *)((0x1a8f << 2) + 0xff900000)
//Bit 31 it true, disable clock, otherwise enable clock
//Bit 30 soft rst bit
//Bit 28 if true, horizontal formatter use repeating to generete pixel, otherwise use bilinear interpolation
//Bit 27:24 horizontal formatter initial phase
//Bit 23 horizontal formatter repeat pixel 0 enable
//Bit 22:21 horizontal Y/C ratio, 00: 1:1, 01: 2:1, 10: 4:1
//Bit 20 horizontal formatter enable
//Bit 17 veritcal formatter dont need repeat line on phase0, 1: enable, 0: disable
//Bit 16 veritcal formatter repeat line 0 enable
//Bit 15:12 vertical formatter skip line num at the beginning
//Bit 11:8 vertical formatter initial phase
//Bit 7:1 vertical formatter phase step (3.4)
//Bit 0 vertical formatter enable
#define VIU_VD2_FMT_CTRL (0x1a88)
#define P_VIU_VD2_FMT_CTRL (volatile unsigned int *)((0x1a88 << 2) + 0xff900000)
//Bit 27:16 horizontal formatter width
//Bit 11:0 vertical formatter width
#define VIU_VD2_FMT_W (0x1a89)
#define P_VIU_VD2_FMT_W (volatile unsigned int *)((0x1a89 << 2) + 0xff900000)
// //todo add comment
#define LDIM_STTS_GCLK_CTRL0 (0x1ac0)
#define P_LDIM_STTS_GCLK_CTRL0 (volatile unsigned int *)((0x1ac0 << 2) + 0xff900000)
#define LDIM_STTS_CTRL0 (0x1ac1)
#define P_LDIM_STTS_CTRL0 (volatile unsigned int *)((0x1ac1 << 2) + 0xff900000)
#define LDIM_STTS_WIDTHM1_HEIGHTM1 (0x1ac2)
#define P_LDIM_STTS_WIDTHM1_HEIGHTM1 (volatile unsigned int *)((0x1ac2 << 2) + 0xff900000)
#define LDIM_STTS_MATRIX_COEF00_01 (0x1ac3)
#define P_LDIM_STTS_MATRIX_COEF00_01 (volatile unsigned int *)((0x1ac3 << 2) + 0xff900000)
#define LDIM_STTS_MATRIX_COEF02_10 (0x1ac4)
#define P_LDIM_STTS_MATRIX_COEF02_10 (volatile unsigned int *)((0x1ac4 << 2) + 0xff900000)
#define LDIM_STTS_MATRIX_COEF11_12 (0x1ac5)
#define P_LDIM_STTS_MATRIX_COEF11_12 (volatile unsigned int *)((0x1ac5 << 2) + 0xff900000)
#define LDIM_STTS_MATRIX_COEF20_21 (0x1ac6)
#define P_LDIM_STTS_MATRIX_COEF20_21 (volatile unsigned int *)((0x1ac6 << 2) + 0xff900000)
#define LDIM_STTS_MATRIX_COEF22 (0x1ac7)
#define P_LDIM_STTS_MATRIX_COEF22 (volatile unsigned int *)((0x1ac7 << 2) + 0xff900000)
#define LDIM_STTS_MATRIX_OFFSET0_1 (0x1ac8)
#define P_LDIM_STTS_MATRIX_OFFSET0_1 (volatile unsigned int *)((0x1ac8 << 2) + 0xff900000)
#define LDIM_STTS_MATRIX_OFFSET2 (0x1ac9)
#define P_LDIM_STTS_MATRIX_OFFSET2 (volatile unsigned int *)((0x1ac9 << 2) + 0xff900000)
#define LDIM_STTS_MATRIX_PRE_OFFSET0_1 (0x1aca)
#define P_LDIM_STTS_MATRIX_PRE_OFFSET0_1 (volatile unsigned int *)((0x1aca << 2) + 0xff900000)
#define LDIM_STTS_MATRIX_PRE_OFFSET2 (0x1acb)
#define P_LDIM_STTS_MATRIX_PRE_OFFSET2 (volatile unsigned int *)((0x1acb << 2) + 0xff900000)
#define LDIM_STTS_MATRIX_HL_COLOR (0x1acc)
#define P_LDIM_STTS_MATRIX_HL_COLOR (volatile unsigned int *)((0x1acc << 2) + 0xff900000)
#define LDIM_STTS_MATRIX_PROBE_POS (0x1acd)
#define P_LDIM_STTS_MATRIX_PROBE_POS (volatile unsigned int *)((0x1acd << 2) + 0xff900000)
//
// //read only
#define LDIM_STTS_MATRIX_PROBE_COLOR (0x1ace)
#define P_LDIM_STTS_MATRIX_PROBE_COLOR (volatile unsigned int *)((0x1ace << 2) + 0xff900000)
//
// //Bit 31, local dimming statistic enable
// //Bit 29, 1: output region histogram 16bit 0:output region histogram 20bit
// //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:14, 1: region read index auto increase per block read finished to VDIN_LDIM_STTS_HIST_READ_REGION
// // 2: region read index auto increase per read finished to VDIN_LDIM_STTS_HIST_READ_REGION
// // 0/3: disable read index self increase
// //Bit 13:8, region read sub index, which mux the hist & max-finding result to cbus port, refer to LDIM_STTS_HIST_READ_REGION
// //Bit 6:0, region read index
#define LDIM_STTS_HIST_REGION_IDX (0x1ad0)
#define P_LDIM_STTS_HIST_REGION_IDX (volatile unsigned int *)((0x1ad0 << 2) + 0xff900000)
//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 LDIM_STTS_HIST_SET_REGION (0x1ad1)
#define P_LDIM_STTS_HIST_SET_REGION (volatile unsigned int *)((0x1ad1 << 2) + 0xff900000)
//
// //if LDIM_STTS_HIST_REGION_IDX[29] == 0, that is output hist with 20bit data.
// //if LDIM_STTS_HIST_REGION_IDX[21] == 0, that is output 16hist bins in comp 0.
// //output sequence as rd_sub_idx from 0~47: {max_comp2, comp0_hist0}, {max_comp1, comp0_hist1}, {max_comp0, comp0_hist2},
// // comp0_hist3 ... comp2_hist16
// //if LDIM_STTS_HIST_REGION_IDX[29] == 1, that is output hist with 16bit data.
// //if LDIM_STTS_HIST_REGION_IDX[21] == 0, that is output 16hist bins in comp 0.
// //output sequence as rd_sub_idx from 0~47: {max_comp2, max_comp1, max_comp0}, comp0_hist0, comp0_hist1, comp0_hist2
// // comp0_hist3 ... comp2_hist16
// //if LDIM_STTS_HIST_REGION_IDX[29] == 0, that is output hist with 20bit data.
// //if LDIM_STTS_HIST_REGION_IDX[21] == 1, that is output 32hist bins in comp 0.
// //output sequence as rd_sub_idx from 0~47: {max_comp2, max_comp1, max_comp0}, comp0_hist0, comp0_hist1, comp0_hist2
// // comp0_hist3 ...comp0_hist31 ... comp1_hist16
//
#define LDIM_STTS_HIST_READ_REGION (0x1ad2)
#define P_LDIM_STTS_HIST_READ_REGION (volatile unsigned int *)((0x1ad2 << 2) + 0xff900000)
#define LDIM_STTS_HIST_START_RD_REGION (0x1ad3)
#define P_LDIM_STTS_HIST_START_RD_REGION (volatile unsigned int *)((0x1ad3 << 2) + 0xff900000)
// //bit15, auto enable; bit14, canvas write mode ;7:4, high threshold ;3:0 , low threshold for di if1 chroma path
// //bit31, auto enable; bit30, canvas write mode ;23:20, high threshold ;19:16 , low threshold for di if1 luma path
// `define DI_IF1_URGENT_CTRL 8'ha3
// //bit15, auto enable; bit14, canvas write mode ;7:4, high threshold ;3:0 , low threshold for di inp chroma path
// //bit31, auto enable; bit30, canvas write mode ;23:20, high threshold ;19:16 , low threshold for di inp luma path
// `define DI_INP_URGENT_CTRL 8'ha4
// //bit15, auto enable; bit14, canvas write mode ;7:4, high threshold ;3:0 , low threshold for di mem chroma path
// //bit31, auto enable; bit30, canvas write mode ;23:20, high threshold ;19:16 , low threshold for di mem luma path
// `define DI_MEM_URGENT_CTRL 8'ha5
// //bit15, auto enable; bit14, canvas write mode ;7:4, high threshold ;3:0 , low threshold for di chan2 chroma path
// //bit31, auto enable; bit30, canvas write mode ;23:20, high threshold ;19:16 , low threshold for di chan2 luma path
// `define DI_CHAN2_URGENT_CTRL 8'ha6
#define VD1_IF0_GEN_REG3 (0x1aa7)
#define P_VD1_IF0_GEN_REG3 (volatile unsigned int *)((0x1aa7 << 2) + 0xff900000)
//bit 31:1, reversed
//bit 0, cntl_64bit_rev
#define VD2_IF0_GEN_REG3 (0x1aa8)
#define P_VD2_IF0_GEN_REG3 (volatile unsigned int *)((0x1aa8 << 2) + 0xff900000)
//bit 31:1, reversed
//bit 0, cntl_64bit_rev
#define OSD_BLENDO_H_START_END (0x1aa9)
#define P_OSD_BLENDO_H_START_END (volatile unsigned int *)((0x1aa9 << 2) + 0xff900000)
//OSD blending output horizontal start and end
//Bit 28:16 start
//Bit 12:0 end
#define OSD_BLENDO_V_START_END (0x1aaa)
#define P_OSD_BLENDO_V_START_END (volatile unsigned int *)((0x1aaa << 2) + 0xff900000)
//OSD blending output vertical start and end
//Bit 28:16 start
//Bit 12:0 end
#define OSD_BLEND_GEN_CTRL0 (0x1aab)
#define P_OSD_BLEND_GEN_CTRL0 (volatile unsigned int *)((0x1aab << 2) + 0xff900000)
//Bit 31:23 const_out_alpha
//Bit 22:14 const_op_alpha
//Bit 13 if true, OSD2 foreground otherwise OSD1 foreground
//Bit 12 OSD BLENDing enable
//Bit 9:8 alpha_op_sel 00: output alpha use osd1_alpha, 01: use osd2_alpha, else use const_out_alpha
//Bit 5:4 color_op_sel 00: use osd1_alpha, 01: use osd2_alpha, else use const_op_alpha
//Bit 1 OSD2 enable
//Bit 0 OSD1 enable
#define OSD_BLEND_GEN_CTRL1 (0x1aac)
#define P_OSD_BLEND_GEN_CTRL1 (volatile unsigned int *)((0x1aac << 2) + 0xff900000)
//Bit 31 osd1_alpha_premult, if true, osd1 alpha is premultipiled
//Bit 30 osd2_alpha_premult, if true, osd2 alpha is premultipiled
//Bit 23:16 osd blending hold lines
//Bit 13:0 osd blending h_size
#define OSD_BLEND_DUMMY_DATA (0x1aad)
#define P_OSD_BLEND_DUMMY_DATA (volatile unsigned int *)((0x1aad << 2) + 0xff900000)
//Bit 29:20 Y/R
//Bit 19:10 CB/G
//Bit 9:0 Cr/B
#define OSD_BLEND_CURRENT_XY (0x1aae)
#define P_OSD_BLEND_CURRENT_XY (volatile unsigned int *)((0x1aae << 2) + 0xff900000)
//Bit 28:16 current_x
//Bit 12:0 current_y
//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 VIU_OSD2_MATRIX_CTRL (0x1ab0)
#define P_VIU_OSD2_MATRIX_CTRL (volatile unsigned int *)((0x1ab0 << 2) + 0xff900000)
//Bit 28:16 coef00
//Bit 12:0 coef01
#define VIU_OSD2_MATRIX_COEF00_01 (0x1ab1)
#define P_VIU_OSD2_MATRIX_COEF00_01 (volatile unsigned int *)((0x1ab1 << 2) + 0xff900000)
//Bit 28:16 coef02
//Bit 12:0 coef10
#define VIU_OSD2_MATRIX_COEF02_10 (0x1ab2)
#define P_VIU_OSD2_MATRIX_COEF02_10 (volatile unsigned int *)((0x1ab2 << 2) + 0xff900000)
//Bit 28:16 coef11
//Bit 12:0 coef12
#define VIU_OSD2_MATRIX_COEF11_12 (0x1ab3)
#define P_VIU_OSD2_MATRIX_COEF11_12 (volatile unsigned int *)((0x1ab3 << 2) + 0xff900000)
//Bit 28:16 coef20
//Bit 12:0 coef21
#define VIU_OSD2_MATRIX_COEF20_21 (0x1ab4)
#define P_VIU_OSD2_MATRIX_COEF20_21 (volatile unsigned int *)((0x1ab4 << 2) + 0xff900000)
#define VIU_OSD2_MATRIX_COEF22 (0x1ab5)
#define P_VIU_OSD2_MATRIX_COEF22 (volatile unsigned int *)((0x1ab5 << 2) + 0xff900000)
//Bit 26:16 offset0
//Bit 10:0 offset1
#define VIU_OSD2_MATRIX_OFFSET0_1 (0x1ab6)
#define P_VIU_OSD2_MATRIX_OFFSET0_1 (volatile unsigned int *)((0x1ab6 << 2) + 0xff900000)
//Bit 10:0 offset2
#define VIU_OSD2_MATRIX_OFFSET2 (0x1ab7)
#define P_VIU_OSD2_MATRIX_OFFSET2 (volatile unsigned int *)((0x1ab7 << 2) + 0xff900000)
//Bit 26:16 pre_offset0
//Bit 10:0 pre_offset1
#define VIU_OSD2_MATRIX_PRE_OFFSET0_1 (0x1ab8)
#define P_VIU_OSD2_MATRIX_PRE_OFFSET0_1 (volatile unsigned int *)((0x1ab8 << 2) + 0xff900000)
//Bit 10:0 pre_offset2
#define VIU_OSD2_MATRIX_PRE_OFFSET2 (0x1ab9)
#define P_VIU_OSD2_MATRIX_PRE_OFFSET2 (volatile unsigned int *)((0x1ab9 << 2) + 0xff900000)
//Read only
//Bit 29:20 component 0
//Bit 19:10 component 1
//Bit 9:0 component 2
#define VIU_OSD2_MATRIX_PROBE_COLOR (0x1aba)
#define P_VIU_OSD2_MATRIX_PROBE_COLOR (volatile unsigned int *)((0x1aba << 2) + 0xff900000)
//Bit 23:16 component 0
//Bit 15:8 component 1
//Bit 7:0 component 2
#define VIU_OSD2_MATRIX_HL_COLOR (0x1abb)
#define P_VIU_OSD2_MATRIX_HL_COLOR (volatile unsigned int *)((0x1abb << 2) + 0xff900000)
//28:16 probe x, postion
//12:0 probe y, position
#define VIU_OSD2_MATRIX_PROBE_POS (0x1abc)
#define P_VIU_OSD2_MATRIX_PROBE_POS (volatile unsigned int *)((0x1abc << 2) + 0xff900000)
//the segment of afbc dec is 8'he0-8'hfe
//`define AFBC_DEC_OFFSET 8'he0
//
// Reading file: afbc_dec_regs.h
//
// synopsys translate_off
// synopsys translate_on
////===============================////
//// reg
////===============================////
#define AFBC_ENABLE (0x1ae0)
#define P_AFBC_ENABLE (volatile unsigned int *)((0x1ae0 << 2) + 0xff900000)
//Bit 31:1, reserved
//Bit 8, dec_enable unsigned , default = 0
//Bit 7:1, reserved
//Bit 0, frm_start unsigned , default = 0
#define AFBC_MODE (0x1ae1)
#define P_AFBC_MODE (volatile unsigned int *)((0x1ae1 << 2) + 0xff900000)
//Bit 31, soft_reset the use as go_field
//Bit 30, reserved
//Bit 29, ddr_sz_mode uns, default = 0 , 0: fixed block ddr size 1 : unfixed block ddr size;
//Bit 28, blk_mem_mode uns, default = 0 , 0: fixed 16x128 size; 1 : fixed 12x128 size
//Bit 27:26, rev_mode uns, default = 0 , reverse mode
//Bit 25:24, mif_urgent uns, default = 3 , info mif and data mif urgent
//Bit 22:16, hold_line_num
//Bit 15:14, burst_len uns, default = 1, 0: burst1 1:burst2 2:burst4
//Bit 13:8, compbits_yuv uns, default = 0 ,
// bit 1:0,: y component bitwidth : 00-8bit 01-9bit 10-10bit
// bit 3:2,: u component bitwidth : 00-8bit 01-9bit 10-10bit
// bit 5:4,: v component bitwidth : 00-8bit 01-9bit 10-10bit
//Bit 7:6, vert_skip_y uns, default = 0 , luma vert skip mode : 00-y0y1, 01-y0, 10-y1, 11-(y0+y1)/2
//Bit 5:4, horz_skip_y uns, default = 0 , luma horz skip mode : 00-y0y1, 01-y0, 10-y1, 11-(y0+y1)/2
//Bit 3:2, vert_skip_uv uns, default = 0 , chroma vert skip mode : 00-y0y1, 01-y0, 10-y1, 11-(y0+y1)/2
//Bit 1:0, horz_skip_uv uns, default = 0 , chroma horz skip mode : 00-y0y1, 01-y0, 10-y1, 11-(y0+y1)/2
#define AFBC_SIZE_IN (0x1ae2)
#define P_AFBC_SIZE_IN (volatile unsigned int *)((0x1ae2 << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28:16 hsize_in uns, default = 1920 , pic horz size in unit: pixel
//Bit 15:13, reserved
//Bit 12:0, vsize_in uns, default = 1080 , pic vert size in unit: pixel
#define AFBC_DEC_DEF_COLOR (0x1ae3)
#define P_AFBC_DEC_DEF_COLOR (volatile unsigned int *)((0x1ae3 << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 29:20, def_color_y uns, default = 0, afbc dec y default setting value
//Bit 19:10, def_color_u uns, default = 0, afbc dec u default setting value
//Bit 9: 0, def_color_v uns, default = 0, afbc dec v default setting value
#define AFBC_CONV_CTRL (0x1ae4)
#define P_AFBC_CONV_CTRL (volatile unsigned int *)((0x1ae4 << 2) + 0xff900000)
//Bit 31:12, reserved
//Bit 11: 0, conv_lbuf_len uns, default = 256, unit=16 pixel need to set = 2^n
#define AFBC_LBUF_DEPTH (0x1ae5)
#define P_AFBC_LBUF_DEPTH (volatile unsigned int *)((0x1ae5 << 2) + 0xff900000)
//Bit 31:28, reserved
//Bit 27:16, dec_lbuf_depth uns, default = 128; // unit= 8 pixel
//Bit 15:12, reserved
//Bit 11:0, mif_lbuf_depth uns, default = 128;
#define AFBC_HEAD_BADDR (0x1ae6)
#define P_AFBC_HEAD_BADDR (volatile unsigned int *)((0x1ae6 << 2) + 0xff900000)
//Bit 31:0, mif_info_baddr uns, default = 32'h0;
#define AFBC_BODY_BADDR (0x1ae7)
#define P_AFBC_BODY_BADDR (volatile unsigned int *)((0x1ae7 << 2) + 0xff900000)
//Bit 31:0, mif_data_baddr uns, default = 32'h0001_0000;
#define AFBC_SIZE_OUT (0x1ae8)
#define P_AFBC_SIZE_OUT (volatile unsigned int *)((0x1ae8 << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28:16, hsize_out uns, default = 1920 ; // unit: 1 pixel
//Bit 15:13, reserved
//Bit 12:0, vsize_out uns, default = 1080 ; // unit: 1 pixel
#define AFBC_OUT_YSCOPE (0x1ae9)
#define P_AFBC_OUT_YSCOPE (volatile unsigned int *)((0x1ae9 << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28:16, out_vert_bgn uns, default = 0 ; // unit: 1 pixel
//Bit 15:13, reserved
//Bit 12:0, out_vert_end uns, default = 1079 ; // unit: 1 pixel
#define AFBC_STAT (0x1aea)
#define P_AFBC_STAT (volatile unsigned int *)((0x1aea << 2) + 0xff900000)
//Bit 31:1, reserved
//Bit 0, frm_end_stat uns, frame end status
#define AFBC_VD_CFMT_CTRL (0x1aeb)
#define P_AFBC_VD_CFMT_CTRL (volatile unsigned int *)((0x1aeb << 2) + 0xff900000)
//Bit 31 it true, disable clock, otherwise enable clock
//Bit 30 soft rst bit
//Bit 28 if true, horizontal formatter use repeating to generete pixel, otherwise use bilinear interpolation
//Bit 27:24 horizontal formatter initial phase
//Bit 23 horizontal formatter repeat pixel 0 enable
//Bit 22:21 horizontal Y/C ratio, 00: 1:1, 01: 2:1, 10: 4:1
//Bit 20 horizontal formatter enable
//Bit 19 if true, always use phase0 while vertical formater, meaning always
// repeat data, no interpolation
//Bit 18 if true, disable vertical formatter chroma repeat last line
//Bit 17 veritcal formatter dont need repeat line on phase0, 1: enable, 0: disable
//Bit 16 veritcal formatter repeat line 0 enable
//Bit 15:12 vertical formatter skip line num at the beginning
//Bit 11:8 vertical formatter initial phase
//Bit 7:1 vertical formatter phase step (3.4)
//Bit 0 vertical formatter enable
#define AFBC_VD_CFMT_W (0x1aec)
#define P_AFBC_VD_CFMT_W (volatile unsigned int *)((0x1aec << 2) + 0xff900000)
//Bit 27:16 horizontal formatter width
//Bit 11:0 vertical formatter width
#define AFBC_MIF_HOR_SCOPE (0x1aed)
#define P_AFBC_MIF_HOR_SCOPE (volatile unsigned int *)((0x1aed << 2) + 0xff900000)
//Bit 31:26, reserved
//Bit 25:16, mif_blk_bgn_h uns, default = 0 ; // unit: 32 pixel/block hor
//Bit 15:10, reserved
//Bit 9: 0, mif_blk_end_h uns, default = 59 ; // unit: 32 pixel/block hor
#define AFBC_MIF_VER_SCOPE (0x1aee)
#define P_AFBC_MIF_VER_SCOPE (volatile unsigned int *)((0x1aee << 2) + 0xff900000)
//Bit 31:28, reserved
//Bit 27:16, mif_blk_bgn_v uns, default = 0 ; // unit: 32 pixel/block ver
//Bit 15:12, reserved
//Bit 11: 0, mif_blk_end_v uns, default = 269; // unit: 32 pixel/block ver
#define AFBC_PIXEL_HOR_SCOPE (0x1aef)
#define P_AFBC_PIXEL_HOR_SCOPE (volatile unsigned int *)((0x1aef << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28:16, dec_pixel_bgn_h uns, default = 0 ; // unit: pixel
//Bit 15:13, reserved
//Bit 12: 0, dec_pixel_end_h uns, default = 1919 ; // unit: pixel
#define AFBC_PIXEL_VER_SCOPE (0x1af0)
#define P_AFBC_PIXEL_VER_SCOPE (volatile unsigned int *)((0x1af0 << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28:16, dec_pixel_bgn_v uns, default = 0 ; // unit: pixel
//Bit 15:13, reserved
//Bit 12: 0, dec_pixel_end_v uns, default = 1079 ; // unit: pixel
#define AFBC_VD_CFMT_H (0x1af1)
#define P_AFBC_VD_CFMT_H (volatile unsigned int *)((0x1af1 << 2) + 0xff900000)
//Bit 12:0 vertical formatter height
// synopsys translate_off
// synopsys translate_on
//
// Closing file: afbc_dec_regs.h
//
//
// Closing file: vregs_clk2.h
//
//`define VENC_VCBUS_BASE 8'h1b
//
// Reading file: venc_regs.h
//
//===========================================================================
// Video Interface Registers 0xa00 - 0xbff
//===========================================================================
// -----------------------------------------------
// CBUS_BASE: VENC_VCBUS_BASE = 0x1b
// -----------------------------------------------
// bit 15:8 -- vfifo2vd_vd_sel
// bit 0 -- vfifo2vd_en
#define ENCP_VFIFO2VD_CTL (0x1b58)
#define P_ENCP_VFIFO2VD_CTL (volatile unsigned int *)((0x1b58 << 2) + 0xff900000)
// bit 12:0 -- vfifo2vd_pixel_start
#define ENCP_VFIFO2VD_PIXEL_START (0x1b59)
#define P_ENCP_VFIFO2VD_PIXEL_START (volatile unsigned int *)((0x1b59 << 2) + 0xff900000)
// bit 12:00 -- vfifo2vd_pixel_end
#define ENCP_VFIFO2VD_PIXEL_END (0x1b5a)
#define P_ENCP_VFIFO2VD_PIXEL_END (volatile unsigned int *)((0x1b5a << 2) + 0xff900000)
// bit 10:0 -- vfifo2vd_line_top_start
#define ENCP_VFIFO2VD_LINE_TOP_START (0x1b5b)
#define P_ENCP_VFIFO2VD_LINE_TOP_START (volatile unsigned int *)((0x1b5b << 2) + 0xff900000)
// bit 10:00 -- vfifo2vd_line_top_end
#define ENCP_VFIFO2VD_LINE_TOP_END (0x1b5c)
#define P_ENCP_VFIFO2VD_LINE_TOP_END (volatile unsigned int *)((0x1b5c << 2) + 0xff900000)
// bit 10:00 -- vfifo2vd_line_bot_start
#define ENCP_VFIFO2VD_LINE_BOT_START (0x1b5d)
#define P_ENCP_VFIFO2VD_LINE_BOT_START (volatile unsigned int *)((0x1b5d << 2) + 0xff900000)
// bit 10:00 -- vfifo2vd_line_bot_end
#define ENCP_VFIFO2VD_LINE_BOT_END (0x1b5e)
#define P_ENCP_VFIFO2VD_LINE_BOT_END (volatile unsigned int *)((0x1b5e << 2) + 0xff900000)
// Route the hsync and vsync signals round the chip. There are three
// sources and users of these signals: VIU, internal video encoder, and
// the pins on the chip. Some muxing is still being done in the VIU. It
// was not moved to the venc module so that the same exact VIU code could
// be used both in Twister and Twister2000.
// Bit 2: venc_sync_source (1=>pins, 0=>viu)
// Bit 1: viu_sync_source (1=>pins, 0=>venc)
// Bit 0: vpins_sync_source (1=>venc, 0=>viu)
#define VENC_SYNC_ROUTE (0x1b60)
#define P_VENC_SYNC_ROUTE (volatile unsigned int *)((0x1b60 << 2) + 0xff900000)
#define VENC_VIDEO_EXSRC (0x1b61)
#define P_VENC_VIDEO_EXSRC (volatile unsigned int *)((0x1b61 << 2) + 0xff900000)
#define VENC_DVI_SETTING (0x1b62)
#define P_VENC_DVI_SETTING (volatile unsigned int *)((0x1b62 << 2) + 0xff900000)
#define VENC_C656_CTRL (0x1b63)
#define P_VENC_C656_CTRL (volatile unsigned int *)((0x1b63 << 2) + 0xff900000)
#define VENC_UPSAMPLE_CTRL0 (0x1b64)
#define P_VENC_UPSAMPLE_CTRL0 (volatile unsigned int *)((0x1b64 << 2) + 0xff900000)
#define VENC_UPSAMPLE_CTRL1 (0x1b65)
#define P_VENC_UPSAMPLE_CTRL1 (volatile unsigned int *)((0x1b65 << 2) + 0xff900000)
#define VENC_UPSAMPLE_CTRL2 (0x1b66)
#define P_VENC_UPSAMPLE_CTRL2 (volatile unsigned int *)((0x1b66 << 2) + 0xff900000)
// Invert control for tcon output
// bit[15:14] -- vsync, hsync,
// bit[13:0] -- oev3, oev2, cpv2, cph3, cph2, cph1, oeh, vcom, stv2, stv1, cpv1, oev1, sth1, sth2
#define TCON_INVERT_CTL (0x1b67)
#define P_TCON_INVERT_CTL (volatile unsigned int *)((0x1b67 << 2) + 0xff900000)
#define VENC_VIDEO_PROG_MODE (0x1b68)
#define P_VENC_VIDEO_PROG_MODE (volatile unsigned int *)((0x1b68 << 2) + 0xff900000)
//---- Venc pixel/line info
#define VENC_ENCI_LINE (0x1b69)
#define P_VENC_ENCI_LINE (volatile unsigned int *)((0x1b69 << 2) + 0xff900000)
#define VENC_ENCI_PIXEL (0x1b6a)
#define P_VENC_ENCI_PIXEL (volatile unsigned int *)((0x1b6a << 2) + 0xff900000)
#define VENC_ENCP_LINE (0x1b6b)
#define P_VENC_ENCP_LINE (volatile unsigned int *)((0x1b6b << 2) + 0xff900000)
#define VENC_ENCP_PIXEL (0x1b6c)
#define P_VENC_ENCP_PIXEL (volatile unsigned int *)((0x1b6c << 2) + 0xff900000)
//---- Status
#define VENC_STATA (0x1b6d)
#define P_VENC_STATA (volatile unsigned int *)((0x1b6d << 2) + 0xff900000)
//---- Interrupt setting
#define VENC_INTCTRL (0x1b6e)
#define P_VENC_INTCTRL (volatile unsigned int *)((0x1b6e << 2) + 0xff900000)
#define VENC_INTFLAG (0x1b6f)
#define P_VENC_INTFLAG (volatile unsigned int *)((0x1b6f << 2) + 0xff900000)
//--------- Video test configuration
#define VENC_VIDEO_TST_EN (0x1b70)
#define P_VENC_VIDEO_TST_EN (volatile unsigned int *)((0x1b70 << 2) + 0xff900000)
#define VENC_VIDEO_TST_MDSEL (0x1b71)
#define P_VENC_VIDEO_TST_MDSEL (volatile unsigned int *)((0x1b71 << 2) + 0xff900000)
#define VENC_VIDEO_TST_Y (0x1b72)
#define P_VENC_VIDEO_TST_Y (volatile unsigned int *)((0x1b72 << 2) + 0xff900000)
#define VENC_VIDEO_TST_CB (0x1b73)
#define P_VENC_VIDEO_TST_CB (volatile unsigned int *)((0x1b73 << 2) + 0xff900000)
#define VENC_VIDEO_TST_CR (0x1b74)
#define P_VENC_VIDEO_TST_CR (volatile unsigned int *)((0x1b74 << 2) + 0xff900000)
#define VENC_VIDEO_TST_CLRBAR_STRT (0x1b75)
#define P_VENC_VIDEO_TST_CLRBAR_STRT (volatile unsigned int *)((0x1b75 << 2) + 0xff900000)
#define VENC_VIDEO_TST_CLRBAR_WIDTH (0x1b76)
#define P_VENC_VIDEO_TST_CLRBAR_WIDTH (volatile unsigned int *)((0x1b76 << 2) + 0xff900000)
#define VENC_VIDEO_TST_VDCNT_STSET (0x1b77)
#define P_VENC_VIDEO_TST_VDCNT_STSET (volatile unsigned int *)((0x1b77 << 2) + 0xff900000)
//----- Video dac setting
#define VENC_VDAC_DACSEL0 (0x1b78)
#define P_VENC_VDAC_DACSEL0 (volatile unsigned int *)((0x1b78 << 2) + 0xff900000)
#define VENC_VDAC_DACSEL1 (0x1b79)
#define P_VENC_VDAC_DACSEL1 (volatile unsigned int *)((0x1b79 << 2) + 0xff900000)
#define VENC_VDAC_DACSEL2 (0x1b7a)
#define P_VENC_VDAC_DACSEL2 (volatile unsigned int *)((0x1b7a << 2) + 0xff900000)
#define VENC_VDAC_DACSEL3 (0x1b7b)
#define P_VENC_VDAC_DACSEL3 (volatile unsigned int *)((0x1b7b << 2) + 0xff900000)
#define VENC_VDAC_DACSEL4 (0x1b7c)
#define P_VENC_VDAC_DACSEL4 (volatile unsigned int *)((0x1b7c << 2) + 0xff900000)
#define VENC_VDAC_DACSEL5 (0x1b7d)
#define P_VENC_VDAC_DACSEL5 (volatile unsigned int *)((0x1b7d << 2) + 0xff900000)
#define VENC_VDAC_SETTING (0x1b7e)
#define P_VENC_VDAC_SETTING (volatile unsigned int *)((0x1b7e << 2) + 0xff900000)
#define VENC_VDAC_TST_VAL (0x1b7f)
#define P_VENC_VDAC_TST_VAL (volatile unsigned int *)((0x1b7f << 2) + 0xff900000)
#define VENC_VDAC_DAC0_GAINCTRL (0x1bf0)
#define P_VENC_VDAC_DAC0_GAINCTRL (volatile unsigned int *)((0x1bf0 << 2) + 0xff900000)
#define VENC_VDAC_DAC0_OFFSET (0x1bf1)
#define P_VENC_VDAC_DAC0_OFFSET (volatile unsigned int *)((0x1bf1 << 2) + 0xff900000)
#define VENC_VDAC_DAC1_GAINCTRL (0x1bf2)
#define P_VENC_VDAC_DAC1_GAINCTRL (volatile unsigned int *)((0x1bf2 << 2) + 0xff900000)
#define VENC_VDAC_DAC1_OFFSET (0x1bf3)
#define P_VENC_VDAC_DAC1_OFFSET (volatile unsigned int *)((0x1bf3 << 2) + 0xff900000)
#define VENC_VDAC_DAC2_GAINCTRL (0x1bf4)
#define P_VENC_VDAC_DAC2_GAINCTRL (volatile unsigned int *)((0x1bf4 << 2) + 0xff900000)
#define VENC_VDAC_DAC2_OFFSET (0x1bf5)
#define P_VENC_VDAC_DAC2_OFFSET (volatile unsigned int *)((0x1bf5 << 2) + 0xff900000)
#define VENC_VDAC_DAC3_GAINCTRL (0x1bf6)
#define P_VENC_VDAC_DAC3_GAINCTRL (volatile unsigned int *)((0x1bf6 << 2) + 0xff900000)
#define VENC_VDAC_DAC3_OFFSET (0x1bf7)
#define P_VENC_VDAC_DAC3_OFFSET (volatile unsigned int *)((0x1bf7 << 2) + 0xff900000)
#define VENC_VDAC_DAC4_GAINCTRL (0x1bf8)
#define P_VENC_VDAC_DAC4_GAINCTRL (volatile unsigned int *)((0x1bf8 << 2) + 0xff900000)
#define VENC_VDAC_DAC4_OFFSET (0x1bf9)
#define P_VENC_VDAC_DAC4_OFFSET (volatile unsigned int *)((0x1bf9 << 2) + 0xff900000)
#define VENC_VDAC_DAC5_GAINCTRL (0x1bfa)
#define P_VENC_VDAC_DAC5_GAINCTRL (volatile unsigned int *)((0x1bfa << 2) + 0xff900000)
#define VENC_VDAC_DAC5_OFFSET (0x1bfb)
#define P_VENC_VDAC_DAC5_OFFSET (volatile unsigned int *)((0x1bfb << 2) + 0xff900000)
#define VENC_VDAC_FIFO_CTRL (0x1bfc)
#define P_VENC_VDAC_FIFO_CTRL (volatile unsigned int *)((0x1bfc << 2) + 0xff900000)
#define ENCL_TCON_INVERT_CTL (0x1bfd)
#define P_ENCL_TCON_INVERT_CTL (volatile unsigned int *)((0x1bfd << 2) + 0xff900000)
//
// Closing file: venc_regs.h
//
//
// Reading file: enc480p_regs.h
//
// synopsys translate_off
// synopsys translate_on
//===========================================================================
// Video Encoder 480p Registers 0xb80 - 0xbef
//===========================================================================
//-------- Video basic setting
#define ENCP_VIDEO_EN (0x1b80)
#define P_ENCP_VIDEO_EN (volatile unsigned int *)((0x1b80 << 2) + 0xff900000)
#define ENCP_VIDEO_SYNC_MODE (0x1b81)
#define P_ENCP_VIDEO_SYNC_MODE (volatile unsigned int *)((0x1b81 << 2) + 0xff900000)
#define ENCP_MACV_EN (0x1b82)
#define P_ENCP_MACV_EN (volatile unsigned int *)((0x1b82 << 2) + 0xff900000)
#define ENCP_VIDEO_Y_SCL (0x1b83)
#define P_ENCP_VIDEO_Y_SCL (volatile unsigned int *)((0x1b83 << 2) + 0xff900000)
#define ENCP_VIDEO_PB_SCL (0x1b84)
#define P_ENCP_VIDEO_PB_SCL (volatile unsigned int *)((0x1b84 << 2) + 0xff900000)
#define ENCP_VIDEO_PR_SCL (0x1b85)
#define P_ENCP_VIDEO_PR_SCL (volatile unsigned int *)((0x1b85 << 2) + 0xff900000)
#define ENCP_VIDEO_SYNC_SCL (0x1b86)
#define P_ENCP_VIDEO_SYNC_SCL (volatile unsigned int *)((0x1b86 << 2) + 0xff900000)
#define ENCP_VIDEO_MACV_SCL (0x1b87)
#define P_ENCP_VIDEO_MACV_SCL (volatile unsigned int *)((0x1b87 << 2) + 0xff900000)
#define ENCP_VIDEO_Y_OFFST (0x1b88)
#define P_ENCP_VIDEO_Y_OFFST (volatile unsigned int *)((0x1b88 << 2) + 0xff900000)
#define ENCP_VIDEO_PB_OFFST (0x1b89)
#define P_ENCP_VIDEO_PB_OFFST (volatile unsigned int *)((0x1b89 << 2) + 0xff900000)
#define ENCP_VIDEO_PR_OFFST (0x1b8a)
#define P_ENCP_VIDEO_PR_OFFST (volatile unsigned int *)((0x1b8a << 2) + 0xff900000)
#define ENCP_VIDEO_SYNC_OFFST (0x1b8b)
#define P_ENCP_VIDEO_SYNC_OFFST (volatile unsigned int *)((0x1b8b << 2) + 0xff900000)
#define ENCP_VIDEO_MACV_OFFST (0x1b8c)
#define P_ENCP_VIDEO_MACV_OFFST (volatile unsigned int *)((0x1b8c << 2) + 0xff900000)
//----- Video mode
#define ENCP_VIDEO_MODE (0x1b8d)
#define P_ENCP_VIDEO_MODE (volatile unsigned int *)((0x1b8d << 2) + 0xff900000)
#define ENCP_VIDEO_MODE_ADV (0x1b8e)
#define P_ENCP_VIDEO_MODE_ADV (volatile unsigned int *)((0x1b8e << 2) + 0xff900000)
//--------------- Debug pins
#define ENCP_DBG_PX_RST (0x1b90)
#define P_ENCP_DBG_PX_RST (volatile unsigned int *)((0x1b90 << 2) + 0xff900000)
#define ENCP_DBG_LN_RST (0x1b91)
#define P_ENCP_DBG_LN_RST (volatile unsigned int *)((0x1b91 << 2) + 0xff900000)
#define ENCP_DBG_PX_INT (0x1b92)
#define P_ENCP_DBG_PX_INT (volatile unsigned int *)((0x1b92 << 2) + 0xff900000)
#define ENCP_DBG_LN_INT (0x1b93)
#define P_ENCP_DBG_LN_INT (volatile unsigned int *)((0x1b93 << 2) + 0xff900000)
//----------- Video Advanced setting
#define ENCP_VIDEO_YFP1_HTIME (0x1b94)
#define P_ENCP_VIDEO_YFP1_HTIME (volatile unsigned int *)((0x1b94 << 2) + 0xff900000)
#define ENCP_VIDEO_YFP2_HTIME (0x1b95)
#define P_ENCP_VIDEO_YFP2_HTIME (volatile unsigned int *)((0x1b95 << 2) + 0xff900000)
#define ENCP_VIDEO_YC_DLY (0x1b96)
#define P_ENCP_VIDEO_YC_DLY (volatile unsigned int *)((0x1b96 << 2) + 0xff900000)
#define ENCP_VIDEO_MAX_PXCNT (0x1b97)
#define P_ENCP_VIDEO_MAX_PXCNT (volatile unsigned int *)((0x1b97 << 2) + 0xff900000)
#define ENCP_VIDEO_HSPULS_BEGIN (0x1b98)
#define P_ENCP_VIDEO_HSPULS_BEGIN (volatile unsigned int *)((0x1b98 << 2) + 0xff900000)
#define ENCP_VIDEO_HSPULS_END (0x1b99)
#define P_ENCP_VIDEO_HSPULS_END (volatile unsigned int *)((0x1b99 << 2) + 0xff900000)
#define ENCP_VIDEO_HSPULS_SWITCH (0x1b9a)
#define P_ENCP_VIDEO_HSPULS_SWITCH (volatile unsigned int *)((0x1b9a << 2) + 0xff900000)
#define ENCP_VIDEO_VSPULS_BEGIN (0x1b9b)
#define P_ENCP_VIDEO_VSPULS_BEGIN (volatile unsigned int *)((0x1b9b << 2) + 0xff900000)
#define ENCP_VIDEO_VSPULS_END (0x1b9c)
#define P_ENCP_VIDEO_VSPULS_END (volatile unsigned int *)((0x1b9c << 2) + 0xff900000)
#define ENCP_VIDEO_VSPULS_BLINE (0x1b9d)
#define P_ENCP_VIDEO_VSPULS_BLINE (volatile unsigned int *)((0x1b9d << 2) + 0xff900000)
#define ENCP_VIDEO_VSPULS_ELINE (0x1b9e)
#define P_ENCP_VIDEO_VSPULS_ELINE (volatile unsigned int *)((0x1b9e << 2) + 0xff900000)
#define ENCP_VIDEO_EQPULS_BEGIN (0x1b9f)
#define P_ENCP_VIDEO_EQPULS_BEGIN (volatile unsigned int *)((0x1b9f << 2) + 0xff900000)
#define ENCP_VIDEO_EQPULS_END (0x1ba0)
#define P_ENCP_VIDEO_EQPULS_END (volatile unsigned int *)((0x1ba0 << 2) + 0xff900000)
#define ENCP_VIDEO_EQPULS_BLINE (0x1ba1)
#define P_ENCP_VIDEO_EQPULS_BLINE (volatile unsigned int *)((0x1ba1 << 2) + 0xff900000)
#define ENCP_VIDEO_EQPULS_ELINE (0x1ba2)
#define P_ENCP_VIDEO_EQPULS_ELINE (volatile unsigned int *)((0x1ba2 << 2) + 0xff900000)
#define ENCP_VIDEO_HAVON_END (0x1ba3)
#define P_ENCP_VIDEO_HAVON_END (volatile unsigned int *)((0x1ba3 << 2) + 0xff900000)
#define ENCP_VIDEO_HAVON_BEGIN (0x1ba4)
#define P_ENCP_VIDEO_HAVON_BEGIN (volatile unsigned int *)((0x1ba4 << 2) + 0xff900000)
#define ENCP_VIDEO_VAVON_ELINE (0x1baf)
#define P_ENCP_VIDEO_VAVON_ELINE (volatile unsigned int *)((0x1baf << 2) + 0xff900000)
#define ENCP_VIDEO_VAVON_BLINE (0x1ba6)
#define P_ENCP_VIDEO_VAVON_BLINE (volatile unsigned int *)((0x1ba6 << 2) + 0xff900000)
#define ENCP_VIDEO_HSO_BEGIN (0x1ba7)
#define P_ENCP_VIDEO_HSO_BEGIN (volatile unsigned int *)((0x1ba7 << 2) + 0xff900000)
#define ENCP_VIDEO_HSO_END (0x1ba8)
#define P_ENCP_VIDEO_HSO_END (volatile unsigned int *)((0x1ba8 << 2) + 0xff900000)
#define ENCP_VIDEO_VSO_BEGIN (0x1ba9)
#define P_ENCP_VIDEO_VSO_BEGIN (volatile unsigned int *)((0x1ba9 << 2) + 0xff900000)
#define ENCP_VIDEO_VSO_END (0x1baa)
#define P_ENCP_VIDEO_VSO_END (volatile unsigned int *)((0x1baa << 2) + 0xff900000)
#define ENCP_VIDEO_VSO_BLINE (0x1bab)
#define P_ENCP_VIDEO_VSO_BLINE (volatile unsigned int *)((0x1bab << 2) + 0xff900000)
#define ENCP_VIDEO_VSO_ELINE (0x1bac)
#define P_ENCP_VIDEO_VSO_ELINE (volatile unsigned int *)((0x1bac << 2) + 0xff900000)
#define ENCP_VIDEO_SYNC_WAVE_CURVE (0x1bad)
#define P_ENCP_VIDEO_SYNC_WAVE_CURVE (volatile unsigned int *)((0x1bad << 2) + 0xff900000)
#define ENCP_VIDEO_MAX_LNCNT (0x1bae)
#define P_ENCP_VIDEO_MAX_LNCNT (volatile unsigned int *)((0x1bae << 2) + 0xff900000)
#define ENCP_VIDEO_SY_VAL (0x1bb0)
#define P_ENCP_VIDEO_SY_VAL (volatile unsigned int *)((0x1bb0 << 2) + 0xff900000)
#define ENCP_VIDEO_SY2_VAL (0x1bb1)
#define P_ENCP_VIDEO_SY2_VAL (volatile unsigned int *)((0x1bb1 << 2) + 0xff900000)
#define ENCP_VIDEO_BLANKY_VAL (0x1bb2)
#define P_ENCP_VIDEO_BLANKY_VAL (volatile unsigned int *)((0x1bb2 << 2) + 0xff900000)
#define ENCP_VIDEO_BLANKPB_VAL (0x1bb3)
#define P_ENCP_VIDEO_BLANKPB_VAL (volatile unsigned int *)((0x1bb3 << 2) + 0xff900000)
#define ENCP_VIDEO_BLANKPR_VAL (0x1bb4)
#define P_ENCP_VIDEO_BLANKPR_VAL (volatile unsigned int *)((0x1bb4 << 2) + 0xff900000)
#define ENCP_VIDEO_HOFFST (0x1bb5)
#define P_ENCP_VIDEO_HOFFST (volatile unsigned int *)((0x1bb5 << 2) + 0xff900000)
#define ENCP_VIDEO_VOFFST (0x1bb6)
#define P_ENCP_VIDEO_VOFFST (volatile unsigned int *)((0x1bb6 << 2) + 0xff900000)
#define ENCP_VIDEO_RGB_CTRL (0x1bb7)
#define P_ENCP_VIDEO_RGB_CTRL (volatile unsigned int *)((0x1bb7 << 2) + 0xff900000)
#define ENCP_VIDEO_FILT_CTRL (0x1bb8)
#define P_ENCP_VIDEO_FILT_CTRL (volatile unsigned int *)((0x1bb8 << 2) + 0xff900000)
#define ENCP_VIDEO_OFLD_VPEQ_OFST (0x1bb9)
#define P_ENCP_VIDEO_OFLD_VPEQ_OFST (volatile unsigned int *)((0x1bb9 << 2) + 0xff900000)
#define ENCP_VIDEO_OFLD_VOAV_OFST (0x1bba)
#define P_ENCP_VIDEO_OFLD_VOAV_OFST (volatile unsigned int *)((0x1bba << 2) + 0xff900000)
#define ENCP_VIDEO_MATRIX_CB (0x1bbb)
#define P_ENCP_VIDEO_MATRIX_CB (volatile unsigned int *)((0x1bbb << 2) + 0xff900000)
#define ENCP_VIDEO_MATRIX_CR (0x1bbc)
#define P_ENCP_VIDEO_MATRIX_CR (volatile unsigned int *)((0x1bbc << 2) + 0xff900000)
#define ENCP_VIDEO_RGBIN_CTRL (0x1bbd)
#define P_ENCP_VIDEO_RGBIN_CTRL (volatile unsigned int *)((0x1bbd << 2) + 0xff900000)
//------------------Macrovision advanced setting
#define ENCP_MACV_BLANKY_VAL (0x1bc0)
#define P_ENCP_MACV_BLANKY_VAL (volatile unsigned int *)((0x1bc0 << 2) + 0xff900000)
#define ENCP_MACV_MAXY_VAL (0x1bc1)
#define P_ENCP_MACV_MAXY_VAL (volatile unsigned int *)((0x1bc1 << 2) + 0xff900000)
#define ENCP_MACV_1ST_PSSYNC_STRT (0x1bc2)
#define P_ENCP_MACV_1ST_PSSYNC_STRT (volatile unsigned int *)((0x1bc2 << 2) + 0xff900000)
#define ENCP_MACV_PSSYNC_STRT (0x1bc3)
#define P_ENCP_MACV_PSSYNC_STRT (volatile unsigned int *)((0x1bc3 << 2) + 0xff900000)
#define ENCP_MACV_AGC_STRT (0x1bc4)
#define P_ENCP_MACV_AGC_STRT (volatile unsigned int *)((0x1bc4 << 2) + 0xff900000)
#define ENCP_MACV_AGC_END (0x1bc5)
#define P_ENCP_MACV_AGC_END (volatile unsigned int *)((0x1bc5 << 2) + 0xff900000)
#define ENCP_MACV_WAVE_END (0x1bc6)
#define P_ENCP_MACV_WAVE_END (volatile unsigned int *)((0x1bc6 << 2) + 0xff900000)
#define ENCP_MACV_STRTLINE (0x1bc7)
#define P_ENCP_MACV_STRTLINE (volatile unsigned int *)((0x1bc7 << 2) + 0xff900000)
#define ENCP_MACV_ENDLINE (0x1bc8)
#define P_ENCP_MACV_ENDLINE (volatile unsigned int *)((0x1bc8 << 2) + 0xff900000)
#define ENCP_MACV_TS_CNT_MAX_L (0x1bc9)
#define P_ENCP_MACV_TS_CNT_MAX_L (volatile unsigned int *)((0x1bc9 << 2) + 0xff900000)
#define ENCP_MACV_TS_CNT_MAX_H (0x1bca)
#define P_ENCP_MACV_TS_CNT_MAX_H (volatile unsigned int *)((0x1bca << 2) + 0xff900000)
#define ENCP_MACV_TIME_DOWN (0x1bcb)
#define P_ENCP_MACV_TIME_DOWN (volatile unsigned int *)((0x1bcb << 2) + 0xff900000)
#define ENCP_MACV_TIME_LO (0x1bcc)
#define P_ENCP_MACV_TIME_LO (volatile unsigned int *)((0x1bcc << 2) + 0xff900000)
#define ENCP_MACV_TIME_UP (0x1bcd)
#define P_ENCP_MACV_TIME_UP (volatile unsigned int *)((0x1bcd << 2) + 0xff900000)
#define ENCP_MACV_TIME_RST (0x1bce)
#define P_ENCP_MACV_TIME_RST (volatile unsigned int *)((0x1bce << 2) + 0xff900000)
//---------------- VBI control -------------------
#define ENCP_VBI_CTRL (0x1bd0)
#define P_ENCP_VBI_CTRL (volatile unsigned int *)((0x1bd0 << 2) + 0xff900000)
#define ENCP_VBI_SETTING (0x1bd1)
#define P_ENCP_VBI_SETTING (volatile unsigned int *)((0x1bd1 << 2) + 0xff900000)
#define ENCP_VBI_BEGIN (0x1bd2)
#define P_ENCP_VBI_BEGIN (volatile unsigned int *)((0x1bd2 << 2) + 0xff900000)
#define ENCP_VBI_WIDTH (0x1bd3)
#define P_ENCP_VBI_WIDTH (volatile unsigned int *)((0x1bd3 << 2) + 0xff900000)
#define ENCP_VBI_HVAL (0x1bd4)
#define P_ENCP_VBI_HVAL (volatile unsigned int *)((0x1bd4 << 2) + 0xff900000)
#define ENCP_VBI_DATA0 (0x1bd5)
#define P_ENCP_VBI_DATA0 (volatile unsigned int *)((0x1bd5 << 2) + 0xff900000)
#define ENCP_VBI_DATA1 (0x1bd6)
#define P_ENCP_VBI_DATA1 (volatile unsigned int *)((0x1bd6 << 2) + 0xff900000)
//----------------C656 OUT Control------------- Grant
#define C656_HS_ST (0x1be0)
#define P_C656_HS_ST (volatile unsigned int *)((0x1be0 << 2) + 0xff900000)
#define C656_HS_ED (0x1be1)
#define P_C656_HS_ED (volatile unsigned int *)((0x1be1 << 2) + 0xff900000)
#define C656_VS_LNST_E (0x1be2)
#define P_C656_VS_LNST_E (volatile unsigned int *)((0x1be2 << 2) + 0xff900000)
#define C656_VS_LNST_O (0x1be3)
#define P_C656_VS_LNST_O (volatile unsigned int *)((0x1be3 << 2) + 0xff900000)
#define C656_VS_LNED_E (0x1be4)
#define P_C656_VS_LNED_E (volatile unsigned int *)((0x1be4 << 2) + 0xff900000)
#define C656_VS_LNED_O (0x1be5)
#define P_C656_VS_LNED_O (volatile unsigned int *)((0x1be5 << 2) + 0xff900000)
#define C656_FS_LNST (0x1be6)
#define P_C656_FS_LNST (volatile unsigned int *)((0x1be6 << 2) + 0xff900000)
#define C656_FS_LNED (0x1be7)
#define P_C656_FS_LNED (volatile unsigned int *)((0x1be7 << 2) + 0xff900000)
// synopsys translate_off
// synopsys translate_on
//
// Closing file: enc480p_regs.h
//
//
// Reading file: enci_regs.h
//
//===========================================================================
// Video Interface Registers 0xb00 - 0xb57
//===========================================================================
#define ENCI_VIDEO_MODE (0x1b00)
#define P_ENCI_VIDEO_MODE (volatile unsigned int *)((0x1b00 << 2) + 0xff900000)
#define ENCI_VIDEO_MODE_ADV (0x1b01)
#define P_ENCI_VIDEO_MODE_ADV (volatile unsigned int *)((0x1b01 << 2) + 0xff900000)
#define ENCI_VIDEO_FSC_ADJ (0x1b02)
#define P_ENCI_VIDEO_FSC_ADJ (volatile unsigned int *)((0x1b02 << 2) + 0xff900000)
#define ENCI_VIDEO_BRIGHT (0x1b03)
#define P_ENCI_VIDEO_BRIGHT (volatile unsigned int *)((0x1b03 << 2) + 0xff900000)
#define ENCI_VIDEO_CONT (0x1b04)
#define P_ENCI_VIDEO_CONT (volatile unsigned int *)((0x1b04 << 2) + 0xff900000)
#define ENCI_VIDEO_SAT (0x1b05)
#define P_ENCI_VIDEO_SAT (volatile unsigned int *)((0x1b05 << 2) + 0xff900000)
#define ENCI_VIDEO_HUE (0x1b06)
#define P_ENCI_VIDEO_HUE (volatile unsigned int *)((0x1b06 << 2) + 0xff900000)
#define ENCI_VIDEO_SCH (0x1b07)
#define P_ENCI_VIDEO_SCH (volatile unsigned int *)((0x1b07 << 2) + 0xff900000)
#define ENCI_SYNC_MODE (0x1b08)
#define P_ENCI_SYNC_MODE (volatile unsigned int *)((0x1b08 << 2) + 0xff900000)
#define ENCI_SYNC_CTRL (0x1b09)
#define P_ENCI_SYNC_CTRL (volatile unsigned int *)((0x1b09 << 2) + 0xff900000)
#define ENCI_SYNC_HSO_BEGIN (0x1b0a)
#define P_ENCI_SYNC_HSO_BEGIN (volatile unsigned int *)((0x1b0a << 2) + 0xff900000)
#define ENCI_SYNC_HSO_END (0x1b0b)
#define P_ENCI_SYNC_HSO_END (volatile unsigned int *)((0x1b0b << 2) + 0xff900000)
#define ENCI_SYNC_VSO_EVN (0x1b0c)
#define P_ENCI_SYNC_VSO_EVN (volatile unsigned int *)((0x1b0c << 2) + 0xff900000)
#define ENCI_SYNC_VSO_ODD (0x1b0d)
#define P_ENCI_SYNC_VSO_ODD (volatile unsigned int *)((0x1b0d << 2) + 0xff900000)
#define ENCI_SYNC_VSO_EVNLN (0x1b0e)
#define P_ENCI_SYNC_VSO_EVNLN (volatile unsigned int *)((0x1b0e << 2) + 0xff900000)
#define ENCI_SYNC_VSO_ODDLN (0x1b0f)
#define P_ENCI_SYNC_VSO_ODDLN (volatile unsigned int *)((0x1b0f << 2) + 0xff900000)
#define ENCI_SYNC_HOFFST (0x1b10)
#define P_ENCI_SYNC_HOFFST (volatile unsigned int *)((0x1b10 << 2) + 0xff900000)
#define ENCI_SYNC_VOFFST (0x1b11)
#define P_ENCI_SYNC_VOFFST (volatile unsigned int *)((0x1b11 << 2) + 0xff900000)
#define ENCI_SYNC_ADJ (0x1b12)
#define P_ENCI_SYNC_ADJ (volatile unsigned int *)((0x1b12 << 2) + 0xff900000)
#define ENCI_RGB_SETTING (0x1b13)
#define P_ENCI_RGB_SETTING (volatile unsigned int *)((0x1b13 << 2) + 0xff900000)
//`define ENCI_CMPN_MATRIX_CB 8'h14
//`define ENCI_CMPN_MATRIX_CR 8'h15
#define ENCI_DE_H_BEGIN (0x1b16)
#define P_ENCI_DE_H_BEGIN (volatile unsigned int *)((0x1b16 << 2) + 0xff900000)
#define ENCI_DE_H_END (0x1b17)
#define P_ENCI_DE_H_END (volatile unsigned int *)((0x1b17 << 2) + 0xff900000)
#define ENCI_DE_V_BEGIN_EVEN (0x1b18)
#define P_ENCI_DE_V_BEGIN_EVEN (volatile unsigned int *)((0x1b18 << 2) + 0xff900000)
#define ENCI_DE_V_END_EVEN (0x1b19)
#define P_ENCI_DE_V_END_EVEN (volatile unsigned int *)((0x1b19 << 2) + 0xff900000)
#define ENCI_DE_V_BEGIN_ODD (0x1b1a)
#define P_ENCI_DE_V_BEGIN_ODD (volatile unsigned int *)((0x1b1a << 2) + 0xff900000)
#define ENCI_DE_V_END_ODD (0x1b1b)
#define P_ENCI_DE_V_END_ODD (volatile unsigned int *)((0x1b1b << 2) + 0xff900000)
#define ENCI_VBI_SETTING (0x1b20)
#define P_ENCI_VBI_SETTING (volatile unsigned int *)((0x1b20 << 2) + 0xff900000)
#define ENCI_VBI_CCDT_EVN (0x1b21)
#define P_ENCI_VBI_CCDT_EVN (volatile unsigned int *)((0x1b21 << 2) + 0xff900000)
#define ENCI_VBI_CCDT_ODD (0x1b22)
#define P_ENCI_VBI_CCDT_ODD (volatile unsigned int *)((0x1b22 << 2) + 0xff900000)
#define ENCI_VBI_CC525_LN (0x1b23)
#define P_ENCI_VBI_CC525_LN (volatile unsigned int *)((0x1b23 << 2) + 0xff900000)
#define ENCI_VBI_CC625_LN (0x1b24)
#define P_ENCI_VBI_CC625_LN (volatile unsigned int *)((0x1b24 << 2) + 0xff900000)
#define ENCI_VBI_WSSDT (0x1b25)
#define P_ENCI_VBI_WSSDT (volatile unsigned int *)((0x1b25 << 2) + 0xff900000)
#define ENCI_VBI_WSS_LN (0x1b26)
#define P_ENCI_VBI_WSS_LN (volatile unsigned int *)((0x1b26 << 2) + 0xff900000)
#define ENCI_VBI_CGMSDT_L (0x1b27)
#define P_ENCI_VBI_CGMSDT_L (volatile unsigned int *)((0x1b27 << 2) + 0xff900000)
#define ENCI_VBI_CGMSDT_H (0x1b28)
#define P_ENCI_VBI_CGMSDT_H (volatile unsigned int *)((0x1b28 << 2) + 0xff900000)
#define ENCI_VBI_CGMS_LN (0x1b29)
#define P_ENCI_VBI_CGMS_LN (volatile unsigned int *)((0x1b29 << 2) + 0xff900000)
#define ENCI_VBI_TTX_HTIME (0x1b2a)
#define P_ENCI_VBI_TTX_HTIME (volatile unsigned int *)((0x1b2a << 2) + 0xff900000)
#define ENCI_VBI_TTX_LN (0x1b2b)
#define P_ENCI_VBI_TTX_LN (volatile unsigned int *)((0x1b2b << 2) + 0xff900000)
#define ENCI_VBI_TTXDT0 (0x1b2c)
#define P_ENCI_VBI_TTXDT0 (volatile unsigned int *)((0x1b2c << 2) + 0xff900000)
#define ENCI_VBI_TTXDT1 (0x1b2d)
#define P_ENCI_VBI_TTXDT1 (volatile unsigned int *)((0x1b2d << 2) + 0xff900000)
#define ENCI_VBI_TTXDT2 (0x1b2e)
#define P_ENCI_VBI_TTXDT2 (volatile unsigned int *)((0x1b2e << 2) + 0xff900000)
#define ENCI_VBI_TTXDT3 (0x1b2f)
#define P_ENCI_VBI_TTXDT3 (volatile unsigned int *)((0x1b2f << 2) + 0xff900000)
#define ENCI_MACV_N0 (0x1b30)
#define P_ENCI_MACV_N0 (volatile unsigned int *)((0x1b30 << 2) + 0xff900000)
#define ENCI_MACV_N1 (0x1b31)
#define P_ENCI_MACV_N1 (volatile unsigned int *)((0x1b31 << 2) + 0xff900000)
#define ENCI_MACV_N2 (0x1b32)
#define P_ENCI_MACV_N2 (volatile unsigned int *)((0x1b32 << 2) + 0xff900000)
#define ENCI_MACV_N3 (0x1b33)
#define P_ENCI_MACV_N3 (volatile unsigned int *)((0x1b33 << 2) + 0xff900000)
#define ENCI_MACV_N4 (0x1b34)
#define P_ENCI_MACV_N4 (volatile unsigned int *)((0x1b34 << 2) + 0xff900000)
#define ENCI_MACV_N5 (0x1b35)
#define P_ENCI_MACV_N5 (volatile unsigned int *)((0x1b35 << 2) + 0xff900000)
#define ENCI_MACV_N6 (0x1b36)
#define P_ENCI_MACV_N6 (volatile unsigned int *)((0x1b36 << 2) + 0xff900000)
#define ENCI_MACV_N7 (0x1b37)
#define P_ENCI_MACV_N7 (volatile unsigned int *)((0x1b37 << 2) + 0xff900000)
#define ENCI_MACV_N8 (0x1b38)
#define P_ENCI_MACV_N8 (volatile unsigned int *)((0x1b38 << 2) + 0xff900000)
#define ENCI_MACV_N9 (0x1b39)
#define P_ENCI_MACV_N9 (volatile unsigned int *)((0x1b39 << 2) + 0xff900000)
#define ENCI_MACV_N10 (0x1b3a)
#define P_ENCI_MACV_N10 (volatile unsigned int *)((0x1b3a << 2) + 0xff900000)
#define ENCI_MACV_N11 (0x1b3b)
#define P_ENCI_MACV_N11 (volatile unsigned int *)((0x1b3b << 2) + 0xff900000)
#define ENCI_MACV_N12 (0x1b3c)
#define P_ENCI_MACV_N12 (volatile unsigned int *)((0x1b3c << 2) + 0xff900000)
#define ENCI_MACV_N13 (0x1b3d)
#define P_ENCI_MACV_N13 (volatile unsigned int *)((0x1b3d << 2) + 0xff900000)
#define ENCI_MACV_N14 (0x1b3e)
#define P_ENCI_MACV_N14 (volatile unsigned int *)((0x1b3e << 2) + 0xff900000)
#define ENCI_MACV_N15 (0x1b3f)
#define P_ENCI_MACV_N15 (volatile unsigned int *)((0x1b3f << 2) + 0xff900000)
#define ENCI_MACV_N16 (0x1b40)
#define P_ENCI_MACV_N16 (volatile unsigned int *)((0x1b40 << 2) + 0xff900000)
#define ENCI_MACV_N17 (0x1b41)
#define P_ENCI_MACV_N17 (volatile unsigned int *)((0x1b41 << 2) + 0xff900000)
#define ENCI_MACV_N18 (0x1b42)
#define P_ENCI_MACV_N18 (volatile unsigned int *)((0x1b42 << 2) + 0xff900000)
#define ENCI_MACV_N19 (0x1b43)
#define P_ENCI_MACV_N19 (volatile unsigned int *)((0x1b43 << 2) + 0xff900000)
#define ENCI_MACV_N20 (0x1b44)
#define P_ENCI_MACV_N20 (volatile unsigned int *)((0x1b44 << 2) + 0xff900000)
#define ENCI_MACV_N21 (0x1b45)
#define P_ENCI_MACV_N21 (volatile unsigned int *)((0x1b45 << 2) + 0xff900000)
#define ENCI_MACV_N22 (0x1b46)
#define P_ENCI_MACV_N22 (volatile unsigned int *)((0x1b46 << 2) + 0xff900000)
//`define ENCI_MACV_P_AGC 8'h47
#define ENCI_DBG_PX_RST (0x1b48)
#define P_ENCI_DBG_PX_RST (volatile unsigned int *)((0x1b48 << 2) + 0xff900000)
#define ENCI_DBG_FLDLN_RST (0x1b49)
#define P_ENCI_DBG_FLDLN_RST (volatile unsigned int *)((0x1b49 << 2) + 0xff900000)
#define ENCI_DBG_PX_INT (0x1b4a)
#define P_ENCI_DBG_PX_INT (volatile unsigned int *)((0x1b4a << 2) + 0xff900000)
#define ENCI_DBG_FLDLN_INT (0x1b4b)
#define P_ENCI_DBG_FLDLN_INT (volatile unsigned int *)((0x1b4b << 2) + 0xff900000)
#define ENCI_DBG_MAXPX (0x1b4c)
#define P_ENCI_DBG_MAXPX (volatile unsigned int *)((0x1b4c << 2) + 0xff900000)
#define ENCI_DBG_MAXLN (0x1b4d)
#define P_ENCI_DBG_MAXLN (volatile unsigned int *)((0x1b4d << 2) + 0xff900000)
#define ENCI_MACV_MAX_AMP (0x1b50)
#define P_ENCI_MACV_MAX_AMP (volatile unsigned int *)((0x1b50 << 2) + 0xff900000)
#define ENCI_MACV_PULSE_LO (0x1b51)
#define P_ENCI_MACV_PULSE_LO (volatile unsigned int *)((0x1b51 << 2) + 0xff900000)
#define ENCI_MACV_PULSE_HI (0x1b52)
#define P_ENCI_MACV_PULSE_HI (volatile unsigned int *)((0x1b52 << 2) + 0xff900000)
#define ENCI_MACV_BKP_MAX (0x1b53)
#define P_ENCI_MACV_BKP_MAX (volatile unsigned int *)((0x1b53 << 2) + 0xff900000)
#define ENCI_CFILT_CTRL (0x1b54)
#define P_ENCI_CFILT_CTRL (volatile unsigned int *)((0x1b54 << 2) + 0xff900000)
#define ENCI_CFILT7 (0x1b55)
#define P_ENCI_CFILT7 (volatile unsigned int *)((0x1b55 << 2) + 0xff900000)
#define ENCI_YC_DELAY (0x1b56)
#define P_ENCI_YC_DELAY (volatile unsigned int *)((0x1b56 << 2) + 0xff900000)
#define ENCI_VIDEO_EN (0x1b57)
#define P_ENCI_VIDEO_EN (volatile unsigned int *)((0x1b57 << 2) + 0xff900000)
//
// Closing file: enci_regs.h
//
//`define VENC2_VCBUS_BASE 8'h1c
//
// Reading file: venc2_regs.h
//
//===========================================================================
// Venc Registers (Cont.) 0xc00 - 0xcff (VENC registers 0xc00 - 0xcef)
//===========================================================================
// -----------------------------------------------
// CBUS_BASE: VENC2_VCBUS_BASE = 0x1c
// -----------------------------------------------
// Program video control signals from ENCI core to DVI/HDMI interface
#define ENCI_DVI_HSO_BEGIN (0x1c00)
#define P_ENCI_DVI_HSO_BEGIN (volatile unsigned int *)((0x1c00 << 2) + 0xff900000)
#define ENCI_DVI_HSO_END (0x1c01)
#define P_ENCI_DVI_HSO_END (volatile unsigned int *)((0x1c01 << 2) + 0xff900000)
#define ENCI_DVI_VSO_BLINE_EVN (0x1c02)
#define P_ENCI_DVI_VSO_BLINE_EVN (volatile unsigned int *)((0x1c02 << 2) + 0xff900000)
#define ENCI_DVI_VSO_BLINE_ODD (0x1c03)
#define P_ENCI_DVI_VSO_BLINE_ODD (volatile unsigned int *)((0x1c03 << 2) + 0xff900000)
#define ENCI_DVI_VSO_ELINE_EVN (0x1c04)
#define P_ENCI_DVI_VSO_ELINE_EVN (volatile unsigned int *)((0x1c04 << 2) + 0xff900000)
#define ENCI_DVI_VSO_ELINE_ODD (0x1c05)
#define P_ENCI_DVI_VSO_ELINE_ODD (volatile unsigned int *)((0x1c05 << 2) + 0xff900000)
#define ENCI_DVI_VSO_BEGIN_EVN (0x1c06)
#define P_ENCI_DVI_VSO_BEGIN_EVN (volatile unsigned int *)((0x1c06 << 2) + 0xff900000)
#define ENCI_DVI_VSO_BEGIN_ODD (0x1c07)
#define P_ENCI_DVI_VSO_BEGIN_ODD (volatile unsigned int *)((0x1c07 << 2) + 0xff900000)
#define ENCI_DVI_VSO_END_EVN (0x1c08)
#define P_ENCI_DVI_VSO_END_EVN (volatile unsigned int *)((0x1c08 << 2) + 0xff900000)
#define ENCI_DVI_VSO_END_ODD (0x1c09)
#define P_ENCI_DVI_VSO_END_ODD (volatile unsigned int *)((0x1c09 << 2) + 0xff900000)
// Define cmpt and cvbs cb/cr delay after ENCI chroma filters
// Bit 15:12 RW, enci_cb_cvbs_dly_sel. 0=no delay; 1~6=delay by 1~6 clk; 7~15 reserved.
// Bit 11: 8 RW, enci_cr_cvbs_dly_sel. 0=no delay; 1~6=delay by 1~6 clk; 7~15 reserved.
// Bit 7: 4 RW, enci_cb_cmpt_dly_sel. 0=no delay; 1~6=delay by 1~6 clk; 7~15 reserved.
// Bit 3: 0 RW, enci_cr_cmpt_dly_sel. 0=no delay; 1~6=delay by 1~6 clk; 7~15 reserved.
#define ENCI_CFILT_CTRL2 (0x1c0a)
#define P_ENCI_CFILT_CTRL2 (volatile unsigned int *)((0x1c0a << 2) + 0xff900000)
#define ENCI_DACSEL_0 (0x1c0b)
#define P_ENCI_DACSEL_0 (volatile unsigned int *)((0x1c0b << 2) + 0xff900000)
#define ENCI_DACSEL_1 (0x1c0c)
#define P_ENCI_DACSEL_1 (volatile unsigned int *)((0x1c0c << 2) + 0xff900000)
#define ENCP_DACSEL_0 (0x1c0d)
#define P_ENCP_DACSEL_0 (volatile unsigned int *)((0x1c0d << 2) + 0xff900000)
#define ENCP_DACSEL_1 (0x1c0e)
#define P_ENCP_DACSEL_1 (volatile unsigned int *)((0x1c0e << 2) + 0xff900000)
#define ENCP_MAX_LINE_SWITCH_POINT (0x1c0f)
#define P_ENCP_MAX_LINE_SWITCH_POINT (volatile unsigned int *)((0x1c0f << 2) + 0xff900000)
#define ENCI_TST_EN (0x1c10)
#define P_ENCI_TST_EN (volatile unsigned int *)((0x1c10 << 2) + 0xff900000)
#define ENCI_TST_MDSEL (0x1c11)
#define P_ENCI_TST_MDSEL (volatile unsigned int *)((0x1c11 << 2) + 0xff900000)
#define ENCI_TST_Y (0x1c12)
#define P_ENCI_TST_Y (volatile unsigned int *)((0x1c12 << 2) + 0xff900000)
#define ENCI_TST_CB (0x1c13)
#define P_ENCI_TST_CB (volatile unsigned int *)((0x1c13 << 2) + 0xff900000)
#define ENCI_TST_CR (0x1c14)
#define P_ENCI_TST_CR (volatile unsigned int *)((0x1c14 << 2) + 0xff900000)
#define ENCI_TST_CLRBAR_STRT (0x1c15)
#define P_ENCI_TST_CLRBAR_STRT (volatile unsigned int *)((0x1c15 << 2) + 0xff900000)
#define ENCI_TST_CLRBAR_WIDTH (0x1c16)
#define P_ENCI_TST_CLRBAR_WIDTH (volatile unsigned int *)((0x1c16 << 2) + 0xff900000)
#define ENCI_TST_VDCNT_STSET (0x1c17)
#define P_ENCI_TST_VDCNT_STSET (volatile unsigned int *)((0x1c17 << 2) + 0xff900000)
// bit 15:8 -- vfifo2vd_vd_sel
// bit 7 -- vfifo2vd_drop
// bit 6:1 -- vfifo2vd_delay
// bit 0 -- vfifo2vd_en
#define ENCI_VFIFO2VD_CTL (0x1c18)
#define P_ENCI_VFIFO2VD_CTL (volatile unsigned int *)((0x1c18 << 2) + 0xff900000)
// bit 12:0 -- vfifo2vd_pixel_start
#define ENCI_VFIFO2VD_PIXEL_START (0x1c19)
#define P_ENCI_VFIFO2VD_PIXEL_START (volatile unsigned int *)((0x1c19 << 2) + 0xff900000)
// bit 12:00 -- vfifo2vd_pixel_end
#define ENCI_VFIFO2VD_PIXEL_END (0x1c1a)
#define P_ENCI_VFIFO2VD_PIXEL_END (volatile unsigned int *)((0x1c1a << 2) + 0xff900000)
// bit 10:0 -- vfifo2vd_line_top_start
#define ENCI_VFIFO2VD_LINE_TOP_START (0x1c1b)
#define P_ENCI_VFIFO2VD_LINE_TOP_START (volatile unsigned int *)((0x1c1b << 2) + 0xff900000)
// bit 10:00 -- vfifo2vd_line_top_end
#define ENCI_VFIFO2VD_LINE_TOP_END (0x1c1c)
#define P_ENCI_VFIFO2VD_LINE_TOP_END (volatile unsigned int *)((0x1c1c << 2) + 0xff900000)
// bit 10:00 -- vfifo2vd_line_bot_start
#define ENCI_VFIFO2VD_LINE_BOT_START (0x1c1d)
#define P_ENCI_VFIFO2VD_LINE_BOT_START (volatile unsigned int *)((0x1c1d << 2) + 0xff900000)
// bit 10:00 -- vfifo2vd_line_bot_end
#define ENCI_VFIFO2VD_LINE_BOT_END (0x1c1e)
#define P_ENCI_VFIFO2VD_LINE_BOT_END (volatile unsigned int *)((0x1c1e << 2) + 0xff900000)
#define ENCI_VFIFO2VD_CTL2 (0x1c1f)
#define P_ENCI_VFIFO2VD_CTL2 (volatile unsigned int *)((0x1c1f << 2) + 0xff900000)
// bit 15:8 -- vfifo2vd_vd_sel
// bit 7 -- vfifo2vd_drop
// bit 6:1 -- vfifo2vd_delay
// bit 0 -- vfifo2vd_en
#define ENCT_VFIFO2VD_CTL (0x1c20)
#define P_ENCT_VFIFO2VD_CTL (volatile unsigned int *)((0x1c20 << 2) + 0xff900000)
// bit 12:0 -- vfifo2vd_pixel_start
#define ENCT_VFIFO2VD_PIXEL_START (0x1c21)
#define P_ENCT_VFIFO2VD_PIXEL_START (volatile unsigned int *)((0x1c21 << 2) + 0xff900000)
// bit 12:00 -- vfifo2vd_pixel_end
#define ENCT_VFIFO2VD_PIXEL_END (0x1c22)
#define P_ENCT_VFIFO2VD_PIXEL_END (volatile unsigned int *)((0x1c22 << 2) + 0xff900000)
// bit 10:0 -- vfifo2vd_line_top_start
#define ENCT_VFIFO2VD_LINE_TOP_START (0x1c23)
#define P_ENCT_VFIFO2VD_LINE_TOP_START (volatile unsigned int *)((0x1c23 << 2) + 0xff900000)
// bit 10:00 -- vfifo2vd_line_top_end
#define ENCT_VFIFO2VD_LINE_TOP_END (0x1c24)
#define P_ENCT_VFIFO2VD_LINE_TOP_END (volatile unsigned int *)((0x1c24 << 2) + 0xff900000)
// bit 10:00 -- vfifo2vd_line_bot_start
#define ENCT_VFIFO2VD_LINE_BOT_START (0x1c25)
#define P_ENCT_VFIFO2VD_LINE_BOT_START (volatile unsigned int *)((0x1c25 << 2) + 0xff900000)
// bit 10:00 -- vfifo2vd_line_bot_end
#define ENCT_VFIFO2VD_LINE_BOT_END (0x1c26)
#define P_ENCT_VFIFO2VD_LINE_BOT_END (volatile unsigned int *)((0x1c26 << 2) + 0xff900000)
#define ENCT_VFIFO2VD_CTL2 (0x1c27)
#define P_ENCT_VFIFO2VD_CTL2 (volatile unsigned int *)((0x1c27 << 2) + 0xff900000)
#define ENCT_TST_EN (0x1c28)
#define P_ENCT_TST_EN (volatile unsigned int *)((0x1c28 << 2) + 0xff900000)
#define ENCT_TST_MDSEL (0x1c29)
#define P_ENCT_TST_MDSEL (volatile unsigned int *)((0x1c29 << 2) + 0xff900000)
#define ENCT_TST_Y (0x1c2a)
#define P_ENCT_TST_Y (volatile unsigned int *)((0x1c2a << 2) + 0xff900000)
#define ENCT_TST_CB (0x1c2b)
#define P_ENCT_TST_CB (volatile unsigned int *)((0x1c2b << 2) + 0xff900000)
#define ENCT_TST_CR (0x1c2c)
#define P_ENCT_TST_CR (volatile unsigned int *)((0x1c2c << 2) + 0xff900000)
#define ENCT_TST_CLRBAR_STRT (0x1c2d)
#define P_ENCT_TST_CLRBAR_STRT (volatile unsigned int *)((0x1c2d << 2) + 0xff900000)
#define ENCT_TST_CLRBAR_WIDTH (0x1c2e)
#define P_ENCT_TST_CLRBAR_WIDTH (volatile unsigned int *)((0x1c2e << 2) + 0xff900000)
#define ENCT_TST_VDCNT_STSET (0x1c2f)
#define P_ENCT_TST_VDCNT_STSET (volatile unsigned int *)((0x1c2f << 2) + 0xff900000)
// Program video control signals from ENCP core to DVI/HDMI interface
#define ENCP_DVI_HSO_BEGIN (0x1c30)
#define P_ENCP_DVI_HSO_BEGIN (volatile unsigned int *)((0x1c30 << 2) + 0xff900000)
#define ENCP_DVI_HSO_END (0x1c31)
#define P_ENCP_DVI_HSO_END (volatile unsigned int *)((0x1c31 << 2) + 0xff900000)
#define ENCP_DVI_VSO_BLINE_EVN (0x1c32)
#define P_ENCP_DVI_VSO_BLINE_EVN (volatile unsigned int *)((0x1c32 << 2) + 0xff900000)
#define ENCP_DVI_VSO_BLINE_ODD (0x1c33)
#define P_ENCP_DVI_VSO_BLINE_ODD (volatile unsigned int *)((0x1c33 << 2) + 0xff900000)
#define ENCP_DVI_VSO_ELINE_EVN (0x1c34)
#define P_ENCP_DVI_VSO_ELINE_EVN (volatile unsigned int *)((0x1c34 << 2) + 0xff900000)
#define ENCP_DVI_VSO_ELINE_ODD (0x1c35)
#define P_ENCP_DVI_VSO_ELINE_ODD (volatile unsigned int *)((0x1c35 << 2) + 0xff900000)
#define ENCP_DVI_VSO_BEGIN_EVN (0x1c36)
#define P_ENCP_DVI_VSO_BEGIN_EVN (volatile unsigned int *)((0x1c36 << 2) + 0xff900000)
#define ENCP_DVI_VSO_BEGIN_ODD (0x1c37)
#define P_ENCP_DVI_VSO_BEGIN_ODD (volatile unsigned int *)((0x1c37 << 2) + 0xff900000)
#define ENCP_DVI_VSO_END_EVN (0x1c38)
#define P_ENCP_DVI_VSO_END_EVN (volatile unsigned int *)((0x1c38 << 2) + 0xff900000)
#define ENCP_DVI_VSO_END_ODD (0x1c39)
#define P_ENCP_DVI_VSO_END_ODD (volatile unsigned int *)((0x1c39 << 2) + 0xff900000)
#define ENCP_DE_H_BEGIN (0x1c3a)
#define P_ENCP_DE_H_BEGIN (volatile unsigned int *)((0x1c3a << 2) + 0xff900000)
#define ENCP_DE_H_END (0x1c3b)
#define P_ENCP_DE_H_END (volatile unsigned int *)((0x1c3b << 2) + 0xff900000)
#define ENCP_DE_V_BEGIN_EVEN (0x1c3c)
#define P_ENCP_DE_V_BEGIN_EVEN (volatile unsigned int *)((0x1c3c << 2) + 0xff900000)
#define ENCP_DE_V_END_EVEN (0x1c3d)
#define P_ENCP_DE_V_END_EVEN (volatile unsigned int *)((0x1c3d << 2) + 0xff900000)
#define ENCP_DE_V_BEGIN_ODD (0x1c3e)
#define P_ENCP_DE_V_BEGIN_ODD (volatile unsigned int *)((0x1c3e << 2) + 0xff900000)
#define ENCP_DE_V_END_ODD (0x1c3f)
#define P_ENCP_DE_V_END_ODD (volatile unsigned int *)((0x1c3f << 2) + 0xff900000)
// Bit 15:11 - sync length
// Bit 10:0 - sync start line
#define ENCI_SYNC_LINE_LENGTH (0x1c40)
#define P_ENCI_SYNC_LINE_LENGTH (volatile unsigned int *)((0x1c40 << 2) + 0xff900000)
// Bit 15 - sync_pulse_enable
// Bit 12:0 - sync start pixel
#define ENCI_SYNC_PIXEL_EN (0x1c41)
#define P_ENCI_SYNC_PIXEL_EN (volatile unsigned int *)((0x1c41 << 2) + 0xff900000)
// Bit 15 - enci_sync_enable
// Bit 14 - encp_sync_enable
// Bit 13 - enct_sync_enable
// Bit 12 - short_fussy_sync
// Bit 11 - fussy_sync_enable
// Bit 10:0 - sync target line
#define ENCI_SYNC_TO_LINE_EN (0x1c42)
#define P_ENCI_SYNC_TO_LINE_EN (volatile unsigned int *)((0x1c42 << 2) + 0xff900000)
// Bit 12:0 - sync target pixel
#define ENCI_SYNC_TO_PIXEL (0x1c43)
#define P_ENCI_SYNC_TO_PIXEL (volatile unsigned int *)((0x1c43 << 2) + 0xff900000)
// Bit 15:11 - sync length
// Bit 10:0 - sync start line
#define ENCP_SYNC_LINE_LENGTH (0x1c44)
#define P_ENCP_SYNC_LINE_LENGTH (volatile unsigned int *)((0x1c44 << 2) + 0xff900000)
// Bit 15 - sync_pulse_enable
// Bit 12:0 - sync start pixel
#define ENCP_SYNC_PIXEL_EN (0x1c45)
#define P_ENCP_SYNC_PIXEL_EN (volatile unsigned int *)((0x1c45 << 2) + 0xff900000)
// Bit 15 - enci_sync_enable
// Bit 14 - encp_sync_enable
// Bit 13 - enct_sync_enable
// Bit 12 - short_fussy_sync
// Bit 11 - fussy_sync_enable
// Bit 10:0 - sync target line
#define ENCP_SYNC_TO_LINE_EN (0x1c46)
#define P_ENCP_SYNC_TO_LINE_EN (volatile unsigned int *)((0x1c46 << 2) + 0xff900000)
// Bit 12:0 - sync target pixel
#define ENCP_SYNC_TO_PIXEL (0x1c47)
#define P_ENCP_SYNC_TO_PIXEL (volatile unsigned int *)((0x1c47 << 2) + 0xff900000)
// Bit 15:11 - sync length
// Bit 10:0 - sync start line
#define ENCT_SYNC_LINE_LENGTH (0x1c48)
#define P_ENCT_SYNC_LINE_LENGTH (volatile unsigned int *)((0x1c48 << 2) + 0xff900000)
// Bit 15 - sync_pulse_enable
// Bit 12:0 - sync start pixel
#define ENCT_SYNC_PIXEL_EN (0x1c49)
#define P_ENCT_SYNC_PIXEL_EN (volatile unsigned int *)((0x1c49 << 2) + 0xff900000)
// Bit 15 - enci_sync_enable
// Bit 14 - encp_sync_enable
// Bit 13 - enct_sync_enable
// Bit 12 - short_fussy_sync
// Bit 11 - fussy_sync_enable
// Bit 10:0 - sync target line
#define ENCT_SYNC_TO_LINE_EN (0x1c4a)
#define P_ENCT_SYNC_TO_LINE_EN (volatile unsigned int *)((0x1c4a << 2) + 0xff900000)
// Bit 12:0 - sync target pixel
#define ENCT_SYNC_TO_PIXEL (0x1c4b)
#define P_ENCT_SYNC_TO_PIXEL (volatile unsigned int *)((0x1c4b << 2) + 0xff900000)
// Bit 15:11 - sync length
// Bit 10:0 - sync start line
#define ENCL_SYNC_LINE_LENGTH (0x1c4c)
#define P_ENCL_SYNC_LINE_LENGTH (volatile unsigned int *)((0x1c4c << 2) + 0xff900000)
// Bit 15 - sync_pulse_enable
// Bit 12:0 - sync start pixel
#define ENCL_SYNC_PIXEL_EN (0x1c4d)
#define P_ENCL_SYNC_PIXEL_EN (volatile unsigned int *)((0x1c4d << 2) + 0xff900000)
// Bit 15 - enci_sync_enable
// Bit 14 - encp_sync_enable
// Bit 13 - enct_sync_enable
// Bit 12 - short_fussy_sync
// Bit 11 - fussy_sync_enable
// Bit 10:0 - sync target line
#define ENCL_SYNC_TO_LINE_EN (0x1c4e)
#define P_ENCL_SYNC_TO_LINE_EN (volatile unsigned int *)((0x1c4e << 2) + 0xff900000)
// Bit 12:0 - sync target pixel
#define ENCL_SYNC_TO_PIXEL (0x1c4f)
#define P_ENCL_SYNC_TO_PIXEL (volatile unsigned int *)((0x1c4f << 2) + 0xff900000)
// bit 3 cfg_encp_lcd_scaler_bypass. 1=Do not scale LCD input data;
// 0=Scale LCD input data to y [16*4,235*4], c [16*4,240*4].
// bit 2 cfg_encp_vadj_scaler_bypass. 1=Do not scale data to enc480p_vadj;
// 0=Scale enc480p_vadj input data to y [16*4,235*4], c [16*4,240*4].
// bit 1 cfg_vfifo2vd_out_scaler_bypass. 1=Do not scale vfifo2vd's output vdata;
// 0=Scale vfifo2vd's output vdata to y [16,235], c [16,240].
// bit 0 cfg_vfifo_din_full_range. 1=Data from viu fifo is full range [0,1023];
// 0=Data from viu fifo is y [16*4,235*4], c [16*4,240*4].
#define ENCP_VFIFO2VD_CTL2 (0x1c50)
#define P_ENCP_VFIFO2VD_CTL2 (volatile unsigned int *)((0x1c50 << 2) + 0xff900000)
// bit 15:1 Reserved.
// bit 0 cfg_int_dvi_sel_rgb. Applicable for using on-chip hdmi tx module only. This bit controls correct bit-mapping from
// Venc to hdmi_tx depending on whether YCbCr or RGB mode.
// 1=Map data bit from Venc to hdmi_tx for RGB mode;
// 0=Default. Map data bit from Venc to hdmi_tx for YCbCr mode.
#define VENC_DVI_SETTING_MORE (0x1c51)
#define P_VENC_DVI_SETTING_MORE (volatile unsigned int *)((0x1c51 << 2) + 0xff900000)
#define VENC_VDAC_DAC4_FILT_CTRL0 (0x1c54)
#define P_VENC_VDAC_DAC4_FILT_CTRL0 (volatile unsigned int *)((0x1c54 << 2) + 0xff900000)
#define VENC_VDAC_DAC4_FILT_CTRL1 (0x1c55)
#define P_VENC_VDAC_DAC4_FILT_CTRL1 (volatile unsigned int *)((0x1c55 << 2) + 0xff900000)
#define VENC_VDAC_DAC5_FILT_CTRL0 (0x1c56)
#define P_VENC_VDAC_DAC5_FILT_CTRL0 (volatile unsigned int *)((0x1c56 << 2) + 0xff900000)
#define VENC_VDAC_DAC5_FILT_CTRL1 (0x1c57)
#define P_VENC_VDAC_DAC5_FILT_CTRL1 (volatile unsigned int *)((0x1c57 << 2) + 0xff900000)
//Bit 0 filter_en
#define VENC_VDAC_DAC0_FILT_CTRL0 (0x1c58)
#define P_VENC_VDAC_DAC0_FILT_CTRL0 (volatile unsigned int *)((0x1c58 << 2) + 0xff900000)
//dout = ((din + din_d2) * coef1 + (din_d1 * coef0) + 32) >> 6
//Bit 15:8, coef1,
//Bit 7:0, coef0,
#define VENC_VDAC_DAC0_FILT_CTRL1 (0x1c59)
#define P_VENC_VDAC_DAC0_FILT_CTRL1 (volatile unsigned int *)((0x1c59 << 2) + 0xff900000)
//Bit 0 filter_en
#define VENC_VDAC_DAC1_FILT_CTRL0 (0x1c5a)
#define P_VENC_VDAC_DAC1_FILT_CTRL0 (volatile unsigned int *)((0x1c5a << 2) + 0xff900000)
//dout = ((din + din_d2) * coef1 + (din_d1 * coef0) + 32) >> 6
//Bit 15:8, coef1,
//Bit 7:0, coef0,
#define VENC_VDAC_DAC1_FILT_CTRL1 (0x1c5b)
#define P_VENC_VDAC_DAC1_FILT_CTRL1 (volatile unsigned int *)((0x1c5b << 2) + 0xff900000)
//Bit 0 filter_en
#define VENC_VDAC_DAC2_FILT_CTRL0 (0x1c5c)
#define P_VENC_VDAC_DAC2_FILT_CTRL0 (volatile unsigned int *)((0x1c5c << 2) + 0xff900000)
//dout = ((din + din_d2) * coef1 + (din_d1 * coef0) + 32) >> 6
//Bit 15:8, coef1,
//Bit 7:0, coef0,
#define VENC_VDAC_DAC2_FILT_CTRL1 (0x1c5d)
#define P_VENC_VDAC_DAC2_FILT_CTRL1 (volatile unsigned int *)((0x1c5d << 2) + 0xff900000)
//Bit 0 filter_en
#define VENC_VDAC_DAC3_FILT_CTRL0 (0x1c5e)
#define P_VENC_VDAC_DAC3_FILT_CTRL0 (volatile unsigned int *)((0x1c5e << 2) + 0xff900000)
//dout = ((din + din_d2) * coef1 + (din_d1 * coef0) + 32) >> 6
//Bit 15:8, coef1,
//Bit 7:0, coef0,
#define VENC_VDAC_DAC3_FILT_CTRL1 (0x1c5f)
#define P_VENC_VDAC_DAC3_FILT_CTRL1 (volatile unsigned int *)((0x1c5f << 2) + 0xff900000)
//===========================================================================
// ENCT registers
#define ENCT_VIDEO_EN (0x1c60)
#define P_ENCT_VIDEO_EN (volatile unsigned int *)((0x1c60 << 2) + 0xff900000)
#define ENCT_VIDEO_Y_SCL (0x1c61)
#define P_ENCT_VIDEO_Y_SCL (volatile unsigned int *)((0x1c61 << 2) + 0xff900000)
#define ENCT_VIDEO_PB_SCL (0x1c62)
#define P_ENCT_VIDEO_PB_SCL (volatile unsigned int *)((0x1c62 << 2) + 0xff900000)
#define ENCT_VIDEO_PR_SCL (0x1c63)
#define P_ENCT_VIDEO_PR_SCL (volatile unsigned int *)((0x1c63 << 2) + 0xff900000)
#define ENCT_VIDEO_Y_OFFST (0x1c64)
#define P_ENCT_VIDEO_Y_OFFST (volatile unsigned int *)((0x1c64 << 2) + 0xff900000)
#define ENCT_VIDEO_PB_OFFST (0x1c65)
#define P_ENCT_VIDEO_PB_OFFST (volatile unsigned int *)((0x1c65 << 2) + 0xff900000)
#define ENCT_VIDEO_PR_OFFST (0x1c66)
#define P_ENCT_VIDEO_PR_OFFST (volatile unsigned int *)((0x1c66 << 2) + 0xff900000)
//----- Video mode
#define ENCT_VIDEO_MODE (0x1c67)
#define P_ENCT_VIDEO_MODE (volatile unsigned int *)((0x1c67 << 2) + 0xff900000)
#define ENCT_VIDEO_MODE_ADV (0x1c68)
#define P_ENCT_VIDEO_MODE_ADV (volatile unsigned int *)((0x1c68 << 2) + 0xff900000)
//--------------- Debug pins
#define ENCT_DBG_PX_RST (0x1c69)
#define P_ENCT_DBG_PX_RST (volatile unsigned int *)((0x1c69 << 2) + 0xff900000)
#define ENCT_DBG_LN_RST (0x1c6a)
#define P_ENCT_DBG_LN_RST (volatile unsigned int *)((0x1c6a << 2) + 0xff900000)
#define ENCT_DBG_PX_INT (0x1c6b)
#define P_ENCT_DBG_PX_INT (volatile unsigned int *)((0x1c6b << 2) + 0xff900000)
#define ENCT_DBG_LN_INT (0x1c6c)
#define P_ENCT_DBG_LN_INT (volatile unsigned int *)((0x1c6c << 2) + 0xff900000)
//----------- Video Advanced setting
#define ENCT_VIDEO_YFP1_HTIME (0x1c6d)
#define P_ENCT_VIDEO_YFP1_HTIME (volatile unsigned int *)((0x1c6d << 2) + 0xff900000)
#define ENCT_VIDEO_YFP2_HTIME (0x1c6e)
#define P_ENCT_VIDEO_YFP2_HTIME (volatile unsigned int *)((0x1c6e << 2) + 0xff900000)
#define ENCT_VIDEO_YC_DLY (0x1c6f)
#define P_ENCT_VIDEO_YC_DLY (volatile unsigned int *)((0x1c6f << 2) + 0xff900000)
#define ENCT_VIDEO_MAX_PXCNT (0x1c70)
#define P_ENCT_VIDEO_MAX_PXCNT (volatile unsigned int *)((0x1c70 << 2) + 0xff900000)
#define ENCT_VIDEO_HAVON_END (0x1c71)
#define P_ENCT_VIDEO_HAVON_END (volatile unsigned int *)((0x1c71 << 2) + 0xff900000)
#define ENCT_VIDEO_HAVON_BEGIN (0x1c72)
#define P_ENCT_VIDEO_HAVON_BEGIN (volatile unsigned int *)((0x1c72 << 2) + 0xff900000)
#define ENCT_VIDEO_VAVON_ELINE (0x1c73)
#define P_ENCT_VIDEO_VAVON_ELINE (volatile unsigned int *)((0x1c73 << 2) + 0xff900000)
#define ENCT_VIDEO_VAVON_BLINE (0x1c74)
#define P_ENCT_VIDEO_VAVON_BLINE (volatile unsigned int *)((0x1c74 << 2) + 0xff900000)
#define ENCT_VIDEO_HSO_BEGIN (0x1c75)
#define P_ENCT_VIDEO_HSO_BEGIN (volatile unsigned int *)((0x1c75 << 2) + 0xff900000)
#define ENCT_VIDEO_HSO_END (0x1c76)
#define P_ENCT_VIDEO_HSO_END (volatile unsigned int *)((0x1c76 << 2) + 0xff900000)
#define ENCT_VIDEO_VSO_BEGIN (0x1c77)
#define P_ENCT_VIDEO_VSO_BEGIN (volatile unsigned int *)((0x1c77 << 2) + 0xff900000)
#define ENCT_VIDEO_VSO_END (0x1c78)
#define P_ENCT_VIDEO_VSO_END (volatile unsigned int *)((0x1c78 << 2) + 0xff900000)
#define ENCT_VIDEO_VSO_BLINE (0x1c79)
#define P_ENCT_VIDEO_VSO_BLINE (volatile unsigned int *)((0x1c79 << 2) + 0xff900000)
#define ENCT_VIDEO_VSO_ELINE (0x1c7a)
#define P_ENCT_VIDEO_VSO_ELINE (volatile unsigned int *)((0x1c7a << 2) + 0xff900000)
#define ENCT_VIDEO_MAX_LNCNT (0x1c7b)
#define P_ENCT_VIDEO_MAX_LNCNT (volatile unsigned int *)((0x1c7b << 2) + 0xff900000)
#define ENCT_VIDEO_BLANKY_VAL (0x1c7c)
#define P_ENCT_VIDEO_BLANKY_VAL (volatile unsigned int *)((0x1c7c << 2) + 0xff900000)
#define ENCT_VIDEO_BLANKPB_VAL (0x1c7d)
#define P_ENCT_VIDEO_BLANKPB_VAL (volatile unsigned int *)((0x1c7d << 2) + 0xff900000)
#define ENCT_VIDEO_BLANKPR_VAL (0x1c7e)
#define P_ENCT_VIDEO_BLANKPR_VAL (volatile unsigned int *)((0x1c7e << 2) + 0xff900000)
#define ENCT_VIDEO_HOFFST (0x1c7f)
#define P_ENCT_VIDEO_HOFFST (volatile unsigned int *)((0x1c7f << 2) + 0xff900000)
#define ENCT_VIDEO_VOFFST (0x1c80)
#define P_ENCT_VIDEO_VOFFST (volatile unsigned int *)((0x1c80 << 2) + 0xff900000)
#define ENCT_VIDEO_RGB_CTRL (0x1c81)
#define P_ENCT_VIDEO_RGB_CTRL (volatile unsigned int *)((0x1c81 << 2) + 0xff900000)
#define ENCT_VIDEO_FILT_CTRL (0x1c82)
#define P_ENCT_VIDEO_FILT_CTRL (volatile unsigned int *)((0x1c82 << 2) + 0xff900000)
#define ENCT_VIDEO_OFLD_VPEQ_OFST (0x1c83)
#define P_ENCT_VIDEO_OFLD_VPEQ_OFST (volatile unsigned int *)((0x1c83 << 2) + 0xff900000)
#define ENCT_VIDEO_OFLD_VOAV_OFST (0x1c84)
#define P_ENCT_VIDEO_OFLD_VOAV_OFST (volatile unsigned int *)((0x1c84 << 2) + 0xff900000)
#define ENCT_VIDEO_MATRIX_CB (0x1c85)
#define P_ENCT_VIDEO_MATRIX_CB (volatile unsigned int *)((0x1c85 << 2) + 0xff900000)
#define ENCT_VIDEO_MATRIX_CR (0x1c86)
#define P_ENCT_VIDEO_MATRIX_CR (volatile unsigned int *)((0x1c86 << 2) + 0xff900000)
#define ENCT_VIDEO_RGBIN_CTRL (0x1c87)
#define P_ENCT_VIDEO_RGBIN_CTRL (volatile unsigned int *)((0x1c87 << 2) + 0xff900000)
#define ENCT_MAX_LINE_SWITCH_POINT (0x1c88)
#define P_ENCT_MAX_LINE_SWITCH_POINT (volatile unsigned int *)((0x1c88 << 2) + 0xff900000)
#define ENCT_DACSEL_0 (0x1c89)
#define P_ENCT_DACSEL_0 (volatile unsigned int *)((0x1c89 << 2) + 0xff900000)
#define ENCT_DACSEL_1 (0x1c8a)
#define P_ENCT_DACSEL_1 (volatile unsigned int *)((0x1c8a << 2) + 0xff900000)
//===========================================================================
// For ENCL
//===========================================================================
// bit 15:8 -- vfifo2vd_vd_sel
// bit 7 -- vfifo2vd_drop
// bit 6:1 -- vfifo2vd_delay
// bit 0 -- vfifo2vd_en
#define ENCL_VFIFO2VD_CTL (0x1c90)
#define P_ENCL_VFIFO2VD_CTL (volatile unsigned int *)((0x1c90 << 2) + 0xff900000)
// bit 12:0 -- vfifo2vd_pixel_start
#define ENCL_VFIFO2VD_PIXEL_START (0x1c91)
#define P_ENCL_VFIFO2VD_PIXEL_START (volatile unsigned int *)((0x1c91 << 2) + 0xff900000)
// bit 12:00 -- vfifo2vd_pixel_end
#define ENCL_VFIFO2VD_PIXEL_END (0x1c92)
#define P_ENCL_VFIFO2VD_PIXEL_END (volatile unsigned int *)((0x1c92 << 2) + 0xff900000)
// bit 10:0 -- vfifo2vd_line_top_start
#define ENCL_VFIFO2VD_LINE_TOP_START (0x1c93)
#define P_ENCL_VFIFO2VD_LINE_TOP_START (volatile unsigned int *)((0x1c93 << 2) + 0xff900000)
// bit 10:00 -- vfifo2vd_line_top_end
#define ENCL_VFIFO2VD_LINE_TOP_END (0x1c94)
#define P_ENCL_VFIFO2VD_LINE_TOP_END (volatile unsigned int *)((0x1c94 << 2) + 0xff900000)
// bit 10:00 -- vfifo2vd_line_bot_start
#define ENCL_VFIFO2VD_LINE_BOT_START (0x1c95)
#define P_ENCL_VFIFO2VD_LINE_BOT_START (volatile unsigned int *)((0x1c95 << 2) + 0xff900000)
// bit 10:00 -- vfifo2vd_line_bot_end
#define ENCL_VFIFO2VD_LINE_BOT_END (0x1c96)
#define P_ENCL_VFIFO2VD_LINE_BOT_END (volatile unsigned int *)((0x1c96 << 2) + 0xff900000)
#define ENCL_VFIFO2VD_CTL2 (0x1c97)
#define P_ENCL_VFIFO2VD_CTL2 (volatile unsigned int *)((0x1c97 << 2) + 0xff900000)
#define ENCL_TST_EN (0x1c98)
#define P_ENCL_TST_EN (volatile unsigned int *)((0x1c98 << 2) + 0xff900000)
#define ENCL_TST_MDSEL (0x1c99)
#define P_ENCL_TST_MDSEL (volatile unsigned int *)((0x1c99 << 2) + 0xff900000)
#define ENCL_TST_Y (0x1c9a)
#define P_ENCL_TST_Y (volatile unsigned int *)((0x1c9a << 2) + 0xff900000)
#define ENCL_TST_CB (0x1c9b)
#define P_ENCL_TST_CB (volatile unsigned int *)((0x1c9b << 2) + 0xff900000)
#define ENCL_TST_CR (0x1c9c)
#define P_ENCL_TST_CR (volatile unsigned int *)((0x1c9c << 2) + 0xff900000)
#define ENCL_TST_CLRBAR_STRT (0x1c9d)
#define P_ENCL_TST_CLRBAR_STRT (volatile unsigned int *)((0x1c9d << 2) + 0xff900000)
#define ENCL_TST_CLRBAR_WIDTH (0x1c9e)
#define P_ENCL_TST_CLRBAR_WIDTH (volatile unsigned int *)((0x1c9e << 2) + 0xff900000)
#define ENCL_TST_VDCNT_STSET (0x1c9f)
#define P_ENCL_TST_VDCNT_STSET (volatile unsigned int *)((0x1c9f << 2) + 0xff900000)
//===========================================================================
// ENCL registers
#define ENCL_VIDEO_EN (0x1ca0)
#define P_ENCL_VIDEO_EN (volatile unsigned int *)((0x1ca0 << 2) + 0xff900000)
#define ENCL_VIDEO_Y_SCL (0x1ca1)
#define P_ENCL_VIDEO_Y_SCL (volatile unsigned int *)((0x1ca1 << 2) + 0xff900000)
#define ENCL_VIDEO_PB_SCL (0x1ca2)
#define P_ENCL_VIDEO_PB_SCL (volatile unsigned int *)((0x1ca2 << 2) + 0xff900000)
#define ENCL_VIDEO_PR_SCL (0x1ca3)
#define P_ENCL_VIDEO_PR_SCL (volatile unsigned int *)((0x1ca3 << 2) + 0xff900000)
#define ENCL_VIDEO_Y_OFFST (0x1ca4)
#define P_ENCL_VIDEO_Y_OFFST (volatile unsigned int *)((0x1ca4 << 2) + 0xff900000)
#define ENCL_VIDEO_PB_OFFST (0x1ca5)
#define P_ENCL_VIDEO_PB_OFFST (volatile unsigned int *)((0x1ca5 << 2) + 0xff900000)
#define ENCL_VIDEO_PR_OFFST (0x1ca6)
#define P_ENCL_VIDEO_PR_OFFST (volatile unsigned int *)((0x1ca6 << 2) + 0xff900000)
//----- Video mode
#define ENCL_VIDEO_MODE (0x1ca7)
#define P_ENCL_VIDEO_MODE (volatile unsigned int *)((0x1ca7 << 2) + 0xff900000)
#define ENCL_VIDEO_MODE_ADV (0x1ca8)
#define P_ENCL_VIDEO_MODE_ADV (volatile unsigned int *)((0x1ca8 << 2) + 0xff900000)
//--------------- Debug pins
#define ENCL_DBG_PX_RST (0x1ca9)
#define P_ENCL_DBG_PX_RST (volatile unsigned int *)((0x1ca9 << 2) + 0xff900000)
#define ENCL_DBG_LN_RST (0x1caa)
#define P_ENCL_DBG_LN_RST (volatile unsigned int *)((0x1caa << 2) + 0xff900000)
#define ENCL_DBG_PX_INT (0x1cab)
#define P_ENCL_DBG_PX_INT (volatile unsigned int *)((0x1cab << 2) + 0xff900000)
#define ENCL_DBG_LN_INT (0x1cac)
#define P_ENCL_DBG_LN_INT (volatile unsigned int *)((0x1cac << 2) + 0xff900000)
//----------- Video Advanced setting
#define ENCL_VIDEO_YFP1_HTIME (0x1cad)
#define P_ENCL_VIDEO_YFP1_HTIME (volatile unsigned int *)((0x1cad << 2) + 0xff900000)
#define ENCL_VIDEO_YFP2_HTIME (0x1cae)
#define P_ENCL_VIDEO_YFP2_HTIME (volatile unsigned int *)((0x1cae << 2) + 0xff900000)
#define ENCL_VIDEO_YC_DLY (0x1caf)
#define P_ENCL_VIDEO_YC_DLY (volatile unsigned int *)((0x1caf << 2) + 0xff900000)
#define ENCL_VIDEO_MAX_PXCNT (0x1cb0)
#define P_ENCL_VIDEO_MAX_PXCNT (volatile unsigned int *)((0x1cb0 << 2) + 0xff900000)
#define ENCL_VIDEO_HAVON_END (0x1cb1)
#define P_ENCL_VIDEO_HAVON_END (volatile unsigned int *)((0x1cb1 << 2) + 0xff900000)
#define ENCL_VIDEO_HAVON_BEGIN (0x1cb2)
#define P_ENCL_VIDEO_HAVON_BEGIN (volatile unsigned int *)((0x1cb2 << 2) + 0xff900000)
#define ENCL_VIDEO_VAVON_ELINE (0x1cb3)
#define P_ENCL_VIDEO_VAVON_ELINE (volatile unsigned int *)((0x1cb3 << 2) + 0xff900000)
#define ENCL_VIDEO_VAVON_BLINE (0x1cb4)
#define P_ENCL_VIDEO_VAVON_BLINE (volatile unsigned int *)((0x1cb4 << 2) + 0xff900000)
#define ENCL_VIDEO_HSO_BEGIN (0x1cb5)
#define P_ENCL_VIDEO_HSO_BEGIN (volatile unsigned int *)((0x1cb5 << 2) + 0xff900000)
#define ENCL_VIDEO_HSO_END (0x1cb6)
#define P_ENCL_VIDEO_HSO_END (volatile unsigned int *)((0x1cb6 << 2) + 0xff900000)
#define ENCL_VIDEO_VSO_BEGIN (0x1cb7)
#define P_ENCL_VIDEO_VSO_BEGIN (volatile unsigned int *)((0x1cb7 << 2) + 0xff900000)
#define ENCL_VIDEO_VSO_END (0x1cb8)
#define P_ENCL_VIDEO_VSO_END (volatile unsigned int *)((0x1cb8 << 2) + 0xff900000)
#define ENCL_VIDEO_VSO_BLINE (0x1cb9)
#define P_ENCL_VIDEO_VSO_BLINE (volatile unsigned int *)((0x1cb9 << 2) + 0xff900000)
#define ENCL_VIDEO_VSO_ELINE (0x1cba)
#define P_ENCL_VIDEO_VSO_ELINE (volatile unsigned int *)((0x1cba << 2) + 0xff900000)
#define ENCL_VIDEO_MAX_LNCNT (0x1cbb)
#define P_ENCL_VIDEO_MAX_LNCNT (volatile unsigned int *)((0x1cbb << 2) + 0xff900000)
#define ENCL_VIDEO_BLANKY_VAL (0x1cbc)
#define P_ENCL_VIDEO_BLANKY_VAL (volatile unsigned int *)((0x1cbc << 2) + 0xff900000)
#define ENCL_VIDEO_BLANKPB_VAL (0x1cbd)
#define P_ENCL_VIDEO_BLANKPB_VAL (volatile unsigned int *)((0x1cbd << 2) + 0xff900000)
#define ENCL_VIDEO_BLANKPR_VAL (0x1cbe)
#define P_ENCL_VIDEO_BLANKPR_VAL (volatile unsigned int *)((0x1cbe << 2) + 0xff900000)
#define ENCL_VIDEO_HOFFST (0x1cbf)
#define P_ENCL_VIDEO_HOFFST (volatile unsigned int *)((0x1cbf << 2) + 0xff900000)
#define ENCL_VIDEO_VOFFST (0x1cc0)
#define P_ENCL_VIDEO_VOFFST (volatile unsigned int *)((0x1cc0 << 2) + 0xff900000)
#define ENCL_VIDEO_RGB_CTRL (0x1cc1)
#define P_ENCL_VIDEO_RGB_CTRL (volatile unsigned int *)((0x1cc1 << 2) + 0xff900000)
#define ENCL_VIDEO_FILT_CTRL (0x1cc2)
#define P_ENCL_VIDEO_FILT_CTRL (volatile unsigned int *)((0x1cc2 << 2) + 0xff900000)
#define ENCL_VIDEO_OFLD_VPEQ_OFST (0x1cc3)
#define P_ENCL_VIDEO_OFLD_VPEQ_OFST (volatile unsigned int *)((0x1cc3 << 2) + 0xff900000)
#define ENCL_VIDEO_OFLD_VOAV_OFST (0x1cc4)
#define P_ENCL_VIDEO_OFLD_VOAV_OFST (volatile unsigned int *)((0x1cc4 << 2) + 0xff900000)
#define ENCL_VIDEO_MATRIX_CB (0x1cc5)
#define P_ENCL_VIDEO_MATRIX_CB (volatile unsigned int *)((0x1cc5 << 2) + 0xff900000)
#define ENCL_VIDEO_MATRIX_CR (0x1cc6)
#define P_ENCL_VIDEO_MATRIX_CR (volatile unsigned int *)((0x1cc6 << 2) + 0xff900000)
#define ENCL_VIDEO_RGBIN_CTRL (0x1cc7)
#define P_ENCL_VIDEO_RGBIN_CTRL (volatile unsigned int *)((0x1cc7 << 2) + 0xff900000)
#define ENCL_MAX_LINE_SWITCH_POINT (0x1cc8)
#define P_ENCL_MAX_LINE_SWITCH_POINT (volatile unsigned int *)((0x1cc8 << 2) + 0xff900000)
#define ENCL_DACSEL_0 (0x1cc9)
#define P_ENCL_DACSEL_0 (volatile unsigned int *)((0x1cc9 << 2) + 0xff900000)
#define ENCL_DACSEL_1 (0x1cca)
#define P_ENCL_DACSEL_1 (volatile unsigned int *)((0x1cca << 2) + 0xff900000)
//
// Closing file: venc2_regs.h
//
//`define VPP_VCBUS_BASE 8'h1d
//
// Reading file: vpp_regs.h
//
// synopsys translate_off
// synopsys translate_on
// -----------------------------------------------
// CBUS_BASE: VPP_VCBUS_BASE = 0x1d
// -----------------------------------------------
//===========================================================================
// Video postprocesing Registers
//===========================================================================
// dummy data used in the VPP preblend and scaler
// Bit 23:16 Y
// Bit 15:8 CB
// Bit 7:0 CR
#define VPP_DUMMY_DATA (0x1d00)
#define P_VPP_DUMMY_DATA (volatile unsigned int *)((0x1d00 << 2) + 0xff900000)
//input line length used in VPP
#define VPP_LINE_IN_LENGTH (0x1d01)
#define P_VPP_LINE_IN_LENGTH (volatile unsigned int *)((0x1d01 << 2) + 0xff900000)
//input Picture height used in VPP
#define VPP_PIC_IN_HEIGHT (0x1d02)
#define P_VPP_PIC_IN_HEIGHT (volatile unsigned int *)((0x1d02 << 2) + 0xff900000)
//Because there are many coefficients used in the vertical filter and horizontal filters,
//indirect access the coefficients of vertical filter and horizontal filter is used.
//For vertical filter, there are 33x4 coefficients
//For horizontal filter, there are 33x4 coefficients
//Bit 15 index increment, if bit9 == 1 then (0: index increase 1, 1: index increase 2) else (index increase 2)
//Bit 14 1: read coef through cbus enable, just for debug purpose in case when we wanna check the coef in ram in correct or not
//Bit 13 if true, vertical separated coef enable
//Bit 9 if true, use 9bit resolution coef, other use 8bit resolution coef
//Bit 8:7 type of index, 00: vertical coef, 01: vertical chroma coef: 10: horizontal coef, 11: resevered
//Bit 6:0 coef index
#define VPP_SCALE_COEF_IDX (0x1d03)
#define P_VPP_SCALE_COEF_IDX (volatile unsigned int *)((0x1d03 << 2) + 0xff900000)
//coefficients for vertical filter and horizontal filter
#define VPP_SCALE_COEF (0x1d04)
#define P_VPP_SCALE_COEF (volatile unsigned int *)((0x1d04 << 2) + 0xff900000)
//these following registers are the absolute line address pointer for output divided screen
//The output divided screen is shown in the following:
//
// -------------------------- <------ line zero
// .
// .
// . region0 <---------- nonlinear region or nonscaling region
// .
// ---------------------------
// --------------------------- <------ region1_startp
// .
// . region1 <---------- nonlinear region
// .
// .
// ---------------------------
// --------------------------- <------ region2_startp
// .
// . region2 <---------- linear region
// .
// .
// ---------------------------
// --------------------------- <------ region3_startp
// .
// . region3 <---------- nonlinear region
// .
// .
// ---------------------------
// --------------------------- <------ region4_startp
// .
// . region4 <---------- nonlinear region or nonoscaling region
// .
// .
// --------------------------- <------ region4_endp
//Bit 28:16 region1 startp
//Bit 12:0 region2 startp
#define VPP_VSC_REGION12_STARTP (0x1d05)
#define P_VPP_VSC_REGION12_STARTP (volatile unsigned int *)((0x1d05 << 2) + 0xff900000)
//Bit 28:16 region3 startp
//Bit 12:0 region4 startp
#define VPP_VSC_REGION34_STARTP (0x1d06)
#define P_VPP_VSC_REGION34_STARTP (volatile unsigned int *)((0x1d06 << 2) + 0xff900000)
#define VPP_VSC_REGION4_ENDP (0x1d07)
#define P_VPP_VSC_REGION4_ENDP (volatile unsigned int *)((0x1d07 << 2) + 0xff900000)
//vertical start phase step, (source/dest)*(2^24)
//Bit 27:24 integer part
//Bit 23:0 fraction part
#define VPP_VSC_START_PHASE_STEP (0x1d08)
#define P_VPP_VSC_START_PHASE_STEP (volatile unsigned int *)((0x1d08 << 2) + 0xff900000)
//vertical scaler region0 phase slope, Bit24 signed bit
#define VPP_VSC_REGION0_PHASE_SLOPE (0x1d09)
#define P_VPP_VSC_REGION0_PHASE_SLOPE (volatile unsigned int *)((0x1d09 << 2) + 0xff900000)
//vertical scaler region1 phase slope, Bit24 signed bit
#define VPP_VSC_REGION1_PHASE_SLOPE (0x1d0a)
#define P_VPP_VSC_REGION1_PHASE_SLOPE (volatile unsigned int *)((0x1d0a << 2) + 0xff900000)
//vertical scaler region3 phase slope, Bit24 signed bit
#define VPP_VSC_REGION3_PHASE_SLOPE (0x1d0b)
#define P_VPP_VSC_REGION3_PHASE_SLOPE (volatile unsigned int *)((0x1d0b << 2) + 0xff900000)
//vertical scaler region4 phase slope, Bit24 signed bit
#define VPP_VSC_REGION4_PHASE_SLOPE (0x1d0c)
#define P_VPP_VSC_REGION4_PHASE_SLOPE (volatile unsigned int *)((0x1d0c << 2) + 0xff900000)
//Bit 18:17 double line mode, input/output line width of vscaler becomes 2X,
// so only 2 line buffer in this case, use for 3D line by line interleave scaling
// bit1 true, double the input width and half input height, bit0 true, change line buffer 2 lines instead of 4 lines
//Bit 16 0: progressive output, 1: interlace output
//Bit 15 vertical scaler output line0 in advance or not for bottom field
//Bit 14:13 vertical scaler initial repeat line0 number for bottom field
//Bit 11:8 vertical scaler initial receiving number for bottom field
//Bit 7 vertical scaler output line0 in advance or not for top field
//Bit 6:5 vertical scaler initial repeat line0 number for top field
//Bit 3:0 vertical scaler initial receiving number for top field
#define VPP_VSC_PHASE_CTRL (0x1d0d)
#define P_VPP_VSC_PHASE_CTRL (volatile unsigned int *)((0x1d0d << 2) + 0xff900000)
//Bit 31:16 vertical scaler field initial phase for bottom field
//Bit 15:0 vertical scaler field initial phase for top field
#define VPP_VSC_INI_PHASE (0x1d0e)
#define P_VPP_VSC_INI_PHASE (volatile unsigned int *)((0x1d0e << 2) + 0xff900000)
//Bit 28:16 region1 startp
//Bit 12:0 region2 startp
#define VPP_HSC_REGION12_STARTP (0x1d10)
#define P_VPP_HSC_REGION12_STARTP (volatile unsigned int *)((0x1d10 << 2) + 0xff900000)
//Bit 28:16 region3 startp
//Bit 12:0 region4 startp
#define VPP_HSC_REGION34_STARTP (0x1d11)
#define P_VPP_HSC_REGION34_STARTP (volatile unsigned int *)((0x1d11 << 2) + 0xff900000)
#define VPP_HSC_REGION4_ENDP (0x1d12)
#define P_VPP_HSC_REGION4_ENDP (volatile unsigned int *)((0x1d12 << 2) + 0xff900000)
//horizontal start phase step, (source/dest)*(2^24)
//Bit 27:24 integer part
//Bit 23:0 fraction part
#define VPP_HSC_START_PHASE_STEP (0x1d13)
#define P_VPP_HSC_START_PHASE_STEP (volatile unsigned int *)((0x1d13 << 2) + 0xff900000)
//horizontal scaler region0 phase slope, Bit24 signed bit
#define VPP_HSC_REGION0_PHASE_SLOPE (0x1d14)
#define P_VPP_HSC_REGION0_PHASE_SLOPE (volatile unsigned int *)((0x1d14 << 2) + 0xff900000)
//horizontal scaler region1 phase slope, Bit24 signed bit
#define VPP_HSC_REGION1_PHASE_SLOPE (0x1d15)
#define P_VPP_HSC_REGION1_PHASE_SLOPE (volatile unsigned int *)((0x1d15 << 2) + 0xff900000)
//horizontal scaler region3 phase slope, Bit24 signed bit
#define VPP_HSC_REGION3_PHASE_SLOPE (0x1d16)
#define P_VPP_HSC_REGION3_PHASE_SLOPE (volatile unsigned int *)((0x1d16 << 2) + 0xff900000)
//horizontal scaler region4 phase slope, Bit24 signed bit
#define VPP_HSC_REGION4_PHASE_SLOPE (0x1d17)
#define P_VPP_HSC_REGION4_PHASE_SLOPE (volatile unsigned int *)((0x1d17 << 2) + 0xff900000)
//Bit 22:21 horizontal scaler initial repeat pixel0 number0
//Bit 19:16 horizontal scaler initial receiving number0
//Bit 15:0 horizontal scaler top field initial phase0
#define VPP_HSC_PHASE_CTRL (0x1d18)
#define P_VPP_HSC_PHASE_CTRL (volatile unsigned int *)((0x1d18 << 2) + 0xff900000)
// Bit 22 if true, divide VSC line length 2 as the HSC input length, othwise VSC length length is the same as the VSC line length,
// just for special usage, more flexibility
// Bit 21 if true, prevsc uses lin buffer, otherwise prevsc does not use line buffer, it should be same as prevsc_en
// Bit 20 prehsc_en
// Bit 19 prevsc_en
// Bit 18 vsc_en
// Bit 17 hsc_en
// Bit 16 scale_top_en
// Bit 15 video1 scale out enable
// Bit 12 if true, region0,region4 are nonlinear regions, otherwise they are not scaling regions, for horizontal scaler
// Bit 10:8 horizontal scaler bank length
// Bit 5, vertical scaler phase field mode, if true, disable the opposite parity line output, more bandwith needed if output 1080i
// Bit 4 if true, region0,region4 are nonlinear regions, otherwise they are not scaling regions, for vertical scaler
// Bit 2:0 vertical scaler bank length
#define VPP_SC_MISC (0x1d19)
#define P_VPP_SC_MISC (volatile unsigned int *)((0x1d19 << 2) + 0xff900000)
// preblend video1 horizontal start and end
//Bit 28:16 start
//Bit 12:0 end
#define VPP_PREBLEND_VD1_H_START_END (0x1d1a)
#define P_VPP_PREBLEND_VD1_H_START_END (volatile unsigned int *)((0x1d1a << 2) + 0xff900000)
// preblend video1 vertical start and end
//Bit 28:16 start
//Bit 12:0 end
#define VPP_PREBLEND_VD1_V_START_END (0x1d1b)
#define P_VPP_PREBLEND_VD1_V_START_END (volatile unsigned int *)((0x1d1b << 2) + 0xff900000)
// postblend video1 horizontal start and end
//Bit 28:16 start
//Bit 12:0 end
#define VPP_POSTBLEND_VD1_H_START_END (0x1d1c)
#define P_VPP_POSTBLEND_VD1_H_START_END (volatile unsigned int *)((0x1d1c << 2) + 0xff900000)
// postblend video1 vertical start and end
//Bit 28:16 start
//Bit 12:0 end
#define VPP_POSTBLEND_VD1_V_START_END (0x1d1d)
#define P_VPP_POSTBLEND_VD1_V_START_END (volatile unsigned int *)((0x1d1d << 2) + 0xff900000)
// preblend/postblend video2 horizontal start and end
//Bit 28:16 start
//Bit 12:0 end
#define VPP_BLEND_VD2_H_START_END (0x1d1e)
#define P_VPP_BLEND_VD2_H_START_END (volatile unsigned int *)((0x1d1e << 2) + 0xff900000)
// preblend/postblend video2 vertical start and end
//Bit 28:16 start
//Bit 12:0 end
#define VPP_BLEND_VD2_V_START_END (0x1d1f)
#define P_VPP_BLEND_VD2_V_START_END (volatile unsigned int *)((0x1d1f << 2) + 0xff900000)
// preblend horizontal size
#define VPP_PREBLEND_H_SIZE (0x1d20)
#define P_VPP_PREBLEND_H_SIZE (volatile unsigned int *)((0x1d20 << 2) + 0xff900000)
// postblend horizontal size
#define VPP_POSTBLEND_H_SIZE (0x1d21)
#define P_VPP_POSTBLEND_H_SIZE (volatile unsigned int *)((0x1d21 << 2) + 0xff900000)
//VPP hold lines
//Bit 29:24
//Bit 21:16
//Bit 15:8 preblend hold lines
//Bit 7:0 postblend hold lines
#define VPP_HOLD_LINES (0x1d22)
#define P_VPP_HOLD_LINES (volatile unsigned int *)((0x1d22 << 2) + 0xff900000)
//Bit 26 if true, automatic change post blend output to one color if field ==1
//Bit 25 if true, change screen to one color value for preblender
//Bit 24 if true, change screen to one color value for postblender
// Bit 23:16 one color Y
// Bit 15:8 one color Cb
// Bit 7:0 one color Cr
#define VPP_BLEND_ONECOLOR_CTRL (0x1d23)
#define P_VPP_BLEND_ONECOLOR_CTRL (volatile unsigned int *)((0x1d23 << 2) + 0xff900000)
//Read Only, VPP preblend current_x, current_y
//Bit 28:16 current_x
//Bit 12:0 current_y
#define VPP_PREBLEND_CURRENT_XY (0x1d24)
#define P_VPP_PREBLEND_CURRENT_XY (volatile unsigned int *)((0x1d24 << 2) + 0xff900000)
//Read Only, VPP postblend current_x, current_y
//Bit 28:16 current_x
//Bit 12:0 current_y
#define VPP_POSTBLEND_CURRENT_XY (0x1d25)
#define P_VPP_POSTBLEND_CURRENT_XY (volatile unsigned int *)((0x1d25 << 2) + 0xff900000)
// Bit 31 vd1_bgosd_exchange_en for preblend
// Bit 30 vd1_bgosd_exchange_en for postblend
// Bit 28 color management enable
// Bit 27, if true, vd2 use viu2 output as the input, otherwise use normal vd2 from memory
// Bit 26:18, vd2 alpha
// Bit 17, osd2 enable for preblend
// Bit 16, osd1 enable for preblend
// Bit 15, vd2 enable for preblend
// Bit 14, vd1 enable for preblend
// Bit 13, osd2 enable for postblend
// Bit 12, osd1 enable for postblend
// Bit 11, vd2 enable for postblend
// Bit 10, vd1 enable for postblend
// Bit 9, if true, osd1 is alpha premultipiled
// Bit 8, if true, osd2 is alpha premultipiled
// Bit 7, postblend module enable
// Bit 6, preblend module enable
// Bit 5, if true, osd2 foreground compared with osd1 in preblend
// Bit 4, if true, osd2 foreground compared with osd1 in postblend
// Bit 3,
// Bit 2, if true, disable resetting async fifo every vsync, otherwise every vsync
// the aync fifo will be reseted.
// Bit 1,
// Bit 0 if true, the output result of VPP is saturated
#define VPP_MISC (0x1d26)
#define P_VPP_MISC (volatile unsigned int *)((0x1d26 << 2) + 0xff900000)
//Bit 31:20 ofifo line length minus 1
//Bit 19 if true invert input vs
//Bit 18 if true invert input hs
//Bit 17 force top/bottom field, enable
//Bit 16 force top/bottom field, 0: top, 1: bottom
//Bit 15 force one go_field, one pluse, write only
//Bit 14 force one go_line, one pluse, write only
//Bit 12:0 ofifo size (actually only bit 10:1 is valid), always even number
#define VPP_OFIFO_SIZE (0x1d27)
#define P_VPP_OFIFO_SIZE (volatile unsigned int *)((0x1d27 << 2) + 0xff900000)
//Read only
//Bit 28:18 current scale out fifo counter
//Bit 17:13 current afifo counter
//Bit 12:0 current ofifo counter
#define VPP_FIFO_STATUS (0x1d28)
#define P_VPP_FIFO_STATUS (volatile unsigned int *)((0x1d28 << 2) + 0xff900000)
// Bit 5 SMOKE3 postblend enable only when postblend vd2 is not enable
// Bit 4 SMOKE3 preblend enable only when preblend vd2 is not enable
// Bit 3 SMOKE2 postblend enable only when postblend osd2 is not enable
// Bit 2 SMOKE2 preblend enable only when preblend osd2 is not enable
// Bit 1 SMOKE1 postblend enable only when postblend osd1 is not enable
// Bit 0 SMOKE1 preblend enable only when preblend osd1 is not enable
#define VPP_SMOKE_CTRL (0x1d29)
#define P_VPP_SMOKE_CTRL (volatile unsigned int *)((0x1d29 << 2) + 0xff900000)
//smoke can be used only when that blending is disable and then be used as smoke function
//smoke1 for OSD1 chanel
//smoke2 for OSD2 chanel
//smoke3 for VD2 chanel
//31:24 Y
//23:16 Cb
//15:8 Cr
//7:0 Alpha
#define VPP_SMOKE1_VAL (0x1d2a)
#define P_VPP_SMOKE1_VAL (volatile unsigned int *)((0x1d2a << 2) + 0xff900000)
#define VPP_SMOKE2_VAL (0x1d2b)
#define P_VPP_SMOKE2_VAL (volatile unsigned int *)((0x1d2b << 2) + 0xff900000)
#define VPP_SMOKE3_VAL (0x1d2c)
#define P_VPP_SMOKE3_VAL (volatile unsigned int *)((0x1d2c << 2) + 0xff900000)
//Bit 28:16 start
//Bit 12:0 end
#define VPP_SMOKE1_H_START_END (0x1d2d)
#define P_VPP_SMOKE1_H_START_END (volatile unsigned int *)((0x1d2d << 2) + 0xff900000)
//Bit 28:16 start
//Bit 12:0 end
#define VPP_SMOKE1_V_START_END (0x1d2e)
#define P_VPP_SMOKE1_V_START_END (volatile unsigned int *)((0x1d2e << 2) + 0xff900000)
//Bit 28:16 start
//Bit 12:0 end
#define VPP_SMOKE2_H_START_END (0x1d2f)
#define P_VPP_SMOKE2_H_START_END (volatile unsigned int *)((0x1d2f << 2) + 0xff900000)
//Bit 28:16 start
//Bit 12:0 end
#define VPP_SMOKE2_V_START_END (0x1d30)
#define P_VPP_SMOKE2_V_START_END (volatile unsigned int *)((0x1d30 << 2) + 0xff900000)
//Bit 28:16 start
//Bit 12:0 end
#define VPP_SMOKE3_H_START_END (0x1d31)
#define P_VPP_SMOKE3_H_START_END (volatile unsigned int *)((0x1d31 << 2) + 0xff900000)
//Bit 28:16 start
//Bit 12:0 end
#define VPP_SMOKE3_V_START_END (0x1d32)
#define P_VPP_SMOKE3_V_START_END (volatile unsigned int *)((0x1d32 << 2) + 0xff900000)
//Bit 27:16 scale out fifo line length minus 1
//Bit 12:0 scale out fifo size (actually only bit 11:1 is valid, 11:1, max 1024), always even number
#define VPP_SCO_FIFO_CTRL (0x1d33)
#define P_VPP_SCO_FIFO_CTRL (volatile unsigned int *)((0x1d33 << 2) + 0xff900000)
//for 3D quincunx sub-sampling and horizontal pixel by pixel 3D interleaving
//Bit 27:24, 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 23 horizontal scaler double pixel mode
//Bit 22:21 horizontal scaler initial repeat pixel0 number1
//Bit 19:16 horizontal scaler initial receiving number1
//Bit 15:0 horizontal scaler top field initial phase1
#define VPP_HSC_PHASE_CTRL1 (0x1d34)
#define P_VPP_HSC_PHASE_CTRL1 (volatile unsigned int *)((0x1d34 << 2) + 0xff900000)
//for 3D quincunx sub-sampling
//31:24 prehsc pattern, each patten 1 bit, from lsb -> msb
//22:20 prehsc pattern start
//18:16 prehsc pattern end
//15:8 hsc pattern, each patten 1 bit, from lsb -> msb
//6:4 hsc pattern start
//2:0 hsc pattern end
#define VPP_HSC_INI_PAT_CTRL (0x1d35)
#define P_VPP_HSC_INI_PAT_CTRL (volatile unsigned int *)((0x1d35 << 2) + 0xff900000)
//Bit 3 minus black level enable for vadj2
//Bit 2 Video adjustment enable for vadj2
//Bit 1 minus black level enable for vadj1
//Bit 0 Video adjustment enable for vadj1
#define VPP_VADJ_CTRL (0x1d40)
#define P_VPP_VADJ_CTRL (volatile unsigned int *)((0x1d40 << 2) + 0xff900000)
//Bit 16:8 brightness, signed value
//Bit 7:0 contrast, unsigned value, contrast from 0 <= contrast <2
#define VPP_VADJ1_Y (0x1d41)
#define P_VPP_VADJ1_Y (volatile unsigned int *)((0x1d41 << 2) + 0xff900000)
//cb' = cb*ma + cr*mb
//cr' = cb*mc + cr*md
//all are bit 9:0, signed value, -2 < ma/mb/mc/md < 2
#define VPP_VADJ1_MA_MB (0x1d42)
#define P_VPP_VADJ1_MA_MB (volatile unsigned int *)((0x1d42 << 2) + 0xff900000)
#define VPP_VADJ1_MC_MD (0x1d43)
#define P_VPP_VADJ1_MC_MD (volatile unsigned int *)((0x1d43 << 2) + 0xff900000)
//Bit 16:8 brightness, signed value
//Bit 7:0 contrast, unsigned value, contrast from 0 <= contrast <2
#define VPP_VADJ2_Y (0x1d44)
#define P_VPP_VADJ2_Y (volatile unsigned int *)((0x1d44 << 2) + 0xff900000)
//cb' = cb*ma + cr*mb
//cr' = cb*mc + cr*md
//all are bit 9:0, signed value, -2 < ma/mb/mc/md < 2
#define VPP_VADJ2_MA_MB (0x1d45)
#define P_VPP_VADJ2_MA_MB (volatile unsigned int *)((0x1d45 << 2) + 0xff900000)
#define VPP_VADJ2_MC_MD (0x1d46)
#define P_VPP_VADJ2_MC_MD (volatile unsigned int *)((0x1d46 << 2) + 0xff900000)
//Bit 2 horizontal chroma sharp/blur selection, 0:sharp, 1: blur
//Bit 1 horizontal luma sharp/blur selection, 0:sharp, 1: blur
//Bit 0 horizontal sharpness enable
#define VPP_HSHARP_CTRL (0x1d50)
#define P_VPP_HSHARP_CTRL (volatile unsigned int *)((0x1d50 << 2) + 0xff900000)
//{1'b0,threhsold} < diff
//Bit 26:16 luma threshold0
//Bit 10:0 luma threshold1
#define VPP_HSHARP_LUMA_THRESH01 (0x1d51)
#define P_VPP_HSHARP_LUMA_THRESH01 (volatile unsigned int *)((0x1d51 << 2) + 0xff900000)
//
//Bit 26:16 luma threshold2
//Bit 10:0 luma threshold3
#define VPP_HSHARP_LUMA_THRESH23 (0x1d52)
#define P_VPP_HSHARP_LUMA_THRESH23 (volatile unsigned int *)((0x1d52 << 2) + 0xff900000)
//Bit 26:16 chroma threshold0
//Bit 10:0 chroma threshold1
#define VPP_HSHARP_CHROMA_THRESH01 (0x1d53)
#define P_VPP_HSHARP_CHROMA_THRESH01 (volatile unsigned int *)((0x1d53 << 2) + 0xff900000)
//Bit 26:16 chroma threshold2
//Bit 10:0 chroma threshold3
#define VPP_HSHARP_CHROMA_THRESH23 (0x1d54)
#define P_VPP_HSHARP_CHROMA_THRESH23 (volatile unsigned int *)((0x1d54 << 2) + 0xff900000)
//Bit 23:16 luma gain2
//Bit 15:8 luma gain1
//Bit 7:0 luma gain0
#define VPP_HSHARP_LUMA_GAIN (0x1d55)
#define P_VPP_HSHARP_LUMA_GAIN (volatile unsigned int *)((0x1d55 << 2) + 0xff900000)
//
//Bit 23:16 chroma gain2
//Bit 15:8 chroma gain1
//Bit 7:0 chroma gain0
#define VPP_HSHARP_CHROMA_GAIN (0x1d56)
#define P_VPP_HSHARP_CHROMA_GAIN (volatile unsigned int *)((0x1d56 << 2) + 0xff900000)
//Read only
//Bit 31, if it is true, it means this probe is valid in the last field/frame
//Bit 29:20 component 0
//Bit 19:10 component 1
//Bit 9:0 component 2
#define VPP_MATRIX_PROBE_COLOR (0x1d5c)
#define P_VPP_MATRIX_PROBE_COLOR (volatile unsigned int *)((0x1d5c << 2) + 0xff900000)
#define VPP_MATRIX_PROBE_COLOR1 (0x1dd7)
#define P_VPP_MATRIX_PROBE_COLOR1 (volatile unsigned int *)((0x1dd7 << 2) + 0xff900000)
//Bit 23:16 component 0
//Bit 15:8 component 1
//Bit 7:0 component 2
#define VPP_MATRIX_HL_COLOR (0x1d5d)
#define P_VPP_MATRIX_HL_COLOR (volatile unsigned int *)((0x1d5d << 2) + 0xff900000)
//28:16 probe x, postion
//12:0 probe y, position
#define VPP_MATRIX_PROBE_POS (0x1d5e)
#define P_VPP_MATRIX_PROBE_POS (volatile unsigned int *)((0x1d5e << 2) + 0xff900000)
//Bit 16, highlight_en
//Bit 15 probe_post, if true, probe pixel data after matrix, otherwise probe pixel data before matrix
//Bit 14:12 probe_sel, 000: select post matrix, 001: select vd1 matrix, 010: select vd2 matrix
//Bit 9:8 matrix coef idx selection, 00: select post matrix, 01: select vd1 matrix, 10: select vd2 matrix
//Bit 5 vd1 conversion matrix enable
//Bit 4 vd2 conversion matrix enable
//Bit 2 output y/cb/cr saturation enable, only for post matrix (y saturate to 16-235, cb/cr saturate to 16-240)
//Bit 1 input y/cb/cr saturation enable, only for post matrix (y saturate to 16-235, cb/cr saturate to 16-240)
//Bit 0 post conversion matrix enable
#define VPP_MATRIX_CTRL (0x1d5f)
#define P_VPP_MATRIX_CTRL (volatile unsigned int *)((0x1d5f << 2) + 0xff900000)
//Bit 28:16 coef00
//Bit 12:0 coef01
#define VPP_MATRIX_COEF00_01 (0x1d60)
#define P_VPP_MATRIX_COEF00_01 (volatile unsigned int *)((0x1d60 << 2) + 0xff900000)
//Bit 28:16 coef02
//Bit 12:0 coef10
#define VPP_MATRIX_COEF02_10 (0x1d61)
#define P_VPP_MATRIX_COEF02_10 (volatile unsigned int *)((0x1d61 << 2) + 0xff900000)
//Bit 28:16 coef11
//Bit 12:0 coef12
#define VPP_MATRIX_COEF11_12 (0x1d62)
#define P_VPP_MATRIX_COEF11_12 (volatile unsigned int *)((0x1d62 << 2) + 0xff900000)
//Bit 28:16 coef20
//Bit 12:0 coef21
#define VPP_MATRIX_COEF20_21 (0x1d63)
#define P_VPP_MATRIX_COEF20_21 (volatile unsigned int *)((0x1d63 << 2) + 0xff900000)
#define VPP_MATRIX_COEF22 (0x1d64)
#define P_VPP_MATRIX_COEF22 (volatile unsigned int *)((0x1d64 << 2) + 0xff900000)
//Bit 26:16 offset0
//Bit 10:0 offset1
#define VPP_MATRIX_OFFSET0_1 (0x1d65)
#define P_VPP_MATRIX_OFFSET0_1 (volatile unsigned int *)((0x1d65 << 2) + 0xff900000)
//Bit 10:0 offset2
#define VPP_MATRIX_OFFSET2 (0x1d66)
#define P_VPP_MATRIX_OFFSET2 (volatile unsigned int *)((0x1d66 << 2) + 0xff900000)
//Bit 26:16 pre_offset0
//Bit 10:0 pre_offset1
#define VPP_MATRIX_PRE_OFFSET0_1 (0x1d67)
#define P_VPP_MATRIX_PRE_OFFSET0_1 (volatile unsigned int *)((0x1d67 << 2) + 0xff900000)
//Bit 10:0 pre_offset2
#define VPP_MATRIX_PRE_OFFSET2 (0x1d68)
#define P_VPP_MATRIX_PRE_OFFSET2 (volatile unsigned int *)((0x1d68 << 2) + 0xff900000)
// dummy data used in the VPP postblend
// Bit 23:16 Y
// Bit 15:8 CB
// Bit 7:0 CR
#define VPP_DUMMY_DATA1 (0x1d69)
#define P_VPP_DUMMY_DATA1 (volatile unsigned int *)((0x1d69 << 2) + 0xff900000)
//Bit 31 gainoff module enable
//Bit 26:16 gain0, 1.10 unsigned data
//Bit 10:0 gain1, 1.10 unsigned dat
#define VPP_GAINOFF_CTRL0 (0x1d6a)
#define P_VPP_GAINOFF_CTRL0 (volatile unsigned int *)((0x1d6a << 2) + 0xff900000)
//Bit 26:16 gain2, 1.10 unsigned data
//Bit 10:0, offset0, signed data
#define VPP_GAINOFF_CTRL1 (0x1d6b)
#define P_VPP_GAINOFF_CTRL1 (volatile unsigned int *)((0x1d6b << 2) + 0xff900000)
//Bit 26:16, offset1, signed data
//Bit 10:0, offset2, signed data
#define VPP_GAINOFF_CTRL2 (0x1d6c)
#define P_VPP_GAINOFF_CTRL2 (volatile unsigned int *)((0x1d6c << 2) + 0xff900000)
//Bit 26:16, pre_offset0, signed data
//Bit 10:0, pre_offset1, signed data
#define VPP_GAINOFF_CTRL3 (0x1d6d)
#define P_VPP_GAINOFF_CTRL3 (volatile unsigned int *)((0x1d6d << 2) + 0xff900000)
//Bit 10:0, pre_offset2, signed data
#define VPP_GAINOFF_CTRL4 (0x1d6e)
#define P_VPP_GAINOFF_CTRL4 (volatile unsigned int *)((0x1d6e << 2) + 0xff900000)
//only two registers used in the color management, which are defined in the chroma_reg.h
//`define VPP_CHROMA_ADDR_PORT 8'h70
//`define VPP_CHROMA_DATA_PORT 8'h71
//
// Reading file: chroma_reg.h
//
//**********************************************************************************
//* Copyright (c) 2008, AMLOGIC Inc.
//* All rights reserved
//**********************************************************************************
//* File : chroma_reg.v
//* Author : Terrence Wang
//* Date : Dec 2008
//* Description :
//*
//**********************************************************************************
//* Modification History:
//* Date Modified By Reason
//**********************************************************************************
// synopsys translate_off
// synopsys translate_on
#define VPP_CHROMA_ADDR_PORT (0x1d70)
#define P_VPP_CHROMA_ADDR_PORT (volatile unsigned int *)((0x1d70 << 2) + 0xff900000)
#define VPP_CHROMA_DATA_PORT (0x1d71)
#define P_VPP_CHROMA_DATA_PORT (volatile unsigned int *)((0x1d71 << 2) + 0xff900000)
//`define CHROMA_ADDR_PORT 8'h67
//`define CHROMA_DATA_PORT 8'h68
// CHROMA_GAIN_REG_XX(00-07)
// hue gain, sat gain function control
// Bit 31 reg_sat_en enable sat adjustment in current region
// Bit 27 reg_sat_increase sat adjustment increase or decrease
// 1'b1: increase 1'b0: decrease
// Bit 26:25 reg_sat_central_en sat adjustment with central biggest or one side biggest
// 2'b01 central biggest 2'b00 one side biggest
// Bit 24 reg_sat_shape when sat adjustment one side biggest, define left or right
// 1'b1: left side biggest 1'b0 right side biggest
// Bit 23:16 reg_sat_gain define the sat gain when sat adjustment
// 0x00-0xff
// Bit 15 reg_hue_en enable hue adjustment in current region
// Bit 11 reg_hue_clockwise hue adjustment clockwise or anti-clockwise
// 1'b1: clockwise 1'b0: anti-clockwise
// Bit 10:9 reg_hue_central_en when hue adjustment, parabola curve or non-symmetry curve
// 1'b1: parabola curve 1'b0: non-symmetry curve
// Bit 8 reg_hue_shape when non-symmetry curve, define which side change more
// 1'b1: right side change more 1'b0: left side change more
// Bit 7:0 reg_hue_gain define the hue gain when hue adjustment
// 0x00-0x80, note: should be no bigger than 0x80
#define CHROMA_GAIN_REG00 0x00
// HUE_HUE_RANGE_REG_XX(00-07)
// hue range select
// Bit 31:24 no use now
// Bit 23:16 reg_hue_shift_range define the angle of target region
// 0x00-0xff,(0x100 means 120 degree though it can not be set)
// must be greater or equal than 8'd8
// Bit 15 reg_symmetry_en this is used for create one symmetry region
// the symmetry region hue_shift_start = reg_hue_hue_shift_start + reg_hue_shift_range<<5
// the symmetry region hue_shift_range = reg_hue_shift_range
// in symmetry region, all the sat and hue setting will be same with original region,
// except reg_hue_shape, reg_sat_shape, reg_hue_clockwise will be reversed
// Bit 14:0 reg_hue_hue_shift_start define the start angle of target region
// 0x6000 means 360 degree
// only region 0 and 1 can exceed 360 degrees.
#define HUE_HUE_RANGE_REG00 0x01
// HUE_RANGE_INV_REG_XX
// Calculation should be follow
// HUE_RANGE_INV_REG0X[15:0] = ((1<<20)/HUE_HUE_RANGE_REG0X[23:16]+1)>>1
// HUE_RANGE_INV_REG_XX is to used to save divider
#define HUE_RANGE_INV_REG00 0x02
// for belowing each low, high, low_slope, high_slope group:
// a_____________b
// / \ a = low + 2^low_slope
// / \ b = high - 2^high_slope
// / \ low_slope <= 7; high_slope <= 7
// / \ b >= a
// ______/_____________________\________
// low high
//
//
// HUE_LUM_RANGE_REG_XX(00-07)
// luma range selection for hue adjustment
// Bit 31:24 reg_sat_lum_low define the low level of luma value for sat adjustment
// 0x00-0xff
// Bit 23:20 reg_hue_lum_high_slope define the slope area below high level of luma value for hue adjustment
// 0x00-0x07
// Bit 19:16 reg_hue_lum_low_slope define the slope area above low level of luma value for hue adjustment
// 0x00-0x07
// Bit 15:8 reg_hue_lum_high define the high level of luma value for hue adjustment
// 0x00-0xff
// Bit 7:0 reg_hue_lum_low define the low level of luma value for hue adjustment
// 0x00-0xff
#define HUE_LUM_RANGE_REG00 0x03
// HUE_SAT_RANGE_REG_XX(00-07)
// sat range selection for hue adjustment
// Bit 31:24 reg_sat_lum_high define the high level of luma value for sat adjustment
// 0x00-0xff
// Bit 23:20 reg_hue_sat_high_slope define the slope area below high level of sat value for hue adjustment
// 0x00-0x07
// Bit 19:16 reg_hue_sat_low_slope define the slope area above low level of sat value for hue adjustment
// 0x00-0x07
// Bit 15:8 reg_hue_sat_high define the high level of sat value for hue adjustment
// 0x00-0xff
// Bit 7:0 reg_hue_sat_low define the low level of sat value for hue adjustment
// 0x00-0xff
#define HUE_SAT_RANGE_REG00 0x04
// SAT_SAT_RANGE_REG_XX(00-07)
// sat range selection for hue adjustment
// Bit 31:28 reg_sat_lum_high_slope define the slope area below high level of luma value for sat adjustment
// 0x00-0x07
// Bit 27:24 reg_sat_lum_low_slope define the slope area above low level of luma value for sat adjustment
// 0x00-0x07
// Bit 23:20 reg_sat_sat_high_slope define the slope area below high level of sat value for sat adjustment
// 0x00-0x07
// Bit 19:16 reg_sat_sat_low_slope define the slope area above low level of sat value for sat adjustment
// 0x00-0x07
// Bit 15:8 reg_sat_sat_high define the high level of sat value for sat adjustment
// 0x00-0xff
// Bit 7:0 reg_sat_sat_low define the low level of sat value for sat adjustment
// 0x00-0xff
#define SAT_SAT_RANGE_REG00 0x05
#define CHROMA_GAIN_REG01 0x06
#define HUE_HUE_RANGE_REG01 0x07
#define HUE_RANGE_INV_REG01 0x08
#define HUE_LUM_RANGE_REG01 0x09
#define HUE_SAT_RANGE_REG01 0x0a
#define SAT_SAT_RANGE_REG01 0x0b
#define CHROMA_GAIN_REG02 0x0c
#define HUE_HUE_RANGE_REG02 0x0d
#define HUE_RANGE_INV_REG02 0x0e
#define HUE_LUM_RANGE_REG02 0x0f
#define HUE_SAT_RANGE_REG02 0x10
#define SAT_SAT_RANGE_REG02 0x11
#define CHROMA_GAIN_REG03 0x12
#define HUE_HUE_RANGE_REG03 0x13
#define HUE_RANGE_INV_REG03 0x14
#define HUE_LUM_RANGE_REG03 0x15
#define HUE_SAT_RANGE_REG03 0x16
#define SAT_SAT_RANGE_REG03 0x17
#define CHROMA_GAIN_REG04 0x18
#define HUE_HUE_RANGE_REG04 0x19
#define HUE_RANGE_INV_REG04 0x1a
#define HUE_LUM_RANGE_REG04 0x1b
#define HUE_SAT_RANGE_REG04 0x1c
#define SAT_SAT_RANGE_REG04 0x1d
#define CHROMA_GAIN_REG05 0x1e
#define HUE_HUE_RANGE_REG05 0x1f
#define HUE_RANGE_INV_REG05 0x20
#define HUE_LUM_RANGE_REG05 0x21
#define HUE_SAT_RANGE_REG05 0x22
#define SAT_SAT_RANGE_REG05 0x23
#define CHROMA_GAIN_REG06 0x24
#define HUE_HUE_RANGE_REG06 0x25
#define HUE_RANGE_INV_REG06 0x26
#define HUE_LUM_RANGE_REG06 0x27
#define HUE_SAT_RANGE_REG06 0x28
#define SAT_SAT_RANGE_REG06 0x29
#define CHROMA_GAIN_REG07 0x2a
#define HUE_HUE_RANGE_REG07 0x2b
#define HUE_RANGE_INV_REG07 0x2c
#define HUE_LUM_RANGE_REG07 0x2d
#define HUE_SAT_RANGE_REG07 0x2e
#define SAT_SAT_RANGE_REG07 0x2f
// REG_CHROMA_CONTROL
// Bit 31 reg_chroma_en enable color manage function
// 1'b1: enable 1'b0: bypass
// Bit 6 sat_sel uv_max or u^2+v^2 selected as sat for reference
// 1'b1: uv_max(default) 1'b0: u^2+v^2
// Bit 5 uv_adj_en final uv_adjust enable
// 1'b1: enable 1'b0: bypass
// Bit 2 hue_en rgb to hue enable
// 1'b1: enable(default) 1'b0: bypass
// Bit 1:0 csc_sel define input YUV with different color type
// 2'b00: 601(16-235) 2'b01: 709(16-235)
// 2'b10: 601(0-255) 2'b11: 709(0-255)
#define REG_CHROMA_CONTROL 0x30 // default 32h'80000024
#define REG_DEMO_CENTER_BAR 0x31 // default 32h'0
#define REG_DEMO_HLIGHT_MODE 0x32 // default 32h'0
#define REG_DEMO_OWR_DATA 0x33 // default 32h'0
////===========================================////
//// CM2 ADDR
////===========================================////
#define SAT_BYYB_NODE_REG0 0x200 // default 32'h0
//Bit 31:24, sat_byyb_node3 the 4th node
//Bit 23:16, sat_byyb_node2 the 3th node
//Bit 15: 8, sat_byyb_node1 signed, the 2th node about saturation
//Bit 7: 0, sat_byyb_node0 signed, the 1th node about saturation
//gain offset along y coordinate,the gain normalized to 128 as "1"
#define SAT_BYYB_NODE_REG1 0x201 // default 32'h0
//Bit 31:24, sat_byyb_node7 the 8th node
//Bit 23:16, sat_byyb_node6 the 7th node
//Bit 15: 8, sat_byyb_node5 signed, the 6th node about saturation
//Bit 7: 0, sat_byyb_node4 signed, the 5th node about saturation
//gain offset along y coordinate,the gain normalized to 128 as "1"
#define SAT_BYYB_NODE_REG2 0x202 // default 32'h0
//Bit 31: 8, reserved
//Bit 7: 0, sat_byyb_node4 signed, the 5th node about saturation
#define SAT_SRC_NODE_REG 0x203 // default 32'h0
//Bit 31:28, reserved
//Bit 27:16, sat_src_node1
//Bit 15:12, reserved
//Bit 11: 0, sat_src_node0 usigned, threshold of input saturation for first and second piece
#define CM_ENH_SFT_MODE_REG 0x204 // default 32'h0
//Bit 31: 9, reserved
//Bit 8: 6, hue_lsft_mode hue offset adjustments scale
//Bit 5: 4, luma_lsft_mode luma offset adjustments scale for reg_cm2_adj_luma_via_hue
//Bit 3: 2, sat_byy_rsft_mode saturation gain adjustments scale for reg_cm2_adj_sat_via_y
//Bit 1: 0, sat_byhs_rsft_mode saturation gain adjustments scale for reg_cm2_adj_sat_via_hs[:][:] 0:no scale up/down 1:dnscale by 2(-128,127)/2
#define FRM_SIZE_REG 0x205 // default 32'h0
//Bit 31:29, reserved
//Bit 28:16, reg_frm_height the frame height size
//Bit 15:13, reserved
//Bit 12: 0, reg_frm_width the frame width size
#define FITLER_CFG_REG 0x206 // default 32'h0
//Bit 31: 5, reserved
//Bit 4: 4, inteleav_mod horizontal interleave filter(zero-padding) for 3D considerations 0:using non-zero padding lpf 1:using zero-padding lpf
//Bit 3: 2, lpf_slt_uv apply cm on lp portion or original video pixels options
//Bit 1: 0, lpf_slt_y apply cm on lp portion or original video pixels options
#define CM_GLOBAL_GAIN_REG 0x207 // default 32'h0
//Bit 31:28, reserved
//Bit 27:16, cm2_global_sat global saturation gain for general color adjustments(0~4095 <=> 0~8),512 normalized to "1"
//Bit 15:12, reserved
//Bit 11: 0, cm2_global_hue global hue offsets for general color adjustments(0~4095 <=> 0~360 degree)
#define CM_ENH_CTL_REG 0x208 // default 32'h0
//Bit 31:7, reserved
//Bit 6, hue_adj_en cm2 hue adjustments
//Bit 5, sat_adj_en cm2 saturation adjustments
//Bit 4, luma_adj_en enable siganl for cm2 luma adjustments
//Bit 3, reserved
//Bit 2, cm2_filt_en apply cm on lp portion enable
//Bit 1, cm2_en cm2 enable siganl
//Bit 0, cm1_en
#define ROI_X_SCOPE_REG 0x209 // default 32'h0
//Bit 31:29, reserved
//Bit 28:16, roi_x_end ending col index of the region of interest
//Bit 15:13, reserved
//Bit 12: 0, roi_x_beg start col index of the region of interest
#define ROI_Y_SCOPE_REG 0x20a // default 32'h0
//Bit 31:29, reserved
//Bit 28:16, roi_y_end ending row index of the region of interest
//Bit 15:13, reserved
//Bit 12: 0, roi_y_beg start row index of the region of interest
#define POI_XY_DIR_REG 0x20b // default 32'h0
//Bit 31:29, reserved
//Bit 28:16, poi_y_dir ending row index of the region of interest
//Bit 15:13, reserved
//Bit 12: 0, poi_x_dir start row index of the region of interest
#define COI_Y_SCOPE_REG 0x20c // default 32'h0
//Bit 31:16, reserved
//Bit 15: 8, coi_y_end
//Bit 7: 0, coi_y_beg
#define COI_H_SCOPE_REG 0x20d // default 32'h0
//Bit 31:28, reserved
//Bit 27:16, coi_h_end
//Bit 15:12, reserved
//Bit 11: 0, coi_h_beg lower bound of hue value for color of interest ,12 bits precision
#define COI_S_SCOPE_REG 0x20e // default 32'h0
//Bit 31:28, reserved
//Bit 27:16, coi_s_end
//Bit 15:12, reserved
//Bit 11: 0, coi_s_beg lower bound of sat value for color of interest ,12 bits precision
#define IFO_MODE_REG 0x20f // default 32'h0
//Bit 31:8, reserved
//Bit 7:6, ifo_mode3
//Bit 5:4, ifo_mode2
//Bit 3:2, ifo_mode1
//Bit 1:0, ifo_mode0
#define POI_RPL_MODE_REG 0x210 // default 32'h0
//Bit 31:4, reserved
//Bit 3:0, poi_rpl_mode enhance mode control of pixels inside and outside region of interest bit[3:2]control roi
#define DEMO_OWR_YHS_REG 0x211 // default 32'h0
//Bit 31: 0, demo_owr_yhs
#define DEMO_POI_Y_REG 0x212 // default 32'h0
//Bit 31: 8, reserved
//Bit 7: 0, luma_data_poi_r only get locked higher 8bits
#define DEMO_POI_H_REG 0x213 // default 32'h0
//Bit 31: 12, reserved
//Bit 11: 0, hue_data_poi_r only get locked higher 12bits
#define DEMO_POI_S_REG 0x214 // default 32'h0
//Bit 31: 12, reserved
//Bit 11: 0, sat_data_poi_r only get locked higher 12bits
//#define LUMA_BYH_LIMT_REG 0x215 // default 32'h0
#define LUMA_ADJ_LIMT_REG 0x215 // default 32'h0
//Bit 31:24, reserved
//Bit 23:16, luma_lmt_satslp slope to do the luma adjustment degrade
//Bit 15:12, reserved
//Bit 11:0, luma_lmt_satth threshold to saturation
#define SAT_ADJ_LIMT_REG 0x216 // default 32'h0
//Bit 31:24, reserved
//Bit 23:16, sat_lmt_satslp slope to do the adjustment degrade
//Bit 15:12, reserved
//Bit 11:0, sat_lmt_satth threshold to saturation
#define HUE_ADJ_LIMT_REG 0x217 // default 32'h0
//Bit 31: 24, reserved
//Bit 23: 16, hue_lmt_satslp slope to do the adjustment degrade
//Bit 15: 12, reserved
//Bit 11: 0, hue_lmt_satth threshold to saturation
#define UVHS_OFST_REG 0x218 // default 32'h0
//Bit 31: 24, hs2uv_v_ofst
//Bit 23: 16, hs2uv_u_ofst
//Bit 15: 8, uv2hs_v_ofst
//Bit 7: 0, uv2hs_u_ofst
#define HUE_CFG_PARA_REG 0x219 // default 32'h0
//Bit 31: 17, reserved
//Bit 16, hue_protect_en
//Bit 15: 13, cm2_hue_byhs_mode
//Bit 12, cm2_hue_div_mode
//Bit 11: 0, cm2_before_hue_ofst
#define DEMO_SPLT_CFG_REG 0x21a // default 32'h0
//Bit 31: 22, reserved
//Bit 21: 20, demo_split_mode
//Bit 19: 16, demo_split_width slope to do the adjustment degrade
//Bit 15: 13, reserved
//Bit 12: 0, demo_split_post threshold to saturation
#define DEMO_SPLT_YHS_REG 0x21b // default 32'h0
//Bit 31: 0, demo_splt_yhs threshold to saturation
#define XVYCC_YSCP_REG 0x21c // default 32'h0
//Bit 31: 28, reserved
//Bit 27: 16, xvycc_y_max
//Bit 15: 12, reserved
//Bit 11: 0, xvycc_y_min
#define XVYCC_USCP_REG 0x21d // default 32'h0
//Bit 31: 28, reserved
//Bit 27: 16, xvycc_u_max
//Bit 15: 12, reserved
//Bit 11: 0, xvycc_u_min
#define XVYCC_VSCP_REG 0x21e // default 32'h0
//Bit 31: 28, reserved
//Bit 27: 16, xvycc_v_max
//Bit 15: 12, reserved
//Bit 11: 0, xvycc_v_min
////========= NODE 0 COEFFICIENT ==============////
#define REG_CM2_ENH_COEFF0_H00 0x100 // default 32'H0
//Bit 31: 24, reg_cm2_adj_sat_via_hs_2
//Bit 23: 16, reg_cm2_adj_sat_via_hs_1
//Bit 15: 8, reg_cm2_adj_sat_via_hs_0
//Bit 7: 0, reg_cm2_adj_luma_via_h
// [ 7: 0] : luma_byh_hx / [15: 8] : sat_byhs_s0hx
// [23:16] : sat_byhs_s0hx / [31:24] : sat_byhs_s2hx
#define REG_CM2_ENH_COEFF1_H00 0x101 // default 32'H0
// [ 7: 0] : hue_byh_hx / [15: 8] : hue_byy_y0hx
// [23:16] : hue_byy_y1hx / [31:24] : hue_byy_y2hx
#define REG_CM2_ENH_COEFF2_H00 0x102 // default 32'H0
// [ 7: 0] : hue_byy_y3hx / [15: 8] : hue_byy_y4hx
// [23:16] : hue_bys_s0hx / [31:24] : hue_bys_s1hx
#define REG_CM2_ENH_COEFF3_H00 0x103 // default 32'H0
// [ 7: 0] : hue_bys_s2hx / [15: 8] : hue_bys_s3hx
// [23:16] : hue_bys_s4hx / [31:24] : hue_byya_y0hx
#define REG_CM2_ENH_COEFF4_H00 0x104 // default 32'H0
// [ 7: 0] : hue_byya_y1hx / [15: 8] : hue_byya_y2hx
// [23:16] : hue_byya_y3hx / [31:24] : hue_byya_y4hx
////========= NODE 1 COEFFICIENT ==============////
#define REG_CM2_ENH_COEFF0_H01 0x108 // default 32'H0
// [ 7: 0] : luma_byh_hx / [15: 8] : sat_byhs_s0hx
// [23:16] : sat_byhs_s0hx / [31:24] : sat_byhs_s2hx
#define REG_CM2_ENH_COEFF1_H01 0x109 // default 32'H0
// [ 7: 0] : hue_byh_hx / [15: 8] : hue_byy_y0hx
// [23:16] : hue_byy_y1hx / [31:24] : hue_byy_y2hx
#define REG_CM2_ENH_COEFF2_H01 0x10a // default 32'H0
// [ 7: 0] : hue_byy_y3hx / [15: 8] : hue_byy_y4hx
// [23:16] : hue_bys_s0hx / [31:24] : hue_bys_s1hx
#define REG_CM2_ENH_COEFF3_H01 0x10b // default 32'H0
// [ 7: 0] : hue_bys_s2hx / [15: 8] : hue_bys_s3hx
// [23:16] : hue_bys_s4hx / [31:24] : hue_byya_y0hx
#define REG_CM2_ENH_COEFF4_H01 0x10c // default 32'H0
// [ 7: 0] : hue_byya_y1hx / [15: 8] : hue_byya_y2hx
// [23:16] : hue_byya_y3hx / [31:24] : hue_byya_y4hx
////========= NODE 2 COEFFICIENT ==============////
#define REG_CM2_ENH_COEFF0_H02 0x110 // default 32'H0
// [ 7: 0] : luma_byh_hx / [15: 8] : sat_byhs_s0hx
// [23:16] : sat_byhs_s0hx / [31:24] : sat_byhs_s2hx
#define REG_CM2_ENH_COEFF1_H02 0x111 // default 32'H0
// [ 7: 0] : hue_byh_hx / [15: 8] : hue_byy_y0hx
// [23:16] : hue_byy_y1hx / [31:24] : hue_byy_y2hx
#define REG_CM2_ENH_COEFF2_H02 0x112 // default 32'H0
// [ 7: 0] : hue_byy_y3hx / [15: 8] : hue_byy_y4hx
// [23:16] : hue_bys_s0hx / [31:24] : hue_bys_s1hx
#define REG_CM2_ENH_COEFF3_H02 0x113 // default 32'H0
// [ 7: 0] : hue_bys_s2hx / [15: 8] : hue_bys_s3hx
// [23:16] : hue_bys_s4hx / [31:24] : hue_byya_y0hx
#define REG_CM2_ENH_COEFF4_H02 0x114 // default 32'H0
// [ 7: 0] : hue_byya_y1hx / [15: 8] : hue_byya_y2hx
// [23:16] : hue_byya_y3hx / [31:24] : hue_byya_y4hx
////========= NODE 3 COEFFICIENT ==============////
#define REG_CM2_ENH_COEFF0_H03 0x118 // default 32'H0
// [ 7: 0] : luma_byh_hx / [15: 8] : sat_byhs_s0hx
// [23:16] : sat_byhs_s0hx / [31:24] : sat_byhs_s2hx
#define REG_CM2_ENH_COEFF1_H03 0x119 // default 32'H0
// [ 7: 0] : hue_byh_hx / [15: 8] : hue_byy_y0hx
// [23:16] : hue_byy_y1hx / [31:24] : hue_byy_y2hx
#define REG_CM2_ENH_COEFF2_H03 0x11a // default 32'H0
// [ 7: 0] : hue_byy_y3hx / [15: 8] : hue_byy_y4hx
// [23:16] : hue_bys_s0hx / [31:24] : hue_bys_s1hx
#define REG_CM2_ENH_COEFF3_H03 0x11b // default 32'H0
// [ 7: 0] : hue_bys_s2hx / [15: 8] : hue_bys_s3hx
// [23:16] : hue_bys_s4hx / [31:24] : hue_byya_y0hx
#define REG_CM2_ENH_COEFF4_H03 0x11c // default 32'H0
// [ 7: 0] : hue_byya_y1hx / [15: 8] : hue_byya_y2hx
// [23:16] : hue_byya_y3hx / [31:24] : hue_byya_y4hx
////========= NODE 4 COEFFICIENT ==============////
#define REG_CM2_ENH_COEFF0_H04 0x120 // default 32'H0
// [ 7: 0] : luma_byh_hx / [15: 8] : sat_byhs_s0hx
// [23:16] : sat_byhs_s0hx / [31:24] : sat_byhs_s2hx
#define REG_CM2_ENH_COEFF1_H04 0x121 // default 32'H0
// [ 7: 0] : hue_byh_hx / [15: 8] : hue_byy_y0hx
// [23:16] : hue_byy_y1hx / [31:24] : hue_byy_y2hx
#define REG_CM2_ENH_COEFF2_H04 0x122 // default 32'H0
// [ 7: 0] : hue_byy_y3hx / [15: 8] : hue_byy_y4hx
// [23:16] : hue_bys_s0hx / [31:24] : hue_bys_s1hx
#define REG_CM2_ENH_COEFF3_H04 0x123 // default 32'H0
// [ 7: 0] : hue_bys_s2hx / [15: 8] : hue_bys_s3hx
// [23:16] : hue_bys_s4hx / [31:24] : hue_byya_y0hx
#define REG_CM2_ENH_COEFF4_H04 0x124 // default 32'H0
// [ 7: 0] : hue_byya_y1hx / [15: 8] : hue_byya_y2hx
// [23:16] : hue_byya_y3hx / [31:24] : hue_byya_y4hx
////========= NODE 5 COEFFICIENT ==============////
#define REG_CM2_ENH_COEFF0_H05 0x128 // default 32'H0
// [ 7: 0] : luma_byh_hx / [15: 8] : sat_byhs_s0hx
// [23:16] : sat_byhs_s0hx / [31:24] : sat_byhs_s2hx
#define REG_CM2_ENH_COEFF1_H05 0x129 // default 32'H0
// [ 7: 0] : hue_byh_hx / [15: 8] : hue_byy_y0hx
// [23:16] : hue_byy_y1hx / [31:24] : hue_byy_y2hx
#define REG_CM2_ENH_COEFF2_H05 0x12a // default 32'H0
// [ 7: 0] : hue_byy_y3hx / [15: 8] : hue_byy_y4hx
// [23:16] : hue_bys_s0hx / [31:24] : hue_bys_s1hx
#define REG_CM2_ENH_COEFF3_H05 0x12b // default 32'H0
// [ 7: 0] : hue_bys_s2hx / [15: 8] : hue_bys_s3hx
// [23:16] : hue_bys_s4hx / [31:24] : hue_byya_y0hx
#define REG_CM2_ENH_COEFF4_H05 0x12c // default 32'H0
// [ 7: 0] : hue_byya_y1hx / [15: 8] : hue_byya_y2hx
// [23:16] : hue_byya_y3hx / [31:24] : hue_byya_y4hx
////========= NODE 6 COEFFICIENT ==============////
#define REG_CM2_ENH_COEFF0_H06 0x130 // default 32'H0
// [ 7: 0] : luma_byh_hx / [15: 8] : sat_byhs_s0hx
// [23:16] : sat_byhs_s0hx / [31:24] : sat_byhs_s2hx
#define REG_CM2_ENH_COEFF1_H06 0x131 // default 32'H0
// [ 7: 0] : hue_byh_hx / [15: 8] : hue_byy_y0hx
// [23:16] : hue_byy_y1hx / [31:24] : hue_byy_y2hx
#define REG_CM2_ENH_COEFF2_H06 0x132 // default 32'H0
// [ 7: 0] : hue_byy_y3hx / [15: 8] : hue_byy_y4hx
// [23:16] : hue_bys_s0hx / [31:24] : hue_bys_s1hx
#define REG_CM2_ENH_COEFF3_H06 0x133 // default 32'H0
// [ 7: 0] : hue_bys_s2hx / [15: 8] : hue_bys_s3hx
// [23:16] : hue_bys_s4hx / [31:24] : hue_byya_y0hx
#define REG_CM2_ENH_COEFF4_H06 0x134 // default 32'H0
// [ 7: 0] : hue_byya_y1hx / [15: 8] : hue_byya_y2hx
// [23:16] : hue_byya_y3hx / [31:24] : hue_byya_y4hx
////========= NODE 7 COEFFICIENT ==============////
#define REG_CM2_ENH_COEFF0_H07 0x138 // default 32'H0
// [ 7: 0] : luma_byh_hx / [15: 8] : sat_byhs_s0hx
// [23:16] : sat_byhs_s0hx / [31:24] : sat_byhs_s2hx
#define REG_CM2_ENH_COEFF1_H07 0x139 // default 32'H0
// [ 7: 0] : hue_byh_hx / [15: 8] : hue_byy_y0hx
// [23:16] : hue_byy_y1hx / [31:24] : hue_byy_y2hx
#define REG_CM2_ENH_COEFF2_H07 0x13a // default 32'H0
// [ 7: 0] : hue_byy_y3hx / [15: 8] : hue_byy_y4hx
// [23:16] : hue_bys_s0hx / [31:24] : hue_bys_s1hx
#define REG_CM2_ENH_COEFF3_H07 0x13b // default 32'H0
// [ 7: 0] : hue_bys_s2hx / [15: 8] : hue_bys_s3hx
// [23:16] : hue_bys_s4hx / [31:24] : hue_byya_y0hx
#define REG_CM2_ENH_COEFF4_H07 0x13c // default 32'H0
// [ 7: 0] : hue_byya_y1hx / [15: 8] : hue_byya_y2hx
// [23:16] : hue_byya_y3hx / [31:24] : hue_byya_y4hx
////========= NODE 8 COEFFICIENT ==============////
#define REG_CM2_ENH_COEFF0_H08 0x140 // default 32'H0
// [ 7: 0] : luma_byh_hx / [15: 8] : sat_byhs_s0hx
// [23:16] : sat_byhs_s0hx / [31:24] : sat_byhs_s2hx
#define REG_CM2_ENH_COEFF1_H08 0x141 // default 32'H0
// [ 7: 0] : hue_byh_hx / [15: 8] : hue_byy_y0hx
// [23:16] : hue_byy_y1hx / [31:24] : hue_byy_y2hx
#define REG_CM2_ENH_COEFF2_H08 0x142 // default 32'H0
// [ 7: 0] : hue_byy_y3hx / [15: 8] : hue_byy_y4hx
// [23:16] : hue_bys_s0hx / [31:24] : hue_bys_s1hx
#define REG_CM2_ENH_COEFF3_H08 0x143 // default 32'H0
// [ 7: 0] : hue_bys_s2hx / [15: 8] : hue_bys_s3hx
// [23:16] : hue_bys_s4hx / [31:24] : hue_byya_y0hx
#define REG_CM2_ENH_COEFF4_H08 0x144 // default 32'H0
// [ 7: 0] : hue_byya_y1hx / [15: 8] : hue_byya_y2hx
// [23:16] : hue_byya_y3hx / [31:24] : hue_byya_y4hx
////========= NODE 9 COEFFICIENT ==============////
#define REG_CM2_ENH_COEFF0_H09 0x148 // default 32'H0
// [ 7: 0] : luma_byh_hx / [15: 8] : sat_byhs_s0hx
// [23:16] : sat_byhs_s0hx / [31:24] : sat_byhs_s2hx
#define REG_CM2_ENH_COEFF1_H09 0x149 // default 32'H0
// [ 7: 0] : hue_byh_hx / [15: 8] : hue_byy_y0hx
// [23:16] : hue_byy_y1hx / [31:24] : hue_byy_y2hx
#define REG_CM2_ENH_COEFF2_H09 0x14a // default 32'H0
// [ 7: 0] : hue_byy_y3hx / [15: 8] : hue_byy_y4hx
// [23:16] : hue_bys_s0hx / [31:24] : hue_bys_s1hx
#define REG_CM2_ENH_COEFF3_H09 0x14b // default 32'H0
// [ 7: 0] : hue_bys_s2hx / [15: 8] : hue_bys_s3hx
// [23:16] : hue_bys_s4hx / [31:24] : hue_byya_y0hx
#define REG_CM2_ENH_COEFF4_H09 0x14c // default 32'H0
// [ 7: 0] : hue_byya_y1hx / [15: 8] : hue_byya_y2hx
// [23:16] : hue_byya_y3hx / [31:24] : hue_byya_y4hx
////========= NODE 10 COEFFICIENT ==============////
#define REG_CM2_ENH_COEFF0_H10 0x150 // default 32'H0
// [ 7: 0] : luma_byh_hx / [15: 8] : sat_byhs_s0hx
// [23:16] : sat_byhs_s0hx / [31:24] : sat_byhs_s2hx
#define REG_CM2_ENH_COEFF1_H10 0x151 // default 32'H0
// [ 7: 0] : hue_byh_hx / [15: 8] : hue_byy_y0hx
// [23:16] : hue_byy_y1hx / [31:24] : hue_byy_y2hx
#define REG_CM2_ENH_COEFF2_H10 0x152 // default 32'H0
// [ 7: 0] : hue_byy_y3hx / [15: 8] : hue_byy_y4hx
// [23:16] : hue_bys_s0hx / [31:24] : hue_bys_s1hx
#define REG_CM2_ENH_COEFF3_H10 0x153 // default 32'H0
// [ 7: 0] : hue_bys_s2hx / [15: 8] : hue_bys_s3hx
// [23:16] : hue_bys_s4hx / [31:24] : hue_byya_y0hx
#define REG_CM2_ENH_COEFF4_H10 0x154 // default 32'H0
// [ 7: 0] : hue_byya_y1hx / [15: 8] : hue_byya_y2hx
// [23:16] : hue_byya_y3hx / [31:24] : hue_byya_y4hx
////========= NODE 11 COEFFICIENT ==============////
#define REG_CM2_ENH_COEFF0_H11 0x158 // default 32'H0
// [ 7: 0] : luma_byh_hx / [15: 8] : sat_byhs_s0hx
// [23:16] : sat_byhs_s0hx / [31:24] : sat_byhs_s2hx
#define REG_CM2_ENH_COEFF1_H11 0x159 // default 32'H0
// [ 7: 0] : hue_byh_hx / [15: 8] : hue_byy_y0hx
// [23:16] : hue_byy_y1hx / [31:24] : hue_byy_y2hx
#define REG_CM2_ENH_COEFF2_H11 0x15a // default 32'H0
// [ 7: 0] : hue_byy_y3hx / [15: 8] : hue_byy_y4hx
// [23:16] : hue_bys_s0hx / [31:24] : hue_bys_s1hx
#define REG_CM2_ENH_COEFF3_H11 0x15b // default 32'H0
// [ 7: 0] : hue_bys_s2hx / [15: 8] : hue_bys_s3hx
// [23:16] : hue_bys_s4hx / [31:24] : hue_byya_y0hx
#define REG_CM2_ENH_COEFF4_H11 0x15c // default 32'H0
// [ 7: 0] : hue_byya_y1hx / [15: 8] : hue_byya_y2hx
// [23:16] : hue_byya_y3hx / [31:24] : hue_byya_y4hx
////========= NODE 12 COEFFICIENT ==============////
#define REG_CM2_ENH_COEFF0_H12 0x160 // default 32'H0
// [ 7: 0] : luma_byh_hx / [15: 8] : sat_byhs_s0hx
// [23:16] : sat_byhs_s0hx / [31:24] : sat_byhs_s2hx
#define REG_CM2_ENH_COEFF1_H12 0x161 // default 32'H0
// [ 7: 0] : hue_byh_hx / [15: 8] : hue_byy_y0hx
// [23:16] : hue_byy_y1hx / [31:24] : hue_byy_y2hx
#define REG_CM2_ENH_COEFF2_H12 0x162 // default 32'H0
// [ 7: 0] : hue_byy_y3hx / [15: 8] : hue_byy_y4hx
// [23:16] : hue_bys_s0hx / [31:24] : hue_bys_s1hx
#define REG_CM2_ENH_COEFF3_H12 0x163 // default 32'H0
// [ 7: 0] : hue_bys_s2hx / [15: 8] : hue_bys_s3hx
// [23:16] : hue_bys_s4hx / [31:24] : hue_byya_y0hx
#define REG_CM2_ENH_COEFF4_H12 0x164 // default 32'H0
// [ 7: 0] : hue_byya_y1hx / [15: 8] : hue_byya_y2hx
// [23:16] : hue_byya_y3hx / [31:24] : hue_byya_y4hx
////========= NODE 13 COEFFICIENT ==============////
#define REG_CM2_ENH_COEFF0_H13 0x168 // default 32'H0
// [ 7: 0] : luma_byh_hx / [15: 8] : sat_byhs_s0hx
// [23:16] : sat_byhs_s0hx / [31:24] : sat_byhs_s2hx
#define REG_CM2_ENH_COEFF1_H13 0x169 // default 32'H0
// [ 7: 0] : hue_byh_hx / [15: 8] : hue_byy_y0hx
// [23:16] : hue_byy_y1hx / [31:24] : hue_byy_y2hx
#define REG_CM2_ENH_COEFF2_H13 0x16a // default 32'H0
// [ 7: 0] : hue_byy_y3hx / [15: 8] : hue_byy_y4hx
// [23:16] : hue_bys_s0hx / [31:24] : hue_bys_s1hx
#define REG_CM2_ENH_COEFF3_H13 0x16b // default 32'H0
// [ 7: 0] : hue_bys_s2hx / [15: 8] : hue_bys_s3hx
// [23:16] : hue_bys_s4hx / [31:24] : hue_byya_y0hx
#define REG_CM2_ENH_COEFF4_H13 0x16c // default 32'H0
// [ 7: 0] : hue_byya_y1hx / [15: 8] : hue_byya_y2hx
// [23:16] : hue_byya_y3hx / [31:24] : hue_byya_y4hx
/* Constraints
0)
there are 16 regions totally. 8 regions are for hue adjustment, 8 regions are for sat adjustment.
the hue range of the 16 regions can be set to overlap, but if overlap, the hue range(start and end) must be same.
the 8 regions for hue adjustment should not overlap. if corresponding reg_hue_en_00 - 07 == 1
the 8 regions for hue adjustment are defined by: (example are for region 0)
a) hue:
start: reg_hue_hue_shift_start_00[14:0]
end:
if reg_symmetry_en_00 == 0
reg_hue_hue_shift_start_00[14:0] + (reg_hue_hue_shift_range_00[7:0]<<5)
if reg_symmetry_en_00 == 1
reg_hue_hue_shift_start_00[14:0] + (reg_hue_hue_shift_range_00[7:0]<<6)
b) sat:
start: reg_hue_sat_low_00
end: reg_hue_sat_high_00
the 8 regions for sat adjustment should not overlap. if corresponding reg_sat_en_00 - 07 == 1
the 8 regions for sat adjustment are defined by: (example are for region 0)
a) hue: same as that for hue adjustment.
start: reg_hue_hue_shift_start_00[14:0]
end:
if reg_symmetry_en_00 == 0
reg_hue_hue_shift_start_00[14:0] + (reg_hue_hue_shift_range_00[7:0]<<5)
if reg_symmetry_en_00 == 1
reg_hue_hue_shift_start_00[14:0] + (reg_hue_hue_shift_range_00[7:0]<<6)
b) sat:
start: reg_sat_sat_low_00
end: reg_sat_sat_high_00
1)
reg_hue_hue_shift_range_00[7:0]:
reg_hue_hue_shift_range_01[7:0]:
reg_hue_hue_shift_range_02[7:0]:
reg_hue_hue_shift_range_03[7:0]:
reg_hue_hue_shift_range_04[7:0]:
reg_hue_hue_shift_range_05[7:0]:
reg_hue_hue_shift_range_06[7:0]:
reg_hue_hue_shift_range_07[7:0]:
must be greater or equal than 8'd8, so as reg_hue_range_inv_regxx can be represented by 0.0000_0000_xxxx_xxxx_xxxx_xxxx
2)
all regions of 0-7 should meet below requirement. below is just an example for region 7.
(reg_hue_lum_high_07 - reg_hue_lum_low_07) >=
(1<<reg_hue_lum_low_slope_07) + (1<<reg_hue_lum_high_slope_07)
(reg_hue_sat_high_07 - reg_hue_sat_low_07) >=
(1<<reg_hue_sat_low_slope_07) + (1<<reg_hue_sat_high_slope_07)
(reg_sat_lum_high_07 - reg_sat_lum_low_07) >=
(1<<reg_sat_lum_low_slope_07) + (1<<reg_sat_lum_high_slope_07)
(reg_sat_sat_high_07 - reg_sat_sat_low_07) >=
(1<<reg_sat_sat_low_slope_07) + (1<<reg_sat_sat_high_slope_07)
3)
all of reg_hue_hue_shift_start_00[14:0] ~ 07[14:0] < 0x6000.
only region 0 and 1 can exceed 360 degrees. ie:
reg_hue_hue_shift_start_00 + (reg_hue_hue_shift_range_00<<5) can greater than 0x6000.
reg_hue_hue_shift_start_01 + (reg_hue_hue_shift_range_01<<5) can greater than 0x6000.
but below should be met:
reg_hue_hue_shift_start_00 + (reg_hue_hue_shift_range_00<<5) < 0x8000. if reg_symmetry_en_00 == 0
reg_hue_hue_shift_start_01 + (reg_hue_hue_shift_range_00<<5) < 0x8000. if reg_symmetry_en_00 == 0
reg_hue_hue_shift_start_00 + (reg_hue_hue_shift_range_00<<6) < 0x8000. if reg_symmetry_en_00 == 1
reg_hue_hue_shift_start_01 + (reg_hue_hue_shift_range_00<<6) < 0x8000. if reg_symmetry_en_00 == 1
others could not exceed 360 degrees. ie:
reg_hue_hue_shift_start_02(to 7) + (reg_hue_hue_shift_range_02 (to 7) <<5) < 0x6000. if reg_symmetry_en_02 (to 7) == 0.
reg_hue_hue_shift_start_02(to 7) + (reg_hue_hue_shift_range_02 (to 7) <<6) < 0x6000. if reg_symmetry_en_02 (to 7) == 1.
4)
reg_hue_gain_00[7:0] <= 0x80.
reg_hue_gain_01[7:0] <= 0x80.
reg_hue_gain_02[7:0] <= 0x80.
reg_hue_gain_03[7:0] <= 0x80.
reg_hue_gain_04[7:0] <= 0x80.
reg_hue_gain_05[7:0] <= 0x80.
reg_hue_gain_06[7:0] <= 0x80.
reg_hue_gain_07[7:0] <= 0x80.
5)
below registers can only have two setting: 00 and 01.
reg_hue_central_en_00[1:0] .. _07[1:0]
reg_sat_central_en_00[1:0] .. _07[1:0]
6)
all reg_..._slope_00-07 should not be greater than 7, ie: maximum value is 7.
for example: below is for region 0:
reg_hue_lum_low_slope_00[3:0] <= 7
reg_hue_lum_high_slope_00[3:0] <= 7
reg_hue_sat_low_slope_00[3:0] <= 7
reg_hue_sat_high_slope_00[3:0] <= 7
reg_sat_lum_low_slope_00[3:0] <= 7
reg_sat_lum_high_slope_00[3:0] <= 7
reg_sat_sat_low_slope_00[3:0] <= 7
reg_sat_sat_high_slope_00[3:0] <= 7
*/
// synopsys translate_off
// synopsys translate_on
//
// Closing file: chroma_reg.h
//
//(hsvsharp), (blue), gainoff, mat_vd1,mat_vd2, mat_post, prebld, postbld,(hsharp),sco_ff, vadj1, vadj2, ofifo, (chroma1), clk0(free_clk) vpp_reg
//each item 2bits, for each 2bits, if bit 2*i+1 == 1, free clk, else if bit 2*i == 1 no clk, else auto gated clock
//bit1 is not used, because I can not turn off vpp_reg clk because I can not turn on again
//because the register itself canot be set again without clk
//Bit 31:0
#define VPP_GCLK_CTRL0 (0x1d72)
#define P_VPP_GCLK_CTRL0 (volatile unsigned int *)((0x1d72 << 2) + 0xff900000)
//(front_lti), (front_cti), Chroma2_filter, Chroma2, (Ccoring), (blackext), dnlp
//Bit 13:0
#define VPP_GCLK_CTRL1 (0x1d73)
#define P_VPP_GCLK_CTRL1 (volatile unsigned int *)((0x1d73 << 2) + 0xff900000)
//prehsc_clk, line_buf, prevsc, vsc, hsc_clk, clk0(free_clk)
//Bit 11:0
#define VPP_SC_GCLK_CTRL (0x1d74)
#define P_VPP_SC_GCLK_CTRL (volatile unsigned int *)((0x1d74 << 2) + 0xff900000)
//Bit 17:9 VD1 alpha for preblend
//Bit 8:0 VD1 alpha for postblend
#define VPP_MISC1 (0x1d76)
#define P_VPP_MISC1 (volatile unsigned int *)((0x1d76 << 2) + 0xff900000)
//Bit 31:0 super scalar clock control
#define VPP_SRSCL_GCLK_CTRL (0x1d77)
#define P_VPP_SRSCL_GCLK_CTRL (volatile unsigned int *)((0x1d77 << 2) + 0xff900000)
//Bit 31:0 OSD super scalar clock control
#define VPP_OSDSR_GCLK_CTRL (0x1d78)
#define P_VPP_OSDSR_GCLK_CTRL (volatile unsigned int *)((0x1d78 << 2) + 0xff900000)
//Bit 31:0 vvycc clock control
#define VPP_XVYCC_GCLK_CTRL (0x1d79)
#define P_VPP_XVYCC_GCLK_CTRL (volatile unsigned int *)((0x1d79 << 2) + 0xff900000)
//Bit 31:24 blackext_start
//Bit 23:16 blackext_slope1
//Bit 15:8 blackext_midpt
//Bit 7:0 blackext_slope2
#define VPP_BLACKEXT_CTRL (0x1d80)
#define P_VPP_BLACKEXT_CTRL (volatile unsigned int *)((0x1d80 << 2) + 0xff900000)
//Bit 31:24 bottom of region03 output value
//Bit 23:16 bottom of region02 output value
//Bit 15:8 bottom of region01 output value
//Bit 7:0 bottom of region00 output value
#define VPP_DNLP_CTRL_00 (0x1d81)
#define P_VPP_DNLP_CTRL_00 (volatile unsigned int *)((0x1d81 << 2) + 0xff900000)
//Bit 31:24 bottom of region07 output value
//Bit 23:16 bottom of region06 output value
//Bit 15:8 bottom of region05 output value
//Bit 7:0 bottom of region04 output value
#define VPP_DNLP_CTRL_01 (0x1d82)
#define P_VPP_DNLP_CTRL_01 (volatile unsigned int *)((0x1d82 << 2) + 0xff900000)
//Bit 31:24 bottom of region11 output value
//Bit 23:16 bottom of region10 output value
//Bit 15:8 bottom of region09 output value
//Bit 7:0 bottom of region08 output value
#define VPP_DNLP_CTRL_02 (0x1d83)
#define P_VPP_DNLP_CTRL_02 (volatile unsigned int *)((0x1d83 << 2) + 0xff900000)
//Bit 31:24 bottom of region15 output value
//Bit 23:16 bottom of region14 output value
//Bit 15:8 bottom of region13 output value
//Bit 7:0 bottom of region12 output value
#define VPP_DNLP_CTRL_03 (0x1d84)
#define P_VPP_DNLP_CTRL_03 (volatile unsigned int *)((0x1d84 << 2) + 0xff900000)
//Bit 31:24 bottom of region19 output value
//Bit 23:16 bottom of region18 output value
//Bit 15:8 bottom of region17 output value
//Bit 7:0 bottom of region16 output value
#define VPP_DNLP_CTRL_04 (0x1d85)
#define P_VPP_DNLP_CTRL_04 (volatile unsigned int *)((0x1d85 << 2) + 0xff900000)
//Bit 31:24 bottom of region23 output value
//Bit 23:16 bottom of region22 output value
//Bit 15:8 bottom of region21 output value
//Bit 7:0 bottom of region20 output value
#define VPP_DNLP_CTRL_05 (0x1d86)
#define P_VPP_DNLP_CTRL_05 (volatile unsigned int *)((0x1d86 << 2) + 0xff900000)
//Bit 31:24 bottom of region27 output value
//Bit 23:16 bottom of region26 output value
//Bit 15:8 bottom of region25 output value
//Bit 7:0 bottom of region24 output value
#define VPP_DNLP_CTRL_06 (0x1d87)
#define P_VPP_DNLP_CTRL_06 (volatile unsigned int *)((0x1d87 << 2) + 0xff900000)
//Bit 31:24 bottom of region31 output value
//Bit 23:16 bottom of region30 output value
//Bit 15:8 bottom of region29 output value
//Bit 7:0 bottom of region28 output value
#define VPP_DNLP_CTRL_07 (0x1d88)
#define P_VPP_DNLP_CTRL_07 (volatile unsigned int *)((0x1d88 << 2) + 0xff900000)
//Bit 31:24 bottom of region35 output value
//Bit 23:16 bottom of region34 output value
//Bit 15:8 bottom of region33 output value
//Bit 7:0 bottom of region32 output value
#define VPP_DNLP_CTRL_08 (0x1d89)
#define P_VPP_DNLP_CTRL_08 (volatile unsigned int *)((0x1d89 << 2) + 0xff900000)
//Bit 31:24 bottom of region39 output value
//Bit 23:16 bottom of region38 output value
//Bit 15:8 bottom of region37 output value
//Bit 7:0 bottom of region36 output value
#define VPP_DNLP_CTRL_09 (0x1d8a)
#define P_VPP_DNLP_CTRL_09 (volatile unsigned int *)((0x1d8a << 2) + 0xff900000)
//Bit 31:24 bottom of region43 output value
//Bit 23:16 bottom of region42 output value
//Bit 15:8 bottom of region41 output value
//Bit 7:0 bottom of region40 output value
#define VPP_DNLP_CTRL_10 (0x1d8b)
#define P_VPP_DNLP_CTRL_10 (volatile unsigned int *)((0x1d8b << 2) + 0xff900000)
//Bit 31:24 bottom of region47 output value
//Bit 23:16 bottom of region46 output value
//Bit 15:8 bottom of region45 output value
//Bit 7:0 bottom of region44 output value
#define VPP_DNLP_CTRL_11 (0x1d8c)
#define P_VPP_DNLP_CTRL_11 (volatile unsigned int *)((0x1d8c << 2) + 0xff900000)
//Bit 31:24 bottom of region51 output value
//Bit 23:16 bottom of region50 output value
//Bit 15:8 bottom of region49 output value
//Bit 7:0 bottom of region48 output value
#define VPP_DNLP_CTRL_12 (0x1d8d)
#define P_VPP_DNLP_CTRL_12 (volatile unsigned int *)((0x1d8d << 2) + 0xff900000)
//Bit 31:24 bottom of region55 output value
//Bit 23:16 bottom of region54 output value
//Bit 15:8 bottom of region53 output value
//Bit 7:0 bottom of region52 output value
#define VPP_DNLP_CTRL_13 (0x1d8e)
#define P_VPP_DNLP_CTRL_13 (volatile unsigned int *)((0x1d8e << 2) + 0xff900000)
//Bit 31:24 bottom of region59 output value
//Bit 23:16 bottom of region58 output value
//Bit 15:8 bottom of region57 output value
//Bit 7:0 bottom of region56 output value
#define VPP_DNLP_CTRL_14 (0x1d8f)
#define P_VPP_DNLP_CTRL_14 (volatile unsigned int *)((0x1d8f << 2) + 0xff900000)
//Bit 31:24 bottom of region63 output value
//Bit 23:16 bottom of region62 output value
//Bit 15:8 bottom of region61 output value
//Bit 7:0 bottom of region60 output value
#define VPP_DNLP_CTRL_15 (0x1d90)
#define P_VPP_DNLP_CTRL_15 (volatile unsigned int *)((0x1d90 << 2) + 0xff900000)
// `define VPP_PEAKING_HGAIN 8'h91 //32'h0
// `define VPP_PEAKING_VGAIN 8'h92 //32'h0
// `define VPP_PEAKING_NLP_1 8'h93 //32'h0
// `define VPP_PEAKING_NLP_2 8'h94 //32'h0
// `define VPP_PEAKING_NLP_3 8'h95 //32'h0
// `define VPP_PEAKING_NLP_4 8'h96 //32'h0
// `define VPP_PEAKING_NLP_5 8'h97 //32'h0
// `define VPP_SHARP_LIMIT 8'h98 //32'h0
// `define VPP_VLTI_CTRL 8'h99 //32'h0
// `define VPP_HLTI_CTRL 8'h9a //32'h0
// `define VPP_CTI_CTRL 8'h9b //32'h0
#define VPP_SRSHARP0_CTRL (0x1d91)
#define P_VPP_SRSHARP0_CTRL (volatile unsigned int *)((0x1d91 << 2) + 0xff900000)
//Bit 31:29 reserved
//Bit 28:16 srsharp_demo_split_sz srsharp demo top/bot left/right width
//Bit 15:6 reserved
//Bit 5:4 srsharp_demo_disp_post srsharp demo display postion
//Bit 3 srsharp_demo_en srsharp demo enable
//Bit 2 srsharp_c444to422_en srsharp format444 convert 422 enable
//Bit 1, srsharp_buf_en srsharp buffer enable
//Bit 0, srsharp_en srsharp enable
#define VPP_SRSHARP1_CTRL (0x1d92)
#define P_VPP_SRSHARP1_CTRL (volatile unsigned int *)((0x1d92 << 2) + 0xff900000)
//Bit 31:29 reserved
//Bit 28:16 srsharp_demo_split_sz srsharp demo top/bot left/right width
//Bit 15:6 reserved
//Bit 5:4 srsharp_demo_disp_post srsharp demo display postion
//Bit 3 srsharp_demo_en srsharp demo enable
//Bit 2 srsharp_c444to422_en srsharp format444 convert 422 enable
//Bit 1, srsharp_buf_en srsharp buffer enable
//Bit 0, srsharp_en srsharp enable
#define VPP_DOLBY_CTRL (0x1d93)
#define P_VPP_DOLBY_CTRL (volatile unsigned int *)((0x1d93 << 2) + 0xff900000)
//todo
#define VPP_DAT_CONV_PARA0 (0x1d94)
#define P_VPP_DAT_CONV_PARA0 (volatile unsigned int *)((0x1d94 << 2) + 0xff900000)
#define VPP_DAT_CONV_PARA1 (0x1d95)
#define P_VPP_DAT_CONV_PARA1 (volatile unsigned int *)((0x1d95 << 2) + 0xff900000)
//todo
#define VPP_SYNC_SEL0 (0x1d96)
#define P_VPP_SYNC_SEL0 (volatile unsigned int *)((0x1d96 << 2) + 0xff900000)
#define VPP_VADJ1_BLACK_VAL (0x1d97)
#define P_VPP_VADJ1_BLACK_VAL (volatile unsigned int *)((0x1d97 << 2) + 0xff900000)
#define VPP_VADJ2_BLACK_VAL (0x1d98)
#define P_VPP_VADJ2_BLACK_VAL (volatile unsigned int *)((0x1d98 << 2) + 0xff900000)
//Bit 29 blue_stretch_cb_inc
//Bit 28 blue_stretch_cr_inc
//Bit 27 the MSB of blue_stretch_error_crp_inv[11:0]
//Bit 26 the MSB of blue_stretch_error_crn_inv[11:0]
//Bit 25 the MSB of blue_stretch_error_cbp_inv[11:0]
//Bit 24 the MSB of blue_stretch_error_cbn_inv[11:0]
//Bit 23:16 blue_stretch_gain
//Bit 15:8 blue_stretch_gain_cb4cr
//Bit 7:0 blue_stretch_luma_high
#define VPP_BLUE_STRETCH_1 (0x1d9c)
#define P_VPP_BLUE_STRETCH_1 (volatile unsigned int *)((0x1d9c << 2) + 0xff900000)
//Bit 31:27 blue_stretch_error_crp
//Bit 26:16 the 11 LSB of blue_stretch_error_crp_inv[11:0]
//Bit 15:11 blue_stretch_error_crn
//Bit 10:0 the 11 LSB of blue_stretch_error_crn_inv[11:0]
#define VPP_BLUE_STRETCH_2 (0x1d9d)
#define P_VPP_BLUE_STRETCH_2 (volatile unsigned int *)((0x1d9d << 2) + 0xff900000)
//Bit 31:27 blue_stretch_error_cbp
//Bit 26:16 the 11 LSB of blue_stretch_error_cbp_inv[11:0]
//Bit 15:11 blue_stretch_error_cbn
//Bit 10:0 the 11 LSB of blue_stretch_error_cbn_inv[11:0]
#define VPP_BLUE_STRETCH_3 (0x1d9e)
#define P_VPP_BLUE_STRETCH_3 (volatile unsigned int *)((0x1d9e << 2) + 0xff900000)
//Bit 25:16 bypass_ccoring_ythd
//Bit 15:8, Chroma coring threshold
//Bit 3:0, Chroma coring slope
#define VPP_CCORING_CTRL (0x1da0)
#define P_VPP_CCORING_CTRL (volatile unsigned int *)((0x1da0 << 2) + 0xff900000)
//Bit 20 demo chroma coring enable
//Bit 19 demo black enxtension enable
//Bit 18 demo dynamic nonlinear luma processing enable
//Bit 17 demo hsvsharp enable
//Bit 16 demo bluestretch enable
//Bit 15:14, 2'b00: demo adjust on top, 2'b01: demo adjust on bottom, 2'b10: demo adjust on left, 2'b11: demo adjust on right
//Bit 4 chroma coring enable
//Bit 3 black enxtension enable
//Bit 2 dynamic nonlinear luma processing enable
//Bit 1 hsvsharp enable
//Bit 0 bluestretch enable
#define VPP_VE_ENABLE_CTRL (0x1da1)
#define P_VPP_VE_ENABLE_CTRL (volatile unsigned int *)((0x1da1 << 2) + 0xff900000)
//Bit 12:0, demo left or top screen width
#define VPP_VE_DEMO_LEFT_TOP_SCREEN_WIDTH (0x1da2)
#define P_VPP_VE_DEMO_LEFT_TOP_SCREEN_WIDTH (volatile unsigned int *)((0x1da2 << 2) + 0xff900000)
#define VPP_VE_DEMO_CENTER_BAR (0x1da3)
#define P_VPP_VE_DEMO_CENTER_BAR (volatile unsigned int *)((0x1da3 << 2) + 0xff900000)
//28:16 ve_line_length
//12:0 ve_pic_height
#define VPP_VE_H_V_SIZE (0x1da4)
#define P_VPP_VE_H_V_SIZE (volatile unsigned int *)((0x1da4 << 2) + 0xff900000)
//28:16 vppout_line_length
//12:0 vppout_pic_height
#define VPP_OUT_H_V_SIZE (0x1da5)
#define P_VPP_OUT_H_V_SIZE (volatile unsigned int *)((0x1da5 << 2) + 0xff900000)
//28:16 vppin_line_length
//12:0 vppin_pic_height
#define VPP_IN_H_V_SIZE (0x1da6)
#define P_VPP_IN_H_V_SIZE (volatile unsigned int *)((0x1da6 << 2) + 0xff900000)
//Bit 10 reset bit, high active
//Bit 9 0: measuring rising edge, 1: measuring falling edge
//Bit 8 if true, accumulate the counter number, otherwise not
//Bit 7:0 vsync_span, define how many vsync span need to measure
#define VPP_VDO_MEAS_CTRL (0x1da8)
#define P_VPP_VDO_MEAS_CTRL (volatile unsigned int *)((0x1da8 << 2) + 0xff900000)
//Read only
//19:16 ind_meas_count_n, every number of sync_span vsyncs, this counter add 1
//15:0, high bit portion of counter
#define VPP_VDO_MEAS_VS_COUNT_HI (0x1da9)
#define P_VPP_VDO_MEAS_VS_COUNT_HI (volatile unsigned int *)((0x1da9 << 2) + 0xff900000)
//Read only
//31:0, low bit portion of counter
#define VPP_VDO_MEAS_VS_COUNT_LO (0x1daa)
#define P_VPP_VDO_MEAS_VS_COUNT_LO (volatile unsigned int *)((0x1daa << 2) + 0xff900000)
//bit 11:9 vd2_sel, 001: select vd1_din, 010: select vd2_din, 011: select d2d3_l_din, 100: d2d3_r_din, otherwise no selection
//bit 8:6 vd1_l_sel, 001: select vd1_din, 010: select vd2_din, 011: select d2d3_l_din, 100: d2d3_r_din, otherwise no selection
//bit 5:3 vd1_r_sel, 001: select vd1_din, 010: select vd2_din, 011: select d2d3_l_din, 100: d2d3_r_din, otherwise no selection
//note: the source vd1_l_sel selected cannot be used as the source of vd1_r_sel or vd2_sel
// vd1_r_sel is useful only vd1_interleave_mode is not 00. And the source vd1_r_sel used can not used for the vd2_sel any more.
//bit 2:0 vd1_interleave_mode, 000: no interleave, 001: pixel interleaving, 010: line interleaving, 011: 2 pixel interleaving,
// 100: 2 line interleaving
#define VPP_INPUT_CTRL (0x1dab)
#define P_VPP_INPUT_CTRL (volatile unsigned int *)((0x1dab << 2) + 0xff900000)
//bit 25:24 cti_bpf_sel
//bit 20:16 cti_blend_factor_gama
//bit 12:8 cti_blend_factor_beta
//bit 4:0 cti_blend_factor_alpha
#define VPP_CTI_CTRL2 (0x1dac)
#define P_VPP_CTI_CTRL2 (volatile unsigned int *)((0x1dac << 2) + 0xff900000)
#define VPP_PEAKING_SAT_THD1 (0x1dad)
#define P_VPP_PEAKING_SAT_THD1 (volatile unsigned int *)((0x1dad << 2) + 0xff900000)
#define VPP_PEAKING_SAT_THD2 (0x1dae)
#define P_VPP_PEAKING_SAT_THD2 (volatile unsigned int *)((0x1dae << 2) + 0xff900000)
#define VPP_PEAKING_SAT_THD3 (0x1daf)
#define P_VPP_PEAKING_SAT_THD3 (volatile unsigned int *)((0x1daf << 2) + 0xff900000)
#define VPP_PEAKING_SAT_THD4 (0x1db0)
#define P_VPP_PEAKING_SAT_THD4 (volatile unsigned int *)((0x1db0 << 2) + 0xff900000)
#define VPP_PEAKING_SAT_THD5 (0x1db1)
#define P_VPP_PEAKING_SAT_THD5 (volatile unsigned int *)((0x1db1 << 2) + 0xff900000)
#define VPP_PEAKING_SAT_THD6 (0x1db2)
#define P_VPP_PEAKING_SAT_THD6 (volatile unsigned int *)((0x1db2 << 2) + 0xff900000)
#define VPP_PEAKING_SAT_THD7 (0x1db3)
#define P_VPP_PEAKING_SAT_THD7 (volatile unsigned int *)((0x1db3 << 2) + 0xff900000)
#define VPP_PEAKING_SAT_THD8 (0x1db4)
#define P_VPP_PEAKING_SAT_THD8 (volatile unsigned int *)((0x1db4 << 2) + 0xff900000)
#define VPP_PEAKING_SAT_THD9 (0x1db5)
#define P_VPP_PEAKING_SAT_THD9 (volatile unsigned int *)((0x1db5 << 2) + 0xff900000)
#define VPP_PEAKING_GAIN_ADD1 (0x1db6)
#define P_VPP_PEAKING_GAIN_ADD1 (volatile unsigned int *)((0x1db6 << 2) + 0xff900000)
#define VPP_PEAKING_GAIN_ADD2 (0x1db7)
#define P_VPP_PEAKING_GAIN_ADD2 (volatile unsigned int *)((0x1db7 << 2) + 0xff900000)
//bit 23:16 peaking_dnlp_gain, u5.3, DNLP effect
//bit 15:8 peaking_factor
//bit 5 peaking_dnlp_demo_en
//bit 4 peaking_dnlp_en
//bit 3:0 peaking_filter_sel
#define VPP_PEAKING_DNLP (0x1db8)
#define P_VPP_PEAKING_DNLP (volatile unsigned int *)((0x1db8 << 2) + 0xff900000)
//bit 24 sharp_demo_win_en
//bit 23:12 sharp_demo_win_vend
//bit 11:0 sharp_demo_win_vstart
#define VPP_SHARP_DEMO_WIN_CTRL1 (0x1db9)
#define P_VPP_SHARP_DEMO_WIN_CTRL1 (volatile unsigned int *)((0x1db9 << 2) + 0xff900000)
//bit 23:12 sharp_demo_win_hend
//bit 11:0 sharp_demo_win_hstart
#define VPP_SHARP_DEMO_WIN_CTRL2 (0x1dba)
#define P_VPP_SHARP_DEMO_WIN_CTRL2 (volatile unsigned int *)((0x1dba << 2) + 0xff900000)
//Bit 31:24 front_hlti_neg_gain
//Bit 23:16 front_hlti_pos_gain
//Bit 15:8 front_hlti_threshold
//Bit 7:0 front_hlti_blend_factor
#define VPP_FRONT_HLTI_CTRL (0x1dbb)
#define P_VPP_FRONT_HLTI_CTRL (volatile unsigned int *)((0x1dbb << 2) + 0xff900000)
//Bit 31 front_enable, enable the front LTI&CTI before scaler
//Bit 26:24 front_cti_step2
//Bit 23:21 front_cti_step
//Bit 20:16 front_cti_blend_factor
//Bit 15 front_cti_median_mode
//Bit 14:8 front_cti_threshold
//Bit 7:0 front_cti_gain
#define VPP_FRONT_CTI_CTRL (0x1dbc)
#define P_VPP_FRONT_CTI_CTRL (volatile unsigned int *)((0x1dbc << 2) + 0xff900000)
//bit 29:28 front_hlti_step
//bit 25:24 front_cti_bpf_sel
//bit 20:16 front_cti_blend_factor_gama
//bit 12:8 front_cti_blend_factor_beta
//bit 4:0 front_cti_blend_factor_alpha
#define VPP_FRONT_CTI_CTRL2 (0x1dbd)
#define P_VPP_FRONT_CTI_CTRL2 (volatile unsigned int *)((0x1dbd << 2) + 0xff900000)
//vertical scaler phase step
//Bit 27:0, 4.24 format
#define VPP_OSD_VSC_PHASE_STEP (0x1dc0)
#define P_VPP_OSD_VSC_PHASE_STEP (volatile unsigned int *)((0x1dc0 << 2) + 0xff900000)
//Bit 31:16, botttom vertical scaler initial phase
//Bit 15:0, top vertical scaler initial phase
#define VPP_OSD_VSC_INI_PHASE (0x1dc1)
#define P_VPP_OSD_VSC_INI_PHASE (volatile unsigned int *)((0x1dc1 << 2) + 0xff900000)
//Bit 24 osd vertical Scaler enable
//Bit 23 osd_prog_interlace 0: current field is progressive, 1: current field is interlace
//Bit 22:21 osd_vsc_double_line_mode, bit1, double input width and half input height, bit0, change line buffer becomes 2 lines
//Bit 20 osd_vsc_phase0_always_en
//Bit 19 osd_vsc_nearest_en
//Bit 17:16 osd_vsc_bot_rpt_l0_num
//Bit 14:11 osd_vsc_bot_ini_rcv_num
//Bit 9:8 osd_vsc_top_rpt_l0_num
//Bit 6:3 osd_vsc_top_ini_rcv_num
//Bit 2:0 osd_vsc_bank_length
#define VPP_OSD_VSC_CTRL0 (0x1dc2)
#define P_VPP_OSD_VSC_CTRL0 (volatile unsigned int *)((0x1dc2 << 2) + 0xff900000)
//horizontal scaler phase step
//Bit 27:0, 4.24 format
#define VPP_OSD_HSC_PHASE_STEP (0x1dc3)
#define P_VPP_OSD_HSC_PHASE_STEP (volatile unsigned int *)((0x1dc3 << 2) + 0xff900000)
//Bit 31:16, horizontal scaler initial phase1
//Bit 15:0, horizontal scaler initial phase0
#define VPP_OSD_HSC_INI_PHASE (0x1dc4)
#define P_VPP_OSD_HSC_INI_PHASE (volatile unsigned int *)((0x1dc4 << 2) + 0xff900000)
//Bit 22 osd horizontal scaler enable
//Bit 21 osd_hsc_double_pix_mode
//Bit 20 osd_hsc_phase0_always_en
//Bit 19 osd_hsc_nearest_en
//Bit 17:16 osd_hsc_rpt_p0_num1
//Bit 14:11 osd_hsc_ini_rcv_num1
//Bit 9:8 osd_hsc_rpt_p0_num0
//Bit 6:3 osd_hsc_ini_rcv_num0
//Bit 2:0 osd_hsc_bank_length
#define VPP_OSD_HSC_CTRL0 (0x1dc5)
#define P_VPP_OSD_HSC_CTRL0 (volatile unsigned int *)((0x1dc5 << 2) + 0xff900000)
//for 3D quincunx sub-sampling
//bit 15:8 pattern, each patten 1 bit, from lsb -> msb
//bit 6:4 pattern start
//bit 2:0 pattern end
#define VPP_OSD_HSC_INI_PAT_CTRL (0x1dc6)
#define P_VPP_OSD_HSC_INI_PAT_CTRL (volatile unsigned int *)((0x1dc6 << 2) + 0xff900000)
//bit 31:24, componet 0
//bit 23:16, component 1
//bit 15:8, component 2
//bit 7:0 component 3, alpha
#define VPP_OSD_SC_DUMMY_DATA (0x1dc7)
#define P_VPP_OSD_SC_DUMMY_DATA (volatile unsigned int *)((0x1dc7 << 2) + 0xff900000)
//Bit 14 osc_sc_din_osd1_alpha_mode, 1: (alpha >= 128) ? alpha -1: alpha, 0: (alpha >=1) ? alpha - 1: alpha.
//Bit 13 osc_sc_din_osd2_alpha_mode, 1: (alpha >= 128) ? alpha -1: alpha, 0: (alpha >=1) ? alpha - 1: alpha.
//Bit 12 osc_sc_dout_alpha_mode, 1: (alpha >= 128) ? alpha + 1: alpha, 0: (alpha >=1) ? alpha + 1: alpha.
//Bit 12 osc_sc_alpha_mode, 1: (alpha >= 128) ? alpha + 1: alpha, 0: (alpha >=1) ? alpha + 1: alpha.
//Bit 11:4 default alpha for vd1 or vd2 if they are selected as the source
//Bit 3 osd scaler path enable
//Bit 1:0 osd_sc_sel, 00: select osd1 input, 01: select osd2 input, 10: select vd1 input, 11: select vd2 input after matrix
#define VPP_OSD_SC_CTRL0 (0x1dc8)
#define P_VPP_OSD_SC_CTRL0 (volatile unsigned int *)((0x1dc8 << 2) + 0xff900000)
//Bit 28:16 OSD scaler input width minus 1
//Bit 12:0 OSD scaler input height minus 1
#define VPP_OSD_SCI_WH_M1 (0x1dc9)
#define P_VPP_OSD_SCI_WH_M1 (volatile unsigned int *)((0x1dc9 << 2) + 0xff900000)
//Bit 28:16 OSD scaler output horizontal start
//Bit 12:0 OSD scaler output horizontal end
#define VPP_OSD_SCO_H_START_END (0x1dca)
#define P_VPP_OSD_SCO_H_START_END (volatile unsigned int *)((0x1dca << 2) + 0xff900000)
//Bit 28:16 OSD scaler output vertical start
//Bit 12:0 OSD scaler output vertical end
#define VPP_OSD_SCO_V_START_END (0x1dcb)
#define P_VPP_OSD_SCO_V_START_END (volatile unsigned int *)((0x1dcb << 2) + 0xff900000)
//Because there are many coefficients used in the vertical filter and horizontal filters,
//indirect access the coefficients of vertical filter and horizontal filter is used.
//For vertical filter, there are 33x4 coefficients
//For horizontal filter, there are 33x4 coefficients
//Bit 15 index increment, if bit9 == 1 then (0: index increase 1, 1: index increase 2) else (index increase 2)
//Bit 14 1: read coef through cbus enable, just for debug purpose in case when we wanna check the coef in ram in correct or not
//Bit 9 if true, use 9bit resolution coef, other use 8bit resolution coef
//Bit 8 type of index, 0: vertical coef, 1: horizontal coef
//Bit 6:0 coef index
#define VPP_OSD_SCALE_COEF_IDX (0x1dcc)
#define P_VPP_OSD_SCALE_COEF_IDX (volatile unsigned int *)((0x1dcc << 2) + 0xff900000)
//coefficients for vertical filter and horizontal filter
#define VPP_OSD_SCALE_COEF (0x1dcd)
#define P_VPP_OSD_SCALE_COEF (volatile unsigned int *)((0x1dcd << 2) + 0xff900000)
//Bit 12:0 line number use to generate interrupt when line == this number
#define VPP_INT_LINE_NUM (0x1dce)
#define P_VPP_INT_LINE_NUM (volatile unsigned int *)((0x1dce << 2) + 0xff900000)
#define VPP_XVYCC_MISC (0x1dcf)
#define P_VPP_XVYCC_MISC (volatile unsigned int *)((0x1dcf << 2) + 0xff900000)
// new add lti/cti in 120924
//Bit 3: 0 //default== 0 reg_hlti_dn_flt_coe[0]
//Bit 7: 4 //default== 0 reg_hlti_dn_flt_coe[1]
//Bit 11: 8 //default== 0 reg_hlti_dn_flt_coe[2]
//Bit 15:12 //default== 2 reg_hlti_dn_flt_coe[3]
//Bit 19:16 //default== 4 reg_hlti_dn_flt_coe[4]
//Bit 22:20 //default== 3 reg_hlti_dn_flt_nrm u3: 3~7
#define VPP_HLTI_DN_FLT (0x1dd0)
#define P_VPP_HLTI_DN_FLT (volatile unsigned int *)((0x1dd0 << 2) + 0xff900000)
//Bit 7: 0 //default== 8 reg_hlti_bst_gain u8, norm 16 as "1"
//Bit 15: 8 //default== 20 reg_hlti_bst_core u8, norm 32 as "1"
//Bit 23:16 //default== 32 reg_hlti_oob_gain u8, norm 32 as "1"
//Bit 28:24 //default== 0 reg_hlti_oob_core u5
#define VPP_HLTI_GAIN (0x1dd1)
#define P_VPP_HLTI_GAIN (volatile unsigned int *)((0x1dd1 << 2) + 0xff900000)
//Bit 7: 0 //default== 2 reg_hlti_clp_ofst u8,
//Bit 8 //default== 0 reg_hlti_clp_mode u1,
//Bit 11: 9 //default== 1 reg_hlti_clp_wind u3,
//Bit 14:12 //default== 1 reg_hlti_bst_fltr u3,
//Bit 15 //default== 1 reg_hlti_enable u1,
#define VPP_HLTI_PARA (0x1dd2)
#define P_VPP_HLTI_PARA (volatile unsigned int *)((0x1dd2 << 2) + 0xff900000)
//Bit 3: 0 //default== 0 reg_hcti_dn_flt_coe[0]
//Bit 7: 4 //default== 0 reg_hcti_dn_flt_coe[1]
//Bit 11: 8 //default== 1 reg_hcti_dn_flt_coe[2]
//Bit 15:12 //default== 2 reg_hcti_dn_flt_coe[3]
//Bit 19:16 //default== 2 reg_hcti_dn_flt_coe[4]
//Bit 22:20 //default== 3 reg_hcti_dn_flt_nrm u3: 3~7
#define VPP_HCTI_DN_FLT (0x1dd3)
#define P_VPP_HCTI_DN_FLT (volatile unsigned int *)((0x1dd3 << 2) + 0xff900000)
//Bit 7: 0 //default== 48 reg_hcti_bst_gain u8, norm 16 as "1"
//Bit15: 8 //default== 17 reg_hcti_bst_core u8, norm 32 as "1"
//Bit23:16 //default== 16 reg_hcti_oob_gain u8, norm 32 as "1"
//Bit28:24 //default== 0 reg_hcti_oob_core u5
#define VPP_HCTI_GAIN (0x1dd4)
#define P_VPP_HCTI_GAIN (volatile unsigned int *)((0x1dd4 << 2) + 0xff900000)
//Bit 7: 0 //default== 0 reg_hcti_clp_ofst u8,
//Bit 8 //default== 1 reg_hcti_clp_mode u1,
//Bit 11: 9 //default== 3 reg_hcti_clp_wind u3,
//Bit 14:12 //default== 6 reg_hcti_bst_fltr u3,
//Bit 15 //default== 1 reg_hcti_enable u1,
#define VPP_HCTI_PARA (0x1dd5)
#define P_VPP_HCTI_PARA (volatile unsigned int *)((0x1dd5 << 2) + 0xff900000)
//Bit 7: 0 //default== 48 reg_vcti_bst_gain u8, normalize 16 as "1"
//Bit 15: 8 //default== 10 reg_vcti_bst_core u8
//Bit 19:16 //default== 10 reg_vcti_clp_ofst u4
//Bit 20 //default== 1 reg_vcti_clp_wind u1, 0: wind 3, 1: wind5
#define VPP_VCTI_PARA (0x1dd6)
#define P_VPP_VCTI_PARA (volatile unsigned int *)((0x1dd6 << 2) + 0xff900000)
//`define VPP_MATRIX_PROBE_COLOR1 8'hd7 //defined before
//Bit 31 //default== 0, urgent fifo hold enable
//Bit 28:12 //default== 0, urgent fifo hold line threshold
//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 VPP_OFIFO_URG_CTRL (0x1dd8)
#define P_VPP_OFIFO_URG_CTRL (volatile unsigned int *)((0x1dd8 << 2) + 0xff900000)
#define VPP_CLIP_MISC0 (0x1dd9)
#define P_VPP_CLIP_MISC0 (volatile unsigned int *)((0x1dd9 << 2) + 0xff900000)
//Bit 29:20 // default == 1023, final clip r channel top
//Bit 19:10 // default == 1023, final clip g channel top
//Bit 9: 0 // default == 1023, final clip b channel top
#define VPP_CLIP_MISC1 (0x1dda)
#define P_VPP_CLIP_MISC1 (volatile unsigned int *)((0x1dda << 2) + 0xff900000)
//Bit 29:20 // default == 0, final clip r channel bottom
//Bit 19:10 // default == 0, final clip g channel bottom
//Bit 9: 0 // default == 0, final clip b channel bottom
#define VPP_MATRIX_COEF13_14 (0x1ddb)
#define P_VPP_MATRIX_COEF13_14 (volatile unsigned int *)((0x1ddb << 2) + 0xff900000)
//Bit 28:16 // default == 0, matrix coef13
//Bit 12:0 // default == 0, matrix coef14
#define VPP_MATRIX_COEF23_24 (0x1ddc)
#define P_VPP_MATRIX_COEF23_24 (volatile unsigned int *)((0x1ddc << 2) + 0xff900000)
//Bit 28:16 // default == 0, matrix coef23
//Bit 12:0 // default == 0, matrix coef24
#define VPP_MATRIX_COEF15_25 (0x1ddd)
#define P_VPP_MATRIX_COEF15_25 (volatile unsigned int *)((0x1ddd << 2) + 0xff900000)
//Bit 28:16 // default == 0, matrix coef15
//Bit 12:0 // default == 0, matrix coef25
#define VPP_MATRIX_CLIP (0x1dde)
#define P_VPP_MATRIX_CLIP (volatile unsigned int *)((0x1dde << 2) + 0xff900000)
//Bit 7:5 // default == 0, mat rs
//Bit 4:3 // default == 0, mat clmod
//Bit 2:0 // default == 0, mat clip enable
#define VPP_XVYCC_MISC0 (0x1ddf)
#define P_VPP_XVYCC_MISC0 (volatile unsigned int *)((0x1ddf << 2) + 0xff900000)
//Bit 29:20 // default == 1023, xvycc clip r channel top
//Bit 19:10 // default == 1023, xvycc clip g channel top
//Bit 9: 0 // default == 1023, xvycc clip b channel top
#define VPP_XVYCC_MISC1 (0x1de0)
#define P_VPP_XVYCC_MISC1 (volatile unsigned int *)((0x1de0 << 2) + 0xff900000)
//Bit 29:20 // default == 0, xvycc clip r channel bottom
//Bit 19:10 // default == 0, xvycc clip g channel bottom
//Bit 9: 0 // default == 0, xvycc clip b channel bottom
#define VPP_VD1_CLIP_MISC0 (0x1de1)
#define P_VPP_VD1_CLIP_MISC0 (volatile unsigned int *)((0x1de1 << 2) + 0xff900000)
//Bit 29:20 // default == 1023, vd1 clip r channel top
//Bit 19:10 // default == 1023, vd1 clip g channel top
//Bit 9: 0 // default == 1023, vd1 clip b channel top
#define VPP_VD1_CLIP_MISC1 (0x1de2)
#define P_VPP_VD1_CLIP_MISC1 (volatile unsigned int *)((0x1de2 << 2) + 0xff900000)
//Bit 29:20 // default == 0, vd1 clip r channel bottom
//Bit 19:10 // default == 0, vd1 clip g channel bottom
//Bit 9: 0 // default == 0, vd1 clip b channel bottom
#define VPP_VD2_CLIP_MISC0 (0x1de3)
#define P_VPP_VD2_CLIP_MISC0 (volatile unsigned int *)((0x1de3 << 2) + 0xff900000)
//Bit 29:20 // default == 1023, vd2 clip r channel top
//Bit 19:10 // default == 1023, vd2 clip g channel top
//Bit 9: 0 // default == 1023, vd2 clip b channel top
#define VPP_VD2_CLIP_MISC1 (0x1de4)
#define P_VPP_VD2_CLIP_MISC1 (volatile unsigned int *)((0x1de4 << 2) + 0xff900000)
//Bit 29:20 // default == 0, vd2 clip r channel bottom
//Bit 19:10 // default == 0, vd2 clip g channel bottom
//Bit 9: 0 // default == 0, vd2 clip b channel bottom
// synopsys translate_off
// synopsys translate_on
//
// Closing file: vpp_regs.h
//
//`define VIU2_VCBUS_BASE 8'h1e
//
// Reading file: v2regs.h
//
// synopsys translate_off
// synopsys translate_on
//===========================================================================
// Video Interface 2 Registers 0xe00 - 0xeff
//===========================================================================
// -----------------------------------------------
// CBUS_BASE: VIU2_VCBUS_BASE = 0x1e
// -----------------------------------------------
#define VIU2_ADDR_START (0x1e00)
#define P_VIU2_ADDR_START (volatile unsigned int *)((0x1e00 << 2) + 0xff900000)
#define VIU2_ADDR_END (0x1eff)
#define P_VIU2_ADDR_END (volatile unsigned int *)((0x1eff << 2) + 0xff900000)
//------------------------------------------------------------------------------
// VIU2 top-level registers
//------------------------------------------------------------------------------
// Bit 0 RW, osd1_reset
// Bit 1 RW, osd2_reset
// Bit 2 RW, vd1_reset
// Bit 3 RW, vd1_fmt_reset
// Bit 7 RW, vpp_reset
#define VIU2_SW_RESET (0x1e01)
#define P_VIU2_SW_RESET (volatile unsigned int *)((0x1e01 << 2) + 0xff900000)
#define VIU2_SW_RESET0 (0x1e02)
#define P_VIU2_SW_RESET0 (volatile unsigned int *)((0x1e02 << 2) + 0xff900000)
// Bit 0 RW, software reset for mcvecrd_mif
// Bit 1 RW, software reset for mcinfowr_mif
// Bit 2 RW, software reset for mcinford_mif
//bit 8 if true, vsync interrup is generate only field == 0
//bit 7:0 fix_disable
#define VIU2_MISC_CTRL0 (0x1e06)
#define P_VIU2_MISC_CTRL0 (volatile unsigned int *)((0x1e06 << 2) + 0xff900000)
//------------------------------------------------------------------------------
// OSD1 registers
//------------------------------------------------------------------------------
// Bit 31 Reserved
// Bit 30 RW, enable_free_clk: 1=use free-running clock to drive logics;
// 0=use gated clock for low power.
// Bit 29 R, test_rd_dsr
// Bit 28 R, osd_done
// Bit 27:24 R, osd_blk_mode
// Bit 23:22 R, osd_blk_ptr
// Bit 21 R, osd_enable
//
// Bit 20:12 RW, global_alpha
// Bit 11 RW, test_rd_en
// Bit 10: 9 Reserved for control signals
// Bit 8: 5 RW, ctrl_mtch_y
// Bit 4 RW, ctrl_422to444
// Bit 3: 0 RW, osd_blk_enable. Bit 0 to enable block 0: 1=enable, 0=disable;
// Bit 1 to enable block 1, and so on.
#define VIU2_OSD1_CTRL_STAT (0x1e10)
#define P_VIU2_OSD1_CTRL_STAT (volatile unsigned int *)((0x1e10 << 2) + 0xff900000)
// Bit 31:26 Reserved
// Bit 25:16 R, fifo_count
// Bit 15: 6 Reserved
// Bit 5: 4 RW, hold_fifo_lines[6:5]
// Bit 3 RW, rgb2yuv_full_range
// Bit 2 RW, alpha_9b_mode
// Bit 1 RW, reserved
// Bit 0 RW, color_expand_mode
#define VIU2_OSD1_CTRL_STAT2 (0x1e2d)
#define P_VIU2_OSD1_CTRL_STAT2 (volatile unsigned int *)((0x1e2d << 2) + 0xff900000)
// Bit 31: 9 Reserved
// Bit 8 RW, 0 = Write LUT, 1 = Read LUT
// Bit 7: 0 RW, lut_addr
#define VIU2_OSD1_COLOR_ADDR (0x1e11)
#define P_VIU2_OSD1_COLOR_ADDR (volatile unsigned int *)((0x1e11 << 2) + 0xff900000)
// Bit 31:24 RW, Y or R
// Bit 23:16 RW, Cb or G
// Bit 15: 8 RW, Cr or B
// Bit 7: 0 RW, Alpha
#define VIU2_OSD1_COLOR (0x1e12)
#define P_VIU2_OSD1_COLOR (volatile unsigned int *)((0x1e12 << 2) + 0xff900000)
// Bit 31:24 RW, Y or R
// Bit 23:16 RW, Cb or G
// Bit 15: 8 RW, Cr or B
// Bit 7: 0 RW, Alpha
#define VIU2_OSD1_TCOLOR_AG0 (0x1e17)
#define P_VIU2_OSD1_TCOLOR_AG0 (volatile unsigned int *)((0x1e17 << 2) + 0xff900000)
#define VIU2_OSD1_TCOLOR_AG1 (0x1e18)
#define P_VIU2_OSD1_TCOLOR_AG1 (volatile unsigned int *)((0x1e18 << 2) + 0xff900000)
#define VIU2_OSD1_TCOLOR_AG2 (0x1e19)
#define P_VIU2_OSD1_TCOLOR_AG2 (volatile unsigned int *)((0x1e19 << 2) + 0xff900000)
#define VIU2_OSD1_TCOLOR_AG3 (0x1e1a)
#define P_VIU2_OSD1_TCOLOR_AG3 (volatile unsigned int *)((0x1e1a << 2) + 0xff900000)
// Bit 31:30 Reserved
// Bit 29 RW, y_rev: 0=normal read, 1=reverse read in Y direction
// Bit 28 RW, x_rev: 0=normal read, 1=reverse read in X direction
// Bit 27:24 Reserved
// Bit 23:16 RW, tbl_addr
// Bit 15 RW, little_endian: 0=big endian, 1=little endian
// Bit 14 RW, rpt_y
// Bit 13:12 RW, interp_ctrl. 0x=No interpolation; 10=Interpolate with previous
// pixel; 11=Interpolate with the average value
// between previous and next pixel.
// Bit 11: 8 RW, osd_blk_mode
// Bit 7 RW, rgb_en
// Bit 6 RW, tc_alpha_en
// Bit 5: 2 RW, color_matrix
// Bit 1 RW, interlace_en
// Bit 0 RW, interlace_sel_odd
#define VIU2_OSD1_BLK0_CFG_W0 (0x1e1b)
#define P_VIU2_OSD1_BLK0_CFG_W0 (volatile unsigned int *)((0x1e1b << 2) + 0xff900000)
#define VIU2_OSD1_BLK1_CFG_W0 (0x1e1f)
#define P_VIU2_OSD1_BLK1_CFG_W0 (volatile unsigned int *)((0x1e1f << 2) + 0xff900000)
#define VIU2_OSD1_BLK2_CFG_W0 (0x1e23)
#define P_VIU2_OSD1_BLK2_CFG_W0 (volatile unsigned int *)((0x1e23 << 2) + 0xff900000)
#define VIU2_OSD1_BLK3_CFG_W0 (0x1e27)
#define P_VIU2_OSD1_BLK3_CFG_W0 (volatile unsigned int *)((0x1e27 << 2) + 0xff900000)
// Bit 31:29 Reserved
// Bit 28:16 RW, x_end
// Bit 15:13 Reserved
// Bit 12: 0 RW, x_start
#define VIU2_OSD1_BLK0_CFG_W1 (0x1e1c)
#define P_VIU2_OSD1_BLK0_CFG_W1 (volatile unsigned int *)((0x1e1c << 2) + 0xff900000)
#define VIU2_OSD1_BLK1_CFG_W1 (0x1e20)
#define P_VIU2_OSD1_BLK1_CFG_W1 (volatile unsigned int *)((0x1e20 << 2) + 0xff900000)
#define VIU2_OSD1_BLK2_CFG_W1 (0x1e24)
#define P_VIU2_OSD1_BLK2_CFG_W1 (volatile unsigned int *)((0x1e24 << 2) + 0xff900000)
#define VIU2_OSD1_BLK3_CFG_W1 (0x1e28)
#define P_VIU2_OSD1_BLK3_CFG_W1 (volatile unsigned int *)((0x1e28 << 2) + 0xff900000)
// Bit 31:29 Reserved
// Bit 28:16 RW, y_end
// Bit 15:13 Reserved
// Bit 12: 0 RW, y_start
#define VIU2_OSD1_BLK0_CFG_W2 (0x1e1d)
#define P_VIU2_OSD1_BLK0_CFG_W2 (volatile unsigned int *)((0x1e1d << 2) + 0xff900000)
#define VIU2_OSD1_BLK1_CFG_W2 (0x1e21)
#define P_VIU2_OSD1_BLK1_CFG_W2 (volatile unsigned int *)((0x1e21 << 2) + 0xff900000)
#define VIU2_OSD1_BLK2_CFG_W2 (0x1e25)
#define P_VIU2_OSD1_BLK2_CFG_W2 (volatile unsigned int *)((0x1e25 << 2) + 0xff900000)
#define VIU2_OSD1_BLK3_CFG_W2 (0x1e29)
#define P_VIU2_OSD1_BLK3_CFG_W2 (volatile unsigned int *)((0x1e29 << 2) + 0xff900000)
// Bit 31:28 Reserved
// Bit 27:16 RW, h_end
// Bit 15:12 Reserved
// Bit 11: 0 RW, h_start
#define VIU2_OSD1_BLK0_CFG_W3 (0x1e1e)
#define P_VIU2_OSD1_BLK0_CFG_W3 (volatile unsigned int *)((0x1e1e << 2) + 0xff900000)
#define VIU2_OSD1_BLK1_CFG_W3 (0x1e22)
#define P_VIU2_OSD1_BLK1_CFG_W3 (volatile unsigned int *)((0x1e22 << 2) + 0xff900000)
#define VIU2_OSD1_BLK2_CFG_W3 (0x1e26)
#define P_VIU2_OSD1_BLK2_CFG_W3 (volatile unsigned int *)((0x1e26 << 2) + 0xff900000)
#define VIU2_OSD1_BLK3_CFG_W3 (0x1e2a)
#define P_VIU2_OSD1_BLK3_CFG_W3 (volatile unsigned int *)((0x1e2a << 2) + 0xff900000)
// Bit 31:28 Reserved
// Bit 27:16 RW, v_end
// Bit 15:12 Reserved
// Bit 11: 0 RW, v_start
#define VIU2_OSD1_BLK0_CFG_W4 (0x1e13)
#define P_VIU2_OSD1_BLK0_CFG_W4 (volatile unsigned int *)((0x1e13 << 2) + 0xff900000)
#define VIU2_OSD1_BLK1_CFG_W4 (0x1e14)
#define P_VIU2_OSD1_BLK1_CFG_W4 (volatile unsigned int *)((0x1e14 << 2) + 0xff900000)
#define VIU2_OSD1_BLK2_CFG_W4 (0x1e15)
#define P_VIU2_OSD1_BLK2_CFG_W4 (volatile unsigned int *)((0x1e15 << 2) + 0xff900000)
#define VIU2_OSD1_BLK3_CFG_W4 (0x1e16)
#define P_VIU2_OSD1_BLK3_CFG_W4 (volatile unsigned int *)((0x1e16 << 2) + 0xff900000)
// Bit 31 RW, burst_len_sel[2] of [2:0]
// Bit 30 RW, byte_swap: In addition to endian control, further define
// whether to swap upper and lower byte within a 16-bit mem word.
// 0=No swap; 1=Swap data[15:0] to be {data[7:0], data[15:8]}
// Bit 29 RW, div_swap : swap the 2 64bits words in 128 bit word
// Bit 28:24 RW, fifo_lim : when osd fifo is small than the fifo_lim*16, closed the rq port of osd_rd_mif
// Bit 23:22 RW, fifo_ctrl: 00 : for 1 word in 1 burst , 01 : for 2words in 1burst, 10: for 4words in 1burst, 11: reserved
// Bit 21:20 R, fifo_st. 0=IDLE, 1=FILL, 2=ABORT
// Bit 19 R, fifo_overflow
//
// Bit 18:12 RW, fifo_depth_val, max value=64: set actual fifo depth to fifo_depth_val*8.
// Bit 11:10 RW, burst_len_sel[1:0] of [2:0]. 0=24(default), 1=32, 2=48, 3=64, 4=96, 5=128.
// Bit 9: 5 RW, hold_fifo_lines[4:0]
// Bit 4 RW, clear_err: one pulse to clear fifo_overflow
// Bit 3 RW, fifo_sync_rst
// Bit 2: 1 RW, endian
// Bit 0 RW, urgent
#define VIU2_OSD1_FIFO_CTRL_STAT (0x1e2b)
#define P_VIU2_OSD1_FIFO_CTRL_STAT (volatile unsigned int *)((0x1e2b << 2) + 0xff900000)
// Bit 31:24 R, Y or R
// Bit 23:16 R, Cb or G
// Bit 15: 8 R, Cr or B
// Bit 7: 0 R, Output Alpha[8:1]
#define VIU2_OSD1_TEST_RDDATA (0x1e2c)
#define P_VIU2_OSD1_TEST_RDDATA (volatile unsigned int *)((0x1e2c << 2) + 0xff900000)
// Bit 15 RW, prot_en: 1=Borrow PROT's FIFO storage, either for rotate or non-rotate.
// Bit 12: 0 RW, effective FIFO size when prot_en=1.
#define VIU2_OSD1_PROT_CTRL (0x1e2e)
#define P_VIU2_OSD1_PROT_CTRL (volatile unsigned int *)((0x1e2e << 2) + 0xff900000)
//------------------------------------------------------------------------------
// OSD2 registers
//------------------------------------------------------------------------------
// Bit 31 Reserved
// Bit 30 RW, enable_free_clk: 1=use free-running clock to drive logics;
// 0=use gated clock for low power.
// Bit 29 R, test_rd_dsr
// Bit 28 R, osd_done
// Bit 27:24 R, osd_blk_mode
// Bit 23:22 R, osd_blk_ptr
// Bit 21 R, osd_enable
//
// Bit 20:12 RW, global_alpha
// Bit 11 RW, test_rd_en
// Bit 10 RW, hl2_en
// Bit 9 RW, hl1_en
// Bit 8: 5 RW, ctrl_mtch_y
// Bit 4 RW, ctrl_422to444
// Bit 3: 0 RW, osd_blk_enable. Bit 0 to enable block 0: 1=enable, 0=disable;
// Bit 1 to enable block 1, and so on.
#define VIU2_OSD2_CTRL_STAT (0x1e30)
#define P_VIU2_OSD2_CTRL_STAT (volatile unsigned int *)((0x1e30 << 2) + 0xff900000)
// Bit 31:26 Reserved
// Bit 25:16 R, fifo_count
// Bit 15: 6 Reserved
// Bit 5: 4 RW, hold_fifo_lines[6:5]
// Bit 3 RW, rgb2yuv_full_range
// Bit 2 RW, alpha_9b_mode
// Bit 1 RW, reserved
// Bit 0 RW, color_expand_mode
#define VIU2_OSD2_CTRL_STAT2 (0x1e4d)
#define P_VIU2_OSD2_CTRL_STAT2 (volatile unsigned int *)((0x1e4d << 2) + 0xff900000)
// Bit 31: 9 Reserved
// Bit 8 RW, 0 = Write LUT, 1 = Read LUT
// Bit 7: 0 RW, lut_addr
#define VIU2_OSD2_COLOR_ADDR (0x1e31)
#define P_VIU2_OSD2_COLOR_ADDR (volatile unsigned int *)((0x1e31 << 2) + 0xff900000)
// Bit 31:24 RW, Y or R
// Bit 23:16 RW, Cb or G
// Bit 15: 8 RW, Cr or B
// Bit 7: 0 RW, Alpha
#define VIU2_OSD2_COLOR (0x1e32)
#define P_VIU2_OSD2_COLOR (volatile unsigned int *)((0x1e32 << 2) + 0xff900000)
// Bit 31:28 Reserved
// Bit 27:16 RW, hl[1-2]_h/v_start
// Bit 15:12 Reserved
// Bit 11: 0 RW, hl[1-2]_h/v_end
#define VIU2_OSD2_HL1_H_START_END (0x1e33)
#define P_VIU2_OSD2_HL1_H_START_END (volatile unsigned int *)((0x1e33 << 2) + 0xff900000)
#define VIU2_OSD2_HL1_V_START_END (0x1e34)
#define P_VIU2_OSD2_HL1_V_START_END (volatile unsigned int *)((0x1e34 << 2) + 0xff900000)
#define VIU2_OSD2_HL2_H_START_END (0x1e35)
#define P_VIU2_OSD2_HL2_H_START_END (volatile unsigned int *)((0x1e35 << 2) + 0xff900000)
#define VIU2_OSD2_HL2_V_START_END (0x1e36)
#define P_VIU2_OSD2_HL2_V_START_END (volatile unsigned int *)((0x1e36 << 2) + 0xff900000)
// Bit 31:24 RW, Y or R
// Bit 23:16 RW, Cb or G
// Bit 15: 8 RW, Cr or B
// Bit 7: 0 RW, Alpha
#define VIU2_OSD2_TCOLOR_AG0 (0x1e37)
#define P_VIU2_OSD2_TCOLOR_AG0 (volatile unsigned int *)((0x1e37 << 2) + 0xff900000)
#define VIU2_OSD2_TCOLOR_AG1 (0x1e38)
#define P_VIU2_OSD2_TCOLOR_AG1 (volatile unsigned int *)((0x1e38 << 2) + 0xff900000)
#define VIU2_OSD2_TCOLOR_AG2 (0x1e39)
#define P_VIU2_OSD2_TCOLOR_AG2 (volatile unsigned int *)((0x1e39 << 2) + 0xff900000)
#define VIU2_OSD2_TCOLOR_AG3 (0x1e3a)
#define P_VIU2_OSD2_TCOLOR_AG3 (volatile unsigned int *)((0x1e3a << 2) + 0xff900000)
// Bit 31:24 Reserved
// Bit 23:16 RW, tbl_addr
// Bit 15 RW, little_endian: 0=big endian, 1=little endian
// Bit 14 RW, rpt_y
// Bit 13:12 RW, interp_ctrl. 0x=No interpolation; 10=Interpolate with previous
// pixel; 11=Interpolate with the average value
// between previous and next pixel.
// Bit 11: 8 RW, osd_blk_mode
// Bit 7 RW, rgb_en
// Bit 6 RW, tc_alpha_en
// Bit 5: 2 RW, color_matrix
// Bit 1 RW, interlace_en
// Bit 0 RW, interlace_sel_odd
#define VIU2_OSD2_BLK0_CFG_W0 (0x1e3b)
#define P_VIU2_OSD2_BLK0_CFG_W0 (volatile unsigned int *)((0x1e3b << 2) + 0xff900000)
#define VIU2_OSD2_BLK1_CFG_W0 (0x1e3f)
#define P_VIU2_OSD2_BLK1_CFG_W0 (volatile unsigned int *)((0x1e3f << 2) + 0xff900000)
#define VIU2_OSD2_BLK2_CFG_W0 (0x1e43)
#define P_VIU2_OSD2_BLK2_CFG_W0 (volatile unsigned int *)((0x1e43 << 2) + 0xff900000)
#define VIU2_OSD2_BLK3_CFG_W0 (0x1e47)
#define P_VIU2_OSD2_BLK3_CFG_W0 (volatile unsigned int *)((0x1e47 << 2) + 0xff900000)
// Bit 31:29 Reserved
// Bit 28:16 RW, x_end
// Bit 15:13 Reserved
// Bit 12: 0 RW, x_start
#define VIU2_OSD2_BLK0_CFG_W1 (0x1e3c)
#define P_VIU2_OSD2_BLK0_CFG_W1 (volatile unsigned int *)((0x1e3c << 2) + 0xff900000)
#define VIU2_OSD2_BLK1_CFG_W1 (0x1e40)
#define P_VIU2_OSD2_BLK1_CFG_W1 (volatile unsigned int *)((0x1e40 << 2) + 0xff900000)
#define VIU2_OSD2_BLK2_CFG_W1 (0x1e44)
#define P_VIU2_OSD2_BLK2_CFG_W1 (volatile unsigned int *)((0x1e44 << 2) + 0xff900000)
#define VIU2_OSD2_BLK3_CFG_W1 (0x1e48)
#define P_VIU2_OSD2_BLK3_CFG_W1 (volatile unsigned int *)((0x1e48 << 2) + 0xff900000)
// Bit 31:29 Reserved
// Bit 28:16 RW, y_end
// Bit 15:13 Reserved
// Bit 12: 0 RW, y_start
#define VIU2_OSD2_BLK0_CFG_W2 (0x1e3d)
#define P_VIU2_OSD2_BLK0_CFG_W2 (volatile unsigned int *)((0x1e3d << 2) + 0xff900000)
#define VIU2_OSD2_BLK1_CFG_W2 (0x1e41)
#define P_VIU2_OSD2_BLK1_CFG_W2 (volatile unsigned int *)((0x1e41 << 2) + 0xff900000)
#define VIU2_OSD2_BLK2_CFG_W2 (0x1e45)
#define P_VIU2_OSD2_BLK2_CFG_W2 (volatile unsigned int *)((0x1e45 << 2) + 0xff900000)
#define VIU2_OSD2_BLK3_CFG_W2 (0x1e49)
#define P_VIU2_OSD2_BLK3_CFG_W2 (volatile unsigned int *)((0x1e49 << 2) + 0xff900000)
// Bit 31:28 Reserved
// Bit 27:16 RW, h_end
// Bit 15:12 Reserved
// Bit 11: 0 RW, h_start
#define VIU2_OSD2_BLK0_CFG_W3 (0x1e3e)
#define P_VIU2_OSD2_BLK0_CFG_W3 (volatile unsigned int *)((0x1e3e << 2) + 0xff900000)
#define VIU2_OSD2_BLK1_CFG_W3 (0x1e42)
#define P_VIU2_OSD2_BLK1_CFG_W3 (volatile unsigned int *)((0x1e42 << 2) + 0xff900000)
#define VIU2_OSD2_BLK2_CFG_W3 (0x1e46)
#define P_VIU2_OSD2_BLK2_CFG_W3 (volatile unsigned int *)((0x1e46 << 2) + 0xff900000)
#define VIU2_OSD2_BLK3_CFG_W3 (0x1e4a)
#define P_VIU2_OSD2_BLK3_CFG_W3 (volatile unsigned int *)((0x1e4a << 2) + 0xff900000)
// Bit 31:28 Reserved
// Bit 27:16 RW, v_end
// Bit 15:12 Reserved
// Bit 11: 0 RW, v_start
#define VIU2_OSD2_BLK0_CFG_W4 (0x1e64)
#define P_VIU2_OSD2_BLK0_CFG_W4 (volatile unsigned int *)((0x1e64 << 2) + 0xff900000)
#define VIU2_OSD2_BLK1_CFG_W4 (0x1e65)
#define P_VIU2_OSD2_BLK1_CFG_W4 (volatile unsigned int *)((0x1e65 << 2) + 0xff900000)
#define VIU2_OSD2_BLK2_CFG_W4 (0x1e66)
#define P_VIU2_OSD2_BLK2_CFG_W4 (volatile unsigned int *)((0x1e66 << 2) + 0xff900000)
#define VIU2_OSD2_BLK3_CFG_W4 (0x1e67)
#define P_VIU2_OSD2_BLK3_CFG_W4 (volatile unsigned int *)((0x1e67 << 2) + 0xff900000)
// Bit 31 RW, burst_len_sel[2] of [2:0]
// Bit 30 RW, byte_swap: In addition to endian control, further define
// whether to swap upper and lower byte within a 16-bit mem word.
// 0=No swap; 1=Swap data[15:0] to be {data[7:0], data[15:8]}
// Bit 29 RW, div_swap : swap the 2 64bits words in 128 bit word
// Bit 28:24 RW, fifo_lim : when osd fifo is small than the fifo_lim*16, closed the rq port of osd_rd_mif
// Bit 23:22 RW, fifo_ctrl: 00 : for 1 word in 1 burst , 01 : for 2words in 1burst, 10: for 4words in 1burst, 11: reserved
// Bit 21:20 R, fifo_st. 0=IDLE, 1=FILL, 2=ABORT
// Bit 19 R, fifo_overflow
// Bit 18:12 RW, fifo_depth_val, max value=64: set actual fifo depth to fifo_depth_val*8.
// Bit 11:10 RW, burst_len_sel[1:0] of [2:0]. 0=24(default), 1=32, 2=48, 3=64, 4=96, 5=128.
// Bit 9: 5 RW, hold_fifo_lines[4:0]
// Bit 4 RW, clear_err: one pulse to clear fifo_overflow
// Bit 3 RW, fifo_sync_rst
// Bit 2: 1 RW, endian
// Bit 0 RW, urgent
#define VIU2_OSD2_FIFO_CTRL_STAT (0x1e4b)
#define P_VIU2_OSD2_FIFO_CTRL_STAT (volatile unsigned int *)((0x1e4b << 2) + 0xff900000)
// Bit 31:24 R, Y or R
// Bit 23:16 R, Cb or G
// Bit 15: 8 R, Cr or B
// Bit 7: 0 R, Output Alpha[8:1]
#define VIU2_OSD2_TEST_RDDATA (0x1e4c)
#define P_VIU2_OSD2_TEST_RDDATA (volatile unsigned int *)((0x1e4c << 2) + 0xff900000)
// Bit 15 RW, prot_en: 1=Borrow PROT's FIFO storage, either for rotate or non-rotate.
// Bit 12: 0 RW, effective FIFO size when prot_en=1.
#define VIU2_OSD2_PROT_CTRL (0x1e4e)
#define P_VIU2_OSD2_PROT_CTRL (volatile unsigned int *)((0x1e4e << 2) + 0xff900000)
//------------------------------------------------------------------------------
// VD1 path
//------------------------------------------------------------------------------
#define VIU2_VD1_IF0_GEN_REG (0x1e50)
#define P_VIU2_VD1_IF0_GEN_REG (volatile unsigned int *)((0x1e50 << 2) + 0xff900000)
#define VIU2_VD1_IF0_CANVAS0 (0x1e51)
#define P_VIU2_VD1_IF0_CANVAS0 (volatile unsigned int *)((0x1e51 << 2) + 0xff900000)
#define VIU2_VD1_IF0_CANVAS1 (0x1e52)
#define P_VIU2_VD1_IF0_CANVAS1 (volatile unsigned int *)((0x1e52 << 2) + 0xff900000)
#define VIU2_VD1_IF0_LUMA_X0 (0x1e53)
#define P_VIU2_VD1_IF0_LUMA_X0 (volatile unsigned int *)((0x1e53 << 2) + 0xff900000)
#define VIU2_VD1_IF0_LUMA_Y0 (0x1e54)
#define P_VIU2_VD1_IF0_LUMA_Y0 (volatile unsigned int *)((0x1e54 << 2) + 0xff900000)
#define VIU2_VD1_IF0_CHROMA_X0 (0x1e55)
#define P_VIU2_VD1_IF0_CHROMA_X0 (volatile unsigned int *)((0x1e55 << 2) + 0xff900000)
#define VIU2_VD1_IF0_CHROMA_Y0 (0x1e56)
#define P_VIU2_VD1_IF0_CHROMA_Y0 (volatile unsigned int *)((0x1e56 << 2) + 0xff900000)
#define VIU2_VD1_IF0_LUMA_X1 (0x1e57)
#define P_VIU2_VD1_IF0_LUMA_X1 (volatile unsigned int *)((0x1e57 << 2) + 0xff900000)
#define VIU2_VD1_IF0_LUMA_Y1 (0x1e58)
#define P_VIU2_VD1_IF0_LUMA_Y1 (volatile unsigned int *)((0x1e58 << 2) + 0xff900000)
#define VIU2_VD1_IF0_CHROMA_X1 (0x1e59)
#define P_VIU2_VD1_IF0_CHROMA_X1 (volatile unsigned int *)((0x1e59 << 2) + 0xff900000)
#define VIU2_VD1_IF0_CHROMA_Y1 (0x1e5a)
#define P_VIU2_VD1_IF0_CHROMA_Y1 (volatile unsigned int *)((0x1e5a << 2) + 0xff900000)
#define VIU2_VD1_IF0_RPT_LOOP (0x1e5b)
#define P_VIU2_VD1_IF0_RPT_LOOP (volatile unsigned int *)((0x1e5b << 2) + 0xff900000)
#define VIU2_VD1_IF0_LUMA0_RPT_PAT (0x1e5c)
#define P_VIU2_VD1_IF0_LUMA0_RPT_PAT (volatile unsigned int *)((0x1e5c << 2) + 0xff900000)
#define VIU2_VD1_IF0_CHROMA0_RPT_PAT (0x1e5d)
#define P_VIU2_VD1_IF0_CHROMA0_RPT_PAT (volatile unsigned int *)((0x1e5d << 2) + 0xff900000)
#define VIU2_VD1_IF0_LUMA1_RPT_PAT (0x1e5e)
#define P_VIU2_VD1_IF0_LUMA1_RPT_PAT (volatile unsigned int *)((0x1e5e << 2) + 0xff900000)
#define VIU2_VD1_IF0_CHROMA1_RPT_PAT (0x1e5f)
#define P_VIU2_VD1_IF0_CHROMA1_RPT_PAT (volatile unsigned int *)((0x1e5f << 2) + 0xff900000)
#define VIU2_VD1_IF0_LUMA_PSEL (0x1e60)
#define P_VIU2_VD1_IF0_LUMA_PSEL (volatile unsigned int *)((0x1e60 << 2) + 0xff900000)
#define VIU2_VD1_IF0_CHROMA_PSEL (0x1e61)
#define P_VIU2_VD1_IF0_CHROMA_PSEL (volatile unsigned int *)((0x1e61 << 2) + 0xff900000)
#define VIU2_VD1_IF0_DUMMY_PIXEL (0x1e62)
#define P_VIU2_VD1_IF0_DUMMY_PIXEL (volatile unsigned int *)((0x1e62 << 2) + 0xff900000)
#define VIU2_VD1_IF0_LUMA_FIFO_SIZE (0x1e63)
#define P_VIU2_VD1_IF0_LUMA_FIFO_SIZE (volatile unsigned int *)((0x1e63 << 2) + 0xff900000)
#define VIU2_VD1_IF0_RANGE_MAP_Y (0x1e6a)
#define P_VIU2_VD1_IF0_RANGE_MAP_Y (volatile unsigned int *)((0x1e6a << 2) + 0xff900000)
#define VIU2_VD1_IF0_RANGE_MAP_CB (0x1e6b)
#define P_VIU2_VD1_IF0_RANGE_MAP_CB (volatile unsigned int *)((0x1e6b << 2) + 0xff900000)
#define VIU2_VD1_IF0_RANGE_MAP_CR (0x1e6c)
#define P_VIU2_VD1_IF0_RANGE_MAP_CR (volatile unsigned int *)((0x1e6c << 2) + 0xff900000)
#define VIU2_VD1_IF0_GEN_REG2 (0x1e6d)
#define P_VIU2_VD1_IF0_GEN_REG2 (volatile unsigned int *)((0x1e6d << 2) + 0xff900000)
#define VIU2_VD1_IF0_PROT_CNTL (0x1e6e)
#define P_VIU2_VD1_IF0_PROT_CNTL (volatile unsigned int *)((0x1e6e << 2) + 0xff900000)
#define VIU2_VD1_IF0_URGENT_CTRL (0x1e6f)
#define P_VIU2_VD1_IF0_URGENT_CTRL (volatile unsigned int *)((0x1e6f << 2) + 0xff900000)
//Bit 31 it true, disable clock, otherwise enable clock
//Bit 30 soft rst bit
//Bit 28 if true, horizontal formatter use repeating to generete pixel, otherwise use bilinear interpolation
//Bit 27:24 horizontal formatter initial phase
//Bit 23 horizontal formatter repeat pixel 0 enable
//Bit 22:21 horizontal Y/C ratio, 00: 1:1, 01: 2:1, 10: 4:1
//Bit 20 horizontal formatter enable
//Bit 19 if true, always use phase0 while vertical formater, meaning always
// repeat data, no interpolation
//Bit 18 if true, disable vertical formatter chroma repeat last line
//Bit 17 veritcal formatter dont need repeat line on phase0, 1: enable, 0: disable
//Bit 16 veritcal formatter repeat line 0 enable
//Bit 15:12 vertical formatter skip line num at the beginning
//Bit 11:8 vertical formatter initial phase
//Bit 7:1 vertical formatter phase step (3.4)
//Bit 0 vertical formatter enable
#define VIU2_VD1_FMT_CTRL (0x1e68)
#define P_VIU2_VD1_FMT_CTRL (volatile unsigned int *)((0x1e68 << 2) + 0xff900000)
//Bit 27:16 horizontal formatter width
//Bit 11:0 vertical formatter width
#define VIU2_VD1_FMT_W (0x1e69)
#define P_VIU2_VD1_FMT_W (volatile unsigned int *)((0x1e69 << 2) + 0xff900000)
#define VIU2_VD1_IF0_GEN_REG3 (0x1e70)
#define P_VIU2_VD1_IF0_GEN_REG3 (volatile unsigned int *)((0x1e70 << 2) + 0xff900000)
//bit 31:1, reversed
//bit 0, cntl_64bit_rev
// synopsys translate_off
// synopsys translate_on
//
// Closing file: v2regs.h
//
//`define VIUB_VCBUS_BASE 8'h20
//
// Reading file: vregs_clk1.h
//
//===========================================================================
// Video Interface Registers 0xa00 - 0xaff
//===========================================================================
// -----------------------------------------------
// CBUS_BASE: VIUB_VCBUS_BASE = 0x20
// -----------------------------------------------
#define VIUB_ADDR_START (0x2000)
#define P_VIUB_ADDR_START (volatile unsigned int *)((0x2000 << 2) + 0xff900000)
#define VIUB_ADDR_END (0x20ff)
#define P_VIUB_ADDR_END (volatile unsigned int *)((0x20ff << 2) + 0xff900000)
//`define TRACE_REG 8'ff
//------------------------------------------------------------------------------
// VIU top-level registers
//------------------------------------------------------------------------------
// Bit 0 RW, osd1_reset
// Bit 1 RW, osd2_reset
// Bit 2 RW, vd1_reset
// Bit 3 RW, vd1_fmt_reset
// Bit 4 RW, vd2_reset
// Bit 5 RW, vd2_fmt_reset
// Bit 6 RW, di_dsr1to2_reset
// Bit 7 RW, vpp_reset
// Bit 8 RW, di_if1_reset
// Bit 9 RW, di_if1_fmt_reset
// Bit 10 RW, di_inp_reset
// Bit 11 RW, di_inp_fmt_reset
// Bit 12 RW, di_mem_reset
// Bit 13 RW, di_mem_fmt_reset
// Bit 14 RW, di_nr_wr_mif_reset
// Bit 15 RW, dein_wr_mif_reset
// Bit 16 RW, di_chan2_mif_reset
// Bit 17 RW, di_mtn_wr_mif_reset
// Bit 18 RW, di_mtn_rd_mif_reset
// Bit 19 RW, di_mad_reset
// Bit 20 RW, vdin0_reset
// Bit 21 RW, vdin1_reset
// Bit 22 RW, nrin_mux_reset
// Bit 23 RW, vdin0_wr_reset
// Bit 24 RW, vdin1_wr_reset
// Bit 25 RW, reserved
// Bit 26 RW, d2d3_reset
// Bit 27 RW, di_cont_wr_mif_reset
// Bit 28 RW, di_cont_rd_mif_reset
#define VIUB_SW_RESET (0x2001)
#define P_VIUB_SW_RESET (volatile unsigned int *)((0x2001 << 2) + 0xff900000)
#define VIUB_SW_RESET0 (0x2002)
#define P_VIUB_SW_RESET0 (volatile unsigned int *)((0x2002 << 2) + 0xff900000)
// Bit 0 RW, software reset for mcvecrd_mif
// Bit 1 RW, software reset for mcinfowr_mif
// Bit 2 RW, software reset for mcinford_mif
//bit 8 if true, vsync interrup is generate only field == 0
//bit 7:0 fix_disable
#define VIUB_MISC_CTRL0 (0x2006)
#define P_VIUB_MISC_CTRL0 (volatile unsigned int *)((0x2006 << 2) + 0xff900000)
#define VIUB_GCLK_CTRL0 (0x2007)
#define P_VIUB_GCLK_CTRL0 (volatile unsigned int *)((0x2007 << 2) + 0xff900000)
//// gclk_ctrl0_gl[ 0] : def=1 di_top_wrap clk enable
////
//// gclk_ctrl0_gl[ 8] : def=0 mad pre clock enable, from mad clock
//// gclk_ctrl0_gl[ 9] : def=0 mad post clock enable, from mad clock
//// gclk_ctrl0_gl[10] : def=0 div clock enable, di slow clock including di&mcdi
//// gclk_ctrl0_gl[11] : def=0 mcdi clock enable, from div clock
//// gclk_ctrl0_gl[12] : def=0 di post clock enable, from div clock
//// gclk_ctrl0_gl[13] : def=0 reserved
//// gclk_ctrl0_gl[14] : def=1 di_no_clk_gate, for old di
//// gclk_ctrl0_gl[15] : def=0 di_gate_all, for old di
#define VIUB_GCLK_CTRL1 (0x2008)
#define P_VIUB_GCLK_CTRL1 (volatile unsigned int *)((0x2008 << 2) + 0xff900000)
//// gclk_ctrl1_gl[ 1: 0] : def=2'b00 mif-sub-arb clock gate ctrl [1]: clock valid, [0]: clock close
//// gclk_ctrl1_gl[ 3: 2] : def=2'b00 if1 rdmif clock gate ctrl [1]: clock valid, [0]: clock close
//// gclk_ctrl1_gl[ 5: 4] : def=2'b00 if2 rdmif clock gate ctrl [1]: clock valid, [0]: clock close
//// gclk_ctrl1_gl[ 7: 6] : def=2'b00 de wrmif clock gate ctrl [1]: clock valid, [0]: clock close
//// gclk_ctrl1_gl[ 9: 8] : def=2'b00 mtnrd post mif clock gate ctrl [1]: clock valid, [0]: clock close
//// gclk_ctrl1_gl[11:10] : def=2'b00 mcdi post mif clock gate ctrl [1]: clock valid, [0]: clock close
//// gclk_ctrl1_gl[17:16] : def=2'b00 inp rdmif clock gate ctrl [1]: clock valid, [0]: clock close
//// gclk_ctrl1_gl[19:18] : def=2'b00 mem rdmif clock gate ctrl [1]: clock valid, [0]: clock close
//// gclk_ctrl1_gl[21:20] : def=2'b00 chan rdmif clock gate ctrl [1]: clock valid, [0]: clock close
//// gclk_ctrl1_gl[23:22] : def=2'b00 nr wrmif clock gate ctrl [1]: clock valid, [0]: clock close
//// gclk_ctrl1_gl[25:24] : def=2'b00 mtn mif clock gate ctrl [1]: clock valid, [0]: clock close
//// gclk_ctrl1_gl[27:26] : def=2'b00 mcdi pre mif clock gate ctrl [1]: clock valid, [0]: clock close
////
#define VIUB_GCLK_CTRL2 (0x2009)
#define P_VIUB_GCLK_CTRL2 (volatile unsigned int *)((0x2009 << 2) + 0xff900000)
//// gclk_ctrl_pre[ 1: 0] : def=2'b00 nr clock gate ctrl [1]: clock valid, [0]: clock close
//// gclk_ctrl_pre[ 3: 2] : def=2'b00 pd clock gate ctrl [1]: clock valid, [0]: clock close
//// gclk_ctrl_pre[ 5: 4] : def=2'b00 mtn det clock gate ctrl [1]: clock valid, [0]: clock close
//// gclk_ctrl_pre[ 7: 6] : def=2'b00 debanding clock gate ctrl [1]: clock valid, [0]: clock close
//// gclk_ctrl_pre[ 9: 8] : def=2'b00 dnr clock gate ctrl [1]: clock valid, [0]: clock close
//// gclk_ctrl_pre[11:10] : def=2'b00 nr&dnr blend clock gate ctrl [1]: clock valid, [0]: clock close
//// gclk_ctrl_pre[13:12] : def=2'b00 mcdi clock gate ctrl [1]: clock valid, [0]: clock close
#define VIUB_GCLK_CTRL3 (0x200a)
#define P_VIUB_GCLK_CTRL3 (volatile unsigned int *)((0x200a << 2) + 0xff900000)
//// gclk_ctrl_post[ 1: 0] : def=2'b00 di blend clock gate ctrl [1]: clock valid, [0]: clock close
//// gclk_ctrl_post[ 3: 2] : def=2'b00 ei clock gate ctrl [1]: clock valid, [0]: clock close
//// gclk_ctrl_post[ 5: 4] : def=2'b00 ei_0 clock gate ctrl [1]: clock valid, [0]: clock close
#define DI_IF2_GEN_REG (0x2010)
#define P_DI_IF2_GEN_REG (volatile unsigned int *)((0x2010 << 2) + 0xff900000)
#define DI_IF2_CANVAS0 (0x2011)
#define P_DI_IF2_CANVAS0 (volatile unsigned int *)((0x2011 << 2) + 0xff900000)
#define DI_IF2_LUMA_X0 (0x2012)
#define P_DI_IF2_LUMA_X0 (volatile unsigned int *)((0x2012 << 2) + 0xff900000)
#define DI_IF2_LUMA_Y0 (0x2013)
#define P_DI_IF2_LUMA_Y0 (volatile unsigned int *)((0x2013 << 2) + 0xff900000)
#define DI_IF2_CHROMA_X0 (0x2014)
#define P_DI_IF2_CHROMA_X0 (volatile unsigned int *)((0x2014 << 2) + 0xff900000)
#define DI_IF2_CHROMA_Y0 (0x2015)
#define P_DI_IF2_CHROMA_Y0 (volatile unsigned int *)((0x2015 << 2) + 0xff900000)
#define DI_IF2_RPT_LOOP (0x2016)
#define P_DI_IF2_RPT_LOOP (volatile unsigned int *)((0x2016 << 2) + 0xff900000)
#define DI_IF2_LUMA0_RPT_PAT (0x2017)
#define P_DI_IF2_LUMA0_RPT_PAT (volatile unsigned int *)((0x2017 << 2) + 0xff900000)
#define DI_IF2_CHROMA0_RPT_PAT (0x2018)
#define P_DI_IF2_CHROMA0_RPT_PAT (volatile unsigned int *)((0x2018 << 2) + 0xff900000)
#define DI_IF2_DUMMY_PIXEL (0x2019)
#define P_DI_IF2_DUMMY_PIXEL (volatile unsigned int *)((0x2019 << 2) + 0xff900000)
#define DI_IF2_LUMA_FIFO_SIZE (0x201a)
#define P_DI_IF2_LUMA_FIFO_SIZE (volatile unsigned int *)((0x201a << 2) + 0xff900000)
#define DI_IF2_RANGE_MAP_Y (0x201b)
#define P_DI_IF2_RANGE_MAP_Y (volatile unsigned int *)((0x201b << 2) + 0xff900000)
#define DI_IF2_RANGE_MAP_CB (0x201c)
#define P_DI_IF2_RANGE_MAP_CB (volatile unsigned int *)((0x201c << 2) + 0xff900000)
#define DI_IF2_RANGE_MAP_CR (0x201d)
#define P_DI_IF2_RANGE_MAP_CR (volatile unsigned int *)((0x201d << 2) + 0xff900000)
#define DI_IF2_GEN_REG2 (0x201e)
#define P_DI_IF2_GEN_REG2 (volatile unsigned int *)((0x201e << 2) + 0xff900000)
#define DI_IF2_FMT_CTRL (0x201f)
#define P_DI_IF2_FMT_CTRL (volatile unsigned int *)((0x201f << 2) + 0xff900000)
#define DI_IF2_FMT_W (0x2020)
#define P_DI_IF2_FMT_W (volatile unsigned int *)((0x2020 << 2) + 0xff900000)
#define DI_IF2_URGENT_CTRL (0x2021)
#define P_DI_IF2_URGENT_CTRL (volatile unsigned int *)((0x2021 << 2) + 0xff900000)
//bit15, auto enable; bit14, canvas write mode ;7:4, high threshold ;3:0 , low threshold for di inp chroma path
//bit31, auto enable; bit30, canvas write mode ;23:20, high threshold ;19:16 , low threshold for di inp luma path
#define DI_IF2_GEN_REG3 (0x2022)
#define P_DI_IF2_GEN_REG3 (volatile unsigned int *)((0x2022 << 2) + 0xff900000)
//bit 31:1, reversed
//bit 0, cntl_64bit_rev
#define DI_IF1_URGENT_CTRL (0x20a3)
#define P_DI_IF1_URGENT_CTRL (volatile unsigned int *)((0x20a3 << 2) + 0xff900000)
//bit15, auto enable; bit14, canvas write mode ;7:4, high threshold ;3:0 , low threshold for di inp chroma path
//bit31, auto enable; bit30, canvas write mode ;23:20, high threshold ;19:16 , low threshold for di inp luma path
#define DI_INP_URGENT_CTRL (0x20a4)
#define P_DI_INP_URGENT_CTRL (volatile unsigned int *)((0x20a4 << 2) + 0xff900000)
//bit15, auto enable; bit14, canvas write mode ;7:4, high threshold ;3:0 , low threshold for di mem chroma path
//bit31, auto enable; bit30, canvas write mode ;23:20, high threshold ;19:16 , low threshold for di mem luma path
#define DI_MEM_URGENT_CTRL (0x20a5)
#define P_DI_MEM_URGENT_CTRL (volatile unsigned int *)((0x20a5 << 2) + 0xff900000)
//bit15, auto enable; bit14, canvas write mode ;7:4, high threshold ;3:0 , low threshold for di chan2 chroma path
//bit31, auto enable; bit30, canvas write mode ;23:20, high threshold ;19:16 , low threshold for di chan2 luma path
#define DI_CHAN2_URGENT_CTRL (0x20a6)
#define P_DI_CHAN2_URGENT_CTRL (volatile unsigned int *)((0x20a6 << 2) + 0xff900000)
#define DI_IF1_GEN_REG3 (0x20a7)
#define P_DI_IF1_GEN_REG3 (volatile unsigned int *)((0x20a7 << 2) + 0xff900000)
//bit 31:1, reversed
//bit 0, cntl_64bit_rev
#define DI_INP_GEN_REG3 (0x20a8)
#define P_DI_INP_GEN_REG3 (volatile unsigned int *)((0x20a8 << 2) + 0xff900000)
//bit 31:1, reversed
//bit 0, cntl_64bit_rev
#define DI_MEM_GEN_REG3 (0x20a9)
#define P_DI_MEM_GEN_REG3 (volatile unsigned int *)((0x20a9 << 2) + 0xff900000)
//bit 31:1, reversed
//bit 0, cntl_64bit_rev
#define DI_CHAN2_GEN_REG3 (0x20aa)
#define P_DI_CHAN2_GEN_REG3 (volatile unsigned int *)((0x20aa << 2) + 0xff900000)
//bit 31:1, reversed
//bit 0, cntl_64bit_rev
//
// Closing file: vregs_clk1.h
//
//======================================================================
// vpu register.
//======================================================================
// -----------------------------------------------
// CBUS_BASE: VPU_VCBUS_BASE = 0x27
// -----------------------------------------------
#define VPU_OSD1_MMC_CTRL (0x2701)
#define P_VPU_OSD1_MMC_CTRL (volatile unsigned int *)((0x2701 << 2) + 0xff900000)
#define VPU_OSD2_MMC_CTRL (0x2702)
#define P_VPU_OSD2_MMC_CTRL (volatile unsigned int *)((0x2702 << 2) + 0xff900000)
#define VPU_VD1_MMC_CTRL (0x2703)
#define P_VPU_VD1_MMC_CTRL (volatile unsigned int *)((0x2703 << 2) + 0xff900000)
#define VPU_VD2_MMC_CTRL (0x2704)
#define P_VPU_VD2_MMC_CTRL (volatile unsigned int *)((0x2704 << 2) + 0xff900000)
#define VPU_DI_IF1_MMC_CTRL (0x2705)
#define P_VPU_DI_IF1_MMC_CTRL (volatile unsigned int *)((0x2705 << 2) + 0xff900000)
#define VPU_DI_MEM_MMC_CTRL (0x2706)
#define P_VPU_DI_MEM_MMC_CTRL (volatile unsigned int *)((0x2706 << 2) + 0xff900000)
#define VPU_DI_INP_MMC_CTRL (0x2707)
#define P_VPU_DI_INP_MMC_CTRL (volatile unsigned int *)((0x2707 << 2) + 0xff900000)
#define VPU_DI_MTNRD_MMC_CTRL (0x2708)
#define P_VPU_DI_MTNRD_MMC_CTRL (volatile unsigned int *)((0x2708 << 2) + 0xff900000)
#define VPU_DI_CHAN2_MMC_CTRL (0x2709)
#define P_VPU_DI_CHAN2_MMC_CTRL (volatile unsigned int *)((0x2709 << 2) + 0xff900000)
#define VPU_DI_MTNWR_MMC_CTRL (0x270a)
#define P_VPU_DI_MTNWR_MMC_CTRL (volatile unsigned int *)((0x270a << 2) + 0xff900000)
#define VPU_DI_NRWR_MMC_CTRL (0x270b)
#define P_VPU_DI_NRWR_MMC_CTRL (volatile unsigned int *)((0x270b << 2) + 0xff900000)
#define VPU_DI_DIWR_MMC_CTRL (0x270c)
#define P_VPU_DI_DIWR_MMC_CTRL (volatile unsigned int *)((0x270c << 2) + 0xff900000)
#define VPU_VDIN0_MMC_CTRL (0x270d)
#define P_VPU_VDIN0_MMC_CTRL (volatile unsigned int *)((0x270d << 2) + 0xff900000)
#define VPU_VDIN1_MMC_CTRL (0x270e)
#define P_VPU_VDIN1_MMC_CTRL (volatile unsigned int *)((0x270e << 2) + 0xff900000)
#define VPU_BT656_MMC_CTRL (0x270f)
#define P_VPU_BT656_MMC_CTRL (volatile unsigned int *)((0x270f << 2) + 0xff900000)
#define VPU_TVD3D_MMC_CTRL (0x2710)
#define P_VPU_TVD3D_MMC_CTRL (volatile unsigned int *)((0x2710 << 2) + 0xff900000)
#define VPU_TVDVBI_MMC_CTRL (0x2711)
#define P_VPU_TVDVBI_MMC_CTRL (volatile unsigned int *)((0x2711 << 2) + 0xff900000)
//Read only
//`define VPU_TVDVBI_VSLATCH_ADDR 8'h12
//Read only
//`define VPU_TVDVBI_WRRSP_ADDR 8'h13
#define VPU_VDIN_PRE_ARB_CTRL (0x2714)
#define P_VPU_VDIN_PRE_ARB_CTRL (volatile unsigned int *)((0x2714 << 2) + 0xff900000)
#define VPU_VDISP_PRE_ARB_CTRL (0x2715)
#define P_VPU_VDISP_PRE_ARB_CTRL (volatile unsigned int *)((0x2715 << 2) + 0xff900000)
#define VPU_VPUARB2_PRE_ARB_CTRL (0x2716)
#define P_VPU_VPUARB2_PRE_ARB_CTRL (volatile unsigned int *)((0x2716 << 2) + 0xff900000)
#define VPU_OSD3_MMC_CTRL (0x2717)
#define P_VPU_OSD3_MMC_CTRL (volatile unsigned int *)((0x2717 << 2) + 0xff900000)
#define VPU_OSD4_MMC_CTRL (0x2718)
#define P_VPU_OSD4_MMC_CTRL (volatile unsigned int *)((0x2718 << 2) + 0xff900000)
#define VPU_VD3_MMC_CTRL (0x2719)
#define P_VPU_VD3_MMC_CTRL (volatile unsigned int *)((0x2719 << 2) + 0xff900000)
// [31:11] Reserved.
// [10: 8] cntl_viu_vdin_sel_data. Select VIU to VDIN data path, must clear it first before changing the path selection:
// 3'b000=Disable VIU to VDIN path;
// 3'b001=Enable VIU of ENC_I domain to VDIN;
// 3'b010=Enable VIU of ENC_P domain to VDIN;
// 3'b100=Enable VIU of ENC_T domain to VDIN;
// [ 6: 4] cntl_viu_vdin_sel_clk. Select which clock to VDIN path, must clear it first before changing the clock:
// 3'b000=Disable VIU to VDIN clock;
// 3'b001=Select encI clock to VDIN;
// 3'b010=Select encP clock to VDIN;
// 3'b100=Select encT clock to VDIN;
// [ 3: 2] cntl_viu2_sel_venc. Select which one of the encI/P/T that VIU2 connects to:
// 0=No connection, 1=ENCI, 2=ENCP, 3=ENCT.
// [ 1: 0] cntl_viu1_sel_venc. Select which one of the encI/P/T that VIU1 connects to:
// 0=No connection, 1=ENCI, 2=ENCP, 3=ENCT.
#define VPU_VIU_VENC_MUX_CTRL (0x271a)
#define P_VPU_VIU_VENC_MUX_CTRL (volatile unsigned int *)((0x271a << 2) + 0xff900000)
// [15:12] rd_rate. 0=A read every clk2; 1=A read every 2 clk2; ...; 15=A read every 16 clk2.
// [11: 8] wr_rate. 0=A write every clk1; 1=A write every 2 clk1; ...; 15=A write every 16 clk1.
// [ 7: 5] data_comp_map. Input data is CrYCb(BRG), map the output data to desired format:
// 0=output CrYCb(BRG);
// 1=output YCbCr(RGB);
// 2=output YCrCb(RBG);
// 3=output CbCrY(GBR);
// 4=output CbYCr(GRB);
// 5=output CrCbY(BGR);
// 6,7=Rsrv.
// [ 4] inv_dvi_clk. 1=Invert clock to external DVI, (clock invertion exists at internal HDMI).
// [ 3] inv_vsync. 1=Invert Vsync polarity.
// [ 2] inv_hsync. 1=Invert Hsync polarity.
// [ 1: 0] src_sel. 0=Disable output to HDMI; 1=Select VENC_I output to HDMI; 2=Select VENC_P output.
#define VPU_HDMI_SETTING (0x271b)
#define P_VPU_HDMI_SETTING (volatile unsigned int *)((0x271b << 2) + 0xff900000)
#define ENCI_INFO_READ (0x271c)
#define P_ENCI_INFO_READ (volatile unsigned int *)((0x271c << 2) + 0xff900000)
#define ENCP_INFO_READ (0x271d)
#define P_ENCP_INFO_READ (volatile unsigned int *)((0x271d << 2) + 0xff900000)
#define ENCT_INFO_READ (0x271e)
#define P_ENCT_INFO_READ (volatile unsigned int *)((0x271e << 2) + 0xff900000)
#define ENCL_INFO_READ (0x271f)
#define P_ENCL_INFO_READ (volatile unsigned int *)((0x271f << 2) + 0xff900000)
// Bit 0 RW, viu_rst_n
// Bit 1 RW, vdin_mmc_arb_rst_n
// Bit 2 RW, vdisp_mmc_arb_rst_n
// Bit 3 RW, vpuarb2_mmc_arb_rst_n
#define VPU_SW_RESET (0x2720)
#define P_VPU_SW_RESET (volatile unsigned int *)((0x2720 << 2) + 0xff900000)
//Bit 30 d2d3_depr_req_sel, 0:vdisp_pre_arb, 1: vpuarb2_pre_arb
//Bit 27:22 d2d3_depr_brst_num
//Bit 21:16 d2d3_depr_id
//Bit 14 d2d3_depw_req_sel, 0: vdin_pre_arb, 1: vdisp_pre_arb
//Bit 11:6 d2d3_depw_brst_num
//Bit 5:0 d2d3_depw_id
#define VPU_D2D3_MMC_CTRL (0x2721)
#define P_VPU_D2D3_MMC_CTRL (volatile unsigned int *)((0x2721 << 2) + 0xff900000)
//Bit 30 mtn_contrd_req_pre, 0:disp1_arb, 1: vdin_pre_arb
//Bit 27:22 mtn_contrd_brst_num
//Bit 21:16 mtn_contrd_id
//Bit 14 mtn_contwr_req_pre, 0: vdisp1_arb, 1: vdin_pre_arb
//Bit 11:6 mtn_contwr_brst_num
//Bit 5:0 mtn_contwr_id
#define VPU_CONT_MMC_CTRL (0x2722)
#define P_VPU_CONT_MMC_CTRL (volatile unsigned int *)((0x2722 << 2) + 0xff900000)
// Bit 6 RW, gclk_mpeg_vpu_misc
// Bit 5 RW, gclk_mpeg_venc_l_top
// Bit 4 RW, gclk_mpeg_vencl_int
// Bit 3 RW, gclk_mpeg_vencp_int
// Bit 2 RW, gclk_mpeg_vi2_top
// Bit 1 RW, gclk_mpeg_vi_top
// Bit 0 RW, gclk_mpeg_venc_p_top
#define VPU_CLK_GATE (0x2723)
#define P_VPU_CLK_GATE (volatile unsigned int *)((0x2723 << 2) + 0xff900000)
//Bit 12 RW, rdma_pre
//Bit 11: 6 RW, rdma_num
//Bit 5: 0 RW, rdma_id
#define VPU_RDMA_MMC_CTRL (0x2724)
#define P_VPU_RDMA_MMC_CTRL (volatile unsigned int *)((0x2724 << 2) + 0xff900000)
#define VPU_MEM_PD_REG0 (0x2725)
#define P_VPU_MEM_PD_REG0 (volatile unsigned int *)((0x2725 << 2) + 0xff900000)
#define VPU_MEM_PD_REG1 (0x2726)
#define P_VPU_MEM_PD_REG1 (volatile unsigned int *)((0x2726 << 2) + 0xff900000)
// [ 31] hdmi_data_ovr_en: 1=Enable overriding data input to HDMI TX with hdmi_data_ovr[29:0]. 0=No override. Default 0.
// [ 30] Reserved. Default 0
// [29: 0] hdmi_data_ovr. Default 0.
#define VPU_HDMI_DATA_OVR (0x2727)
#define P_VPU_HDMI_DATA_OVR (volatile unsigned int *)((0x2727 << 2) + 0xff900000)
//Bit 15 RW, prot1_sel_osd4
//Bit 14 RW, prot1_sel_osd3
//Bit 13 RW, prot1_sel_osd2
//Bit 12 RW, prot1_sel_osd1
//Bit 11: 6 RW, prot1_brst_num
//Bit 5: 0 RW, prot1_id
#define VPU_PROT1_MMC_CTRL (0x2728)
#define P_VPU_PROT1_MMC_CTRL (volatile unsigned int *)((0x2728 << 2) + 0xff900000)
//Bit 14 RW, prot2_sel_vd3
//Bit 13 RW, prot2_sel_vd2
//Bit 12 RW, prot2_sel_vd1
//Bit 11: 6 RW, prot2_brst_num
//Bit 5: 0 RW, prot2_id
#define VPU_PROT2_MMC_CTRL (0x2729)
#define P_VPU_PROT2_MMC_CTRL (volatile unsigned int *)((0x2729 << 2) + 0xff900000)
//Bit 14 RW, prot3_sel_vd3
//Bit 13 RW, prot3_sel_vd2
//Bit 12 RW, prot3_sel_vd1
//Bit 11: 6 RW, prot3_brst_num
//Bit 5: 0 RW, prot3_id
#define VPU_PROT3_MMC_CTRL (0x272a)
#define P_VPU_PROT3_MMC_CTRL (volatile unsigned int *)((0x272a << 2) + 0xff900000)
//Bit 29:24 RW, s3_brst_num
//Bit 21:16 RW, s2_brst_num
//Bit 13: 8 RW, s1_brst_num
//Bit 5: 0 RW, s0_brst_num
#define VPU_ARB4_V1_MMC_CTRL (0x272b)
#define P_VPU_ARB4_V1_MMC_CTRL (volatile unsigned int *)((0x272b << 2) + 0xff900000)
//Bit 29:24 RW, s3_brst_num
//Bit 21:16 RW, s2_brst_num
//Bit 13: 8 RW, s1_brst_num
//Bit 5: 0 RW, s0_brst_num
#define VPU_ARB4_V2_MMC_CTRL (0x272c)
#define P_VPU_ARB4_V2_MMC_CTRL (volatile unsigned int *)((0x272c << 2) + 0xff900000)
//Bit 27:22 RW, mcvecwr_num
//Bit 21:16 RW, mcvecwr_id
//Bit 11:6 RW, mcvecrd_num
//Bit 5:0 RW, mcvecrd_id
#define VPU_MCVEC_MMC_CTRL (0x272d)
#define P_VPU_MCVEC_MMC_CTRL (volatile unsigned int *)((0x272d << 2) + 0xff900000)
//Bit 27:22 RW, mcinfwr_num
//Bit 21:16 RW, mcinfwr_id
//Bit 11:6 RW, mcinfrd_num
//Bit 5:0 RW, mcinfrd_id
#define VPU_MCINF_MMC_CTRL (0x272e)
#define P_VPU_MCINF_MMC_CTRL (volatile unsigned int *)((0x272e << 2) + 0xff900000)
//Bit 31 reg_vpu_pwm_inv, 1: invert the pwm signal, active low
//Bit 30:29 reg_vpu_pwm_src_sel, 00: encl, enct, encp
//Bit 28:16 reg_vpu_pwm_v_end0
//Bit 12:0 reg_vpu_pwm_v_start0
#define VPU_VPU_PWM_V0 (0x2730)
#define P_VPU_VPU_PWM_V0 (volatile unsigned int *)((0x2730 << 2) + 0xff900000)
//Bit 28:16 reg_vpu_pwm_v_end1
//Bit 12:0 reg_vpu_pwm_v_start1
#define VPU_VPU_PWM_V1 (0x2731)
#define P_VPU_VPU_PWM_V1 (volatile unsigned int *)((0x2731 << 2) + 0xff900000)
//Bit 28:16 reg_vpu_pwm_v_end2
//Bit 12:0 reg_vpu_pwm_v_start2
#define VPU_VPU_PWM_V2 (0x2732)
#define P_VPU_VPU_PWM_V2 (volatile unsigned int *)((0x2732 << 2) + 0xff900000)
//Bit 28:16 reg_vpu_pwm_v_end3
//Bit 12:0 reg_vpu_pwm_v_start3
#define VPU_VPU_PWM_V3 (0x2733)
#define P_VPU_VPU_PWM_V3 (volatile unsigned int *)((0x2733 << 2) + 0xff900000)
//Bit 28:16 reg_vpu_pwm_h_end0
//Bit 12:0 reg_vpu_pwm_h_start0
#define VPU_VPU_PWM_H0 (0x2734)
#define P_VPU_VPU_PWM_H0 (volatile unsigned int *)((0x2734 << 2) + 0xff900000)
//Bit 28:16 reg_vpu_pwm_h_end1
//Bit 12:0 reg_vpu_pwm_h_start1
#define VPU_VPU_PWM_H1 (0x2735)
#define P_VPU_VPU_PWM_H1 (volatile unsigned int *)((0x2735 << 2) + 0xff900000)
//Bit 28:16 reg_vpu_pwm_h_end2
//Bit 12:0 reg_vpu_pwm_h_start2
#define VPU_VPU_PWM_H2 (0x2736)
#define P_VPU_VPU_PWM_H2 (volatile unsigned int *)((0x2736 << 2) + 0xff900000)
//Bit 28:16 reg_vpu_pwm_h_end3
//Bit 12:0 reg_vpu_pwm_h_start3
#define VPU_VPU_PWM_H3 (0x2737)
#define P_VPU_VPU_PWM_H3 (volatile unsigned int *)((0x2737 << 2) + 0xff900000)
//Bit 18 reg_vpu_3d_go_high_fld_pol: 0: go high at field 0, 1: go high at field 1
//Bit 17 reg_vpu_3d_sync_setting_vsync_latch
//Bit 16 reg_vpu_3d_sync_enable
//Bit 14:8 reg_vpu_3d_sync_v_end
//Bit 6:0 reg_vpu_3d_sync_v_start
#define VPU_VPU_3D_SYNC1 (0x2738)
#define P_VPU_VPU_3D_SYNC1 (volatile unsigned int *)((0x2738 << 2) + 0xff900000)
//Bit 28:16 reg_vpu_3d_sync_h_end
//Bit 12:0 reg_vpu_3d_sync_h_start
#define VPU_VPU_3D_SYNC2 (0x2739)
#define P_VPU_VPU_3D_SYNC2 (volatile unsigned int *)((0x2739 << 2) + 0xff900000)
//Bit 4 csi2_pre, 1: using vpu pre arbiter0, 0: using vpu pre arbiter2
//Bit 2:1 isp_in_sel, 01: select bt656, 10: select Mipi CSI2, otherwise select nothing
//Bit 0, if true, force vencl clk enable, otherwise, it might auto turn off by mipi DSI
#define VPU_MISC_CTRL (0x2740)
#define P_VPU_MISC_CTRL (volatile unsigned int *)((0x2740 << 2) + 0xff900000)
#define VPU_ISP_GCLK_CTRL0 (0x2741)
#define P_VPU_ISP_GCLK_CTRL0 (volatile unsigned int *)((0x2741 << 2) + 0xff900000)
#define VPU_ISP_GCLK_CTRL1 (0x2742)
#define P_VPU_ISP_GCLK_CTRL1 (volatile unsigned int *)((0x2742 << 2) + 0xff900000)
#define VPU_HDMI_FMT_CTRL (0x2743)
#define P_VPU_HDMI_FMT_CTRL (volatile unsigned int *)((0x2743 << 2) + 0xff900000)
#define VPU_VDIN_ASYNC_HOLD_CTRL (0x2744)
#define P_VPU_VDIN_ASYNC_HOLD_CTRL (volatile unsigned int *)((0x2744 << 2) + 0xff900000)
#define VPU_VDISP_ASYNC_HOLD_CTRL (0x2745)
#define P_VPU_VDISP_ASYNC_HOLD_CTRL (volatile unsigned int *)((0x2745 << 2) + 0xff900000)
#define VPU_VPUARB2_ASYNC_HOLD_CTRL (0x2746)
#define P_VPU_VPUARB2_ASYNC_HOLD_CTRL (volatile unsigned int *)((0x2746 << 2) + 0xff900000)
// arb0_rd_urg_ctrl_o <= vpp_off_urg_ctrl & vpu_arb_urg_ctrl[0] |
// rdma_ddr_req_busy_sync_d1 & vpu_arb_urg_ctrl[1]
// ;
//
// arb1_rd_urg_ctrl_o <= vpp_off_urg_ctrl & vpu_arb_urg_ctrl[2] |
// rdma_ddr_req_busy_sync_d1 & vpu_arb_urg_ctrl[3]
// ;
//
// arb2_rd_urg_ctrl_o <= vpp_off_urg_ctrl & vpu_arb_urg_ctrl[4] |
// rdma_ddr_req_busy_sync_d1 & vpu_arb_urg_ctrl[5]
// ;
//
// arb0_wr_urg_ctrl_o <= vdin0_lff_urg_ctrl_sync_d1 & vpu_arb_urg_ctrl[6] |
// vdin1_lff_urg_ctrl_sync_d1 & vpu_arb_urg_ctrl[7]
// ;
//
// arb1_wr_urg_ctrl_o <= vdin0_lff_urg_ctrl_sync_d1 & vpu_arb_urg_ctrl[8] |
// vdin1_lff_urg_ctrl_sync_d1 & vpu_arb_urg_ctrl[9]
//
#define VPU_ARB_URG_CTRL (0x2747)
#define P_VPU_ARB_URG_CTRL (volatile unsigned int *)((0x2747 << 2) + 0xff900000)
#define VPU_SECURE_DUMMY (0x2748)
#define P_VPU_SECURE_DUMMY (volatile unsigned int *)((0x2748 << 2) + 0xff900000)
#define VPU_VENCL_DITH_EN (0x2749)
#define P_VPU_VENCL_DITH_EN (volatile unsigned int *)((0x2749 << 2) + 0xff900000)
// todo :
#define VPU_422TO444_RST (0x274a)
#define P_VPU_422TO444_RST (volatile unsigned int *)((0x274a << 2) + 0xff900000)
// todo :
#define VPU_422TO444_CTRL0 (0x274b)
#define P_VPU_422TO444_CTRL0 (volatile unsigned int *)((0x274b << 2) + 0xff900000)
// todo :
#define VPU_422TO444_CTRL1 (0x274c)
#define P_VPU_422TO444_CTRL1 (volatile unsigned int *)((0x274c << 2) + 0xff900000)
// todo :
// Picture Rotate (PROT) module 1 (for OSD) registers:
#define VPU_PROT1_CLK_GATE (0x2750)
#define P_VPU_PROT1_CLK_GATE (volatile unsigned int *)((0x2750 << 2) + 0xff900000)
#define VPU_PROT1_GEN_CNTL (0x2751)
#define P_VPU_PROT1_GEN_CNTL (volatile unsigned int *)((0x2751 << 2) + 0xff900000)
#define VPU_PROT1_X_START_END (0x2752)
#define P_VPU_PROT1_X_START_END (volatile unsigned int *)((0x2752 << 2) + 0xff900000)
#define VPU_PROT1_Y_START_END (0x2753)
#define P_VPU_PROT1_Y_START_END (volatile unsigned int *)((0x2753 << 2) + 0xff900000)
#define VPU_PROT1_Y_LEN_STEP (0x2754)
#define P_VPU_PROT1_Y_LEN_STEP (volatile unsigned int *)((0x2754 << 2) + 0xff900000)
#define VPU_PROT1_RPT_LOOP (0x2755)
#define P_VPU_PROT1_RPT_LOOP (volatile unsigned int *)((0x2755 << 2) + 0xff900000)
#define VPU_PROT1_RPT_PAT (0x2756)
#define P_VPU_PROT1_RPT_PAT (volatile unsigned int *)((0x2756 << 2) + 0xff900000)
#define VPU_PROT1_DDR (0x2757)
#define P_VPU_PROT1_DDR (volatile unsigned int *)((0x2757 << 2) + 0xff900000)
#define VPU_PROT1_RBUF_ROOM (0x2758)
#define P_VPU_PROT1_RBUF_ROOM (volatile unsigned int *)((0x2758 << 2) + 0xff900000)
#define VPU_PROT1_STAT_0 (0x2759)
#define P_VPU_PROT1_STAT_0 (volatile unsigned int *)((0x2759 << 2) + 0xff900000)
#define VPU_PROT1_STAT_1 (0x275a)
#define P_VPU_PROT1_STAT_1 (volatile unsigned int *)((0x275a << 2) + 0xff900000)
#define VPU_PROT1_STAT_2 (0x275b)
#define P_VPU_PROT1_STAT_2 (volatile unsigned int *)((0x275b << 2) + 0xff900000)
#define VPU_PROT1_REQ_ONOFF (0x275c)
#define P_VPU_PROT1_REQ_ONOFF (volatile unsigned int *)((0x275c << 2) + 0xff900000)
// Picture Rotate (PROT) module 2 (for VD) registers:
#define VPU_PROT2_CLK_GATE (0x2760)
#define P_VPU_PROT2_CLK_GATE (volatile unsigned int *)((0x2760 << 2) + 0xff900000)
#define VPU_PROT2_GEN_CNTL (0x2761)
#define P_VPU_PROT2_GEN_CNTL (volatile unsigned int *)((0x2761 << 2) + 0xff900000)
#define VPU_PROT2_X_START_END (0x2762)
#define P_VPU_PROT2_X_START_END (volatile unsigned int *)((0x2762 << 2) + 0xff900000)
#define VPU_PROT2_Y_START_END (0x2763)
#define P_VPU_PROT2_Y_START_END (volatile unsigned int *)((0x2763 << 2) + 0xff900000)
#define VPU_PROT2_Y_LEN_STEP (0x2764)
#define P_VPU_PROT2_Y_LEN_STEP (volatile unsigned int *)((0x2764 << 2) + 0xff900000)
#define VPU_PROT2_RPT_LOOP (0x2765)
#define P_VPU_PROT2_RPT_LOOP (volatile unsigned int *)((0x2765 << 2) + 0xff900000)
#define VPU_PROT2_RPT_PAT (0x2766)
#define P_VPU_PROT2_RPT_PAT (volatile unsigned int *)((0x2766 << 2) + 0xff900000)
#define VPU_PROT2_DDR (0x2767)
#define P_VPU_PROT2_DDR (volatile unsigned int *)((0x2767 << 2) + 0xff900000)
#define VPU_PROT2_RBUF_ROOM (0x2768)
#define P_VPU_PROT2_RBUF_ROOM (volatile unsigned int *)((0x2768 << 2) + 0xff900000)
#define VPU_PROT2_STAT_0 (0x2769)
#define P_VPU_PROT2_STAT_0 (volatile unsigned int *)((0x2769 << 2) + 0xff900000)
#define VPU_PROT2_STAT_1 (0x276a)
#define P_VPU_PROT2_STAT_1 (volatile unsigned int *)((0x276a << 2) + 0xff900000)
#define VPU_PROT2_STAT_2 (0x276b)
#define P_VPU_PROT2_STAT_2 (volatile unsigned int *)((0x276b << 2) + 0xff900000)
#define VPU_PROT2_REQ_ONOFF (0x276c)
#define P_VPU_PROT2_REQ_ONOFF (volatile unsigned int *)((0x276c << 2) + 0xff900000)
// Picture Rotate (PROT) module 3 (for VD) registers:
#define VPU_PROT3_CLK_GATE (0x2770)
#define P_VPU_PROT3_CLK_GATE (volatile unsigned int *)((0x2770 << 2) + 0xff900000)
#define VPU_PROT3_GEN_CNTL (0x2771)
#define P_VPU_PROT3_GEN_CNTL (volatile unsigned int *)((0x2771 << 2) + 0xff900000)
#define VPU_PROT3_X_START_END (0x2772)
#define P_VPU_PROT3_X_START_END (volatile unsigned int *)((0x2772 << 2) + 0xff900000)
#define VPU_PROT3_Y_START_END (0x2773)
#define P_VPU_PROT3_Y_START_END (volatile unsigned int *)((0x2773 << 2) + 0xff900000)
#define VPU_PROT3_Y_LEN_STEP (0x2774)
#define P_VPU_PROT3_Y_LEN_STEP (volatile unsigned int *)((0x2774 << 2) + 0xff900000)
#define VPU_PROT3_RPT_LOOP (0x2775)
#define P_VPU_PROT3_RPT_LOOP (volatile unsigned int *)((0x2775 << 2) + 0xff900000)
#define VPU_PROT3_RPT_PAT (0x2776)
#define P_VPU_PROT3_RPT_PAT (volatile unsigned int *)((0x2776 << 2) + 0xff900000)
#define VPU_PROT3_DDR (0x2777)
#define P_VPU_PROT3_DDR (volatile unsigned int *)((0x2777 << 2) + 0xff900000)
#define VPU_PROT3_RBUF_ROOM (0x2778)
#define P_VPU_PROT3_RBUF_ROOM (volatile unsigned int *)((0x2778 << 2) + 0xff900000)
#define VPU_PROT3_STAT_0 (0x2779)
#define P_VPU_PROT3_STAT_0 (volatile unsigned int *)((0x2779 << 2) + 0xff900000)
#define VPU_PROT3_STAT_1 (0x277a)
#define P_VPU_PROT3_STAT_1 (volatile unsigned int *)((0x277a << 2) + 0xff900000)
#define VPU_PROT3_STAT_2 (0x277b)
#define P_VPU_PROT3_STAT_2 (volatile unsigned int *)((0x277b << 2) + 0xff900000)
#define VPU_PROT3_REQ_ONOFF (0x277c)
#define P_VPU_PROT3_REQ_ONOFF (volatile unsigned int *)((0x277c << 2) + 0xff900000)
//Bit 20 reg_viu2vdin_sw_reset: software reset
//Bit 19:18 reg_viu2vdin_dn_ratio: down-scale ratio; 0: no scale; 1: 1/2; 2:1/4; 3: reserved
//Bit 17:16 reg_viu2vdin_flt_mode: filter mode; 0: no filter; 1:[0 2 2 0]/4; 2:[1 1 1 1]/4; 3:[1 3 3 1]/8
//Bit 15:14 reversed
//Bit 13:0 reg_viu2vdin_hsize: source horizontal size
#define VPU_VIU2VDIN_HDN_CTRL (0x2780)
#define P_VPU_VIU2VDIN_HDN_CTRL (volatile unsigned int *)((0x2780 << 2) + 0xff900000)
#define VPU_VIU_ASYNC_MASK (0x2781)
#define P_VPU_VIU_ASYNC_MASK (volatile unsigned int *)((0x2781 << 2) + 0xff900000)
#define VDIN_MISC_CTRL (0x2782)
#define P_VDIN_MISC_CTRL (volatile unsigned int *)((0x2782 << 2) + 0xff900000)
// vpu arbtration :
// the segment is 8'h90-8'hc8
//
// Reading file: vpu_arb_axi_regs.h
//
// synopsys translate_off
// synopsys translate_on
////===============================////
//// reg
////===============================////
#define VPU_RDARB_MODE_L1C1 (0x2790)
#define P_VPU_RDARB_MODE_L1C1 (volatile unsigned int *)((0x2790 << 2) + 0xff900000)
//Bit 31:22, reserved
//Bit 21:16, rdarb_sel uns, default = 0 ,
// rdarb_sel[0]==0 slave dc0 connect master port0 rdarb_sel[0]==1 slave dc0 connect master port1
// rdarb_sel[1]==0 slave dc1 connect master port0 rdarb_sel[1]==1 slave dc1 connect master port1
// rdarb_sel[2]==0 slave dc2 connect master port0 rdarb_sel[2]==1 slave dc2 connect master port1
// rdarb_sel[3]==0 slave dc3 connect master port0 rdarb_sel[3]==1 slave dc3 connect master port1
// rdarb_sel[4]==0 slave dc4 connect master port0 rdarb_sel[4]==1 slave dc4 connect master port1
// rdarb_sel[5]==0 slave dc5 connect master port0 rdarb_sel[5]==1 slave dc5 connect master port1
//Bit 15:10, reserved
//Bit 9:8, rdarb_arb_mode uns, default = 0 ,
// rdarb_arb_mode[0] master port0 arb way,
// rdarb_arb_mode[1] master port1 arb way,
//Bit 7:4, reserved
//Bit 3:0, rdarb_gate_clk_ctrl uns, default = 0 ,
// rdarb_gate_clk_ctrl[1:0] master port0 clk gate control
// rdarb_gate_clk_ctrl[3:2] master port1 clk gate control
#define VPU_RDARB_REQEN_SLV_L1C1 (0x2791)
#define P_VPU_RDARB_REQEN_SLV_L1C1 (volatile unsigned int *)((0x2791 << 2) + 0xff900000)
//Bit 31:12, reserved
//Bit 11:0, rdarb_dc_req_en unsigned , default = 12'hfff
// rdarb_dc_req_en[0]: the slv0 req to mst port0 enable,
// rdarb_dc_req_en[1]: the slv1 req to mst port0 enable,
// rdarb_dc_req_en[2]: the slv2 req to mst port0 enable,
// rdarb_dc_req_en[3]: the slv3 req to mst port0 enable,
// rdarb_dc_req_en[4]: the slv4 req to mst port0 enable,
// rdarb_dc_req_en[5]: the slv5 req to mst port0 enable,
// rdarb_dc_req_en[6]: the slv0 req to mst port1 enable,
// rdarb_dc_req_en[7]: the slv1 req to mst port1 enable,
// rdarb_dc_req_en[8]: the slv2 req to mst port1 enable,
// rdarb_dc_req_en[9]: the slv3 req to mst port1 enable,
// rdarb_dc_req_en[10]: the slv4 req to mst port1 enable,
// rdarb_dc_req_en[11]: the slv5 req to mst port1 enable,
#define VPU_RDARB_WEIGH0_SLV_L1C1 (0x2792)
#define P_VPU_RDARB_WEIGH0_SLV_L1C1 (volatile unsigned int *)((0x2792 << 2) + 0xff900000)
//Bit 31:30, reserved
//Bit 29:0, rddc_weigh_sxn unsigned , default = 0
// rddc_weigh_sxn[0*6+:6]: the slv0 req weigh number
// rddc_weigh_sxn[1*6+:6]: the slv1 req weigh number
// rddc_weigh_sxn[2*6+:6]: the slv2 req weigh number
// rddc_weigh_sxn[3*6+:6]: the slv3 req weigh number
// rddc_weigh_sxn[4*6+:6]: the slv4 req weigh number
#define VPU_RDARB_WEIGH1_SLV_L1C1 (0x2793)
#define P_VPU_RDARB_WEIGH1_SLV_L1C1 (volatile unsigned int *)((0x2793 << 2) + 0xff900000)
//Bit 31:6, reserved
//Bit 5:0, rddc_weigh_sxn unsigned , default = 0
// rddc_weigh_sxn[5*6+:6]: the slv5 req weigh number
#define VPU_WRARB_MODE_L1C1 (0x2794)
#define P_VPU_WRARB_MODE_L1C1 (volatile unsigned int *)((0x2794 << 2) + 0xff900000)
//Bit 31:22, reserved
//Bit 21:16, wrarb_sel uns, default = 0 ,
// wrarb_sel[0]==0 slave dc0 connect master port0 wrarb_sel[0]==1 slave dc0 connect master port1
// wrarb_sel[1]==0 slave dc1 connect master port0 wrarb_sel[1]==1 slave dc1 connect master port1
// wrarb_sel[2]==0 slave dc2 connect master port0 wrarb_sel[2]==1 slave dc2 connect master port1
// wrarb_sel[3]==0 slave dc3 connect master port0 wrarb_sel[3]==1 slave dc3 connect master port1
// wrarb_sel[4]==0 slave dc4 connect master port0 wrarb_sel[4]==1 slave dc4 connect master port1
// wrarb_sel[5]==0 slave dc5 connect master port0 wrarb_sel[5]==1 slave dc5 connect master port1
//Bit 15:10, reserved
//Bit 9:8, wrarb_arb_mode uns, default = 0 ,
// wrarb_arb_mode[0] master port0 arb way,
// wrarb_arb_mode[1] master port1 arb way,
//Bit 7:4, reserved
//Bit 3:0, wrarb_gate_clk_ctrl uns, default = 0 ,
// wrarb_gate_clk_ctrl[1:0] master port0 clk gate control
// wrarb_gate_clk_ctrl[3:2] master port1 clk gate control
#define VPU_WRARB_REQEN_SLV_L1C1 (0x2795)
#define P_VPU_WRARB_REQEN_SLV_L1C1 (volatile unsigned int *)((0x2795 << 2) + 0xff900000)
//Bit 31:12, reserved
//Bit 11:0, wrarb_dc_req_en unsigned , default = 0
// wrarb_dc_req_en[0]: the slv0 req to mst port0 enable,
// wrarb_dc_req_en[1]: the slv1 req to mst port0 enable,
// wrarb_dc_req_en[2]: the slv2 req to mst port0 enable,
// wrarb_dc_req_en[3]: the slv3 req to mst port0 enable,
// wrarb_dc_req_en[4]: the slv4 req to mst port0 enable,
// wrarb_dc_req_en[5]: the slv5 req to mst port0 enable,
// wrarb_dc_req_en[0]: the slv0 req to mst port1 enable,
// wrarb_dc_req_en[1]: the slv1 req to mst port1 enable,
// wrarb_dc_req_en[2]: the slv2 req to mst port1 enable,
// wrarb_dc_req_en[3]: the slv3 req to mst port1 enable,
// wrarb_dc_req_en[4]: the slv4 req to mst port1 enable,
// wrarb_dc_req_en[5]: the slv5 req to mst port1 enable,
#define VPU_WRARB_WEIGH0_SLV_L1C1 (0x2796)
#define P_VPU_WRARB_WEIGH0_SLV_L1C1 (volatile unsigned int *)((0x2796 << 2) + 0xff900000)
//Bit 31:30, reserved
//Bit 29:0, wrdc_weigh_sxn unsigned , default = 0
// wrdc_weigh_sxn[0*6+:6]: the slv0 req weigh number
// wrdc_weigh_sxn[1*6+:6]: the slv1 req weigh number
// wrdc_weigh_sxn[2*6+:6]: the slv2 req weigh number
// wrdc_weigh_sxn[3*6+:6]: the slv3 req weigh number
// wrdc_weigh_sxn[4*6+:6]: the slv4 req weigh number
#define VPU_WRARB_WEIGH1_SLV_L1C1 (0x2797)
#define P_VPU_WRARB_WEIGH1_SLV_L1C1 (volatile unsigned int *)((0x2797 << 2) + 0xff900000)
//Bit 31:6, reserved
//Bit 5:0, wrdc_weigh_sxn unsigned , default = 0
// wrdc_weigh_sxn[5*6+:6]: the slv5 req weigh number
#define VPU_RDWR_ARB_STATUS_L1C1 (0x2798)
#define P_VPU_RDWR_ARB_STATUS_L1C1 (volatile unsigned int *)((0x2798 << 2) + 0xff900000)
//Bit 31:4, reserved
//Bit 3:2, wrarb_arb_busy unsigned , default = 0
//Bit 1:0, rdarb_arb_busy unsigned , default = 0
#define VPU_RDARB_MODE_L1C2 (0x2799)
#define P_VPU_RDARB_MODE_L1C2 (volatile unsigned int *)((0x2799 << 2) + 0xff900000)
//Bit 31:21, reserved
//Bit 20:16, rdarb_sel uns, default = 0 ,
// rdarb_sel[0]==0 slave dc0 connect master port0 rdarb_sel[0]==1 slave dc0 connect master port1
// rdarb_sel[1]==0 slave dc1 connect master port0 rdarb_sel[1]==1 slave dc1 connect master port1
// rdarb_sel[2]==0 slave dc2 connect master port0 rdarb_sel[2]==1 slave dc2 connect master port1
// rdarb_sel[3]==0 slave dc3 connect master port0 rdarb_sel[3]==1 slave dc3 connect master port1
// rdarb_sel[4]==0 slave dc4 connect master port0 rdarb_sel[4]==1 slave dc4 connect master port1
//Bit 15:10, reserved
//Bit 9:8, rdarb_arb_mode uns, default = 0 ,
// rdarb_arb_mode[0] master port0 arb way,
// rdarb_arb_mode[1] master port1 arb way,
//Bit 7:4, reserved
//Bit 3:0, rdarb_gate_clk_ctrl uns, default = 0 ,
// rdarb_gate_clk_ctrl[1:0] master port0 clk gate control
// rdarb_gate_clk_ctrl[3:2] master port0 clk gate control
#define VPU_RDARB_REQEN_SLV_L1C2 (0x279a)
#define P_VPU_RDARB_REQEN_SLV_L1C2 (volatile unsigned int *)((0x279a << 2) + 0xff900000)
//Bit 31:10, reserved
//Bit 9:0, rdarb_dc_req_en unsigned , default = 0
// rdarb_dc_req_en[0]: the slv0 req to mst port0 enable,
// rdarb_dc_req_en[1]: the slv1 req to mst port0 enable,
// rdarb_dc_req_en[2]: the slv2 req to mst port0 enable,
// rdarb_dc_req_en[3]: the slv3 req to mst port0 enable,
// rdarb_dc_req_en[4]: the slv4 req to mst port0 enable,
// rdarb_dc_req_en[5]: the slv0 req to mst port1 enable,
// rdarb_dc_req_en[6]: the slv1 req to mst port1 enable,
// rdarb_dc_req_en[7]: the slv2 req to mst port1 enable,
// rdarb_dc_req_en[8]: the slv3 req to mst port1 enable,
// rdarb_dc_req_en[9]: the slv4 req to mst port1 enable,
#define VPU_RDARB_WEIGH0_SLV_L1C2 (0x279b)
#define P_VPU_RDARB_WEIGH0_SLV_L1C2 (volatile unsigned int *)((0x279b << 2) + 0xff900000)
//Bit 31:30, reserved
//Bit 29:0, rddc_weigh_sxn unsigned , default = 0
// rddc_weigh_sxn[0*6+:6]: the slv0 req weigh number
// rddc_weigh_sxn[1*6+:6]: the slv1 req weigh number
// rddc_weigh_sxn[2*6+:6]: the slv2 req weigh number
// rddc_weigh_sxn[3*6+:6]: the slv3 req weigh number
// rddc_weigh_sxn[4*6+:6]: the slv4 req weigh number
#define VPU_RDWR_ARB_STATUS_L1C2 (0x279c)
#define P_VPU_RDWR_ARB_STATUS_L1C2 (volatile unsigned int *)((0x279c << 2) + 0xff900000)
//Bit 31:3, reserved
//Bit 2, wrarb_arb_busy unsigned , default = 0
//Bit 1:0, rdarb_arb_busy unsigned , default = 0
#define VPU_RDARB_MODE_L2C1 (0x279d)
#define P_VPU_RDARB_MODE_L2C1 (volatile unsigned int *)((0x279d << 2) + 0xff900000)
//Bit 31:28, reserved
//Bit 27:16, rdarb_sel uns, default = 0 ,
// rdarb_sel[0]==0 slave dc0 connect master port0 rdarb_sel[0]==1 slave dc0 connect master port1
// rdarb_sel[1]==0 slave dc1 connect master port0 rdarb_sel[1]==1 slave dc1 connect master port1
// rdarb_sel[2]==0 slave dc2 connect master port0 rdarb_sel[2]==1 slave dc2 connect master port1
// rdarb_sel[3]==0 slave dc3 connect master port0 rdarb_sel[3]==1 slave dc3 connect master port1
// rdarb_sel[4]==0 slave dc4 connect master port0 rdarb_sel[4]==1 slave dc4 connect master port1
// rdarb_sel[5]==0 slave dc5 connect master port0 rdarb_sel[5]==1 slave dc5 connect master port1
//Bit 15:11, reserved
//Bit 10:8, rdarb_arb_mode uns, default = 0 ,
// rdarb_arb_mode[0] master port0 arb way,
// rdarb_arb_mode[1] master port1 arb way,
//Bit 7:6, reserved
//Bit 5:0, rdarb_gate_clk_ctrl uns, default = 0 ,
// rdarb_gate_clk_ctrl[1:0] master port0 clk gate control
// rdarb_gate_clk_ctrl[3:2] master port1 clk gate control
// rdarb_gate_clk_ctrl[5:4] master port2 clk gate control
#define VPU_RDARB_REQEN_SLV_L2C1 (0x279e)
#define P_VPU_RDARB_REQEN_SLV_L2C1 (volatile unsigned int *)((0x279e << 2) + 0xff900000)
//Bit 31:18, reserved
//Bit 17:0, rdarb_dc_req_en unsigned , default = 0
// rdarb_dc_req_en[0]: the slv0 req to mst port0 enable,
// rdarb_dc_req_en[1]: the slv1 req to mst port0 enable,
// rdarb_dc_req_en[2]: the slv2 req to mst port0 enable,
// rdarb_dc_req_en[3]: the slv3 req to mst port0 enable,
// rdarb_dc_req_en[4]: the slv4 req to mst port0 enable,
// rdarb_dc_req_en[5]: the slv5 req to mst port0 enable,
// rdarb_dc_req_en[0]: the slv0 req to mst port1 enable,
// rdarb_dc_req_en[1]: the slv1 req to mst port1 enable,
// rdarb_dc_req_en[2]: the slv2 req to mst port1 enable,
// rdarb_dc_req_en[3]: the slv3 req to mst port1 enable,
// rdarb_dc_req_en[4]: the slv4 req to mst port1 enable,
// rdarb_dc_req_en[5]: the slv5 req to mst port1 enable,
#define VPU_RDARB_WEIGH0_SLV_L2C1 (0x279f)
#define P_VPU_RDARB_WEIGH0_SLV_L2C1 (volatile unsigned int *)((0x279f << 2) + 0xff900000)
//Bit 31:30, reserved
//Bit 29:0, rddc_weigh_sxn unsigned , default = 0
// rddc_weigh_sxn[0*6+:6]: the slv0 req weigh number
// rddc_weigh_sxn[1*6+:6]: the slv1 req weigh number
// rddc_weigh_sxn[2*6+:6]: the slv2 req weigh number
// rddc_weigh_sxn[3*6+:6]: the slv3 req weigh number
// rddc_weigh_sxn[4*6+:6]: the slv4 req weigh number
#define VPU_RDARB_WEIGH1_SLV_L2C1 (0x27a0)
#define P_VPU_RDARB_WEIGH1_SLV_L2C1 (volatile unsigned int *)((0x27a0 << 2) + 0xff900000)
//Bit 31:6, reserved
//Bit 5:0, rddc_weigh_sxn unsigned , default = 0
// rddc_weigh_sxn[5*6+:6]: the slv5 req weigh number
#define VPU_RDWR_ARB_STATUS_L2C1 (0x27a1)
#define P_VPU_RDWR_ARB_STATUS_L2C1 (volatile unsigned int *)((0x27a1 << 2) + 0xff900000)
//Bit 31:4, reserved
//Bit 3:2, wrarb_arb_busy unsigned , default = 0
//Bit 1:0, rdarb_arb_busy unsigned , default = 0
#define VPU_WRARB_MODE_L2C1 (0x27a2)
#define P_VPU_WRARB_MODE_L2C1 (volatile unsigned int *)((0x27a2 << 2) + 0xff900000)
//Bit 31:20, reserved
//Bit 19:16, wrarb_sel uns, default = 0 ,
// wrarb_sel[0]==0 slave dc0 connect master port0 wrarb_sel[0]==1 slave dc0 connect master port1
// wrarb_sel[1]==0 slave dc1 connect master port0 wrarb_sel[1]==1 slave dc1 connect master port1
// wrarb_sel[2]==0 slave dc2 connect master port0 wrarb_sel[2]==1 slave dc2 connect master port1
// wrarb_sel[3]==0 slave dc3 connect master port0 wrarb_sel[3]==1 slave dc3 connect master port1
//Bit 15:10, reserved
//Bit 9:8, wrarb_arb_mode uns, default = 0 ,
// wrarb_arb_mode[0] master port0 arb way,
// wrarb_arb_mode[1] master port1 arb way,
//Bit 7:4, reserved
//Bit 3:0, wrarb_gate_clk_ctrl uns, default = 0 ,
// wrarb_gate_clk_ctrl[1:0] master port0 clk gate control
// wrarb_gate_clk_ctrl[3:2] master port0 clk gate control
#define VPU_WRARB_REQEN_SLV_L2C1 (0x27a3)
#define P_VPU_WRARB_REQEN_SLV_L2C1 (volatile unsigned int *)((0x27a3 << 2) + 0xff900000)
//Bit 31:8, reserved
//Bit 7:0, wrarb_dc_req_en unsigned , default = 0
// wrarb_dc_req_en[0]: the slv0 req to mst port0 enable,
// wrarb_dc_req_en[1]: the slv1 req to mst port0 enable,
// wrarb_dc_req_en[2]: the slv2 req to mst port0 enable,
// wrarb_dc_req_en[3]: the slv3 req to mst port0 enable,
// wrarb_dc_req_en[0]: the slv0 req to mst port1 enable,
// wrarb_dc_req_en[1]: the slv1 req to mst port1 enable,
// wrarb_dc_req_en[2]: the slv2 req to mst port1 enable,
// wrarb_dc_req_en[3]: the slv3 req to mst port1 enable,
#define VPU_WRARB_WEIGH0_SLV_L2C1 (0x27a4)
#define P_VPU_WRARB_WEIGH0_SLV_L2C1 (volatile unsigned int *)((0x27a4 << 2) + 0xff900000)
//Bit 31:24, reserved
//Bit 23:0, wrdc_weigh_sxn unsigned , default = 0
// wrdc_weigh_sxn[0*6+:6]: the slv0 req weigh number
// wrdc_weigh_sxn[1*6+:6]: the slv1 req weigh number
// wrdc_weigh_sxn[2*6+:6]: the slv2 req weigh number
// wrdc_weigh_sxn[3*6+:6]: the slv3 req weigh number
#define VPU_ASYNC_RD_MODE0 (0x27a5)
#define P_VPU_ASYNC_RD_MODE0 (volatile unsigned int *)((0x27a5 << 2) + 0xff900000)
//Bit 31:19, reserved
//Bit 18, req_en unsigned , default = 0 async enable
//Bit 17:16, clk_gate_ctrl unsigned , default = 0 async clock gate control
//Bit 15:12, auto_arugt_weight unsigned , default = 4
//Bit 11, reserved
//Bit 10:9, arugt_sel unsigned , default = 0
// 00 : use auto fifo arugt generate the output arugt.
// 01 : use the register bit control
// 00 : use the input arguent
//Bit 8, arguent_cfg unsigned , default = 0 register arguent control bit
//Bit 7:4, rd_hold_num unsigned , default = 4 hold the read command threshold
//Bit 3:0, rd_rel_num unsigned , default = 0 release the read command threshold
#define VPU_ASYNC_RD_MODE1 (0x27a6)
#define P_VPU_ASYNC_RD_MODE1 (volatile unsigned int *)((0x27a6 << 2) + 0xff900000)
//Bit 31:19, reserved
//Bit 18, req_en unsigned , default = 0 async enable
//Bit 17:16, clk_gate_ctrl unsigned , default = 0 async clock gate control
//Bit 15:12, auto_arugt_weight unsigned , default = 4
//Bit 11, reserved
//Bit 10:9, arugt_sel unsigned , default = 0
// 00 : use auto fifo arugt generate the output arugt.
// 01 : use the register bit control
// 00 : use the input arguent
//Bit 8, arguent_cfg unsigned , default = 0 register arguent control bit
//Bit 7:4, rd_hold_num unsigned , default = 4 hold the read command threshold
//Bit 3:0, rd_rel_num unsigned , default = 0 release the read command threshold
#define VPU_ASYNC_RD_MODE2 (0x27a7)
#define P_VPU_ASYNC_RD_MODE2 (volatile unsigned int *)((0x27a7 << 2) + 0xff900000)
//Bit 31:19, reserved
//Bit 18, req_en unsigned , default = 0 async enable
//Bit 17:16, clk_gate_ctrl unsigned , default = 0 async clock gate control
//Bit 15:12, auto_arugt_weight unsigned , default = 4
//Bit 11, reserved
//Bit 10:9, arugt_sel unsigned , default = 0
// 00 : use auto fifo arugt generate the output arugt.
// 01 : use the register bit control
// 00 : use the input arguent
//Bit 8, arguent_cfg unsigned , default = 0 register arguent control bit
//Bit 7:4, rd_hold_num unsigned , default = 4 hold the read command threshold
//Bit 3:0, rd_rel_num unsigned , default = 0 release the read command threshold
#define VPU_ASYNC_RD_MODE3 (0x27a8)
#define P_VPU_ASYNC_RD_MODE3 (volatile unsigned int *)((0x27a8 << 2) + 0xff900000)
//Bit 31:19, reserved
//Bit 18, req_en unsigned , default = 0 async enable
//Bit 17:16, clk_gate_ctrl unsigned , default = 0 async clock gate control
//Bit 15:12, auto_arugt_weight unsigned , default = 4
//Bit 11, reserved
//Bit 10:9, arugt_sel unsigned , default = 0
// 00 : use auto fifo arugt generate the output arugt.
// 01 : use the register bit control
// 00 : use the input arguent
//Bit 8, arguent_cfg unsigned , default = 0 register arguent control bit
//Bit 7:4, rd_hold_num unsigned , default = 4 hold the read command threshold
//Bit 3:0, rd_rel_num unsigned , default = 0 release the read command threshold
#define VPU_ASYNC_RD_MODE4 (0x27a9)
#define P_VPU_ASYNC_RD_MODE4 (volatile unsigned int *)((0x27a9 << 2) + 0xff900000)
//Bit 31:19, reserved
//Bit 18, req_en unsigned , default = 0 async enable
//Bit 17:16, clk_gate_ctrl unsigned , default = 0 async clock gate control
//Bit 15:12, auto_arugt_weight unsigned , default = 4
//Bit 11, reserved
//Bit 10:9, arugt_sel unsigned , default = 0
// 00 : use auto fifo arugt generate the output arugt.
// 01 : use the register bit control
// 00 : use the input arguent
//Bit 8, arguent_cfg unsigned , default = 0 register arguent control bit
//Bit 7:4, rd_hold_num unsigned , default = 4 hold the read command threshold
//Bit 3:0, rd_rel_num unsigned , default = 0 release the read command threshold
#define VPU_ASYNC_WR_MODE0 (0x27aa)
#define P_VPU_ASYNC_WR_MODE0 (volatile unsigned int *)((0x27aa << 2) + 0xff900000)
//Bit 31:19, reserved
//Bit 18, req_en unsigned , default = 0 async enable
//Bit 17:16, clk_gate_ctrl unsigned , default = 0 async clock gate control
//Bit 15:12, auto_arugt_weight unsigned , default = 4
//Bit 11, reserved
//Bit 10:9, arugt_sel unsigned , default = 0
// 00 : use auto fifo arugt generate the output arugt.
// 01 : use the register bit control
// 00 : use the input arguent
//Bit 8, arguent_cfg unsigned , default = 0 register arguent control bit
//Bit 7:4, wr_hold_num unsigned , default = 4 hold the read command threshold
//Bit 3:0, wr_rel_num unsigned , default = 0 release the write command threshold
#define VPU_ASYNC_WR_MODE1 (0x27ab)
#define P_VPU_ASYNC_WR_MODE1 (volatile unsigned int *)((0x27ab << 2) + 0xff900000)
//Bit 31:19, reserved
//Bit 18, req_en unsigned , default = 0 async enable
//Bit 17:16, clk_gate_ctrl unsigned , default = 0 async clock gate control
//Bit 15:12, auto_arugt_weight unsigned , default = 4
//Bit 11, reserved
//Bit 10:9, arugt_sel unsigned , default = 0
// 00 : use auto fifo arugt generate the output arugt.
// 01 : use the register bit control
// 00 : use the input arguent
//Bit 8, arguent_cfg unsigned , default = 0 register arguent control bit
//Bit 7:4, wr_hold_num unsigned , default = 4 hold the read command threshold
//Bit 3:0, wr_rel_num unsigned , default = 0 release the write command threshold
#define VPU_ASYNC_WR_MODE2 (0x27ac)
#define P_VPU_ASYNC_WR_MODE2 (volatile unsigned int *)((0x27ac << 2) + 0xff900000)
//Bit 31:19, reserved
//Bit 18, req_en unsigned , default = 0 async enable
//Bit 17:16, clk_gate_ctrl unsigned , default = 0 async clock gate control
//Bit 15:12, auto_arugt_weight unsigned , default = 4
//Bit 11, reserved
//Bit 10:9, arugt_sel unsigned , default = 0
// 00 : use auto fifo arugt generate the output arugt.
// 01 : use the register bit control
// 00 : use the input arguent
//Bit 8, arguent_cfg unsigned , default = 0 register arguent control bit
//Bit 7:4, wr_hold_num unsigned , default = 4 hold the read command threshold
//Bit 3:0, wr_rel_num unsigned , default = 0 release the write command threshold
#define VPU_ASYNC_STAT (0x27ad)
#define P_VPU_ASYNC_STAT (volatile unsigned int *)((0x27ad << 2) + 0xff900000)
//Bit 31:19, reserved
//Bit 18, axiwr2_chan_idle unsigned , RO, axi write channel2 idle state
//Bit 17, axiwr1_chan_idle unsigned , RO, axi write channel1 idle state
//Bit 16, axiwr0_chan_idle unsigned , RO, axi write channel0 idle state
//Bit 15:5, reserved
//Bit 4, axird4_chan_idle unsigned , RO, axi read channel4 idle state
//Bit 3, axird3_chan_idle unsigned , RO, axi read channel3 idle state
//Bit 2, axird2_chan_idle unsigned , RO, axi read channel2 idle state
//Bit 1, axird1_chan_idle unsigned , RO, axi read channel1 idle state
//Bit 0, axird0_chan_idle unsigned , RO, axi read channel0 idle state
#define VPU_WRARB_MODE_L1C2 (0x27ae)
#define P_VPU_WRARB_MODE_L1C2 (volatile unsigned int *)((0x27ae << 2) + 0xff900000)
//Bit 31:18, reserved
//Bit 17:16, wrarb_sel uns, default = 0 ,
// wrarb_sel[0]==0 slave dc0 connect master port0 wrarb_sel[0]==1 slave dc0 connect master port1
// wrarb_sel[1]==0 slave dc1 connect master port0 wrarb_sel[1]==1 slave dc1 connect master port1
//Bit 15:9, reserved
//Bit 8, wrarb_arb_mode uns, default = 0 ,
// wrarb_arb_mode[0] master port0 arb way,
//Bit 7:2, reserved
//Bit 1:0, wrarb_gate_clk_ctrl uns, default = 0 ,
// wrarb_gate_clk_ctrl[1:0] master port0 clk gate control
#define VPU_WRARB_REQEN_SLV_L1C2 (0x27af)
#define P_VPU_WRARB_REQEN_SLV_L1C2 (volatile unsigned int *)((0x27af << 2) + 0xff900000)
//Bit 31:2, reserved
//Bit 1:0, wrarb_dc_req_en unsigned , default = 0
// wrarb_dc_req_en[0]: the slv0 req to mst port0 enable,
// wrarb_dc_req_en[1]: the slv1 req to mst port0 enable,
#define VPU_WRARB_WEIGH0_SLV_L1C2 (0x27b0)
#define P_VPU_WRARB_WEIGH0_SLV_L1C2 (volatile unsigned int *)((0x27b0 << 2) + 0xff900000)
//Bit 31:30, reserved
//Bit 29:0, wrdc_weigh_sxn unsigned , default = 0
// wrdc_weigh_sxn[0*6+:6]: the slv0 req weigh number
// wrdc_weigh_sxn[1*6+:6]: the slv1 req weigh number
// wrdc_weigh_sxn[2*6+:6]: the slv1 req weigh number
// wrdc_weigh_sxn[3*6+:6]: the slv1 req weigh number
// wrdc_weigh_sxn[4*6+:6]: the slv1 req weigh number
#define VPU_WRARB_WEIGH1_SLV_L1C2 (0x27b1)
#define P_VPU_WRARB_WEIGH1_SLV_L1C2 (volatile unsigned int *)((0x27b1 << 2) + 0xff900000)
//Bit 31:18, reserved
//Bit 17:0, wrdc_weigh_sxn unsigned , default = 0
// wrdc_weigh_sxn[5*6+:6]: the slv0 req weigh number
// wrdc_weigh_sxn[6*6+:6]: the slv1 req weigh number
// wrdc_weigh_sxn[7*6+:6]: the slv1 req weigh number
#define VPU_RDARB_WEIGH1_SLV_L1C2 (0x27b2)
#define P_VPU_RDARB_WEIGH1_SLV_L1C2 (volatile unsigned int *)((0x27b2 << 2) + 0xff900000)
//Bit 31:18, reserved
//Bit 17:0, rddc_weigh_sxn unsigned , default = 0
// rddc_weigh_sxn[5*6+:6]: the slv0 req weigh number
// rddc_weigh_sxn[6*6+:6]: the slv1 req weigh number
// rddc_weigh_sxn[7*6+:6]: the slv2 req weigh number
#define VPU_ARB_DBG_CTRL_L1C1 (0x27b3)
#define P_VPU_ARB_DBG_CTRL_L1C1 (volatile unsigned int *)((0x27b3 << 2) + 0xff900000)
#define VPU_ARB_DBG_STAT_L1C1 (0x27b4)
#define P_VPU_ARB_DBG_STAT_L1C1 (volatile unsigned int *)((0x27b4 << 2) + 0xff900000)
#define VPU_ARB_DBG_CTRL_L1C2 (0x27b5)
#define P_VPU_ARB_DBG_CTRL_L1C2 (volatile unsigned int *)((0x27b5 << 2) + 0xff900000)
#define VPU_ARB_DBG_STAT_L1C2 (0x27b6)
#define P_VPU_ARB_DBG_STAT_L1C2 (volatile unsigned int *)((0x27b6 << 2) + 0xff900000)
#define VPU_ARB_DBG_CTRL_L2C1 (0x27b7)
#define P_VPU_ARB_DBG_CTRL_L2C1 (volatile unsigned int *)((0x27b7 << 2) + 0xff900000)
#define VPU_ARB_DBG_STAT_L2C1 (0x27b8)
#define P_VPU_ARB_DBG_STAT_L2C1 (volatile unsigned int *)((0x27b8 << 2) + 0xff900000)
#define VPU_ARB_PATH_CTRL (0x27b9)
#define P_VPU_ARB_PATH_CTRL (volatile unsigned int *)((0x27b9 << 2) + 0xff900000)
#define VPU_ARB_PATH_MAP00 (0x27ba)
#define P_VPU_ARB_PATH_MAP00 (volatile unsigned int *)((0x27ba << 2) + 0xff900000)
#define VPU_ARB_PATH_MAP01 (0x27bb)
#define P_VPU_ARB_PATH_MAP01 (volatile unsigned int *)((0x27bb << 2) + 0xff900000)
#define VPU_ARB_PATH_MAP02 (0x27bc)
#define P_VPU_ARB_PATH_MAP02 (volatile unsigned int *)((0x27bc << 2) + 0xff900000)
#define VPU_ARB_PATH_MAP03 (0x27bd)
#define P_VPU_ARB_PATH_MAP03 (volatile unsigned int *)((0x27bd << 2) + 0xff900000)
#define VPU_ARB_PATH_MAP10 (0x27be)
#define P_VPU_ARB_PATH_MAP10 (volatile unsigned int *)((0x27be << 2) + 0xff900000)
#define VPU_ARB_PATH_MAP11 (0x27bf)
#define P_VPU_ARB_PATH_MAP11 (volatile unsigned int *)((0x27bf << 2) + 0xff900000)
#define VPU_ARB_PATH_MAP12 (0x27c0)
#define P_VPU_ARB_PATH_MAP12 (volatile unsigned int *)((0x27c0 << 2) + 0xff900000)
#define VPU_ARB_PATH_MAP13 (0x27c1)
#define P_VPU_ARB_PATH_MAP13 (volatile unsigned int *)((0x27c1 << 2) + 0xff900000)
// synopsys translate_off
// synopsys translate_on
//
// Closing file: vpu_arb_axi_regs.h
//
// the segment is 8'he0-8'hef
#define VPU_VENCL_DITH_CTRL (0x27e0)
#define P_VPU_VENCL_DITH_CTRL (volatile unsigned int *)((0x27e0 << 2) + 0xff900000)
#define VPU_VENCL_DITH_LUT_1 (0x27e1)
#define P_VPU_VENCL_DITH_LUT_1 (volatile unsigned int *)((0x27e1 << 2) + 0xff900000)
#define VPU_VENCL_DITH_LUT_2 (0x27e2)
#define P_VPU_VENCL_DITH_LUT_2 (volatile unsigned int *)((0x27e2 << 2) + 0xff900000)
#define VPU_VENCL_DITH_LUT_3 (0x27e3)
#define P_VPU_VENCL_DITH_LUT_3 (volatile unsigned int *)((0x27e3 << 2) + 0xff900000)
#define VPU_VENCL_DITH_LUT_4 (0x27e4)
#define P_VPU_VENCL_DITH_LUT_4 (volatile unsigned int *)((0x27e4 << 2) + 0xff900000)
#define VPU_VENCL_DITH_LUT_5 (0x27e5)
#define P_VPU_VENCL_DITH_LUT_5 (volatile unsigned int *)((0x27e5 << 2) + 0xff900000)
#define VPU_VENCL_DITH_LUT_6 (0x27e6)
#define P_VPU_VENCL_DITH_LUT_6 (volatile unsigned int *)((0x27e6 << 2) + 0xff900000)
#define VPU_VENCL_DITH_LUT_7 (0x27e7)
#define P_VPU_VENCL_DITH_LUT_7 (volatile unsigned int *)((0x27e7 << 2) + 0xff900000)
#define VPU_VENCL_DITH_LUT_8 (0x27e8)
#define P_VPU_VENCL_DITH_LUT_8 (volatile unsigned int *)((0x27e8 << 2) + 0xff900000)
#define VPU_VENCL_DITH_LUT_9 (0x27e9)
#define P_VPU_VENCL_DITH_LUT_9 (volatile unsigned int *)((0x27e9 << 2) + 0xff900000)
#define VPU_VENCL_DITH_LUT_10 (0x27ea)
#define P_VPU_VENCL_DITH_LUT_10 (volatile unsigned int *)((0x27ea << 2) + 0xff900000)
#define VPU_VENCL_DITH_LUT_11 (0x27eb)
#define P_VPU_VENCL_DITH_LUT_11 (volatile unsigned int *)((0x27eb << 2) + 0xff900000)
#define VPU_VENCL_DITH_LUT_12 (0x27ec)
#define P_VPU_VENCL_DITH_LUT_12 (volatile unsigned int *)((0x27ec << 2) + 0xff900000)
//new added 4x4 dither
// the segment is 8'hf0
#define VPU_HDMI_DITH_01_04 (0x27f0)
#define P_VPU_HDMI_DITH_01_04 (volatile unsigned int *)((0x27f0 << 2) + 0xff900000)
#define VPU_HDMI_DITH_01_15 (0x27f1)
#define P_VPU_HDMI_DITH_01_15 (volatile unsigned int *)((0x27f1 << 2) + 0xff900000)
#define VPU_HDMI_DITH_01_26 (0x27f2)
#define P_VPU_HDMI_DITH_01_26 (volatile unsigned int *)((0x27f2 << 2) + 0xff900000)
#define VPU_HDMI_DITH_01_37 (0x27f3)
#define P_VPU_HDMI_DITH_01_37 (volatile unsigned int *)((0x27f3 << 2) + 0xff900000)
#define VPU_HDMI_DITH_10_04 (0x27f4)
#define P_VPU_HDMI_DITH_10_04 (volatile unsigned int *)((0x27f4 << 2) + 0xff900000)
#define VPU_HDMI_DITH_10_15 (0x27f5)
#define P_VPU_HDMI_DITH_10_15 (volatile unsigned int *)((0x27f5 << 2) + 0xff900000)
#define VPU_HDMI_DITH_10_26 (0x27f6)
#define P_VPU_HDMI_DITH_10_26 (volatile unsigned int *)((0x27f6 << 2) + 0xff900000)
#define VPU_HDMI_DITH_10_37 (0x27f7)
#define P_VPU_HDMI_DITH_10_37 (volatile unsigned int *)((0x27f7 << 2) + 0xff900000)
#define VPU_HDMI_DITH_11_04 (0x27f8)
#define P_VPU_HDMI_DITH_11_04 (volatile unsigned int *)((0x27f8 << 2) + 0xff900000)
#define VPU_HDMI_DITH_11_15 (0x27f9)
#define P_VPU_HDMI_DITH_11_15 (volatile unsigned int *)((0x27f9 << 2) + 0xff900000)
#define VPU_HDMI_DITH_11_26 (0x27fa)
#define P_VPU_HDMI_DITH_11_26 (volatile unsigned int *)((0x27fa << 2) + 0xff900000)
#define VPU_HDMI_DITH_11_37 (0x27fb)
#define P_VPU_HDMI_DITH_11_37 (volatile unsigned int *)((0x27fb << 2) + 0xff900000)
#define VPU_HDMI_DITH_CNTL (0x27fc)
#define P_VPU_HDMI_DITH_CNTL (volatile unsigned int *)((0x27fc << 2) + 0xff900000)
//========================================================================
// MIPI CSI2 Controller Adaptor (16'h2a00 - 16'h2aff)
//
//========================================================================
//`define CSI2_VCBUS_BASE 8'h2a
//`include "csi2_regs.h"
//======================================================================
// D2D3 registers
//======================================================================
//`define D2D3_VCBUS_BASE 8'h2b
//
// Reading file: d2d3_regs.h
//
//===========================================================================
// D2D3 Registers 0x - 0x
//===========================================================================
// -----------------------------------------------
// CBUS_BASE: D2D3_VCBUS_BASE = 0x2b
// -----------------------------------------------
//------------------------------------------------------------------------------
// D2D3 top-level registers
//------------------------------------------------------------------------------
// Bit 31 RW, rd_lock_en, 1 to allow update some read-only registers based on filed
// Bit 30 RW, sw_rst_nobuf, 1 to reset the whole d2d3 unit
// Bit 29:28 RW, clk_auto_dis, [29] DBR clock disable
// [28] DPG clock disable
// Bit 27:16 RW, clk_ctrl, [27:26] gated clock control for register unit
// [25:24] gated clock control for DBR unit
// [23:22] gated clock control for LBDG unit
// [21:20] gated clock control for MBDG unit
// [19:18] gated clock control for CBDG unit
// [17:16] gated clock control for DBLD unit and SCD81 unit
// Bit 15:12 Reserved
// Bit 11 RW, lo_chroma_sign, 0: negate the u/v component of DBR left channel video output, 1: bypass
// Bit 10 RW, ro_chroma_sign, 0: negate the u/v component of DBR right channel video output, 1: bypass
// Bit 9 RW, vi0_chroma_sign, 0: negate the u/v component of DPG video input, 1: bypass
// Bit 8 RW, vi1_chroma_sign, 0: negate the u/v component of DBR video input, 1: bypass
// Bit 7:5 Reserved
// Bit 4 RW, lg_en, Enable the LBDG unit and LBDG clock
// Bit 3 RW, mg_en, Enable the MBDG unit and MBDG clock
// Bit 2 RW, cg_en, Enable the CBDG unit and CBDG clock
// Bit 1 RW, dbr_en, Enable the DBR unit and DBR clock
// Bit 0 RW, dpg_en, Enable the DPG unit and clock except sub-unit CBDG, MBDG and LBDG
#define D2D3_GLB_CTRL (0x2b00)
#define P_D2D3_GLB_CTRL (volatile unsigned int *)((0x2b00 << 2) + 0xff900000)
// Indicate the input picture size in DPG unit
// Bit 31:16 RW, szx_vi_m1, The horizontal size minus 1
// Bit 15:0 RW, szy_vi_m1, The vertical size minus 1
#define D2D3_DPG_INPIC_SIZE (0x2b01)
#define P_D2D3_DPG_INPIC_SIZE (volatile unsigned int *)((0x2b01 << 2) + 0xff900000)
// Indicate the output picture size in DBR unit
// Bit 31:16 RW, szx_vo_m1, The horizontal size minus 1
// Bit 15:0 RW, szy_vo_m1, The vertical size minus 1
#define D2D3_DBR_OUTPIC_SIZE (0x2b02)
#define P_D2D3_DBR_OUTPIC_SIZE (volatile unsigned int *)((0x2b02 << 2) + 0xff900000)
// Indicate the rectangular window to generate the "depth" in DPG unit
// Bit 31:16 RW, dg_win_x_start, Horizontal start position, count from 0
// Bit 15:0 RW, dg_win_x_end, Horizontal end position, count from 0
#define D2D3_DGEN_WIN_HOR (0x2b03)
#define P_D2D3_DGEN_WIN_HOR (volatile unsigned int *)((0x2b03 << 2) + 0xff900000)
// Indicate the rectangular window to generate the "depth" in DPG unit
// Bit 31:16 RW, dg_win_y_start, Vertical start position, count from 0
// Bit 15:0 RW, dg_win_y_end, Vertical end position, count from 0
#define D2D3_DGEN_WIN_VER (0x2b04)
#define P_D2D3_DGEN_WIN_VER (volatile unsigned int *)((0x2b04 << 2) + 0xff900000)
//------------------------------------------------------------------------------
// CBDG SCU18 SCD81 SCD81_PRE registers
// cg: color based depth generate module
// scu18: scale up module
// scd81: scale down module
// scd81_pre: scd81 pre-scale-down module
//------------------------------------------------------------------------------
// Indicate parameters of pre-scale-down unit
// Bit 31:16 RW, scd81_hphs_step, horizontal step
// Bit 15:0 RW, scd81_hphs_ini, horizontal initial phase
#define D2D3_PRE_SCD_H (0x2b05)
#define P_D2D3_PRE_SCD_H (volatile unsigned int *)((0x2b05 << 2) + 0xff900000)
// Bit 31:16 RW, scu18_iniph, initial phase in SCU18,
// [23:16] indicate the horizontal phase offset from the first data of every line
// [31:24] indicate the vertical phase offset from the first line of every frame
// Bit 15:12 Reserved
// Bit 11 RW, scd81_predrop_en, 1 to enable scd81 pre-scale-down function
// Bit 10:9 RW, cg_csc_sel, Color Space Conversion(CSC) matrix mode selector in CBDG
// 0: BT.601 (16-235/240)
// 1: BT.709 (16-235/240)
// 2: BT.601 (0-255)
// 3: BT.709 (0-255)
// Bit 8 RW, scu18_rep_en, 1 to double each line of the SCU18 output
// Bit 7:4 RW, scu18_factor, up-scale factor in SCU18 on DBR input depth data
// [7:6] for vertical, 0->1:1, 1->1:2, 2->1:4, 3->1:8
// [5:4] for horizontal, 0->1:1, 1->1:2, 2->1:4, 3->1:8
// Bit 3:0 RW, scd81_factor, down-scale factor in SCD81 on DPG source video
// [3:2] for vertical, 0->1:1, 1->2:1, 2->4:1, 3->8:1
// [1:0] for horizontal, 0->1:1, 1->2:1, 2->4:1, 3->8:1
#define D2D3_SCALER_CTRL (0x2b06)
#define P_D2D3_SCALER_CTRL (volatile unsigned int *)((0x2b06 << 2) + 0xff900000)
// Bit 31:24 RW, cg_rpg_dth, the down |r-g| threshold for sky detect
// Bit 23:16 RW, cg_rpg_uth, the up |r-g| threshold for sky detect
// Bit 15:8 RW, cg_lum_dth, the down Y threshold for sky detect
// Bit 7:0 RW, cg_lum_uth, the up Y threshold for sky detect
#define D2D3_CG_THRESHOLD_1 (0x2b07)
#define P_D2D3_CG_THRESHOLD_1 (volatile unsigned int *)((0x2b07 << 2) + 0xff900000)
// Bit 31:24 RW, cg_rpb_dth, the down |r-b| threshold for sky detect
// Bit 23:16 RW, cg_rpb_uth, the up |r-b| threshold for sky detect
// Bit 15:8 RW, cg_bpg_dth, the down |b-g| threshold for sky detect
// Bit 7:0 RW, cg_bpg_uth, the up |b-g| threshold for sky detect
#define D2D3_CG_THRESHOLD_2 (0x2b08)
#define P_D2D3_CG_THRESHOLD_2 (volatile unsigned int *)((0x2b08 << 2) + 0xff900000)
// Bit 31:24 RW, cg_vp_rel_k, parameter to calculate vanish point reliability
// Bit 23:16 RW, cg_vp_y_thr, the max limitation to calculate the vanish-point's vertical position
// Bit 15:8 RW, cg_meet_dval, signed depth value in the sky-bitmap
// Bit 7:0 RW, cg_unmt_dval, signed depth value not in the sky-bitmap
#define D2D3_CG_PARAM_1 (0x2b09)
#define P_D2D3_CG_PARAM_1 (volatile unsigned int *)((0x2b09 << 2) + 0xff900000)
// Bit 31:16 RW, cg_vpos_thr, Maximal vertical limitation for sky-bit map when cg_vpos_en=1 and cg_vpos_adpt_en=0
// Bit 15:8 Reserved
// Bit 7 RW, cg_vpos_en, 1 to enable the max vertical limitation for sky-bitmap
// Bit 6 RW, cg_vpos_adpt_en, 1 to enable the adaptive max vertical limitation for sky-bitmap.
// It is only valid when cg_vpos_en=1.
// The max vertical limitation is the previous field's vanish-point (vertical position) if cg_vpos_adpt_en=1.
// Bit 5:4 RW, cg_lpf_bypass, bypass of low pass filter
// [5]:Vertical bypass, 1: bypass the vertical LPF on the CBDG depth
// [4]:Horizontal bypass, 1: bypass the horizontal LPF on the CBDG depth
// Bit 3:0 RW, cg_vp_rel_s, parameter to calculate vanish point reliability
#define D2D3_CG_PARAM_2 (0x2b0a)
#define P_D2D3_CG_PARAM_2 (volatile unsigned int *)((0x2b0a << 2) + 0xff900000)
// Indicate parameters of pre-scale-down unit
// Bit 31:16 RW, scd81_vphs_step, vertical step
// Bit 15:0 RW, scd81_vphs_ini, vertical initial phase
#define D2D3_PRE_SCD_V (0x2b0b)
#define P_D2D3_PRE_SCD_V (volatile unsigned int *)((0x2b0b << 2) + 0xff900000)
//------------------------------------------------------------------------------
// D2P registers
// d2p: depth to parallax transform module
//------------------------------------------------------------------------------
// Bit 31:24 RW, d2p_brdwid, Horizontal boundary width for parallax, the parallax value would be forced to 0 in boundary,
// the d2p_brdwid should not 0 when D2P_WRAP is enabled
// Bit 23:22 Reserved
// Bit 21:20 RW, d2p_lomode, line output mode,
// 0:whole line is left or right; 1:whole line is left or right;
// 2:left/right pixel interleaved; 3:left/right half-line interleaved
// Bit 19 RW, d2p_neg, 1 to exchange the left and right parallax value
// Bit 18 Reserved
// Bit 17 RW, d2p_wrap_en, 1 to enable D2P_WRAP unit
// Bit 16 RW, d2p_lar, Indicate the first output for left or right, 0: left; 1: right
// Bit 15 RW, d2p_lr_switch, enable left/right flag filed switch automatically, only valid when parallax output mode is field interleaved
// Bit 14 RW, d2p_1dtolr, enable to generate 2 parallax data (left and right) from one depth
// Bit 13:12 RW, d2p_out_mode, Parallax output mode
// 0:left/right pixel interleaved; 1:line or half line interleaved; 2:field interleaved
// Bit 11:8 RW, d2p_smode, Shift mode,
// 0: no shift; 1: enable left shift;
// 2: enable right shift; 3: both left and right shift are enabled
// Bit 7:0 RW, d2p_offset, depth offset, signed,
#define D2D3_D2P_PARAM_1 (0x2b0c)
#define P_D2D3_D2P_PARAM_1 (volatile unsigned int *)((0x2b0c << 2) + 0xff900000)
// Bit 31:24 RW, d2p_pg0, positive parallax gain when Parallax value < pt
// Bit 23:16 RW, d2p_pg1, positive parallax gain when Parallax value >= pt
// Bit 15:8 RW, d2p_pt, unsigned value used to separate the positive parallax range
// Bit 7:0 RW, d2p_plimit, The limitation for positive parallax
#define D2D3_D2P_PARAM_2 (0x2b0d)
#define P_D2D3_D2P_PARAM_2 (volatile unsigned int *)((0x2b0d << 2) + 0xff900000)
// Bit 31:24 RW, d2p_ng0, negative parallax gain when Parallax value > -nt
// Bit 23:16 RW, d2p_ng1, negative parallax gain when Parallax value <= -nt
// Bit 15:8 RW, d2p_nt, unsigned value used to separate the negative parallax range
// Bit 7:0 RW, d2p_nlimit, The limitation for negative parallax
#define D2D3_D2P_PARAM_3 (0x2b0e)
#define P_D2D3_D2P_PARAM_3 (volatile unsigned int *)((0x2b0e << 2) + 0xff900000)
// Indicate step parameters of SCU18 unit
// Bit 31:17 Reserved
// Bit 16 RW, scu18_step_en, step set enable in SCU18
// Bit 15:8 RW, scu18_hphs_step, horizontal step in SCU18
// Bit 7:0 RW, scu18_vphs_step, vertical step in SCU18
#define D2D3_SCU18_STEP (0x2b0f)
#define P_D2D3_SCU18_STEP (volatile unsigned int *)((0x2b0f << 2) + 0xff900000)
//------------------------------------------------------------------------------
// LBDG and DBLD registers
// lg: luma based depth generate module
// db: depth blending module
//------------------------------------------------------------------------------
// Bit 31:22 Reserved
// Bit 21:20 RW, db_lpf_bpcoeff, [21]:Vertical factor of low pass filter,
// 1: Vfactor = 0/0/64/0/0, 0: Vfactor = {db_vf_a,db_vf_b,db_vf_c,db_vf_b,db_vf_a}, see D2D3_CTRL_15
// [20]:Horizontal factor of low pass filter,
// 1: Hfactor = 0/0/64/0/0, 0: Hfactor = {db_hf_a,db_hf_b,db_hf_c,db_hf_b,db_hf_a}, see D2D3_CTRL_14
// Bit 19:18 RW, lg_lpf_bpcoeff, [19]:Vertical factor of low pass filter, 1: Vfactor = 0/64/0, 0: Vfactor = 20/24/20
// [18]:Horizontal factor of low pass filter, 1: Hfactor = 0/64/0, 0: Hfactor = 16/32/16
// Bit 17:16 RW, cg_lpf_bpcoeff, [17]:Vertical factor of low pass filter, 1: Vfactor = 0/64/0, 0: Vfactor = 20/24/20
// [16]:Horizontal factor of low pass filter, 1: Hfactor = 0/64/0, 0: Hfactor = 16/32/16
// Bit 15:10 Reserved
// Bit 9:8 RW, db_lpf_bypass, [9] 1 to bypass the vertical LPF on the DBLD depth
// [8] 1 to bypass the horizontal LPF on the DBLD depth
// Bit 7:6 RW, lg_lpf_bypass, [7] 1 to bypass the vertical LPF on the LBDG depth
// [6] 1 to bypass the horizontal LPF on the LBDG depth
// Bit 5:0 RW, lg_kc, gain of CPL(v-u+256-y) to calculate the depth in LBDG
#define D2D3_DPF_LPF_CTRL (0x2b10)
#define P_D2D3_DPF_LPF_CTRL (volatile unsigned int *)((0x2b10 << 2) + 0xff900000)
//------------------------------------------------------------------------------
// DBLD registers
// db: depth blending module
//------------------------------------------------------------------------------
// Bit 31:24 RW, db_g2_cg, gain of CBDG depth in DBLD
// Bit 23:16 RW, db_o2_cg, offset of CBDG depth in DBLD
// Bit 15:8 RW, db_g1_cg, gain of CBDG depth using for summary in DBLD
// Bit 7:0 RW, db_o1_cg, offset of CBDG depth using for summary in DBLD
#define D2D3_DBLD_CG_PARAM (0x2b11)
#define P_D2D3_DBLD_CG_PARAM (volatile unsigned int *)((0x2b11 << 2) + 0xff900000)
// Bit 31:24 RW, db_g2_mg, gain of MBDG depth in DBLD
// Bit 23:16 RW, db_o2_mg, offset of MBDG depth in DBLD
// Bit 15:8 RW, db_g1_mg, gain of MBDG depth using for summary in DBLD
// Bit 7:0 RW, db_o1_mg, offset of MBDG depth using for summary in DBLD
#define D2D3_DBLD_MG_PARAM (0x2b12)
#define P_D2D3_DBLD_MG_PARAM (volatile unsigned int *)((0x2b12 << 2) + 0xff900000)
// Bit 31:24 RW, db_g2_lg, gain of LBDG depth in DBLD
// Bit 23:16 RW, db_o2_lg, offset of LBDG depth in DBLD
// Bit 15:8 RW, db_g1_lg, gain of LBDG depth using for summary in DBLD
// Bit 7:0 RW, db_o1_lg, offset of LBDG depth using for summary in DBLD
#define D2D3_DBLD_LG_PARAM (0x2b13)
#define P_D2D3_DBLD_LG_PARAM (volatile unsigned int *)((0x2b13 << 2) + 0xff900000)
// Bit 31:24 RW, db_factor, unsigned gain of difference in DBLD
// Bit 23:16 RW, db_hf_a, see register DPF_LPF_CTRL:db_lpf_bpcoeff, sign
// Bit 15:8 RW, db_hf_b, see register DPF_LPF_CTRL:db_lpf_bpcoeff, sign
// Bit 7:0 RW, db_hf_c, see register DPF_LPF_CTRL:db_lpf_bpcoeff, sign
#define D2D3_DBLD_LPF_HCOEFF (0x2b14)
#define P_D2D3_DBLD_LPF_HCOEFF (volatile unsigned int *)((0x2b14 << 2) + 0xff900000)
// Bit 31:24 RW, db_owin_fill, signed depth value outside the rectangular window defined in register DGEN_WIN_HOR and DGEN_WIN_VER
// Bit 23:16 RW, db_vf_a, see register DPF_LPF_CTRL:db_lpf_bpcoeff, sign
// Bit 15:8 RW, db_vf_b, see register DPF_LPF_CTRL:db_lpf_bpcoeff, sign
// Bit 7:0 RW, db_vf_c, see register DPF_LPF_CTRL:db_lpf_bpcoeff, sign
#define D2D3_DBLD_LPF_VCOEFF (0x2b15)
#define P_D2D3_DBLD_LPF_VCOEFF (volatile unsigned int *)((0x2b15 << 2) + 0xff900000)
// Bit 31:28 RW, hist_depth_idx,
// Bit 27:26 Reserved
// Bit 25 RW, mbdg_dep_neg, 1 to negate the output data of MBDG
// Bit 24 RW, lbdg_dep_neg, 1 to negate the output data of LBDG
// Bit 23:16 RW, db_f1_ctrl, MUX1 selector
// [1:0] MUX1 path1 selector, 0:summary, 1:CBDG, 2:MBDG, 3:LBDG
// [3:2] MUX1 path2 selector, 0:summary, 1:CBDG, 2:MBDG, 3:LBDG
// [6:4] MUX1 out1 selector, 1:CBDG, 2:MBDG, 3:LBDG, 4:summary, 5:MUX1out0, others:summary
// [7] MUX1OUT0 selector, 0:MIN (MUX1PATH1,MUX1Path2), 1:MAX (MUX1Path1,MUX1Path2)
// Bit 15:8 RW, db_f2_ctrl, MUX2 selector
// [1:0] MUX2 path1 selector, 0:MUX1OUT1, 1:CBDG, 2:MBDG, 3:LBDG
// [3:2] MUX2 path2 selector, 0:MUX1OUT1, 1:CBDG, 2:MBDG, 3:LBDG
// [6:4] MUX2 out1 selector, 1:CBDG, 2:MBDG, 3:LBDG, 4:summary, 5:MUX2out0, others:MUX2out0
// [7] MUX2OUT0 selector, 0:MIN (MUX2PATH1,MUX2Path2), 1:MAX (MUX2Path1,MUX2Path2)
// Bit 7:4 RW, db_fifo0_sel, the source input of FIFO0
// 0: no use; 1:from CBDG; 2:from MBDG; 3:from LBDG others:reserved
// Bit 3:0 RW, db_fifo1_sel, the source input of FIFO1
// 0: no use; 1:from CBDG; 2:from MBDG; 3:from LBDG 4: from FIFO0; others:reserved
#define D2D3_DBLD_PATH_CTRL (0x2b16)
#define P_D2D3_DBLD_PATH_CTRL (volatile unsigned int *)((0x2b16 << 2) + 0xff900000)
// Indicate the input picture size in SCU18 unit
// Bit 31:16 RW, szy_scui, The vertical size
// Bit 15:0 RW, szx_scui, The horizontal size
#define D2D3_SCU18_INPIC_SIZE (0x2b17)
#define P_D2D3_SCU18_INPIC_SIZE (volatile unsigned int *)((0x2b17 << 2) + 0xff900000)
//------------------------------------------------------------------------------
// MBDG registers
// mg: model based depth generate module
//------------------------------------------------------------------------------
// Bit 31:18 Reserved
// Bit 17 RW, mg_vp_en, mdg vanish point enable, not used
// Bit 16 RW, mg_sw_en, 1 to use the software forced parameter for the point D, U and C in MBDG
// Bit 15:8 RW, mg_owin_fill, Signed depth value outside the rectangular window defined in register DGEN_WIN_HOR and DGEN_WIN_VER
// Bit 7 RW, mg_iir_en, 1 to enable the 2-taps IIR filter in MBDG
// Bit 6:0 RW, mg_iir, [6]: 1 to bypass the 2-taps IIR filter in MBDG
// [5:0]:Unsigned coefficient of the 2-taps IIR filter in MBDG
// [6]:bypass, 1:bypass, 0:not bypass
#define D2D3_MBDG_CTRL (0x2b18)
#define P_D2D3_MBDG_CTRL (volatile unsigned int *)((0x2b18 << 2) + 0xff900000)
// Bit 31:28 RW, mg_dtl_pxl_left, Max pixel number (1<< mg_dtl_pxl_left) using in the left window for activities in MBDG
// Bit 27:24 RW, mg_dtl_pxl_right, Max pixel number (1<< mg_dtl_pxl_right) using in the right window for activities in MBDG
// Bit 23:16 RW, mg_cx_sw, Depth of point C in horizontal curve in MBDG for software forced
// Bit 15:8 RW, mg_ux_sw, Depth of point U in horizontal curve in MBDG for software forced
// Bit 7:0 RW, mg_dx_sw, Depth of point D in horizontal curve in MBDG for software forced
#define D2D3_MBDG_PARAM_0 (0x2b19)
#define P_D2D3_MBDG_PARAM_0 (volatile unsigned int *)((0x2b19 << 2) + 0xff900000)
// Bit 31:28 RW, mg_dtl_pxl_up, Max pixel number (1<< mg_dtl_pxl_up) using in the top window for activities in MBDG
// Bit 27:24 RW, mg_dtl_pxl_dn, Max pixel number (1<< mg_dtl_pxl_dn) using in the bottom window for activities in MBDG
// Bit 23:16 RW, mg_cy_sw, Depth of point C in vertical curve in MBDG for software forced
// Bit 15:8 RW, mg_uy_sw, Depth of point U in vertical curve in MBDG for software forced
// Bit 7:0 RW, mg_dy_sw, Depth of point D in vertical curve in MBDG for software forced
#define D2D3_MBDG_PARAM_1 (0x2b1a)
#define P_D2D3_MBDG_PARAM_1 (volatile unsigned int *)((0x2b1a << 2) + 0xff900000)
// Bit 31:24 RW, mg_dtl_ln_up, Line number in the top window for activities in MBDG
// Bit 23:16 RW, mg_dtl_ln_dn, Line number in the bottom window for activities in MBDG
// Bit 15:8 RW, mg_dtl_ln_left, Column number in the left window for activities in MBDG
// Bit 7:0 RW, mg_dtl_ln_right,Column number in the right window for activities in MBDG
#define D2D3_MBDG_PARAM_2 (0x2b1b)
#define P_D2D3_MBDG_PARAM_2 (volatile unsigned int *)((0x2b1b << 2) + 0xff900000)
// Bit 31:24 RW, mg_y_max, Software initial depth of point D and U in vertical curve
// Bit 23:16 RW, mg_y_min, Software initial depth of point C in vertical curve
// Bit 15:8 RW, mg_x_max, Software initial depth of point D and U in horizontal curve
// Bit 7:0 RW, mg_x_min, Software initial depth of point C in horizontal curve
#define D2D3_MBDG_PARAM_3 (0x2b1c)
#define P_D2D3_MBDG_PARAM_3 (volatile unsigned int *)((0x2b1c << 2) + 0xff900000)
// Bit 31:27 Reserved
// Bit 26 RW, mg_y_adapt_en, 1 to enable the adaptive mode for point U/D in vertical curve calculation
// Bit 25 RW, mg_xmm_adapt_en, 1 to enable the XMM adaptive mode for point U/D in horizontal curve calculation
// Bit 24 RW, mg_x_adapt_en, 1 to enable the adaptive mode for point U/D in horizontal curve calculation
// Bit 23:20 RW, mg_ytrans_1, Shifter controller in vertical curve calculation, if mg_xtrans_1<0, right shift abs(mg_xtrans_1) bits, others left shift abs(mg_xtrans_1) bits
// Bit 19:16 RW, mg_xtrans_1, Shifter controller in horizontal curve calculation, if mg_xtrans_1<0, right shift abs(mg_xtrans_1) bits, others left shift abs(mg_xtrans_1) bits
// Bit 15:8 RW, mg_yk_0, The based activities value of the ACT for vertical curve
// Bit 7:0 RW, mg_xk_0, The based activities value of the ACT for horizontal curve
#define D2D3_MBDG_PARAM_4 (0x2b1d)
#define P_D2D3_MBDG_PARAM_4 (volatile unsigned int *)((0x2b1d << 2) + 0xff900000)
// Bit 31:24 RW, mg_ysu3, Quantized value 3 in vertical curve adaptive calculation
// Bit 23:16 RW, mg_ysu2, Quantized value 2 in vertical curve adaptive calculation
// Bit 15:8 RW, mg_ysu1, Quantized value 1 in vertical curve adaptive calculation
// Bit 7:0 RW, mg_ysu0, Quantized value 0 in vertical curve adaptive calculation
#define D2D3_MBDG_PARAM_5 (0x2b1e)
#define P_D2D3_MBDG_PARAM_5 (volatile unsigned int *)((0x2b1e << 2) + 0xff900000)
// Bit 31:24 RW, mg_xsu3, Quantized value 3 in horizontal curve adaptive calculation
// Bit 23:16 RW, mg_xsu2, Quantized value 2 in horizontal curve adaptive calculation
// Bit 15:8 RW, mg_xsu1, Quantized value 1 in horizontal curve adaptive calculation
// Bit 7:0 RW, mg_xsu0, Quantized value 0 in horizontal curve adaptive calculation
#define D2D3_MBDG_PARAM_6 (0x2b1f)
#define P_D2D3_MBDG_PARAM_6 (volatile unsigned int *)((0x2b1f << 2) + 0xff900000)
// Bit 31:16 Reserved
// Bit 15:8 RW, mg_xsu4, Quantized value 4 in horizontal curve adaptive calculation
// Bit 7:0 RW, mg_ysu4, Quantized value 4 in vertical curve adaptive calculation
#define D2D3_MBDG_PARAM_7 (0x2b20)
#define P_D2D3_MBDG_PARAM_7 (volatile unsigned int *)((0x2b20 << 2) + 0xff900000)
// Bit 31:28 RW, dbg_hscnt_sel see DBG_STATUS_2
// Bit 27:25 Reserved
// Bit 24 RW, dbg_dbr_en, 1 to enable debug mode in DBR
// Bit 23:16 RW, dbg_force_data, Forced data in debug mode
// Bit 15:12 RW, dbg_bld_ctrl, debug controller for DBLD
// [12]:enable; [13]: 0 for passive mode, 0 for handshake mode
// [15:14]: 0 for constant mode, 1 for step1 mode
// Bit 11:8 RW, dbg_mg_ctrl, debug controller for MBDG
// [8]:enable; [9]: 0 for passive mode, 0 for handshake mode
// [11:10]: 0 for constant mode, 1 for step1 mode
// Bit 7:4 RW, dbg_cg_ctrl, debug controller for CBDG
// [4]:enable; [5]: 0 for passive mode, 0 for handshake mode
// [7:6]: 0 for constant mode, 1 for step1 mode
// Bit 3:0 RW, dbg_lg_ctrl, debug controller for LBDG
// [0]:enable; [1]: 0 for passive mode, 0 for handshake mode
// [3:2]: 0 for constant mode, 1 for step1 mode
#define D2D3_DBG_CTRL (0x2b23)
#define P_D2D3_DBG_CTRL (volatile unsigned int *)((0x2b23 << 2) + 0xff900000)
//------------------------------------------------------------------------------
// DWMIF registers
//------------------------------------------------------------------------------
// Bit 31:18 Reserved
// Bit 17 RW, dw_x_rev 0: Normal write data from left to right in horizontal
// 1: Reversed write data from left to right in horizontal
// Bit 16 RW, dw_y_rev 0: Normal write data from top to bottom in horizontal
// 1: Reversed write data from bottom to top in horizontal
// Bit 15 RW, dw_done_clr 1 to clear register depw_done (DWMIF_STATUS)
// Bit 14 RW, dw_little_endian, 0: data is ordered in big-endian, 1: little endian
// Bit 13:12 RW, dw_pic_struct, 0:read every line, 1:reserved, 2:read even line, 3:read odd line
// Bit 11 RW, dw_urgent, urgent index
// Bit 10 RW, dw_clr_wrrsp, 1:clear the write fifo counter
// Bit 9 RW, dw_canvas_wr, canvas write initialization again
// Bit 8 RW, dw_req_en, 1 to enable write request
// Bit 7:0 RW, dw_canvas_index,Canvas index for the MSB of memory address for memory write
#define D2D3_DWMIF_CTRL (0x2b24)
#define P_D2D3_DWMIF_CTRL (volatile unsigned int *)((0x2b24 << 2) + 0xff900000)
// Bit 31 Reserved
// Bit 30:16 RW, dw_end_x, Horizontal end position for memory write, count by BYTE
// Bit 15 Reserved
// Bit 14:0 RW, dw_start_x, Horizontal start position for memory write, count by BYTE
#define D2D3_DWMIF_HPOS (0x2b25)
#define P_D2D3_DWMIF_HPOS (volatile unsigned int *)((0x2b25 << 2) + 0xff900000)
// Bit 31:29 Reserved
// Bit 28:16 RW, dw_end_y, Vertical end position for memory write, count by BYTE
// Bit 15:13 Reserved
// Bit 12:0 RW, dw_start_y, Vertical start position for memory write, count by BYTE
#define D2D3_DWMIF_VPOS (0x2b26)
#define P_D2D3_DWMIF_VPOS (volatile unsigned int *)((0x2b26 << 2) + 0xff900000)
// Bit 31:28 Reserved
// Bit 27:16 RW, dw_vsizem1, Vertical size for memory write, equal the size minus 1
// Bit 15:12 Reserved
// Bit 11:0 RW, dw_hsizem1, Horizontal size for memory write, equal the size minus 1
#define D2D3_DWMIF_SIZE (0x2b27)
#define P_D2D3_DWMIF_SIZE (volatile unsigned int *)((0x2b27 << 2) + 0xff900000)
//------------------------------------------------------------------------------
// DRMIF registers
//------------------------------------------------------------------------------
// Bit 31:18 Reserved
// Bit 17 RW, dr_y_rev, 0: Normal Read data from top to bottom in horizontal
// 1: Reversed read data from bottom to top in horizontal
// Bit 16 RW, dr_x_rev, 0: Normal Read data from left to right in horizontal
// 1: Reversed read data from right to left in horizontal
// Bit 15 RW, dr_clr_fifo_error, 1 to clear the overflow flag of the sticky FIFO
// Bit 14 RW, dr_little_endian, 0: data is ordered in big-endian; 1: little-endian
// Bit 13:12 RW, dr_pic_struct, 0: progressive; 1: Reserved;
// 2: interlaced, even line; 3: interlaced, odd line
// Bit 11 RW, dr_urgent, urgent index, no use in this system
// Bit 10:9 RW, dr_burst_size, Burst read length for each request; 0=24,1=32,2=48,3=64
// Bit 8 RW, dr_req_en, 1 to enable read request
// Bit 7:0 RW, dr_canvas_index, Canvas index for the MSB of memory address for memory read
#define D2D3_DRMIF_CTRL (0x2b28)
#define P_D2D3_DRMIF_CTRL (volatile unsigned int *)((0x2b28 << 2) + 0xff900000)
// Bit 31 Reserved
// Bit 30:16 RW, dr_end_x, Horizontal end position for memory read, count by BYTE
// Bit 15 Reserved
// Bit 14:0 RW, dr_start_x, Horizontal start position for memory read, count by BYTE
#define D2D3_DRMIF_HPOS (0x2b29)
#define P_D2D3_DRMIF_HPOS (volatile unsigned int *)((0x2b29 << 2) + 0xff900000)
// Bit 31:29 Reserved
// Bit 28:16 RW, dr_end_y, Vertical end position for memory read, count by BYTE
// Bit 15:13 Reserved
// Bit 12:0 RW, dr_start_y, Vertical start position for memory read, count by BYTE
#define D2D3_DRMIF_VPOS (0x2b2a)
#define P_D2D3_DRMIF_VPOS (volatile unsigned int *)((0x2b2a << 2) + 0xff900000)
//------------------------------------------------------------------------------
// PDR registers
// ddd: parallax based render
//------------------------------------------------------------------------------
// Bit 31:8 Reserved
// Bit 7 RW, ddd_brdlpf_en, 1 to enable the smooth filter on the depth around the boundary
// Bit 6 RW, ddd_extn_black, 1 to enable the function to fill black colour when interpolated pixels is outside the picture in DBR
// Bit 5 RW, ddd_wrap_en, Reserved
// Bit 4 RW, ddd_hhalf, 1 to indicate the left/right line length is a half of original line.
// Bit 3:2 RW, ddd_out_mode, Reserved
// Bit 1:0 RW, ddd_lomode, wrap & pbr interleave mode:
// 2'b0x: whole line is left or right;
// 2'b10: d2p_lar=1(D2P_PARAM_1), rlrlrlrl inteleave in one line,
// d2p_lar=0(D2P_PARAM_1), lrlrlrlr inteleave in one line,
// 2'b11: d2p_lar=1(D2P_PARAM_1), rrrrr?lllll, half line is right, another half is left,
// d2p_lar=0(D2P_PARAM_1), lllll?rrrrr, half line is left, another half is right,
#define D2D3_DBR_DDD_CTRL (0x2b2c)
#define P_D2D3_DBR_DDD_CTRL (volatile unsigned int *)((0x2b2c << 2) + 0xff900000)
// Bit 31:0 RW, ddd_dbg_ctrl, no use
#define D2D3_DBR_DDD_DBG (0x2b2d)
#define P_D2D3_DBR_DDD_DBG (volatile unsigned int *)((0x2b2d << 2) + 0xff900000)
//------------------------------------------------------------------------------
// LRDMX registers
//------------------------------------------------------------------------------
// Bit 31:9 Reserved
// Bit 8 RW, lr_merge, 1: all the left/right input go to the left channel output
// Bit 7:6 RW, lrd_ff0_sel, FF0 source selector
// 0:from left input; 1:from right input; 2:from FF0; 3:no used
// Bit 5:4 RW, lrd_ff1_sel, FF1 source selector
// 0:from left input; 1:from right input; 2:from FF0; 3:no used
// Bit 3:2 RW, lrd_lout_sel, left channel DEMUX
// 00: ff0 01:ff1 10: left input 11:right input
// Bit 1:0 RW, lrd_rout_sel, right channel DEMUX
// 00: ff1 01:ff0 10: left input 11:right input
#define D2D3_DBR_LRDMX_CTRL (0x2b2f)
#define P_D2D3_DBR_LRDMX_CTRL (volatile unsigned int *)((0x2b2f << 2) + 0xff900000)
//------------------------------------------------------------------------------
// Read Only registers
//------------------------------------------------------------------------------
// Bit 31:24 RO, ro_cg_vprel, vanish point's reliability in CBDG
// Bit 23:12 RO, ro_cg_vpx, vanish point's X-Axis in CBDG
// Bit 11:0 RO, ro_cg_vpy, vanish point's Y-Axis in CBDG
#define D2D3_CBDG_STATUS_1 (0x2b30)
#define P_D2D3_CBDG_STATUS_1 (volatile unsigned int *)((0x2b30 << 2) + 0xff900000)
// Bit 31:24 RO, ro_mg_cx[7:0], X-Axis of point C in horizontal curve in MBDG
// Bit 23:16 RO, ro_mg_ux, Depth value of point U in horizontal curve in MBDG
// Bit 15:8 RO, ro_mg_dx, Depth value of point D in horizontal curve in MBDG
// Bit 7:0 RO, ro_mg_minx, Depth value of point C in horizontal curve in MBDG
#define D2D3_MBDG_STATUS_1 (0x2b31)
#define P_D2D3_MBDG_STATUS_1 (volatile unsigned int *)((0x2b31 << 2) + 0xff900000)
// Bit 31:24 RO, ro_mg_cy[7:0], X-Axis of point C in vertical curve in MBDG
// Bit 23:16 RO, ro_mg_uy, Depth value of point U in vertical curve in MBDG
// Bit 15:8 RO, ro_mg_dy, Depth value of point D in vertical curve in MBDG
// Bit 7:0 RO, ro_mg_miny, Depth value of point C in vertical curve in MBDG
#define D2D3_MBDG_STATUS_2 (0x2b32)
#define P_D2D3_MBDG_STATUS_2 (volatile unsigned int *)((0x2b32 << 2) + 0xff900000)
// Bit 31 RO, ro_wrap_status, 1 indicate the D2P_WRAP is busy to perform the initialization
// Bit 30:8 Reserved
// Bit 7:4 RO, ro_mg_cy[11:8], X-Axis of point C in vertical curve in MBDG
// Bit 3:0 RO, ro_mg_cx[11:8], X-Axis of point C in horizontal curve in MBDG
#define D2D3_MBDG_STATUS_3 (0x2b33)
#define P_D2D3_MBDG_STATUS_3 (volatile unsigned int *)((0x2b33 << 2) + 0xff900000)
// Bit 31:21 Reserved
// Bit 20:0 RO, ro_mg_sum_u, ACT(top): activities of the top part
#define D2D3_MBDG_STATUS_4 (0x2b34)
#define P_D2D3_MBDG_STATUS_4 (volatile unsigned int *)((0x2b34 << 2) + 0xff900000)
// Bit 31:21 Reserved
// Bit 20:0 RO, ro_mg_sum_d, ACT(bottom): activities of the bottom part
#define D2D3_MBDG_STATUS_5 (0x2b35)
#define P_D2D3_MBDG_STATUS_5 (volatile unsigned int *)((0x2b35 << 2) + 0xff900000)
// Bit 31:21 Reserved
// Bit 20:0 RO, ro_mg_sum_l, ACT(left): activities of the left part
#define D2D3_MBDG_STATUS_6 (0x2b36)
#define P_D2D3_MBDG_STATUS_6 (volatile unsigned int *)((0x2b36 << 2) + 0xff900000)
// Bit 31:21 Reserved
// Bit 20:0 RO, ro_mg_sum_r, ACT(right): activities of the right part
#define D2D3_MBDG_STATUS_7 (0x2b37)
#define P_D2D3_MBDG_STATUS_7 (volatile unsigned int *)((0x2b37 << 2) + 0xff900000)
// Bit 31:0 dbg_handshake_ro0, handshake signal for debug, internal srdy and rrdy
#define D2D3_DBG_STATUS_1 (0x2b38)
#define P_D2D3_DBG_STATUS_1 (volatile unsigned int *)((0x2b38 << 2) + 0xff900000)
// Bit 31:0 dbg_hscnt, dbg_hscnt_sel == 4'h0, output lg hscnt
// dbg_hscnt_sel == 4'h1, output cg hscnt
// dbg_hscnt_sel == 4'h2, output mg hscnt
// dbg_hscnt_sel == 4'h3, output bld hscnt
// dbg_hscnt_sel == other value, output 32'h0
#define D2D3_DBG_STATUS_2 (0x2b39)
#define P_D2D3_DBG_STATUS_2 (volatile unsigned int *)((0x2b39 << 2) + 0xff900000)
// Bit 31:0 RO, drmif_status, drmif module internal status
#define D2D3_DRMIF_STATUS (0x2b3a)
#define P_D2D3_DRMIF_STATUS (volatile unsigned int *)((0x2b3a << 2) + 0xff900000)
// Bit 31:2 RO, Reserved
// Bit 1:0 RO, d2d3_status0, [1]: depw_done, one field depth write to ddr has done
// [0]: dwmif_pending_ddr_wrrsp, 1 to indicate write response from ddr
#define D2D3_DWMIF_STATUS (0x2b3b)
#define P_D2D3_DWMIF_STATUS (volatile unsigned int *)((0x2b3b << 2) + 0xff900000)
// Bit 31:24 Reserved
// Bit 23:0 RO, ro_meet_sum, register sumxy_sum_dbg in CBDG
#define D2D3_CBDG_STATUS_2 (0x2b3c)
#define P_D2D3_CBDG_STATUS_2 (volatile unsigned int *)((0x2b3c << 2) + 0xff900000)
// Bit 31:20 Reserved
// Bit 19:0 RO, ro_hist_depth,
#define D2D3_DBLD_STATUS (0x2b3d)
#define P_D2D3_DBLD_STATUS (volatile unsigned int *)((0x2b3d << 2) + 0xff900000)
// Bit 31:0 Reserved
#define D2D3_RESEV_STATUS1 (0x2b3e)
#define P_D2D3_RESEV_STATUS1 (volatile unsigned int *)((0x2b3e << 2) + 0xff900000)
// Bit 31:0 Reserved
#define D2D3_RESEV_STATUS2 (0x2b3f)
#define P_D2D3_RESEV_STATUS2 (volatile unsigned int *)((0x2b3f << 2) + 0xff900000)
//
// Closing file: d2d3_regs.h
//
//========================================================================
// MIPI DSI Host Controller (16'h2c00 - 16'h2cff)
//
//========================================================================
//`define DSI_VCBUS_BASE 8'h2c
//`include "dsi_regs.h"
//========================================================================
// ISP register (16'h2d00 - 16'h2dff)
//========================================================================
//`define ISP_VCBUS_BASE 8'h2d
//`include "isp_reg.h"
//`define MADB_VCBUS_BASE 8'h2d
//
// Reading file: dnr_regs.h
//
// synopsys translate_off
// synopsys translate_on
// -----------------------------------------------
// CBUS_BASE: MADB_VCBUS_BASE = 0x2d
// -----------------------------------------------
#define DNR_CTRL (0x2d00)
#define P_DNR_CTRL (volatile unsigned int *)((0x2d00 << 2) + 0xff900000)
//Bit 31:17, reserved
//Bit 16, reg_dnr_en , dnr enable . unsigned , default = 1
//Bit 15, reg_dnr_db_vdbstep , vdb step, 0: 4, 1: 8 . unsigned , default = 1
//Bit 14, reg_dnr_db_vdbprten , vdb protectoin enable . unsigned , default = 1
//Bit 13, reg_dnr_gbs_difen , enable dif (between LR and LL/RR) condition for gbs stat.. unsigned , default = 0
//Bit 12, reg_dnr_luma_en , enable ycbcr2luma module . unsigned , default = 1
//Bit 11:10, reg_dnr_db_mod , deblocking mode, 0: disable, 1: horizontal deblocking, 2: vertical deblocking, 3: horizontal & vertical deblocking. unsigned , default = 3
//Bit 9, reg_dnr_db_chrmen , enable chroma deblocking . unsigned , default = 1
//Bit 8, reg_dnr_hvdif_mod , 0: calc. difs by original Y, 1: by new luma. unsigned , default = 1
//Bit 7, reserved
//Bit 6: 4, reg_dnr_demo_lften , b0: Y b1:U b2:V . unsigned , default = 7
//Bit 3, reserved
//Bit 2: 0, reg_dnr_demo_rgten , b0: Y b1:U b2:V . unsigned , default = 7
#define DNR_HVSIZE (0x2d01)
#define P_DNR_HVSIZE (volatile unsigned int *)((0x2d01 << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28:16, reg_dnr_hsize , hsize . unsigned , default = 0
//Bit 15:13, reserved
//Bit 12: 0, reg_dnr_vsize , vsize . unsigned , default = 0
#define DNR_DBLK_BLANK_NUM (0x2d02)
#define P_DNR_DBLK_BLANK_NUM (volatile unsigned int *)((0x2d02 << 2) + 0xff900000)
//Bit 31:16, reserved
//Bit 15: 8, reg_dblk_hblank_num , deblock hor blank num . unsigned , default = 16
//Bit 7: 0, reg_dblk_vblank_num , deblock ver blank num . unsigned , default = 45
#define DNR_BLK_OFFST (0x2d03)
#define P_DNR_BLK_OFFST (volatile unsigned int *)((0x2d03 << 2) + 0xff900000)
//Bit 31: 7, reserved
//Bit 6: 4, reg_dnr_hbofst , horizontal block offset may provide by software calc.. unsigned , default = 0
//Bit 3, reserved
//Bit 2: 0, reg_dnr_vbofst , vertical block offset may provide by software calc.. unsigned , default = 0
#define DNR_GBS (0x2d04)
#define P_DNR_GBS (volatile unsigned int *)((0x2d04 << 2) + 0xff900000)
//Bit 31: 2, reserved
//Bit 1: 0, reg_dnr_gbs , global block strength may update by software calc.. unsigned , default = 0
#define DNR_HBOFFST_STAT (0x2d05)
#define P_DNR_HBOFFST_STAT (volatile unsigned int *)((0x2d05 << 2) + 0xff900000)
//Bit 31:24, reg_dnr_hbof_difthd , dif threshold (>=) between LR and LL/RR. unsigned , default = 2
//Bit 23:16, reg_dnr_hbof_edgethd , edge threshold (<=) for LR . unsigned , default = 32
//Bit 15: 8, reg_dnr_hbof_flatthd , flat threshold (>=) for LR . unsigned , default = 0
//Bit 7, reserved
//Bit 6: 4, reg_dnr_hbof_delta , delta for weighted bin accumulator. unsigned , default = 1
//Bit 3, reserved
//Bit 2: 0, reg_dnr_hbof_statmod , statistic mode for horizontal block offset, 0: count flags for 8-bin, 1: count LRs for 8-bin, 2: count difs for 8-bin, 3: count weighted flags for 8-bin, 4: count flags for first 32-bin, 5: count LRs for first 32-bin, 6 or 7: count difs for first 32-bin. unsigned , default = 2
#define DNR_VBOFFST_STAT (0x2d06)
#define P_DNR_VBOFFST_STAT (volatile unsigned int *)((0x2d06 << 2) + 0xff900000)
//Bit 31:24, reg_dnr_vbof_difthd , dif threshold (>=) between Up and Dw. unsigned , default = 1
//Bit 23:16, reg_dnr_vbof_edgethd , edge threshold (<=) for Up/Dw. unsigned , default = 16
//Bit 15: 8, reg_dnr_vbof_flatthd , flat threshold (>=) for Up/Dw. unsigned , default = 0
//Bit 7, reserved
//Bit 6: 4, reg_dnr_vbof_delta , delta for weighted bin accumulator. unsigned , default = 1
//Bit 3, reserved
//Bit 2: 0, reg_dnr_vbof_statmod , statistic mode for vertical block offset, 0: count flags for 8-bin, 1: count Ups for 8-bin, 2: count difs for 8-bin, 3: count weighted flags for 8-bin, 4: count flags for first 32-bin, 5: count Ups for first 32-bin, 6 or 7: count difs for first 32-bin. unsigned , default = 2
#define DNR_GBS_STAT (0x2d07)
#define P_DNR_GBS_STAT (volatile unsigned int *)((0x2d07 << 2) + 0xff900000)
//Bit 31:24, reg_dnr_gbs_edgethd , edge threshold (<=) for LR . unsigned , default = 32
//Bit 23:16, reg_dnr_gbs_flatthd , flat threshold (>=) for LR . unsigned , default = 0
//Bit 15: 8, reg_dnr_gbs_varthd , variation threshold (<=) for Lvar/Rvar. unsigned , default = 16
//Bit 7: 0, reg_dnr_gbs_difthd , dif threshold (>=) between LR and LL/RR. unsigned , default = 2
#define DNR_STAT_X_START_END (0x2d08)
#define P_DNR_STAT_X_START_END (volatile unsigned int *)((0x2d08 << 2) + 0xff900000)
//Bit 31:30, reserved
//Bit 29:16, reg_dnr_stat_xst . unsigned , default = 24
//Bit 15:14, reserved
//Bit 13: 0, reg_dnr_stat_xed . unsigned , default = HSIZE - 25
#define DNR_STAT_Y_START_END (0x2d09)
#define P_DNR_STAT_Y_START_END (volatile unsigned int *)((0x2d09 << 2) + 0xff900000)
//Bit 31:30, reserved
//Bit 29:16, reg_dnr_stat_yst . unsigned , default = 24
//Bit 15:14, reserved
//Bit 13: 0, reg_dnr_stat_yed . unsigned , default = VSIZE - 25
#define DNR_LUMA (0x2d0a)
#define P_DNR_LUMA (volatile unsigned int *)((0x2d0a << 2) + 0xff900000)
//Bit 31:27, reserved
//Bit 26:24, reg_dnr_luma_sqrtshft , left shift for fast squart of chroma, [0, 4]. unsigned , default = 2
//Bit 23:21, reserved
//Bit 20:16, reg_dnr_luma_sqrtoffst , offset for fast squart of chroma. signed , default = 0
//Bit 15, reserved
//Bit 14:12, reg_dnr_luma_wcmod , theta related to warm/cool segment line, 0: 0, 1: 45, 2: 90, 3: 135, 4: 180, 5: 225, 6: 270, 7: 315. . unsigned , default = 3
//Bit 11: 8, reg_dnr_luma_cshft , shift for calc. delta part, 0~8, . unsigned , default = 8
//Bit 7: 6, reserved
//Bit 5: 0, reg_dnr_luma_cgain , final gain for delta part, 32 normalized to "1". unsigned , default = 4
#define DNR_DB_YEDGE_THD (0x2d0b)
#define P_DNR_DB_YEDGE_THD (volatile unsigned int *)((0x2d0b << 2) + 0xff900000)
//Bit 31:24, reg_dnr_db_yedgethd0 , edge threshold0 for luma . unsigned , default = 12
//Bit 23:16, reg_dnr_db_yedgethd1 , edge threshold1 for luma . unsigned , default = 15
//Bit 15: 8, reg_dnr_db_yedgethd2 , edge threshold2 for luma . unsigned , default = 18
//Bit 7: 0, reg_dnr_db_yedgethd3 , edge threshold3 for luma . unsigned , default = 25
#define DNR_DB_CEDGE_THD (0x2d0c)
#define P_DNR_DB_CEDGE_THD (volatile unsigned int *)((0x2d0c << 2) + 0xff900000)
//Bit 31:24, reg_dnr_db_cedgethd0 , edge threshold0 for chroma . unsigned , default = 12
//Bit 23:16, reg_dnr_db_cedgethd1 , edge threshold1 for chroma . unsigned , default = 15
//Bit 15: 8, reg_dnr_db_cedgethd2 , edge threshold2 for chroma . unsigned , default = 18
//Bit 7: 0, reg_dnr_db_cedgethd3 , edge threshold3 for chroma . unsigned , default = 25
#define DNR_DB_HGAP (0x2d0d)
#define P_DNR_DB_HGAP (volatile unsigned int *)((0x2d0d << 2) + 0xff900000)
//Bit 31:24, reserved
//Bit 23:16, reg_dnr_db_hgapthd , horizontal gap thd (<=) for very sure blockiness . unsigned , default = 8
//Bit 15: 8, reg_dnr_db_hgapdifthd , dif thd between hgap and lft/rgt hdifs. unsigned , default = 1
//Bit 7: 1, reserved
//Bit 0, reg_dnr_db_hgapmod , horizontal gap calc. mode, 0: just use current col x, 1: find max between (x-1, x, x+1) . unsigned , default = 0
#define DNR_DB_HBS (0x2d0e)
#define P_DNR_DB_HBS (volatile unsigned int *)((0x2d0e << 2) + 0xff900000)
//Bit 31: 6, reserved
//Bit 5: 4, reg_dnr_db_hbsup , horizontal bs up value . unsigned , default = 1
//Bit 3: 2, reg_dnr_db_hbsmax , max value of hbs for global control. unsigned , default = 3
//Bit 1: 0, reg_dnr_db_hgbsthd , gbs thd (>=) for hbs calc. . unsigned , default = 1
#define DNR_DB_HACT (0x2d0f)
#define P_DNR_DB_HACT (volatile unsigned int *)((0x2d0f << 2) + 0xff900000)
//Bit 31:16, reserved
//Bit 15: 8, reg_dnr_db_hactthd0 , thd0 of hact, for block classification. unsigned , default = 10
//Bit 7: 0, reg_dnr_db_hactthd1 , thd1 of hact, for block classification. unsigned , default = 32
#define DNR_DB_YHDELTA_GAIN (0x2d10)
#define P_DNR_DB_YHDELTA_GAIN (volatile unsigned int *)((0x2d10 << 2) + 0xff900000)
//Bit 31:27, reserved
//Bit 26:24, reg_dnr_db_yhdeltagain1 , (p1-q1) gain for Y's delta calc. when bs=1, normalized 8 as "1" . unsigned , default = 2
//Bit 23, reserved
//Bit 22:20, reg_dnr_db_yhdeltagain2 , (p1-q1) gain for Y's delta calc. when bs=2, normalized 8 as "1" . unsigned , default = 0
//Bit 19, reserved
//Bit 18:16, reg_dnr_db_yhdeltagain3 , (p1-q1) gain for Y's delta calc. when bs=3, normalized 8 as "1" . unsigned , default = 0
//Bit 15, reserved
//Bit 14: 8, reg_dnr_db_yhdeltaadjoffst , offset for adjust Y's hdelta (-64, 63). signed , default = 0
//Bit 7: 6, reserved
//Bit 5: 0, reg_dnr_db_yhdeltaadjgain , gain for adjust Y's hdelta, normalized 32 as "1" . unsigned , default = 32
#define DNR_DB_YHDELTA2_GAIN (0x2d11)
#define P_DNR_DB_YHDELTA2_GAIN (volatile unsigned int *)((0x2d11 << 2) + 0xff900000)
//Bit 31:30, reserved
//Bit 29:24, reg_dnr_db_yhdelta2gain2 , gain for bs=2's adjust Y's hdelta2, normalized 64 as "1" . unsigned , default = 8
//Bit 23:21, reserved
//Bit 20:16, reg_dnr_db_yhdelta2offst2 , offset for bs=2's adjust Y's hdelta2 (-16, 15). signed , default = 0
//Bit 15:14, reserved
//Bit 13: 8, reg_dnr_db_yhdelta2gain3 , gain for bs=3's adjust Y's hdelta2, normalized 64 as "1" . unsigned , default = 4
//Bit 7: 5, reserved
//Bit 4: 0, reg_dnr_db_yhdelta2offst3 , offset for bs=3's adjust Y's hdelta2 (-16, 15). signed , default = 0
#define DNR_DB_CHDELTA_GAIN (0x2d12)
#define P_DNR_DB_CHDELTA_GAIN (volatile unsigned int *)((0x2d12 << 2) + 0xff900000)
//Bit 31:27, reserved
//Bit 26:24, reg_dnr_db_chdeltagain1 , (p1-q1) gain for UV's delta calc. when bs=1, normalized 8 as "1". unsigned , default = 2
//Bit 23, reserved
//Bit 22:20, reg_dnr_db_chdeltagain2 , (p1-q1) gain for UV's delta calc. when bs=2, normalized 8 as "1". unsigned , default = 0
//Bit 19, reserved
//Bit 18:16, reg_dnr_db_chdeltagain3 , (p1-q1) gain for UV's delta calc. when bs=3, normalized 8 as "1". unsigned , default = 0
//Bit 15, reserved
//Bit 14: 8, reg_dnr_db_chdeltaadjoffst , offset for adjust UV's hdelta (-64, 63). signed , default = 0
//Bit 7: 6, reserved
//Bit 5: 0, reg_dnr_db_chdeltaadjgain , gain for adjust UV's hdelta, normalized 32 as "1". unsigned , default = 32
#define DNR_DB_CHDELTA2_GAIN (0x2d13)
#define P_DNR_DB_CHDELTA2_GAIN (volatile unsigned int *)((0x2d13 << 2) + 0xff900000)
//Bit 31:30, reserved
//Bit 29:24, reg_dnr_db_chdelta2gain2 , gain for bs=2's adjust UV's hdelta2, normalized 64 as "1" . unsigned , default = 8
//Bit 23:21, reserved
//Bit 20:16, reg_dnr_db_chdelta2offst2 , offset for bs=2's adjust UV's hdelta2 (-16, 15). signed , default = 0
//Bit 15:14, reserved
//Bit 13: 8, reg_dnr_db_chdelta2gain3 , gain for bs=2's adjust UV's hdelta2, normalized 64 as "1" . unsigned , default = 4
//Bit 7: 5, reserved
//Bit 4: 0, reg_dnr_db_chdelta2offst3 , offset for bs=2's adjust UV's hdelta2 (-16, 15). signed , default = 0
#define DNR_DB_YC_VEDGE_THD (0x2d14)
#define P_DNR_DB_YC_VEDGE_THD (volatile unsigned int *)((0x2d14 << 2) + 0xff900000)
//Bit 31:16, reserved
//Bit 15: 8, reg_dnr_db_yvedgethd , special Y's edge thd for vdb. unsigned , default = 12
//Bit 7: 0, reg_dnr_db_cvedgethd , special UV's edge thd for vdb. unsigned , default = 12
#define DNR_DB_VBS_MISC (0x2d15)
#define P_DNR_DB_VBS_MISC (volatile unsigned int *)((0x2d15 << 2) + 0xff900000)
//Bit 31:24, reg_dnr_db_vgapthd , vertical gap thd (<=) for very sure blockiness . unsigned , default = 8
//Bit 23:16, reg_dnr_db_vactthd , thd of vact, for block classification . unsigned , default = 10
//Bit 15: 8, reg_dnr_db_vgapdifthd , dif thd between vgap and vact. unsigned , default = 4
//Bit 7: 4, reserved
//Bit 3: 2, reg_dnr_db_vbsmax , max value of vbs for global control. unsigned , default = 2
//Bit 1: 0, reg_dnr_db_vgbsthd , gbs thd (>=) for vbs calc. . unsigned , default = 1
#define DNR_DB_YVDELTA_GAIN (0x2d16)
#define P_DNR_DB_YVDELTA_GAIN (volatile unsigned int *)((0x2d16 << 2) + 0xff900000)
//Bit 31:30, reserved
//Bit 29:24, reg_dnr_db_yvdeltaadjgain , gain for adjust Y's vdelta, normalized 32 as "1". unsigned , default = 32
//Bit 23, reserved
//Bit 22:16, reg_dnr_db_yvdeltaadjoffst , offset for adjust Y's vdelta (-64, 63). signed , default = 0
//Bit 15:14, reserved
//Bit 13: 8, reg_dnr_db_yvdelta2gain , gain for adjust Y's vdelta2, normalized 64 as "1". unsigned , default = 8
//Bit 7: 5, reserved
//Bit 4: 0, reg_dnr_db_yvdelta2offst , offset for adjust Y's vdelta2 (-16, 15). signed , default = 0
#define DNR_DB_CVDELTA_GAIN (0x2d17)
#define P_DNR_DB_CVDELTA_GAIN (volatile unsigned int *)((0x2d17 << 2) + 0xff900000)
//Bit 31:30, reserved
//Bit 29:24, reg_dnr_db_cvdeltaadjgain , gain for adjust UV's vdelta, normalized 32 as "1". unsigned , default = 32
//Bit 23, reserved
//Bit 22:16, reg_dnr_db_cvdeltaadjoffst , offset for adjust UV's vdelta (-64, 63). signed , default = 0
//Bit 15:14, reserved
//Bit 13: 8, reg_dnr_db_cvdelta2gain , gain for adjust UV's vdelta2, normalized 64 as "1". unsigned , default = 8
//Bit 7: 5, reserved
//Bit 4: 0, reg_dnr_db_cvdelta2offst , offset for adjust UV's vdelta2 (-16, 15). signed , default = 0
#define DNR_RO_GBS_STAT_LR (0x2d18)
#define P_DNR_RO_GBS_STAT_LR (volatile unsigned int *)((0x2d18 << 2) + 0xff900000)
//Bit 31: 0, ro_gbs_stat_lr . unsigned , default = 0
#define DNR_RO_GBS_STAT_LL (0x2d19)
#define P_DNR_RO_GBS_STAT_LL (volatile unsigned int *)((0x2d19 << 2) + 0xff900000)
//Bit 31: 0, ro_gbs_stat_ll . unsigned , default = 0
#define DNR_RO_GBS_STAT_RR (0x2d1a)
#define P_DNR_RO_GBS_STAT_RR (volatile unsigned int *)((0x2d1a << 2) + 0xff900000)
//Bit 31: 0, ro_gbs_stat_rr . unsigned , default = 0
#define DNR_RO_GBS_STAT_DIF (0x2d1b)
#define P_DNR_RO_GBS_STAT_DIF (volatile unsigned int *)((0x2d1b << 2) + 0xff900000)
//Bit 31: 0, ro_gbs_stat_dif . unsigned , default = 0
#define DNR_RO_GBS_STAT_CNT (0x2d1c)
#define P_DNR_RO_GBS_STAT_CNT (volatile unsigned int *)((0x2d1c << 2) + 0xff900000)
//Bit 31: 0, ro_gbs_stat_cnt . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_0 (0x2d1d)
#define P_DNR_RO_HBOF_STAT_CNT_0 (volatile unsigned int *)((0x2d1d << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt0 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_1 (0x2d1e)
#define P_DNR_RO_HBOF_STAT_CNT_1 (volatile unsigned int *)((0x2d1e << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt1 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_2 (0x2d1f)
#define P_DNR_RO_HBOF_STAT_CNT_2 (volatile unsigned int *)((0x2d1f << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt2 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_3 (0x2d20)
#define P_DNR_RO_HBOF_STAT_CNT_3 (volatile unsigned int *)((0x2d20 << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt3 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_4 (0x2d21)
#define P_DNR_RO_HBOF_STAT_CNT_4 (volatile unsigned int *)((0x2d21 << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt4 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_5 (0x2d22)
#define P_DNR_RO_HBOF_STAT_CNT_5 (volatile unsigned int *)((0x2d22 << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt5 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_6 (0x2d23)
#define P_DNR_RO_HBOF_STAT_CNT_6 (volatile unsigned int *)((0x2d23 << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt6 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_7 (0x2d24)
#define P_DNR_RO_HBOF_STAT_CNT_7 (volatile unsigned int *)((0x2d24 << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt7 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_8 (0x2d25)
#define P_DNR_RO_HBOF_STAT_CNT_8 (volatile unsigned int *)((0x2d25 << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt8 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_9 (0x2d26)
#define P_DNR_RO_HBOF_STAT_CNT_9 (volatile unsigned int *)((0x2d26 << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt9 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_10 (0x2d27)
#define P_DNR_RO_HBOF_STAT_CNT_10 (volatile unsigned int *)((0x2d27 << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt10 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_11 (0x2d28)
#define P_DNR_RO_HBOF_STAT_CNT_11 (volatile unsigned int *)((0x2d28 << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt11 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_12 (0x2d29)
#define P_DNR_RO_HBOF_STAT_CNT_12 (volatile unsigned int *)((0x2d29 << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt12 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_13 (0x2d2a)
#define P_DNR_RO_HBOF_STAT_CNT_13 (volatile unsigned int *)((0x2d2a << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt13 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_14 (0x2d2b)
#define P_DNR_RO_HBOF_STAT_CNT_14 (volatile unsigned int *)((0x2d2b << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt14 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_15 (0x2d2c)
#define P_DNR_RO_HBOF_STAT_CNT_15 (volatile unsigned int *)((0x2d2c << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt15 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_16 (0x2d2d)
#define P_DNR_RO_HBOF_STAT_CNT_16 (volatile unsigned int *)((0x2d2d << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt16 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_17 (0x2d2e)
#define P_DNR_RO_HBOF_STAT_CNT_17 (volatile unsigned int *)((0x2d2e << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt17 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_18 (0x2d2f)
#define P_DNR_RO_HBOF_STAT_CNT_18 (volatile unsigned int *)((0x2d2f << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt18 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_19 (0x2d30)
#define P_DNR_RO_HBOF_STAT_CNT_19 (volatile unsigned int *)((0x2d30 << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt19 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_20 (0x2d31)
#define P_DNR_RO_HBOF_STAT_CNT_20 (volatile unsigned int *)((0x2d31 << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt20 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_21 (0x2d32)
#define P_DNR_RO_HBOF_STAT_CNT_21 (volatile unsigned int *)((0x2d32 << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt21 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_22 (0x2d33)
#define P_DNR_RO_HBOF_STAT_CNT_22 (volatile unsigned int *)((0x2d33 << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt22 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_23 (0x2d34)
#define P_DNR_RO_HBOF_STAT_CNT_23 (volatile unsigned int *)((0x2d34 << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt23 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_24 (0x2d35)
#define P_DNR_RO_HBOF_STAT_CNT_24 (volatile unsigned int *)((0x2d35 << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt24 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_25 (0x2d36)
#define P_DNR_RO_HBOF_STAT_CNT_25 (volatile unsigned int *)((0x2d36 << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt25 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_26 (0x2d37)
#define P_DNR_RO_HBOF_STAT_CNT_26 (volatile unsigned int *)((0x2d37 << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt26 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_27 (0x2d38)
#define P_DNR_RO_HBOF_STAT_CNT_27 (volatile unsigned int *)((0x2d38 << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt27 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_28 (0x2d39)
#define P_DNR_RO_HBOF_STAT_CNT_28 (volatile unsigned int *)((0x2d39 << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt28 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_29 (0x2d3a)
#define P_DNR_RO_HBOF_STAT_CNT_29 (volatile unsigned int *)((0x2d3a << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt29 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_30 (0x2d3b)
#define P_DNR_RO_HBOF_STAT_CNT_30 (volatile unsigned int *)((0x2d3b << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt30 . unsigned , default = 0
#define DNR_RO_HBOF_STAT_CNT_31 (0x2d3c)
#define P_DNR_RO_HBOF_STAT_CNT_31 (volatile unsigned int *)((0x2d3c << 2) + 0xff900000)
//Bit 31: 0, ro_hbof_stat_cnt31 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_0 (0x2d3d)
#define P_DNR_RO_VBOF_STAT_CNT_0 (volatile unsigned int *)((0x2d3d << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt0 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_1 (0x2d3e)
#define P_DNR_RO_VBOF_STAT_CNT_1 (volatile unsigned int *)((0x2d3e << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt1 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_2 (0x2d3f)
#define P_DNR_RO_VBOF_STAT_CNT_2 (volatile unsigned int *)((0x2d3f << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt2 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_3 (0x2d40)
#define P_DNR_RO_VBOF_STAT_CNT_3 (volatile unsigned int *)((0x2d40 << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt3 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_4 (0x2d41)
#define P_DNR_RO_VBOF_STAT_CNT_4 (volatile unsigned int *)((0x2d41 << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt4 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_5 (0x2d42)
#define P_DNR_RO_VBOF_STAT_CNT_5 (volatile unsigned int *)((0x2d42 << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt5 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_6 (0x2d43)
#define P_DNR_RO_VBOF_STAT_CNT_6 (volatile unsigned int *)((0x2d43 << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt6 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_7 (0x2d44)
#define P_DNR_RO_VBOF_STAT_CNT_7 (volatile unsigned int *)((0x2d44 << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt7 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_8 (0x2d45)
#define P_DNR_RO_VBOF_STAT_CNT_8 (volatile unsigned int *)((0x2d45 << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt8 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_9 (0x2d46)
#define P_DNR_RO_VBOF_STAT_CNT_9 (volatile unsigned int *)((0x2d46 << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt9 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_10 (0x2d47)
#define P_DNR_RO_VBOF_STAT_CNT_10 (volatile unsigned int *)((0x2d47 << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt10 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_11 (0x2d48)
#define P_DNR_RO_VBOF_STAT_CNT_11 (volatile unsigned int *)((0x2d48 << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt11 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_12 (0x2d49)
#define P_DNR_RO_VBOF_STAT_CNT_12 (volatile unsigned int *)((0x2d49 << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt12 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_13 (0x2d4a)
#define P_DNR_RO_VBOF_STAT_CNT_13 (volatile unsigned int *)((0x2d4a << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt13 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_14 (0x2d4b)
#define P_DNR_RO_VBOF_STAT_CNT_14 (volatile unsigned int *)((0x2d4b << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt14 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_15 (0x2d4c)
#define P_DNR_RO_VBOF_STAT_CNT_15 (volatile unsigned int *)((0x2d4c << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt15 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_16 (0x2d4d)
#define P_DNR_RO_VBOF_STAT_CNT_16 (volatile unsigned int *)((0x2d4d << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt16 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_17 (0x2d4e)
#define P_DNR_RO_VBOF_STAT_CNT_17 (volatile unsigned int *)((0x2d4e << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt17 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_18 (0x2d4f)
#define P_DNR_RO_VBOF_STAT_CNT_18 (volatile unsigned int *)((0x2d4f << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt18 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_19 (0x2d50)
#define P_DNR_RO_VBOF_STAT_CNT_19 (volatile unsigned int *)((0x2d50 << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt19 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_20 (0x2d51)
#define P_DNR_RO_VBOF_STAT_CNT_20 (volatile unsigned int *)((0x2d51 << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt20 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_21 (0x2d52)
#define P_DNR_RO_VBOF_STAT_CNT_21 (volatile unsigned int *)((0x2d52 << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt21 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_22 (0x2d53)
#define P_DNR_RO_VBOF_STAT_CNT_22 (volatile unsigned int *)((0x2d53 << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt22 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_23 (0x2d54)
#define P_DNR_RO_VBOF_STAT_CNT_23 (volatile unsigned int *)((0x2d54 << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt23 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_24 (0x2d55)
#define P_DNR_RO_VBOF_STAT_CNT_24 (volatile unsigned int *)((0x2d55 << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt24 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_25 (0x2d56)
#define P_DNR_RO_VBOF_STAT_CNT_25 (volatile unsigned int *)((0x2d56 << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt25 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_26 (0x2d57)
#define P_DNR_RO_VBOF_STAT_CNT_26 (volatile unsigned int *)((0x2d57 << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt26 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_27 (0x2d58)
#define P_DNR_RO_VBOF_STAT_CNT_27 (volatile unsigned int *)((0x2d58 << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt27 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_28 (0x2d59)
#define P_DNR_RO_VBOF_STAT_CNT_28 (volatile unsigned int *)((0x2d59 << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt28 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_29 (0x2d5a)
#define P_DNR_RO_VBOF_STAT_CNT_29 (volatile unsigned int *)((0x2d5a << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt29 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_30 (0x2d5b)
#define P_DNR_RO_VBOF_STAT_CNT_30 (volatile unsigned int *)((0x2d5b << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt30 . unsigned , default = 0
#define DNR_RO_VBOF_STAT_CNT_31 (0x2d5c)
#define P_DNR_RO_VBOF_STAT_CNT_31 (volatile unsigned int *)((0x2d5c << 2) + 0xff900000)
//Bit 31: 0, ro_vbof_stat_cnt31 . unsigned , default = 0
#define DNR_DM_CTRL (0x2d60)
#define P_DNR_DM_CTRL (volatile unsigned int *)((0x2d60 << 2) + 0xff900000)
//Bit 31:13, reserved
//Bit 12, reg_dnr_dm_fedgeflg_en , enable edge flag calc. of each frame. unsigned , default = 1
//Bit 11, reg_dnr_dm_fedgeflg_cl , clear frame edge flag if needed. unsigned , default = 1
//Bit 10, reg_dnr_dm_fedgeflg_df , user defined edge when reg_dnr_dm_fedgeflg_en=0, default = 1
//Bit 9, reg_dnr_dm_en , enable demosquito function . unsigned , default = 1
//Bit 8, reg_dnr_dm_chrmen , enable chrome processing for demosquito. unsigned , default = 1
//Bit 7: 6, reg_dnr_dm_level , demosquito level . unsigned , default = 3
//Bit 5: 4, reg_dnr_dm_leveldw0 , level down when gbs is small. unsigned , default = 1
//Bit 3: 2, reg_dnr_dm_leveldw1 , level down for no edge/flat blocks. unsigned , default = 1
//Bit 1: 0, reg_dnr_dm_gbsthd , small/large threshold for gbs (<=). unsigned , default = 0
#define DNR_DM_NR_BLND (0x2d61)
#define P_DNR_DM_NR_BLND (volatile unsigned int *)((0x2d61 << 2) + 0xff900000)
//Bit 31:25, reserved
//Bit 24, reg_dnr_dm_defalpen , enable user define alpha for dm & nr blend. unsigned , default = 0
//Bit 23:16, reg_dnr_dm_defalp , user define alpha for dm & nr blend if enable. unsigned , default = 0
//Bit 15:14, reserved
//Bit 13: 8, reg_dnr_dm_alpgain , gain for nr/dm alpha, normalized 32 as "1". unsigned , default = 32
//Bit 7: 0, reg_dnr_dm_alpoffst , (-128, 127), offset for nr/dm alpha. signed , default = 0
#define DNR_DM_RNG_THD (0x2d62)
#define P_DNR_DM_RNG_THD (volatile unsigned int *)((0x2d62 << 2) + 0xff900000)
//Bit 31:24, reserved
//Bit 23:16, reg_dnr_dm_rngminthd . unsigned , default = 2
//Bit 15: 8, reg_dnr_dm_rngmaxthd . unsigned , default = 64
//Bit 7: 0, reg_dnr_dm_rngdifthd . unsigned , default = 4
#define DNR_DM_RNG_GAIN_OFST (0x2d63)
#define P_DNR_DM_RNG_GAIN_OFST (volatile unsigned int *)((0x2d63 << 2) + 0xff900000)
//Bit 31:14, reserved
//Bit 13: 8, reg_dnr_dm_rnggain , normalized 16 as "1" . unsigned , default = 16
//Bit 7: 6, reserved
//Bit 5: 0, reg_dnr_dm_rngofst . unsigned , default = 0
#define DNR_DM_DIR_MISC (0x2d64)
#define P_DNR_DM_DIR_MISC (volatile unsigned int *)((0x2d64 << 2) + 0xff900000)
//Bit 31:30, reserved
//Bit 29, reg_dnr_dm_diralpen . unsigned , default = 1
//Bit 28:24, reg_dnr_dm_diralpgain . unsigned , default = 0
//Bit 23:22, reserved
//Bit 21:16, reg_dnr_dm_diralpofst . unsigned , default = 0
//Bit 15:13, reserved
//Bit 12: 8, reg_dnr_dm_diralpmin . unsigned , default = 0
//Bit 7: 5, reserved
//Bit 4: 0, reg_dnr_dm_diralpmax . unsigned , default = 31
#define DNR_DM_COR_DIF (0x2d65)
#define P_DNR_DM_COR_DIF (volatile unsigned int *)((0x2d65 << 2) + 0xff900000)
//Bit 31: 4, reserved
//Bit 3: 1, reg_dnr_dm_cordifshft . unsigned , default = 3
//Bit 0, reg_dnr_dm_cordifmod , 0:use max dir dif as cordif, 1: use max3x3 - min3x3 as cordif. unsigned , default = 1
#define DNR_DM_FLT_THD (0x2d66)
#define P_DNR_DM_FLT_THD (volatile unsigned int *)((0x2d66 << 2) + 0xff900000)
//Bit 31:24, reg_dnr_dm_fltthd00 , block flat threshold0 for block average difference when gbs is small, for flat block detection. unsigned , default = 4
//Bit 23:16, reg_dnr_dm_fltthd01 , block flat threshold1 for block average difference when gbs is small, for flat block detection. unsigned , default = 6
//Bit 15: 8, reg_dnr_dm_fltthd10 , block flat threshold0 for block average difference when gbs is large, for flat block detection. unsigned , default = 9
//Bit 7: 0, reg_dnr_dm_fltthd11 , block flat threshold1 for block average difference when gbs is large, for flat block detection. unsigned , default = 12
#define DNR_DM_VAR_THD (0x2d67)
#define P_DNR_DM_VAR_THD (volatile unsigned int *)((0x2d67 << 2) + 0xff900000)
//Bit 31:24, reg_dnr_dm_varthd00 , block variance threshold0 (>=) when gbs is small, for flat block detection. unsigned , default = 2
//Bit 23:16, reg_dnr_dm_varthd01 , block variance threshold1 (<=) when gbs is small, for flat block detection. unsigned , default = 15
//Bit 15: 8, reg_dnr_dm_varthd10 , block variance threshold0 (>=) when gbs is large, for flat block detection. unsigned , default = 3
//Bit 7: 0, reg_dnr_dm_varthd11 , block variance threshold1 (<=) when gbs is large, for flat block detection. unsigned , default = 24
#define DNR_DM_EDGE_DIF_THD (0x2d68)
#define P_DNR_DM_EDGE_DIF_THD (volatile unsigned int *)((0x2d68 << 2) + 0xff900000)
//Bit 31:24, reg_dnr_dm_edgethd0 , block edge threshold (<=) when gbs is small, for flat block detection. unsigned , default = 32
//Bit 23:16, reg_dnr_dm_edgethd1 , block edge threshold (<=) when gbs is large, for flat block detection. unsigned , default = 48
//Bit 15: 8, reg_dnr_dm_difthd0 , block dif threshold (<=) when gbs is small, for flat block detection. unsigned , default = 48
//Bit 7: 0, reg_dnr_dm_difthd1 , block dif threshold (<=) when gbs is large, for flat block detection. unsigned , default = 64
#define DNR_DM_AVG_THD (0x2d69)
#define P_DNR_DM_AVG_THD (volatile unsigned int *)((0x2d69 << 2) + 0xff900000)
//Bit 31:16, reserved
//Bit 15: 8, reg_dnr_dm_avgthd0 , block average threshold (>=), for flat block detection. unsigned , default = 160
//Bit 7: 0, reg_dnr_dm_avgthd1 , block average threshold (<=), for flat block detection. unsigned , default = 128
#define DNR_DM_AVG_VAR_DIF_THD (0x2d6a)
#define P_DNR_DM_AVG_VAR_DIF_THD (volatile unsigned int *)((0x2d6a << 2) + 0xff900000)
//Bit 31:16, reserved
//Bit 15: 8, reg_dnr_dm_avgdifthd , block average dif threshold (<) between cur and up block, for flat block detection. unsigned , default = 12
//Bit 7: 0, reg_dnr_dm_vardifthd , block variance dif threshold (>=) between cur and up block, for flat block detection. unsigned , default = 1
#define DNR_DM_VAR_EDGE_DIF_THD2 (0x2d6b)
#define P_DNR_DM_VAR_EDGE_DIF_THD2 (volatile unsigned int *)((0x2d6b << 2) + 0xff900000)
//Bit 31:24, reserved
//Bit 23:16, reg_dnr_dm_varthd2 , block variance threshold (>=), for edge block detection. unsigned , default = 24
//Bit 15: 8, reg_dnr_dm_edgethd2 , block edge threshold (>=), for edge block detection. unsigned , default = 40
//Bit 7: 0, reg_dnr_dm_difthd2 , block dif threshold (>=), for edge block detection. unsigned , default = 80
#define DNR_DM_DIF_FLT_MISC (0x2d6c)
#define P_DNR_DM_DIF_FLT_MISC (volatile unsigned int *)((0x2d6c << 2) + 0xff900000)
//Bit 31:28, reg_dnr_dm_ldifoob , pre-defined large dif when pixel out of blocks. unsigned , default = 0
//Bit 27:24, reg_dnr_dm_bdifoob , pre-defined block dif when pixel out of blocks;. unsigned , default = 0
//Bit 23:16, reg_dnr_dm_fltalp , pre-defined alpha for dm and nr blending, when block is flat with mos.. unsigned , default = 200
//Bit 15:12, reserved
//Bit 11: 8, reg_dnr_dm_fltminbdif , pre-defined min block dif for dm filter, when block is flat with mos.. unsigned , default = 12
//Bit 7, reserved
//Bit 6: 2, reg_dnr_dm_difnormgain , gain for pixel dif normalization for dm filter, normalized 16 as "1". unsigned , default = 16
//Bit 1, reg_dnr_dm_difnormen , enable pixel dif normalization for dm filter. unsigned , default = 1
//Bit 0, reg_dnr_dm_difupden , enable block dif update using max of left, cur, right difs. unsigned , default = 0
#define DNR_DM_SDIF_LUT0_2 (0x2d6d)
#define P_DNR_DM_SDIF_LUT0_2 (volatile unsigned int *)((0x2d6d << 2) + 0xff900000)
//Bit 31:21, reserved
//Bit 20:16, reg_dnr_dm_sdiflut0 , normally 0-16 . unsigned , default = 16
//Bit 15:13, reserved
//Bit 12: 8, reg_dnr_dm_sdiflut1 , normally 0-16 . unsigned , default = 14
//Bit 7: 5, reserved
//Bit 4: 0, reg_dnr_dm_sdiflut2 , normally 0-16 . unsigned , default = 13
#define DNR_DM_SDIF_LUT3_5 (0x2d6e)
#define P_DNR_DM_SDIF_LUT3_5 (volatile unsigned int *)((0x2d6e << 2) + 0xff900000)
//Bit 31:21, reserved
//Bit 20:16, reg_dnr_dm_sdiflut3 , normally 0-16 . unsigned , default = 10
//Bit 15:13, reserved
//Bit 12: 8, reg_dnr_dm_sdiflut4 , normally 0-16 . unsigned , default = 7
//Bit 7: 5, reserved
//Bit 4: 0, reg_dnr_dm_sdiflut5 , normally 0-16 . unsigned , default = 5
#define DNR_DM_SDIF_LUT6_8 (0x2d6f)
#define P_DNR_DM_SDIF_LUT6_8 (volatile unsigned int *)((0x2d6f << 2) + 0xff900000)
//Bit 31:21, reserved
//Bit 20:16, reg_dnr_dm_sdiflut6 , normally 0-16 . unsigned , default = 3
//Bit 15:13, reserved
//Bit 12: 8, reg_dnr_dm_sdiflut7 , normally 0-16 . unsigned , default = 1
//Bit 7: 5, reserved
//Bit 4: 0, reg_dnr_dm_sdiflut8 , normally 0-16 . unsigned , default = 0
#define DNR_DM_LDIF_LUT0_2 (0x2d70)
#define P_DNR_DM_LDIF_LUT0_2 (volatile unsigned int *)((0x2d70 << 2) + 0xff900000)
//Bit 31:21, reserved
//Bit 20:16, reg_dnr_dm_ldiflut0 , normally 0-16 . unsigned , default = 0
//Bit 15:13, reserved
//Bit 12: 8, reg_dnr_dm_ldiflut1 , normally 0-16 . unsigned , default = 4
//Bit 7: 5, reserved
//Bit 4: 0, reg_dnr_dm_ldiflut2 , normally 0-16 . unsigned , default = 12
#define DNR_DM_LDIF_LUT3_5 (0x2d71)
#define P_DNR_DM_LDIF_LUT3_5 (volatile unsigned int *)((0x2d71 << 2) + 0xff900000)
//Bit 31:21, reserved
//Bit 20:16, reg_dnr_dm_ldiflut3 , normally 0-16 . unsigned , default = 14
//Bit 15:13, reserved
//Bit 12: 8, reg_dnr_dm_ldiflut4 , normally 0-16 . unsigned , default = 15
//Bit 7: 5, reserved
//Bit 4: 0, reg_dnr_dm_ldiflut5 , normally 0-16 . unsigned , default = 16
#define DNR_DM_LDIF_LUT6_8 (0x2d72)
#define P_DNR_DM_LDIF_LUT6_8 (volatile unsigned int *)((0x2d72 << 2) + 0xff900000)
//Bit 31:21, reserved
//Bit 20:16, reg_dnr_dm_ldiflut6 , normally 0-16 . unsigned , default = 16
//Bit 15:13, reserved
//Bit 12: 8, reg_dnr_dm_ldiflut7 , normally 0-16 . unsigned , default = 16
//Bit 7: 5, reserved
//Bit 4: 0, reg_dnr_dm_ldiflut8 , normally 0-16 . unsigned , default = 16
#define DNR_DM_DIF2NORM_LUT0_2 (0x2d73)
#define P_DNR_DM_DIF2NORM_LUT0_2 (volatile unsigned int *)((0x2d73 << 2) + 0xff900000)
//Bit 31:21, reserved
//Bit 20:16, reg_dnr_dm_dif2normlut0 , normally 0-16 . unsigned , default = 16
//Bit 15:13, reserved
//Bit 12: 8, reg_dnr_dm_dif2normlut1 , normally 0-16 . unsigned , default = 5
//Bit 7: 5, reserved
//Bit 4: 0, reg_dnr_dm_dif2normlut2 , normally 0-16 . unsigned , default = 3
#define DNR_DM_DIF2NORM_LUT3_5 (0x2d74)
#define P_DNR_DM_DIF2NORM_LUT3_5 (volatile unsigned int *)((0x2d74 << 2) + 0xff900000)
//Bit 31:21, reserved
//Bit 20:16, reg_dnr_dm_dif2normlut3 , normally 0-16 . unsigned , default = 2
//Bit 15:13, reserved
//Bit 12: 8, reg_dnr_dm_dif2normlut4 , normally 0-16 . unsigned , default = 2
//Bit 7: 5, reserved
//Bit 4: 0, reg_dnr_dm_dif2normlut5 , normally 0-16 . unsigned , default = 1
#define DNR_DM_DIF2NORM_LUT6_8 (0x2d75)
#define P_DNR_DM_DIF2NORM_LUT6_8 (volatile unsigned int *)((0x2d75 << 2) + 0xff900000)
//Bit 31:21, reserved
//Bit 20:16, reg_dnr_dm_dif2normlut6 , normally 0-16 . unsigned , default = 1
//Bit 15:13, reserved
//Bit 12: 8, reg_dnr_dm_dif2normlut7 , normally 0-16 . unsigned , default = 1
//Bit 7: 5, reserved
//Bit 4: 0, reg_dnr_dm_dif2normlut8 , normally 0-16 . unsigned , default = 1
#define DNR_DM_GMS_THD (0x2d76)
#define P_DNR_DM_GMS_THD (volatile unsigned int *)((0x2d76 << 2) + 0xff900000)
//Bit 31:16, reserved
//Bit 15: 8, reg_gms_stat_thd0 . unsigned , default = 0
//Bit 7: 0, reg_gms_stat_thd1 . unsigned , default = 128
#define DNR_RO_DM_GMS_STAT_CNT (0x2d77)
#define P_DNR_RO_DM_GMS_STAT_CNT (volatile unsigned int *)((0x2d77 << 2) + 0xff900000)
//Bit 31: 0, ro_dm_gms_stat_cnt . unsigned , default = 0
#define DNR_RO_DM_GMS_STAT_MS (0x2d78)
#define P_DNR_RO_DM_GMS_STAT_MS (volatile unsigned int *)((0x2d78 << 2) + 0xff900000)
//Bit 31: 0, ro_dm_gms_stat_ms . unsigned , default = 0
// 0x80-0x90
//
// Reading file: decomb_regs.h
//
#define DECOMB_DET_VERT_CON0 (0x2d80)
#define P_DECOMB_DET_VERT_CON0 (volatile unsigned int *)((0x2d80 << 2) + 0xff900000)
//Bit 31:24 reg_di_dcmb_det_vcon_thd0 default = 60 // u8
//Bit 23:16 reg_di_dcmb_det_vcon_thd1 default = 80 // u8
//Bit 15: 8 reg_di_dcmb_det_valp_lmt0 default = 63 // u8
//Bit 7: 0 reg_di_dcmb_det_valp_lmt1 default = 4 // u8
#define DECOMB_DET_VERT_CON1 (0x2d81)
#define P_DECOMB_DET_VERT_CON1 (volatile unsigned int *)((0x2d81 << 2) + 0xff900000)
//Bit 23:16 reg_di_dcmb_det_valp_lmt2 default = 0 // u8
//Bit 15: 8 reg_di_dcmb_det_vrate0 default = 32 // u8
//Bit 7: 0 reg_di_dcmb_det_vrate1 default = 4 // u8
#define DECOMB_DET_EDGE_CON0 (0x2d82)
#define P_DECOMB_DET_EDGE_CON0 (volatile unsigned int *)((0x2d82 << 2) + 0xff900000)
//Bit 31:24 reg_di_dcmb_det_econ_thd0 default = 60 // u8
//Bit 23:16 reg_di_dcmb_det_econ_thd1 default = 80 // u8
//Bit 15: 8 reg_di_dcmb_det_ealp_lmt0 default = 63 // u8
//Bit 7: 0 reg_di_dcmb_det_ealp_lmt1 default = 4 // u8
#define DECOMB_DET_EDGE_CON1 (0x2d83)
#define P_DECOMB_DET_EDGE_CON1 (volatile unsigned int *)((0x2d83 << 2) + 0xff900000)
//Bit 23:16 reg_di_dcmb_det_ealp_lmt2 default = 0 // u8
//Bit 15: 8 reg_di_dcmb_det_erate0 default = 32 // u8
//Bit 7: 0 reg_di_dcmb_det_erate1 default = 4 // u8
#define DECOMB_PARA (0x2d84)
#define P_DECOMB_PARA (volatile unsigned int *)((0x2d84 << 2) + 0xff900000)
//Bit 31:30 reserved
//Bit 29:28 reg_di_dcmb_cmb_lpf default = 1 // u2, 0:no lpf, 1:[1 2 1], 2,3: [1 2 2 2 1]
//Bit 27:26 reg_di_dcmb_vedge_chk default = 0 // u2, vertical edge check, 0: no check, 1: vrt!=0, 2: vrt==3
//Bit 25:24 reg_di_dcmb_nedge_chk default = 0 // u2, no idea edge check, 0, no check, 1, check
//Bit 23:20 reg_di_dcmb_edge_min default = 0 // u4, min edge for edge cmb
//Bit 19:16 reg_di_dcmb_edge_max default = 15 // u4, min edge for edge cmb
//Bit 15:8 reg_di_dcmb_bld_alp default = 255 // u8, user defined alpha for di & decmb blend
//Bit 7:0 reg_di_dcmb_bld_alp_beta default = 40 // u8, beta for mtn & cmb blend, for bld alpha calc.
#define DECOMB_BLND_CON0 (0x2d85)
#define P_DECOMB_BLND_CON0 (volatile unsigned int *)((0x2d85 << 2) + 0xff900000)
//Bit 31:24 reg_di_dcmb_bld_con_thd0 default = 100 // u8
//Bit 23:16 reg_di_dcmb_bld_con_thd1 default = 120 // u8
//Bit 15: 8 reg_di_dcmb_bld_alp_lmt0 default = 0 // u8
//Bit 7: 0 reg_di_dcmb_bld_alp_lmt1 default = 128 // u8
#define DECOMB_BLND_CON1 (0x2d86)
#define P_DECOMB_BLND_CON1 (volatile unsigned int *)((0x2d86 << 2) + 0xff900000)
//Bit 23:16 reg_di_dcmb_bld_alp_lmt2 default = 255 // u8
//Bit 15: 8 reg_di_dcmb_bld_rate0 default = 32 // u8
//Bit 7: 0 reg_di_dcmb_bld_rate1 default = 32 // u8
#define DECOMB_YC_THRD (0x2d87)
#define P_DECOMB_YC_THRD (volatile unsigned int *)((0x2d87 << 2) + 0xff900000)
//Bit 31:16 reserved
//Bit 15: 8 reg_di_dcmb_ythd default = 2 // u8, default = 2
//Bit 7: 0 reg_di_dcmb_cthd default = 2 // u8, default = 2
#define DECOMB_MTN_GAIN_OFST (0x2d88)
#define P_DECOMB_MTN_GAIN_OFST (volatile unsigned int *)((0x2d88 << 2) + 0xff900000)
//Bit 31:22 reserved
//Bit 21:16 reg_di_dcmb_mtn_alp_gain default = 16 // u6, 16 is normalized to '1'
//Bit 15:9 reserved
//Bit 8:0 reg_di_dcmb_mtn_alp_ofst default = 0 // s9, [-256, 255]
#define DECOMB_CMB_SEL_GAIN_OFST (0x2d89)
#define P_DECOMB_CMB_SEL_GAIN_OFST (volatile unsigned int *)((0x2d89 << 2) + 0xff900000)
//Bit 31:22 reserved
//Bit 21:16 reg_di_dcmb_cmb_sel_gain default = 48 // u6, 16 is normalized to '1'
//Bit 15:9 reserved
//Bit 8:0 reg_di_dcmb_cmb_sel_ofst default = 0 // s9, [-256, 255]
#define DECOMB_WIND00 (0x2d8a)
#define P_DECOMB_WIND00 (volatile unsigned int *)((0x2d8a << 2) + 0xff900000)
//Bit 31:29 reserved
//Bit 28:16 reg_di_dcmb_wnd00 default = 0 // u13, x0 for window 0, software control
//Bit 15:13 reserved
//Bit 12:0 reg_di_dcmb_wnd01 default = 719 // u13, x1 for window 0, HSIZE-1, software control
#define DECOMB_WIND01 (0x2d8b)
#define P_DECOMB_WIND01 (volatile unsigned int *)((0x2d8b << 2) + 0xff900000)
//Bit 31:29 reserved
//Bit 28:16 reg_di_dcmb_wnd02 default = 0 // u13, y0 for window 0, software control
//Bit 15:13 reserved
//Bit 12:0 reg_di_dcmb_wnd03 default = 39 // u13, y1 for window 0, software control
#define DECOMB_WIND10 (0x2d8c)
#define P_DECOMB_WIND10 (volatile unsigned int *)((0x2d8c << 2) + 0xff900000)
//Bit 31:29 reserved
//Bit 28:16 reg_di_dcmb_wnd10 default = 0 // u13, x0 for window 1, software control
//Bit 15:13 reserved
//Bit 12:0 reg_di_dcmb_wnd11 default = 719 // u13, x1 for window 1, HSIZE-1, software control
#define DECOMB_WIND11 (0x2d8d)
#define P_DECOMB_WIND11 (volatile unsigned int *)((0x2d8d << 2) + 0xff900000)
//Bit 31:29 reserved
//Bit 28:16 reg_di_dcmb_wnd12 default = 40 // u13, y0 for window 1, software control
//Bit 15:13 reserved
//Bit 12:0 reg_di_dcmb_wnd13 default = 239 // u13, y1 for window 1, VSIZE-1-40, software control
#define DECOMB_MODE (0x2d8e)
#define P_DECOMB_MODE (volatile unsigned int *)((0x2d8e << 2) + 0xff900000)
//Bit 31:16 reserved
//Bit 15 reg_di_dcmb_is_cmb_bef default = 1 // u1, 1: decide is_cmb before cmbing refine, 0: decide is_cmb after cmbing refine
//Bit 14 reg_di_dcmb_en0 default = 1 // u1, enable decmobing for wind0
//Bit 13 reg_di_dcmb_en1 default = 1 // u1, enable decmobing for wind1
//Bit 12 reg_di_dcmb_en2 default = 1 // u1, enable decmobing for wind2
//Bit 11:10 reg_di_dcmb_lpf_mod0 default = 2 // u2, get combing free pixels of wind0 by: 0, vertical lpf, 1, edge lpf, 2,3, ei data
//Bit 9:8 reg_di_dcmb_lpf_mod1 default = 2 // u2, get combing free pixels of wind1 by: 0, vertical lpf, 1, edge lpf, 2,3, ei data
//Bit 7:6 reg_di_dcmb_lpf_mod2 default = 0 // u2, get combing free pixels of wind2 by: 0, vertical lpf, 1, edge lpf, 2,3, ei data
//Bit 5 reg_di_dcmb_cmb_sel0 default = 1 // u1, wind0 decmb based on: 0, vert cmb, 1, edge cmb
//Bit 4 reg_di_dcmb_cmb_sel1 default = 1 // u1, wind1 decmb based on: 0, vert cmb, 1, edge cmb
//Bit 3 reg_di_dcmb_cmb_sel2 default = 0 // u1, wind2 decmb based on: 0, vert cmb, 1, edge cmb
//Bit 2 reg_di_dcmb_alp_mod0 default = 1 // u1, wind0 decmb alpha based on: 0, user-defined, 1, motion adaptive
//Bit 1 reg_di_dcmb_alp_mod1 default = 1 // u1, wind1 decmb alpha based on: 0, user-defined, 1, motion adaptive
//Bit 0 reg_di_dcmb_alp_mod2 default = 1 // u1, wind2 decmb alpha based on: 0, user-defined, 1, motion adaptive
#define DECOMB_FRM_SIZE (0x2d8f)
#define P_DECOMB_FRM_SIZE (volatile unsigned int *)((0x2d8f << 2) + 0xff900000)
//Bit 31:29 reserved
//Bit 28:16 hsize_in default = 1920 // u13, pic horz size in unit: pixel
//Bit 15:13 reserved
//Bit 12:0 vsize_in default = 1080 // u13, pic vert size in unit: pixel
#define DECOMB_HV_BLANK (0x2d90)
#define P_DECOMB_HV_BLANK (volatile unsigned int *)((0x2d90 << 2) + 0xff900000)
//Bit 31:16 reserved
//Bit 15:8 hblank_num default = 20 // u8, hor blank time
//Bit 7:0 vblank_num default = 50 // u8, ver blank time
//
// Closing file: decomb_regs.h
//
// 0x98-0xa3
//
// Reading file: nr2_det_polar_regs.h
//
// synopsys translate_off
// synopsys translate_on
#define NR2_POLAR3_MODE (0x2d98)
#define P_NR2_POLAR3_MODE (volatile unsigned int *)((0x2d98 << 2) + 0xff900000)
//Bit 31:20 reserved
//Bit 19:18 reg_polar3_f02lpf_mod0 // unsigned , default = 3 low pass filter mode for field 0 and field2 before polar3 detection; 0 for no lpf, 1: [1 2 1]/4 vert lpf; 2: [1 2 1; 2 4 2; 1 2 1]/16 2d lpf, p1 no hlpf; 2: [1 2 1; 2 4 2; 1 2 1]/16 2d lpf, p1 [1 2 1]/4 hlpf
//Bit 17:16 reg_polar3_f02lpf_mod1 // unsigned , default = 3 low pass filter mode for field 0 and field2 before polar3 detection; 0 for no lpf, 1: [1 2 1]/4 vert lpf; 2: [1 2 1; 2 4 2; 1 2 1]/16 2d lpf, p1 no hlpf; 2: [1 2 1; 2 4 2; 1 2 1]/16 2d lpf, p1 [1 2 1]/4 hlpf
//Bit 15: 8 reg_polar3_dif02_thrd0 // unsigned , default = 5 threshold of dif for polar3 detection except for 32 detection, only do polar3 detection on obvious motion, [0] for luma, 1[1] for chroma
//Bit 7: 0 reg_polar3_dif02_thrd1 // unsigned , default = 5 threshold of dif for polar3 detection except for 32 detection, only do polar3 detection on obvious motion, [0] for luma, 1[1] for chroma
#define NR2_POLAR3_THRD (0x2d99)
#define P_NR2_POLAR3_THRD (volatile unsigned int *)((0x2d99 << 2) + 0xff900000)
//Bit 31:24 reg_polar3_txtf02_thrd0 // unsigned , default = 30 threshold to vertical f0f2 texture, if texture larger than this threshold, will not do the polar3 decision.
//Bit 23:16 reg_polar3_txtf02_thrd1 // unsigned , default = 30 threshold to vertical f0f2 texture, if texture larger than this threshold, will not do the polar3 decision.
//Bit 15: 8 reg_polar3_txtf1_thrd0 // unsigned , default = 20 threshold to vertical f1 texture, if texture larger than this threshold, will not do the polar3 decision.
//Bit 7: 0 reg_polar3_txtf1_thrd1 // unsigned , default = 20 threshold to vertical f1 texture, if texture larger than this threshold, will not do the polar3 decision.
#define NR2_POLAR3_PARA0 (0x2d9a)
#define P_NR2_POLAR3_PARA0 (volatile unsigned int *)((0x2d9a << 2) + 0xff900000)
//Bit 31:28 reg_polar3_rate00 // unsigned , default = 6 delt = rate*dif02/32, e.g. f2<f0, if f1 within((f0+f2)/2 - delt), ((f0+f2)/2 + delt), then polar3_smoothmv++;
//Bit 27:24 reg_polar3_rate01 // unsigned , default = 6 delt = rate*dif02/32, e.g. f2<f0, if f1 within((f0+f2)/2 - delt), ((f0+f2)/2 + delt), then polar3_smoothmv++;
//Bit 23:20 reg_polar3_rate10 // unsigned , default = 8 delt = rate*dif02/32, e.g. f2-ofst1<f0, if f1<((f0+f2)/2 - delt), then polar3_m1++; if f1>((f0+f2)/2 + delt), then polar3_p1++;
//Bit 19:16 reg_polar3_rate11 // unsigned , default = 8 delt = rate*dif02/32, e.g. f2-ofst1<f0, if f1<((f0+f2)/2 - delt), then polar3_m1++; if f1>((f0+f2)/2 + delt), then polar3_p1++;
//Bit 15:12 reg_polar3_rate20 // unsigned , default = 2 delt = rate*dif02/32, e.g. f2<f0, if f1<(f2 - delt- ofset2), then polar3_m2++; if f1>((f0 + delt+ ofset2), then polar3_p2++;
//Bit 11: 8 reg_polar3_rate21 // unsigned , default = 2 delt = rate*dif02/32, e.g. f2<f0, if f1<(f2 - delt- ofset2), then polar3_m2++; if f1>((f0 + delt+ ofset2), then polar3_p2++;
//Bit 7: 1 reserved
//Bit 0 reg_polar3_ro_reset // unsigned , default = 0 reset signal of the polar3 read only registers
#define NR2_POLAR3_PARA1 (0x2d9b)
#define P_NR2_POLAR3_PARA1 (volatile unsigned int *)((0x2d9b << 2) + 0xff900000)
//Bit 31:24 reg_polar3_rate30 // unsigned , default = 48 delt = rate*dif02/32, e.g. f2<f0, if f1<(f2 - delt- ofset3) or f1>((f0 + delt+ofst3), then polar3_32++;
//Bit 23:16 reg_polar3_rate31 // unsigned , default = 48 delt = rate*dif02/32, e.g. f2<f0, if f1<(f2 - delt- ofset3) or f1>((f0 + delt+ofst3), then polar3_32++;
//Bit 15:12 reg_polar3_ofst30 // signed , default = 2 delt = rate*dif02/32, e.g. f2<f0, if f1<(f2 - delt-ofst3) or f1>((f0 + delt+ofst3), then polar3_32++;
//Bit 11: 8 reg_polar3_ofst31 // signed , default = 2 delt = rate*dif02/32, e.g. f2<f0, if f1<(f2 - delt-ofst3) or f1>((f0 + delt+ofst3), then polar3_32++;
//Bit 7: 4 reg_polar3_ofst20 // signed , default = 2 delt = rate*dif02/32, e.g. f2<f0, if f1<(f2 - delt- ofset2), then polar3_m2++; if f1>((f0 + delt+ ofset2), then polar3_p2++;
//Bit 3: 0 reg_polar3_ofst21 // signed , default = 2 delt = rate*dif02/32, e.g. f2<f0, if f1<(f2 - delt- ofset2), then polar3_m2++; if f1>((f0 + delt+ ofset2), then polar3_p2++;
#define NR2_POLAR3_CTRL (0x2d9c)
#define P_NR2_POLAR3_CTRL (volatile unsigned int *)((0x2d9c << 2) + 0xff900000)
//Bit 31:24 reg_polar3_ofst10 // signed , default = 1
//Bit 23:16 reg_polar3_ofst11 // signed , default = 1
//Bit 15: 8 reg_polar3_h_mute // unsigned , default = 10 horizontal pixels to mute for left right sides for polar3 detection;
//Bit 7: 0 reg_polar3_v_mute // unsigned , default = 10 vertical pixels to mute for top and bottom sides for polar3 detection;
#define NR2_RO_POLAR3_NUMOFPIX (0x2d9d)
#define P_NR2_RO_POLAR3_NUMOFPIX (volatile unsigned int *)((0x2d9d << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23: 0 ro_polar3_numofpix // unsigned , default = 0 number of pixels detected as polar3
#define NR2_RO_POLAR3_SMOOTHMV (0x2d9e)
#define P_NR2_RO_POLAR3_SMOOTHMV (volatile unsigned int *)((0x2d9e << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23: 0 ro_polar3_smoothmv // unsigned , default = 0 number of pixels with smooth mv, F(t) is close between avg of f(t-1) and f(t+1);
#define NR2_RO_POLAR3_M1 (0x2d9f)
#define P_NR2_RO_POLAR3_M1 (volatile unsigned int *)((0x2d9f << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23: 0 ro_polar3_m1 // unsigned , default = 0 number of pixels with F(t) is close to f(t-1) instead of f(t+1), but in between [f(t-1), f(t+1)];
#define NR2_RO_POLAR3_P1 (0x2da0)
#define P_NR2_RO_POLAR3_P1 (volatile unsigned int *)((0x2da0 << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23: 0 ro_polar3_p1 // unsigned , default = 0 number of pixels with F(t) is close to f(t+1) instead of f(t-1), but in between [f(t-1), f(t+1)];
#define NR2_RO_POLAR3_M2 (0x2da1)
#define P_NR2_RO_POLAR3_M2 (volatile unsigned int *)((0x2da1 << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23: 0 ro_polar3_m2 // unsigned , default = 0 number of pixels with F(t) is close to f(t-1) instead of f(t+1), but out side of (f(t-1), f(t+1));
#define NR2_RO_POLAR3_P2 (0x2da2)
#define P_NR2_RO_POLAR3_P2 (volatile unsigned int *)((0x2da2 << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23: 0 ro_polar3_p2 // unsigned , default = 0 number of pixels with F(t) is close to f(t+1) instead of f(t-1), but out side of (f(t-1), f(t+1));
#define NR2_RO_POLAR3_32 (0x2da3)
#define P_NR2_RO_POLAR3_32 (volatile unsigned int *)((0x2da3 << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23: 0 ro_polar3_32 // unsigned , default = 0 number of pixels with F(t) far from [f(t-1),f(t+1)] and f(t-1) is close to f(t+1);
// synopsys translate_off
// synopsys translate_on
//
// Closing file: nr2_det_polar_regs.h
//
// 0xa4-0xf7 / 0xff
//
// Reading file: nr4_regs.h
//
// synopsys translate_off
// synopsys translate_on
//========== nr4_drt_regs register begin ==========//
#define NR4_DRT_CTRL (0x2da4)
#define P_NR4_DRT_CTRL (volatile unsigned int *)((0x2da4 << 2) + 0xff900000)
//Bit 31:24 reg_nr4_ydrt_3line_ssd_gain // unsigned , default = 16 gain to max ssd normalized 16 as '1'
//Bit 23:16 reg_nr4_ydrt_5line_ssd_gain // unsigned , default = 16 gain to max ssd normalized 16 as '1'
//Bit 15 reserved
//Bit 14:13 reg_nr4_drt_yhsad_mode // unsigned , default = 1 mode for luma horiztonal sad calc., 0: no vertical lpf, 1: vertical [1 2 1], 2 or 3: vertical [ 1 2 2 2 1] if 5 lines
//Bit 12:11 reg_nr4_drt_chsad_mode // unsigned , default = 1 mode for chroma horiztonal sad calc., 0: no vertical lpf, 1: vertical [1 2 1], 2 or 3: vertical [ 1 2 2 2 1] if 5 lines
//Bit 10 reg_nr4_drt_yhsad_hlpf // unsigned , default = 1 hlpf for luma hsad of drt calculation, 0: no lpf, 1: with [1 2 1] hlpf
//Bit 9 reg_nr4_drt_yvsad_hlpf // unsigned , default = 1 hlpf for luma vsad of drt calculation, 0: no lpf, 1: with [1 2 1] hlpf
//Bit 8 reg_nr4_drt_ydsad_hlpf // unsigned , default = 1 hlpf for luma dsad of drt calculation, 0: no lpf, 1: with [1 2 1] hlpf
//Bit 7 reg_nr4_drt_chsad_hlpf // unsigned , default = 1 hlpf for chrome hsad of drt calculation, 0: no lpf, 1: with [1 2 1] hlpf
//Bit 6 reg_nr4_drt_cvsad_hlpf // unsigned , default = 1 hlpf for chroma vsad of drt calculation, 0: no lpf, 1: with [1 2 1] hlpf
//Bit 5 reg_nr4_drt_cdsad_hlpf // unsigned , default = 1 hlpf for chroma dsad of drt calculation, 0: no lpf, 1: with [1 2 1] hlpf
//Bit 4 reg_nr4_ydrt_dif_mode // unsigned , default = 1 0:y_dif, 1: y_dif + (u_dif + v_dif)/2
//Bit 3: 2 reg_nr4_cdrt_dif_mode // unsigned , default = 2 0:(u_dif + v_dif), 1: y_dif/4 + (u_dif + v_dif)*3/4, 2:y_dif/2 + (u_dif + v_dif)/2, 3: y_dif (not recommended)
//Bit 1: 0 reserved
#define NR4_DRT_YSAD_GAIN (0x2da5)
#define P_NR4_DRT_YSAD_GAIN (volatile unsigned int *)((0x2da5 << 2) + 0xff900000)
//Bit 31:24 reg_nr4_ysad_hrz_gain // unsigned , default = 16 gain for horizontal sad, 16 normalized to "1"
//Bit 23:16 reg_nr4_ysad_diag_gain // unsigned , default = 20 gain for diagonal sad, 16 normalized to "1"
//Bit 15: 8 reg_nr4_ysad_vrt_gain // unsigned , default = 16 gain for vertical sad, 16 normalized to "1"
//Bit 7: 6 reserved
//Bit 5: 0 reg_nr4_drt_ysad_core_rate // unsigned , default = 6 rate of coring for sad(theta) - sad(theta+pi/2)*rate/64
#define NR4_DRT_CSAD_GAIN (0x2da6)
#define P_NR4_DRT_CSAD_GAIN (volatile unsigned int *)((0x2da6 << 2) + 0xff900000)
//Bit 31:24 reg_nr4_csad_hrz_gain // unsigned , default = 16 gain for horizontal sad, 16 normalized to "1"
//Bit 23:16 reg_nr4_csad_diag_gain // unsigned , default = 20 gain for diagonal sad, 16 normalized to "1"
//Bit 15: 8 reg_nr4_csad_vrt_gain // unsigned , default = 16 gain for vertical sad, 16 normalized to "1"
//Bit 7: 6 reserved
//Bit 5: 0 reg_nr4_drt_csad_core_rate // unsigned , default = 6 rate of coring for sad(theta) - sad(theta+pi/2)*rate/64
#define NR4_DRT_SAD_ALP_CORE (0x2da7)
#define P_NR4_DRT_SAD_ALP_CORE (volatile unsigned int *)((0x2da7 << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23:20 reg_nr4_ydrt_alp_core_rate // unsigned , default = 0 luma ratio to min_err, alpha = (min_err - (max_err - min_err)*rate + ofst)/max_err * 64; dft = 0/32
//Bit 19:16 reg_nr4_cdrt_alp_core_rate // unsigned , default = 0 chroma ratio to min_err, alpha = (min_err - (max_err - min_err)*rate + ofst)/max_err * 64; dft = 0/32
//Bit 15:14 reserved
//Bit 13: 8 reg_nr4_ydrt_alp_core_ofst // unsigned , default = 10 luma offset to min_err, alpha = (min_err - (max_err - min_err)*rate + ofst)/max_err * 64; dft = 10
//Bit 7: 6 reserved
//Bit 5: 0 reg_nr4_cdrt_alp_core_ofst // unsigned , default = 10 chroma offset to min_err, alpha = (min_err - (max_err - min_err)*rate + ofst)/max_err * 64; dft = 10
#define NR4_DRT_ALP_MINMAX (0x2da8)
#define P_NR4_DRT_ALP_MINMAX (volatile unsigned int *)((0x2da8 << 2) + 0xff900000)
//Bit 31:30 reserved
//Bit 29:24 reg_nr4_ydrt_alp_min // unsigned , default = 0 luma min value of alpha, dft = 0
//Bit 23:22 reserved
//Bit 21:16 reg_nr4_ydrt_alp_max // unsigned , default = 63 luma max value of alpha, dft = 63
//Bit 15:14 reserved
//Bit 13: 8 reg_nr4_cdrt_alp_min // unsigned , default = 0 chroma min value of alpha, dft = 0
//Bit 7: 6 reserved
//Bit 5: 0 reg_nr4_cdrt_alp_max // unsigned , default = 63 chroma max value of alpha, dft = 63
//========== nr4_drt_regs register end ==========//
//========== nr4_snr_regs register begin ==========//
#define NR4_SNR_CTRL_REG (0x2da9)
#define P_NR4_SNR_CTRL_REG (volatile unsigned int *)((0x2da9 << 2) + 0xff900000)
//Bit 31:13 reserved
//Bit 12 reg_nr4_bet2_sel // unsigned , default = 1
//Bit 11: 9 reg_nr4_snr2_sel_mode // unsigned , default = 0 0: no filter, 1: adpgau, adp_drt_lpf blend; 2: adpgau, drt4_lpf blend; 3: adp_drt_lpf method, 4: drt4_lpf method, 5: adp_drt_ //original image blend, 6: drt4_lpf, original image blend, 7: adpgau method; dft=1
//Bit 8 reg_nr4_snr2_gaulpf_mode // unsigned , default = 1 0: 3*5 or 5*5 gaussian lpf; 1: 3*3 (window size) gaussian lpf; dft=1
//Bit 7: 6 reg_nr4_snr2_alpha0_sad_mode // unsigned , default = 3 0: max_sad*max_ssd; 1: max_sad*max_sad; 2: adp_max_sad*max_ssd; 3: adp_max_sad*adp_max_sad dft=3
//Bit 5: 4 reg_nr4_snr2_alpha1_sad_mode // unsigned , default = 2 0: max_sad; 1: cross_max_sad; 2 or 3: adp_sad dft=2
//Bit 3: 2 reserved
//Bit 1: 0 reg_nr4_snr2_adp_drtlpf_mode // unsigned , default = 3 0: adp_drtlpf [2 1 1]/4, 1: adp_drtlpf [4 2 1 1]/8; 2: adp_drtlpf [2 2 2 1 1]/8; 3: adp_drtlpf [7 7 7 6 5]/32; dft=3;
#define NR4_SNR_ALPHA0_MAX_MIN (0x2daa)
#define P_NR4_SNR_ALPHA0_MAX_MIN (volatile unsigned int *)((0x2daa << 2) + 0xff900000)
//Bit 31:30 reserved
//Bit 29:23 reg_nr4_snr2_alp0_ymin // unsigned , default = 127 normalized to 128 as '1'
//Bit 22:16 reg_nr4_snr2_alp0_ymax // unsigned , default = 127 normalized to 128 as '1'
//Bit 15:14 reserved
//Bit 13: 7 reg_nr4_snr2_alp0_cmin // unsigned , default = 127 normalized to 128 as '1'
//Bit 6: 0 reg_nr4_snr2_alp0_cmax // unsigned , default = 127 normalized to 128 as '1'
#define NR4_ALP0C_ERR2CURV_LIMIT0 (0x2dab)
#define P_NR4_ALP0C_ERR2CURV_LIMIT0 (volatile unsigned int *)((0x2dab << 2) + 0xff900000)
//Bit 31:24 reg_nr4_snr2_alp0_minerr_cpar0 // unsigned , default = 0 threshold0 of curve to map mierr to alp0 for chroma channel, this will be set value of flat region mierr that no need blur.
//Bit 23:16 reg_nr4_snr2_alp0_minerr_cpar1 // unsigned , default = 25 threshold1 of curve to map mierr to alp0 for chroma channel,this will be set value of texture region mierr that can not blur.
//Bit 15: 8 reg_nr4_snr2_alp0_minerr_cpar5 // unsigned , default = 40 rate0 (for mierr<th0) of curve to map mierr to alp0 for chroma channel. the larger of the value, the deep of the slope. 0~255.
//Bit 7: 0 reg_nr4_snr2_alp0_minerr_cpar6 // unsigned , default = 40 rate1 (for mierr>th1) of curve to map mierr to alp0 for chroma channel. the larger of the value, the deep of the slope. 0~255.
#define NR4_ALP0C_ERR2CURV_LIMIT1 (0x2dac)
#define P_NR4_ALP0C_ERR2CURV_LIMIT1 (volatile unsigned int *)((0x2dac << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23:16 reg_nr4_snr2_alp0_minerr_cpar2 // unsigned , default = 127 level limit(for mierr<th0) of curve to map mierr to alp0 for chroma channel, that we can do for flat region. 0~255.
//Bit 15: 8 reg_nr4_snr2_alp0_minerr_cpar3 // unsigned , default = 0 level limit(for th0<mierr<th1) of curve to map mierr to alp0 for chroma channel, that we can do for misc region. 0~255.
//Bit 7: 0 reg_nr4_snr2_alp0_minerr_cpar4 // unsigned , default = 127 level limit(for mierr>th1) of curve to map mierr to alp0 for chroma channel, that we can do for texture region. 0~255.
#define NR4_ALP0Y_ERR2CURV_LIMIT0 (0x2dad)
#define P_NR4_ALP0Y_ERR2CURV_LIMIT0 (volatile unsigned int *)((0x2dad << 2) + 0xff900000)
//Bit 31:24 reg_nr4_snr2_alp0_minerr_ypar0 // unsigned , default = 0 threshold0 of curve to map mierr to alp0 for luma channel, this will be set value of flat region mierr that no need blur. 0~255.
//Bit 23:16 reg_nr4_snr2_alp0_minerr_ypar1 // unsigned , default = 25 threshold1 of curve to map mierr to alp0 for luma channel,this will be set value of texture region mierr that can not blur.
//Bit 15: 8 reg_nr4_snr2_alp0_minerr_ypar5 // unsigned , default = 40 rate0 (for mierr<th0) of curve to map mierr to alp0 for luma channel. the larger of the value, the deep of the slope. 0~255.
//Bit 7: 0 reg_nr4_snr2_alp0_minerr_ypar6 // unsigned , default = 40 rate1 (for mierr>th1) of curve to map mierr to alp0 for luma channel. the larger of the value, the deep of the slope. 0~255.
#define NR4_ALP0Y_ERR2CURV_LIMIT1 (0x2dae)
#define P_NR4_ALP0Y_ERR2CURV_LIMIT1 (volatile unsigned int *)((0x2dae << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23:16 reg_nr4_snr2_alp0_minerr_ypar2 // unsigned , default = 127 level limit(for mierr<th0) of curve to map mierr to alp0 for luma channel, set to alp0 that we can do for flat region. 0~255.
//Bit 15: 8 reg_nr4_snr2_alp0_minerr_ypar3 // unsigned , default = 0 level limit(for th0<mierr<th1) of curve to map mierr to alp0 for luma channel, alp0 that we can do for misc region. 0~255.
//Bit 7: 0 reg_nr4_snr2_alp0_minerr_ypar4 // unsigned , default = 127 level limit(for mierr>th1) of curve to map mierr to alp0 for luma channel, alp0 that we can do for texture region. 0~255.
#define NR4_SNR_ALPA1_RATE_AND_OFST (0x2daf)
#define P_NR4_SNR_ALPA1_RATE_AND_OFST (volatile unsigned int *)((0x2daf << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23:18 reg_nr4_snr2_alp1_ycore_rate // unsigned , default = 0 normalized 64 as "1"
//Bit 17:12 reg_nr4_snr2_alp1_ccore_rate // unsigned , default = 0 normalized 64 as "1"
//Bit 11: 6 reg_nr4_snr2_alp1_ycore_ofst // signed , default = 3 normalized 64 as "1"
//Bit 5: 0 reg_nr4_snr2_alp1_ccore_ofst // signed , default = 3 normalized 64 as "1"
#define NR4_SNR_ALPHA1_MAX_MIN (0x2db0)
#define P_NR4_SNR_ALPHA1_MAX_MIN (volatile unsigned int *)((0x2db0 << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23:18 reg_nr4_snr2_alp1_ymin // unsigned , default = 0 normalized to 64 as '1'
//Bit 17:12 reg_nr4_snr2_alp1_ymax // unsigned , default = 63 normalized to 64 as '1'
//Bit 11: 6 reg_nr4_snr2_alp1_cmin // unsigned , default = 0 normalized to 64 as '1'
//Bit 5: 0 reg_nr4_snr2_alp1_cmax // unsigned , default = 63 normalized to 64 as '1'
#define NR4_ALP1C_ERR2CURV_LIMIT0 (0x2db1)
#define P_NR4_ALP1C_ERR2CURV_LIMIT0 (volatile unsigned int *)((0x2db1 << 2) + 0xff900000)
//Bit 31:24 reg_nr4_snr2_alp1_minerr_cpar0 // unsigned , default = 0 annel, this will be set value of flat region mierr that no need directional NR. 0~255.
//Bit 23:16 reg_nr4_snr2_alp1_minerr_cpar1 // unsigned , default = 24 hannel,this will be set value of texture region mierr that can not do directional NR. 0~255.
//Bit 15: 8 reg_nr4_snr2_alp1_minerr_cpar5 // unsigned , default = 0 a/chroma channel. the larger of the value, the deep of the slope.
//Bit 7: 0 reg_nr4_snr2_alp1_minerr_cpar6 // unsigned , default = 20 a/chroma channel. the larger of the value, the deep of the slope. 0~255
#define NR4_ALP1C_ERR2CURV_LIMIT1 (0x2db2)
#define P_NR4_ALP1C_ERR2CURV_LIMIT1 (volatile unsigned int *)((0x2db2 << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23:16 reg_nr4_snr2_alp1_minerr_cpar2 // unsigned , default = 0 will be set to alp1 that we can do for flat region. 0~255.
//Bit 15: 8 reg_nr4_snr2_alp1_minerr_cpar3 // unsigned , default = 16 this will be set to alp1 that we can do for misc region. 0~255.
//Bit 7: 0 reg_nr4_snr2_alp1_minerr_cpar4 // unsigned , default = 63 will be set to alp1 that we can do for texture region. 0~255.255 before
#define NR4_ALP1Y_ERR2CURV_LIMIT0 (0x2db3)
#define P_NR4_ALP1Y_ERR2CURV_LIMIT0 (volatile unsigned int *)((0x2db3 << 2) + 0xff900000)
//Bit 31:24 reg_nr4_snr2_alp1_minerr_ypar0 // unsigned , default = 0 thra/chroma channel, this will be set value of flat region mierr that no need directional NR. 0~255.
//Bit 23:16 reg_nr4_snr2_alp1_minerr_ypar1 // unsigned , default = 24 thra/chroma channel,this will be set value of texture region mierr that can not do directional NR. 0~255.
//Bit 15: 8 reg_nr4_snr2_alp1_minerr_ypar5 // unsigned , default = 0 ratlp1 for luma/chroma channel. the larger of the value, the deep of the slope.
//Bit 7: 0 reg_nr4_snr2_alp1_minerr_ypar6 // unsigned , default = 20 ratlp1 for luma/chroma channel. the larger of the value, the deep of the slope. 0~255
#define NR4_ALP1Y_ERR2CURV_LIMIT1 (0x2db4)
#define P_NR4_ALP1Y_ERR2CURV_LIMIT1 (volatile unsigned int *)((0x2db4 << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23:16 reg_nr4_snr2_alp1_minerr_ypar2 // unsigned , default = 0 lev to alp1 for luma/chroma channel, this will be set to alp1 that we can do for flat region. 0~255.
//Bit 15: 8 reg_nr4_snr2_alp1_minerr_ypar3 // unsigned , default = 16 levierr to alp1 for luma/chroma channel, this will be set to alp1 that we can do for misc region. 0~255.
//Bit 7: 0 reg_nr4_snr2_alp1_minerr_ypar4 // unsigned , default = 63 lev to alp1 for luma/chroma channel, this will be set to alp1 that we can do for texture region. 0~255.255 before
//========== nr4_snr_regs register end ==========//
//========== nr4_tnr_regs register begin ==========//
#define NR4_MTN_CTRL (0x2db5)
#define P_NR4_MTN_CTRL (volatile unsigned int *)((0x2db5 << 2) + 0xff900000)
//Bit 31: 2 reserved
//Bit 1 reg_nr4_mtn_ref_en // unsigned , default = 1 enable motion refinement, dft = 1
//Bit 0 reg_nr4_mtn_ref_bet_sel // unsigned , default = 0 beta selection mode for motion refinement, 0: beta1, 1: beta2, dft = 0
#define NR4_MTN_REF_PAR0 (0x2db6)
#define P_NR4_MTN_REF_PAR0 (volatile unsigned int *)((0x2db6 << 2) + 0xff900000)
//Bit 31:24 reg_nr4_mtn_ref_par0 // unsigned , default = 24 par0 for beta to gain, dft =
//Bit 23:16 reg_nr4_mtn_ref_par1 // unsigned , default = 60 par1 for beta to gain, dft =
//Bit 15: 8 reg_nr4_mtn_ref_par2 // unsigned , default = 4 par2 for beta to gain, dft =
//Bit 7: 0 reg_nr4_mtn_ref_par3 // unsigned , default = 32 par3 for beta to gain, dft =
#define NR4_MTN_REF_PAR1 (0x2db7)
#define P_NR4_MTN_REF_PAR1 (volatile unsigned int *)((0x2db7 << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23:16 reg_nr4_mtn_ref_par4 // unsigned , default = 128 par4 for beta to gain, dft =
//Bit 15: 8 reg_nr4_mtn_ref_par5 // unsigned , default = 40 par5 for beta to gain, dft =
//Bit 7: 0 reg_nr4_mtn_ref_par6 // unsigned , default = 20 par6 for beta to gain, dft =
//========== nr4_tnr_regs register end ==========//
//========== nr4_mcnr_regs register begin ==========//
#define NR4_MCNR_LUMA_ENH_CTRL (0x2db8)
#define P_NR4_MCNR_LUMA_ENH_CTRL (volatile unsigned int *)((0x2db8 << 2) + 0xff900000)
//Bit 31: 4 reserved
//Bit 3 reg_nr4_luma_plus_en // unsigned , default = 1 enable luma enhancement, dft = 1
//Bit 2 reg_nr4_luma_plus_wt_mode // unsigned , default = 1 luma weight calc mode, 0:sqrt(1+x^2), 1: 1+abs(x), dft = 0
//Bit 1: 0 reg_nr4_luma_plus_orient_mode // unsigned , default = 1 0: only use previous orient for pre and cur luma plus, 1: 0: only use current orient for pre and cur luma plus
#define NR4_MCNR_LUMA_STAT_LIMTX (0x2db9)
#define P_NR4_MCNR_LUMA_STAT_LIMTX (volatile unsigned int *)((0x2db9 << 2) + 0xff900000)
//Bit 31:30 reserved
//Bit 29:16 reg_nr4_luma_plus_xst // unsigned , default = 8 start for luma plus statistic, dft = 8
//Bit 15:14 reserved
//Bit 13: 0 reg_nr4_luma_plus_xed // unsigned , default = 711 end for luma plus statistic, dft = HSIZE-8-1;
#define NR4_MCNR_LUMA_STAT_LIMTY (0x2dba)
#define P_NR4_MCNR_LUMA_STAT_LIMTY (volatile unsigned int *)((0x2dba << 2) + 0xff900000)
//Bit 31:30 reserved
//Bit 29:16 reg_nr4_luma_plus_yst // unsigned , default = 8 start for luma plus statistic, dft = 8
//Bit 15:14 reserved
//Bit 13: 0 reg_nr4_luma_plus_yed // unsigned , default = 231 end for luma plus statistic, dft = VSIZE-8-1
#define NR4_MCNR_LUMA_DIF_CALC (0x2dbb)
#define P_NR4_MCNR_LUMA_DIF_CALC (volatile unsigned int *)((0x2dbb << 2) + 0xff900000)
//Bit 31:30 reserved
//Bit 29:24 reg_nr4_luma_plus_ugain // unsigned , default = 8 U's gain for luma enhancement, 16 normalized as '1'
//Bit 23:22 reserved
//Bit 21:16 reg_nr4_luma_plus_vgain // unsigned , default = 8 V's gain for luma enhancement, 16 normalized as '1'
//Bit 15: 8 reg_nr4_luma_plus_ycor_thd // unsigned , default = 2 Y coring threshold for difference calc., dft = 0
//Bit 7: 0 reg_nr4_luma_plus_ccor_thd // unsigned , default = 0 C coring threshold for difference calc., dft = 0
#define NR4_MCNR_LUMAPRE_CAL_PRAM (0x2dbc)
#define P_NR4_MCNR_LUMAPRE_CAL_PRAM (volatile unsigned int *)((0x2dbc << 2) + 0xff900000)
//Bit 31:26 reserved
//Bit 25:24 reg_nr4_pre_u_orient // signed , default = 0 orientation of previous U, initial to 0, and will be updated by software
//Bit 23:18 reserved
//Bit 17:16 reg_nr4_pre_v_orient // signed , default = 0 orientation of previous V, initial to 0, and will be updated by software
//Bit 15: 8 reg_nr4_pre_u_mean // unsigned , default = 0 mean of previous U, initial to 0, and will be updated by software
//Bit 7: 0 reg_nr4_pre_v_mean // unsigned , default = 0 mean of previousV, initial to 0, and will be updated by software
#define NR4_MCNR_LUMACUR_CAL_PRAM (0x2dbd)
#define P_NR4_MCNR_LUMACUR_CAL_PRAM (volatile unsigned int *)((0x2dbd << 2) + 0xff900000)
//Bit 31:26 reserved
//Bit 25:24 reg_nr4_cur_u_orient // signed , default = 0 orientation of current U, initial to 0, and will be updated by software
//Bit 23:18 reserved
//Bit 17:16 reg_nr4_cur_v_orient // signed , default = 0 orientation of current V, initial to 0, and will be updated by software
//Bit 15: 8 reg_nr4_cur_u_mean // unsigned , default = 0 mean of current U, initial to 0, and will be updated by software
//Bit 7: 0 reg_nr4_cur_v_mean // unsigned , default = 0 mean of current, initial to 0, and will be updated by software
#define NR4_MCNR_MV_CTRL_REG (0x2dbe)
#define P_NR4_MCNR_MV_CTRL_REG (volatile unsigned int *)((0x2dbe << 2) + 0xff900000)
//Bit 31:14 reserved
//Bit 13:12 reg_nr4_sad_bitw // unsigned , default = 2 sad bit width (8 + x) before clip to u8, dft = 1
//Bit 11: 4 reg_nr4_glb_gain // unsigned , default = 64 global gain calc. by software, 64 is normalized as '1'
//Bit 3: 0 reg_nr4_mv_err_rsft // unsigned , default = 8 right shift for mv err calc., dft = 9
#define NR4_MCNR_MV_GAIN0 (0x2dbf)
#define P_NR4_MCNR_MV_GAIN0 (volatile unsigned int *)((0x2dbf << 2) + 0xff900000)
//Bit 31:28 reg_nr4_lftmvx_gain // unsigned , default = 1 left mvx gain for err calc., dft = 1
//Bit 27:24 reg_nr4_lftmvy_gain // unsigned , default = 1 left mvy gain for err calc., dft = 1
//Bit 23:20 reg_nr4_zmvx_gain // unsigned , default = 5 zero mvx gain for err calc., dft = 2
//Bit 19:16 reg_nr4_zmvy_gain // unsigned , default = 5 zero mvy gain for err calc., dft = 4
//Bit 15:12 reg_nr4_lmvx0_gain // unsigned , default = 2 line mvx0 gain for err calc., dft = 1
//Bit 11: 8 reg_nr4_lmvx1_gain // unsigned , default = 2 line mvx1 gain for err calc., dft = 1
//Bit 7: 4 reg_nr4_lmvy0_gain // unsigned , default = 2 line mvy0 gain for err calc., dft = 1
//Bit 3: 0 reg_nr4_lmvy1_gain // unsigned , default = 2 line mvy1 gain for err calc., dft = 1
#define NR4_MCNR_LMV_PARM (0x2dc0)
#define P_NR4_MCNR_LMV_PARM (volatile unsigned int *)((0x2dc0 << 2) + 0xff900000)
//Bit 31:28 reg_nr4_lmv_rt0 // unsigned , default = 3 ratio of max lmv
//Bit 27:24 reg_nr4_lmv_rt1 // unsigned , default = 3 ratio of second max lmv
//Bit 23:22 reserved
//Bit 21:16 reg_nr4_lmv_num_lmt0 // unsigned , default = 16 lmv0 least/limit number of (total number - zero_bin)
//Bit 15:14 reserved
//Bit 13: 8 reg_nr4_lmv_num_lmt1 // unsigned , default = 8 lmv1 least/limit number of (total number - zero_bin - max0)
//Bit 7: 2 reserved
//Bit 1: 0 reg_nr4_max_sad_rng // unsigned , default = 1 search range of max2 sad in small region, dft = 1
#define NR4_MCNR_ALP0_REG (0x2dc1)
#define P_NR4_MCNR_ALP0_REG (volatile unsigned int *)((0x2dc1 << 2) + 0xff900000)
//Bit 31:26 reserved
//Bit 25 reg_nr4_alp0_fail_chk // unsigned , default = 1 enable check for alp0 fail status
//Bit 24 reg_nr4_bet0_coef_ref_en // unsigned , default = 1 bet1 refinement by coef_blt
//Bit 23:16 reg_nr4_alp0_posad_gain // unsigned , default = 255 the sad (norm) gain for pixel pointed by MV;
//Bit 15:10 reserved
//Bit 9: 8 reg_nr4_alp0_norm_mode // unsigned , default = 0 alp0 select sad norm mode, 0: disable, 1: enable dc norm, 2: enable ac norm, 3: enable both (dc/ac) norm, dft = 3
//Bit 7: 6 reserved
//Bit 5: 0 reg_nr4_alp0_norm_gain // unsigned , default = 16 alp0 gain for sad norm, '32' as '1', dft = 1
#define NR4_MCNR_ALP1_AND_BET0_REG (0x2dc2)
#define P_NR4_MCNR_ALP1_AND_BET0_REG (volatile unsigned int *)((0x2dc2 << 2) + 0xff900000)
//Bit 31:26 reserved
//Bit 25:24 reg_nr4_alp1_norm_mode // unsigned , default = 3 alp1 select sad norm mode, 0: disable, 1: enable dc norm, 2: enable ac norm, 3: enable both (dc/ac) norm, dft = 3
//Bit 23:22 reserved
//Bit 21:16 reg_nr4_alp1_norm_gain // unsigned , default = 3 alp1 gain for sad norm, '32' as '1', dft = 1
//Bit 15:10 reserved
//Bit 9: 8 reg_nr4_bet0_norm_mode // unsigned , default = 3 bet0 select sad norm mode, 0: disable, 1: enable dc norm, 2: enable ac norm, 3: enable both (dc/ac) norm, dft = 3
//Bit 7: 6 reserved
//Bit 5: 0 reg_nr4_bet0_norm_gain // unsigned , default = 8 bet0 gain for sad norm, '32' as '1', dft = 1
#define NR4_MCNR_BET1_AND_BET2_REG (0x2dc3)
#define P_NR4_MCNR_BET1_AND_BET2_REG (volatile unsigned int *)((0x2dc3 << 2) + 0xff900000)
//Bit 31:26 reserved
//Bit 25:24 reg_nr4_bet1_norm_mode // unsigned , default = 3 bet1 select sad norm mode, 0: disable, 1: enable dc norm, 2: enable ac norm, 3: enable both (dc/ac) norm, dft = 3
//Bit 23:22 reserved
//Bit 21:16 reg_nr4_bet1_norm_gain // unsigned , default = 8 bet1 gain for sad norm, '32' as '1', dft = 1
//Bit 15:10 reserved
//Bit 9: 8 reg_nr4_bet2_norm_mode // unsigned , default = 0 bet2 select sad norm mode, 0: disable, 1: enable dc norm, 2: enable ac norm, 3: enable both (dc/ac) norm, dft = 3
//Bit 7: 6 reserved
//Bit 5: 0 reg_nr4_bet2_norm_gain // unsigned , default = 16 bet2 gain for sad norm, '32' as '1', dft = 1
#define NR4_MCNR_AC_DC_CRTL (0x2dc4)
#define P_NR4_MCNR_AC_DC_CRTL (volatile unsigned int *)((0x2dc4 << 2) + 0xff900000)
//Bit 31:16 reserved
//Bit 15:12 reserved
//Bit 11 reg_nr4_dc_mode // unsigned , default = 1 mode for dc selection,0: Y_lpf, 1: Y_lpf + (U_Lpf+V_lpf)/2,
//Bit 10 reg_nr4_ac_mode // unsigned , default = 1 mode for ac selection, 0: Y_abs_dif, 1: Y_abs_dif + (U_abs_dif + V_abs_dif)/2
//Bit 9 reg_nr4_dc_sel // unsigned , default = 0 selection mode for dc value, 0: 3x5, 1: 5x5, dft = 1
//Bit 8 reg_nr4_ac_sel // unsigned , default = 0 selection mode for ac value, 0: 3x5, 1: 5x5, dft = 1
//Bit 7 reserved
//Bit 6: 4 reg_nr4_dc_shft // unsigned , default = 2 right shift for dc value, dft = 2
//Bit 3 reserved
//Bit 2: 0 reg_nr4_ac_shft // unsigned , default = 0 right shift for ac value, dft = 2
#define NR4_MCNR_CM_CTRL0 (0x2dc5)
#define P_NR4_MCNR_CM_CTRL0 (volatile unsigned int *)((0x2dc5 << 2) + 0xff900000)
//Bit 31:29 reserved
//Bit 28 reg_nr4_cm_skin_prc_bet0 // unsigned , default = 0 enable skin tone processing for mcnr bet0 calc., dft = 1
//Bit 27:26 reg_nr4_cm_chrm_sel // unsigned , default = 1 chrome selection for color match, 0: 1x1, 1: 3X3LPF, 2: 3x5LPF, 3: 5x5LPF for 5lines, 3x5LPF for 3lines, dft = 3
//Bit 25:24 reg_nr4_cm_luma_sel // unsigned , default = 1 luma selection for color match, 0: 1x1, 1: 3X3LPF, 2: 3x5LPF, 3: 5x5LPF for 5lines, 3x5LPF for 3lines, dft = 3
//Bit 23:21 reg_nr4_cm_skin_rshft_bet0 // unsigned , default = 3 right shift for bet0's skin color gains, dft = 3
//Bit 20 reg_nr4_cm_var_sel // unsigned , default = 1 variation selection for color match, 0: 3x5, 1: 5x5 for 5lines, 3x5 for 3lines, dft = 1
//Bit 19 reg_nr4_cm_green_prc_bet0 // unsigned , default = 1 enable green processing for mcnr bet0 calc., dft = 1
//Bit 18:16 reg_nr4_cm_green_rshft_bet0 // unsigned , default = 4 right shift for bet0's green color gains, dft = 4
//Bit 15:14 reg_nr4_preflt_mod // unsigned , default = 2 pre filter mode in mcnr, 0: mv pointed pixel, 1: bilater filter
//Bit 13:12 reg_nr4_alp1_mode // unsigned , default = 1 mode for alpha1's sad selection, 0: max sad, 1: three min sads, 2: min sad, 3: co sad
//Bit 11:10 reserved
//Bit 9: 8 reg_nr4_bet0_mode // unsigned , default = 0 mode for bet0's sad selection, 0: max sad, 1: three min sads, 2: min sad, 3: co sad, else: (co sad) - (min sad)
//Bit 7: 6 reserved
//Bit 5: 4 reg_nr4_bet1_mode // unsigned , default = 2 mode for bet1's sad selection, 0: max sad, 1: three min sads, 2: min sad, 3: co sad, else: (co sad) - (min sad)
//Bit 3: 2 reserved
//Bit 1: 0 reg_nr4_bet2_mode // unsigned , default = 1 mode for bet2's sad selection, 0: max sad, 1: three min sads, 2: min sad, 3: co sad, else: (co sad) - (min sad)
#define NR4_MCNR_CM_PRAM (0x2dc6)
#define P_NR4_MCNR_CM_PRAM (volatile unsigned int *)((0x2dc6 << 2) + 0xff900000)
//Bit 31:30 reserved
//Bit 29 reg_nr4_cm_blue_prc_alp0 // unsigned , default = 1 enable blue processing for mcnr alpha0 calc., dft = 1
//Bit 28 reg_nr4_cm_blue_prc_alp1 // unsigned , default = 1 enable blue processing for mcnr alpha1 calc., dft = 1
//Bit 27 reg_nr4_cm_skin_prc_alp0 // unsigned , default = 1 enable skin tone processing for mcnr alpha0 calc., dft = 1
//Bit 26 reg_nr4_cm_green_prc_alp0 // unsigned , default = 1 enable green processing for mcnr alpha0 clac., dft = 1
//Bit 25 reg_nr4_cm_skin_prc_alp1 // unsigned , default = 1 enable skin tone processing for mcnr alpha0 calc., dft = 1
//Bit 24 reg_nr4_cm_green_prc_alp1 // unsigned , default = 1 enable green processing for mcnr alpha1 clac., dft = 1
//Bit 23:20 reg_nr4_cm_blue_hue_st // unsigned , default = 13 hue start of blue, dft =
//Bit 19:16 reg_nr4_cm_blue_hue_ed // unsigned , default = 15 hue end of blue, dft =
//Bit 15:12 reg_nr4_cm_green_hue_st // unsigned , default = 7 hue start of green, dft =
//Bit 11: 8 reg_nr4_cm_green_hue_ed // unsigned , default = 10 hue end of green, dft =
//Bit 7: 4 reg_nr4_cm_skin_hue_st // unsigned , default = 5 hue start of skin, dft =
//Bit 3: 0 reg_nr4_cm_skin_hue_ed // unsigned , default = 6 hue end of skin, dft =
#define NR4_MCNR_CM_RSHFT_ALP0 (0x2dc7)
#define P_NR4_MCNR_CM_RSHFT_ALP0 (volatile unsigned int *)((0x2dc7 << 2) + 0xff900000)
//Bit 31:28 reserved
//Bit 27:25 reg_nr4_cm_blue_rshft_bet0 // unsigned , default = 5 right shift for bet0's blue color gains, dft = 5
//Bit 24 reg_nr4_cm_blue_prc_bet0 // unsigned , default = 1 enable blue processing for mcnr bet0 calc., dft = 1
//Bit 23 reserved
//Bit 22:20 reg_nr4_cm_blue_rshft_alp0 // unsigned , default = 5 right shift for alpha0/1's blue color gains, dft = 5
//Bit 19 reserved
//Bit 18:16 reg_nr4_cm_blue_rshft_alp1 // unsigned , default = 5 right shift for alpha0/1's blue color gains, dft = 5
//Bit 15 reserved
//Bit 14:12 reg_nr4_cm_green_rshft_alp0 // unsigned , default = 4 right shift for alpha0/1's green color gains, dft = 4
//Bit 11 reserved
//Bit 10: 8 reg_nr4_cm_green_rshft_alp1 // unsigned , default = 4 right shift for alpha0/1's green color gains, dft = 4
//Bit 7 reserved
//Bit 6: 4 reg_nr4_cm_skin_rshft_alp0 // unsigned , default = 3 right shift for alpha0/1's skin color gains, dft = 3
//Bit 3 reserved
//Bit 2: 0 reg_nr4_cm_skin_rshft_alp1 // unsigned , default = 3 right shift for alpha0/1's skin color gains, dft = 3
#define NR4_MCNR_BLUE_CENT (0x2dc8)
#define P_NR4_MCNR_BLUE_CENT (volatile unsigned int *)((0x2dc8 << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23:16 reg_nr4_cm_blue_centx // unsigned , default = 157 x coordinate of center of blue, dft =
//Bit 15: 8 reserved
//Bit 7: 0 reg_nr4_cm_blue_centy // unsigned , default = 110 y coordinate of center of blue, dft =
#define NR4_MCNR_BLUE_GAIN_PAR0 (0x2dc9)
#define P_NR4_MCNR_BLUE_GAIN_PAR0 (volatile unsigned int *)((0x2dc9 << 2) + 0xff900000)
//Bit 31:24 reg_nr4_cm_blue_gain_par0 // unsigned , default = 32 par0 for blue gain, dft =
//Bit 23:16 reg_nr4_cm_blue_gain_par1 // unsigned , default = 255 par1 for blue gain, dft =
//Bit 15: 8 reg_nr4_cm_blue_gain_par2 // unsigned , default = 4 par2 for blue gain, dft =
//Bit 7: 0 reg_nr4_cm_blue_gain_par3 // unsigned , default = 32 par3 for blue gain, dft =
#define NR4_MCNR_BLUE_GAIN_PAR1 (0x2dca)
#define P_NR4_MCNR_BLUE_GAIN_PAR1 (volatile unsigned int *)((0x2dca << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23:16 reg_nr4_cm_blue_gain_par4 // unsigned , default = 32 par4 for blue gain, dft =
//Bit 15: 8 reg_nr4_cm_blue_gain_par5 // unsigned , default = 32 par5 for blue gain, dft =
//Bit 7: 0 reg_nr4_cm_blue_gain_par6 // unsigned , default = 0 par6 for blue gain, dft =
#define NR4_MCNR_CM_BLUE_CLIP0 (0x2dcb)
#define P_NR4_MCNR_CM_BLUE_CLIP0 (volatile unsigned int *)((0x2dcb << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23:16 reg_nr4_cm_blue_luma_min // unsigned , default = 40 luma min for blue color matching, dft =
//Bit 15: 8 reserved
//Bit 7: 0 reg_nr4_cm_blue_luma_max // unsigned , default = 180 luma max for blue color matching, dft =
#define NR4_MCNR_CM_BLUE_CLIP1 (0x2dcc)
#define P_NR4_MCNR_CM_BLUE_CLIP1 (volatile unsigned int *)((0x2dcc << 2) + 0xff900000)
//Bit 31:24 reg_nr4_cm_blue_sat_min // unsigned , default = 5 saturation min for blue color matching, dft =
//Bit 23:16 reg_nr4_cm_blue_sat_max // unsigned , default = 255 saturation max for blue color matching, dft =
//Bit 15: 8 reg_nr4_cm_blue_var_min // unsigned , default = 0 variation min for blue color matching, dft =
//Bit 7: 0 reg_nr4_cm_blue_var_max // unsigned , default = 12 variation max for blue color matching, dft =
#define NR4_MCNR_GREEN_CENT (0x2dcd)
#define P_NR4_MCNR_GREEN_CENT (volatile unsigned int *)((0x2dcd << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23:16 reg_nr4_cm_green_centx // unsigned , default = 114 x coordinate of center of green, dft =
//Bit 15: 8 reserved
//Bit 7: 0 reg_nr4_cm_green_centy // unsigned , default = 126 y coordinate of center of green, dft =
#define NR4_MCNR_GREEN_GAIN_PAR0 (0x2dce)
#define P_NR4_MCNR_GREEN_GAIN_PAR0 (volatile unsigned int *)((0x2dce << 2) + 0xff900000)
//Bit 31:24 reg_nr4_cm_green_gain_par0 // unsigned , default = 16 par0 for green gain, dft =
//Bit 23:16 reg_nr4_cm_green_gain_par1 // unsigned , default = 255 par1 for green gain, dft =
//Bit 15: 8 reg_nr4_cm_green_gain_par2 // unsigned , default = 255 par2 for green gain, dft =
//Bit 7: 0 reg_nr4_cm_green_gain_par3 // unsigned , default = 16 par3 for green gain, dft =
#define NR4_MCNR_GREEN_GAIN_PAR1 (0x2dcf)
#define P_NR4_MCNR_GREEN_GAIN_PAR1 (volatile unsigned int *)((0x2dcf << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23:16 reg_nr4_cm_green_gain_par4 // unsigned , default = 16 par4 for green gain, dft =
//Bit 15: 8 reg_nr4_cm_green_gain_par5 // unsigned , default = 128 par5 for green gain, dft =
//Bit 7: 0 reg_nr4_cm_green_gain_par6 // unsigned , default = 0 par6 for green gain, dft =
#define NR4_MCNR_GREEN_CLIP0 (0x2dd0)
#define P_NR4_MCNR_GREEN_CLIP0 (volatile unsigned int *)((0x2dd0 << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23:16 reg_nr4_cm_green_luma_min // unsigned , default = 40 luma min for green color matching, dft =
//Bit 15: 8 reserved
//Bit 7: 0 reg_nr4_cm_green_luma_max // unsigned , default = 160 luma max for green color matching, dft =
#define NR4_MCNR_GREEN_CLIP2 (0x2dd1)
#define P_NR4_MCNR_GREEN_CLIP2 (volatile unsigned int *)((0x2dd1 << 2) + 0xff900000)
//Bit 31:24 reg_nr4_cm_green_sat_min // unsigned , default = 4 saturation min for green color matching, dft =
//Bit 23:16 reg_nr4_cm_green_sat_max // unsigned , default = 255 saturation max for green color matching, dft =
//Bit 15: 8 reg_nr4_cm_green_var_min // unsigned , default = 0 variation min for green color matching, dft =
//Bit 7: 0 reg_nr4_cm_green_var_max // unsigned , default = 12 variation max for green color matching, dft =
#define NR4_MCNR_SKIN_CENT (0x2dd2)
#define P_NR4_MCNR_SKIN_CENT (volatile unsigned int *)((0x2dd2 << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23:16 reg_nr4_cm_skin_centx // unsigned , default = 112 x coordinate of center of skin tone, dft =
//Bit 15: 8 reserved
//Bit 7: 0 reg_nr4_cm_skin_centy // unsigned , default = 149 y coordinate of center of skin tone, dft =
#define NR4_MCNR_SKIN_GAIN_PAR0 (0x2dd3)
#define P_NR4_MCNR_SKIN_GAIN_PAR0 (volatile unsigned int *)((0x2dd3 << 2) + 0xff900000)
//Bit 31:24 reg_nr4_cm_skin_gain_par0 // unsigned , default = 20 par0 for skin gain, dft =
//Bit 23:16 reg_nr4_cm_skin_gain_par1 // unsigned , default = 255 par1 for skin gain, dft =
//Bit 15: 8 reg_nr4_cm_skin_gain_par2 // unsigned , default = 255 par2 for skin gain, dft =
//Bit 7: 0 reg_nr4_cm_skin_gain_par3 // unsigned , default = 8 par3 for skin gain, dft =
#define NR4_MCNR_SKIN_GAIN_PAR1 (0x2dd4)
#define P_NR4_MCNR_SKIN_GAIN_PAR1 (volatile unsigned int *)((0x2dd4 << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23:16 reg_nr4_cm_skin_gain_par4 // unsigned , default = 8 par4 for skin gain, dft =
//Bit 15: 8 reg_nr4_cm_skin_gain_par5 // unsigned , default = 128 par5 for skin gain, dft =
//Bit 7: 0 reg_nr4_cm_skin_gain_par6 // unsigned , default = 0 par6 for skin gain, dft =
#define NR4_MCNR_SKIN_CLIP0 (0x2dd5)
#define P_NR4_MCNR_SKIN_CLIP0 (volatile unsigned int *)((0x2dd5 << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23:16 reg_nr4_cm_skin_luma_min // unsigned , default = 40 luma min for skin color matching, dft =
//Bit 15: 8 reserved
//Bit 7: 0 reg_nr4_cm_skin_luma_max // unsigned , default = 180 luma max for skin color matching, dft =
#define NR4_MCNR_SKIN_CLIP1 (0x2dd6)
#define P_NR4_MCNR_SKIN_CLIP1 (volatile unsigned int *)((0x2dd6 << 2) + 0xff900000)
//Bit 31:24 reg_nr4_cm_skin_sat_min // unsigned , default = 5 saturation min for skin color matching, dft =
//Bit 23:16 reg_nr4_cm_skin_sat_max // unsigned , default = 255 saturation max for skin color matching, dft =
//Bit 15: 8 reg_nr4_cm_skin_var_min // unsigned , default = 0 variation min for skin color matching, dft =
//Bit 7: 0 reg_nr4_cm_skin_var_max // unsigned , default = 12 variation max for skin color matching, dft =
#define NR4_MCNR_ALP1_GLB_CTRL (0x2dd7)
#define P_NR4_MCNR_ALP1_GLB_CTRL (volatile unsigned int *)((0x2dd7 << 2) + 0xff900000)
//Bit 31 reg_nr4_alp1_glb_gain_en // unsigned , default = 0 alp1 adjust by global gain, dft = 1
//Bit 30:28 reg_nr4_alp1_glb_gain_lsft // unsigned , default = 6 alp1 left shift before combine with global gain
//Bit 27 reg_nr4_bet0_glb_gain_en // unsigned , default = 1 bet0 adjust by global gain, dft = 1
//Bit 26:24 reg_nr4_bet0_glb_gain_lsft // unsigned , default = 6 bet1 left shift before combine with global gain
//Bit 23 reg_nr4_bet1_glb_gain_en // unsigned , default = 0 bet1 adjust by global gain, dft = 0
//Bit 22:20 reg_nr4_bet1_glb_gain_lsft // unsigned , default = 6 bet1 left shift before combine with global gain
//Bit 19 reg_nr4_bet2_glb_gain_en // unsigned , default = 1 bet2 adjust by global gain, dft = 1
//Bit 18:16 reg_nr4_bet2_glb_gain_lsft // unsigned , default = 6 bet2 left shift before combine with global gain
//Bit 15 reg_nr4_alp1_ac_en // unsigned , default = 1 alp1 adjust by ac, dft = 1
//Bit 14:12 reg_nr4_alp1_ac_lsft // unsigned , default = 5 alp1 left shift before combine with ac
//Bit 11 reg_nr4_bet0_ac_en // unsigned , default = 0 bet0 adjust by ac, dft = 1
//Bit 10: 8 reg_nr4_bet0_ac_lsft // unsigned , default = 5 bet0 left shift before combine with ac
//Bit 7 reg_nr4_bet1_ac_en // unsigned , default = 0 bet1 adjust by ac, dft = 1
//Bit 6: 4 reg_nr4_bet1_ac_lsft // unsigned , default = 5 bet1 left shift before combine with ac
//Bit 3 reg_nr4_bet2_ac_en // unsigned , default = 0 bet2 adjust by ac, dft = 1
//Bit 2: 0 reg_nr4_bet2_ac_lsft // unsigned , default = 5 bet2 left shift before combine with ac
#define NR4_MCNR_DC2NORM_LUT0 (0x2dd8)
#define P_NR4_MCNR_DC2NORM_LUT0 (volatile unsigned int *)((0x2dd8 << 2) + 0xff900000)
//Bit 31:29 reserved
//Bit 28:24 reg_nr4_dc2norm_lut0 // unsigned , default = 16 normal 0~16, dc to norm for alpha adjust, dft =
//Bit 23:21 reserved
//Bit 20:16 reg_nr4_dc2norm_lut1 // unsigned , default = 16 normal 0~16, dc to norm for alpha adjust, dft =
//Bit 15:13 reserved
//Bit 12: 8 reg_nr4_dc2norm_lut2 // unsigned , default = 16 normal 0~16, dc to norm for alpha adjust, dft =
//Bit 7: 5 reserved
//Bit 4: 0 reg_nr4_dc2norm_lut3 // unsigned , default = 16 normal 0~16, dc to norm for alpha adjust, dft =
#define NR4_MCNR_DC2NORM_LUT1 (0x2dd9)
#define P_NR4_MCNR_DC2NORM_LUT1 (volatile unsigned int *)((0x2dd9 << 2) + 0xff900000)
//Bit 31:29 reserved
//Bit 28:24 reg_nr4_dc2norm_lut4 // unsigned , default = 16 normal 0~16, dc to norm for alpha adjust, dft =
//Bit 23:21 reserved
//Bit 20:16 reg_nr4_dc2norm_lut5 // unsigned , default = 16 normal 0~16, dc to norm for alpha adjust, dft =
//Bit 15:13 reserved
//Bit 12: 8 reg_nr4_dc2norm_lut6 // unsigned , default = 16 normal 0~16, dc to norm for alpha adjust, dft =
//Bit 7: 5 reserved
//Bit 4: 0 reg_nr4_dc2norm_lut7 // unsigned , default = 12 normal 0~16, dc to norm for alpha adjust, dft =
#define NR4_MCNR_DC2NORM_LUT2 (0x2dda)
#define P_NR4_MCNR_DC2NORM_LUT2 (volatile unsigned int *)((0x2dda << 2) + 0xff900000)
//Bit 31: 5 reserved
//Bit 4: 0 reg_nr4_dc2norm_lut8 // unsigned , default = 8 normal 0~16, dc to norm for alpha adjust, dft =
#define NR4_MCNR_AC2NORM_LUT0 (0x2ddb)
#define P_NR4_MCNR_AC2NORM_LUT0 (volatile unsigned int *)((0x2ddb << 2) + 0xff900000)
//Bit 31:29 reserved
//Bit 28:24 reg_nr4_ac2norm_lut0 // unsigned , default = 2 normal 0~16, ac to norm for alpha adjust, dft =
//Bit 23:21 reserved
//Bit 20:16 reg_nr4_ac2norm_lut1 // unsigned , default = 16 normal 0~16, ac to norm for alpha adjust, dft =
//Bit 15:13 reserved
//Bit 12: 8 reg_nr4_ac2norm_lut2 // unsigned , default = 16 normal 0~16, ac to norm for alpha adjust, dft =
//Bit 7: 5 reserved
//Bit 4: 0 reg_nr4_ac2norm_lut3 // unsigned , default = 12 normal 0~16, ac to norm for alpha adjust, dft =
#define NR4_MCNR_AC2NORM_LUT1 (0x2ddc)
#define P_NR4_MCNR_AC2NORM_LUT1 (volatile unsigned int *)((0x2ddc << 2) + 0xff900000)
//Bit 31:29 reserved
//Bit 28:24 reg_nr4_ac2norm_lut4 // unsigned , default = 4 normal 0~16, ac to norm for alpha adjust, dft =
//Bit 23:21 reserved
//Bit 20:16 reg_nr4_ac2norm_lut5 // unsigned , default = 2 normal 0~16, ac to norm for alpha adjust, dft =
//Bit 15:13 reserved
//Bit 12: 8 reg_nr4_ac2norm_lut6 // unsigned , default = 1 normal 0~16, ac to norm for alpha adjust, dft =
//Bit 7: 5 reserved
//Bit 4: 0 reg_nr4_ac2norm_lut7 // unsigned , default = 1 normal 0~16, ac to norm for alpha adjust, dft =
#define NR4_MCNR_AC2NORM_LUT2 (0x2ddd)
#define P_NR4_MCNR_AC2NORM_LUT2 (volatile unsigned int *)((0x2ddd << 2) + 0xff900000)
//Bit 31: 5 reserved
//Bit 4: 0 reg_nr4_ac2norm_lut8 // unsigned , default = 1 normal 0~16, ac to norm for alpha adjust, dft =
#define NR4_MCNR_SAD2ALP0_LUT0 (0x2dde)
#define P_NR4_MCNR_SAD2ALP0_LUT0 (volatile unsigned int *)((0x2dde << 2) + 0xff900000)
//Bit 31:24 reg_nr4_sad2alp0_lut0 // unsigned , default = 255 sad to alpha0 for temporal pixel value, dft = 255
//Bit 23:16 reg_nr4_sad2alp0_lut1 // unsigned , default = 252 sad to alpha0 for temporal pixel value, dft = 252
//Bit 15: 8 reg_nr4_sad2alp0_lut2 // unsigned , default = 249 sad to alpha0 for temporal pixel value, dft = 249
//Bit 7: 0 reg_nr4_sad2alp0_lut3 // unsigned , default = 235 sad to alpha0 for temporal pixel value, dft = 70
#define NR4_MCNR_SAD2ALP0_LUT1 (0x2ddf)
#define P_NR4_MCNR_SAD2ALP0_LUT1 (volatile unsigned int *)((0x2ddf << 2) + 0xff900000)
//Bit 31:24 reg_nr4_sad2alp0_lut4 // unsigned , default = 185 sad to alpha0 for temporal pixel value, dft = 12
//Bit 23:16 reg_nr4_sad2alp0_lut5 // unsigned , default = 70 sad to alpha0 for temporal pixel value, dft = 1
//Bit 15: 8 reg_nr4_sad2alp0_lut6 // unsigned , default = 14 sad to alpha0 for temporal pixel value, dft = 0
//Bit 7: 0 reg_nr4_sad2alp0_lut7 // unsigned , default = 1 sad to alpha0 for temporal pixel value, dft = 0
#define NR4_MCNR_SAD2ALP0_LUT2 (0x2de0)
#define P_NR4_MCNR_SAD2ALP0_LUT2 (volatile unsigned int *)((0x2de0 << 2) + 0xff900000)
//Bit 31:24 reg_nr4_sad2alp0_lut8 // unsigned , default = 0 sad to alpha0 for temporal pixel value, dft = 0
//Bit 23:16 reg_nr4_sad2alp0_lut9 // unsigned , default = 0 sad to alpha0 for temporal pixel value, dft = 0
//Bit 15: 8 reg_nr4_sad2alp0_lut10 // unsigned , default = 0 sad to alpha0 for temporal pixel value, dft = 0
//Bit 7: 0 reg_nr4_sad2alp0_lut11 // unsigned , default = 0 sad to alpha0 for temporal pixel value, dft = 0
#define NR4_MCNR_SAD2ALP0_LUT3 (0x2de1)
#define P_NR4_MCNR_SAD2ALP0_LUT3 (volatile unsigned int *)((0x2de1 << 2) + 0xff900000)
//Bit 31:24 reg_nr4_sad2alp0_lut12 // unsigned , default = 0 sad to alpha0 for temporal pixel value, dft = 0
//Bit 23:16 reg_nr4_sad2alp0_lut13 // unsigned , default = 0 sad to alpha0 for temporal pixel value, dft = 0
//Bit 15: 8 reg_nr4_sad2alp0_lut14 // unsigned , default = 0 sad to alpha0 for temporal pixel value, dft = 0
//Bit 7: 0 reg_nr4_sad2alp0_lut15 // unsigned , default = 0 sad to alpha0 for temporal pixel value, dft = 0
#define NR4_MCNR_SAD2ALP1_LUT0 (0x2de2)
#define P_NR4_MCNR_SAD2ALP1_LUT0 (volatile unsigned int *)((0x2de2 << 2) + 0xff900000)
//Bit 31:24 reg_nr4_sad2alp1_lut0 // unsigned , default = 192 sad to alpha1 for temporal blending, dft = 128
//Bit 23:16 reg_nr4_sad2alp1_lut1 // unsigned , default = 160 sad to alpha1 for temporal blending, dft = 128
//Bit 15: 8 reg_nr4_sad2alp1_lut2 // unsigned , default = 128 sad to alpha1 for temporal blending, dft = 128
//Bit 7: 0 reg_nr4_sad2alp1_lut3 // unsigned , default = 96 sad to alpha1 for temporal blending, dft = 64
#define NR4_MCNR_SAD2ALP1_LUT1 (0x2de3)
#define P_NR4_MCNR_SAD2ALP1_LUT1 (volatile unsigned int *)((0x2de3 << 2) + 0xff900000)
//Bit 31:24 reg_nr4_sad2alp1_lut4 // unsigned , default = 64 sad to alpha1 for temporal blending, dft = 64
//Bit 23:16 reg_nr4_sad2alp1_lut5 // unsigned , default = 32 sad to alpha1 for temporal blending, dft = 128
//Bit 15: 8 reg_nr4_sad2alp1_lut6 // unsigned , default = 16 sad to alpha1 for temporal blending, dft = 255
//Bit 7: 0 reg_nr4_sad2alp1_lut7 // unsigned , default = 8 sad to alpha1 for temporal blending, dft = 255
#define NR4_MCNR_SAD2ALP1_LUT2 (0x2de4)
#define P_NR4_MCNR_SAD2ALP1_LUT2 (volatile unsigned int *)((0x2de4 << 2) + 0xff900000)
//Bit 31:24 reg_nr4_sad2alp1_lut8 // unsigned , default = 4 sad to alpha1 for temporal blending, dft = 255
//Bit 23:16 reg_nr4_sad2alp1_lut9 // unsigned , default = 0 sad to alpha1 for temporal blending, dft = 255
//Bit 15: 8 reg_nr4_sad2alp1_lut10 // unsigned , default = 16 sad to alpha1 for temporal blending, dft = 255
//Bit 7: 0 reg_nr4_sad2alp1_lut11 // unsigned , default = 64 sad to alpha1 for temporal blending, dft = 255
#define NR4_MCNR_SAD2ALP1_LUT3 (0x2de5)
#define P_NR4_MCNR_SAD2ALP1_LUT3 (volatile unsigned int *)((0x2de5 << 2) + 0xff900000)
//Bit 31:24 reg_nr4_sad2alp1_lut12 // unsigned , default = 96 sad to alpha1 for temporal blending, dft = 255
//Bit 23:16 reg_nr4_sad2alp1_lut13 // unsigned , default = 224 sad to alpha1 for temporal blending, dft = 255
//Bit 15: 8 reg_nr4_sad2alp1_lut14 // unsigned , default = 255 sad to alpha1 for temporal blending, dft = 255
//Bit 7: 0 reg_nr4_sad2alp1_lut15 // unsigned , default = 255 sad to alpha1 for temporal blending, dft = 255
#define NR4_MCNR_SAD2BET0_LUT0 (0x2de6)
#define P_NR4_MCNR_SAD2BET0_LUT0 (volatile unsigned int *)((0x2de6 << 2) + 0xff900000)
//Bit 31:24 reg_nr4_sad2bet0_lut0 // unsigned , default = 0 sad to beta0 for tnr and mcnr blending, dft = 0
//Bit 23:16 reg_nr4_sad2bet0_lut1 // unsigned , default = 2 sad to beta0 for tnr and mcnr blending, dft = 2
//Bit 15: 8 reg_nr4_sad2bet0_lut2 // unsigned , default = 4 sad to beta0 for tnr and mcnr blending, dft = 4
//Bit 7: 0 reg_nr4_sad2bet0_lut3 // unsigned , default = 8 sad to beta0 for tnr and mcnr blending, dft = 8
#define NR4_MCNR_SAD2BET0_LUT1 (0x2de7)
#define P_NR4_MCNR_SAD2BET0_LUT1 (volatile unsigned int *)((0x2de7 << 2) + 0xff900000)
//Bit 31:24 reg_nr4_sad2bet0_lut4 // unsigned , default = 16 sad to beta0 for tnr and mcnr blending, dft = 16
//Bit 23:16 reg_nr4_sad2bet0_lut5 // unsigned , default = 32 sad to beta0 for tnr and mcnr blending, dft = 32
//Bit 15: 8 reg_nr4_sad2bet0_lut6 // unsigned , default = 48 sad to beta0 for tnr and mcnr blending, dft = 48
//Bit 7: 0 reg_nr4_sad2bet0_lut7 // unsigned , default = 64 sad to beta0 for tnr and mcnr blending, dft = 64
#define NR4_MCNR_SAD2BET0_LUT2 (0x2de8)
#define P_NR4_MCNR_SAD2BET0_LUT2 (volatile unsigned int *)((0x2de8 << 2) + 0xff900000)
//Bit 31:24 reg_nr4_sad2bet0_lut8 // unsigned , default = 80 sad to beta0 for tnr and mcnr blending, dft = 80
//Bit 23:16 reg_nr4_sad2bet0_lut9 // unsigned , default = 96 sad to beta0 for tnr and mcnr blending, dft = 96
//Bit 15: 8 reg_nr4_sad2bet0_lut10 // unsigned , default = 112 sad to beta0 for tnr and mcnr blending, dft = 112
//Bit 7: 0 reg_nr4_sad2bet0_lut11 // unsigned , default = 128 sad to beta0 for tnr and mcnr blending, dft = 128
#define NR4_MCNR_SAD2BET0_LUT3 (0x2de9)
#define P_NR4_MCNR_SAD2BET0_LUT3 (volatile unsigned int *)((0x2de9 << 2) + 0xff900000)
//Bit 31:24 reg_nr4_sad2bet0_lut12 // unsigned , default = 196 sad to beta0 for tnr and mcnr blending, dft = 160
//Bit 23:16 reg_nr4_sad2bet0_lut13 // unsigned , default = 224 sad to beta0 for tnr and mcnr blending, dft = 192
//Bit 15: 8 reg_nr4_sad2bet0_lut14 // unsigned , default = 255 sad to beta0 for tnr and mcnr blending, dft = 224
//Bit 7: 0 reg_nr4_sad2bet0_lut15 // unsigned , default = 255 sad to beta0 for tnr and mcnr blending, dft = 255
#define NR4_MCNR_SAD2BET1_LUT0 (0x2dea)
#define P_NR4_MCNR_SAD2BET1_LUT0 (volatile unsigned int *)((0x2dea << 2) + 0xff900000)
//Bit 31:24 reg_nr4_sad2bet1_lut0 // unsigned , default = 0 sad to beta1 for deghost blending, dft = 0
//Bit 23:16 reg_nr4_sad2bet1_lut1 // unsigned , default = 2 sad to beta1 for deghost blending, dft = 2
//Bit 15: 8 reg_nr4_sad2bet1_lut2 // unsigned , default = 4 sad to beta1 for deghost blending, dft = 4
//Bit 7: 0 reg_nr4_sad2bet1_lut3 // unsigned , default = 8 sad to beta1 for deghost blending, dft = 8
#define NR4_MCNR_SAD2BET1_LUT1 (0x2deb)
#define P_NR4_MCNR_SAD2BET1_LUT1 (volatile unsigned int *)((0x2deb << 2) + 0xff900000)
//Bit 31:24 reg_nr4_sad2bet1_lut4 // unsigned , default = 16 sad to beta1 for deghost blending, dft = 16
//Bit 23:16 reg_nr4_sad2bet1_lut5 // unsigned , default = 32 sad to beta1 for deghost blending, dft = 32
//Bit 15: 8 reg_nr4_sad2bet1_lut6 // unsigned , default = 48 sad to beta1 for deghost blending, dft = 48
//Bit 7: 0 reg_nr4_sad2bet1_lut7 // unsigned , default = 64 sad to beta1 for deghost blending, dft = 64
#define NR4_MCNR_SAD2BET1_LUT2 (0x2dec)
#define P_NR4_MCNR_SAD2BET1_LUT2 (volatile unsigned int *)((0x2dec << 2) + 0xff900000)
//Bit 31:24 reg_nr4_sad2bet1_lut8 // unsigned , default = 80 sad to beta1 for deghost blending, dft = 80
//Bit 23:16 reg_nr4_sad2bet1_lut9 // unsigned , default = 96 sad to beta1 for deghost blending, dft = 96
//Bit 15: 8 reg_nr4_sad2bet1_lut10 // unsigned , default = 112 sad to beta1 for deghost blending, dft = 112
//Bit 7: 0 reg_nr4_sad2bet1_lut11 // unsigned , default = 128 sad to beta1 for deghost blending, dft = 128
#define NR4_MCNR_SAD2BET1_LUT3 (0x2ded)
#define P_NR4_MCNR_SAD2BET1_LUT3 (volatile unsigned int *)((0x2ded << 2) + 0xff900000)
//Bit 31:24 reg_nr4_sad2bet1_lut12 // unsigned , default = 160 sad to beta1 for deghost blending, dft = 160
//Bit 23:16 reg_nr4_sad2bet1_lut13 // unsigned , default = 192 sad to beta1 for deghost blending, dft = 192
//Bit 15: 8 reg_nr4_sad2bet1_lut14 // unsigned , default = 224 sad to beta1 for deghost blending, dft = 224
//Bit 7: 0 reg_nr4_sad2bet1_lut15 // unsigned , default = 255 sad to beta1 for deghost blending, dft = 255
#define NR4_MCNR_SAD2BET2_LUT0 (0x2dee)
#define P_NR4_MCNR_SAD2BET2_LUT0 (volatile unsigned int *)((0x2dee << 2) + 0xff900000)
//Bit 31:24 reg_nr4_sad2bet2_lut0 // unsigned , default = 0 sad to beta2 for snr and mcnr blending, dft = 0
//Bit 23:16 reg_nr4_sad2bet2_lut1 // unsigned , default = 1 sad to beta2 for snr and mcnr blending, dft = 2
//Bit 15: 8 reg_nr4_sad2bet2_lut2 // unsigned , default = 2 sad to beta2 for snr and mcnr blending, dft = 4
//Bit 7: 0 reg_nr4_sad2bet2_lut3 // unsigned , default = 4 sad to beta2 for snr and mcnr blending, dft = 8
#define NR4_MCNR_SAD2BET2_LUT1 (0x2def)
#define P_NR4_MCNR_SAD2BET2_LUT1 (volatile unsigned int *)((0x2def << 2) + 0xff900000)
//Bit 31:24 reg_nr4_sad2bet2_lut4 // unsigned , default = 8 sad to beta2 for snr and mcnr blending, dft = 16
//Bit 23:16 reg_nr4_sad2bet2_lut5 // unsigned , default = 16 sad to beta2 for snr and mcnr blending, dft = 32
//Bit 15: 8 reg_nr4_sad2bet2_lut6 // unsigned , default = 32 sad to beta2 for snr and mcnr blending, dft = 48
//Bit 7: 0 reg_nr4_sad2bet2_lut7 // unsigned , default = 48 sad to beta2 for snr and mcnr blending, dft = 64
#define NR4_MCNR_SAD2BET2_LUT2 (0x2df0)
#define P_NR4_MCNR_SAD2BET2_LUT2 (volatile unsigned int *)((0x2df0 << 2) + 0xff900000)
//Bit 31:24 reg_nr4_sad2bet2_lut8 // unsigned , default = 64 sad to beta2 for snr and mcnr blending, dft = 80
//Bit 23:16 reg_nr4_sad2bet2_lut9 // unsigned , default = 80 sad to beta2 for snr and mcnr blending, dft = 96
//Bit 15: 8 reg_nr4_sad2bet2_lut10 // unsigned , default = 96 sad to beta2 for snr and mcnr blending, dft = 112
//Bit 7: 0 reg_nr4_sad2bet2_lut11 // unsigned , default = 112 sad to beta2 for snr and mcnr blending, dft = 128
#define NR4_MCNR_SAD2BET2_LUT3 (0x2df1)
#define P_NR4_MCNR_SAD2BET2_LUT3 (volatile unsigned int *)((0x2df1 << 2) + 0xff900000)
//Bit 31:24 reg_nr4_sad2bet2_lut12 // unsigned , default = 128 sad to beta2 for snr and mcnr blending, dft = 160
//Bit 23:16 reg_nr4_sad2bet2_lut13 // unsigned , default = 160 sad to beta2 for snr and mcnr blending, dft = 192
//Bit 15: 8 reg_nr4_sad2bet2_lut14 // unsigned , default = 224 sad to beta2 for snr and mcnr blending, dft = 224
//Bit 7: 0 reg_nr4_sad2bet2_lut15 // unsigned , default = 255 sad to beta2 for snr and mcnr blending, dft = 255
#define NR4_MCNR_RO_U_SUM (0x2df2)
#define P_NR4_MCNR_RO_U_SUM (volatile unsigned int *)((0x2df2 << 2) + 0xff900000)
//Bit 31: 0 ro_nr4_u_sum // unsigned , default = 0 sum of U of current field/frame
#define NR4_MCNR_RO_V_SUM (0x2df3)
#define P_NR4_MCNR_RO_V_SUM (volatile unsigned int *)((0x2df3 << 2) + 0xff900000)
//Bit 31: 0 ro_nr4_v_sum // unsigned , default = 0 sum of V of current field/frame
#define NR4_MCNR_RO_GRDU_SUM (0x2df4)
#define P_NR4_MCNR_RO_GRDU_SUM (volatile unsigned int *)((0x2df4 << 2) + 0xff900000)
//Bit 31: 0 ro_nr4_grdu_sum // unsigned , default = 0 sum of gradient U of current field/frame
#define NR4_MCNR_RO_GRDV_SUM (0x2df5)
#define P_NR4_MCNR_RO_GRDV_SUM (volatile unsigned int *)((0x2df5 << 2) + 0xff900000)
//Bit 31: 0 ro_nr4_grdv_sum // unsigned , default = 0 sum of gradient V of current field/frame
#define NR4_TOP_CTRL (0x2dff)
#define P_NR4_TOP_CTRL (volatile unsigned int *)((0x2dff << 2) + 0xff900000)
//Bit 31:20 reg_gclk_ctrl // unsigned , default = 0
//Bit 19 reserved
//Bit 18 reg_nr4_mcnr_en // unsigned , default = 1 ncnr enable or bypass, dft = 1
//Bit 17 reg_nr2_en // unsigned , default = 1 nr2 enable, dft = 1
//Bit 16 reg_nr4_en // unsigned , default = 1 nr4 enable, dft = 1
//Bit 15 reg_nr2_proc_en // unsigned , default = 1
//Bit 14 reg_det3d_en // unsigned , default = 1
//Bit 13 di_polar_en // unsigned , default = 1 do does not have in C
//Bit 12 reg_cfr_enable // unsigned , default = 0 0-disable; 1:enable
//Bit 11: 9 reg_3dnr_enable_l // unsigned , default = 7 b0: Y b1:U b2:V
//Bit 8: 6 reg_3dnr_enable_r // unsigned , default = 7 b0: Y b1:U b2:V
//Bit 5 reg_nr4_lnbuf_ctrl // unsigned , default = 1 line buf ctrl for nr4: 0, 3lines, 1, 5lines, dft = 1
//Bit 4 reg_nr4_snr2_en // unsigned , default = 0 snr2 enable, 0: use old snr, 1: use new snr2, dft = 1
//Bit 3 reg_nr4_scene_change_en // unsigned , default = 1 enable scene change proc. dft = 1
//Bit 2 nr2_sw_en // unsigned , default = 1 do does not have in C
//Bit 1 reserved
//Bit 0 reg_nr4_scene_change_flg // unsigned , default = 0 flags for scene change, dft = 0
//========== nr4_mcnr_regs register end ==========//
// synopsys translate_off
// synopsys translate_on
//
// Closing file: nr4_regs.h
//
// synopsys translate_off
// synopsys translate_on
//
// Closing file: dnr_regs.h
//
//========================================================================
// VI_HIST_SPL register (16'h2e00 - 16'h2eff)
//========================================================================
//`define VI_HIST_SPL_VCBUS_BASE 8'h2e
//
// Reading file: vi_hist_spl_reg.h
//
// synopsys translate_off
// synopsys translate_on
// ----------------------------
// VI_HIST_SPL 0x2e
// ----------------------------
// -----------------------------------------------
// CBUS_BASE: VI_HIST_SPL_VCBUS_BASE = 0x2e
// -----------------------------------------------
//BIT 14: 34bin only, 0&255 and other 32bins
//Bit 13:11 hist_din_sel, 00: from vdin0 dout, 1: from vdin1, 2: from nr dout, 3: di output, 4: vpp output, 5: vd1_din, 6: vd2_din, 7:osd1_dout
//Bit 10:8 hist_din_comp_mux, mux of [29:22], [19:12], [9:2] for hist detect
//Bit 7:5 hist_dnlp_low the real pixels in each bins got by VI_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 VI_HIST_CTRL (0x2e00)
#define P_VI_HIST_CTRL (volatile unsigned int *)((0x2e00 << 2) + 0xff900000)
//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 VI_HIST_H_START_END (0x2e01)
#define P_VI_HIST_H_START_END (volatile unsigned int *)((0x2e01 << 2) + 0xff900000)
//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 VI_HIST_V_START_END (0x2e02)
#define P_VI_HIST_V_START_END (volatile unsigned int *)((0x2e02 << 2) + 0xff900000)
//Bit 15:8 hist_max maximum value
//Bit 7:0 hist_min minimum value
//read only
#define VI_HIST_MAX_MIN (0x2e03)
#define P_VI_HIST_MAX_MIN (volatile unsigned int *)((0x2e03 << 2) + 0xff900000)
//Bit 31:0 hist_spl_rd
//counts for the total luma value
//read only
#define VI_HIST_SPL_VAL (0x2e04)
#define P_VI_HIST_SPL_VAL (volatile unsigned int *)((0x2e04 << 2) + 0xff900000)
//Bit 21:0 hist_spl_pixel_count
//counts for the total calculated pixels
//read only
#define VI_HIST_SPL_PIX_CNT (0x2e05)
#define P_VI_HIST_SPL_PIX_CNT (volatile unsigned int *)((0x2e05 << 2) + 0xff900000)
//Bit 31:0 hist_chroma_sum
//counts for the total chroma value
//read only
#define VI_HIST_CHROMA_SUM (0x2e06)
#define P_VI_HIST_CHROMA_SUM (volatile unsigned int *)((0x2e06 << 2) + 0xff900000)
//Bit 31:16 higher hist bin
//Bit 15:0 lower hist bin
//0-255 are splited to 64 bins evenly, and VI_DNLP_HISTXX
//are the statistic number of pixels that within each bin.
//VI_DNLP_HIST00[15:0] counts for the first bin
//VI_DNLP_HIST00[31:16] counts for the second bin
//VI_DNLP_HIST01[15:0] counts for the third bin
//VI_DNLP_HIST01[31:16] counts for the fourth bin
//etc...
//read only
#define VI_DNLP_HIST00 (0x2e07)
#define P_VI_DNLP_HIST00 (volatile unsigned int *)((0x2e07 << 2) + 0xff900000)
#define VI_DNLP_HIST01 (0x2e08)
#define P_VI_DNLP_HIST01 (volatile unsigned int *)((0x2e08 << 2) + 0xff900000)
#define VI_DNLP_HIST02 (0x2e09)
#define P_VI_DNLP_HIST02 (volatile unsigned int *)((0x2e09 << 2) + 0xff900000)
#define VI_DNLP_HIST03 (0x2e0a)
#define P_VI_DNLP_HIST03 (volatile unsigned int *)((0x2e0a << 2) + 0xff900000)
#define VI_DNLP_HIST04 (0x2e0b)
#define P_VI_DNLP_HIST04 (volatile unsigned int *)((0x2e0b << 2) + 0xff900000)
#define VI_DNLP_HIST05 (0x2e0c)
#define P_VI_DNLP_HIST05 (volatile unsigned int *)((0x2e0c << 2) + 0xff900000)
#define VI_DNLP_HIST06 (0x2e0d)
#define P_VI_DNLP_HIST06 (volatile unsigned int *)((0x2e0d << 2) + 0xff900000)
#define VI_DNLP_HIST07 (0x2e0e)
#define P_VI_DNLP_HIST07 (volatile unsigned int *)((0x2e0e << 2) + 0xff900000)
#define VI_DNLP_HIST08 (0x2e0f)
#define P_VI_DNLP_HIST08 (volatile unsigned int *)((0x2e0f << 2) + 0xff900000)
#define VI_DNLP_HIST09 (0x2e10)
#define P_VI_DNLP_HIST09 (volatile unsigned int *)((0x2e10 << 2) + 0xff900000)
#define VI_DNLP_HIST10 (0x2e11)
#define P_VI_DNLP_HIST10 (volatile unsigned int *)((0x2e11 << 2) + 0xff900000)
#define VI_DNLP_HIST11 (0x2e12)
#define P_VI_DNLP_HIST11 (volatile unsigned int *)((0x2e12 << 2) + 0xff900000)
#define VI_DNLP_HIST12 (0x2e13)
#define P_VI_DNLP_HIST12 (volatile unsigned int *)((0x2e13 << 2) + 0xff900000)
#define VI_DNLP_HIST13 (0x2e14)
#define P_VI_DNLP_HIST13 (volatile unsigned int *)((0x2e14 << 2) + 0xff900000)
#define VI_DNLP_HIST14 (0x2e15)
#define P_VI_DNLP_HIST14 (volatile unsigned int *)((0x2e15 << 2) + 0xff900000)
#define VI_DNLP_HIST15 (0x2e16)
#define P_VI_DNLP_HIST15 (volatile unsigned int *)((0x2e16 << 2) + 0xff900000)
#define VI_DNLP_HIST16 (0x2e17)
#define P_VI_DNLP_HIST16 (volatile unsigned int *)((0x2e17 << 2) + 0xff900000)
#define VI_DNLP_HIST17 (0x2e18)
#define P_VI_DNLP_HIST17 (volatile unsigned int *)((0x2e18 << 2) + 0xff900000)
#define VI_DNLP_HIST18 (0x2e19)
#define P_VI_DNLP_HIST18 (volatile unsigned int *)((0x2e19 << 2) + 0xff900000)
#define VI_DNLP_HIST19 (0x2e1a)
#define P_VI_DNLP_HIST19 (volatile unsigned int *)((0x2e1a << 2) + 0xff900000)
#define VI_DNLP_HIST20 (0x2e1b)
#define P_VI_DNLP_HIST20 (volatile unsigned int *)((0x2e1b << 2) + 0xff900000)
#define VI_DNLP_HIST21 (0x2e1c)
#define P_VI_DNLP_HIST21 (volatile unsigned int *)((0x2e1c << 2) + 0xff900000)
#define VI_DNLP_HIST22 (0x2e1d)
#define P_VI_DNLP_HIST22 (volatile unsigned int *)((0x2e1d << 2) + 0xff900000)
#define VI_DNLP_HIST23 (0x2e1e)
#define P_VI_DNLP_HIST23 (volatile unsigned int *)((0x2e1e << 2) + 0xff900000)
#define VI_DNLP_HIST24 (0x2e1f)
#define P_VI_DNLP_HIST24 (volatile unsigned int *)((0x2e1f << 2) + 0xff900000)
#define VI_DNLP_HIST25 (0x2e20)
#define P_VI_DNLP_HIST25 (volatile unsigned int *)((0x2e20 << 2) + 0xff900000)
#define VI_DNLP_HIST26 (0x2e21)
#define P_VI_DNLP_HIST26 (volatile unsigned int *)((0x2e21 << 2) + 0xff900000)
#define VI_DNLP_HIST27 (0x2e22)
#define P_VI_DNLP_HIST27 (volatile unsigned int *)((0x2e22 << 2) + 0xff900000)
#define VI_DNLP_HIST28 (0x2e23)
#define P_VI_DNLP_HIST28 (volatile unsigned int *)((0x2e23 << 2) + 0xff900000)
#define VI_DNLP_HIST29 (0x2e24)
#define P_VI_DNLP_HIST29 (volatile unsigned int *)((0x2e24 << 2) + 0xff900000)
#define VI_DNLP_HIST30 (0x2e25)
#define P_VI_DNLP_HIST30 (volatile unsigned int *)((0x2e25 << 2) + 0xff900000)
#define VI_DNLP_HIST31 (0x2e26)
#define P_VI_DNLP_HIST31 (volatile unsigned int *)((0x2e26 << 2) + 0xff900000)
#define VI_DNLP_HIST32 (0x2e27)
#define P_VI_DNLP_HIST32 (volatile unsigned int *)((0x2e27 << 2) + 0xff900000)
//Bit 28:16 hist_pic_height active input data window height
//Bit 12:0 hist_pic_width active input data window width
#define VI_HIST_PIC_SIZE (0x2e28)
#define P_VI_HIST_PIC_SIZE (volatile unsigned int *)((0x2e28 << 2) + 0xff900000)
//Bit 15:8 hist_pix_white_value: >= this value will be white pixel
//Bit 7:0 hist_pix_black_value: <= this value will be black pixel
#define VI_HIST_BLACK_WHITE_VALUE (0x2e29)
#define P_VI_HIST_BLACK_WHITE_VALUE (volatile unsigned int *)((0x2e29 << 2) + 0xff900000)
#define VI_HIST_GCLK_CTRL (0x2e2a)
#define P_VI_HIST_GCLK_CTRL (volatile unsigned int *)((0x2e2a << 2) + 0xff900000)
// synopsys translate_off
// synopsys translate_on
//
// Closing file: vi_hist_spl_reg.h
//
//`define MCDI_VCBUS_BASE 8'h2f
//
// Reading file: mcdi_regs.h
//
// synopsys translate_off
// synopsys translate_on
// -----------------------------------------------
// CBUS_BASE: MCDI_VCBUS_BASE = 0x2f
// -----------------------------------------------
////=================================================================////
//// memc di core 0
////=================================================================////
#define MCDI_HV_SIZEIN (0x2f00)
#define P_MCDI_HV_SIZEIN (volatile unsigned int *)((0x2f00 << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28:16, reg_mcdi_hsize image horizontal size (number of cols) default=1024
//Bit 15:13, reserved
//Bit 12: 0, reg_mcdi_vsize image vertical size (number of rows) default=1024
#define MCDI_HV_BLKSIZEIN (0x2f01)
#define P_MCDI_HV_BLKSIZEIN (volatile unsigned int *)((0x2f01 << 2) + 0xff900000)
//Bit 31, reg_mcdi_vrev default = 0
//Bit 30, reg_mcdi_hrev default = 0
//Bit 29:28, reserved
//Bit 27:16, reg_mcdi_blkhsize image horizontal blk size (number of cols) default=1024
//Bit 15:13, reserved
//Bit 11: 0, reg_mcdi_blkvsize image vertical blk size (number of rows) default=1024
#define MCDI_BLKTOTAL (0x2f02)
#define P_MCDI_BLKTOTAL (volatile unsigned int *)((0x2f02 << 2) + 0xff900000)
//Bit 31:24, reserved
//Bit 23: 0, reg_mcdi_blktotal
#define MCDI_MOTINEN (0x2f03)
#define P_MCDI_MOTINEN (volatile unsigned int *)((0x2f03 << 2) + 0xff900000)
//Bit 31: 2, reserved
//Bit 1, reg_mcdi_motionrefen. enable motion refinement of MA, default = 1
//Bit 0, reg_mcdi_motionparadoxen. enable motion paradox detection, default = 1
#define MCDI_CTRL_MODE (0x2f04)
#define P_MCDI_CTRL_MODE (volatile unsigned int *)((0x2f04 << 2) + 0xff900000)
//Bit 31:28, reserved
//Bit 27:26, reg_mcdi_lmvlocken 0:disable, 1: use max Lmv, 2: use no-zero Lmv, lmv lock enable mode, default = 2
//Bit 25, reg_mcdi_reldetrptchken
// 0: unable; 1: enable, enable repeat pattern check (not repeat mv detection) in rel det part, default = 1
//Bit 24, reg_mcdi_reldetgmvpd22chken
// 0: unable; 1: enable, enable pull-down 22 mode check in gmv lock mode for rel det, default = 1
//Bit 23, reg_mcdi_pd22chken
// 0: unable; 1: enable, enable pull-down 22 mode check (lock) function, default = 1
//Bit 22, reg_mcdi_reldetlpfen
// 0: unable; 1: enable, enable det value lpf, default = 1
//Bit 21, reg_mcdi_reldetlmvpd22chken
// 0: unable; 1: enable, enable pull-down 22 mode check in lmv lock mode for rel det, default = 1
//Bit 20, reg_mcdi_reldetlmvdifchken
// 0: unable; 1: enable, enable lmv dif check in lmv lock mode for rel det, default = 1
//Bit 19, reg_mcdi_reldetgmvdifchken
// 0: unable; 1: enable, enable lmv dif check in lmv lock mode for rel det, default = 1
//Bit 18, reg_mcdi_reldetpd22chken
// 0: unable; 1: enable, enable pull-down 22 mode check for rel det refinement, default = 1
//Bit 17, reg_mcdi_reldetfrqchken
// 0: unable; 1: enable, enable mv frequency check in rel det, default = 1
//Bit 16, reg_mcdi_qmeen
// 0: unable; 1: enable, enable quarter motion estimation, defautl = 1
//Bit 15, reg_mcdi_refrptmven
// 0: unable; 1: enable, use repeat mv in refinement, default = 1
//Bit 14, reg_mcdi_refgmven
// 0: unable; 1: enable, use gmv in refinement, default = 1
//Bit 13, reg_mcdi_reflmven
// 0: unable; 1: enable, use lmvs in refinement, default = 1
//Bit 12, reg_mcdi_refnmven
// 0: unable; 1: enable, use neighoring mvs in refinement, default = 1
//Bit 11, reserved
//Bit 10, reg_mcdi_referrfrqchken
// 0: unable; 1: enable, enable mv frquency check while finding min err in ref, default = 1
//Bit 9, reg_mcdi_refen
// 0: unable; 1: enable, enable mv refinement, default = 1
//Bit 8, reg_mcdi_horlineen
// 0: unable; 1: enable,enable horizontal lines detection by sad map, default = 1
//Bit 7, reg_mcdi_highvertfrqdeten
// 0: unable; 1: enable, enable high vertical frequency pattern detection, default = 1
//Bit 6, reg_mcdi_gmvlocken
// 0: unable; 1: enable, enable gmv lock mode, default = 1
//Bit 5, reg_mcdi_rptmven
// 0: unable; 1: enable, enable repeat pattern detection, default = 1
//Bit 4, reg_mcdi_gmven
// 0: unable; 1: enable, enable global motion estimation, default = 1
//Bit 3, reg_mcdi_lmven
// 0: unable; 1: enable, enable line mv estimation for hme, default = 1
//Bit 2, reg_mcdi_chkedgeen
// 0: unable; 1: enable, enable check edge function, default = 1
//Bit 1, reg_mcdi_txtdeten
// 0: unable; 1: enable, enable texture detection, default = 1
//Bit 0, reg_mcdi_memcen
// 0: unable; 1: enable, enable of memc di, default = 1
#define MCDI_UNI_MVDST (0x2f05)
#define P_MCDI_UNI_MVDST (volatile unsigned int *)((0x2f05 << 2) + 0xff900000)
//Bit 31:20, reserved
//Bit 19:17, reg_mcdi_unimvdstabsseg0 segment0 for uni-mv abs, default = 1
//Bit 16:12, reg_mcdi_unimvdstabsseg1 segment1 for uni-mv abs, default = 15
//Bit 11: 8, reg_mcdi_unimvdstabsdifgain0 2/2, gain0 of uni-mv abs dif for segment0, normalized 2 to '1', default = 2
//Bit 7: 5, reg_mcdi_unimvdstabsdifgain1 2/2, gain1 of uni-mv abs dif for segment1, normalized 2 to '1', default = 2
//Bit 4: 2, reg_mcdi_unimvdstabsdifgain2 2/2, gain2 of uni-mv abs dif beyond segment1, normalized 2 to '1', default = 2
//Bit 1: 0, reg_mcdi_unimvdstsgnshft shift for neighboring distance of uni-mv, default = 0
#define MCDI_BI_MVDST (0x2f06)
#define P_MCDI_BI_MVDST (volatile unsigned int *)((0x2f06 << 2) + 0xff900000)
//Bit 31:20, reserved
//Bit 19:17, reg_mcdi_bimvdstabsseg0 segment0 for bi-mv abs, default = 1
//Bit 16:12, reg_mcdi_bimvdstabsseg1 segment1 for bi-mv abs, default = 9
//Bit 11: 8, reg_mcdi_bimvdstabsdifgain0 6/2, gain0 of bi-mv abs dif for segment0, normalized 2 to '1', default = 6
//Bit 7: 5, reg_mcdi_bimvdstabsdifgain1 3/2, gain1 of bi-mvabs dif for segment1, normalized 2 to '1', default = 3
//Bit 4: 2, reg_mcdi_bimvdstabsdifgain2 2/2, gain2 of bi-mvabs dif beyond segment1, normalized 2 to '1', default = 2
//Bit 1: 0, reg_mcdi_bimvdstsgnshft shift for neighboring distance of bi-mv, default = 0
#define MCDI_SAD_GAIN (0x2f07)
#define P_MCDI_SAD_GAIN (volatile unsigned int *)((0x2f07 << 2) + 0xff900000)
//Bit 31:19, reserved
//Bit 18:17, reg_mcdi_unisadcorepxlgain uni-sad core pixels gain, default = 3
//Bit 16, reg_mcdi_unisadcorepxlnormen enable uni-sad core pixels normalization, default = 0
//Bit 15:11, reserved
//Bit 10: 9, reg_mcdi_bisadcorepxlgain bi-sad core pixels gain, default = 3
//Bit 8, reg_mcdi_bisadcorepxlnormen enable bi-sad core pixels normalization, default = 1
//Bit 7: 3, reserved
//Bit 2: 1, reg_mcdi_biqsadcorepxlgain bi-qsad core pixels gain, default = 3
//Bit 0, reg_mcdi_biqsadcorepxlnormen enable bi-qsad core pixels normalization, default = 1
#define MCDI_TXT_THD (0x2f08)
#define P_MCDI_TXT_THD (volatile unsigned int *)((0x2f08 << 2) + 0xff900000)
//Bit 31:24, reserved
//Bit 23:16, reg_mcdi_txtminmaxdifthd, min max dif threshold (>=) for texture detection, default = 24
//Bit 15: 8, reg_mcdi_txtmeandifthd, mean dif threshold (<) for texture detection, default = 9
//Bit 7: 3, reserved
//Bit 2: 0, reg_mcdi_txtdetthd, texture detecting threshold, 0~4, default = 2
#define MCDI_FLT_MODESEL (0x2f09)
#define P_MCDI_FLT_MODESEL (volatile unsigned int *)((0x2f09 << 2) + 0xff900000)
//Bit 31 reserved
//Bit 30:28, reg_mcdi_flthorlineselmode mode for horizontal line detecting flat calculation, default = 1, same as below
//Bit 27 reserved
//Bit 26:24, reg_mcdi_fltgmvselmode mode for gmv flat calculation, default = 4, same as below
//Bit 23, reserved
//Bit 22:20, reg_mcdi_fltsadselmode mode for sad flat calculation, default = 2, same as below
//Bit 19, reserved
//Bit 18:16, reg_mcdi_fltbadwselmode mode for badw flat calculation, default = 3, same as below
//Bit 15, reserved
//Bit 14:12, reg_mcdi_fltrptmvselmode mode for repeat mv flat calculation, default = 4, same as below
//Bit 11, reserved
//Bit 10: 8, reg_mcdi_fltbadrelselmode mode for bad rel flat calculation, default = 4, same as below
//Bit 7, reserved
//Bit 6: 4, reg_mcdi_fltcolcfdselmode mode for col cfd flat calculation, default = 2, same as below
//Bit 3, reserved
//Bit 2: 0, reg_mcdi_fltpd22chkselmode mode for pd22 check flat calculation, default = 2, # 0:cur dif h, 1: cur dif v, 2: pre dif h, 3: pre dif v, 4: cur flt, 5: pre flt, 6: cur+pre, 7: max all(cur,pre)
#define MCDI_CHK_EDGE_THD (0x2f0a)
#define P_MCDI_CHK_EDGE_THD (volatile unsigned int *)((0x2f0a << 2) + 0xff900000)
//Bit 23:28, reserved.
//Bit 27:24, reg_mcdi_chkedgedifsadthd. thd (<=) for sad dif check, 0~8, default = 1
//Bit 23:16, reserved.
//Bit 15:12, reg_mcdi_chkedgemaxedgethd. max drt of edge, default = 15
//Bit 11: 8, reg_mcdi_chkedgeminedgethd. min drt of edge, default = 2
//Bit 7, reserved.
//Bit 6: 0, reg_mcdi_chkedgevdifthd. thd for vertical dif in check edge, default = 14
#define MCDI_CHK_EDGE_GAIN_OFFST (0x2f0b)
#define P_MCDI_CHK_EDGE_GAIN_OFFST (volatile unsigned int *)((0x2f0b << 2) + 0xff900000)
//Bit 31:24, reserved.
//Bit 23:20, reg_mcdi_chkedgedifthd1. thd1 for edge dif check (<=), default = 4
//Bit 19:16, reg_mcdi_chkedgedifthd0. thd0 for edge dif check (>=), default = 15
//Bit :15, reserved.
//Bit 14:10, reg_mcdi_chkedgechklen. total check length for edge check, 1~24 (>0), default = 24
//Bit 9: 8, reg_mcdi_chkedgeedgesel. final edge select mode, 0: original start edge, 1: lpf start edge, 2: orignal start+end edge, 3: lpf start+end edge, default = 1
//Bit 7: 3, reg_mcdi_chkedgesaddstgain. distance gain for sad calc while getting edges, default = 4
//Bit 2, reg_mcdi_chkedgechkmode. edge used in check mode, 0: original edge, 1: lpf edge, defautl = 1
//Bit 1, reg_mcdi_chkedgestartedge. edge mode for start edge, 0: original edge, 1: lpf edge, defautl = 0
//Bit 0, reg_mcdi_chkedgeedgelpf. edge lpf mode, 0:[0,2,4,2,0], 1:[1,2,2,2,1], default = 0
#define MCDI_LMV_RT (0x2f0c)
#define P_MCDI_LMV_RT (volatile unsigned int *)((0x2f0c << 2) + 0xff900000)
//BIt 31:15, reserved
//Bit 14:12, reg_mcdi_lmvvalidmode valid mode for lmv calc., 100b: use char det, 010b: use flt, 001b: use hori flg
//Bit 11:10, reg_mcdi_lmvgainmvmode four modes of mv selection for lmv weight calucluation, default = 1
// 0: cur(x-3), lst(x-1,x,x+1); 1: cur(x-4,x-3), lst(x,x+1); 2: cur(x-5,x-4,x-3), lst(x-1,x,x+1,x+2,x+3); 3: cur(x-6,x-5,x-4,x-3), lst(x-1,x,x+1,x+2);
//Bit 9, reg_mcdi_lmvinitmode initial lmvs at first row of input field, 0: intial value = 0; 1: inital = 32 (invalid), default = 0
//Bit 8, reserved
//Bit 7: 4, reg_mcdi_lmvrt0 ratio of max mv, default = 5
//Bit 3: 0, reg_mcdi_lmvrt1 ratio of second max mv, default = 5
#define MCDI_LMV_GAINTHD (0x2f0d)
#define P_MCDI_LMV_GAINTHD (volatile unsigned int *)((0x2f0d << 2) + 0xff900000)
//Bit 31:24, reg_mcdi_lmvvxmaxgain max gain of lmv weight, default = 96
//Bit 23, reserved
//Bit 22:20, reg_mcdi_lmvdifthd0 dif threshold 0 (<) for small lmv, default = 1
//Bit 19:17, reg_mcdi_lmvdifthd1 dif threshold 1 (<) for median lmv, default = 2
//Bit 16:14, reg_mcdi_lmvdifthd2 dif threshold 2 (<) for large lmv, default = 3
//Bit 13: 8, reg_mcdi_lmvnumlmt least/limit number of (total number - max0), default = 20
//Bit 7: 0, reg_mcdi_lmvfltthd flt cnt thd (<) for lmv, default = 9
#define MCDI_RPTMV_THD0 (0x2f0e)
#define P_MCDI_RPTMV_THD0 (volatile unsigned int *)((0x2f0e << 2) + 0xff900000)
//Bit 31:25, reg_mcdi_rptmvslpthd2 slope thd (>=) between i and i+3/i-3 (i+4/i-4), default = 64
//Bit 24:20, reg_mcdi_rptmvslpthd1 slope thd (>=) between i and i+2/i-2, default = 4
//Bit 19:10, reg_mcdi_rptmvampthd2 amplitude thd (>=) between max and min, when count cycles, default = 300
//Bit 9: 0, reg_mcdi_rptmvampthd1 amplitude thd (>=) between average of max and min, default = 400
#define MCDI_RPTMV_THD1 (0x2f0f)
#define P_MCDI_RPTMV_THD1 (volatile unsigned int *)((0x2f0f << 2) + 0xff900000)
//Bit 31:28, reserved
//Bit 27:25, reg_mcdi_rptmvcyccntthd thd (>=) of total cycles count, default = 2
//Bit 24:21, reg_mcdi_rptmvcycdifthd dif thd (<) of cycles length, default = 3
//Bit 20:18, reg_mcdi_rptmvcycvldthd thd (>) of valid cycles number, default = 1
//Bit 17:15, reg_mcdi_rptmvhalfcycminthd min length thd (>=) of half cycle, default = 2
//Bit 14:11, reg_mcdi_rptmvhalfcycdifthd neighboring half cycle length dif thd (<), default = 5
//Bit 10: 8, reg_mcdi_rptmvminmaxcntthd least number of valid max and min, default = 2
//Bit 7: 5, reg_mcdi_rptmvcycminthd min length thd (>=) of cycles, default = 2
//Bit 4: 0, reg_mcdi_rptmvcycmaxthd max length thd (<) of cycles, default = 17
#define MCDI_RPTMV_THD2 (0x2f10)
#define P_MCDI_RPTMV_THD2 (volatile unsigned int *)((0x2f10 << 2) + 0xff900000)
//Bit 31:24, reserved
//Bit 23:16, reg_mcdi_rptmvhdifthd0 higher hdif thd (>=) (vertical edge) for rpt detection, default = 8
//Bit 15: 8, reg_mcdi_rptmvhdifthd1 hdif thd (>=) (slope edge) for rpt detection, default = 4
//Bit 7: 0, reg_mcdi_rptmvvdifthd vdif thd (>=) (slope edge) for rpt detection, default = 1
#define MCDI_RPTMV_SAD (0x2f11)
#define P_MCDI_RPTMV_SAD (volatile unsigned int *)((0x2f11 << 2) + 0xff900000)
//Bit 31:26, reserved
//Bit 25:16, reg_mcdi_rptmvsaddifthdgain 7x3x(16/16), gain for sad dif thd in rpt mv detection, 0~672, normalized 16 as '1', default = 336
//Bit 15:10, reserved
//Bit 9: 0, reg_mcdi_rptmvsaddifthdoffst offset for sad dif thd in rpt mv detection, -512~511, default = 16
#define MCDI_RPTMV_FLG (0x2f12)
#define P_MCDI_RPTMV_FLG (volatile unsigned int *)((0x2f12 << 2) + 0xff900000)
//Bit 31:18, reserved
//Bit 17:16, reg_mcdi_rptmvmode select mode of mvs for repeat motion estimation, 0: hmv, 1: qmv/2, 2 or 3: qmv/4, default = 2
//Bit 15: 8, reg_mcdi_rptmvflgcntthd thd (>=) of min count number for rptmv of whole field, for rptmv estimation, default = 64
//Bit 7: 5, reserved
//Bit 4: 0, reg_mcdi_rptmvflgcntrt 4/32, ratio for repeat mv flag count, normalized 32 as '1', set 31 to 32,
#define MCDI_RPTMV_GAIN (0x2f13)
#define P_MCDI_RPTMV_GAIN (volatile unsigned int *)((0x2f13 << 2) + 0xff900000)
//Bit 31:24, reg_mcdi_rptmvlftgain up repeat mv gain for hme, default = 96
//Bit 23:16, reg_mcdi_rptmvuplftgain up left repeat mv gain for hme, default = 32
//Bit 15: 8, reg_mcdi_rptmvupgain up repeat mv gain for hme, default = 64
//Bit 7: 0, reg_mcdi_rptmvuprightgain up right repeat mv gain for hme, default = 32
#define MCDI_GMV_RT (0x2f14)
#define P_MCDI_GMV_RT (volatile unsigned int *)((0x2f14 << 2) + 0xff900000)
//Bit 31, reserved
//Bit 30:24, reg_mcdi_gmvmtnrt0 ratio 0 for motion senario, set 127 to 128, normalized 128 as '1', default =32
//Bit 23, reserved
//Bit 22:16, reg_mcdi_gmvmtnrt1 ratio 1 for motion senario, set 127 to 128, normalized 128 as '1', default = 56
//Bit 15, reserved
//Bit 14: 8, reg_mcdi_gmvstlrt0 ratio 0 for still senario, set 127 to 128, normalized 128 as '1', default = 56
//Bit 7, reserved
//Bit 6: 0, reg_mcdi_gmvstlrt1 ratio 1 for still senario, set 127 to 128, normalized 128 as '1', default = 80
#define MCDI_GMV_GAIN (0x2f15)
#define P_MCDI_GMV_GAIN (volatile unsigned int *)((0x2f15 << 2) + 0xff900000)
//Bit 31:25, reg_mcdi_gmvzeromvlockrt0 ratio 0 for locking zero mv, set 127 to 128, normalized 128 as '1', default = 100
//Bit 24:18, reg_mcdi_gmvzeromvlockrt1 ratio 1 for locking zero mv, set 127 to 128, normalized 128 as '1', default = 112
//Bit 17:16, reg_mcdi_gmvvalidmode valid mode for gmv calc., 10b: use flt, 01b: use hori flg, default = 3
//Bit 15: 8, reg_mcdi_gmvvxgain gmv's vx gain when gmv locked for hme, default = 0
//Bit 7: 0, reg_mcdi_gmvfltthd flat thd (<) for gmv calc. default = 3
#define MCDI_HOR_SADOFST (0x2f16)
#define P_MCDI_HOR_SADOFST (volatile unsigned int *)((0x2f16 << 2) + 0xff900000)
//Bit 31:25, reserved
//Bit 24:16, reg_mcdi_horsaddifthdgain 21*1/8, gain/divisor for sad dif threshold in hor line detection, normalized 8 as '1', default = 21
//Bit 15: 8, reg_mcdi_horsaddifthdoffst offset for sad dif threshold in hor line detection, -128~127, default = 0
//Bit 7: 0, reg_mcdi_horvdifthd threshold (>=) of vertical dif of next block for horizontal line detection, default = 24
#define MCDI_REF_MV_NUM (0x2f17)
#define P_MCDI_REF_MV_NUM (volatile unsigned int *)((0x2f17 << 2) + 0xff900000)
//Bit 31: 2, reserved
//Bit 1: 0, reg_mcdi_refmcmode. motion compensated mode used in refinement, 0: pre, 1: next, 2: (pre+next)/2, default = 0
#define MCDI_REF_BADW_THD_GAIN (0x2f18)
#define P_MCDI_REF_BADW_THD_GAIN (volatile unsigned int *)((0x2f18 << 2) + 0xff900000)
//Bit 31:28, reserved
//Bit 27:24, reg_mcdi_refbadwcnt2gain. gain for badwv count num==3, default = 6
//Bit 23:20, reg_mcdi_refbadwcnt1gain. gain for badwv count num==2, default = 3
//Bit 19:16, reg_mcdi_refbadwcnt0gain. gain for badwv count num==1, default = 1
//Bit 15:12, reg_mcdi_refbadwthd3. threshold 3 for detect badweave with largest average luma, default = 4
//Bit 11: 8, reg_mcdi_refbadwthd2. threshold 2 for detect badweave with third smallest average luma, default = 3
//Bit 7: 4, reg_mcdi_refbadwthd1. threshold 1 for detect badweave with second smallest average luma, default = 2
//Bit 3: 0, reg_mcdi_refbadwthd0. threshold 0 for detect badweave with smallest average luma, default = 1
#define MCDI_REF_BADW_SUM_GAIN (0x2f19)
#define P_MCDI_REF_BADW_SUM_GAIN (volatile unsigned int *)((0x2f19 << 2) + 0xff900000)
//Bit 31:13, reserved
//Bit 12: 8, reg_mcdi_refbadwsumgain0. sum gain for r channel, 0~16, default = 8
//Bit 7: 5, reserved
//Bit 4, reg_mcdi_refbadwcalcmode. mode for badw calculation, 0:sum, 1:max, default = 0
//Bit 3: 0, reserved
#define MCDI_REF_BS_THD_GAIN (0x2f1a)
#define P_MCDI_REF_BS_THD_GAIN (volatile unsigned int *)((0x2f1a << 2) + 0xff900000)
//Bit 31:28, reg_mcdi_refbsudgain1. up & down block stregth gain1, normalized to 8 as '1', default = 2
//Bit 27:24, reg_mcdi_refbsudgain0. up & down block stregth gain0, normalized to 8 as '1', default = 4
//Bit 23:19, reserved
//Bit 18:16, reg_mcdi_refbslftgain. left block strength gain, default = 0
//Bit 15:13, reserved
//Bit 12: 8, reg_mcdi_refbsthd1. threshold 1 for detect block stregth in refinment, default = 16
//Bit 7: 5, reserved
//Bit 4: 0, reg_mcdi_refbsthd0. threshold 0 for detect block stregth in refinment, default = 8
#define MCDI_REF_ERR_GAIN0 (0x2f1b)
#define P_MCDI_REF_ERR_GAIN0 (volatile unsigned int *)((0x2f1b << 2) + 0xff900000)
//Bit 31, reserved
//Bit 30:24, reg_mcdi_referrnbrdstgain. neighoring mv distances gain for err calc. in ref, normalized to 8 as '1', default = 48
//Bit 23:20, reserved
//Bit 19:16, reg_mcdi_referrbsgain. bs gain for err calc. in ref, normalized to 8 as '1', default = 4
//Bit 15, reserved
//Bit 14: 8, reg_mcdi_referrbadwgain. badw gain for err calc. in ref, normalized to 8 as '1', default = 64
//Bit 7: 4, reserved
//Bit 3: 0, reg_mcdi_referrsadgain. sad gain for err calc. in ref, normalized to 8 as '1', default = 4
#define MCDI_REF_ERR_GAIN1 (0x2f1c)
#define P_MCDI_REF_ERR_GAIN1 (volatile unsigned int *)((0x2f1c << 2) + 0xff900000)
//Bit 31:20, reserved
//Bit 19:16, reg_mcdi_referrchkedgegain. check edge gain for err calc. in ref, normalized to 8 as '1', default = 4
//Bit 15:12, reserved
//Bit 11: 8, reg_mcdi_referrlmvgain. (locked) lmv gain for err calc. in ref, normalized to 8 as '1', default = 0
//Bit 7: 4, reserved
//Bit 3: 0, reg_mcdi_referrgmvgain. (locked) gmv gain for err calc. in ref, normalized to 8 as '1', default = 0
#define MCDI_REF_ERR_FRQ_CHK (0x2f1d)
#define P_MCDI_REF_ERR_FRQ_CHK (volatile unsigned int *)((0x2f1d << 2) + 0xff900000)
//Bit 31:28, reserved
//Bit 27:24, reg_mcdi_referrfrqgain. gain for mv frquency, normalized to 4 as '1', default = 10
//Bit 23:21, reserved
//Bit 20:16, reg_mcdi_referrfrqmax. max gain for mv frquency check, default = 31
//Bit 15, reserved
//Bit 14:12, reg_mcdi_ref_errfrqmvdifthd2. mv dif threshold 2 (<) for mv frquency check, default = 3
//Bit 11, reserved
//Bit 10: 8, reg_mcdi_ref_errfrqmvdifthd1. mv dif threshold 1 (<) for mv frquency check, default = 2
//Bit 7, reserved
//Bit 6: 4, reg_mcdi_ref_errfrqmvdifthd0. mv dif threshold 0 (<) for mv frquency check, default = 1
//Bit 3: 0, reserved
#define MCDI_QME_LPF_MSK (0x2f1e)
#define P_MCDI_QME_LPF_MSK (volatile unsigned int *)((0x2f1e << 2) + 0xff900000)
//Bit 31:28, reserved
//Bit 27:24, reg_mcdi_qmechkedgelpfmsk0. lpf mask0 for chk edge in qme, 0~8, msk1 = (8-msk0), normalized to 8 as '1', default = 7
//Bit 23:20, reserved
//Bit 19:16, reg_mcdi_qmebslpfmsk0. lpf mask0 for bs in qme, 0~8, msk1 = (8-msk0), normalized to 8 as '1', default = 7
//Bit 15:12, reserved
//Bit 11: 8, reg_mcdi_qmebadwlpfmsk0. lpf mask0 for badw in qme, 0~8, msk1 = (8-msk0), normalized to 8 as '1', default = 7
//Bit 7: 4, reserved
//Bit 3: 0, reg_mcdi_qmesadlpfmsk0. lpf mask0 for sad in qme, 0~8, msk1 = (8-msk0), normalized to 8 as '1', default = 7
#define MCDI_REL_DIF_THD_02 (0x2f1f)
#define P_MCDI_REL_DIF_THD_02 (volatile unsigned int *)((0x2f1f << 2) + 0xff900000)
//Bit 31:24, reserved.
//Bit 23:16, reg_mcdi_reldifthd2. thd (<) for (hdif+vdif), default = 9
//Bit 15: 8, reg_mcdi_reldifthd1. thd (<) for (vdif), default = 5
//Bit 7: 0, reg_mcdi_reldifthd0. thd (>=) for (hdif-vdif), default = 48
#define MCDI_REL_DIF_THD_34 (0x2f20)
#define P_MCDI_REL_DIF_THD_34 (volatile unsigned int *)((0x2f20 << 2) + 0xff900000)
//Bit 31:16, reserved.
//Bit 15: 8, reg_mcdi_reldifthd4. thd (<) for (hdif), default = 255
//Bit 7: 0, reg_mcdi_reldifthd3. thd (>=) for (vdif-hdif), default = 48
#define MCDI_REL_BADW_GAIN_OFFST_01 (0x2f21)
#define P_MCDI_REL_BADW_GAIN_OFFST_01 (volatile unsigned int *)((0x2f21 << 2) + 0xff900000)
//Bit 31:24, reg_mcdi_relbadwoffst1. offset for badw adj, for flat block, -128~127, default = 0
//Bit 23:16, reg_mcdi_relbadwgain1. gain for badw adj, for flat block, default = 128
//Bit 15: 8, reg_mcdi_relbadwoffst0. offset for badw adj, for vertical block, -128~127, default = 0
//Bit 7: 0, reg_mcdi_relbadwgain0. gain for badw adj, for vertical block, default = 160
#define MCDI_REL_BADW_GAIN_OFFST_23 (0x2f22)
#define P_MCDI_REL_BADW_GAIN_OFFST_23 (volatile unsigned int *)((0x2f22 << 2) + 0xff900000)
//Bit 31:24, reg_mcdi_relbadwoffst3. offset for badw adj, for other block, -128~127, default = 0
//Bit 23:16, reg_mcdi_relbadwgain3. gain for badw adj, for other block, default = 48
//Bit 15: 8, reg_mcdi_relbadwoffst2. offset for badw adj, for horizontal block, -128~127, default = 0
//Bit 7: 0, reg_mcdi_relbadwgain2. gain for badw adj, for horizontal block, default = 48
#define MCDI_REL_BADW_THD_GAIN_OFFST (0x2f23)
#define P_MCDI_REL_BADW_THD_GAIN_OFFST (volatile unsigned int *)((0x2f23 << 2) + 0xff900000)
//Bit 31:23, reserved.
//Bit 22:16, reg_mcdi_relbadwoffst. offset for badw thd adj, -64~63, default = 0
//Bit 15: 8, reserved.
//Bit 7: 0, reg_mcdi_relbadwthdgain. gain0 for badw thd adj, normalized to 16 as '1', default = 16
#define MCDI_REL_BADW_THD_MIN_MAX (0x2f24)
#define P_MCDI_REL_BADW_THD_MIN_MAX (volatile unsigned int *)((0x2f24 << 2) + 0xff900000)
//Bit 31:18, reserved.
//Bit 17: 8, reg_mcdi_relbadwthdmax. max for badw thd adj, default = 256
//Bit 7: 0, reg_mcdi_relbadwthdmin. min for badw thd adj, default = 16
#define MCDI_REL_SAD_GAIN_OFFST_01 (0x2f25)
#define P_MCDI_REL_SAD_GAIN_OFFST_01 (volatile unsigned int *)((0x2f25 << 2) + 0xff900000)
//Bit 31:24, reg_mcdi_relsadoffst1. offset for sad adj, for flat block, -128~127, default = 0
//Bit 23:20, reserved.
//Bit 19:16, reg_mcdi_relsadgain1. gain for sad adj, for flat block, normalized to 8 as '1', default = 8
//Bit 15: 8, reg_mcdi_relsadoffst0. offset for sad adj, for vertical block, -128~127, default = 0
//Bit 7: 4, reserved.
//Bit 3: 0, reg_mcdi_relsadgain0. gain for sad adj, for vertical block, normalized to 8 as '1', default = 6
#define MCDI_REL_SAD_GAIN_OFFST_23 (0x2f26)
#define P_MCDI_REL_SAD_GAIN_OFFST_23 (volatile unsigned int *)((0x2f26 << 2) + 0xff900000)
//Bit 31:24, reg_mcdi_relsadoffst3. offset for sad adj, for other block, -128~127, default = 0
//Bit 23:20, reserved.
//Bit 19:16, reg_mcdi_relsadgain3. gain for sad adj, for other block, normalized to 8 as '1', default = 8
//Bit 15: 8, reg_mcdi_relsadoffst2. offset for sad adj, for horizontal block, -128~127, default = 0
//Bit 7: 4, reserved.
//Bit 3: 0, reg_mcdi_relsadgain2. gain for sad adj, for horizontal block, normalized to 8 as '1', default = 12
#define MCDI_REL_SAD_THD_GAIN_OFFST (0x2f27)
#define P_MCDI_REL_SAD_THD_GAIN_OFFST (volatile unsigned int *)((0x2f27 << 2) + 0xff900000)
//Bit 31:24, reserved.
//Bit 23:16, reg_mcdi_relsadoffst. offset for sad thd adj, -128~127, default = 0
//Bit 15:10, reserved.
//Bit 9: 0, reg_mcdi_relsadthdgain. gain for sad thd adj, 21*2/16, normalized to 16 as '1', default = 42
#define MCDI_REL_SAD_THD_MIN_MAX (0x2f28)
#define P_MCDI_REL_SAD_THD_MIN_MAX (volatile unsigned int *)((0x2f28 << 2) + 0xff900000)
//Bit 31:27, reserved.
//Bit 26:16, reg_mcdi_relsadthdmax. max for sad thd adj, 21*32, default = 672
//Bit 15: 9, reserved.
//Bit 8: 0, reg_mcdi_relsadthdmin. min for sad thd adj, 21*2, default = 42
#define MCDI_REL_DET_GAIN_00 (0x2f29)
#define P_MCDI_REL_DET_GAIN_00 (volatile unsigned int *)((0x2f29 << 2) + 0xff900000)
//Bit 31:21, reserved.
//Bit 20:16, reg_mcdi_reldetbsgain0. gain0 (gmv locked) for bs, for det. calc. normalized to 16 as '1', default = 8
//Bit 15:14, reserved.
//Bit 13: 8, reg_mcdi_reldetbadwgain0. gain0 (gmv locked) for badw, for det. calc. normalized to 16 as '1', default = 12
//Bit 7: 5, reserved.
//Bit 4: 0, reg_mcdi_reldetsadgain0. gain0 (gmv locked) for qsad, for det. calc. normalized to 16 as '1', default = 8
#define MCDI_REL_DET_GAIN_01 (0x2f2a)
#define P_MCDI_REL_DET_GAIN_01 (volatile unsigned int *)((0x2f2a << 2) + 0xff900000)
//Bit 31:14, reserved.
//Bit 12: 8, reg_mcdi_reldetchkedgegain0. gain0 (gmv locked) for chk_edge, for det. calc. normalized to 16 as '1', default = 2
//Bit 7, reserved.
//Bit 6: 0, reg_mcdi_reldetnbrdstgain0. gain0 (gmv locked) for neighoring dist, for det. calc. normalized to 16 as '1', default = 24
#define MCDI_REL_DET_GAIN_10 (0x2f2b)
#define P_MCDI_REL_DET_GAIN_10 (volatile unsigned int *)((0x2f2b << 2) + 0xff900000)
//Bit 31:21, reserved.
//Bit 20:16, reg_mcdi_reldetbsgain1. gain1 (lmv locked) for bs, for det. calc. normalized to 16 as '1', default = 0
//Bit 15:14, reserved.
//Bit 13: 8, reg_mcdi_reldetbadwgain1. gain1 (lmv locked) for badw, for det. calc. normalized to 16 as '1', default = 8
//Bit 7: 5, reserved.
//Bit 4: 0, reg_mcdi_reldetsadgain1. gain1 (lmv locked) for qsad, for det. calc. normalized to 16 as '1', default = 8
#define MCDI_REL_DET_GAIN_11 (0x2f2c)
#define P_MCDI_REL_DET_GAIN_11 (volatile unsigned int *)((0x2f2c << 2) + 0xff900000)
//Bit 31:14, reserved.
//Bit 12: 8, reg_mcdi_reldetchkedgegain1. gain1 (lmv locked) for chk_edge, for det. calc. normalized to 16 as '1', default = 0
//Bit 7, reserved.
//Bit 6: 0, reg_mcdi_reldetnbrdstgain1. gain1 (lmv locked) for neighoring dist, for det. calc. normalized to 16 as '1', default = 24
#define MCDI_REL_DET_GAIN_20 (0x2f2d)
#define P_MCDI_REL_DET_GAIN_20 (volatile unsigned int *)((0x2f2d << 2) + 0xff900000)
//Bit 31:21, reserved.
//Bit 20:16, reg_mcdi_reldetbsgain2. gain2 (no locked) for bs, for det. calc. normalized to 16 as '1', default = 12
//Bit 15:14, reserved.
//Bit 13: 8, reg_mcdi_reldetbadwgain2. gain2 (no locked) for badw, for det. calc. normalized to 16 as '1', default = 32
//Bit 7: 5, reserved.
//Bit 4: 0, reg_mcdi_reldetsadgain2. gain2 (no locked) for qsad, for det. calc. normalized to 16 as '1', default = 16
#define MCDI_REL_DET_GAIN_21 (0x2f2e)
#define P_MCDI_REL_DET_GAIN_21 (volatile unsigned int *)((0x2f2e << 2) + 0xff900000)
//Bit 31:26, reserved
//Bit 25:16, reg_mcdi_reldetoffst. offset for rel calculation, for det. calc. -512~511, default = 0
//Bit 15:14, reserved.
//Bit 12: 8, reg_mcdi_reldetchkedgegain2. gain2 (no locked) for chk_edge, for det. calc. normalized to 16 as '1', default = 10
//Bit 7, reserved.
//Bit 6: 0, reg_mcdi_reldetnbrdstgain2. gain2 (no locked) for neighoring dist, for det. calc. normalized to 16 as '1', default = 32
#define MCDI_REL_DET_GMV_DIF_CHK (0x2f2f)
#define P_MCDI_REL_DET_GMV_DIF_CHK (volatile unsigned int *)((0x2f2f << 2) + 0xff900000)
//Bit 31:24, reserved.
//Bit 23:16, reg_mcdi_reldetgmvfltthd. flat thd (>=) for gmv lock decision, default = 0
//Bit 15, reserved.
//Bit 14:12, reg_mcdi_reldetgmvdifthd. dif thd (>=) for current mv different from gmv for gmv dif check, actually used in Lmv lock check, default = 3
//Bit 11, reserved.
//Bit 10: 8, reg_mcdi_reldetgmvdifmin. min mv dif for gmv dif check, default = 1, note: dif between reg_mcdi_rel_det_gmv_dif_max and reg_mcdi_rel_det_gmv_dif_min should be; 0,1,3,7, not work for others
//Bit 7: 4, reg_mcdi_reldetgmvdifmax. max mv dif for gmv dif check, default = 4
//Bit 3: 1, reserved
//Bit 0, reg_mcdi_reldetgmvdifmvmode. mv mode used for gmv dif check, 0: use refmv, 1: use qmv, default = 0
#define MCDI_REL_DET_LMV_DIF_CHK (0x2f30)
#define P_MCDI_REL_DET_LMV_DIF_CHK (volatile unsigned int *)((0x2f30 << 2) + 0xff900000)
//Bit 31:24, reserved.
//Bit 23:16, reg_mcdi_reldetlmvfltthd. flat thd (>=) for lmv lock decision, default = 12
//Bit 15:14, reserved.
//Bit 13:12, reg_mcdi_reldetlmvlockchkmode. lmv lock check mode, 0:cur Lmv, 1: cur & (last | next), 2: last & cur & next Lmv, default = 1
//Bit 11, reserved.
//Bit 10: 8, reg_mcdi_reldetlmvdifmin. min mv dif for lmv dif check, default = 1, note: dif between reg_mcdi_rel_det_lmv_dif_max and reg_mcdi_rel_det_lmv_dif_min should be; 0,1,3,7, not work for others
//Bit 7: 4, reg_mcdi_reldetlmvdifmax. max mv dif for lmv dif check, default = 4
//Bit 3: 1, reserved
//Bit 0, reg_mcdi_reldetlmvdifmvmode. mv mode used for lmv dif check, 0: use refmv, 1: use qmv, default = 0
#define MCDI_REL_DET_FRQ_CHK (0x2f31)
#define P_MCDI_REL_DET_FRQ_CHK (volatile unsigned int *)((0x2f31 << 2) + 0xff900000)
//Bit 31:12, reserved.
//Bit 11: 8, reg_mcdi_reldetfrqgain. gain for frequency check, normalized to 4 as '1', default = 10
//Bit 7: 5, reserved
//Bit 4: 0, reg_mcdi_reldetfrqmax. max value for frequency check, default = 31
#define MCDI_REL_DET_PD22_CHK (0x2f32)
#define P_MCDI_REL_DET_PD22_CHK (volatile unsigned int *)((0x2f32 << 2) + 0xff900000)
//Bit 31:18, reserved.
//Bit 17: 8, reg_mcdi_reldetpd22chkoffst. offset for pd22 check happened, default = 512
//Bit 7: 5, reserved
//Bit 4: 0, reg_mcdi_reldetpd22chkgain. gain for pd22 check happened, normalized to 8 as '1', default = 12
#define MCDI_REL_DET_RPT_CHK_ROW (0x2f33)
#define P_MCDI_REL_DET_RPT_CHK_ROW (volatile unsigned int *)((0x2f33 << 2) + 0xff900000)
//Bit 31:27, reserved
//Bit 26:16, reg_mcdi_reldetrptchkendrow. end row (<) number for repeat check, default = 2047
//Bit 15:11, reserved
//Bit 10: 0, reg_mcdi_reldetrptchkstartrow. start row (>=) number for repeat check, default = 0
#define MCDI_REL_DET_RPT_CHK_GAIN_QMV (0x2f34)
#define P_MCDI_REL_DET_RPT_CHK_GAIN_QMV (volatile unsigned int *)((0x2f34 << 2) + 0xff900000)
//Bit 31:30, reserved
//Bit 29:24, reg_mcdi_reldetrptchkqmvmax. max thd (<) of abs qmv for repeat check, default = 15, note that quarter mv's range is -63~63
//Bit 23:22, reserved
//Bit 21:16, reg_mcdi_reldetrptchkqmvmin. min thd (>=) of abs qmv for repeat check, default = 10, note that quarter mv's range is -63~63
//Bit 15, reserved/
//Bit 14: 4, reg_mcdi_reldetrptchkoffst. offset for repeat check, default = 512
//Bit 3: 0, reg_mcdi_reldetrptchkgain. gain for repeat check, normalized to 8 as '1', default = 4
#define MCDI_REL_DET_RPT_CHK_THD_0 (0x2f35)
#define P_MCDI_REL_DET_RPT_CHK_THD_0 (volatile unsigned int *)((0x2f35 << 2) + 0xff900000)
//Bit 31:24, reserved
//Bit 23:16, reg_mcdi_reldetrptchkzerosadthd. zero sad thd (<) for repeat check, default = 255
//Bit 15:14, reserved.
//Bit 13: 8, reg_mcdi_reldetrptchkzerobadwthd. zero badw thd (>=) for repeat check, default = 16
//Bit 7: 4, reserved
//Bit 3: 0, reg_mcdi_reldetrptchkfrqdifthd. frequency dif thd (<) for repeat check, 0~10, default = 5
#define MCDI_REL_DET_RPT_CHK_THD_1 (0x2f36)
#define P_MCDI_REL_DET_RPT_CHK_THD_1 (volatile unsigned int *)((0x2f36 << 2) + 0xff900000)
//Bit 31:16, reserved
//Bit 15: 8, reg_mcdi_reldetrptchkvdifthd. vertical dif thd (<) for repeat check, default = 16
//Bit 7: 0, reg_mcdi_reldetrptchkhdifthd. horizontal dif thd (>=) for repeat check, default = 16
#define MCDI_REL_DET_LPF_DIF_THD (0x2f37)
#define P_MCDI_REL_DET_LPF_DIF_THD (volatile unsigned int *)((0x2f37 << 2) + 0xff900000)
//Bit 31:24, reg_mcdi_reldetlpfdifthd3. hdif thd (<) for lpf selection of horizontal block, default = 9
//Bit 23:16, reg_mcdi_reldetlpfdifthd2. vdif-hdif thd (>=) for lpf selection of horizontal block, default = 48
//Bit 15: 8, reg_mcdi_reldetlpfdifthd1. vdif thd (<) for lpf selection of vertical block, default = 9
//Bit 7: 0, reg_mcdi_reldetlpfdifthd0. hdif-vdif thd (>=) for lpf selection of vertical block, default = 48
#define MCDI_REL_DET_LPF_MSK_00_03 (0x2f38)
#define P_MCDI_REL_DET_LPF_MSK_00_03 (volatile unsigned int *)((0x2f38 << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28:24, reg_mcdi_reldetlpfmsk03. det lpf mask03 for gmv/lmv locked mode, 0~16, default = 1
//Bit 23:21, reserved
//Bit 20:16, reg_mcdi_reldetlpfmsk02. det lpf mask02 for gmv/lmv locked mode, 0~16, default = 1
//Bit 15:13, reserved
//Bit 12: 8, reg_mcdi_reldetlpfmsk01. det lpf mask01 for gmv/lmv locked mode, 0~16, default = 5
//Bit 7: 5, reserved
//Bit 4: 0, reg_mcdi_reldetlpfmsk00. det lpf mask00 for gmv/lmv locked mode, 0~16, default = 8
#define MCDI_REL_DET_LPF_MSK_04_12 (0x2f39)
#define P_MCDI_REL_DET_LPF_MSK_04_12 (volatile unsigned int *)((0x2f39 << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28:24, reg_mcdi_reldetlpfmsk12. det lpf mask12 for vertical blocks, 0~16, default = 0
//Bit 23:21, reserved
//Bit 20:16, reg_mcdi_reldetlpfmsk11. det lpf mask11 for vertical blocks, 0~16, default = 0
//Bit 15:13, reserved
//Bit 12: 8, reg_mcdi_reldetlpfmsk10. det lpf mask10 for vertical blocks, 0~16, default = 16
//Bit 7: 5, reserved
//Bit 4: 0, reg_mcdi_reldetlpfmsk04. det lpf mask04 for gmv/lmv locked mode, 0~16, default = 1
#define MCDI_REL_DET_LPF_MSK_13_21 (0x2f3a)
#define P_MCDI_REL_DET_LPF_MSK_13_21 (volatile unsigned int *)((0x2f3a << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28:24, reg_mcdi_reldetlpfmsk21. det lpf mask21 for horizontal blocks, 0~16, default = 6
//Bit 23:21, reserved
//Bit 20:16, reg_mcdi_reldetlpfmsk20. det lpf mask20 for horizontal blocks, 0~16, default = 8
//Bit 15:13, reserved
//Bit 12: 8, reg_mcdi_reldetlpfmsk14. det lpf mask14 for vertical blocks, 0~16, default = 0
//Bit 7: 5, reserved
//Bit 4: 0, reg_mcdi_reldetlpfmsk13. det lpf mask13 for vertical blocks, 0~16, default = 0
#define MCDI_REL_DET_LPF_MSK_22_30 (0x2f3b)
#define P_MCDI_REL_DET_LPF_MSK_22_30 (volatile unsigned int *)((0x2f3b << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28:24, reg_mcdi_reldetlpfmsk30. det lpf mask30 for other blocks, 0~16, default = 16
//Bit 23:21, reserved
//Bit 20:16, reg_mcdi_reldetlpfmsk24. det lpf mask24 for horizontal blocks, 0~16, default = 1
//Bit 15:13, reserved
//Bit 12: 8, reg_mcdi_reldetlpfmsk23. det lpf mask23 for horizontal blocks, 0~16, default = 0
//Bit 7: 5, reserved
//Bit 4: 0, reg_mcdi_reldetlpfmsk22. det lpf mask22 for horizontal blocks, 0~16, default = 1
#define MCDI_REL_DET_LPF_MSK_31_34 (0x2f3c)
#define P_MCDI_REL_DET_LPF_MSK_31_34 (volatile unsigned int *)((0x2f3c << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28:24, reg_mcdi_reldetlpfmsk34. det lpf mask34 for other blocks, 0~16, default = 0
//Bit 23:21, reserved
//Bit 20:16, reg_mcdi_reldetlpfmsk33. det lpf mask33 for other blocks, 0~16, default = 0
//Bit 15:13, reserved
//Bit 12: 8, reg_mcdi_reldetlpfmsk32. det lpf mask32 for other blocks, 0~16, default = 0
//Bit 7: 5, reserved
//Bit 4: 0, reg_mcdi_reldetlpfmsk31. det lpf mask31 for other blocks, 0~16, default = 0
//Note: there are four group lpf masks from addr 37~3b, each group sum equal to 16.
#define MCDI_REL_DET_MIN (0x2f3d)
#define P_MCDI_REL_DET_MIN (volatile unsigned int *)((0x2f3d << 2) + 0xff900000)
//Bit 31: 7, reserved
//Bit 6: 0, reg_mcdi_reldetmin. min of detected value, default = 16
#define MCDI_REL_DET_LUT_0_3 (0x2f3e)
#define P_MCDI_REL_DET_LUT_0_3 (volatile unsigned int *)((0x2f3e << 2) + 0xff900000)
//Bit 31:24, reg_mcdi_reldetmaplut3. default = 8
//Bit 23:16, reg_mcdi_reldetmaplut2. default = 4
//Bit 15: 8, reg_mcdi_reldetmaplut1. default = 2
//Bit 7: 0, reg_mcdi_reldetmaplut0. default = 0
#define MCDI_REL_DET_LUT_4_7 (0x2f3f)
#define P_MCDI_REL_DET_LUT_4_7 (volatile unsigned int *)((0x2f3f << 2) + 0xff900000)
//Bit 31:24, reg_mcdi_reldetmaplut7. default = 64
//Bit 23:16, reg_mcdi_reldetmaplut6. default = 48
//Bit 15: 8, reg_mcdi_reldetmaplut5. default = 32
//Bit 7: 0, reg_mcdi_reldetmaplut4. default = 16
#define MCDI_REL_DET_LUT_8_11 (0x2f40)
#define P_MCDI_REL_DET_LUT_8_11 (volatile unsigned int *)((0x2f40 << 2) + 0xff900000)
//Bit 31:24, reg_mcdi_reldetmaplut11. default = 160
//Bit 23:16, reg_mcdi_reldetmaplut10. default = 128
//Bit 15: 8, reg_mcdi_reldetmaplut9. default = 96
//Bit 7: 0, reg_mcdi_reldetmaplut8. default = 80
#define MCDI_REL_DET_LUT_12_15 (0x2f41)
#define P_MCDI_REL_DET_LUT_12_15 (volatile unsigned int *)((0x2f41 << 2) + 0xff900000)
//Bit 31:24, reg_mcdi_reldetmaplut15. default = 255
//Bit 23:16, reg_mcdi_reldetmaplut14. default = 240
//Bit 15: 8, reg_mcdi_reldetmaplut13. default = 224
//Bit 7: 0, reg_mcdi_reldetmaplut12. default = 192
#define MCDI_REL_DET_COL_CFD_THD (0x2f42)
#define P_MCDI_REL_DET_COL_CFD_THD (volatile unsigned int *)((0x2f42 << 2) + 0xff900000)
//Bit 31:24, reg_mcdi_reldetcolcfdfltthd. thd for flat smaller than (<) of column cofidence, default = 5
//Bit 23:16, reg_mcdi_reldetcolcfdthd1. thd for rel larger than (>=) in rel calc. mode col confidence without gmv locking, default = 160
//Bit 15: 8, reg_mcdi_reldetcolcfdthd0. thd for rel larger than (>=) in rel calc. mode col confidence when gmv locked, default = 100
//Bit 7: 2, reg_mcdi_reldetcolcfdbadwthd. thd for badw larger than (>=) in qbadw calc. mode of column cofidence, default = 16
//Bit 1, reserved
//Bit 0, reg_mcdi_reldetcolcfdcalcmode. calc. mode for column cofidence, 0: use rel, 1: use qbadw, default = 0
#define MCDI_REL_DET_COL_CFD_AVG_LUMA (0x2f43)
#define P_MCDI_REL_DET_COL_CFD_AVG_LUMA (volatile unsigned int *)((0x2f43 << 2) + 0xff900000)
//Bit 31:24, reg_mcdi_reldetcolcfdavgmin1. avg luma min1 (>=) for column cofidence, valid between 16~235, default = 235
//Bit 23:16, reg_mcdi_reldetcolcfdavgmax1. avg luma max1 (<) for column cofidence, valid between 16~235, default = 235
//Bit 15: 8, reg_mcdi_reldetcolcfdavgmin0. avg luma min0 (>=) for column cofidence, valid between 16~235, default = 16
//Bit 7: 0, reg_mcdi_reldetcolcfdavgmax0. avg luma max0 (<) for column cofidence, valid between 16~235, default = 21
#define MCDI_REL_DET_BAD_THD_0 (0x2f44)
#define P_MCDI_REL_DET_BAD_THD_0 (volatile unsigned int *)((0x2f44 << 2) + 0xff900000)
//Bit 31:16, reserved
//Bit 15: 8, reg_mcdi_reldetbadsadthd. thd (>=) for bad sad, default = 120 (480/4)
//Bit 7: 6, reserved
//Bit 5: 0, reg_mcdi_reldetbadbadwthd. thd (>=) for bad badw, 0~42, default = 12
#define MCDI_REL_DET_BAD_THD_1 (0x2f45)
#define P_MCDI_REL_DET_BAD_THD_1 (volatile unsigned int *)((0x2f45 << 2) + 0xff900000)
//Bit 31:24, reserved
//Bit 23:16, reg_mcdi_reldetbadrelfltthd. thd (>=) of flat for bad rel detection, default = 4
//Bit 15: 8, reg_mcdi_reldetbadrelthd1. thd (>=) for bad rel without gmv/lmv locked, default = 160
//Bit 7: 0, reg_mcdi_reldetbadrelthd0. thd (>=) for bad rel with gmv/lmv locked, default = 120
#define MCDI_PD22_CHK_THD (0x2f46)
#define P_MCDI_PD22_CHK_THD (volatile unsigned int *)((0x2f46 << 2) + 0xff900000)
//Bit 31:25, reserved
//Bit 24:16, reg_mcdi_pd22chksaddifthd. sad dif thd (>=) for (pd22chksad - qsad) for pd22 check, default = 64
//Bit 15:14, reserved
//Bit 13: 8, reg_mcdi_pd22chkqmvthd. thd (>=) of abs qmv for pd22 check, default = 2
//Bit 7: 0, reg_mcdi_pd22chkfltthd. thd (>=) of flat for pd22 check, default = 4
#define MCDI_PD22_CHK_GAIN_OFFST_0 (0x2f47)
#define P_MCDI_PD22_CHK_GAIN_OFFST_0 (volatile unsigned int *)((0x2f47 << 2) + 0xff900000)
//Bit 31:24, reg_mcdi_pd22chkedgeoffst0. offset0 of pd22chkedge from right film22 phase, -128~127, default = 0
//Bit 23:21, reserved
//Bit 20:16, reg_mcdi_pd22chkedgegain0. gain0 of pd22chkedge from right film22 phase, normalized to 16 as '1', default = 16
//Bit 15:12, reserved
//Bit 11: 8, reg_mcdi_pd22chkbadwoffst0. offset0 of pd22chkbadw from right film22 phase, -8~7, default = 0
//Bit 7: 5, reserved
//Bit 4: 0, reg_mcdi_pd22chkbadwgain0. gain0 of pd22chkbadw from right film22 phase, normalized to 16 as '1', default = 8
#define MCDI_PD22_CHK_GAIN_OFFST_1 (0x2f48)
#define P_MCDI_PD22_CHK_GAIN_OFFST_1 (volatile unsigned int *)((0x2f48 << 2) + 0xff900000)
//Bit 31:24, reg_mcdi_pd22chkedgeoffst1. offset1 of pd22chkedge from right film22 phase, -128~127, default = 0
//Bit 23:21, reserved
//Bit 20:16, reg_mcdi_pd22chkedgegain1. gain1 of pd22chkedge from right film22 phase, normalized to 16 as '1', default = 16
//Bit 15:12, reserved
//Bit 11: 8, reg_mcdi_pd22chkbadwoffst1. offset1 of pd22chkbadw from right film22 phase, -8~7, default = 0
//Bit 7: 5, reserved
//Bit 4: 0, reg_mcdi_pd22chkbadwgain1. gain1 of pd22chkbadw from right film22 phase, normalized to 16 as '1', default = 12
#define MCDI_LMV_LOCK_CNT_THD_GAIN (0x2f49)
#define P_MCDI_LMV_LOCK_CNT_THD_GAIN (volatile unsigned int *)((0x2f49 << 2) + 0xff900000)
//Bit 31:20, reserved
//Bit 19:16, reg_mcdi_lmvlockcntmax. max lmv lock count number, default = 6
//Bit 15:12, reg_mcdi_lmvlockcntoffst. offset for lmv lock count, -8~7, default = 0
//Bit 11: 8, reg_mcdi_lmvlockcntgain. gain for lmv lock count, normalized 8 as '1', 15 is set to 16, default = 8
//Bit 7: 5, reserved
//Bit 4: 0, reg_mcdi_lmvlockcntthd. lmv count thd (>=) before be locked, 1~31, default = 4
#define MCDI_LMV_LOCK_ABS_DIF_THD (0x2f4a)
#define P_MCDI_LMV_LOCK_ABS_DIF_THD (volatile unsigned int *)((0x2f4a << 2) + 0xff900000)
//Bit 31:27, reserved
//Bit 26:24, reg_mcdi_lmvlockdifthd2. lmv dif thd for third part, before locked, default = 1
//Bit 23, reserved
//Bit 22:20, reg_mcdi_lmvlockdifthd1. lmv dif thd for second part, before locked, default = 1
//Bit 19, reserved
//Bit 18:16, reg_mcdi_lmvlockdifthd0. lmv dif thd for first part, before locked, default = 1
//Bit 15:13, reserved
//Bit 12: 8, reg_mcdi_lmvlockabsmax. max abs (<) of lmv to be locked, default = 24
//Bit 7: 5, reserved
//Bit 4: 0, reg_mcdi_lmvlockabsmin. min abs (>=) of lmv to be locked, default = 1
#define MCDI_LMV_LOCK_ROW (0x2f4b)
#define P_MCDI_LMV_LOCK_ROW (volatile unsigned int *)((0x2f4b << 2) + 0xff900000)
//Bit 31:27, reserved
//Bit 26:16, reg_mcdi_lmvlockendrow. end row (<) for lmv lock, default = 2047
//Bit 15:11, reserved
//Bit 10: 0, reg_mcdi_lmvlockstartrow. start row (>=) for lmv lock, default = 0
#define MCDI_LMV_LOCK_RT_MODE (0x2f4c)
#define P_MCDI_LMV_LOCK_RT_MODE (volatile unsigned int *)((0x2f4c << 2) + 0xff900000)
//Bit 31:27, reserved
//Bit 26:24, reg_mcdi_lmvlockextmode. extend lines for lmv lock check, check how many lines for lmv locking, default = 2
//Bit 23:16, reg_mcdi_lmvlockfltcntrt. ratio of flt cnt for lock check, normalized 256 as '1', 255 is set to 256, default = 32
//Bit 15: 8, reg_mcdi_lmvlocklmvcntrt1. ratio when use non-zero lmv for lock check, normalized 256 as '1', 255 is set to 256, default = 48
//Bit 7: 0, reg_mcdi_lmvlocklmvcntrt0. ratio when use max lmv for lock check, normalized 256 as '1', 255 is set to 256, default = 106
#define MCDI_GMV_LOCK_CNT_THD_GAIN (0x2f4d)
#define P_MCDI_GMV_LOCK_CNT_THD_GAIN (volatile unsigned int *)((0x2f4d << 2) + 0xff900000)
//Bit 31:20, reserved
//Bit 19:16, reg_mcdi_gmvlockcntmax. max gmv lock count number, default = 6
//Bit 15:12, reg_mcdi_gmvlockcntoffst. offset for gmv lock count, -8~7, default = 0
//Bit 11: 8, reg_mcdi_gmvlockcntgain. gain for gmv lock count, normalized 8 as '1', 15 is set to 16, default = 8
//Bit 7: 5, reserved
//Bit 4: 0, reg_mcdi_gmvlockcntthd. gmv count thd (>=) before be locked, 1~31, default = 4
#define MCDI_GMV_LOCK_ABS_DIF_THD (0x2f4e)
#define P_MCDI_GMV_LOCK_ABS_DIF_THD (volatile unsigned int *)((0x2f4e << 2) + 0xff900000)
//Bit 31:27, reserved
//Bit 26:24, reg_mcdi_gmvlockdifthd2. gmv dif thd for third part, before locked, default = 3
//Bit 23, reserved
//Bit 22:20, reg_mcdi_gmvlockdifthd1. gmv dif thd for second part, before locked, default = 2
//Bit 19, reserved
//Bit 18:16, reg_mcdi_gmvlockdifthd0. gmv dif thd for first part, before locked, default = 1
//Bit 15:13, reserved
//Bit 12: 8, reg_mcdi_gmvlockabsmax. max abs of gmv to be locked, default = 15
//Bit 7: 5, reserved
//Bit 4: 0, reg_mcdi_gmvlockabsmin. min abs of gmv to be locked, default = 1
#define MCDI_HIGH_VERT_FRQ_DIF_THD (0x2f4f)
#define P_MCDI_HIGH_VERT_FRQ_DIF_THD (volatile unsigned int *)((0x2f4f << 2) + 0xff900000)
//Bit 31: 0, reg_mcdi_highvertfrqfldavgdifthd. high_vert_frq field average luma dif thd (>=), 3*Blk_Width*Blk_Height, set by software, default = 103680
#define MCDI_HIGH_VERT_FRQ_DIF_DIF_THD (0x2f50)
#define P_MCDI_HIGH_VERT_FRQ_DIF_DIF_THD (volatile unsigned int *)((0x2f50 << 2) + 0xff900000)
//Bit 31: 0, reg_mcdi_highvertfrqfldavgdifdifthd. high_vert_frq field average luma dif's dif thd (<), 3*Blk_Width*Blk_Height, set by software, default = 103680
#define MCDI_HIGH_VERT_FRQ_RT_GAIN (0x2f51)
#define P_MCDI_HIGH_VERT_FRQ_RT_GAIN (volatile unsigned int *)((0x2f51 << 2) + 0xff900000)
//Bit 31:20, reserved
//Bit 19:16, reg_mcdi_highvertfrqcntthd. high_vert_frq count thd (>=) before locked, 1~31, default = 4
//Bit 15: 8, reg_mcdi_highvertfrqbadsadrt. ratio for high_vert_frq bad sad count, normalized 256 as '1', 255 is set to 256, default = 24
//Bit 7: 0, reg_mcdi_highvertfrqbadbadwrt. ratio for high_vert_frq badw count, normalized 256 as '1', 255 is set to 256, default = 130
#define MCDI_MOTION_PARADOX_THD (0x2f52)
#define P_MCDI_MOTION_PARADOX_THD (volatile unsigned int *)((0x2f52 << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28:24, reg_mcdi_motionparadoxcntthd. motion paradox count thd (>=) before locked, 1~31, default = 4
//Bit 23:22, reserved
//Bit 21:16, reg_mcdi_motionparadoxgmvthd. abs gmv thd (<) of motion paradox, 0~32, note that 32 means invalid gmv, be careful, default = 32
//Bit 15: 0, reserved
#define MCDI_MOTION_PARADOX_RT (0x2f53)
#define P_MCDI_MOTION_PARADOX_RT (volatile unsigned int *)((0x2f53 << 2) + 0xff900000)
//Bit 31:24, reserved
//Bit 23:16, reg_mcdi_motionparadoxbadsadrt. ratio for field bad sad count of motion paradox, normalized 256 as '1', 255 is set to 256, default = 24
//Bit 15: 8, reg_mcdi_motionparadoxbadrelrt. ratio for field bad reliabilty count of motion paradox, normalized 256 as '1', 255 is set to 256, default = 120
//Bit 7: 0, reg_mcdi_motionparadoxmtnrt. ratio for field motion count of motion paradox, normalized 256 as '1', 255 is set to 256, default = 218
#define MCDI_MOTION_REF_THD (0x2f54)
#define P_MCDI_MOTION_REF_THD (volatile unsigned int *)((0x2f54 << 2) + 0xff900000)
//Bit 31:24, reserved
//Bit 23:20, reg_mcdi_motionrefoffst. motion ref additive offset, default = 15
//Bit 19:16, reg_mcdi_motionrefgain. motion ref gain, normalized 8 as '1', default = 8
//Bit 15:13, reserved
//Bit 12: 8, reg_mcdi_motionrefrptmvthd. abs thd (>=) of rpt mv (0~31, 32 means invalid) for motion ref, default = 1
//Bit 7: 2, reg_mcdi_motionrefqmvthd. min thd (>=) of abs qmv for motion ref, note that quarter mv's range is -63~63, default = 2
//Bit 1: 0, reg_mcdi_motionreflpfmode. Mv and (8 x repeat flg) 's lpf mode of motion refinement, 0: no lpf, 1: [1 2 1], 2: [1 2 2 2 1], default = 1
#define MCDI_REL_COL_REF_RT (0x2f55)
#define P_MCDI_REL_COL_REF_RT (volatile unsigned int *)((0x2f55 << 2) + 0xff900000)
//Bit 31: 8, reserved
//Bit 7: 0, reg_mcdi_relcolrefrt. ratio for column cofidence level against column number, for refinement, default = 135
#define MCDI_PD22_CHK_THD_RT (0x2f56)
#define P_MCDI_PD22_CHK_THD_RT (volatile unsigned int *)((0x2f56 << 2) + 0xff900000)
//Bit 31:27, reserved
//Bit 26:16, reg_mcdi_pd22chkfltcntrt. ratio for flat count of field pulldown 22 check, normalized 2048 as '1', 2047 is set to 2048, default = 1
//Bit 15: 8, reg_mcdi_pd22chkcntrt. ratio of pulldown 22 check count, normalized 256 as '1', 255 is set to 256, default = 100
//Bit 7: 5, reserved
//Bit 4: 0, reg_mcdi_pd22chkcntthd. thd (>=) for pd22 count before locked, 1~31, default = 4
#define MCDI_CHAR_DET_DIF_THD (0x2f57)
#define P_MCDI_CHAR_DET_DIF_THD (volatile unsigned int *)((0x2f57 << 2) + 0xff900000)
//Bit 31:24, reserved
//Bit 23:16, reg_mcdi_chardetminmaxdifthd. thd (>=) for dif between min and max value, default = 64
//Bit 15: 8, reg_mcdi_chardetmaxdifthd. thd (<) for dif between max value, default = 17
//Bit 7: 0, reg_mcdi_chardetmindifthd. thd (<) for dif between min value, default = 17
#define MCDI_CHAR_DET_CNT_THD (0x2f58)
#define P_MCDI_CHAR_DET_CNT_THD (volatile unsigned int *)((0x2f58 << 2) + 0xff900000)
//Bit 31:21, reserved
//Bit 20:16, reg_mcdi_chardettotcntthd. thd (>=) for total count, 0~21, default = 18
//Bit 15:13, reserved
//Bit 12: 8, reg_mcdi_chardetmaxcntthd. thd (>=) for max count, 0~21, default = 1
//Bit 7: 5, reserved
//Bit 4: 0, reg_mcdi_chardetmincntthd. thd (>=) for min count, 0~21, default = 1
//new add
#define MCDI_PD_22_CHK_WND0_X (0x2f59)
#define P_MCDI_PD_22_CHK_WND0_X (volatile unsigned int *)((0x2f59 << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28:16, reg_mcdi_pd22chkwnd0_x1 u13, x1 for window 0, HSIZE-1, software control, default = 719
//Bit 15:13, reserved
//Bit 12: 0, reg_mcdi_pd22chkwnd0_x0 u13, x0 for window 0, software control, default = 0
#define MCDI_PD_22_CHK_WND0_Y (0x2f5a)
#define P_MCDI_PD_22_CHK_WND0_Y (volatile unsigned int *)((0x2f5a << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28:16, reg_mcdi_pd22chkwnd0_y1 u13, y1 for window 0 software control, default = 39
//Bit 15:13, reserved
//Bit 12: 0, reg_mcdi_pd22chkwnd0_y0 u13, y0 for window 0, software control, default = 0
#define MCDI_PD_22_CHK_WND1_X (0x2f5b)
#define P_MCDI_PD_22_CHK_WND1_X (volatile unsigned int *)((0x2f5b << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28:16, reg_mcdi_pd22chkwnd1_x1 u13, x1 for window 1, HSIZE-1, software control, default = 719
//Bit 15:13, reserved
//Bit 12: 0, reg_mcdi_pd22chkwnd1_x0 u13, x0 for window 1, software control, default = 0
#define MCDI_PD_22_CHK_WND1_Y (0x2f5c)
#define P_MCDI_PD_22_CHK_WND1_Y (volatile unsigned int *)((0x2f5c << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28:16, reg_mcdi_pd22chkwnd1_y1 u13, y1 for window 1 software control, default = 199
//Bit 15:13, reserved
//Bit 12: 0, reg_mcdi_pd22chkwnd1_y0 u13, y0 for window 1, software control, default = 40
#define MCDI_PD_22_CHK_FRC_LMV (0x2f5d)
#define P_MCDI_PD_22_CHK_FRC_LMV (volatile unsigned int *)((0x2f5d << 2) + 0xff900000)
//Bit 31:11, reserved
//Bit 10, reg_mcdi_pd22chklmvchk2 u1, lmv lock check while force vof for each windows, default = 1
//Bit 9, reg_mcdi_pd22chklmvchk1 u1, lmv lock check while force vof for each windows, default = 0
//Bit 8, reg_mcdi_pd22chklmvchk0 u1, lmv lock check while force vof for each windows, default = 0
//Bit 7, reserved
//Bit 6, reg_mcdi_pd22chkfrcpd2 u1, force pd flags for each windows, default = 0
//Bit 5, reg_mcdi_pd22chkfrcpd1 u1, force pd flags for each windows, default = 0
//Bit 4, reg_mcdi_pd22chkfrcpd0 u1, force pd flags for each windows, default = 0
//Bit 3, reserved
//Bit 2, reg_mcdi_pd22chkfrcvof2 u1, force vof flags for each windows, default = 1
//Bit 1, reg_mcdi_pd22chkfrcvof1 u1, force vof flags for each windows, default = 0
//Bit 0, reg_mcdi_pd22chkfrcvof0 u1, force vof flags for each windows, default = 0
#define MCDI_PD_22_CHK_FLG_CNT (0x2f5e)
#define P_MCDI_PD_22_CHK_FLG_CNT (volatile unsigned int *)((0x2f5e << 2) + 0xff900000)
//Bit 31:27, reserved.
//Bit 26, reg_mcdi_pd22chkflg2. pull down 22 flag of prevoius one field. initial = 0
//Bit 25, reg_mcdi_pd22chkflg1. pull down 22 flag of prevoius one field. initial = 0
//Bit 24, reg_mcdi_pd22chkflg. pull down 22 flag of prevoius one field. initial = 0
//Bit 23:16, reg_mcdi_pd22chkcnt2. pull down 22 count till prevoius one field. initial = 0
//Bit 15: 8, reg_mcdi_pd22chkcnt1. pull down 22 count till prevoius one field. initial = 0
//Bit 7: 0, reg_mcdi_pd22chkcnt. pull down 22 count till prevoius one field. initial = 0
#define MCDI_RO_FLD_PD_22_PRE_CNT1 (0x2fca)
#define P_MCDI_RO_FLD_PD_22_PRE_CNT1 (volatile unsigned int *)((0x2fca << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_fldpd22precnt1. prevoius pd22 check count of whole pre one field (block based). initial = 0
#define MCDI_RO_FLD_PD_22_FOR_CNT1 (0x2fcb)
#define P_MCDI_RO_FLD_PD_22_FOR_CNT1 (volatile unsigned int *)((0x2fcb << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_fldpd22forcnt1. forward pd22 check count of whole pre one field (block based). initial = 0
#define MCDI_RO_FLD_PD_22_FLT_CNT1 (0x2fcc)
#define P_MCDI_RO_FLD_PD_22_FLT_CNT1 (volatile unsigned int *)((0x2fcc << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_fldpd22fltcnt1. flat count (for pd22 check) of whole pre one field (block based). initial = 0
#define MCDI_RO_FLD_PD_22_PRE_CNT2 (0x2fcd)
#define P_MCDI_RO_FLD_PD_22_PRE_CNT2 (volatile unsigned int *)((0x2fcd << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_fldpd22precnt2. prevoius pd22 check count of whole pre one field (block based). initial = 0
#define MCDI_RO_FLD_PD_22_FOR_CNT2 (0x2fce)
#define P_MCDI_RO_FLD_PD_22_FOR_CNT2 (volatile unsigned int *)((0x2fce << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_fldpd22forcnt2. forward pd22 check count of whole pre one field (block based). initial = 0
#define MCDI_RO_FLD_PD_22_FLT_CNT2 (0x2fcf)
#define P_MCDI_RO_FLD_PD_22_FLT_CNT2 (volatile unsigned int *)((0x2fcf << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_fldpd22fltcnt2. flat count (for pd22 check) of whole pre one field (block based). initial = 0
#define MCDI_FIELD_MV (0x2f60)
#define P_MCDI_FIELD_MV (volatile unsigned int *)((0x2f60 << 2) + 0xff900000)
//Bit 31:24, reg_mcdi_pd22chkcnt
//Bit 23:16, reg_mcdi_fieldgmvcnt
//Bit 15, reg_mcdi_pd22chkflg
//Bit 14, reg_mcdi_fieldgmvlock
//Bit 13: 8, reg_mcdi_fieldrptmv. last field rpt mv
//Bit 7: 6, reserved
//Bit 5: 0, reg_mcdi_fieldgmv. last field gmv
#define MCDI_FIELD_HVF_PRDX_CNT (0x2f61)
#define P_MCDI_FIELD_HVF_PRDX_CNT (volatile unsigned int *)((0x2f61 << 2) + 0xff900000)
//Bit 31:24, reg_mcdi_motionparadoxcnt.
//Bit 23:17, reserved
//Bit 16, reg_mcdi_motionparadoxflg.
//Bit 15: 8, reg_mcdi_highvertfrqcnt.
//Bit 7: 4, reserved
//Bit 3: 2, reg_mcdi_highvertfrqphase.
//Bit 1, reserved
//Bit 0, reg_mcdi_highvertfrqflg.
#define MCDI_FIELD_LUMA_AVG_SUM_0 (0x2f62)
#define P_MCDI_FIELD_LUMA_AVG_SUM_0 (volatile unsigned int *)((0x2f62 << 2) + 0xff900000)
//Bit 31: 0, reg_mcdi_fld_luma_avg_sum0.
#define MCDI_FIELD_LUMA_AVG_SUM_1 (0x2f63)
#define P_MCDI_FIELD_LUMA_AVG_SUM_1 (volatile unsigned int *)((0x2f63 << 2) + 0xff900000)
//Bit 31: 0, reg_mcdi_fld_luma_avg_sum1.
#define MCDI_YCBCR_BLEND_CRTL (0x2f64)
#define P_MCDI_YCBCR_BLEND_CRTL (volatile unsigned int *)((0x2f64 << 2) + 0xff900000)
//Bit 31:16, reserved
//Bit 15: 8, reg_mcdi_ycbcrblendgain. ycbcr blending gain for cbcr in ycbcr. default = 0
//Bit 7: 2, reserved.
//Bit 1: 0, reg_mcdi_ycbcrblendmode. 0:y+cmb(cb,cr), 1:med(r,g,b), 2:max(r,g,b), default = 2
#define MCDI_MCVECWR_CANVAS_SIZE (0x2f65)
#define P_MCDI_MCVECWR_CANVAS_SIZE (volatile unsigned int *)((0x2f65 << 2) + 0xff900000)
#define MCDI_MCVECRD_CANVAS_SIZE (0x2f66)
#define P_MCDI_MCVECRD_CANVAS_SIZE (volatile unsigned int *)((0x2f66 << 2) + 0xff900000)
#define MCDI_MCINFOWR_CANVAS_SIZE (0x2f67)
#define P_MCDI_MCINFOWR_CANVAS_SIZE (volatile unsigned int *)((0x2f67 << 2) + 0xff900000)
#define MCDI_MCINFORD_CANVAS_SIZE (0x2f68)
#define P_MCDI_MCINFORD_CANVAS_SIZE (volatile unsigned int *)((0x2f68 << 2) + 0xff900000)
#define MCDI_MCVECWR_X (0x2f92)
#define P_MCDI_MCVECWR_X (volatile unsigned int *)((0x2f92 << 2) + 0xff900000)
#define MCDI_MCVECWR_Y (0x2f93)
#define P_MCDI_MCVECWR_Y (volatile unsigned int *)((0x2f93 << 2) + 0xff900000)
#define MCDI_MCVECWR_CTRL (0x2f94)
#define P_MCDI_MCVECWR_CTRL (volatile unsigned int *)((0x2f94 << 2) + 0xff900000)
#define MCDI_MCVECRD_X (0x2f95)
#define P_MCDI_MCVECRD_X (volatile unsigned int *)((0x2f95 << 2) + 0xff900000)
#define MCDI_MCVECRD_Y (0x2f96)
#define P_MCDI_MCVECRD_Y (volatile unsigned int *)((0x2f96 << 2) + 0xff900000)
#define MCDI_MCVECRD_CTRL (0x2f97)
#define P_MCDI_MCVECRD_CTRL (volatile unsigned int *)((0x2f97 << 2) + 0xff900000)
#define MCDI_MCINFOWR_X (0x2f98)
#define P_MCDI_MCINFOWR_X (volatile unsigned int *)((0x2f98 << 2) + 0xff900000)
#define MCDI_MCINFOWR_Y (0x2f99)
#define P_MCDI_MCINFOWR_Y (volatile unsigned int *)((0x2f99 << 2) + 0xff900000)
#define MCDI_MCINFOWR_CTRL (0x2f9a)
#define P_MCDI_MCINFOWR_CTRL (volatile unsigned int *)((0x2f9a << 2) + 0xff900000)
#define MCDI_MCINFORD_X (0x2f9b)
#define P_MCDI_MCINFORD_X (volatile unsigned int *)((0x2f9b << 2) + 0xff900000)
#define MCDI_MCINFORD_Y (0x2f9c)
#define P_MCDI_MCINFORD_Y (volatile unsigned int *)((0x2f9c << 2) + 0xff900000)
#define MCDI_MCINFORD_CTRL (0x2f9d)
#define P_MCDI_MCINFORD_CTRL (volatile unsigned int *)((0x2f9d << 2) + 0xff900000)
// ================================================================== MC registers ========================================================================================================
#define MCDI_MC_CRTL (0x2f70)
#define P_MCDI_MC_CRTL (volatile unsigned int *)((0x2f70 << 2) + 0xff900000)
//Bit 31: 9, reserved
//Bit 8, reg_mcdi_mcpreflg. flag to use previous field for MC, 0:forward field, 1: previous field, default = 1
//Bit 7, reg_mcdi_mcrelrefbycolcfden. enable rel refinement by column cofidence in mc blending, default = 1
//Bit 6: 5, reg_mcdi_mclpfen. enable mc pixles/rel lpf, 0:disable, 1: lpf rel, 2: lpf mc pxls, 3: lpf both rel and mc pxls, default = 0
//Bit 4: 2, reg_mcdi_mcdebugmode. enable mc debug mode, 0:disable, 1: split left/right, 2: split top/bottom, 3: debug mv, 4: debug rel, default = 0
//Bit 1: 0, reg_mcdi_mcen. mcdi enable mode, 0:disable, 1: blend with ma, 2: full mc, default = 1
#define MCDI_MC_LPF_MSK_0 (0x2f71)
#define P_MCDI_MC_LPF_MSK_0 (volatile unsigned int *)((0x2f71 << 2) + 0xff900000)
//Bit 31:21, reserved
//Bit 20:16, reg_mcdi_mclpfmsk02. mc lpf coef. 2 for pixel 0 of current block, normalized 16 as '1', default = 0
//Bit 15:13, reserved
//Bit 12: 8, reg_mcdi_mclpfmsk01. mc lpf coef. 1 for pixel 0 of current block, normalized 16 as '1', default = 9
//Bit 7: 5, reserved
//Bit 4: 0, reg_mcdi_mclpfmsk00. mc lpf coef. 0 for pixel 0 of current block, normalized 16 as '1', default = 7
#define MCDI_MC_LPF_MSK_1 (0x2f72)
#define P_MCDI_MC_LPF_MSK_1 (volatile unsigned int *)((0x2f72 << 2) + 0xff900000)
//Bit 31:21, reserved
//Bit 20:16, reg_mcdi_mclpfmsk12. mc lpf coef. 2 for pixel 1 of current block, 0~16, normalized 16 as '1', default = 0
//Bit 15:13, reserved
//Bit 12: 8, reg_mcdi_mclpfmsk11. mc lpf coef. 1 for pixel 1 of current block, 0~16, normalized 16 as '1', default = 11
//Bit 7: 5, reserved
//Bit 4: 0, reg_mcdi_mclpfmsk10. mc lpf coef. 0 for pixel 1 of current block, 0~16, normalized 16 as '1', default = 5
#define MCDI_MC_LPF_MSK_2 (0x2f73)
#define P_MCDI_MC_LPF_MSK_2 (volatile unsigned int *)((0x2f73 << 2) + 0xff900000)
//Bit 31:21, reserved
//Bit 20:16, reg_mcdi_mclpfmsk22. mc lpf coef. 2 for pixel 2 of current block, 0~16, normalized 16 as '1', default = 1
//Bit 15:13, reserved
//Bit 12: 8, reg_mcdi_mclpfmsk21. mc lpf coef. 1 for pixel 2 of current block, 0~16, normalized 16 as '1', default = 14
//Bit 7: 5, reserved
//Bit 4: 0, reg_mcdi_mclpfmsk20. mc lpf coef. 0 for pixel 2 of current block, 0~16, normalized 16 as '1', default = 1
#define MCDI_MC_LPF_MSK_3 (0x2f74)
#define P_MCDI_MC_LPF_MSK_3 (volatile unsigned int *)((0x2f74 << 2) + 0xff900000)
//Bit 31:21, reserved
//Bit 20:16, reg_mcdi_mclpfmsk32. mc lpf coef. 2 for pixel 3 of current block, 0~16, normalized 16 as '1', default = 5
//Bit 15:13, reserved
//Bit 12: 8, reg_mcdi_mclpfmsk31. mc lpf coef. 1 for pixel 3 of current block, 0~16, normalized 16 as '1', default = 11
//Bit 7: 5, reserved
//Bit 4: 0, reg_mcdi_mclpfmsk30. mc lpf coef. 0 for pixel 3 of current block, 0~16, normalized 16 as '1', default = 0
#define MCDI_MC_LPF_MSK_4 (0x2f75)
#define P_MCDI_MC_LPF_MSK_4 (volatile unsigned int *)((0x2f75 << 2) + 0xff900000)
//Bit 31:21, reserved
//Bit 20:16, reg_mcdi_mclpfmsk42. mc lpf coef. 2 for pixel 4 of current block, 0~16, normalized 16 as '1', default = 7
//Bit 15:13, reserved
//Bit 12: 8, reg_mcdi_mclpfmsk41. mc lpf coef. 1 for pixel 4 of current block, 0~16, normalized 16 as '1', default = 9
//Bit 7: 5, reserved
//Bit 4: 0, reg_mcdi_mclpfmsk40. mc lpf coef. 0 for pixel 4 of current block, 0~16, normalized 16 as '1', default = 0
#define MCDI_MC_REL_GAIN_OFFST_0 (0x2f76)
#define P_MCDI_MC_REL_GAIN_OFFST_0 (volatile unsigned int *)((0x2f76 << 2) + 0xff900000)
//Bit 31:26, reserved
//Bit 25, reg_mcdi_mcmotionparadoxflg. flag of motion paradox, initial with 0 and read from software, default = 0
//Bit 24, reg_mcdi_mchighvertfrqflg. flag of high vert frq, initial with 0 and read from software, default = 0
//Bit 23:16, reg_mcdi_mcmotionparadoxoffst. offset (rel + offset) for rel (MC blending coef.) refinement if motion paradox detected before MC blending before MC blending, default = 128
//Bit 15:12, reserved
//Bit 11: 8, reg_mcdi_mcmotionparadoxgain. gain for rel (MC blending coef.) refinement if motion paradox detected before MC blending, normalized 8 as '1', set 15 to 16, default = 8
//Bit 7: 4, reg_mcdi_mchighvertfrqoffst. minus offset (alpha - offset) for motion (MA blending coef.) refinement if high vertical frequency detected before MA blending, default = 15
//Bit 3: 0, reg_mcdi_mchighvertfrqgain. gain for motion (MA blending coef.) refinement if high vertical frequency detected before MA blending, normalized 8 as '1', set 15 to 16, default = 8
#define MCDI_MC_REL_GAIN_OFFST_1 (0x2f77)
#define P_MCDI_MC_REL_GAIN_OFFST_1 (volatile unsigned int *)((0x2f77 << 2) + 0xff900000)
//Bit 31:24, reg_mcdi_mcoutofboundrayoffst. offset (rel + offset) for rel (MC blending coef.) refinement if MC pointed out of boundray before MC blending before MC blending, default = 255
//Bit 23:20, reserved
//Bit 19:16, reg_mcdi_mcoutofboundraygain. gain for rel (MC blending coef.) refinement if MC pointed out of boundray before MC blending, normalized 8 as '1', set 15 to 16, default = 8
//Bit 15: 8, reg_mcdi_mcrelrefbycolcfdoffst. offset (rel + offset) for rel (MC blending coef.) refinement if motion paradox detected before MC blending before MC blending, default = 255
//Bit 7: 4, reserved.
//Bit 3: 0, reg_mcdi_mcrelrefbycolcfdgain. gain for rel (MC blending coef.) refinement if column cofidence failed before MC blending, normalized 8 as '1', set 15 to 16, default = 8
#define MCDI_MC_COL_CFD_0 (0x2f78)
#define P_MCDI_MC_COL_CFD_0 (volatile unsigned int *)((0x2f78 << 2) + 0xff900000)
//Bit 31: 0, mcdi_mc_col_cfd_0. column cofidence value 0 read from software. initial = 0
#define MCDI_MC_COL_CFD_1 (0x2f79)
#define P_MCDI_MC_COL_CFD_1 (volatile unsigned int *)((0x2f79 << 2) + 0xff900000)
//Bit 31: 0, mcdi_mc_col_cfd_1. column cofidence value 1 read from software. initial = 0
#define MCDI_MC_COL_CFD_2 (0x2f7a)
#define P_MCDI_MC_COL_CFD_2 (volatile unsigned int *)((0x2f7a << 2) + 0xff900000)
//Bit 31: 0, mcdi_mc_col_cfd_2. column cofidence value 2 read from software. initial = 0
#define MCDI_MC_COL_CFD_3 (0x2f7b)
#define P_MCDI_MC_COL_CFD_3 (volatile unsigned int *)((0x2f7b << 2) + 0xff900000)
//Bit 31: 0, mcdi_mc_col_cfd_3. column cofidence value 3 read from software. initial = 0
#define MCDI_MC_COL_CFD_4 (0x2f7c)
#define P_MCDI_MC_COL_CFD_4 (volatile unsigned int *)((0x2f7c << 2) + 0xff900000)
//Bit 31: 0, mcdi_mc_col_cfd_4. column cofidence value 4 read from software. initial = 0
#define MCDI_MC_COL_CFD_5 (0x2f7d)
#define P_MCDI_MC_COL_CFD_5 (volatile unsigned int *)((0x2f7d << 2) + 0xff900000)
//Bit 31: 0, mcdi_mc_col_cfd_5. column cofidence value 5 read from software. initial = 0
#define MCDI_MC_COL_CFD_6 (0x2f7e)
#define P_MCDI_MC_COL_CFD_6 (volatile unsigned int *)((0x2f7e << 2) + 0xff900000)
//Bit 31: 0, mcdi_mc_col_cfd_6. column cofidence value 6 read from software. initial = 0
#define MCDI_MC_COL_CFD_7 (0x2f7f)
#define P_MCDI_MC_COL_CFD_7 (volatile unsigned int *)((0x2f7f << 2) + 0xff900000)
//Bit 31: 0, mcdi_mc_col_cfd_7. column cofidence value 7 read from software. initial = 0
#define MCDI_MC_COL_CFD_8 (0x2f80)
#define P_MCDI_MC_COL_CFD_8 (volatile unsigned int *)((0x2f80 << 2) + 0xff900000)
//Bit 31: 0, mcdi_mc_col_cfd_8. column cofidence value 8 read from software. initial = 0
#define MCDI_MC_COL_CFD_9 (0x2f81)
#define P_MCDI_MC_COL_CFD_9 (volatile unsigned int *)((0x2f81 << 2) + 0xff900000)
//Bit 31: 0, mcdi_mc_col_cfd_9. column cofidence value 9 read from software. initial = 0
#define MCDI_MC_COL_CFD_10 (0x2f82)
#define P_MCDI_MC_COL_CFD_10 (volatile unsigned int *)((0x2f82 << 2) + 0xff900000)
//Bit 31: 0, mcdi_mc_col_cfd_10. column cofidence value 10 read from software. initial = 0
#define MCDI_MC_COL_CFD_11 (0x2f83)
#define P_MCDI_MC_COL_CFD_11 (volatile unsigned int *)((0x2f83 << 2) + 0xff900000)
//Bit 31: 0, mcdi_mc_col_cfd_11. column cofidence value 11 read from software. initial = 0
#define MCDI_MC_COL_CFD_12 (0x2f84)
#define P_MCDI_MC_COL_CFD_12 (volatile unsigned int *)((0x2f84 << 2) + 0xff900000)
//Bit 31: 0, mcdi_mc_col_cfd_12. column cofidence value 12 read from software. initial = 0
#define MCDI_MC_COL_CFD_13 (0x2f85)
#define P_MCDI_MC_COL_CFD_13 (volatile unsigned int *)((0x2f85 << 2) + 0xff900000)
//Bit 31: 0, mcdi_mc_col_cfd_13. column cofidence value 13 read from software. initial = 0
#define MCDI_MC_COL_CFD_14 (0x2f86)
#define P_MCDI_MC_COL_CFD_14 (volatile unsigned int *)((0x2f86 << 2) + 0xff900000)
//Bit 31: 0, mcdi_mc_col_cfd_14. column cofidence value 14 read from software. initial = 0
#define MCDI_MC_COL_CFD_15 (0x2f87)
#define P_MCDI_MC_COL_CFD_15 (volatile unsigned int *)((0x2f87 << 2) + 0xff900000)
//Bit 31: 0, mcdi_mc_col_cfd_15. column cofidence value 15 read from software. initial = 0
#define MCDI_MC_COL_CFD_16 (0x2f88)
#define P_MCDI_MC_COL_CFD_16 (volatile unsigned int *)((0x2f88 << 2) + 0xff900000)
//Bit 31: 0, mcdi_mc_col_cfd_16. column cofidence value 16 read from software. initial = 0
#define MCDI_MC_COL_CFD_17 (0x2f89)
#define P_MCDI_MC_COL_CFD_17 (volatile unsigned int *)((0x2f89 << 2) + 0xff900000)
//Bit 31: 0, mcdi_mc_col_cfd_17. column cofidence value 17 read from software. initial = 0
#define MCDI_MC_COL_CFD_18 (0x2f8a)
#define P_MCDI_MC_COL_CFD_18 (volatile unsigned int *)((0x2f8a << 2) + 0xff900000)
//Bit 31: 0, mcdi_mc_col_cfd_18. column cofidence value 18 read from software. initial = 0
#define MCDI_MC_COL_CFD_19 (0x2f8b)
#define P_MCDI_MC_COL_CFD_19 (volatile unsigned int *)((0x2f8b << 2) + 0xff900000)
//Bit 31: 0, mcdi_mc_col_cfd_19. column cofidence value 19 read from software. initial = 0
#define MCDI_MC_COL_CFD_20 (0x2f8c)
#define P_MCDI_MC_COL_CFD_20 (volatile unsigned int *)((0x2f8c << 2) + 0xff900000)
//Bit 31: 0, mcdi_mc_col_cfd_20. column cofidence value 20 read from software. initial = 0
#define MCDI_MC_COL_CFD_21 (0x2f8d)
#define P_MCDI_MC_COL_CFD_21 (volatile unsigned int *)((0x2f8d << 2) + 0xff900000)
//Bit 31: 0, mcdi_mc_col_cfd_21. column cofidence value 21 read from software. initial = 0
#define MCDI_MC_COL_CFD_22 (0x2f8e)
#define P_MCDI_MC_COL_CFD_22 (volatile unsigned int *)((0x2f8e << 2) + 0xff900000)
//Bit 31: 0, mcdi_mc_col_cfd_22. column cofidence value 22 read from software. initial = 0
#define MCDI_MC_COL_CFD_23 (0x2f8f)
#define P_MCDI_MC_COL_CFD_23 (volatile unsigned int *)((0x2f8f << 2) + 0xff900000)
//Bit 31: 0, mcdi_mc_col_cfd_23. column cofidence value 23 read from software. initial = 0
#define MCDI_MC_COL_CFD_24 (0x2f90)
#define P_MCDI_MC_COL_CFD_24 (volatile unsigned int *)((0x2f90 << 2) + 0xff900000)
//Bit 31: 0, mcdi_mc_col_cfd_24. column cofidence value 24 read from software. initial = 0
#define MCDI_MC_COL_CFD_25 (0x2f91)
#define P_MCDI_MC_COL_CFD_25 (volatile unsigned int *)((0x2f91 << 2) + 0xff900000)
//Bit 31: 0, mcdi_mc_col_cfd_25. column cofidence value 25 read from software. initial = 0
// ===================================================================================== PRE RO Registers ==========================================================================================
#define MCDI_RO_FLD_LUMA_AVG_SUM (0x2fa0)
#define P_MCDI_RO_FLD_LUMA_AVG_SUM (volatile unsigned int *)((0x2fa0 << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_fldlumaavgsum. block's luma avg sum of current filed (block based). initial = 0
#define MCDI_RO_GMV_VLD_CNT (0x2fa1)
#define P_MCDI_RO_GMV_VLD_CNT (volatile unsigned int *)((0x2fa1 << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_gmvvldcnt. valid gmv's count of pre one filed (block based). initial = 0
#define MCDI_RO_RPT_FLG_CNT (0x2fa2)
#define P_MCDI_RO_RPT_FLG_CNT (volatile unsigned int *)((0x2fa2 << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_rptflgcnt. repeat mv's count of pre one filed (block based). initial = 0
#define MCDI_RO_FLD_BAD_SAD_CNT (0x2fa3)
#define P_MCDI_RO_FLD_BAD_SAD_CNT (volatile unsigned int *)((0x2fa3 << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_fldbadsadcnt. bad sad count of whole pre one field (block based). initial = 0
#define MCDI_RO_FLD_BAD_BADW_CNT (0x2fa4)
#define P_MCDI_RO_FLD_BAD_BADW_CNT (volatile unsigned int *)((0x2fa4 << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_fldbadbadwcnt. bad badw count of whole pre one field (block based). initial = 0
#define MCDI_RO_FLD_BAD_REL_CNT (0x2fa5)
#define P_MCDI_RO_FLD_BAD_REL_CNT (volatile unsigned int *)((0x2fa5 << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_fldbadrelcnt. bad rel count of whole pre one field (block based). initial = 0
#define MCDI_RO_FLD_MTN_CNT (0x2fa6)
#define P_MCDI_RO_FLD_MTN_CNT (volatile unsigned int *)((0x2fa6 << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_fldmtncnt. motion count of whole pre one field (pixel based). initial = 0
#define MCDI_RO_FLD_VLD_CNT (0x2fa7)
#define P_MCDI_RO_FLD_VLD_CNT (volatile unsigned int *)((0x2fa7 << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_fldvldcnt. valid motion count of whole pre one field (pixel based). initial = 0
#define MCDI_RO_FLD_PD_22_PRE_CNT (0x2fa8)
#define P_MCDI_RO_FLD_PD_22_PRE_CNT (volatile unsigned int *)((0x2fa8 << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_fldpd22precnt. prevoius pd22 check count of whole pre one field (block based). initial = 0
#define MCDI_RO_FLD_PD_22_FOR_CNT (0x2fa9)
#define P_MCDI_RO_FLD_PD_22_FOR_CNT (volatile unsigned int *)((0x2fa9 << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_fldpd22forcnt. forward pd22 check count of whole pre one field (block based). initial = 0
#define MCDI_RO_FLD_PD_22_FLT_CNT (0x2faa)
#define P_MCDI_RO_FLD_PD_22_FLT_CNT (volatile unsigned int *)((0x2faa << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_fldpd22fltcnt. flat count (for pd22 check) of whole pre one field (block based). initial = 0
#define MCDI_RO_HIGH_VERT_FRQ_FLG (0x2fab)
#define P_MCDI_RO_HIGH_VERT_FRQ_FLG (volatile unsigned int *)((0x2fab << 2) + 0xff900000)
//Bit 31:16, reserved.
//Bit 15: 8, ro_mcdi_highvertfrqcnt. high vertical frequency count till prevoius one field. initial = 0
//Bit 7: 3, reserved.
//Bit 2: 1, ro_mcdi_highvertfrqphase. high vertical frequency phase of prevoius one field. initial = 2
//Bit 0, ro_mcdi_highvertfrqflg. high vertical frequency flag of prevoius one field. initial = 0
#define MCDI_RO_GMV_LOCK_FLG (0x2fac)
#define P_MCDI_RO_GMV_LOCK_FLG (volatile unsigned int *)((0x2fac << 2) + 0xff900000)
//Bit 31:16, reserved.
//Bit 15: 8, ro_mcdi_gmvlckcnt. global mv lock count till prevoius one field. initial = 0
//Bit 7: 2, ro_mcdi_gmv. global mv of prevoius one field. -31~31, initial = 32 (invalid value)
//Bit 1, ro_mcdi_zerogmvlckflg. zero global mv lock flag of prevoius one field. initial = 0
//Bit 0, ro_mcdi_gmvlckflg. global mv lock flag of prevoius one field. initial = 0
#define MCDI_RO_RPT_MV (0x2fad)
#define P_MCDI_RO_RPT_MV (volatile unsigned int *)((0x2fad << 2) + 0xff900000)
//Bit 5: 0, ro_mcdi_rptmv. repeate mv of prevoius one field. -31~31, initial = 32 (invalid value)
#define MCDI_RO_MOTION_PARADOX_FLG (0x2fae)
#define P_MCDI_RO_MOTION_PARADOX_FLG (volatile unsigned int *)((0x2fae << 2) + 0xff900000)
//Bit 31:16, reserved.
//Bit 15: 8, ro_mcdi_motionparadoxcnt. motion paradox count till prevoius one field. initial = 0
//Bit 7: 1, reserved.
//Bit 0, ro_mcdi_motionparadoxflg. motion paradox flag of prevoius one field. initial = 0
#define MCDI_RO_PD_22_FLG (0x2faf)
#define P_MCDI_RO_PD_22_FLG (volatile unsigned int *)((0x2faf << 2) + 0xff900000)
//Bit 31:27, reserved.
//Bit 26, ro_mcdi_pd22flg2. pull down 22 flag of prevoius one field. initial = 0
//Bit 25, ro_mcdi_pd22flg1. pull down 22 flag of prevoius one field. initial = 0
//Bit 24, ro_mcdi_pd22flg. pull down 22 flag of prevoius one field. initial = 0
//Bit 23:16, ro_mcdi_pd22cnt2. pull down 22 count till prevoius one field. initial = 0
//Bit 15: 8, ro_mcdi_pd22cnt1. pull down 22 count till prevoius one field. initial = 0
//Bit 7: 0, ro_mcdi_pd22cnt. pull down 22 count till prevoius one field. initial = 0
#define MCDI_RO_COL_CFD_0 (0x2fb0)
#define P_MCDI_RO_COL_CFD_0 (volatile unsigned int *)((0x2fb0 << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_col_cfd_0. column cofidence value 0. initial = 0
#define MCDI_RO_COL_CFD_1 (0x2fb1)
#define P_MCDI_RO_COL_CFD_1 (volatile unsigned int *)((0x2fb1 << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_col_cfd_1. column cofidence value 1. initial = 0
#define MCDI_RO_COL_CFD_2 (0x2fb2)
#define P_MCDI_RO_COL_CFD_2 (volatile unsigned int *)((0x2fb2 << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_col_cfd_2. column cofidence value 2. initial = 0
#define MCDI_RO_COL_CFD_3 (0x2fb3)
#define P_MCDI_RO_COL_CFD_3 (volatile unsigned int *)((0x2fb3 << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_col_cfd_3. column cofidence value 3. initial = 0
#define MCDI_RO_COL_CFD_4 (0x2fb4)
#define P_MCDI_RO_COL_CFD_4 (volatile unsigned int *)((0x2fb4 << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_col_cfd_4. column cofidence value 4. initial = 0
#define MCDI_RO_COL_CFD_5 (0x2fb5)
#define P_MCDI_RO_COL_CFD_5 (volatile unsigned int *)((0x2fb5 << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_col_cfd_5. column cofidence value 5. initial = 0
#define MCDI_RO_COL_CFD_6 (0x2fb6)
#define P_MCDI_RO_COL_CFD_6 (volatile unsigned int *)((0x2fb6 << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_col_cfd_6. column cofidence value 6. initial = 0
#define MCDI_RO_COL_CFD_7 (0x2fb7)
#define P_MCDI_RO_COL_CFD_7 (volatile unsigned int *)((0x2fb7 << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_col_cfd_7. column cofidence value 7. initial = 0
#define MCDI_RO_COL_CFD_8 (0x2fb8)
#define P_MCDI_RO_COL_CFD_8 (volatile unsigned int *)((0x2fb8 << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_col_cfd_8. column cofidence value 8. initial = 0
#define MCDI_RO_COL_CFD_9 (0x2fb9)
#define P_MCDI_RO_COL_CFD_9 (volatile unsigned int *)((0x2fb9 << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_col_cfd_9. column cofidence value 9. initial = 0
#define MCDI_RO_COL_CFD_10 (0x2fba)
#define P_MCDI_RO_COL_CFD_10 (volatile unsigned int *)((0x2fba << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_col_cfd_10. column cofidence value 10. initial = 0
#define MCDI_RO_COL_CFD_11 (0x2fbb)
#define P_MCDI_RO_COL_CFD_11 (volatile unsigned int *)((0x2fbb << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_col_cfd_11. column cofidence value 11. initial = 0
#define MCDI_RO_COL_CFD_12 (0x2fbc)
#define P_MCDI_RO_COL_CFD_12 (volatile unsigned int *)((0x2fbc << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_col_cfd_12. column cofidence value 12. initial = 0
#define MCDI_RO_COL_CFD_13 (0x2fbd)
#define P_MCDI_RO_COL_CFD_13 (volatile unsigned int *)((0x2fbd << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_col_cfd_13. column cofidence value 13. initial = 0
#define MCDI_RO_COL_CFD_14 (0x2fbe)
#define P_MCDI_RO_COL_CFD_14 (volatile unsigned int *)((0x2fbe << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_col_cfd_14. column cofidence value 14. initial = 0
#define MCDI_RO_COL_CFD_15 (0x2fbf)
#define P_MCDI_RO_COL_CFD_15 (volatile unsigned int *)((0x2fbf << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_col_cfd_15. column cofidence value 15. initial = 0
#define MCDI_RO_COL_CFD_16 (0x2fc0)
#define P_MCDI_RO_COL_CFD_16 (volatile unsigned int *)((0x2fc0 << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_col_cfd_16. column cofidence value 16. initial = 0
#define MCDI_RO_COL_CFD_17 (0x2fc1)
#define P_MCDI_RO_COL_CFD_17 (volatile unsigned int *)((0x2fc1 << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_col_cfd_17. column cofidence value 17. initial = 0
#define MCDI_RO_COL_CFD_18 (0x2fc2)
#define P_MCDI_RO_COL_CFD_18 (volatile unsigned int *)((0x2fc2 << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_col_cfd_18. column cofidence value 18. initial = 0
#define MCDI_RO_COL_CFD_19 (0x2fc3)
#define P_MCDI_RO_COL_CFD_19 (volatile unsigned int *)((0x2fc3 << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_col_cfd_19. column cofidence value 19. initial = 0
#define MCDI_RO_COL_CFD_20 (0x2fc4)
#define P_MCDI_RO_COL_CFD_20 (volatile unsigned int *)((0x2fc4 << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_col_cfd_20. column cofidence value 20. initial = 0
#define MCDI_RO_COL_CFD_21 (0x2fc5)
#define P_MCDI_RO_COL_CFD_21 (volatile unsigned int *)((0x2fc5 << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_col_cfd_21. column cofidence value 21. initial = 0
#define MCDI_RO_COL_CFD_22 (0x2fc6)
#define P_MCDI_RO_COL_CFD_22 (volatile unsigned int *)((0x2fc6 << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_col_cfd_22. column cofidence value 22. initial = 0
#define MCDI_RO_COL_CFD_23 (0x2fc7)
#define P_MCDI_RO_COL_CFD_23 (volatile unsigned int *)((0x2fc7 << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_col_cfd_23. column cofidence value 23. initial = 0
#define MCDI_RO_COL_CFD_24 (0x2fc8)
#define P_MCDI_RO_COL_CFD_24 (volatile unsigned int *)((0x2fc8 << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_col_cfd_24. column cofidence value 24. initial = 0
#define MCDI_RO_COL_CFD_25 (0x2fc9)
#define P_MCDI_RO_COL_CFD_25 (volatile unsigned int *)((0x2fc9 << 2) + 0xff900000)
//Bit 31: 0, ro_mcdi_col_cfd_25. column cofidence value 25. initial = 0
// add space 8'hd0-8'hef
//
// Reading file: dipd_regs.h
//
// synopsys translate_off
// synopsys translate_on
// using 8'he0-8'hef
#define DIPD_COMB_CTRL0 (0x2fd0)
#define P_DIPD_COMB_CTRL0 (volatile unsigned int *)((0x2fd0 << 2) + 0xff900000)
//Bit 31:0, reg_pd_comb_ctrl0
#define DIPD_COMB_CTRL1 (0x2fd1)
#define P_DIPD_COMB_CTRL1 (volatile unsigned int *)((0x2fd1 << 2) + 0xff900000)
//Bit 31:0, reg_pd_comb_ctrl1
#define DIPD_COMB_CTRL2 (0x2fd2)
#define P_DIPD_COMB_CTRL2 (volatile unsigned int *)((0x2fd2 << 2) + 0xff900000)
//Bit 31:0, reg_pd_comb_ctrl2
#define DIPD_COMB_CTRL3 (0x2fd3)
#define P_DIPD_COMB_CTRL3 (volatile unsigned int *)((0x2fd3 << 2) + 0xff900000)
//Bit 31:0, reg_pd_comb_ctrl3
#define DIPD_COMB_CTRL4 (0x2fd4)
#define P_DIPD_COMB_CTRL4 (volatile unsigned int *)((0x2fd4 << 2) + 0xff900000)
//Bit 31:0, reg_pd_comb_ctrl4
#define DIPD_COMB_CTRL5 (0x2fd5)
#define P_DIPD_COMB_CTRL5 (volatile unsigned int *)((0x2fd5 << 2) + 0xff900000)
//Bit 31:0, reg_pd_comb_ctrl5
#define DIPD_RO_COMB_0 (0x2fd6)
#define P_DIPD_RO_COMB_0 (volatile unsigned int *)((0x2fd6 << 2) + 0xff900000)
//Bit 31:0, ro_pd_comb_0
#define DIPD_RO_COMB_1 (0x2fd7)
#define P_DIPD_RO_COMB_1 (volatile unsigned int *)((0x2fd7 << 2) + 0xff900000)
//Bit 31:0, ro_pd_comb_1
#define DIPD_RO_COMB_2 (0x2fd8)
#define P_DIPD_RO_COMB_2 (volatile unsigned int *)((0x2fd8 << 2) + 0xff900000)
//Bit 31:0, ro_pd_comb_2
#define DIPD_RO_COMB_3 (0x2fd9)
#define P_DIPD_RO_COMB_3 (volatile unsigned int *)((0x2fd9 << 2) + 0xff900000)
//Bit 31:0, ro_pd_comb_3
#define DIPD_RO_COMB_4 (0x2fda)
#define P_DIPD_RO_COMB_4 (volatile unsigned int *)((0x2fda << 2) + 0xff900000)
//Bit 31:0, ro_pd_comb_4
#define DIPD_RO_COMB_5 (0x2fdb)
#define P_DIPD_RO_COMB_5 (volatile unsigned int *)((0x2fdb << 2) + 0xff900000)
//Bit 31:0, ro_pd_comb_5
#define DIPD_RO_COMB_6 (0x2fdc)
#define P_DIPD_RO_COMB_6 (volatile unsigned int *)((0x2fdc << 2) + 0xff900000)
//Bit 31:0, ro_pd_comb_6
#define DIPD_RO_COMB_7 (0x2fdd)
#define P_DIPD_RO_COMB_7 (volatile unsigned int *)((0x2fdd << 2) + 0xff900000)
//Bit 31:0, ro_pd_comb_7
#define DIPD_RO_COMB_8 (0x2fde)
#define P_DIPD_RO_COMB_8 (volatile unsigned int *)((0x2fde << 2) + 0xff900000)
//Bit 31:0, ro_pd_comb_8
#define DIPD_RO_COMB_9 (0x2fdf)
#define P_DIPD_RO_COMB_9 (volatile unsigned int *)((0x2fdf << 2) + 0xff900000)
//Bit 31:0, ro_pd_comb_9
#define DIPD_RO_COMB_10 (0x2fe0)
#define P_DIPD_RO_COMB_10 (volatile unsigned int *)((0x2fe0 << 2) + 0xff900000)
//Bit 31:0, ro_pd_comb_10
#define DIPD_RO_COMB_11 (0x2fe1)
#define P_DIPD_RO_COMB_11 (volatile unsigned int *)((0x2fe1 << 2) + 0xff900000)
//Bit 31:0, ro_pd_comb_11
#define DIPD_RO_COMB_12 (0x2fe2)
#define P_DIPD_RO_COMB_12 (volatile unsigned int *)((0x2fe2 << 2) + 0xff900000)
//Bit 31:0, ro_pd_comb_12
#define DIPD_RO_COMB_13 (0x2fe3)
#define P_DIPD_RO_COMB_13 (volatile unsigned int *)((0x2fe3 << 2) + 0xff900000)
//Bit 31:0, ro_pd_comb_13
#define DIPD_RO_COMB_14 (0x2fe4)
#define P_DIPD_RO_COMB_14 (volatile unsigned int *)((0x2fe4 << 2) + 0xff900000)
//Bit 31:0, ro_pd_comb_14
#define DIPD_RO_COMB_15 (0x2fe5)
#define P_DIPD_RO_COMB_15 (volatile unsigned int *)((0x2fe5 << 2) + 0xff900000)
//Bit 31:0, ro_pd_comb_15
#define DIPD_RO_COMB_16 (0x2fe6)
#define P_DIPD_RO_COMB_16 (volatile unsigned int *)((0x2fe6 << 2) + 0xff900000)
//Bit 31:0, ro_pd_comb_16
#define DIPD_RO_COMB_17 (0x2fe7)
#define P_DIPD_RO_COMB_17 (volatile unsigned int *)((0x2fe7 << 2) + 0xff900000)
//Bit 31:0, ro_pd_comb_17
#define DIPD_RO_COMB_18 (0x2fe8)
#define P_DIPD_RO_COMB_18 (volatile unsigned int *)((0x2fe8 << 2) + 0xff900000)
//Bit 31:0, ro_pd_comb_18
#define DIPD_RO_COMB_19 (0x2fe9)
#define P_DIPD_RO_COMB_19 (volatile unsigned int *)((0x2fe9 << 2) + 0xff900000)
//Bit 31:0, ro_pd_comb_19
#define DIPD_RO_COMB_20 (0x2fea)
#define P_DIPD_RO_COMB_20 (volatile unsigned int *)((0x2fea << 2) + 0xff900000)
//Bit 31:0, ro_pd_comb_20
// synopsys translate_off
// synopsys translate_on
//
// Closing file: dipd_regs.h
//
// addr space 8'hf0-8'hff
//
// Reading file: nr3_tnr_regs.h
//
// synopsys translate_off
// synopsys translate_on
#define NR3_MODE (0x2ff0)
#define P_NR3_MODE (volatile unsigned int *)((0x2ff0 << 2) + 0xff900000)
//Bit 31: 6 reserved
//Bit 5 reg_nr3_vtxt_mode // unsigned , default = 0 0: avg; 1:MAX
//Bit 4 reg_3dnr_nr3_cbyy_ignor_coop // unsigned , default = 0 ignore coop condition for cbyy motion decision
//Bit 3 reg_3dnr_nr3_ybyc_ignor_cnoop // unsigned , default = 0 ignore cnoop condition for ybyc motion decision
//Bit 2: 0 reg_3dnr_nr3_suremot_txt_mode // unsigned , default = 3 0: cur, 1:p2; 2: (cur+p2)/2; 3/up: min(cur,p2)
#define NR3_COOP_PARA (0x2ff1)
#define P_NR3_COOP_PARA (volatile unsigned int *)((0x2ff1 << 2) + 0xff900000)
//Bit 31:22 reserved
//Bit 21:20 reg_3dnr_nr3_coop_mode // unsigned , default = 2 0 original pixel 1: [1 2 1]/4 lpf; 2: [1 2 2 2 1]/8; 3: 3x3 lpf
//Bit 19:16 reg_3dnr_nr3_coop_ratio // unsigned , default = 8 cur and p2 color oop decision ratio: (avg1<(dif1*ratio/8 + ofst));
//Bit 15: 8 reg_3dnr_nr3_coop_ofset // signed , default = -1 cur and p2 color oop decision ofst: (avg1<(dif1*ratio/8 + ofst));
//Bit 7: 0 reg_3dnr_nr3_coop_sat_thrd // unsigned , default = 0 cur and p2 color oop decision min(sat0,sat1) threshold;
#define NR3_CNOOP_GAIN (0x2ff2)
#define P_NR3_CNOOP_GAIN (volatile unsigned int *)((0x2ff2 << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23:20 reg_3dnr_nr3_cnoop_ratio0 // unsigned , default = 8 cur and p2 color noop decision ratio0: (avg1<(MAX(sat0,sat2)*ratio0/8 + ofst0));
//Bit 19:16 reg_3dnr_nr3_cnoop_ratio1 // unsigned , default = 8 cur and p2 color noop decision ratio1: (dif1<(MIN(sat0,sat2)*ratio1/8 + ofst1));
//Bit 15: 8 reg_3dnr_nr3_cnoop_ofset0 // signed , default = 25 cur and p2 color noop decision ofset0: (avg1<(MAX(sat0,sat2)*ratio0/8 + ofst0));
//Bit 7: 0 reg_3dnr_nr3_cnoop_ofset1 // signed , default = 0 cur and p2 color noop decision ofset1: (dif1<(MIN(sat0,sat2)*ratio1/8 + ofst1));
#define NR3_YMOT_PARA (0x2ff3)
#define P_NR3_YMOT_PARA (volatile unsigned int *)((0x2ff3 << 2) + 0xff900000)
//Bit 31:20 reserved
//Bit 19 reg_3dnr_nr3_ymot_only_en // unsigned , default = 1 enable signal for ignor chroma motion: (ytxt &coop)
//Bit 18 reg_3dnr_nr3_ymot_only_cmtmode // unsigned , default = 1 0: cmot=ymot; 1: cmot = MIN(ymot, cmot)
//Bit 17:16 reg_3dnr_nr3_ymot_only_txtmode // unsigned , default = 0 0, min(txt0,txt2); 1, max(txt0,txt2);2, (txt0+txt2)/2; 3: sat(txt0, txt2)
//Bit 15: 8 reg_3dnr_nr3_ymot_only_txtthrd // unsigned , default = 10 threshold to luma texture to decide use ymot only
//Bit 7: 0 reg_3dnr_nr3_ymot_only_motthrd // unsigned , default = 30 threshold to luma motion to decide use ymot only
#define NR3_CMOT_PARA (0x2ff4)
#define P_NR3_CMOT_PARA (volatile unsigned int *)((0x2ff4 << 2) + 0xff900000)
//Bit 31:20 reserved
//Bit 19 reg_3dnr_nr3_cmot_only_en // unsigned , default = 1 enable signal for ignor luma motion: (ctxt &cnoop)
//Bit 18 reg_3dnr_nr3_cmot_only_ymtmode // unsigned , default = 0 0: ymot=cmot+ymot/4; 1: ymot = MIN(ymot, cmot)
//Bit 17:16 reg_3dnr_nr3_cmot_only_txtmode // unsigned , default = 0 0, min(txt0,txt2); 1, max(txt0,txt2);2, (txt0+txt2)/2; 3: sat(txt0, txt2)
//Bit 15: 8 reg_3dnr_nr3_cmot_only_txtthrd // unsigned , default = 20 threshold to chroma texture to decide use cmot only
//Bit 7: 0 reg_3dnr_nr3_cmot_only_motthrd // unsigned , default = 15 threshold to chroma motion to decide use cmot only
#define NR3_SUREMOT_YGAIN (0x2ff5)
#define P_NR3_SUREMOT_YGAIN (volatile unsigned int *)((0x2ff5 << 2) + 0xff900000)
//Bit 31:24 reg_3dnr_nr3_suremot_dec_yrate // unsigned , default = 16 (norm 16)lpfMot>(dec_rate*txt +ofst) then force lpfMot*frc_gain+frc_ofset
//Bit 23:16 reg_3dnr_nr3_suremot_dec_yofst // unsigned , default = 12 lpfMot>(dec_rate*txt +ofst) then force lpfMot*frc_gain+frc_ofset
//Bit 15: 8 reg_3dnr_nr3_suremot_frc_ygain // unsigned , default = 64 (norm 8)lpfMot>(dec_rate*txt +ofst) then force lpfMot*frc_gain+frc_ofset
//Bit 7: 0 reg_3dnr_nr3_suremot_frc_yofst // unsigned , default = 20 lpfMot>(dec_rate*txt +ofst) then force lpfMot*frc_gain+frc_ofset
#define NR3_SUREMOT_CGAIN (0x2ff6)
#define P_NR3_SUREMOT_CGAIN (volatile unsigned int *)((0x2ff6 << 2) + 0xff900000)
//Bit 31:24 reg_3dnr_nr3_suremot_dec_crate // unsigned , default = 34 (norm 16)lpfMot>(dec_rate*txt +ofst) then force lpfMot*frc_gain+frc_ofset
//Bit 23:16 reg_3dnr_nr3_suremot_dec_cofst // unsigned , default = 38 lpfMot>(dec_rate*txt +ofst) then force lpfMot*frc_gain+frc_ofset
//Bit 15: 8 reg_3dnr_nr3_suremot_frc_cgain // unsigned , default = 64 (norm 8)lpfMot>(dec_rate*txt +ofst) then force lpfMot*frc_gain+frc_ofset
//Bit 7: 0 reg_3dnr_nr3_suremot_frc_cofst // unsigned , default = 20 lpfMot>(dec_rate*txt +ofst) then force lpfMot*frc_gain+frc_ofset
// synopsys translate_off
// synopsys translate_on
//
// Closing file: nr3_tnr_regs.h
//
#define LBUF_TOP_CTRL (0x2fff)
#define P_LBUF_TOP_CTRL (volatile unsigned int *)((0x2fff << 2) + 0xff900000)
//bit 23:22 mode_444c422
//bit 21:20 mode_422c444
//bit 17 lbuf_fmt444_mode
//bit 16 lbuf_line5_mode
//bit 12:0 pre_lbuf_size
// synopsys translate_off
// synopsys translate_on
//
// Closing file: mcdi_regs.h
//
// VPU_VLOCK register (16'h3000 - 16'h30ff)
//========================================================================
//`define VPU_VLOCK_VCBUS_BASE 8'h30
//
// Reading file: vpu_vlock_reg.h
//
// synopsys translate_off
// synopsys translate_on
// ----------------------------
// VPU_VLOCK 0x30
// ----------------------------
// -----------------------------------------------
// CBUS_BASE: VPU_VLOCK_VCBUS_BASE = 0x30
// -----------------------------------------------
#define VPU_VLOCK_CTRL (0x3000)
#define P_VPU_VLOCK_CTRL (volatile unsigned int *)((0x3000 << 2) + 0xff900000)
#define VPU_VLOCK_MISC_CTRL (0x3001)
#define P_VPU_VLOCK_MISC_CTRL (volatile unsigned int *)((0x3001 << 2) + 0xff900000)
#define VPU_VLOCK_LOOP0_ACCUM_LMT (0x3002)
#define P_VPU_VLOCK_LOOP0_ACCUM_LMT (volatile unsigned int *)((0x3002 << 2) + 0xff900000)
#define VPU_VLOCK_LOOP0_CTRL0 (0x3003)
#define P_VPU_VLOCK_LOOP0_CTRL0 (volatile unsigned int *)((0x3003 << 2) + 0xff900000)
#define VPU_VLOCK_LOOP1_CTRL0 (0x3004)
#define P_VPU_VLOCK_LOOP1_CTRL0 (volatile unsigned int *)((0x3004 << 2) + 0xff900000)
#define VPU_VLOCK_LOOP1_IMISSYNC_MAX (0x3005)
#define P_VPU_VLOCK_LOOP1_IMISSYNC_MAX (volatile unsigned int *)((0x3005 << 2) + 0xff900000)
#define VPU_VLOCK_LOOP1_IMISSYNC_MIN (0x3006)
#define P_VPU_VLOCK_LOOP1_IMISSYNC_MIN (volatile unsigned int *)((0x3006 << 2) + 0xff900000)
#define VPU_VLOCK_OVWRITE_ACCUM0 (0x3007)
#define P_VPU_VLOCK_OVWRITE_ACCUM0 (volatile unsigned int *)((0x3007 << 2) + 0xff900000)
#define VPU_VLOCK_OVWRITE_ACCUM1 (0x3008)
#define P_VPU_VLOCK_OVWRITE_ACCUM1 (volatile unsigned int *)((0x3008 << 2) + 0xff900000)
#define VPU_VLOCK_OUTPUT0_CAPT_LMT (0x3009)
#define P_VPU_VLOCK_OUTPUT0_CAPT_LMT (volatile unsigned int *)((0x3009 << 2) + 0xff900000)
#define VPU_VLOCK_OUTPUT0_PLL_LMT (0x300a)
#define P_VPU_VLOCK_OUTPUT0_PLL_LMT (volatile unsigned int *)((0x300a << 2) + 0xff900000)
#define VPU_VLOCK_OUTPUT1_CAPT_LMT (0x300b)
#define P_VPU_VLOCK_OUTPUT1_CAPT_LMT (volatile unsigned int *)((0x300b << 2) + 0xff900000)
#define VPU_VLOCK_OUTPUT1_PLL_LMT (0x300c)
#define P_VPU_VLOCK_OUTPUT1_PLL_LMT (volatile unsigned int *)((0x300c << 2) + 0xff900000)
#define VPU_VLOCK_LOOP1_PHSDIF_TGT (0x300d)
#define P_VPU_VLOCK_LOOP1_PHSDIF_TGT (volatile unsigned int *)((0x300d << 2) + 0xff900000)
#define VPU_VLOCK_RO_LOOP0_ACCUM (0x300e)
#define P_VPU_VLOCK_RO_LOOP0_ACCUM (volatile unsigned int *)((0x300e << 2) + 0xff900000)
#define VPU_VLOCK_RO_LOOP1_ACCUM (0x300f)
#define P_VPU_VLOCK_RO_LOOP1_ACCUM (volatile unsigned int *)((0x300f << 2) + 0xff900000)
#define VPU_VLOCK_OROW_OCOL_MAX (0x3010)
#define P_VPU_VLOCK_OROW_OCOL_MAX (volatile unsigned int *)((0x3010 << 2) + 0xff900000)
#define VPU_VLOCK_RO_VS_I_DIST (0x3011)
#define P_VPU_VLOCK_RO_VS_I_DIST (volatile unsigned int *)((0x3011 << 2) + 0xff900000)
#define VPU_VLOCK_RO_VS_O_DIST (0x3012)
#define P_VPU_VLOCK_RO_VS_O_DIST (volatile unsigned int *)((0x3012 << 2) + 0xff900000)
#define VPU_VLOCK_RO_LINE_PIX_ADJ (0x3013)
#define P_VPU_VLOCK_RO_LINE_PIX_ADJ (volatile unsigned int *)((0x3013 << 2) + 0xff900000)
#define VPU_VLOCK_RO_OUTPUT_00_01 (0x3014)
#define P_VPU_VLOCK_RO_OUTPUT_00_01 (volatile unsigned int *)((0x3014 << 2) + 0xff900000)
#define VPU_VLOCK_RO_OUTPUT_10_11 (0x3015)
#define P_VPU_VLOCK_RO_OUTPUT_10_11 (volatile unsigned int *)((0x3015 << 2) + 0xff900000)
#define VPU_VLOCK_MX4096 (0x3016)
#define P_VPU_VLOCK_MX4096 (volatile unsigned int *)((0x3016 << 2) + 0xff900000)
#define VPU_VLOCK_STBDET_WIN0_WIN1 (0x3017)
#define P_VPU_VLOCK_STBDET_WIN0_WIN1 (volatile unsigned int *)((0x3017 << 2) + 0xff900000)
#define VPU_VLOCK_STBDET_CLP (0x3018)
#define P_VPU_VLOCK_STBDET_CLP (volatile unsigned int *)((0x3018 << 2) + 0xff900000)
#define VPU_VLOCK_STBDET_ABS_WIN0 (0x3019)
#define P_VPU_VLOCK_STBDET_ABS_WIN0 (volatile unsigned int *)((0x3019 << 2) + 0xff900000)
#define VPU_VLOCK_STBDET_ABS_WIN1 (0x301a)
#define P_VPU_VLOCK_STBDET_ABS_WIN1 (volatile unsigned int *)((0x301a << 2) + 0xff900000)
#define VPU_VLOCK_STBDET_SGN_WIN0 (0x301b)
#define P_VPU_VLOCK_STBDET_SGN_WIN0 (volatile unsigned int *)((0x301b << 2) + 0xff900000)
#define VPU_VLOCK_STBDET_SGN_WIN1 (0x301c)
#define P_VPU_VLOCK_STBDET_SGN_WIN1 (volatile unsigned int *)((0x301c << 2) + 0xff900000)
#define VPU_VLOCK_ADJ_EN_SYNC_CTRL (0x301d)
#define P_VPU_VLOCK_ADJ_EN_SYNC_CTRL (volatile unsigned int *)((0x301d << 2) + 0xff900000)
#define VPU_VLOCK_GCLK_EN (0x301e)
#define P_VPU_VLOCK_GCLK_EN (volatile unsigned int *)((0x301e << 2) + 0xff900000)
#define VPU_VLOCK_LOOP1_ACCUM_LMT (0x301f)
#define P_VPU_VLOCK_LOOP1_ACCUM_LMT (volatile unsigned int *)((0x301f << 2) + 0xff900000)
#define VPU_VLOCK_RO_M_INT_FRAC (0x3020)
#define P_VPU_VLOCK_RO_M_INT_FRAC (volatile unsigned int *)((0x3020 << 2) + 0xff900000)
// synopsys translate_off
// synopsys translate_on
//
// Closing file: vpu_vlock_reg.h
//
//`define VPPB_VCBUS_BASE 8'h31
//
// Reading file: srscl_reg.h
//
// synopsys translate_off
// synopsys translate_on
// -----------------------------------------------
// CBUS_BASE: VPPB_VCBUS_BASE = 0x31
// -----------------------------------------------
////=================================================================////
//// vkeystone
////=================================================================////
// 8'h00-8'h17
//
// Reading file: vkstone_regs.h
//
// synopsys translate_off
// synopsys translate_on
#define VKS_CTRL (0x3100)
#define P_VKS_CTRL (volatile unsigned int *)((0x3100 << 2) + 0xff900000)
//Bit 31 reg_vks_en // unsigned , default = 1 enable signal of the vks function
//Bit 30 reg_vks_scl_mode0 // unsigned , default = 1 : b0 mode of vks ofset mode, 0: offset= offset; 1: offset= offset*step= ofset/scale;
//Bit 29 reg_vks_scl_mode1 // unsigned , default = 1 : b0 mode of vks ofset mode, 0: offset= offset; 1: offset= offset*step= ofset/scale;
//Bit 28 reg_vks_fill_mode // unsigned , default = 1 mode of out-of-boundary fill, 0 extension, 1: fill with the fill_value
//Bit 27:26 reg_vks_row_inp_mode // unsigned , default = 1 , interpolation mode from 16pieces ofset/step to each line ofset and step; 0: linear interpolation; 1: cubic interpolation (using ccoef)
//Bit 25 reg_vks_border_ext_mode0 // unsigned , default = 0 , extend mode of the border data of luma and chroma, 0: copy the most border one; 1: extropolate the border one
//Bit 24 reg_vks_border_ext_mode1 // unsigned , default = 0 , extend mode of the border data of luma and chroma, 0: copy the most border one; 1: extropolate the border one
//Bit 23 reg_vks_obuf_mode0 // unsigned , default = 1 , mode of output buffer left/right side. 0: no precalculate active pixels during output fill region; 1: precaclc active pixels during output fill regions
//Bit 22 reg_vks_obuf_mode1 // unsigned , default = 1 , mode of output buffer left/right side. 0: no precalculate active pixels during output fill region; 1: precaclc active pixels during output fill regions
//Bit 21:20 reg_vks_obuf_mrgn0 // unsigned , default = 3 , margin pixels for left right most active pixel to the fill pixels to avoid jump
//Bit 19:18 reg_vks_obuf_mrgn1 // unsigned , default = 3 , margin pixels for left right most active pixel to the fill pixels to avoid jump
//Bit 17:16 reg_vks_phs_qmode // unsigned , default = 2 , interpolation mode of the phase, 0: floor to 1/64 phase; 1: round to 1/64 phase; 2/3 linear intp
//Bit 15: 0 reg_vks_row_scl // unsigned , default = 11651 , scale of row to make it fit to the 16 pieces, scl = (2^23)/RowMax
#define VKS_OUT_WIN_SIZE (0x3101)
#define P_VKS_OUT_WIN_SIZE (volatile unsigned int *)((0x3101 << 2) + 0xff900000)
//Bit 31:30 reserved
//Bit 29:16 reg_vks_ocolmax // unsigned , default = 1280 output outer window col number, decided by the projector
//Bit 15:14 reserved
//Bit 13: 0 reg_vks_orowmax // unsigned , default = 720 output outer window row number, decided by the projector
#define VKS_PRELPF_YCOEF0 (0x3102)
#define P_VKS_PRELPF_YCOEF0 (volatile unsigned int *)((0x3102 << 2) + 0xff900000)
//Bit 31:24 reg_vks_prelpf_ycoef0 // signed , default = -128 coef of horizontal luma prelpf for Keystone, normalized 128 as '1'
//Bit 23:16 reg_vks_prelpf_ycoef1 // signed , default = 0 coef of horizontal luma prelpf for Keystone, normalized 128 as '1'
//Bit 15: 8 reg_vks_prelpf_ycoef2 // signed , default = 0 coef of horizontal luma prelpf for Keystone, normalized 128 as '1'
//Bit 7: 0 reg_vks_prelpf_ycoef3 // signed , default = 0 coef of horizontal luma prelpf for Keystone, normalized 128 as '1'
#define VKS_PRELPF_YCOEF1 (0x3103)
#define P_VKS_PRELPF_YCOEF1 (volatile unsigned int *)((0x3103 << 2) + 0xff900000)
//Bit 31:16 reserved
//Bit 15: 8 reg_vks_prelpf_ycoef4 // signed , default = 0 coef of horizontal luma prelpf for Keystone, normalized 128 as '1'
//Bit 7: 0 reg_vks_prelpf_ycoef5 // signed , default = 0 coef of horizontal luma prelpf for Keystone, normalized 128 as '1'
#define VKS_PRELPF_CCOEF0 (0x3104)
#define P_VKS_PRELPF_CCOEF0 (volatile unsigned int *)((0x3104 << 2) + 0xff900000)
//Bit 31:24 reg_vks_prelpf_ccoef0 // signed , default = -128 mode of horizontal chroma prelpf for Keystone, normalized 128 as '1'
//Bit 23:16 reg_vks_prelpf_ccoef1 // signed , default = 0 mode of horizontal chroma prelpf for Keystone, normalized 128 as '1'
//Bit 15: 8 reg_vks_prelpf_ccoef2 // signed , default = 0 mode of horizontal chroma prelpf for Keystone, normalized 128 as '1'
//Bit 7: 0 reg_vks_prelpf_ccoef3 // signed , default = 0 mode of horizontal chroma prelpf for Keystone, normalized 128 as '1'
#define VKS_PRELPF_CCOEF1 (0x3105)
#define P_VKS_PRELPF_CCOEF1 (volatile unsigned int *)((0x3105 << 2) + 0xff900000)
//Bit 31:16 reserved
//Bit 15: 8 reg_vks_prelpf_ccoef4 // signed , default = 0 mode of horizontal chroma prelpf for Keystone, normalized 128 as '1'
//Bit 7: 0 reg_vks_prelpf_ccoef5 // signed , default = 0 mode of horizontal chroma prelpf for Keystone, normalized 128 as '1'
#define VKS_FILL_VAL (0x3106)
#define P_VKS_FILL_VAL (volatile unsigned int *)((0x3106 << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23:16 reg_vks_fill_value0 // unsigned , default = 0 , border fill color define. yuv: [0 128 128]; rgb:[0 0 0]
//Bit 15: 8 reg_vks_fill_value1 // unsigned , default = 128 , border fill color define. yuv: [0 128 128]; rgb:[0 0 0]
//Bit 7: 0 reg_vks_fill_value2 // unsigned , default = 128 , border fill color define. yuv: [0 128 128]; rgb:[0 0 0]
#define VKS_IWIN_HSIZE (0x3107)
#define P_VKS_IWIN_HSIZE (volatile unsigned int *)((0x3107 << 2) + 0xff900000)
//Bit 31:30 reserved
//Bit 29:16 reg_vks_iwinx0 // unsigned , default = 160 , input start-col and end-col;
//Bit 15:14 reserved
//Bit 13: 0 reg_vks_iwinx1 // unsigned , default = 1279 , input start-col and end-col;
#define VKS_IWIN_VSIZE (0x3108)
#define P_VKS_IWIN_VSIZE (volatile unsigned int *)((0x3108 << 2) + 0xff900000)
//Bit 31:30 reserved
//Bit 29:16 reg_vks_iwiny0 // unsigned , default = 0 , input start-row and end-row;
//Bit 15:14 reserved
//Bit 13: 0 reg_vks_iwiny1 // unsigned , default = 719 , input start-row and end-row;
#define VKS_TOP_MISC (0x3109)
#define P_VKS_TOP_MISC (volatile unsigned int *)((0x3109 << 2) + 0xff900000)
//Bit 31:19 reserved
//Bit 18 reg_flt_en // unsigned , default = 1
//Bit 17 reg_frm_rst // unsigned , default = 0
//Bit 16 reg_ctrl_sync // unsigned , default = 0
//Bit 15: 8 blank_num // unsigned , default = 4
//Bit 7: 0 flt_blank_num // unsigned , default = 9
#define VKS_START_CTRL (0x310a)
#define P_VKS_START_CTRL (volatile unsigned int *)((0x310a << 2) + 0xff900000)
//Bit 31:17 reserved
//Bit 16 reg_vks_en_mode // unsigned , default = 0
//Bit 15: 0 reg_hold_phnum // unsigned , default = 5
#define VKS_LBUF_SIZE (0x310b)
#define P_VKS_LBUF_SIZE (volatile unsigned int *)((0x310b << 2) + 0xff900000)
//Bit 31:12 reserved
//Bit 11: 0 reg_lbuf_depth // unsigned , default = 1024
#define VKS_PARA_ADDR_PORT (0x310e)
#define P_VKS_PARA_ADDR_PORT (volatile unsigned int *)((0x310e << 2) + 0xff900000)
#define VKS_PARA_DATA_PORT (0x310f)
#define P_VKS_PARA_DATA_PORT (volatile unsigned int *)((0x310f << 2) + 0xff900000)
#define VKS_SCL_OFSET00 0x9 //
//Bit 31:20 reserved
//Bit 19: 0 reg_vks_scl_ofset0 // unsigned , default = 118534 , left offset of the input pixel offset from left, 12.8 12bits pixel + 8bits float phase
#define VKS_SCL_OFSET01 0xa //
//Bit 31:20 reserved
//Bit 19: 0 reg_vks_scl_ofset1 // unsigned , default = 111450 , left offset of the input pixel offset from left, 12.8 12bits pixel + 8bits float phase
#define VKS_SCL_OFSET02 0xb //
//Bit 31:20 reserved
//Bit 19: 0 reg_vks_scl_ofset2 // unsigned , default = 104366 , left offset of the input pixel offset from left, 12.8 12bits pixel + 8bits float phase
#define VKS_SCL_OFSET03 0xc //
//Bit 31:20 reserved
//Bit 19: 0 reg_vks_scl_ofset3 // unsigned , default = 97283 , left offset of the input pixel offset from left, 12.8 12bits pixel + 8bits float phase
#define VKS_SCL_OFSET04 0xd //
//Bit 31:20 reserved
//Bit 19: 0 reg_vks_scl_ofset4 // unsigned , default = 90199 , left offset of the input pixel offset from left, 12.8 12bits pixel + 8bits float phase
#define VKS_SCL_OFSET05 0xe //
//Bit 31:20 reserved
//Bit 19: 0 reg_vks_scl_ofset5 // unsigned , default = 83115 , left offset of the input pixel offset from left, 12.8 12bits pixel + 8bits float phase
#define VKS_SCL_OFSET06 0xf //
//Bit 31:20 reserved
//Bit 19: 0 reg_vks_scl_ofset6 // unsigned , default = 76031 , left offset of the input pixel offset from left, 12.8 12bits pixel + 8bits float phase
#define VKS_SCL_OFSET07 0x10 //
//Bit 31:20 reserved
//Bit 19: 0 reg_vks_scl_ofset7 // unsigned , default = 68947 , left offset of the input pixel offset from left, 12.8 12bits pixel + 8bits float phase
#define VKS_SCL_OFSET08 0x11 //
//Bit 31:20 reserved
//Bit 19: 0 reg_vks_scl_ofset8 // unsigned , default = 61864 , left offset of the input pixel offset from left, 12.8 12bits pixel + 8bits float phase
#define VKS_SCL_OFSET09 0x12 //
//Bit 31:20 reserved
//Bit 19: 0 reg_vks_scl_ofset9 // unsigned , default = 54780 , left offset of the input pixel offset from left, 12.8 12bits pixel + 8bits float phase
#define VKS_SCL_OFSET10 0x13 //
//Bit 31:20 reserved
//Bit 19: 0 reg_vks_scl_ofset10 // unsigned , default = 47696 , left offset of the input pixel offset from left, 12.8 12bits pixel + 8bits float phase
#define VKS_SCL_OFSET11 0x14 //
//Bit 31:20 reserved
//Bit 19: 0 reg_vks_scl_ofset11 // unsigned , default = 40612 , left offset of the input pixel offset from left, 12.8 12bits pixel + 8bits float phase
#define VKS_SCL_OFSET12 0x15 //
//Bit 31:20 reserved
//Bit 19: 0 reg_vks_scl_ofset12 // unsigned , default = 33528 , left offset of the input pixel offset from left, 12.8 12bits pixel + 8bits float phase
#define VKS_SCL_OFSET13 0x16 //
//Bit 31:20 reserved
//Bit 19: 0 reg_vks_scl_ofset13 // unsigned , default = 26444 , left offset of the input pixel offset from left, 12.8 12bits pixel + 8bits float phase
#define VKS_SCL_OFSET14 0x17 //
//Bit 31:20 reserved
//Bit 19: 0 reg_vks_scl_ofset14 // unsigned , default = 19361 , left offset of the input pixel offset from left, 12.8 12bits pixel + 8bits float phase
#define VKS_SCL_OFSET15 0x18 //
//Bit 31:20 reserved
//Bit 19: 0 reg_vks_scl_ofset15 // unsigned , default = 12277 , left offset of the input pixel offset from left, 12.8 12bits pixel + 8bits float phase
#define VKS_SCL_OFSET16 0x19 //
//Bit 31:20 reserved
//Bit 19: 0 reg_vks_scl_ofset16 // unsigned , default = 5193 , left offset of the input pixel offset from left, 12.8 12bits pixel + 8bits float phase
#define VKS_SCL_STEP00 0x1a //
//Bit 31:24 reserved
//Bit 23: 0 reg_vks_scl_step0 // unsigned , default = 331378 , for ratio of each line (defined piece),step: 4.20 opixnum = (ipixnum<<20)/step; scale:4.20 = 1/step
#define VKS_SCL_STEP01 0x1b //
//Bit 31:24 reserved
//Bit 23: 0 reg_vks_scl_step1 // unsigned , default = 383191 , for ratio of each line (defined piece),step: 4.20 opixnum = (ipixnum<<20)/step; scale:4.20 = 1/step
#define VKS_SCL_STEP02 0x1c //
//Bit 31:24 reserved
//Bit 23: 0 reg_vks_scl_step2 // unsigned , default = 435004 , for ratio of each line (defined piece),step: 4.20 opixnum = (ipixnum<<20)/step; scale:4.20 = 1/step
#define VKS_SCL_STEP03 0x1d //
//Bit 31:24 reserved
//Bit 23: 0 reg_vks_scl_step3 // unsigned , default = 486818 , for ratio of each line (defined piece),step: 4.20 opixnum = (ipixnum<<20)/step; scale:4.20 = 1/step
#define VKS_SCL_STEP04 0x1e //
//Bit 31:24 reserved
//Bit 23: 0 reg_vks_scl_step4 // unsigned , default = 538631 , for ratio of each line (defined piece),step: 4.20 opixnum = (ipixnum<<20)/step; scale:4.20 = 1/step
#define VKS_SCL_STEP05 0x1f //
//Bit 31:24 reserved
//Bit 23: 0 reg_vks_scl_step5 // unsigned , default = 590444 , for ratio of each line (defined piece),step: 4.20 opixnum = (ipixnum<<20)/step; scale:4.20 = 1/step
#define VKS_SCL_STEP06 0x20 //
//Bit 31:24 reserved
//Bit 23: 0 reg_vks_scl_step6 // unsigned , default = 642257 , for ratio of each line (defined piece),step: 4.20 opixnum = (ipixnum<<20)/step; scale:4.20 = 1/step
#define VKS_SCL_STEP07 0x21 //
//Bit 31:24 reserved
//Bit 23: 0 reg_vks_scl_step7 // unsigned , default = 694070 , for ratio of each line (defined piece),step: 4.20 opixnum = (ipixnum<<20)/step; scale:4.20 = 1/step
#define VKS_SCL_STEP08 0x22 //
//Bit 31:24 reserved
//Bit 23: 0 reg_vks_scl_step8 // unsigned , default = 745884 , for ratio of each line (defined piece),step: 4.20 opixnum = (ipixnum<<20)/step; scale:4.20 = 1/step
#define VKS_SCL_STEP09 0x23 //
//Bit 31:24 reserved
//Bit 23: 0 reg_vks_scl_step9 // unsigned , default = 797697 , for ratio of each line (defined piece),step: 4.20 opixnum = (ipixnum<<20)/step; scale:4.20 = 1/step
#define VKS_SCL_STEP10 0x24 //
//Bit 31:24 reserved
//Bit 23: 0 reg_vks_scl_step10 // unsigned , default = 849510 , for ratio of each line (defined piece),step: 4.20 opixnum = (ipixnum<<20)/step; scale:4.20 = 1/step
#define VKS_SCL_STEP11 0x25 //
//Bit 31:24 reserved
//Bit 23: 0 reg_vks_scl_step11 // unsigned , default = 901323 , for ratio of each line (defined piece),step: 4.20 opixnum = (ipixnum<<20)/step; scale:4.20 = 1/step
#define VKS_SCL_STEP12 0x26 //
//Bit 31:24 reserved
//Bit 23: 0 reg_vks_scl_step12 // unsigned , default = 953136 , for ratio of each line (defined piece),step: 4.20 opixnum = (ipixnum<<20)/step; scale:4.20 = 1/step
#define VKS_SCL_STEP13 0x27 //
//Bit 31:24 reserved
//Bit 23: 0 reg_vks_scl_step13 // unsigned , default = 1004949 , for ratio of each line (defined piece),step: 4.20 opixnum = (ipixnum<<20)/step; scale:4.20 = 1/step
#define VKS_SCL_STEP14 0x28 //
//Bit 31:24 reserved
//Bit 23: 0 reg_vks_scl_step14 // unsigned , default = 1056763 , for ratio of each line (defined piece),step: 4.20 opixnum = (ipixnum<<20)/step; scale:4.20 = 1/step
#define VKS_SCL_STEP15 0x29 //
//Bit 31:24 reserved
//Bit 23: 0 reg_vks_scl_step15 // unsigned , default = 1108576 , for ratio of each line (defined piece),step: 4.20 opixnum = (ipixnum<<20)/step; scale:4.20 = 1/step
#define VKS_SCL_STEP16 0x2a //
//Bit 31:24 reserved
//Bit 23: 0 reg_vks_scl_step16 // unsigned , default = 1160389 , for ratio of each line (defined piece),step: 4.20 opixnum = (ipixnum<<20)/step; scale:4.20 = 1/step
#define VKS_PPS_YCOEF00 0x2b //
//Bit 31:24 reg_vks_ycoef0 // signed , default = 0 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef1 // signed , default = 128 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef2 // signed , default = 0 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef3 // signed , default = 0 poly-phase scalar coefs
#define VKS_PPS_YCOEF01 0x2c //
//Bit 31:24 reg_vks_ycoef4 // signed , default = 0 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef5 // signed , default = 127 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef6 // signed , default = 1 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef7 // signed , default = 0 poly-phase scalar coefs
#define VKS_PPS_YCOEF02 0x2d //
//Bit 31:24 reg_vks_ycoef8 // signed , default = -1 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef9 // signed , default = 127 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef10 // signed , default = 2 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef11 // signed , default = 0 poly-phase scalar coefs
#define VKS_PPS_YCOEF03 0x2e //
//Bit 31:24 reg_vks_ycoef12 // signed , default = -2 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef13 // signed , default = 127 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef14 // signed , default = 3 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef15 // signed , default = 0 poly-phase scalar coefs
#define VKS_PPS_YCOEF04 0x2f //
//Bit 31:24 reg_vks_ycoef16 // signed , default = -3 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef17 // signed , default = 126 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef18 // signed , default = 5 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef19 // signed , default = 0 poly-phase scalar coefs
#define VKS_PPS_YCOEF05 0x30 //
//Bit 31:24 reg_vks_ycoef20 // signed , default = -4 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef21 // signed , default = 126 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef22 // signed , default = 6 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef23 // signed , default = 0 poly-phase scalar coefs
#define VKS_PPS_YCOEF06 0x31 //
//Bit 31:24 reg_vks_ycoef24 // signed , default = -5 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef25 // signed , default = 125 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef26 // signed , default = 8 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef27 // signed , default = 0 poly-phase scalar coefs
#define VKS_PPS_YCOEF07 0x32 //
//Bit 31:24 reg_vks_ycoef28 // signed , default = -5 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef29 // signed , default = 124 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef30 // signed , default = 9 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef31 // signed , default = 0 poly-phase scalar coefs
#define VKS_PPS_YCOEF08 0x33 //
//Bit 31:24 reg_vks_ycoef32 // signed , default = -6 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef33 // signed , default = 123 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef34 // signed , default = 11 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef35 // signed , default = 0 poly-phase scalar coefs
#define VKS_PPS_YCOEF09 0x34 //
//Bit 31:24 reg_vks_ycoef36 // signed , default = -6 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef37 // signed , default = 122 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef38 // signed , default = 13 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef39 // signed , default = -1 poly-phase scalar coefs
#define VKS_PPS_YCOEF10 0x35 //
//Bit 31:24 reg_vks_ycoef40 // signed , default = -7 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef41 // signed , default = 121 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef42 // signed , default = 15 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef43 // signed , default = -1 poly-phase scalar coefs
#define VKS_PPS_YCOEF11 0x36 //
//Bit 31:24 reg_vks_ycoef44 // signed , default = -7 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef45 // signed , default = 119 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef46 // signed , default = 17 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef47 // signed , default = -1 poly-phase scalar coefs
#define VKS_PPS_YCOEF12 0x37 //
//Bit 31:24 reg_vks_ycoef48 // signed , default = -8 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef49 // signed , default = 118 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef50 // signed , default = 19 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef51 // signed , default = -1 poly-phase scalar coefs
#define VKS_PPS_YCOEF13 0x38 //
//Bit 31:24 reg_vks_ycoef52 // signed , default = -8 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef53 // signed , default = 116 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef54 // signed , default = 22 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef55 // signed , default = -2 poly-phase scalar coefs
#define VKS_PPS_YCOEF14 0x39 //
//Bit 31:24 reg_vks_ycoef56 // signed , default = -8 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef57 // signed , default = 114 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef58 // signed , default = 24 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef59 // signed , default = -2 poly-phase scalar coefs
#define VKS_PPS_YCOEF15 0x3a //
//Bit 31:24 reg_vks_ycoef60 // signed , default = -8 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef61 // signed , default = 112 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef62 // signed , default = 26 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef63 // signed , default = -2 poly-phase scalar coefs
#define VKS_PPS_YCOEF16 0x3b //
//Bit 31:24 reg_vks_ycoef64 // signed , default = -9 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef65 // signed , default = 111 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef66 // signed , default = 29 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef67 // signed , default = -3 poly-phase scalar coefs
#define VKS_PPS_YCOEF17 0x3c //
//Bit 31:24 reg_vks_ycoef68 // signed , default = -9 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef69 // signed , default = 109 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef70 // signed , default = 31 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef71 // signed , default = -3 poly-phase scalar coefs
#define VKS_PPS_YCOEF18 0x3d //
//Bit 31:24 reg_vks_ycoef72 // signed , default = -9 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef73 // signed , default = 107 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef74 // signed , default = 33 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef75 // signed , default = -3 poly-phase scalar coefs
#define VKS_PPS_YCOEF19 0x3e //
//Bit 31:24 reg_vks_ycoef76 // signed , default = -9 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef77 // signed , default = 104 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef78 // signed , default = 36 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef79 // signed , default = -3 poly-phase scalar coefs
#define VKS_PPS_YCOEF20 0x3f //
//Bit 31:24 reg_vks_ycoef80 // signed , default = -9 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef81 // signed , default = 102 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef82 // signed , default = 39 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef83 // signed , default = -4 poly-phase scalar coefs
#define VKS_PPS_YCOEF21 0x40 //
//Bit 31:24 reg_vks_ycoef84 // signed , default = -9 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef85 // signed , default = 100 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef86 // signed , default = 41 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef87 // signed , default = -4 poly-phase scalar coefs
#define VKS_PPS_YCOEF22 0x41 //
//Bit 31:24 reg_vks_ycoef88 // signed , default = -9 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef89 // signed , default = 97 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef90 // signed , default = 44 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef91 // signed , default = -4 poly-phase scalar coefs
#define VKS_PPS_YCOEF23 0x42 //
//Bit 31:24 reg_vks_ycoef92 // signed , default = -9 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef93 // signed , default = 95 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef94 // signed , default = 47 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef95 // signed , default = -5 poly-phase scalar coefs
#define VKS_PPS_YCOEF24 0x43 //
//Bit 31:24 reg_vks_ycoef96 // signed , default = -9 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef97 // signed , default = 93 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef98 // signed , default = 49 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef99 // signed , default = -5 poly-phase scalar coefs
#define VKS_PPS_YCOEF25 0x44 //
//Bit 31:24 reg_vks_ycoef100 // signed , default = -9 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef101 // signed , default = 90 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef102 // signed , default = 52 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef103 // signed , default = -5 poly-phase scalar coefs
#define VKS_PPS_YCOEF26 0x45 //
//Bit 31:24 reg_vks_ycoef104 // signed , default = -9 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef105 // signed , default = 88 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef106 // signed , default = 55 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef107 // signed , default = -6 poly-phase scalar coefs
#define VKS_PPS_YCOEF27 0x46 //
//Bit 31:24 reg_vks_ycoef108 // signed , default = -9 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef109 // signed , default = 85 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef110 // signed , default = 58 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef111 // signed , default = -6 poly-phase scalar coefs
#define VKS_PPS_YCOEF28 0x47 //
//Bit 31:24 reg_vks_ycoef112 // signed , default = -8 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef113 // signed , default = 82 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef114 // signed , default = 60 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef115 // signed , default = -6 poly-phase scalar coefs
#define VKS_PPS_YCOEF29 0x48 //
//Bit 31:24 reg_vks_ycoef116 // signed , default = -8 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef117 // signed , default = 80 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef118 // signed , default = 63 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef119 // signed , default = -7 poly-phase scalar coefs
#define VKS_PPS_YCOEF30 0x49 //
//Bit 31:24 reg_vks_ycoef120 // signed , default = -8 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef121 // signed , default = 77 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef122 // signed , default = 66 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef123 // signed , default = -7 poly-phase scalar coefs
#define VKS_PPS_YCOEF31 0x4a //
//Bit 31:24 reg_vks_ycoef124 // signed , default = -8 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef125 // signed , default = 74 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef126 // signed , default = 69 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef127 // signed , default = -7 poly-phase scalar coefs
#define VKS_PPS_YCOEF32 0x4b //
//Bit 31:24 reg_vks_ycoef128 // signed , default = -8 poly-phase scalar coefs
//Bit 23:16 reg_vks_ycoef129 // signed , default = 72 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ycoef130 // signed , default = 72 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ycoef131 // signed , default = -8 poly-phase scalar coefs
#define VKS_PPS_CCOEF00 0x4c //
//Bit 31:24 reg_vks_ccoef0 // signed , default = 0 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef1 // signed , default = 128 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef2 // signed , default = 0 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef3 // signed , default = 0 poly-phase scalar coefs
#define VKS_PPS_CCOEF01 0x4d //
//Bit 31:24 reg_vks_ccoef4 // signed , default = 0 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef5 // signed , default = 127 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef6 // signed , default = 1 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef7 // signed , default = 0 poly-phase scalar coefs
#define VKS_PPS_CCOEF02 0x4e //
//Bit 31:24 reg_vks_ccoef8 // signed , default = -1 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef9 // signed , default = 127 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef10 // signed , default = 2 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef11 // signed , default = 0 poly-phase scalar coefs
#define VKS_PPS_CCOEF03 0x4f //
//Bit 31:24 reg_vks_ccoef12 // signed , default = -2 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef13 // signed , default = 127 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef14 // signed , default = 3 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef15 // signed , default = 0 poly-phase scalar coefs
#define VKS_PPS_CCOEF04 0x50 //
//Bit 31:24 reg_vks_ccoef16 // signed , default = -3 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef17 // signed , default = 126 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef18 // signed , default = 5 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef19 // signed , default = 0 poly-phase scalar coefs
#define VKS_PPS_CCOEF05 0x51 //
//Bit 31:24 reg_vks_ccoef20 // signed , default = -4 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef21 // signed , default = 126 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef22 // signed , default = 6 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef23 // signed , default = 0 poly-phase scalar coefs
#define VKS_PPS_CCOEF06 0x52 //
//Bit 31:24 reg_vks_ccoef24 // signed , default = -5 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef25 // signed , default = 125 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef26 // signed , default = 8 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef27 // signed , default = 0 poly-phase scalar coefs
#define VKS_PPS_CCOEF07 0x53 //
//Bit 31:24 reg_vks_ccoef28 // signed , default = -5 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef29 // signed , default = 124 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef30 // signed , default = 9 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef31 // signed , default = 0 poly-phase scalar coefs
#define VKS_PPS_CCOEF08 0x54 //
//Bit 31:24 reg_vks_ccoef32 // signed , default = -6 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef33 // signed , default = 123 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef34 // signed , default = 11 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef35 // signed , default = 0 poly-phase scalar coefs
#define VKS_PPS_CCOEF09 0x55 //
//Bit 31:24 reg_vks_ccoef36 // signed , default = -6 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef37 // signed , default = 122 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef38 // signed , default = 13 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef39 // signed , default = -1 poly-phase scalar coefs
#define VKS_PPS_CCOEF10 0x56 //
//Bit 31:24 reg_vks_ccoef40 // signed , default = -7 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef41 // signed , default = 121 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef42 // signed , default = 15 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef43 // signed , default = -1 poly-phase scalar coefs
#define VKS_PPS_CCOEF11 0x57 //
//Bit 31:24 reg_vks_ccoef44 // signed , default = -7 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef45 // signed , default = 119 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef46 // signed , default = 17 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef47 // signed , default = -1 poly-phase scalar coefs
#define VKS_PPS_CCOEF12 0x58 //
//Bit 31:24 reg_vks_ccoef48 // signed , default = -8 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef49 // signed , default = 118 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef50 // signed , default = 19 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef51 // signed , default = -1 poly-phase scalar coefs
#define VKS_PPS_CCOEF13 0x59 //
//Bit 31:24 reg_vks_ccoef52 // signed , default = -8 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef53 // signed , default = 116 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef54 // signed , default = 22 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef55 // signed , default = -2 poly-phase scalar coefs
#define VKS_PPS_CCOEF14 0x5a //
//Bit 31:24 reg_vks_ccoef56 // signed , default = -8 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef57 // signed , default = 114 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef58 // signed , default = 24 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef59 // signed , default = -2 poly-phase scalar coefs
#define VKS_PPS_CCOEF15 0x5b //
//Bit 31:24 reg_vks_ccoef60 // signed , default = -8 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef61 // signed , default = 112 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef62 // signed , default = 26 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef63 // signed , default = -2 poly-phase scalar coefs
#define VKS_PPS_CCOEF16 0x5c //
//Bit 31:24 reg_vks_ccoef64 // signed , default = -9 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef65 // signed , default = 111 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef66 // signed , default = 29 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef67 // signed , default = -3 poly-phase scalar coefs
#define VKS_PPS_CCOEF17 0x5d //
//Bit 31:24 reg_vks_ccoef68 // signed , default = -9 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef69 // signed , default = 109 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef70 // signed , default = 31 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef71 // signed , default = -3 poly-phase scalar coefs
#define VKS_PPS_CCOEF18 0x5e //
//Bit 31:24 reg_vks_ccoef72 // signed , default = -9 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef73 // signed , default = 107 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef74 // signed , default = 33 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef75 // signed , default = -3 poly-phase scalar coefs
#define VKS_PPS_CCOEF19 0x5f //
//Bit 31:24 reg_vks_ccoef76 // signed , default = -9 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef77 // signed , default = 104 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef78 // signed , default = 36 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef79 // signed , default = -3 poly-phase scalar coefs
#define VKS_PPS_CCOEF20 0x60 //
//Bit 31:24 reg_vks_ccoef80 // signed , default = -9 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef81 // signed , default = 102 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef82 // signed , default = 39 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef83 // signed , default = -4 poly-phase scalar coefs
#define VKS_PPS_CCOEF21 0x61 //
//Bit 31:24 reg_vks_ccoef84 // signed , default = -9 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef85 // signed , default = 100 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef86 // signed , default = 41 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef87 // signed , default = -4 poly-phase scalar coefs
#define VKS_PPS_CCOEF22 0x62 //
//Bit 31:24 reg_vks_ccoef88 // signed , default = -9 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef89 // signed , default = 97 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef90 // signed , default = 44 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef91 // signed , default = -4 poly-phase scalar coefs
#define VKS_PPS_CCOEF23 0x63 //
//Bit 31:24 reg_vks_ccoef92 // signed , default = -9 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef93 // signed , default = 95 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef94 // signed , default = 47 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef95 // signed , default = -5 poly-phase scalar coefs
#define VKS_PPS_CCOEF24 0x64 //
//Bit 31:24 reg_vks_ccoef96 // signed , default = -9 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef97 // signed , default = 93 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef98 // signed , default = 49 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef99 // signed , default = -5 poly-phase scalar coefs
#define VKS_PPS_CCOEF25 0x65 //
//Bit 31:24 reg_vks_ccoef100 // signed , default = -9 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef101 // signed , default = 90 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef102 // signed , default = 52 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef103 // signed , default = -5 poly-phase scalar coefs
#define VKS_PPS_CCOEF26 0x66 //
//Bit 31:24 reg_vks_ccoef104 // signed , default = -9 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef105 // signed , default = 88 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef106 // signed , default = 55 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef107 // signed , default = -6 poly-phase scalar coefs
#define VKS_PPS_CCOEF27 0x67 //
//Bit 31:24 reg_vks_ccoef108 // signed , default = -9 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef109 // signed , default = 85 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef110 // signed , default = 58 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef111 // signed , default = -6 poly-phase scalar coefs
#define VKS_PPS_CCOEF28 0x68 //
//Bit 31:24 reg_vks_ccoef112 // signed , default = -8 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef113 // signed , default = 82 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef114 // signed , default = 60 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef115 // signed , default = -6 poly-phase scalar coefs
#define VKS_PPS_CCOEF29 0x69 //
//Bit 31:24 reg_vks_ccoef116 // signed , default = -8 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef117 // signed , default = 80 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef118 // signed , default = 63 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef119 // signed , default = -7 poly-phase scalar coefs
#define VKS_PPS_CCOEF30 0x6a //
//Bit 31:24 reg_vks_ccoef120 // signed , default = -8 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef121 // signed , default = 77 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef122 // signed , default = 66 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef123 // signed , default = -7 poly-phase scalar coefs
#define VKS_PPS_CCOEF31 0x6b //
//Bit 31:24 reg_vks_ccoef124 // signed , default = -8 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef125 // signed , default = 74 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef126 // signed , default = 69 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef127 // signed , default = -7 poly-phase scalar coefs
#define VKS_PPS_CCOEF32 0x6c //
//Bit 31:24 reg_vks_ccoef128 // signed , default = -8 poly-phase scalar coefs
//Bit 23:16 reg_vks_ccoef129 // signed , default = 72 poly-phase scalar coefs
//Bit 15: 8 reg_vks_ccoef130 // signed , default = 72 poly-phase scalar coefs
//Bit 7: 0 reg_vks_ccoef131 // signed , default = -8 poly-phase scalar coefs
// synopsys translate_off
// synopsys translate_on
//
// Closing file: vkstone_regs.h
//
////=================================================================////
//// vpp dither
////=================================================================////
// 8'h20-8'h3f
//
// Reading file: vpp_dither_regs.h
//
// synopsys translate_off
// synopsys translate_on
#define VPP_VE_DITHER_CTRL (0x3120)
#define P_VPP_VE_DITHER_CTRL (volatile unsigned int *)((0x3120 << 2) + 0xff900000)
#define VPP_VE_DITHER_LUT_1 (0x3121)
#define P_VPP_VE_DITHER_LUT_1 (volatile unsigned int *)((0x3121 << 2) + 0xff900000)
#define VPP_VE_DITHER_LUT_2 (0x3122)
#define P_VPP_VE_DITHER_LUT_2 (volatile unsigned int *)((0x3122 << 2) + 0xff900000)
#define VPP_VE_DITHER_LUT_3 (0x3123)
#define P_VPP_VE_DITHER_LUT_3 (volatile unsigned int *)((0x3123 << 2) + 0xff900000)
#define VPP_VE_DITHER_LUT_4 (0x3124)
#define P_VPP_VE_DITHER_LUT_4 (volatile unsigned int *)((0x3124 << 2) + 0xff900000)
#define VPP_VE_DITHER_LUT_5 (0x3125)
#define P_VPP_VE_DITHER_LUT_5 (volatile unsigned int *)((0x3125 << 2) + 0xff900000)
#define VPP_VE_DITHER_LUT_6 (0x3126)
#define P_VPP_VE_DITHER_LUT_6 (volatile unsigned int *)((0x3126 << 2) + 0xff900000)
#define VPP_VE_DITHER_LUT_7 (0x3127)
#define P_VPP_VE_DITHER_LUT_7 (volatile unsigned int *)((0x3127 << 2) + 0xff900000)
#define VPP_VE_DITHER_LUT_8 (0x3128)
#define P_VPP_VE_DITHER_LUT_8 (volatile unsigned int *)((0x3128 << 2) + 0xff900000)
#define VPP_VE_DITHER_LUT_9 (0x3129)
#define P_VPP_VE_DITHER_LUT_9 (volatile unsigned int *)((0x3129 << 2) + 0xff900000)
#define VPP_VE_DITHER_LUT_10 (0x312a)
#define P_VPP_VE_DITHER_LUT_10 (volatile unsigned int *)((0x312a << 2) + 0xff900000)
#define VPP_VE_DITHER_LUT_11 (0x312b)
#define P_VPP_VE_DITHER_LUT_11 (volatile unsigned int *)((0x312b << 2) + 0xff900000)
#define VPP_VE_DITHER_LUT_12 (0x312c)
#define P_VPP_VE_DITHER_LUT_12 (volatile unsigned int *)((0x312c << 2) + 0xff900000)
#define VPP_OSDSC_DITHER_CTRL (0x3130)
#define P_VPP_OSDSC_DITHER_CTRL (volatile unsigned int *)((0x3130 << 2) + 0xff900000)
#define VPP_OSDSC_DITHER_LUT_1 (0x3131)
#define P_VPP_OSDSC_DITHER_LUT_1 (volatile unsigned int *)((0x3131 << 2) + 0xff900000)
#define VPP_OSDSC_DITHER_LUT_2 (0x3132)
#define P_VPP_OSDSC_DITHER_LUT_2 (volatile unsigned int *)((0x3132 << 2) + 0xff900000)
#define VPP_OSDSC_DITHER_LUT_3 (0x3133)
#define P_VPP_OSDSC_DITHER_LUT_3 (volatile unsigned int *)((0x3133 << 2) + 0xff900000)
#define VPP_OSDSC_DITHER_LUT_4 (0x3134)
#define P_VPP_OSDSC_DITHER_LUT_4 (volatile unsigned int *)((0x3134 << 2) + 0xff900000)
#define VPP_OSDSC_DITHER_LUT_5 (0x3135)
#define P_VPP_OSDSC_DITHER_LUT_5 (volatile unsigned int *)((0x3135 << 2) + 0xff900000)
#define VPP_OSDSC_DITHER_LUT_6 (0x3136)
#define P_VPP_OSDSC_DITHER_LUT_6 (volatile unsigned int *)((0x3136 << 2) + 0xff900000)
#define VPP_OSDSC_DITHER_LUT_7 (0x3137)
#define P_VPP_OSDSC_DITHER_LUT_7 (volatile unsigned int *)((0x3137 << 2) + 0xff900000)
#define VPP_OSDSC_DITHER_LUT_8 (0x3138)
#define P_VPP_OSDSC_DITHER_LUT_8 (volatile unsigned int *)((0x3138 << 2) + 0xff900000)
#define VPP_OSDSC_DITHER_LUT_9 (0x3139)
#define P_VPP_OSDSC_DITHER_LUT_9 (volatile unsigned int *)((0x3139 << 2) + 0xff900000)
#define VPP_OSDSC_DITHER_LUT_10 (0x313a)
#define P_VPP_OSDSC_DITHER_LUT_10 (volatile unsigned int *)((0x313a << 2) + 0xff900000)
#define VPP_OSDSC_DITHER_LUT_11 (0x313b)
#define P_VPP_OSDSC_DITHER_LUT_11 (volatile unsigned int *)((0x313b << 2) + 0xff900000)
#define VPP_OSDSC_DITHER_LUT_12 (0x313c)
#define P_VPP_OSDSC_DITHER_LUT_12 (volatile unsigned int *)((0x313c << 2) + 0xff900000)
#define VPP_OSDSC_DITHER_LUT_13 (0x313d)
#define P_VPP_OSDSC_DITHER_LUT_13 (volatile unsigned int *)((0x313d << 2) + 0xff900000)
#define VPP_OSDSC_DITHER_LUT_14 (0x313e)
#define P_VPP_OSDSC_DITHER_LUT_14 (volatile unsigned int *)((0x313e << 2) + 0xff900000)
#define VPP_OSDSC_DITHER_LUT_15 (0x313f)
#define P_VPP_OSDSC_DITHER_LUT_15 (volatile unsigned int *)((0x313f << 2) + 0xff900000)
/* osd super scale */
#define OSDSR_HV_SIZEIN VPP_OSDSC_DITHER_CTRL
#define OSDSR_CTRL_MODE VPP_OSDSC_DITHER_LUT_1
#define OSDSR_ABIC_HCOEF VPP_OSDSC_DITHER_LUT_2
#define OSDSR_YBIC_HCOEF VPP_OSDSC_DITHER_LUT_3
#define OSDSR_CBIC_HCOEF VPP_OSDSC_DITHER_LUT_4
#define OSDSR_ABIC_VCOEF VPP_OSDSC_DITHER_LUT_5
#define OSDSR_YBIC_VCOEF VPP_OSDSC_DITHER_LUT_6
#define OSDSR_CBIC_VCOEF VPP_OSDSC_DITHER_LUT_7
#define OSDSR_VAR_PARA VPP_OSDSC_DITHER_LUT_8
#define OSDSR_CONST_PARA VPP_OSDSC_DITHER_LUT_9
#define OSDSR_RKE_EXTWIN VPP_OSDSC_DITHER_LUT_10
#define OSDSR_UK_GRAD2DDIAG_TH_RATE VPP_OSDSC_DITHER_LUT_11
#define OSDSR_UK_GRAD2DDIAG_LIMIT VPP_OSDSC_DITHER_LUT_12
#define OSDSR_UK_GRAD2DADJA_TH_RATE VPP_OSDSC_DITHER_LUT_13
#define OSDSR_UK_GRAD2DADJA_LIMIT VPP_OSDSC_DITHER_LUT_14
#define OSDSR_UK_BST_GAIN VPP_OSDSC_DITHER_LUT_15
// synopsys translate_off
// synopsys translate_on
//
// Closing file: vpp_dither_regs.h
//
// 8'h40-8'h4f
//
// Reading file: osdsc_deband_regs.h
//
// synopsys translate_off
// synopsys translate_on
#define OSD_DB_FLT_CTRL (0x3140)
#define P_OSD_DB_FLT_CTRL (volatile unsigned int *)((0x3140 << 2) + 0xff900000)
//Bit 31:27 reserved
//Bit 26 reg_nrdeband_reset1 // unsigned , default = 1 , 0 : no reload chrm seed 1: reload chrm seed
//Bit 25 reg_nrdeband_reset0 // unsigned , default = 1 , 0 : no reload luma seed 1: reload luma seed
//Bit 24 reg_nrdeband_rgb // unsigned , default = 0 , 0 : yuv 1: RGB
//Bit 23 reg_nrdeband_en11 // unsigned , default = 0 , debanding registers of side lines, [0] for luma, same for below
//Bit 22 reg_nrdeband_en10 // unsigned , default = 0 , debanding registers of side lines, [1] for chroma, same for below
//Bit 21 reg_nrdeband_siderand // unsigned , default = 1 , options to use side two lines use the rand, instead of use for the YUV three component of middle line, 0: seed[3]/bandrand[3] for middle line yuv; 1: seed[3]/bandrand[3] for nearby three lines Y;
//Bit 20 reg_nrdeband_randmode // unsigned , default = 0 , mode of rand noise adding, 0: same noise strength for all difs; else: strenght of noise will not exceed the difs, MIN((pPKReg->reg_nrdeband_bandrand[m]), noise[m])
//Bit 19:17 reg_nrdeband_bandrand2 // unsigned , default = 6
//Bit 16 reserved
//Bit 15:13 reg_nrdeband_bandrand1 // unsigned , default = 6
//Bit 12 reserved
//Bit 11: 9 reg_nrdeband_bandrand0 // unsigned , default = 6
//Bit 8 reserved
//Bit 7 reg_nrdeband_hpxor1 // unsigned , default = 1 , debanding random hp portion xor, [0] for luma
//Bit 6 reg_nrdeband_hpxor0 // unsigned , default = 1 , debanding random hp portion xor, [1] for chroma
//Bit 5 reg_nrdeband_en1 // unsigned , default = 0 , debanding registers, for luma
//Bit 4 reg_nrdeband_en0 // unsigned , default = 0 , debanding registers, for chroma
//Bit 3: 2 reg_nrdeband_lpf_mode1 // unsigned , default = 2 , lpf mode, 0: 3x3, 1:3x5; 2: 5x5; 3:5x7
//Bit 1: 0 reg_nrdeband_lpf_mode0 // unsigned , default = 2 , lpf mode, 0: 3x3, 1:3x5; 2: 5x5; 3:5x7
#define OSD_DB_FLT_CTRL1 (0x3141)
#define P_OSD_DB_FLT_CTRL1 (volatile unsigned int *)((0x3141 << 2) + 0xff900000)
//Bit 31:18 reserved
//Bit 17:16 reg_nrdeband_noise_rs // unsigned , default = 2
//Bit 15:12 reg_nrdeband_randgain // unsigned , default = 8
//Bit 11 reserved
//Bit 10: 8 reg_nrdeband_bandrand5 // unsigned , default = 6
//Bit 7 reserved
//Bit 6: 4 reg_nrdeband_bandrand4 // unsigned , default = 6
//Bit 3 reserved
//Bit 2: 0 reg_nrdeband_bandrand3 // unsigned , default = 6
#define OSD_DB_FLT_LUMA_THRD (0x3142)
#define P_OSD_DB_FLT_LUMA_THRD (volatile unsigned int *)((0x3142 << 2) + 0xff900000)
//Bit 31:30 reserved
//Bit 29:24 reg_nrdeband_luma_th3 // unsigned , default = 36 , threshold to |Y-Ylpf|, if < th[0] use lpf
//Bit 23:22 reserved
//Bit 21:16 reg_nrdeband_luma_th2 // unsigned , default = 28 , elseif <th[1] use (lpf*3 + y)/4
//Bit 15:14 reserved
//Bit 13: 8 reg_nrdeband_luma_th1 // unsigned , default = 24 , elseif <th[1] use (lpf*3 + y)/4elseif <th[2] (lpf*1 + y)/2
//Bit 7: 6 reserved
//Bit 5: 0 reg_nrdeband_luma_th0 // unsigned , default = 20 , elseif <th[1] use (lpf*3 + y)/4elseif elseif <th[3] (lpf*1 + 3*y)/4; else
#define OSD_DB_FLT_CHRM_THRD (0x3143)
#define P_OSD_DB_FLT_CHRM_THRD (volatile unsigned int *)((0x3143 << 2) + 0xff900000)
//Bit 31:30 reserved
//Bit 29:24 reg_nrdeband_chrm_th3 // unsigned , default = 36 , threshold to |Y-Ylpf|, if < th[0] use lpf
//Bit 23:22 reserved
//Bit 21:16 reg_nrdeband_chrm_th2 // unsigned , default = 28 , elseif <th[1] use (lpf*3 + y)/4
//Bit 15:14 reserved
//Bit 13: 8 reg_nrdeband_chrm_th1 // unsigned , default = 24 , elseif <th[1] use (lpf*3 + y)/4elseif <th[2] (lpf*1 + y)/2
//Bit 7: 6 reserved
//Bit 5: 0 reg_nrdeband_chrm_th0 // unsigned , default = 20 , elseif <th[1] use (lpf*3 + y)/4elseif elseif
#define OSD_DB_FLT_RANDLUT (0x3144)
#define P_OSD_DB_FLT_RANDLUT (volatile unsigned int *)((0x3144 << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23:21 reg_nrdeband_randslut7 // unsigned , default = 1 rand lut7
//Bit 20:18 reg_nrdeband_randslut6 // unsigned , default = 1 rand lut6
//Bit 17:15 reg_nrdeband_randslut5 // unsigned , default = 1 rand lut5
//Bit 14:12 reg_nrdeband_randslut4 // unsigned , default = 1 rand lut4
//Bit 11: 9 reg_nrdeband_randslut3 // unsigned , default = 1 rand lut3
//Bit 8: 6 reg_nrdeband_randslut2 // unsigned , default = 1 rand lut2
//Bit 5: 3 reg_nrdeband_randslut1 // unsigned , default = 1 rand lut1
//Bit 2: 0 reg_nrdeband_randslut0 // unsigned , default = 1 rand lut0
#define OSD_DB_FLT_PXI_THRD (0x3145)
#define P_OSD_DB_FLT_PXI_THRD (volatile unsigned int *)((0x3145 << 2) + 0xff900000)
//Bit 31:26 reserved
//Bit 25:16 reg_nrdeband_yc_th1 // unsigned , default = 0 ,threshold to luma/|u/v| for using the denoise
//Bit 15:10 reserved
//Bit 9: 0 reg_nrdeband_yc_th0 // unsigned , default = 0 ,threshold to luma/|u/v| for using the denoise
#define OSD_DB_FLT_SEED_Y (0x3146)
#define P_OSD_DB_FLT_SEED_Y (volatile unsigned int *)((0x3146 << 2) + 0xff900000)
//Bit 31: 0 reg_nrdeband_seed0 // unsigned , default = 1621438240 ,debanding noise adding seed for Y. seed[0]= 0x60a52f20; as default
#define OSD_DB_FLT_SEED_U (0x3147)
#define P_OSD_DB_FLT_SEED_U (volatile unsigned int *)((0x3147 << 2) + 0xff900000)
//Bit 31: 0 reg_nrdeband_seed1 // unsigned , default = 1621438247 ,debanding noise adding seed for U. seed[0]= 0x60a52f27; as default
#define OSD_DB_FLT_SEED_V (0x3148)
#define P_OSD_DB_FLT_SEED_V (volatile unsigned int *)((0x3148 << 2) + 0xff900000)
//Bit 31: 0 reg_nrdeband_seed2 // unsigned , default = 1621438242 ,debanding noise adding seed for V. seed[0]= 0x60a52f22; as default
#define OSD_DB_FLT_SEED3 (0x3149)
#define P_OSD_DB_FLT_SEED3 (volatile unsigned int *)((0x3149 << 2) + 0xff900000)
//Bit 31: 0 reg_nrdeband_seed3 // unsigned , default = 1621438242 ,debanding noise adding seed for V. seed[0]= 0x60a52f22; as default
#define OSD_DB_FLT_SEED4 (0x314a)
#define P_OSD_DB_FLT_SEED4 (volatile unsigned int *)((0x314a << 2) + 0xff900000)
//Bit 31: 0 reg_nrdeband_seed4 // unsigned , default = 1621438242 ,debanding noise adding seed for V. seed[0]= 0x60a52f22; as default
#define OSD_DB_FLT_SEED5 (0x314b)
#define P_OSD_DB_FLT_SEED5 (volatile unsigned int *)((0x314b << 2) + 0xff900000)
//Bit 31: 0 reg_nrdeband_seed5 // unsigned , default = 1621438242 ,debanding noise adding seed for V. seed[0]= 0x60a52f22; as default
// synopsys translate_off
// synopsys translate_on
//
// Closing file: osdsc_deband_regs.h
//
//register definition for xvycc
// 8'h50-8'h7f
//
// Reading file: xvycc_regs.h
//
// synopsys translate_off
// synopsys translate_on
// `define XVYCC_VCBUS_BASE 8'hfe
#define XVYCC_INV_LUT_Y_ADDR_PORT (0x3158)
#define P_XVYCC_INV_LUT_Y_ADDR_PORT (volatile unsigned int *)((0x3158 << 2) + 0xff900000)
//Bit 31:7, reserved
//Bit 6:0, xvycc_inv_lut_y_addr;
#define XVYCC_INV_LUT_Y_DATA_PORT (0x3159)
#define P_XVYCC_INV_LUT_Y_DATA_PORT (volatile unsigned int *)((0x3159 << 2) + 0xff900000)
//Bit 31:12, reserved
//Bit 11:0, xvycc_inv_lut_y_data;
#define XVYCC_INV_LUT_U_ADDR_PORT (0x315a)
#define P_XVYCC_INV_LUT_U_ADDR_PORT (volatile unsigned int *)((0x315a << 2) + 0xff900000)
//Bit 31:6, reserved
//Bit 5:0, xvycc_inv_lut_u_addr;
#define XVYCC_INV_LUT_U_DATA_PORT (0x315b)
#define P_XVYCC_INV_LUT_U_DATA_PORT (volatile unsigned int *)((0x315b << 2) + 0xff900000)
//Bit 31:12, reserved
//Bit 11:0, xvycc_inv_lut_u_data;
#define XVYCC_INV_LUT_V_ADDR_PORT (0x315c)
#define P_XVYCC_INV_LUT_V_ADDR_PORT (volatile unsigned int *)((0x315c << 2) + 0xff900000)
//Bit 31:6, reserved
//Bit 5:0, xvycc_inv_lut_v_addr;
#define XVYCC_INV_LUT_V_DATA_PORT (0x315d)
#define P_XVYCC_INV_LUT_V_DATA_PORT (volatile unsigned int *)((0x315d << 2) + 0xff900000)
//Bit 31:12, reserved
//Bit 11:0, xvycc_inv_lut_v_data;
#define XVYCC_LUT_R_ADDR_PORT (0x315e)
#define P_XVYCC_LUT_R_ADDR_PORT (volatile unsigned int *)((0x315e << 2) + 0xff900000)
//Bit 31:7, reserved
//Bit 6:0, xvycc_lut_r_addr;
#define XVYCC_LUT_R_DATA_PORT (0x315f)
#define P_XVYCC_LUT_R_DATA_PORT (volatile unsigned int *)((0x315f << 2) + 0xff900000)
//Bit 31:10, reserved
//Bit 9:0, xvycc_lut_r_data;
#define XVYCC_LUT_G_ADDR_PORT (0x3160)
#define P_XVYCC_LUT_G_ADDR_PORT (volatile unsigned int *)((0x3160 << 2) + 0xff900000)
//Bit 31:7, reserved
//Bit 6:0, xvycc_lut_g_addr;
#define XVYCC_LUT_G_DATA_PORT (0x3161)
#define P_XVYCC_LUT_G_DATA_PORT (volatile unsigned int *)((0x3161 << 2) + 0xff900000)
//Bit 31:10, reserved
//Bit 9:0, xvycc_lut_g_data;
#define XVYCC_LUT_B_ADDR_PORT (0x3162)
#define P_XVYCC_LUT_B_ADDR_PORT (volatile unsigned int *)((0x3162 << 2) + 0xff900000)
//Bit 31:7, reserved
//Bit 6:0, xvycc_lut_b_addr;
#define XVYCC_LUT_B_DATA_PORT (0x3163)
#define P_XVYCC_LUT_B_DATA_PORT (volatile unsigned int *)((0x3163 << 2) + 0xff900000)
//Bit 31:10, reserved
//Bit 9:0, xvycc_lut_b_data;
#define XVYCC_INV_LUT_CTL (0x3164)
#define P_XVYCC_INV_LUT_CTL (volatile unsigned int *)((0x3164 << 2) + 0xff900000)
//Bit 31:15, reserved
//Bit 14:12, reg_xvycc_cmpr_invlut_enable enable for xvycc compression inverse-lut [2] for Y, [1] for U, [0] for V default=0
//Bit 11:10, reg_xvycc_cmpr_invlut_vscl_1 v LUT input scale for positive portion default=0
//Bit 9: 8, reg_xvycc_cmpr_invlut_vscl_0 v LUT input scale for negative portion default=0
//Bit 7: 6, reg_xvycc_cmpr_invlut_uscl_1 u LUT input scale for positive portion default=0
//Bit 5: 4, reg_xvycc_cmpr_invlut_uscl_0 u LUT input scale for negative portion default=0
//Bit 3: 2, reg_xvycc_cmpr_invlut_yscl_1 y LUT input scale for positive portion default=0
//Bit 1: 0, reg_xvycc_cmpr_invlut_yscl_0 y LUT input scale for negative portion default=0
#define XVYCC_LUT_CTL (0x3165)
#define P_XVYCC_LUT_CTL (volatile unsigned int *)((0x3165 << 2) + 0xff900000)
//Bit 31: 7, reserved
//Bit 6: 4, reg_xvycc_lut_enable LUT enable [6] for R, [5] for G, [4] for B default=0
//Bit 3: 2, reg_xvycc_lut_scl_1 LUT input scale for positive portion default=0
//Bit 1: 0, reg_xvycc_lut_scl_0 LUT input scale for negative portion default=0
#define XVYCC_VADJ1_CURV_0 (0x3166)
#define P_XVYCC_VADJ1_CURV_0 (volatile unsigned int *)((0x3166 << 2) + 0xff900000)
//Bit 31:24, vadj1_softcon_curv0_ci default=0
//Bit 23:12, vadj1_softcon_curv0_b default=0
//Bit 11: 0, vadj1_softcon_curv0_a default=0
#define XVYCC_VADJ1_CURV_1 (0x3167)
#define P_XVYCC_VADJ1_CURV_1 (volatile unsigned int *)((0x3167 << 2) + 0xff900000)
//Bit 31:13, reserved
//Bit 12: 4, vadj1_softcon_curv0_g default=0
//Bit 3, reserved
//Bit 2: 0, vadj1_softcon_curv0_cs default=0
#define XVYCC_VADJ1_CURV_2 (0x3168)
#define P_XVYCC_VADJ1_CURV_2 (volatile unsigned int *)((0x3168 << 2) + 0xff900000)
//Bit 31:24, vadj1_softcon_curv1_ci default=0
//Bit 23:12, vadj1_softcon_curv1_b default=0
//Bit 11: 0, vadj1_softcon_curv1_a default=0
#define XVYCC_VADJ1_CURV_3 (0x3169)
#define P_XVYCC_VADJ1_CURV_3 (volatile unsigned int *)((0x3169 << 2) + 0xff900000)
//Bit 31:13, reserved
//Bit 12: 4, vadj1_softcon_curv1_g default=0
//Bit 3, reserved
//Bit 2: 0, vadj1_softcon_curv1_cs default=0
#define XVYCC_VADJ2_CURV_0 (0x316a)
#define P_XVYCC_VADJ2_CURV_0 (volatile unsigned int *)((0x316a << 2) + 0xff900000)
//Bit 31:24, vadj2_softcon_curv0_ci default=0
//Bit 23:12, vadj2_softcon_curv0_b default=0
//Bit 11: 0, vadj2_softcon_curv0_a default=0
#define XVYCC_VADJ2_CURV_1 (0x316b)
#define P_XVYCC_VADJ2_CURV_1 (volatile unsigned int *)((0x316b << 2) + 0xff900000)
//Bit 31:13, reserved
//Bit 12: 4, vadj2_softcon_curv0_g default=0
//Bit 3, reserved
//Bit 2: 0, vadj2_softcon_curv0_cs default=0
#define XVYCC_VADJ2_CURV_2 (0x316c)
#define P_XVYCC_VADJ2_CURV_2 (volatile unsigned int *)((0x316c << 2) + 0xff900000)
//Bit 31:24, vadj2_softcon_curv1_ci default=0
//Bit 23:12, vadj2_softcon_curv1_b default=0
//Bit 11: 0, vadj2_softcon_curv1_a default=0
#define XVYCC_VADJ2_CURV_3 (0x316d)
#define P_XVYCC_VADJ2_CURV_3 (volatile unsigned int *)((0x316d << 2) + 0xff900000)
//Bit 31:13, reserved
//Bit 12: 4, vadj2_softcon_curv1_g default=0
//Bit 3, reserved
//Bit 2: 0, vadj2_softcon_curv1_cs default=0
#define XVYCC_VD1_RGB_CTRST (0x3170)
#define P_XVYCC_VD1_RGB_CTRST (volatile unsigned int *)((0x3170 << 2) + 0xff900000)
//Bit 31:28, reserved
//Bit 27:16, reg_vd1_rgb_ctrst u12, contrast in rgb. default=1024
//Bit 15:14, reserved
//Bit 13: 4, reg_vd1_rgb_ctrst_blklvl u10, contrast blacklevel default=64
//Bit 3: 2, reserved
//Bit 1, reg_vd1_rgbbst_en u1, enable rgbbst default=0
//Bit 0, reg_vd1_rgb_ctrst_prt u1, enable signal to protect saturation in rgb. default=1
#define XVYCC_VD1_RGB_BRGHT (0x3171)
#define P_XVYCC_VD1_RGB_BRGHT (volatile unsigned int *)((0x3171 << 2) + 0xff900000)
//Bit 31:16, reserved
//Bit 15: 4, reg_vd1_rgb_brght s12, brightness level in rgb domain default=0
//Bit 3: 2, reserved
//Bit 1, reg_vd1_rgb_brght_prt u1, enalbe signal to protect saturation in rgb default=1
//Bit 0, reg_vd1_rgbbst_dlut_x2 u1, enable signal to do x2 to the dlut cells before subtracting default=0
#define XVYCC_VD1_RGB_DLUT_0_3 (0x3172)
#define P_XVYCC_VD1_RGB_DLUT_0_3 (volatile unsigned int *)((0x3172 << 2) + 0xff900000)
//Bit 31:24, reg_vd1_rgbbst_dlut0 u8, default = 255
//Bit 23:16, reg_vd1_rgbbst_dlut1 u8, default = 205
//Bit 15: 8, reg_vd1_rgbbst_dlut2 u8, default = 171
//Bit 7: 0, reg_vd1_rgbbst_dlut3 u8, default = 147
#define XVYCC_VD1_RGB_DLUT_4_7 (0x3173)
#define P_XVYCC_VD1_RGB_DLUT_4_7 (volatile unsigned int *)((0x3173 << 2) + 0xff900000)
//Bit 31:24, reg_vd1_rgbbst_dlut4 u8, default = 128
//Bit 23:16, reg_vd1_rgbbst_dlut5 u8, default = 113
//Bit 15: 8, reg_vd1_rgbbst_dlut6 u8, default = 102
//Bit 7: 0, reg_vd1_rgbbst_dlut7 u8, default = 93
#define XVYCC_VD1_RGB_DLUT_8_11 (0x3174)
#define P_XVYCC_VD1_RGB_DLUT_8_11 (volatile unsigned int *)((0x3174 << 2) + 0xff900000)
//Bit 31:24, reg_vd1_rgbbst_dlut8 u8, default = 85
//Bit 23:16, reg_vd1_rgbbst_dlut9 u8, default = 78
//Bit 15: 8, reg_vd1_rgbbst_dlut10 u8, default = 73
//Bit 7: 0, reg_vd1_rgbbst_dlut11 u8, default = 68
#define XVYCC_POST_RGB_CTRST (0x3175)
#define P_XVYCC_POST_RGB_CTRST (volatile unsigned int *)((0x3175 << 2) + 0xff900000)
//Bit 31:28, reserved
//Bit 27:16, reg_post_rgb_ctrst u12, contrast in rgb. default=1024
//Bit 15:14, reserved
//Bit 13: 4, reg_post_rgb_ctrst_blklvl u10, contrast blacklevel default=64
//Bit 3: 2, reserved
//Bit 1, reg_post_rgbbst_en u1, enable rgbbst default=0
//Bit 0, reg_post_rgb_ctrst_prt u1, enable signal to protect saturation in rgb. default=1
#define XVYCC_POST_RGB_BRGHT (0x3176)
#define P_XVYCC_POST_RGB_BRGHT (volatile unsigned int *)((0x3176 << 2) + 0xff900000)
//Bit 31:16, reserved
//Bit 15: 4, reg_post_rgb_brght s12, brightness level in rgb domain default=0
//Bit 3: 2, reserved
//Bit 1, reg_post_rgb_brght_prt u1, enalbe signal to protect saturation in rgb default=1
//Bit 0, reg_post_rgbbst_dlut_x2 u1, enable signal to do x2 to the dlut cells before subtracting default=0
#define XVYCC_POST_RGB_DLUT_0_3 (0x3177)
#define P_XVYCC_POST_RGB_DLUT_0_3 (volatile unsigned int *)((0x3177 << 2) + 0xff900000)
//Bit 31:24, reg_post_rgbbst_dlut0 u8, default = 255
//Bit 23:16, reg_post_rgbbst_dlut1 u8, default = 205
//Bit 15: 8, reg_post_rgbbst_dlut2 u8, default = 171
//Bit 7: 0, reg_post_rgbbst_dlut3 u8, default = 147
#define XVYCC_POST_RGB_DLUT_4_7 (0x3178)
#define P_XVYCC_POST_RGB_DLUT_4_7 (volatile unsigned int *)((0x3178 << 2) + 0xff900000)
//Bit 31:24, reg_post_rgbbst_dlut4 u8, default = 128
//Bit 23:16, reg_post_rgbbst_dlut5 u8, default = 113
//Bit 15: 8, reg_post_rgbbst_dlut6 u8, default = 102
//Bit 7: 0, reg_post_rgbbst_dlut7 u8, default = 93
#define XVYCC_POST_RGB_DLUT_8_11 (0x3179)
#define P_XVYCC_POST_RGB_DLUT_8_11 (volatile unsigned int *)((0x3179 << 2) + 0xff900000)
//Bit 31:24, reg_post_rgbbst_dlut8 u8, default = 85
//Bit 23:16, reg_post_rgbbst_dlut9 u8, default = 78
//Bit 15: 8, reg_post_rgbbst_dlut10 u8, default = 73
//Bit 7: 0, reg_post_rgbbst_dlut11 u8, default = 68
#define ADAPTIVE_SCALE_REG0 (0x3150)
#define P_ADAPTIVE_SCALE_REG0 (volatile unsigned int *)((0x3150 << 2) + 0xff900000)
//Bit 31, reg_adaptive_scale_enable u1, default = 1
//Bit 27:16, reg_adpscl_ys_coef_0 u12, default = 538
//Bit 11: 0, reg_adpscl_ys_coef_1 u12, default = 1389
#define ADAPTIVE_SCALE_REG1 (0x3151)
#define P_ADAPTIVE_SCALE_REG1 (volatile unsigned int *)((0x3151 << 2) + 0xff900000)
//Bit 27:16, reg_adpscl_ys_coef_2 u12, default = 121
//Bit 11: 0, reg_adpscl_alpha_0 u12, default = 1024
#define ADAPTIVE_SCALE_REG2 (0x3152)
#define P_ADAPTIVE_SCALE_REG2 (volatile unsigned int *)((0x3152 << 2) + 0xff900000)
//Bit 27:16, reg_adpscl_alpha_1 u12, default = 1024
//Bit 11: 0, reg_adpscl_alpha_2 u12, default = 1024
#define ADAPTIVE_SCALE_REG3 (0x3153)
#define P_ADAPTIVE_SCALE_REG3 (volatile unsigned int *)((0x3153 << 2) + 0xff900000)
//Bit 31:16, reg_adpscl_beta_0 u16, default = 0
//Bit 15: 0, reg_adpscl_beta_1 u16, default = 0
#define ADAPTIVE_SCALE_REG4 (0x3154)
#define P_ADAPTIVE_SCALE_REG4 (volatile unsigned int *)((0x3154 << 2) + 0xff900000)
//Bit 31:16, reg_adpscl_beta_2 u16, default = 0
#define ADAPTIVE_SCALE_ADDR (0x3155)
#define P_ADAPTIVE_SCALE_ADDR (volatile unsigned int *)((0x3155 << 2) + 0xff900000)
//Bit 6:0, reg_lut_addr u7, default = 0
#define ADAPTIVE_SCALE_DATA (0x3156)
#define P_ADAPTIVE_SCALE_DATA (volatile unsigned int *)((0x3156 << 2) + 0xff900000)
//Bit 11:0, reg_lut_data u12, default = 0
// synopsys translate_off
// synopsys translate_on
//
// Closing file: xvycc_regs.h
//
//register definition for vd2 afbc dec
// 8'h80-8'h9f
//
// Reading file: vd2_afbc_dec_regs.h
//
// synopsys translate_off
// synopsys translate_on
////===============================////
//// reg
////===============================////
#define VD2_AFBC_ENABLE (0x3180)
#define P_VD2_AFBC_ENABLE (volatile unsigned int *)((0x3180 << 2) + 0xff900000)
//Bit 31:1, reserved
//Bit 8, dec_enable unsigned , default = 0
//Bit 7:1, reserved
//Bit 0, frm_start unsigned , default = 0
#define VD2_AFBC_MODE (0x3181)
#define P_VD2_AFBC_MODE (volatile unsigned int *)((0x3181 << 2) + 0xff900000)
//Bit 31, soft_reset the use as go_field
//Bit 30, reserved
//Bit 29, ddr_sz_mode uns, default = 0 , 0: fixed block ddr size 1 : unfixed block ddr size;
//Bit 28, blk_mem_mode uns, default = 0 , 0: fixed 16x128 size; 1 : fixed 12x128 size
//Bit 27:26, rev_mode uns, default = 0 , reverse mode
//Bit 25:24, mif_urgent uns, default = 3 , info mif and data mif urgent
//Bit 22:16, hold_line_num
//Bit 15:14, burst_len uns, default = 1, 0: burst1 1:burst2 2:burst4
//Bit 13:8, compbits_yuv uns, default = 0 ,
// bit 1:0,: y component bitwidth : 00-8bit 01-9bit 10-10bit
// bit 3:2,: u component bitwidth : 00-8bit 01-9bit 10-10bit
// bit 5:4,: v component bitwidth : 00-8bit 01-9bit 10-10bit
//Bit 7:6, vert_skip_y uns, default = 0 , luma vert skip mode : 00-y0y1, 01-y0, 10-y1, 11-(y0+y1)/2
//Bit 5:4, horz_skip_y uns, default = 0 , luma horz skip mode : 00-y0y1, 01-y0, 10-y1, 11-(y0+y1)/2
//Bit 3:2, vert_skip_uv uns, default = 0 , chroma vert skip mode : 00-y0y1, 01-y0, 10-y1, 11-(y0+y1)/2
//Bit 1:0, horz_skip_uv uns, default = 0 , chroma horz skip mode : 00-y0y1, 01-y0, 10-y1, 11-(y0+y1)/2
#define VD2_AFBC_SIZE_IN (0x3182)
#define P_VD2_AFBC_SIZE_IN (volatile unsigned int *)((0x3182 << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28:16 hsize_in uns, default = 1920 , pic horz size in unit: pixel
//Bit 15:13, reserved
//Bit 12:0, vsize_in uns, default = 1080 , pic vert size in unit: pixel
#define VD2_AFBC_DEC_DEF_COLOR (0x3183)
#define P_VD2_AFBC_DEC_DEF_COLOR (volatile unsigned int *)((0x3183 << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 29:20, def_color_y uns, default = 0, afbc dec y default setting value
//Bit 19:10, def_color_u uns, default = 0, afbc dec u default setting value
//Bit 9: 0, def_color_v uns, default = 0, afbc dec v default setting value
#define VD2_AFBC_CONV_CTRL (0x3184)
#define P_VD2_AFBC_CONV_CTRL (volatile unsigned int *)((0x3184 << 2) + 0xff900000)
//Bit 31:12, reserved
//Bit 11: 0, conv_lbuf_len uns, default = 256, unit=16 pixel need to set = 2^n
#define VD2_AFBC_LBUF_DEPTH (0x3185)
#define P_VD2_AFBC_LBUF_DEPTH (volatile unsigned int *)((0x3185 << 2) + 0xff900000)
//Bit 31:28, reserved
//Bit 27:16, dec_lbuf_depth uns, default = 128; // unit= 8 pixel
//Bit 15:12, reserved
//Bit 11:0, mif_lbuf_depth uns, default = 128;
#define VD2_AFBC_HEAD_BADDR (0x3186)
#define P_VD2_AFBC_HEAD_BADDR (volatile unsigned int *)((0x3186 << 2) + 0xff900000)
//Bit 31:0, mif_info_baddr uns, default = 32'h0;
#define VD2_AFBC_BODY_BADDR (0x3187)
#define P_VD2_AFBC_BODY_BADDR (volatile unsigned int *)((0x3187 << 2) + 0xff900000)
//Bit 31:0, mif_data_baddr uns, default = 32'h0001_0000;
#define VD2_AFBC_SIZE_OUT (0x3188)
#define P_VD2_AFBC_SIZE_OUT (volatile unsigned int *)((0x3188 << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28:16, hsize_out uns, default = 1920 ; // unit: 1 pixel
//Bit 15:13, reserved
//Bit 12:0, vsize_out uns, default = 1080 ; // unit: 1 pixel
#define VD2_AFBC_OUT_YSCOPE (0x3189)
#define P_VD2_AFBC_OUT_YSCOPE (volatile unsigned int *)((0x3189 << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28:16, out_vert_bgn uns, default = 0 ; // unit: 1 pixel
//Bit 15:13, reserved
//Bit 12:0, out_vert_end uns, default = 1079 ; // unit: 1 pixel
#define VD2_AFBC_STAT (0x318a)
#define P_VD2_AFBC_STAT (volatile unsigned int *)((0x318a << 2) + 0xff900000)
//Bit 31:1, reserved
//Bit 0, frm_end_stat uns, frame end status
#define VD2_AFBC_VD_CFMT_CTRL (0x318b)
#define P_VD2_AFBC_VD_CFMT_CTRL (volatile unsigned int *)((0x318b << 2) + 0xff900000)
//Bit 31 it true, disable clock, otherwise enable clock
//Bit 30 soft rst bit
//Bit 28 if true, horizontal formatter use repeating to generete pixel, otherwise use bilinear interpolation
//Bit 27:24 horizontal formatter initial phase
//Bit 23 horizontal formatter repeat pixel 0 enable
//Bit 22:21 horizontal Y/C ratio, 00: 1:1, 01: 2:1, 10: 4:1
//Bit 20 horizontal formatter enable
//Bit 19 if true, always use phase0 while vertical formater, meaning always
// repeat data, no interpolation
//Bit 18 if true, disable vertical formatter chroma repeat last line
//Bit 17 veritcal formatter dont need repeat line on phase0, 1: enable, 0: disable
//Bit 16 veritcal formatter repeat line 0 enable
//Bit 15:12 vertical formatter skip line num at the beginning
//Bit 11:8 vertical formatter initial phase
//Bit 7:1 vertical formatter phase step (3.4)
//Bit 0 vertical formatter enable
#define VD2_AFBC_VD_CFMT_W (0x318c)
#define P_VD2_AFBC_VD_CFMT_W (volatile unsigned int *)((0x318c << 2) + 0xff900000)
//Bit 27:16 horizontal formatter width
//Bit 11:0 vertical formatter width
#define VD2_AFBC_MIF_HOR_SCOPE (0x318d)
#define P_VD2_AFBC_MIF_HOR_SCOPE (volatile unsigned int *)((0x318d << 2) + 0xff900000)
//Bit 31:26, reserved
//Bit 25:16, mif_blk_bgn_h uns, default = 0 ; // unit: 32 pixel/block hor
//Bit 15:10, reserved
//Bit 9: 0, mif_blk_end_h uns, default = 59 ; // unit: 32 pixel/block hor
#define VD2_AFBC_MIF_VER_SCOPE (0x318e)
#define P_VD2_AFBC_MIF_VER_SCOPE (volatile unsigned int *)((0x318e << 2) + 0xff900000)
//Bit 31:28, reserved
//Bit 27:16, mif_blk_bgn_v uns, default = 0 ; // unit: 32 pixel/block ver
//Bit 15:12, reserved
//Bit 11: 0, mif_blk_end_v uns, default = 269; // unit: 32 pixel/block ver
#define VD2_AFBC_PIXEL_HOR_SCOPE (0x318f)
#define P_VD2_AFBC_PIXEL_HOR_SCOPE (volatile unsigned int *)((0x318f << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28:16, dec_pixel_bgn_h uns, default = 0 ; // unit: pixel
//Bit 15:13, reserved
//Bit 12: 0, dec_pixel_end_h uns, default = 1919 ; // unit: pixel
#define VD2_AFBC_PIXEL_VER_SCOPE (0x3190)
#define P_VD2_AFBC_PIXEL_VER_SCOPE (volatile unsigned int *)((0x3190 << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28:16, dec_pixel_bgn_v uns, default = 0 ; // unit: pixel
//Bit 15:13, reserved
//Bit 12: 0, dec_pixel_end_v uns, default = 1079 ; // unit: pixel
#define VD2_AFBC_VD_CFMT_H (0x3191)
#define P_VD2_AFBC_VD_CFMT_H (volatile unsigned int *)((0x3191 << 2) + 0xff900000)
//Bit 12:0 vertical formatter height
// synopsys translate_off
// synopsys translate_on
//
// Closing file: vd2_afbc_dec_regs.h
//
//register definition for osd1 afbcd dec
// 8'ha0-8'haf
//
// Reading file: osd1_afbcd_regs.h
//
// synopsys translate_off
// synopsys translate_on
////===============================////
//// reg
////===============================////
#define OSD1_AFBCD_ENABLE (0x31a0)
#define P_OSD1_AFBCD_ENABLE (volatile unsigned int *)((0x31a0 << 2) + 0xff900000)
//Bit 31:16, reserved
//Bit 15:9, id_fifo_thrd unsigned , default = 64, axi id fifo threshold
//Bit 8, dec_enable unsigned , default = 0
//Bit 7:1, reserved
//Bit 0, frm_start unsigned , default = 0
#define OSD1_AFBCD_MODE (0x31a1)
#define P_OSD1_AFBCD_MODE (volatile unsigned int *)((0x31a1 << 2) + 0xff900000)
//Bit 31, soft_reset the use as go_field
//Bit 30:29, reserved
//Bit 28, axi_reorder_mode default=0, the axi reorder mode, note : don't seting
//Bit 27:26, reserved
//Bit 25:24, mif_urgent uns, default = 3 , info mif and data mif urgent
//Bit 22:16, hold_line_num
//Bit 15:8, rgba_exchan_ctrl
//Bit 7, reserved
//Bit 6, hreg_block_split uns, default = 1 , Enable/disable block split mode in sparse allocation
//Bit 5, hreg_half_block uns, default = 1 , Enable/disable half block decoding. 1=half block, 0=full block
//Bit 4:0, hreg_pixel_packing_fmt uns, default = 5 , Pixel format
#define OSD1_AFBCD_SIZE_IN (0x31a2)
#define P_OSD1_AFBCD_SIZE_IN (volatile unsigned int *)((0x31a2 << 2) + 0xff900000)
//Bit 31:16 hreg_hsize_in uns, default = 1920 , pic horz size in unit: pixel
//Bit 15:0, hreg_vsize_in uns, default = 1080 , pic vert size in unit: pixel
#define OSD1_AFBCD_HDR_PTR (0x31a3)
#define P_OSD1_AFBCD_HDR_PTR (volatile unsigned int *)((0x31a3 << 2) + 0xff900000)
//Bit 31:0 hreg_hdr_ptr uns, default = 0 ,
#define OSD1_AFBCD_FRAME_PTR (0x31a4)
#define P_OSD1_AFBCD_FRAME_PTR (volatile unsigned int *)((0x31a4 << 2) + 0xff900000)
//Bit 31:0 hreg_frame_ptr uns, default = 0 , The start address of the target frame buffer.
// For YUV format, this pointer specifies the luma buffer.
#define OSD1_AFBCD_CHROMA_PTR (0x31a5)
#define P_OSD1_AFBCD_CHROMA_PTR (volatile unsigned int *)((0x31a5 << 2) + 0xff900000)
//Bit 31:0 hreg_chroma_ptr uns, default = 0 , Only valid in YUV format, to specify the target chroma buffer.
#define OSD1_AFBCD_CONV_CTRL (0x31a6)
#define P_OSD1_AFBCD_CONV_CTRL (volatile unsigned int *)((0x31a6 << 2) + 0xff900000)
//Bit 31:15, reserved
//Bit 15: 0, conv_lbuf_len uns, default = 1024, unit=16 pixel need to set = 2^n
#define OSD1_AFBCD_STATUS (0x31a8)
#define P_OSD1_AFBCD_STATUS (volatile unsigned int *)((0x31a8 << 2) + 0xff900000)
//Bit 30:4, reserved
//Bit 3, hreg_dec_resp uns, default = 0 , Decoder error flage from the dec4x4 core
//Bit 2, hreg_axi_bresp uns, default = 0 , Bus error flag for AXI write error
//Bit 1, hreg_axi_rresp uns, default = 0 , Bus error flag for AXI read error
//Bit 0, hreg_idle_n uns, default = 0 , Idle output, value 0 indicates the standalone decoder is free now and can start the next frame.
#define OSD1_AFBCD_PIXEL_HSCOPE (0x31a9)
#define P_OSD1_AFBCD_PIXEL_HSCOPE (volatile unsigned int *)((0x31a9 << 2) + 0xff900000)
//Bit 31:16, dec_pixel_bgn_h uns, default = 0 ; // unit: pixel
//Bit 15: 0, dec_pixel_end_h uns, default = 1919 ; // unit: pixel
#define OSD1_AFBCD_PIXEL_VSCOPE (0x31aa)
#define P_OSD1_AFBCD_PIXEL_VSCOPE (volatile unsigned int *)((0x31aa << 2) + 0xff900000)
//Bit 31:16, dec_pixel_bgn_v uns, default = 0 ; // unit: pixel
//Bit 15: 0, dec_pixel_end_v uns, default = 1079 ; // unit: pixel
// synopsys translate_off
// synopsys translate_on
//
// Closing file: osd1_afbcd_regs.h
//
//register definition for osd1 afbcd dec
// 8'hb0-8'hca
//
// Reading file: vpp_wm_regs.h
//
//// synopsys translate_off
//`ifdef VPP_WM_REGS_H
//`else
// `define VPP_WM_REGS_H
//// synopsys translate_on
// `define VPPB_VCBUS_BASE 8'h32
#define WM_CTRL (0x31b0)
#define P_WM_CTRL (volatile unsigned int *)((0x31b0 << 2) + 0xff900000)
//Bit 31, int_mask default = 0
//Bit 30:16, reserved
//Bit 15:8, strength_multiply default =1
//Bit 7:6, reserved
//Bit 5, shift_en default = 0
//Bit 4, background_embedding_on default =0
//Bit 3, mark_en default =0
//Bit 2, noise_en default =0
//Bit 1, blend_en default =0
//Bit 0, wm_en default =0
#define WM_SPACE_RESOLUTION (0x31b1)
#define P_WM_SPACE_RESOLUTION (volatile unsigned int *)((0x31b1 << 2) + 0xff900000)
//Bit 31:25, reserved
//Bit 24:16, spacing_horz default =10
//Bit 15:9, reserved
//Bit 8:0, spacing_vert default =12
#define WM_SYMBOLS_NUM (0x31b2)
#define P_WM_SYMBOLS_NUM (volatile unsigned int *)((0x31b2 << 2) + 0xff900000)
//Bit 31:8, reserved
//Bit 7:4, symbols_cols 1~10; default =5
//Bit 3:0, symbols_rows 1~10; default =2
#define WM_MARK_RESOLUTION (0x31b3)
#define P_WM_MARK_RESOLUTION (volatile unsigned int *)((0x31b3 << 2) + 0xff900000)
//Bit 31:20, mark_hsize mark_buffer_width; default =1820
//Bit 19:8, mark_vsize mark_buffer_height; default =1820 t =780
//Bit 7:6, reserved
//Bit 5:0, scale default =13 // scale up
#define WM_FREQ_DIST_LEFT (0x31b4)
#define P_WM_FREQ_DIST_LEFT (volatile unsigned int *)((0x31b4 << 2) + 0xff900000)
//Bit 31:21, reserved
//Bit 20:0, freq_dist_left default =21092 // frequency_distance [n][0] each is 7bits, there is 3 dist
#define WM_FREQ_DIST_RIGHT (0x31b5)
#define P_WM_FREQ_DIST_RIGHT (volatile unsigned int *)((0x31b5 << 2) + 0xff900000)
//Bit 31:21, reserved
//Bit 20:0, freq_dist_right default =21092 // frequency_distance [n][0] each is 7bits, there is 3 dist
#define WM_FREQ_DIST_TOP (0x31b6)
#define P_WM_FREQ_DIST_TOP (volatile unsigned int *)((0x31b6 << 2) + 0xff900000)
//Bit 31:21, reserved
//Bit 20:0, freq_dist_top default =21092 // frequency_distance [n][0] each is 7bits, there is 3 dist
#define WM_SYMBOLS_XPOS (0x31b7)
#define P_WM_SYMBOLS_XPOS (volatile unsigned int *)((0x31b7 << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28:16, symbols_xpos_start default =1536 // SYMBOLS_XPOS * h_res
//Bit 15:13, reserved
//Bit 12:0, symbols_xpos_end default =3356 // SYMBOLS_XPOS * h_res + mark_hsize
#define WM_SYMBOLS_YPOS (0x31b8)
#define P_WM_SYMBOLS_YPOS (volatile unsigned int *)((0x31b8 << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28:16, symbols_ypos_start default =756 // SYMBOLS_yPOS * y_res
//Bit 15:13, reserved
//Bit 12:0, symbols_ypos_end default =1536 // SYMBOLS_yPOS * y_res + mark_vsize
#define WM_STORAGE_SETTING (0x31b9)
#define P_WM_STORAGE_SETTING (volatile unsigned int *)((0x31b9 << 2) + 0xff900000)
//Bit 31:28, reserved
//Bit 27:16, direction_max default = 80
//Bit 15, reserved
//Bit 14:8, storage_s default =18 // biggest is 72 S
//Bit 7, reserved
//Bit 6:0, storage_max_distance default =36 // biggest is 72 max_distance
#define WM_VIDEO_RESOLUTION (0x31ba)
#define P_WM_VIDEO_RESOLUTION (volatile unsigned int *)((0x31ba << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28:16, h_res default =3840 // video hsize
//Bit 15:13, reserved
//Bit 12:0, v_res default =2160 // video vsize
#define WM_EMBEDDING_STRENGTH_THRESHOLD0 (0x31bb)
#define P_WM_EMBEDDING_STRENGTH_THRESHOLD0 (volatile unsigned int *)((0x31bb << 2) + 0xff900000)
//Bit 31:28, reserved
//Bit 27:16, embedding_strength_threshold_0 default =48
//Bit 15:12, reserved
//Bit 11:0, embedding_strength_threshold_1 default =60
#define WM_EMBEDDING_STRENGTH_THRESHOLD1 (0x31bc)
#define P_WM_EMBEDDING_STRENGTH_THRESHOLD1 (volatile unsigned int *)((0x31bc << 2) + 0xff900000)
//Bit 31:28, reserved
//Bit 27:16, embedding_strength_threshold_2 default = 68
//Bit 15:12, reserved
//Bit 11:0, embedding_strength_threshold_3 default = 80
#define WM_EMBEDDING_STRENGTH_THRESHOLD2 (0x31bd)
#define P_WM_EMBEDDING_STRENGTH_THRESHOLD2 (volatile unsigned int *)((0x31bd << 2) + 0xff900000)
//Bit 31:28, reserved
//Bit 27:16, embedding_strength_threshold_4 default = 88
//Bit 15:12, reserved
//Bit 11:0, embedding_strength_threshold_5 default = 96
#define WM_EMBEDDING_STRENGTH_THRESHOLD3 (0x31be)
#define P_WM_EMBEDDING_STRENGTH_THRESHOLD3 (volatile unsigned int *)((0x31be << 2) + 0xff900000)
//Bit 31:28, reserved
//Bit 27:16, embedding_strength_threshold_6 default = 100
//Bit 15:12, reserved
//Bit 11:0, embedding_strength_threshold_7 default = 108
#define WM_EMBEDDING_STRENGTH_THRESHOLD4 (0x31bf)
#define P_WM_EMBEDDING_STRENGTH_THRESHOLD4 (volatile unsigned int *)((0x31bf << 2) + 0xff900000)
//Bit 31:28, reserved
//Bit 27:16, embedding_strength_threshold_8 default = 112
//Bit 15:12, reserved
//Bit 11:0, embedding_strength_threshold_9 default = 116
#define WM_EMBEDDING_STRENGTH_THRESHOLD5 (0x31c0)
#define P_WM_EMBEDDING_STRENGTH_THRESHOLD5 (volatile unsigned int *)((0x31c0 << 2) + 0xff900000)
//Bit 31:28, reserved
//Bit 27:16, embedding_strength_threshold_10 default = 120
//Bit 15:12, reserved
//Bit 11:0, embedding_strength_threshold_11 default = 124
#define WM_EMBEDDING_STRENGTH_THRESHOLD_BG0 (0x31c1)
#define P_WM_EMBEDDING_STRENGTH_THRESHOLD_BG0 (volatile unsigned int *)((0x31c1 << 2) + 0xff900000)
//Bit 31:28, reserved
//Bit 27:16, embedding_strength_threshold_bg_0 default =320
//Bit 15:12, reserved
//Bit 11:0, embedding_strength_threshold_bg_1 default = 328
#define WM_EMBEDDING_STRENGTH_THRESHOLD_BG1 (0x31c2)
#define P_WM_EMBEDDING_STRENGTH_THRESHOLD_BG1 (volatile unsigned int *)((0x31c2 << 2) + 0xff900000)
//Bit 31:28, reserved
//Bit 27:16, embedding_strength_threshold_bg_2 default = 332
//Bit 15:12, reserved
//Bit 11:0, embedding_strength_threshold_bg_3 default = 340
#define WM_EMBEDDING_STRENGTH_THRESHOLD_BG2 (0x31c3)
#define P_WM_EMBEDDING_STRENGTH_THRESHOLD_BG2 (volatile unsigned int *)((0x31c3 << 2) + 0xff900000)
//Bit 31:28, reserved
//Bit 27:16, embedding_strength_threshold_bg_4 default = 344
//Bit 15:12, reserved
//Bit 11:0, embedding_strength_threshold_bg_5 default = 348
#define WM_EMBEDDING_STRENGTH_THRESHOLD_BG3 (0x31c4)
#define P_WM_EMBEDDING_STRENGTH_THRESHOLD_BG3 (volatile unsigned int *)((0x31c4 << 2) + 0xff900000)
//Bit 31:28, reserved
//Bit 27:16, embedding_strength_threshold_bg_6 default = 352
//Bit 15:12, reserved
//Bit 11:0, embedding_strength_threshold_bg_7 default = 356
#define WM_EMBEDDING_STRENGTH_THRESHOLD_BG4 (0x31c5)
#define P_WM_EMBEDDING_STRENGTH_THRESHOLD_BG4 (volatile unsigned int *)((0x31c5 << 2) + 0xff900000)
//Bit 31:28, reserved
//Bit 27:16, embedding_strength_threshold_bg_8 default = 360
//Bit 15:12, reserved
//Bit 11:0, embedding_strength_threshold_bg_9 default = 368
#define WM_EMBEDDING_STRENGTH_THRESHOLD_BG5 (0x31c6)
#define P_WM_EMBEDDING_STRENGTH_THRESHOLD_BG5 (volatile unsigned int *)((0x31c6 << 2) + 0xff900000)
//Bit 31:28, reserved
//Bit 27:16, embedding_strength_threshold_bg_10 default = 372
//Bit 15:12, reserved
//Bit 11:0, embedding_strength_threshold_bg_11 default = 380
#define WM_AM_LUT_DATA_PORT (0x31c7)
#define P_WM_AM_LUT_DATA_PORT (volatile unsigned int *)((0x31c7 << 2) + 0xff900000)
#define WM_AM_LUT_ADDR_PORT (0x31c8)
#define P_WM_AM_LUT_ADDR_PORT (volatile unsigned int *)((0x31c8 << 2) + 0xff900000)
#define WM_STATUS_RO (0x31c9)
#define P_WM_STATUS_RO (volatile unsigned int *)((0x31c9 << 2) + 0xff900000)
//Bit 31, ro_resolution_changed
//Bit 30:29, reserved
//Bit 30:16, ro_hsize_in
//Bit 15:13, reserved
//Bit 8:0, ro_vsize_in
#define WM_STATUS_RAM_RO (0x31ca)
#define P_WM_STATUS_RAM_RO (volatile unsigned int *)((0x31ca << 2) + 0xff900000)
//Bit 31:9, reserved
//Bit 8:0, ro_ram_addr
#define WM_THRES_ADDR_PORT (0x31cb)
#define P_WM_THRES_ADDR_PORT (volatile unsigned int *)((0x31cb << 2) + 0xff900000)
#define WM_THRES_DATA_PORT (0x31cd)
#define P_WM_THRES_DATA_PORT (volatile unsigned int *)((0x31cd << 2) + 0xff900000)
//
// Closing file: vpp_wm_regs.h
//
// 8'hd0-8hef
//
// Reading file: bt2020_regs.h
//
// synopsys translate_off
// synopsys translate_on
// `define XVYCC_VCBUS_BASE 8'hfe
//Bit 31:27 for all [31] for all eotf enable,[30] for matrix3x3 enable, [29:27] for eotf_ch0~3
//Bit 17:6 for clock gating
//Bit 5:4 pscale_mode ch2
//Bit 3:2 pscale_mode ch1
//Bit 1:0 pscale_mode ch0
#define VPP_EOTF_CTL (0x31d0)
#define P_VPP_EOTF_CTL (volatile unsigned int *)((0x31d0 << 2) + 0xff900000)
//Bit 28:16 coef00
//Bit 12:0 coef01
#define VPP_EOTF_COEF00_01 (0x31d1)
#define P_VPP_EOTF_COEF00_01 (volatile unsigned int *)((0x31d1 << 2) + 0xff900000)
//Bit 28:16 coef02
//Bit 12:0 coef10
#define VPP_EOTF_COEF02_10 (0x31d2)
#define P_VPP_EOTF_COEF02_10 (volatile unsigned int *)((0x31d2 << 2) + 0xff900000)
//Bit 28:16 coef11
//Bit 12:0 coef12
#define VPP_EOTF_COEF11_12 (0x31d3)
#define P_VPP_EOTF_COEF11_12 (volatile unsigned int *)((0x31d3 << 2) + 0xff900000)
//Bit 28:16 coef20
//Bit 12:0 coef21
#define VPP_EOTF_COEF20_21 (0x31d4)
#define P_VPP_EOTF_COEF20_21 (volatile unsigned int *)((0x31d4 << 2) + 0xff900000)
//Bit 28:16 coef22
//Bit 2:0 coef_rs
#define VPP_EOTF_COEF22_RS (0x31d5)
#define P_VPP_EOTF_COEF22_RS (volatile unsigned int *)((0x31d5 << 2) + 0xff900000)
#define VPP_EOTF_LUT_ADDR_PORT (0x31d6)
#define P_VPP_EOTF_LUT_ADDR_PORT (volatile unsigned int *)((0x31d6 << 2) + 0xff900000)
#define VPP_EOTF_LUT_DATA_PORT (0x31d7)
#define P_VPP_EOTF_LUT_DATA_PORT (volatile unsigned int *)((0x31d7 << 2) + 0xff900000)
#define VPP_EOTF_3X3_OFST_0 (0x31d8)
#define P_VPP_EOTF_3X3_OFST_0 (volatile unsigned int *)((0x31d8 << 2) + 0xff900000)
#define VPP_EOTF_3X3_OFST_1 (0x31d9)
#define P_VPP_EOTF_3X3_OFST_1 (volatile unsigned int *)((0x31d9 << 2) + 0xff900000)
// synopsys translate_off
// synopsys translate_on
//
// Closing file: bt2020_regs.h
//
// synopsys translate_off
// synopsys translate_on
//
// Closing file: srscl_reg.h
//
// -----------------------------------------------
// CBUS_BASE: VPPC_VCBUS_BASE = 0x32
// -----------------------------------------------
//
// Reading file: srsharp_regs.h
//
// synopsys translate_off
// synopsys translate_on
// `define VPPB_VCBUS_BASE 8'h31
//VDIN0 8'h00 - 8'h7f
//VDIN1 8'h80 - 8'hef
#define SRSHARP0_OFFSET (0x00<<2)
#define SRSHARP1_OFFSET (0x80<<2)
//
// Reading file: sharp_regs.h
//
#define SHARP_HVSIZE (0x3200)
#define P_SHARP_HVSIZE (volatile unsigned int *)((0x3200 << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28:16, reg_pknr_hsize . unsigned , default = 1920
//Bit 15:13, reserved
//Bit 12: 0, reg_pknr_vsize . unsigned , default = 1080
#define SHARP_HVBLANK_NUM (0x3201)
#define P_SHARP_HVBLANK_NUM (volatile unsigned int *)((0x3201 << 2) + 0xff900000)
//Bit 31:16, reserved
//Bit 15: 8, reg_pknr_hblank_num . unsigned , default = 20
//Bit 7: 0, reg_pknr_vblank_num . unsigned , default = 73
#define NR_GAUSSIAN_MODE (0x3202)
#define P_NR_GAUSSIAN_MODE (volatile unsigned int *)((0x3202 << 2) + 0xff900000)
//Bit 31: 5, reserved
//Bit 4, reg_nr_gau_ymode : 0 3x3 filter; 1: 5x5 filter . unsigned , default = 1
//Bit 3: 1, reserved
//Bit 0, reg_nr_gau_cmode : 0 3x3 filter; 1: 5x5 filter . unsigned , default = 1
#define PK_CON_2CIRHPGAIN_TH_RATE (0x3205)
#define P_PK_CON_2CIRHPGAIN_TH_RATE (volatile unsigned int *)((0x3205 << 2) + 0xff900000)
//Bit 31:24, reg_pk_cirhpcon2gain0 : threshold0 of curve to map hpcon to hpgain for circle hp filter (all 8 direction same). 0~255.. unsigned , default = 25
//Bit 23:16, reg_pk_cirhpcon2gain1 : threshold1 of curve to map hpcon to hpgain for circle hp filter (all 8 direction same). 0~255.. unsigned , default = 60
//Bit 15: 8, reg_pk_cirhpcon2gain5 : rate0 (for hpcon<th0) of curve to map hpcon to hpgain for circle hp filter (all 8 direction same). 0~255.. unsigned , default = 80
//Bit 7: 0, reg_pk_cirhpcon2gain6 : rate1 (for hpcon>th1) of curve to map hpcon to hpgain for circle hp filter (all 8 direction same). 0~255.. unsigned , default = 20
#define PK_CON_2CIRHPGAIN_LIMIT (0x3206)
#define P_PK_CON_2CIRHPGAIN_LIMIT (volatile unsigned int *)((0x3206 << 2) + 0xff900000)
//Bit 31:24, reg_pk_cirhpcon2gain2 : level limit(for hpcon<th0) of curve to map hpcon to hpgain for circle hp filter (all 8 direction same). 0~255.. unsigned , default = 155
//Bit 23:16, reg_pk_cirhpcon2gain3 : level limit(for th0<hpcon<th1) of curve to map hpcon to hpgain for circle hp filter (all 8 direction same). 0~255.. unsigned , default = 150
//Bit 15: 8, reg_pk_cirhpcon2gain4 : level limit(for hpcon>th1) of curve to map hpcon to hpgain for circle hp filter (all 8 direction same). 0~255.. unsigned , default = 5
//Bit 7: 0, reserved
#define PK_CON_2CIRBPGAIN_TH_RATE (0x3207)
#define P_PK_CON_2CIRBPGAIN_TH_RATE (volatile unsigned int *)((0x3207 << 2) + 0xff900000)
//Bit 31:24, reg_pk_cirbpcon2gain0 : threshold0 of curve to map bpcon to bpgain for circle bp filter (all 8 direction same). 0~255.. unsigned , default = 20
//Bit 23:16, reg_pk_cirbpcon2gain1 : threshold1 of curve to map bpcon to bpgain for circle bp filter (all 8 direction same).. unsigned , default = 50
//Bit 15: 8, reg_pk_cirbpcon2gain5 : rate0 (for bpcon<th0) of curve to map bpcon to bpgain for circle bp filter (all 8 direction same). 0~255.. unsigned , default = 50
//Bit 7: 0, reg_pk_cirbpcon2gain6 : rate1 (for bpcon>th1) of curve to map bpcon to bpgain for circle bp filter (all 8 direction same). 0~255.. unsigned , default = 25
#define PK_CON_2CIRBPGAIN_LIMIT (0x3208)
#define P_PK_CON_2CIRBPGAIN_LIMIT (volatile unsigned int *)((0x3208 << 2) + 0xff900000)
//Bit 31:24, reg_pk_cirbpcon2gain2 : level limit(for bpcon<th0) of curve to map bpcon to bpgain for circle bp filter (all 8 direction same). 0~255.. unsigned , default = 155
//Bit 23:16, reg_pk_cirbpcon2gain3 : level limit(for th0<bpcon<th1) of curve to map bpcon to bpgain for circle bp filter (all 8 direction same). 0~255.. unsigned , default = 150
//Bit 15: 8, reg_pk_cirbpcon2gain4 : level limit(for bpcon>th1) of curve to map bpcon to bpgain for circle bp filter (all 8 direction same). 0~255.. unsigned , default = 5
//Bit 7: 0, reserved
#define PK_CON_2DRTHPGAIN_TH_RATE (0x3209)
#define P_PK_CON_2DRTHPGAIN_TH_RATE (volatile unsigned int *)((0x3209 << 2) + 0xff900000)
//Bit 31:24, reg_pk_drthpcon2gain0 : threshold0 of curve to map hpcon to hpgain for directional hp filter (best direction). 0~255.. unsigned , default = 25
//Bit 23:16, reg_pk_drthpcon2gain1 : threshold1 of curve to map hpcon to hpgain for directional hp filter (best direction). 0~255.. unsigned , default = 60
//Bit 15: 8, reg_pk_drthpcon2gain5 : rate0 (for hpcon<th0) of curve to map hpcon to hpgain for directional hp filter (best direction). 0~255.. unsigned , default = 80
//Bit 7: 0, reg_pk_drthpcon2gain6 : rate1 (for hpcon>th1) of curve to map hpcon to hpgain for directional hp filter (best direction). 0~255.. unsigned , default = 20
#define PK_CON_2DRTHPGAIN_LIMIT (0x320a)
#define P_PK_CON_2DRTHPGAIN_LIMIT (volatile unsigned int *)((0x320a << 2) + 0xff900000)
//Bit 31:24, reg_pk_drthpcon2gain2 : level limit(for hpcon<th0) of curve to map hpcon to hpgain for directional hp filter (best direction).. unsigned , default = 105
//Bit 23:16, reg_pk_drthpcon2gain3 : level limit(for th0<hpcon<th1) of curve to map hpcon to hpgain for directional hp filter (best direction). 0~255.. unsigned , default = 96
//Bit 15: 8, reg_pk_drthpcon2gain4 : level limit(for hpcon>th1) of curve to map hpcon to hpgain for directional hp filter (best direction). 0~255.. unsigned , default = 5
//Bit 7: 0, reserved
#define PK_CON_2DRTBPGAIN_TH_RATE (0x320b)
#define P_PK_CON_2DRTBPGAIN_TH_RATE (volatile unsigned int *)((0x320b << 2) + 0xff900000)
//Bit 31:24, reg_pk_drtbpcon2gain0 : threshold0 of curve to map bpcon to bpgain for directional bp filter (best direction). 0~255.. unsigned , default = 20
//Bit 23:16, reg_pk_drtbpcon2gain1 : threshold1 of curve to map bpcon to bpgain for directional bp filter (best direction). 0~255.. unsigned , default = 50
//Bit 15: 8, reg_pk_drtbpcon2gain5 : rate0 (for bpcon<th0) of curve to map bpcon to bpgain for directional bp filter (best direction). 0~255.. unsigned , default = 50
//Bit 7: 0, reg_pk_drtbpcon2gain6 : rate1 (for bpcon>th1) of curve to map bpcon to bpgain for directional bp filter (best direction). 0~255.. unsigned , default = 25
#define PK_CON_2DRTBPGAIN_LIMIT (0x320c)
#define P_PK_CON_2DRTBPGAIN_LIMIT (volatile unsigned int *)((0x320c << 2) + 0xff900000)
//Bit 31:24, reg_pk_drtbpcon2gain2 : level limit(for bpcon<th0) of curve to map bpcon to bpgain for directional bp filter (best direction). 0~255.. unsigned , default = 55
//Bit 23:16, reg_pk_drtbpcon2gain3 : level limit(for th0<bpcon<th1) of curve to map bpcon to bpgain for directional bp filter (best direction). 0~255.. unsigned , default = 40
//Bit 15: 8, reg_pk_drtbpcon2gain4 : level limit(for bpcon>th1) of curve to map bpcon to bpgain for directional bp filter (best direction). 0~255.. unsigned , default = 5
//Bit 7: 0, reserved
#define PK_CIRFB_LPF_MODE (0x320d)
#define P_PK_CIRFB_LPF_MODE (volatile unsigned int *)((0x320d << 2) + 0xff900000)
//Bit 31:30, reserved
//Bit 29:28, reg_cirhp_horz_mode : no horz filter on HP; 1: [1 2 1]/4; 2/3: [1 2 2 2 1]/8 . unsigned , default = 1
//Bit 27:26, reserved
//Bit 25:24, reg_cirhp_vert_mode : no vert filter on HP; 1: [1 2 1]/4; 2/3: [1 2 2 2 1]/8 . unsigned , default = 1
//Bit 23:22, reserved
//Bit 21:20, reg_cirhp_diag_mode : filter on HP; 1: [1 2 1]/4; . unsigned , default = 1
//Bit 19:14, reserved
//Bit 13:12, reg_cirbp_horz_mode : no horz filter on BP; 1: [1 2 1]/4; 2/3: [1 2 2 2 1]/8 . unsigned , default = 1
//Bit 11:10, reserved
//Bit 9: 8, reg_cirbp_vert_mode : no vert filter on BP; 1: [1 2 1]/4; 2/3: [1 2 2 2 1]/8 . unsigned , default = 1
//Bit 7: 6, reserved
//Bit 5: 4, reg_cirbp_diag_mode : filter on BP; 1: [1 2 1]/4; . unsigned , default = 1
//Bit 3: 0, reserved
#define PK_DRTFB_LPF_MODE (0x320e)
#define P_PK_DRTFB_LPF_MODE (volatile unsigned int *)((0x320e << 2) + 0xff900000)
//Bit 31:30, reserved
//Bit 29:28, reg_drthp_horz_mode : no horz filter on HP; 1: [1 2 1]/4; 2/3: [1 2 2 2 1]/8 2 . unsigned , default = 1
//Bit 27:26, reserved
//Bit 25:24, reg_drthp_vert_mode : no vert filter on HP; 1: [1 2 1]/4; 2/3: [1 2 2 2 1]/8 2 . unsigned , default = 1
//Bit 23:22, reserved
//Bit 21:20, reg_drthp_diag_mode : filter on HP; 1: [1 2 1]/4; 1 . unsigned , default = 1
//Bit 19:14, reserved
//Bit 13:12, reg_drtbp_horz_mode : no horz filter on BP; 1: [1 2 1]/4; 2/3: [1 2 2 2 1]/8 2 . unsigned , default = 1
//Bit 11:10, reserved
//Bit 9: 8, reg_drtbp_vert_mode : no vert filter on BP; 1: [1 2 1]/4; 2/3: [1 2 2 2 1]/8 2 . unsigned , default = 1
//Bit 7: 6, reserved
//Bit 5: 4, reg_drtbp_diag_mode : filter on BP; 1: [1 2 1]/4; 1 . unsigned , default = 1
//Bit 3: 0, reserved
#define PK_CIRFB_HP_CORING (0x320f)
#define P_PK_CIRFB_HP_CORING (volatile unsigned int *)((0x320f << 2) + 0xff900000)
//Bit 31:22, reserved
//Bit 21:16, reg_cirhp_horz_core : coring of HP for Horz . unsigned , default = 0
//Bit 15:14, reserved
//Bit 13: 8, reg_cirhp_vert_core : coring of HP for Vert . unsigned , default = 0
//Bit 7: 6, reserved
//Bit 5: 0, reg_cirhp_diag_core : coring of HP for Diag . unsigned , default = 0
#define PK_CIRFB_BP_CORING (0x3210)
#define P_PK_CIRFB_BP_CORING (volatile unsigned int *)((0x3210 << 2) + 0xff900000)
//Bit 31:22, reserved
//Bit 21:16, reg_cirbp_horz_core : coring of HP for Horz . unsigned , default = 1
//Bit 15:14, reserved
//Bit 13: 8, reg_cirbp_vert_core : coring of HP for Vert . unsigned , default = 1
//Bit 7: 6, reserved
//Bit 5: 0, reg_cirbp_diag_core : coring of HP for Diag . unsigned , default = 1
#define PK_DRTFB_HP_CORING (0x3211)
#define P_PK_DRTFB_HP_CORING (volatile unsigned int *)((0x3211 << 2) + 0xff900000)
//Bit 31:22, reserved
//Bit 21:16, reg_drthp_horz_core : coring of HP for Horz . unsigned , default = 1
//Bit 15:14, reserved
//Bit 13: 8, reg_drthp_vert_core : coring of HP for Vert . unsigned , default = 1
//Bit 7: 6, reserved
//Bit 5: 0, reg_drthp_diag_core : coring of HP for Diag . unsigned , default = 1
#define PK_DRTFB_BP_CORING (0x3212)
#define P_PK_DRTFB_BP_CORING (volatile unsigned int *)((0x3212 << 2) + 0xff900000)
//Bit 31:22, reserved
//Bit 21:16, reg_drtbp_horz_core : coring of HP for Horz . unsigned , default = 1
//Bit 15:14, reserved
//Bit 13: 8, reg_drtbp_vert_core : coring of HP for Vert . unsigned , default = 1
//Bit 7: 6, reserved
//Bit 5: 0, reg_drtbp_diag_core : coring of HP for Diag . unsigned , default = 1
#define PK_CIRFB_BLEND_GAIN (0x3213)
#define P_PK_CIRFB_BLEND_GAIN (volatile unsigned int *)((0x3213 << 2) + 0xff900000)
//Bit 31:28, reg_hp_cir_hgain : normalized 8 as '1' . unsigned , default = 8
//Bit 27:24, reg_hp_cir_vgain : normalized 8 as '1' . unsigned , default = 8
//Bit 23:20, reg_hp_cir_dgain : normalized 8 as '1' . unsigned , default = 8
//Bit 19:16, reserved
//Bit 15:12, reg_bp_cir_hgain : normalized 8 as '1' . unsigned , default = 8
//Bit 11: 8, reg_bp_cir_vgain : normalized 8 as '1' . unsigned , default = 8
//Bit 7: 4, reg_bp_cir_dgain : normalized 8 as '1' . unsigned , default = 8
//Bit 3: 0, reserved
#define NR_ALPY_SSD_GAIN_OFST (0x3214)
#define P_NR_ALPY_SSD_GAIN_OFST (volatile unsigned int *)((0x3214 << 2) + 0xff900000)
//Bit 31:16, reserved
//Bit 15: 8, reg_nr_alp0_ssd_gain : gain to max ssd normalized 16 as '1' . unsigned , default = 16
//Bit 7: 6, reserved
//Bit 5: 0, reg_nr_alp0_ssd_ofst : offset to ssd before dividing to min_err . signed , default = -2
#define NR_ALP0Y_ERR2CURV_TH_RATE (0x3215)
#define P_NR_ALP0Y_ERR2CURV_TH_RATE (volatile unsigned int *)((0x3215 << 2) + 0xff900000)
//Bit 31:24, reg_nr_alp0_minerr_ypar0 : threshold0 of curve to map mierr to alp0 for luma channel, this will be set value of flat region mierr that no need blur. 0~255.. unsigned , default = 10
//Bit 23:16, reg_nr_alp0_minerr_ypar1 : threshold1 of curve to map mierr to alp0 for luma channel,this will be set value of texture region mierr that can not blur.. unsigned , default = 25
//Bit 15: 8, reg_nr_alp0_minerr_ypar5 : rate0 (for mierr<th0) of curve to map mierr to alp0 for luma channel. the larger of the value, the deep of the slope. 0~255.. unsigned , default = 80
//Bit 7: 0, reg_nr_alp0_minerr_ypar6 : rate1 (for mierr>th1) of curve to map mierr to alp0 for luma channel. the larger of the value, the deep of the slope. 0~255.. unsigned , default = 64
#define NR_ALP0Y_ERR2CURV_LIMIT (0x3216)
#define P_NR_ALP0Y_ERR2CURV_LIMIT (volatile unsigned int *)((0x3216 << 2) + 0xff900000)
//Bit 31:24, reg_nr_alp0_minerr_ypar2 : level limit(for mierr<th0) of curve to map mierr to alp0 for luma channel, this will be set to alp0 that we can do for flat region. 0~255.. unsigned , default = 63
//Bit 23:16, reg_nr_alp0_minerr_ypar3 : level limit(for th0<mierr<th1) of curve to map mierr to alp0 for luma channel, this will be set to alp0 that we can do for misc region. 0~255.. unsigned , default = 0
//Bit 15: 8, reg_nr_alp0_minerr_ypar4 : level limit(for mierr>th1) of curve to map mierr to alp0 for luma channel, this will be set to alp0 that we can do for texture region. 0~255.. unsigned , default = 63
//Bit 7: 0, reserved
#define NR_ALP0C_ERR2CURV_TH_RATE (0x3217)
#define P_NR_ALP0C_ERR2CURV_TH_RATE (volatile unsigned int *)((0x3217 << 2) + 0xff900000)
//Bit 31:24, reg_nr_alp0_minerr_cpar0 : threshold0 of curve to map mierr to alp0 for chroma channel, this will be set value of flat region mierr that no need blur.. unsigned , default = 10
//Bit 23:16, reg_nr_alp0_minerr_cpar1 : threshold1 of curve to map mierr to alp0 for chroma channel,this will be set value of texture region mierr that can not blur.. unsigned , default = 25
//Bit 15: 8, reg_nr_alp0_minerr_cpar5 : rate0 (for mierr<th0) of curve to map mierr to alp0 for chroma channel. the larger of the value, the deep of the slope. 0~255.. unsigned , default = 80
//Bit 7: 0, reg_nr_alp0_minerr_cpar6 : rate1 (for mierr>th1) of curve to map mierr to alp0 for chroma channel. the larger of the value, the deep of the slope. 0~255.. unsigned , default = 64
#define NR_ALP0C_ERR2CURV_LIMIT (0x3218)
#define P_NR_ALP0C_ERR2CURV_LIMIT (volatile unsigned int *)((0x3218 << 2) + 0xff900000)
//Bit 31:24, reg_nr_alp0_minerr_cpar2 : level limit(for mierr<th0) of curve to map mierr to alp0 for chroma channel, this will be set to alp0 that we can do for flat region. 0~255.. unsigned , default = 63
//Bit 23:16, reg_nr_alp0_minerr_cpar3 : level limit(for th0<mierr<th1) of curve to map mierr to alp0 for chroma channel, this will be set to alp0 that we can do for misc region. 0~255.. unsigned , default = 0
//Bit 15: 8, reg_nr_alp0_minerr_cpar4 : level limit(for mierr>th1) of curve to map mierr to alp0 for chroma channel, this will be set to alp0 that we can do for texture region. 0~255.. unsigned , default = 63
//Bit 7: 0, reserved
#define NR_ALP0_MIN_MAX (0x3219)
#define P_NR_ALP0_MIN_MAX (volatile unsigned int *)((0x3219 << 2) + 0xff900000)
//Bit 31:30, reserved
//Bit 29:24, reg_nr_alp0_ymin : normalized to 64 as '1' . unsigned , default = 0
//Bit 23:22, reserved
//Bit 21:16, reg_nr_alp0_ymax : normalized to 64 as '1' . unsigned , default = 63
//Bit 15:14, reserved
//Bit 13: 8, reg_nr_alp0_cmin : normalized to 64 as '1' . unsigned , default = 0
//Bit 7: 6, reserved
//Bit 5: 0, reg_nr_alp0_cmax : normalized to 64 as '1' . unsigned , default = 63
#define NR_ALP1_MIERR_CORING (0x321a)
#define P_NR_ALP1_MIERR_CORING (volatile unsigned int *)((0x321a << 2) + 0xff900000)
//Bit 31:17, reserved
//Bit 16, reg_nr_alp1_maxerr_mode : 0 max err; 1: xerr . unsigned , default = 0
//Bit 15:14, reserved
//Bit 13: 8, reg_nr_alp1_core_rate : normalized 64 as "1" . unsigned , default = 0
//Bit 7: 6, reserved
//Bit 5: 0, reg_nr_alp1_core_ofst : normalized 64 as "1" . signed , default = 3
#define NR_ALP1_ERR2CURV_TH_RATE (0x321b)
#define P_NR_ALP1_ERR2CURV_TH_RATE (volatile unsigned int *)((0x321b << 2) + 0xff900000)
//Bit 31:24, reg_nr_alp1_minerr_par0 : threshold0 of curve to map mierr to alp1 for luma/chroma channel, this will be set value of flat region mierr that no need directional NR. 0~255.. unsigned , default = 0
//Bit 23:16, reg_nr_alp1_minerr_par1 : threshold1 of curve to map mierr to alp1 for luma/chroma channel,this will be set value of texture region mierr that can not do directional NR. 0~255.. unsigned , default = 24
//Bit 15: 8, reg_nr_alp1_minerr_par5 : rate0 (for mierr<th0) of curve to map mierr to alp1 for luma/chroma channel. the larger of the value, the deep of the slope.. unsigned , default = 0
//Bit 7: 0, reg_nr_alp1_minerr_par6 : rate1 (for mierr>th1) of curve to map mierr to alp1 for luma/chroma channel. the larger of the value, the deep of the slope. 0~255. unsigned , default = 20
#define NR_ALP1_ERR2CURV_LIMIT (0x321c)
#define P_NR_ALP1_ERR2CURV_LIMIT (volatile unsigned int *)((0x321c << 2) + 0xff900000)
//Bit 31:24, reg_nr_alp1_minerr_par2 : level limit(for mierr<th0) of curve to map mierr to alp1 for luma/chroma channel, this will be set to alp1 that we can do for flat region. 0~255.. unsigned , default = 0
//Bit 23:16, reg_nr_alp1_minerr_par3 : level limit(for th0<mierr<th1) of curve to map mierr to alp1 for luma/chroma channel, this will be set to alp1 that we can do for misc region. 0~255.. unsigned , default = 16
//Bit 15: 8, reg_nr_alp1_minerr_par4 : level limit(for mierr>th1) of curve to map mierr to alp1 for luma/chroma channel, this will be set to alp1 that we can do for texture region. 0~255.255 before. unsigned , default = 63
//Bit 7: 0, reserved
#define NR_ALP1_MIN_MAX (0x321d)
#define P_NR_ALP1_MIN_MAX (volatile unsigned int *)((0x321d << 2) + 0xff900000)
//Bit 31:30, reserved
//Bit 29:24, reg_nr_alp1_ymin : normalized to 64 as '1' . unsigned , default = 0
//Bit 23:22, reserved
//Bit 21:16, reg_nr_alp1_ymax : normalized to 64 as '1' . unsigned , default = 63
//Bit 15:14, reserved
//Bit 13: 8, reg_nr_alp1_cmin : normalized to 64 as '1' . unsigned , default = 0
//Bit 7: 6, reserved
//Bit 5: 0, reg_nr_alp1_cmax : normalized to 64 as '1' . unsigned , default = 63
#define PK_ALP2_MIERR_CORING (0x321e)
#define P_PK_ALP2_MIERR_CORING (volatile unsigned int *)((0x321e << 2) + 0xff900000)
//Bit 31:17, reserved
//Bit 16, reg_pk_alp2_maxerr_mode : 0 max err; 1: xerr . unsigned , default = 1
//Bit 15:14, reserved
//Bit 13: 8, reg_pk_alp2_core_rate : normalized 64 as "1" . unsigned , default = 0
//Bit 7: 6, reserved
//Bit 5: 0, reg_pk_alp2_core_ofst : normalized 64 as "1" . signed , default = 1
#define PK_ALP2_ERR2CURV_TH_RATE (0x321f)
#define P_PK_ALP2_ERR2CURV_TH_RATE (volatile unsigned int *)((0x321f << 2) + 0xff900000)
//Bit 31:24, reg_pk_alp2_minerr_par0 : threshold0 of curve to map mierr to alp2 for luma channel, this will be set value of flat region mierr that no need peaking.. unsigned , default = 0
//Bit 23:16, reg_pk_alp2_minerr_par1 : threshold1 of curve to map mierr to alp2 for luma channel,this will be set value of texture region mierr that can not do peaking. 0~255.. unsigned , default = 24
//Bit 15: 8, reg_pk_alp2_minerr_par5 : rate0 (for mierr<th0) of curve to map mierr to alp2 for luma channel. the larger of the value, the deep of the slope. 0~255.. unsigned , default = 0
//Bit 7: 0, reg_pk_alp2_minerr_par6 : rate1 (for mierr>th1) of curve to map mierr to alp2 for luma channel. the larger of the value, the deep of the slope. 0~255.. unsigned , default = 20
#define PK_ALP2_ERR2CURV_LIMIT (0x3220)
#define P_PK_ALP2_ERR2CURV_LIMIT (volatile unsigned int *)((0x3220 << 2) + 0xff900000)
//Bit 31:24, reg_pk_alp2_minerr_par2 : level limit(for mierr<th0) of curve to map mierr to alp2 for luma channel, this will be set to alp2 that we can do for flat region. 0~255.. unsigned , default = 0
//Bit 23:16, reg_pk_alp2_minerr_par3 : level limit(for th0<mierr<th1) of curve to map mierr to alp2 for luma channel, this will be set to alp2 that we can do for misc region. 0~255.. unsigned , default = 16
//Bit 15: 8, reg_pk_alp2_minerr_par4 : level limit(for mierr>th1) of curve to map mierr to alp2 for luma channel, this will be set to alp2 that we can do for texture region. 0~255. default = 32;. unsigned , default = 32
//Bit 7: 0, reserved
#define PK_ALP2_MIN_MAX (0x3221)
#define P_PK_ALP2_MIN_MAX (volatile unsigned int *)((0x3221 << 2) + 0xff900000)
//Bit 31:14, reserved
//Bit 13: 8, reg_pk_alp2_min : normalized to 64 as '1' . unsigned , default = 0
//Bit 7: 6, reserved
//Bit 5: 0, reg_pk_alp2_max : normalized to 64 as '1' . unsigned , default = 63
#define PK_FINALGAIN_HP_BP (0x3222)
#define P_PK_FINALGAIN_HP_BP (volatile unsigned int *)((0x3222 << 2) + 0xff900000)
//Bit 31:18, reserved
//Bit 17:16, reg_final_gain_rs : s2: right shift bits for the gain normalization, 0 normal to 32 as 1; 1 normalize to 64 as 1; -2 normalized to 8 as 1; -1 normalize 16 as 1. default = 0
//Bit 15: 8, reg_hp_final_gain : gain to highpass boost result (including directional/circle blending), normalized 32 as '1', 0~255. 1.25 * 32. unsigned , default = 40
//Bit 7: 0, reg_bp_final_gain : gain to bandpass boost result (including directional/circle blending), normalized 32 as '1', 0~255. 1.25 * 32. unsigned , default = 30
#define PK_OS_HORZ_CORE_GAIN (0x3223)
#define P_PK_OS_HORZ_CORE_GAIN (volatile unsigned int *)((0x3223 << 2) + 0xff900000)
//Bit 31:24, reg_pk_os_hsidecore : side coring (not to current pixel) to adaptive overshoot margin in horizontal direction. the larger of this value, the less overshoot admitted 0~255;. unsigned , default = 8
//Bit 23:16, reg_pk_os_hsidegain : side gain (not to current pixel) to adaptive overshoot margin in horizontal direction. normalized to 32 as '1'. 0~255;. unsigned , default = 20
//Bit 15: 8, reg_pk_os_hmidcore : midd coring (to current pixel) to adaptive overshoot margin in horizontal direction. the larger of this value, the less overshoot admitted 0~255;. unsigned , default = 2
//Bit 7: 0, reg_pk_os_hmidgain : midd gain (to current pixel) to adaptive overshoot margin in horizontal direction. normalized to 32 as '1'. 0~255;. unsigned , default = 20
#define PK_OS_VERT_CORE_GAIN (0x3224)
#define P_PK_OS_VERT_CORE_GAIN (volatile unsigned int *)((0x3224 << 2) + 0xff900000)
//Bit 31:24, reg_pk_os_vsidecore : side coring (not to current pixel) to adaptive overshoot margin in vertical direction. the larger of this value, the less overshoot admitted 0~255;. unsigned , default = 8
//Bit 23:16, reg_pk_os_vsidegain : side gain (not to current pixel) to adaptive overshoot margin in vertical direction. normalized to 32 as '1'. 0~255;. unsigned , default = 20
//Bit 15: 8, reg_pk_os_vmidcore : midd coring (to current pixel) to adaptive overshoot margin in vertical direction. the larger of this value, the less overshoot admitted 0~255;. unsigned , default = 2
//Bit 7: 0, reg_pk_os_vmidgain : midd gain (to current pixel) to adaptive overshoot margin in vertical direction. normalized to 32 as '1'. 0~255;. unsigned , default = 20
#define PK_OS_ADPT_MISC (0x3225)
#define P_PK_OS_ADPT_MISC (volatile unsigned int *)((0x3225 << 2) + 0xff900000)
//Bit 31:24, reg_pk_os_minerr_core : coring to minerr for adaptive overshoot margin. the larger of this value, the less overshoot admitted 0~255;. unsigned , default = 40
//Bit 23:16, reg_pk_os_minerr_gain : gain to minerr based adaptive overshoot margin. normalized to 64 as '1'. 0~255;. unsigned , default = 6
//Bit 15: 8, reg_pk_os_adpt_max : maximum limit adaptive overshoot margin (4x). 0~255; . unsigned , default = 200
//Bit 7: 0, reg_pk_os_adpt_min : minimun limit adaptive overshoot margin (1x). 0~255; . unsigned , default = 20
#define PK_OS_STATIC (0x3226)
#define P_PK_OS_STATIC (volatile unsigned int *)((0x3226 << 2) + 0xff900000)
//Bit 31:30, reserved
//Bit 29:28, reg_pk_osh_mode : 0~3: (2x+1) window in H direction . unsigned , default = 2
//Bit 27:26, reserved
//Bit 25:24, reg_pk_osv_mode : 0~3: (2x+1) window in V direction . unsigned , default = 2
//Bit 23:22, reserved
//Bit 21:12, reg_pk_os_down : static negative overshoot margin. 0~1023; . unsigned , default = 200
//Bit 11:10, reserved
//Bit 9: 0, reg_pk_os_up : static positive overshoot margin. 0~1023; . unsigned , default = 200
#define PK_NR_ENABLE (0x3227)
#define P_PK_NR_ENABLE (volatile unsigned int *)((0x3227 << 2) + 0xff900000)
//Bit 31: 4, reserved
//Bit 3: 2, reg_3d_mode , 0: no 3D; 1: L/R; 2: T/B; 3: horizontal interleaved, dft = 0 //. unsigned , default = 0
//Bit 1, reg_pk_en . unsigned , default = 1
//Bit 0, reg_nr_en . unsigned , default = 1
#define PK_DRT_SAD_MISC (0x3228)
#define P_PK_DRT_SAD_MISC (volatile unsigned int *)((0x3228 << 2) + 0xff900000)
//Bit 31:24, reg_pk_sad_ver_gain : gain to sad[4], 16 normalized to "1"; . unsigned , default = 32
//Bit 23:16, reg_pk_sad_hor_gain : gain to sad[0], 16 normalized to "1"; . unsigned , default = 24
//Bit 15:12, reserved
//Bit 11 reserved
//Bit 10: 9, reg_pk_bias_diag : bias towards diag . unsigned , default = 0
//Bit 8, reserved
//Bit 7: 5, reserved
//Bit 4: 0, reg_pk_drt_force : force direction of drt peaking filter, h2b: 0:hp drt force, 1: bp drt force; 2: bp+hp drt force, 3: no force;. unsigned , default = 24
#define NR_TI_DNLP_BLEND (0x3229)
#define P_NR_TI_DNLP_BLEND (volatile unsigned int *)((0x3229 << 2) + 0xff900000)
//Bit 31:11, reserved
//Bit 10: 8, reg_dnlp_input_mode : dnlp input options. 0: org_y; 1: gau_y; 2: gauadp_y; 3: edgadplpf_y; 4: nr_y;5: lti_y; 6: pk_y (before os);7: pk_y (after os). unsigned , default = 4
//Bit 7: 4, reserved
//Bit 3: 2, reg_nr_cti_blend_mode : blend mode of nr and lti result: 0: nr; 1:cti; 2: (nr+cti)/2; 3:cti + dlt_nr . unsigned , default = 1
//Bit 1: 0, reg_nr_lti_blend_mode : blend mode of nr and lti result: 0: nr; 1:lti; 2: (nr+lti)/2; 3:lti + dlt_nr . unsigned , default = 2
////////////////////////////////////////////////////////////////////////////////
// new ti regsters from here
////////////////////////////////////////////////////////////////////////////////
#define LTI_DIR_CORE_ALPHA (0x322a)
#define P_LTI_DIR_CORE_ALPHA (volatile unsigned int *)((0x322a << 2) + 0xff900000)
//Bit 31:30, reserved
//Bit 29:24, reg_adp_lti_dir_alp_core_ofst : ofst to min_err, alpha = (min_err - (max_err-min_err)*rate + ofst)/max_err*64; dft=10. unsigned , default = 10
//Bit 23:20, reserved
//Bit 19:16, reg_adp_lti_dir_alp_core_rate : ofset to min_err, alpha = (min_err - (max_err-min_err)*rate + ofst)/max_err*64; dft=0/32. unsigned , default = 0
//Bit 15:14, reserved
//Bit 13: 8, reg_adp_lti_dir_alpmin : min value of alpha, alpha = (min_err+x +ofst)/max_err*64; dft=10 . unsigned , default = 0
//Bit 7: 6, reserved
//Bit 5: 0, reg_adp_lti_dir_alpmax : max value of alpha, alpha = (min_err+x +ofst)/max_err*64; dft=63 . unsigned , default = 63
#define CTI_DIR_ALPHA (0x322b)
#define P_CTI_DIR_ALPHA (volatile unsigned int *)((0x322b << 2) + 0xff900000)
//Bit 31:30, reserved
//Bit 29:24, reg_adp_cti_dir_alp_core_ofst : ofst to min_err, alpha = (min_err - (max_err-min_err)*rate + ofst)/max_err*64; dft=10. unsigned , default = 5
//Bit 23:20, reserved
//Bit 19:16, reg_adp_cti_dir_alp_core_rate : ofset to min_err, alpha = (min_err - (max_err-min_err)*rate + ofst)/max_err*64; dft=0/32. unsigned , default = 0
//Bit 15:14, reserved
//Bit 13: 8, reg_adp_cti_dir_alpmin : min value of alpha, alpha = (min_err +x+ofst)/max_err*64; dft=10 . unsigned , default = 0
//Bit 7: 6, reserved
//Bit 5: 0, reg_adp_cti_dir_alpmax : max value of alpha, alpha = (min_err +x+ofst)/max_err*64; dft=63 . unsigned , default = 63
#define LTI_CTI_DF_GAIN (0x322c)
#define P_LTI_CTI_DF_GAIN (volatile unsigned int *)((0x322c << 2) + 0xff900000)
//Bit 31:30, reserved
//Bit 29:24, reg_adp_lti_hdf_gain : 8 normalized to "1"; default = 12 . unsigned , default = 12
//Bit 23:22, reserved
//Bit 21:16, reg_adp_lti_vdf_gain : 8 normalized to "1"; default = 12 . unsigned , default = 12
//Bit 15:14, reserved
//Bit 13: 8, reg_adp_cti_hdf_gain : 8 normalized to "1"; default = 12 . unsigned , default = 12
//Bit 7: 6, reserved
//Bit 5: 0, reg_adp_cti_vdf_gain : 8 normalized to "1"; default = 12 . unsigned , default = 12
#define LTI_CTI_DIR_AC_DBG (0x322d)
#define P_LTI_CTI_DIR_AC_DBG (volatile unsigned int *)((0x322d << 2) + 0xff900000)
//Bit 31, reserved
//Bit 30, reg_adp_lti_dir_lpf : 0: no lpf; 1: [1 2 2 2 1]/8 lpf . unsigned , default = 1
//Bit 29, reserved
//Bit 28, reg_adp_lti_dir_difmode : 0: y_dif; 1: y_dif + (u_dif+v_dif)/2; . unsigned , default = 1
//Bit 27, reserved
//Bit 26, reg_adp_cti_dir_lpf : 0: no lpf; 1: [1 2 2 2 1]/8 lpf dft=1 . unsigned , default = 1
//Bit 25:24, reg_adp_cti_dir_difmode : 0: (u_dif+v_dif); 1: y_dif/2 + (u_dif+v_dif)*3/4; 2: y_dif + (u_dif+v_dif)/2; 3: y_dif*2 (not recomended). unsigned , default = 2
//Bit 23:22, reg_adp_hvlti_dcblend_mode : 0: hlti_dc; 1:vlti_dc; 2: avg 3; blend on alpha . unsigned , default = 3
//Bit 21:20, reg_adp_hvcti_dcblend_mode : 0: hcti_dc; 1:vcti_dc; 2: avg 3; blend on alpha . unsigned , default = 2
//Bit 19:18, reg_adp_hvlti_acblend_mode : hlti_ac; 1:vlti_ac; 2: add 3;:adaptive to alpha . unsigned , default = 3
//Bit 17:16, reg_adp_hvcti_acblend_mode : hcti_ac; 1:vcti_ac; 2: add 3;: adaptive to alpha . unsigned , default = 2
//Bit 15, reserved
//Bit 14:12, reg_adp_hlti_debug , for hlti debug, default = 0 . unsigned , default = 0
//Bit 11, reserved
//Bit 10: 8, reg_adp_vlti_debug , for vlti debug, default = 0 . unsigned , default = 0
//Bit 7, reserved
//Bit 6: 4, reg_adp_hcti_debug , for hcti debug, default = 0 . unsigned , default = 0
//Bit 3, reserved
//Bit 2: 0, reg_adp_vcti_debug , for vcti debug, default = 0 . unsigned , default = 0
#define HCTI_FLT_CLP_DC (0x322e)
#define P_HCTI_FLT_CLP_DC (volatile unsigned int *)((0x322e << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28, reg_adp_hcti_en , 0: no cti, 1: new cti, default = 1 . unsigned , default = 1
//Bit 27:26, reg_adp_hcti_vdn_flt , 0: no lpf; 1:[0,2,4,2,0], 2 : [1 2 2 2 1]/8 3:[1 0 2 0 1]/4, default = 2 . unsigned , default = 2
//Bit 25:24, reg_adp_hcti_hdn_flt , 0: no lpf; 1:[0, 0, 0, 4, 8, 4, 0, 0, 0], 2:[0, 0, 2, 4, 4, 4, 2, 0, 0], 3: [1, 2, 2, 2, 2, 2, 2, 2, 1], default = 2. unsigned , default = 2
//Bit 23:22, reg_adp_hcti_ddn_flt , 0: no lpf; 1:[0,2,4,2,0], 2 : [1 2 2 2 1]/8 3:[1 0 2 0 1]/4, default = 2 . unsigned , default = 2
//Bit 21:20, reg_adp_hcti_lpf0_flt , 0:no filter; 1:sigma=0.75, 2: sigma = 1.0, 3: sigma = 1.5, default = 1 . unsigned , default = 1
//Bit 19:18, reg_adp_hcti_lpf1_flt , 0:no filter; 1:sigma= 2.0, 2: sigma = 3.0, 3: sigma = 4.0, default = 1 . unsigned , default = 1
//Bit 17:16, reg_adp_hcti_lpf2_flt , 0:no filter; 1:sigma=5.0, 2: sigma = 9.0, 3: sigma = 13.0, default = 1 . unsigned , default = 1
//Bit 15:12, reg_adp_hcti_hard_clp_win , window size, 0~8, default = 5 . unsigned , default = 5
//Bit 11: 8, reg_adp_hcti_hard_win_min , window size, 0~8, default = 3 . unsigned , default = 3
//Bit 7: 5, reserved
//Bit 4, reg_adp_hcti_clp_mode , 0: hard clip, 1: adaptive clip, default = 1 . unsigned , default = 1
//Bit 3, reserved
//Bit 2: 0, reg_adp_hcti_dc_mode , 0:dn, 1:lpf0, 2:lpf1, 3:lpf2, 4: lpf3: 5: vdn result; 6/7:org, default = 0 . unsigned , default = 0
#define HCTI_BST_GAIN (0x322f)
#define P_HCTI_BST_GAIN (volatile unsigned int *)((0x322f << 2) + 0xff900000)
//Bit 31:24, reg_adp_hcti_bst_gain0 : gain of the bandpass 0 (lpf1-lpf2)- LBP, default = 80 . unsigned , default = 80
//Bit 23:16, reg_adp_hcti_bst_gain1 : gain of the bandpass 1 (lpf0-lpf1)- BP, default = 96 . unsigned , default = 96
//Bit 15: 8, reg_adp_hcti_bst_gain2 : gain of the bandpass 2 (hdn-lpf0)- HP, default = 64 . unsigned , default = 64
//Bit 7: 0, reg_adp_hcti_bst_gain3 : gain of the unsharp band (yuvin-hdn) - US, default = 16 . unsigned , default = 16
#define HCTI_BST_CORE (0x3230)
#define P_HCTI_BST_CORE (volatile unsigned int *)((0x3230 << 2) + 0xff900000)
//Bit 31:24, reg_adp_hcti_bst_core0 : core of the bandpass 0 (lpf1-lpf2)- LBP, default = 5 . unsigned , default = 5
//Bit 23:16, reg_adp_hcti_bst_core1 : core of the bandpass 1 (lpf0-lpf1)- BP, default = 5 . unsigned , default = 5
//Bit 15: 8, reg_adp_hcti_bst_core2 : core of the bandpass 2 (hdn-lpf0)- HP, default = 5 . unsigned , default = 5
//Bit 7: 0, reg_adp_hcti_bst_core3 : core of the unsharp band (yuvin-hdn) - US, default = 3 . unsigned , default = 5
#define HCTI_CON_2_GAIN_0 (0x3231)
#define P_HCTI_CON_2_GAIN_0 (volatile unsigned int *)((0x3231 << 2) + 0xff900000)
//Bit 31:29, reg_adp_hcti_con_mode : con mode 0:[0, 0,-1, 1, 0, 0, 0]+[0, 0, 0, 1,-1, 0, 0], 1: [0, 0,-1, 0, 1, 0, 0], 2: [0,-1, 0, 0, 0, 1, 0], 3:[-1, 0, 0, 0, 0, 0, 1], 4: .... default = 1. unsigned , default = 1
//Bit 28:26, reg_adp_hcti_dx_mode : dx mode 0: [-1 1 0]; 1~7: [-1 (2x+1)"0" 1], default = 2 . unsigned , default = 2
//Bit 25:24, reg_adp_hcti_con_lpf : lpf mode of the con: 0: [1 2 1]/4; 1:[1 2 2 2 1]/8, default = 0 . unsigned , default = 0
//Bit 23:16, reg_adp_hcti_con_2_gain0 , default = 25 . unsigned , default = 25
//Bit 15: 8, reg_adp_hcti_con_2_gain1 , default = 60 . unsigned , default = 60
//Bit 7: 0, reg_adp_hcti_con_2_gain2 0;, default = 5 . unsigned , default = 5
#define HCTI_CON_2_GAIN_1 (0x3232)
#define P_HCTI_CON_2_GAIN_1 (volatile unsigned int *)((0x3232 << 2) + 0xff900000)
//Bit 31:24, reg_adp_hcti_con_2_gain3 96;, default = 96 . unsigned , default = 96
//Bit 23:16, reg_adp_hcti_con_2_gain4 5;, default = 5 . unsigned , default = 5
//Bit 15: 8, reg_adp_hcti_con_2_gain5 80;, default = 80 . unsigned , default = 80
//Bit 7: 0, reg_adp_hcti_con_2_gain6 20;, default = 20 . unsigned , default = 20
#define HCTI_OS_MARGIN (0x3233)
#define P_HCTI_OS_MARGIN (volatile unsigned int *)((0x3233 << 2) + 0xff900000)
//Bit 31: 8, reserved
//Bit 7: 0, reg_adp_hcti_os_margin : margin for hcti overshoot, default = 0 . unsigned , default = 0
#define HLTI_FLT_CLP_DC (0x3234)
#define P_HLTI_FLT_CLP_DC (volatile unsigned int *)((0x3234 << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28, reg_adp_hlti_en , 0: no cti, 1: new cti, default = 1 . unsigned , default = 1
//Bit 27:26, reg_adp_hlti_vdn_flt , 0: no lpf; 1:[0,2,4,2,0], 2 : [1 2 2 2 1]/8 3:[1 0 2 0 1]/4, default = 2 . unsigned , default = 2
//Bit 25:24, reg_adp_hlti_hdn_flt , 0: no lpf; 1:[0, 0, 0, 4, 8, 4, 0, 0, 0], 2:[0, 0, 2, 4, 4, 4, 2, 0, 0], 3: [1, 2, 2, 2, 2, 2, 2, 2, 1], default = 1. unsigned , default = 1
//Bit 23:22, reg_adp_hlti_ddn_flt , 0: no lpf; 1:[0,2,4,2,0], 2 : [1 2 2 2 1]/8 3:[1 0 2 0 1]/4, default = 1 . unsigned , default = 1
//Bit 21:20, reg_adp_hlti_lpf0_flt , 0:no filter; 1:sigma=0.75, 2: sigma = 1.0, 3: sigma = 1.5, default = 1 . unsigned , default = 1
//Bit 19:18, reg_adp_hlti_lpf1_flt , 0:no filter; 1:sigma= 2.0, 2: sigma = 3.0, 3: sigma = 4.0, default = 1 . unsigned , default = 1
//Bit 17:16, reg_adp_hlti_lpf2_flt , 0:no filter; 1:sigma=5.0, 2: sigma = 9.0, 3: sigma = 13.0, default = 1 . unsigned , default = 1
//Bit 15:12, reg_adp_hlti_hard_clp_win , window size, 0~8, default = 2 . unsigned , default = 2
//Bit 11: 8, reg_adp_hlti_hard_win_min , window size, 0~8, default = 1 . unsigned , default = 1
//Bit 7: 5, reserved
//Bit 4, reg_adp_hlti_clp_mode , 0: hard clip, 1: adaptive clip, default = 0 . unsigned , default = 0
//Bit 3, reserved
//Bit 2: 0, reg_adp_hlti_dc_mode , 0:dn, 1:lpf0, 2:lpf1, 3:lpf2, 4: lpf3: 5: vdn result; 6/7:org, default = 4 . unsigned , default = 4
#define HLTI_BST_GAIN (0x3235)
#define P_HLTI_BST_GAIN (volatile unsigned int *)((0x3235 << 2) + 0xff900000)
//Bit 31:24, reg_adp_hlti_bst_gain0 : gain of the bandpass 0 (lpf1-lpf2)- LBP, default = 32 . unsigned , default = 32
//Bit 23:16, reg_adp_hlti_bst_gain1 : gain of the bandpass 1 (lpf0-lpf1)- BP, default = 32 . unsigned , default = 32
//Bit 15: 8, reg_adp_hlti_bst_gain2 : gain of the bandpass 2 (hdn-lpf0)- HP, default = 28 . unsigned , default = 28
//Bit 7: 0, reg_adp_hlti_bst_gain3 : gain of the unsharp band (yuvin-hdn) - US, default = 12 . unsigned , default = 12
#define HLTI_BST_CORE (0x3236)
#define P_HLTI_BST_CORE (volatile unsigned int *)((0x3236 << 2) + 0xff900000)
//Bit 31:24, reg_adp_hlti_bst_core0 : core of the bandpass 0 (lpf1-lpf2)- LBP, default = 5 . unsigned , default = 5
//Bit 23:16, reg_adp_hlti_bst_core1 : core of the bandpass 1 (lpf0-lpf1)- BP, default = 5 . unsigned , default = 5
//Bit 15: 8, reg_adp_hlti_bst_core2 : core of the bandpass 2 (hdn-lpf0)- HP, default = 5 . unsigned , default = 5
//Bit 7: 0, reg_adp_hlti_bst_core3 : core of the unsharp band (yuvin-hdn) - US, default = 3 . unsigned , default = 3
#define HLTI_CON_2_GAIN_0 (0x3237)
#define P_HLTI_CON_2_GAIN_0 (volatile unsigned int *)((0x3237 << 2) + 0xff900000)
//Bit 31:29, reg_adp_hlti_con_mode : con mode 0:[0, 0,-1, 1, 0, 0, 0]+[0, 0, 0, 1,-1, 0, 0], 1: [0, 0,-1, 0, 1, 0, 0], 2: [0,-1, 0, 0, 0, 1, 0], 3:[-1, 0, 0, 0, 0, 0, 1], 4: ....., default = 1. unsigned , default = 1
//Bit 28:26, reg_adp_hlti_dx_mode : dx mode 0: [-1 1 0]; 1~7: [-1 (2x+1)"0" 1], default = 1 . unsigned , default = 1
//Bit 25:24, reg_adp_hlti_con_lpf : lpf mode of the con: 0: [1 2 1]/4; 1:[1 2 2 2 1]/8, default = 0 . unsigned , default = 0
//Bit 23:16, reg_adp_hlti_con_2_gain0 25;, default = 25 . unsigned , default = 25
//Bit 15: 8, reg_adp_hlti_con_2_gain1 60;, default = 60 . unsigned , default = 60
//Bit 7: 0, reg_adp_hlti_con_2_gain2 0;, default = 5 . unsigned , default = 5
#define HLTI_CON_2_GAIN_1 (0x3238)
#define P_HLTI_CON_2_GAIN_1 (volatile unsigned int *)((0x3238 << 2) + 0xff900000)
//Bit 31:24, reg_adp_hlti_con_2_gain3 96;, default = 96 . unsigned , default = 96
//Bit 23:16, reg_adp_hlti_con_2_gain4 5;, default = 95 . unsigned , default = 95
//Bit 15: 8, reg_adp_hlti_con_2_gain5 80;, default = 80 . unsigned , default = 80
//Bit 7: 0, reg_adp_hlti_con_2_gain6 20;, default = 20 . unsigned , default = 20
#define HLTI_OS_MARGIN (0x3239)
#define P_HLTI_OS_MARGIN (volatile unsigned int *)((0x3239 << 2) + 0xff900000)
//Bit 31: 8, reserved
//Bit 7: 0, reg_adp_hlti_os_margin : margin for hlti overshoot, default = 0 . unsigned , default = 0
#define VLTI_FLT_CON_CLP (0x323a)
#define P_VLTI_FLT_CON_CLP (volatile unsigned int *)((0x323a << 2) + 0xff900000)
//Bit 31:15, reserved
//Bit 14, reg_adp_vlti_en : enable bit of vlti, default = 1 . unsigned , default = 1
//Bit 13:12, reg_adp_vlti_hxn_flt : 0: no dn; 1: [1 2 1]/4; 2 : [1 2 2 2 1]/8 3:[1 0 2 0 1]/4, default = 2 . unsigned , default = 2
//Bit 11:10, reg_adp_vlti_dxn_flt : 0: no dn; 1: [1 2 1]/4; 2 : [1 2 2 2 1]/8 3:[1 0 2 0 1]/4, default = 2 . unsigned , default = 2
//Bit 9: 8, reg_adp_vlti_han_flt : 0: no dn; 1: [1 2 1]/4; 2 : [1 2 2 2 1]/8 3:[1 0 2 0 1]/4, default = 2 . unsigned , default = 2
//Bit 7: 6, reg_adp_vlti_dan_flt : 0: no dn; 1: [1 2 1]/4; 2 : [1 2 2 2 1]/8 3:[1 0 2 0 1]/4, default = 2 . unsigned , default = 2
//Bit 5: 4, reg_adp_vlti_dx_mode : 0:[-1 1] 1:[-1 0 -1]; 2/3: [-1 0 0 0 -1], default = 1 . unsigned , default = 1
//Bit 3, reserved
//Bit 2, reg_adp_vlti_con_lpf : lpf mode of the con: 0: [1 2 1]/4; 1:[1 2 2 2 1]/8, default = 0 . unsigned , default = 0
//Bit 1, reserved
//Bit 0, reg_adp_vlti_hard_clp_win : window size; 0: 1x3 window; 1: 1x5 window, default = 0 . unsigned , default = 0
#define VLTI_BST_GAIN (0x323b)
#define P_VLTI_BST_GAIN (volatile unsigned int *)((0x323b << 2) + 0xff900000)
//Bit 31:24, reserved
//Bit 23:16, reg_adp_vlti_bst_gain0 : gain to boost filter [-1 2 -1];, default = 32 . unsigned , default = 32
//Bit 15: 8, reg_adp_vlti_bst_gain1 : gain to boost filter [-1 0 2 0 -1];, default = 32 . unsigned , default = 32
//Bit 7: 0, reg_adp_vlti_bst_gain2 : gain to boost filter usf, default = 32 . unsigned , default = 32
#define VLTI_BST_CORE (0x323c)
#define P_VLTI_BST_CORE (volatile unsigned int *)((0x323c << 2) + 0xff900000)
//Bit 31:24, reserved
//Bit 23:16, reg_adp_vlti_bst_core0 : coring to boost filter [-1 2 -1];, default = 5 . unsigned , default = 5
//Bit 15: 8, reg_adp_vlti_bst_core1 : coring to boost filter [-1 0 2 0 -1];, default = 5 . unsigned , default = 5
//Bit 7: 0, reg_adp_vlti_bst_core2 : coring to boost filter usf, default = 3 . unsigned , default = 3
#define VLTI_CON_2_GAIN_0 (0x323d)
#define P_VLTI_CON_2_GAIN_0 (volatile unsigned int *)((0x323d << 2) + 0xff900000)
//Bit 31:24, reg_adp_vlti_con_2_gain0 25;, default = 25 . unsigned , default = 25
//Bit 23:16, reg_adp_vlti_con_2_gain1 60;, default = 60 . unsigned , default = 60
//Bit 15: 8, reg_adp_vlti_con_2_gain2 0;, default = 5 . unsigned , default = 5
//Bit 7: 0, reg_adp_vlti_con_2_gain3 96;, default = 96 . unsigned , default = 96
#define VLTI_CON_2_GAIN_1 (0x323e)
#define P_VLTI_CON_2_GAIN_1 (volatile unsigned int *)((0x323e << 2) + 0xff900000)
//Bit 31:24, reg_adp_vlti_con_2_gain4 5;, default = 95 . unsigned , default = 95
//Bit 23:16, reg_adp_vlti_con_2_gain5 80;, default = 80 . unsigned , default = 80
//Bit 15: 8, reg_adp_vlti_con_2_gain6 20;, default = 20 . unsigned , default = 20
//Bit 7: 0, reg_adp_vlti_os_margin : margin for vlti overshoot, default = 0 . unsigned , default = 0
#define VCTI_FLT_CON_CLP (0x323f)
#define P_VCTI_FLT_CON_CLP (volatile unsigned int *)((0x323f << 2) + 0xff900000)
//Bit 31:15, reserved
//Bit 14, reg_adp_vcti_en : enable bit of vlti, default = 1 . unsigned , default = 1
//Bit 13:12, reg_adp_vcti_hxn_flt : 0: no dn; 1: [1 2 1]/4; 2 : [1 2 2 2 1]/8 3:[1 0 2 0 1]/4, default = 2 . unsigned , default = 2
//Bit 11:10, reg_adp_vcti_dxn_flt : 0: no dn; 1: [1 2 1]/4; 2 : [1 2 2 2 1]/8 3:[1 0 2 0 1]/4, default = 2 . unsigned , default = 2
//Bit 9: 8, reg_adp_vcti_han_flt : 0: no dn; 1: [1 2 1]/4; 2 : [1 2 2 2 1]/8 3:[1 0 2 0 1]/4, default = 2 . unsigned , default = 2
//Bit 7: 6, reg_adp_vcti_dan_flt : 0: no dn; 1: [1 2 1]/4; 2 : [1 2 2 2 1]/8 3:[1 0 2 0 1]/4, default = 2 . unsigned , default = 2
//Bit 5: 4, reg_adp_vcti_dx_mode : 0:[-1 1] 1:[-1 0 -1]; 2/3: [-1 0 0 0 -1], default = 1 . unsigned , default = 1
//Bit 3, reserved
//Bit 2, reg_adp_vcti_con_lpf : lpf mode of the con: 0: [1 2 1]/4; 1:[1 2 2 2 1]/8, default = 0 . unsigned , default = 0
//Bit 1, reserved
//Bit 0, reg_adp_vcti_hard_clp_win : window size; 0: 1x3 window; 1: 1x5 window, default = 0 . unsigned , default = 0
#define VCTI_BST_GAIN (0x3240)
#define P_VCTI_BST_GAIN (volatile unsigned int *)((0x3240 << 2) + 0xff900000)
//Bit 31:24, reserved
//Bit 23:16, reg_adp_vcti_bst_gain0 : gain to boost filter [-1 2 -1];, default = 16 . unsigned , default = 16
//Bit 15: 8, reg_adp_vcti_bst_gain1 : gain to boost filter [-1 0 2 0 -1];, default = 16 . unsigned , default = 16
//Bit 7: 0, reg_adp_vcti_bst_gain2 : gain to boost filter usf, default = 16 . unsigned , default = 16
#define VCTI_BST_CORE (0x3241)
#define P_VCTI_BST_CORE (volatile unsigned int *)((0x3241 << 2) + 0xff900000)
//Bit 31:24, reserved
//Bit 23:16, reg_adp_vcti_bst_core0 : coring to boost filter [-1 2 -1];, default = 5 . unsigned , default = 5
//Bit 15: 8, reg_adp_vcti_bst_core1 : coring to boost filter [-1 0 2 0 -1];, default = 5 . unsigned , default = 5
//Bit 7: 0, reg_adp_vcti_bst_core2 : coring to boost filter usf, default = 3 . unsigned , default = 3
#define VCTI_CON_2_GAIN_0 (0x3242)
#define P_VCTI_CON_2_GAIN_0 (volatile unsigned int *)((0x3242 << 2) + 0xff900000)
//Bit 31:24, reg_adp_vcti_con_2_gain0 25;, default = 25 . unsigned , default = 25
//Bit 23:16, reg_adp_vcti_con_2_gain1 60;, default = 60 . unsigned , default = 60
//Bit 15: 8, reg_adp_vcti_con_2_gain2 0;, default = 5 . unsigned , default = 5
//Bit 7: 0, reg_adp_vcti_con_2_gain3 96;, default = 96 . unsigned , default = 96
#define VCTI_CON_2_GAIN_1 (0x3243)
#define P_VCTI_CON_2_GAIN_1 (volatile unsigned int *)((0x3243 << 2) + 0xff900000)
//Bit 31:24, reg_adp_vcti_con_2_gain4 5;, default = 95 . unsigned , default = 95
//Bit 23:16, reg_adp_vcti_con_2_gain5 80;, default = 80 . unsigned , default = 80
//Bit 15: 8, reg_adp_vcti_con_2_gain6 20;, default = 20 . unsigned , default = 20
//Bit 7: 0, reg_adp_vcti_os_margin : margin for vcti overshoot, default = 0 . unsigned , default = 0
#define SHARP_3DLIMIT (0x3244)
#define P_SHARP_3DLIMIT (volatile unsigned int *)((0x3244 << 2) + 0xff900000)
//Bit 31:29, reserved
//Bit 28:16, reg_3d_mid_width ,width of left part of 3d input, dft = half size of input width default = 0 . unsigned , default = 960
//Bit 15:13, reserved
//Bit 12: 0, reg_3d_mid_height ,height of left part of 3d input, dft = half size of input height default = 0 . unsigned , default = 540
#define DNLP_EN (0x3245)
#define P_DNLP_EN (volatile unsigned int *)((0x3245 << 2) + 0xff900000)
//Bit 31: 1, reserved
//Bit 0, reg_dnlp_en . unsigned , default = 1
#define DNLP_00 (0x3246)
#define P_DNLP_00 (volatile unsigned int *)((0x3246 << 2) + 0xff900000)
//Bit 31: 0, reg_dnlp_ygrid0 : dnlp00 . unsigned , default = 32'h08060402
#define DNLP_01 (0x3247)
#define P_DNLP_01 (volatile unsigned int *)((0x3247 << 2) + 0xff900000)
//Bit 31: 0, reg_dnlp_ygrid1 : dnlp01 . unsigned , default = 32'h100e0c0a
#define DNLP_02 (0x3248)
#define P_DNLP_02 (volatile unsigned int *)((0x3248 << 2) + 0xff900000)
//Bit 31: 0, reg_dnlp_ygrid2 : dnlp02 . unsigned , default = 32'h1a171412
#define DNLP_03 (0x3249)
#define P_DNLP_03 (volatile unsigned int *)((0x3249 << 2) + 0xff900000)
//Bit 31: 0, reg_dnlp_ygrid3 : dnlp03 . unsigned , default = 32'h2824201d
#define DNLP_04 (0x324a)
#define P_DNLP_04 (volatile unsigned int *)((0x324a << 2) + 0xff900000)
//Bit 31: 0, reg_dnlp_ygrid4 : dnlp04 . unsigned , default = 32'h3834302c
#define DNLP_05 (0x324b)
#define P_DNLP_05 (volatile unsigned int *)((0x324b << 2) + 0xff900000)
//Bit 31: 0, reg_dnlp_ygrid5 : dnlp05 . unsigned , default = 32'h4b45403c
#define DNLP_06 (0x324c)
#define P_DNLP_06 (volatile unsigned int *)((0x324c << 2) + 0xff900000)
//Bit 31: 0, reg_dnlp_ygrid6 : dnlp06 . unsigned , default = 32'h605b5550
#define DNLP_07 (0x324d)
#define P_DNLP_07 (volatile unsigned int *)((0x324d << 2) + 0xff900000)
//Bit 31: 0, reg_dnlp_ygrid7 : dnlp07 . unsigned , default = 32'h80787068
#define DNLP_08 (0x324e)
#define P_DNLP_08 (volatile unsigned int *)((0x324e << 2) + 0xff900000)
//Bit 31: 0, reg_dnlp_ygrid8 : dnlp08 . unsigned , default = 32'ha0989088
#define DNLP_09 (0x324f)
#define P_DNLP_09 (volatile unsigned int *)((0x324f << 2) + 0xff900000)
//Bit 31: 0, reg_dnlp_ygrid9 : dnlp09 . unsigned , default = 32'hb8b2aca6
#define DNLP_10 (0x3250)
#define P_DNLP_10 (volatile unsigned int *)((0x3250 << 2) + 0xff900000)
//Bit 31: 0, reg_dnlp_ygrid10 : dnlp10 . unsigned , default = 32'hc8c4c0bc
#define DNLP_11 (0x3251)
#define P_DNLP_11 (volatile unsigned int *)((0x3251 << 2) + 0xff900000)
//Bit 31: 0, reg_dnlp_ygrid11 : dnlp11 . unsigned , default = 32'hd4d2cecb
#define DNLP_12 (0x3252)
#define P_DNLP_12 (volatile unsigned int *)((0x3252 << 2) + 0xff900000)
//Bit 31: 0, reg_dnlp_ygrid12 : dnlp12 . unsigned , default = 32'hdad8d7d6
#define DNLP_13 (0x3253)
#define P_DNLP_13 (volatile unsigned int *)((0x3253 << 2) + 0xff900000)
//Bit 31: 0, reg_dnlp_ygrid13 : dnlp13 . unsigned , default = 32'he2e0dedc
#define DNLP_14 (0x3254)
#define P_DNLP_14 (volatile unsigned int *)((0x3254 << 2) + 0xff900000)
//Bit 31: 0, reg_dnlp_ygrid14 : dnlp14 . unsigned , default = 32'hf0ece8e4
#define DNLP_15 (0x3255)
#define P_DNLP_15 (volatile unsigned int *)((0x3255 << 2) + 0xff900000)
//Bit 31: 0, reg_dnlp_ygrid15 : dnlp15 . unsigned , default = 32'hfffcf8f4
#define DEMO_CRTL (0x3256)
#define P_DEMO_CRTL (volatile unsigned int *)((0x3256 << 2) + 0xff900000)
//Bit 31:19, reserved
//Bit 18:17, demo_disp_position . unsigned , default = 2
//Bit 16, demo_hsvsharp_enable . unsigned , default = 0
//Bit 15:13, reserved
//Bit 12: 0, demo_left_top_screen_width : . unsigned , default = 360
#define SHARP_SR2_CTRL (0x3257)
#define P_SHARP_SR2_CTRL (volatile unsigned int *)((0x3257 << 2) + 0xff900000)
//Bit 31:22, reserved
//Bit 21:16, reg_sr2_pk_la_err_dis_rate : . unsigned , low angle and high angle error should not be no less than nearby_error*rate/64; default = 24
//Bit 15:8, reg_sr2_pk_sad_diag_gain : . unsigned , gain to sad[2] and sad[6], 16 normalized to "1"; default = 16
//Bit 7, reg_sr2_vert_outphs : . unsigned , default = 0
//Bit 6, reg_sr2_horz_outphs : . unsigned , default = 0
//Bit 5, reg_sr2_vert_ratio : . unsigned , default = 0
//Bit 4, reg_sr2_hori_ratio : . unsigned , default = 0
//Bit 3, reg_sr2_bic_norm : . unsigned , default = 1
//Bit 2, reg_sr2_enable : . unsigned , default = 0
//Bit 1, reg_sr2_sharp_prc_lr_hbic : . unsigned , default = 0
//Bit 0, reg_sr2_sharp_prc_lr : lti/cti/nr/peaking processing using LR grid, 0: on HR grid; 1:on LR grid, horizontally no upscale, but using simple bic . unsigned , default = 0
#define SHARP_SR2_YBIC_HCOEF0 (0x3258)
#define P_SHARP_SR2_YBIC_HCOEF0 (volatile unsigned int *)((0x3258 << 2) + 0xff900000)
//Bit 31:24, reg_sr2_y_bic_hcoef03 Horizontal bi-cubic filter of 1.0 phase of luma channel Filter will be normalized to 128 as 鈥?鈥? default=0
//Bit 23:16, reg_sr2_y_bic_hcoef02 the same as above; default=0
//Bit 15: 8, reg_sr2_y_bic_hcoef01 the same as above; default=64
//Bit 7: 0, reg_sr2_y_bic_hcoef00 the same as above; default=0
#define SHARP_SR2_YBIC_HCOEF1 (0x3259)
#define P_SHARP_SR2_YBIC_HCOEF1 (volatile unsigned int *)((0x3259 << 2) + 0xff900000)
//Bit 31:24, reg_sr2_y_bic_hcoef13 Horizontal bi-cubic filter of 0.5 phase of luma channel,Filter will be normalized to 128 as 鈥?鈥? default=-4
//Bit 23:16, reg_sr2_y_bic_hcoef12 the same as above; default=36
//Bit 15: 8, reg_sr2_y_bic_hcoef11 the same as above; default=36
//Bit 7: 0, reg_sr2_y_bic_hcoef10 the same as above; default=-4
#define SHARP_SR2_CBIC_HCOEF0 (0x325a)
#define P_SHARP_SR2_CBIC_HCOEF0 (volatile unsigned int *)((0x325a << 2) + 0xff900000)
//Bit 31:24, reg_sr2_c_bic_hcoef03 Horizontal bi-cubic filter of 1.0 phase of luma channel ,Filter will be normalized to 128 as 鈥?鈥? default=0
//Bit 23:16, reg_sr2_c_bic_hcoef02 the same as above; default=21
//Bit 15: 8, reg_sr2_c_bic_hcoef01 the same as above; default=22
//Bit 7: 0, reg_sr2_c_bic_hcoef00 the same as above; default=21
#define SHARP_SR2_CBIC_HCOEF1 (0x325b)
#define P_SHARP_SR2_CBIC_HCOEF1 (volatile unsigned int *)((0x325b << 2) + 0xff900000)
//Bit 31:24, reg_sr2_c_bic_hcoef13 Horizontal bi-cubic filter of 0.5 phase of luma channel,Filter will be normalized to 128 as 鈥?鈥? default=-4
//Bit 23:16, reg_sr2_c_bic_hcoef12 the same as above; default=36
//Bit 15: 8, reg_sr2_c_bic_hcoef11 the same as above; default=36
//Bit 7: 0, reg_sr2_c_bic_hcoef10 the same as above; default=-4
#define SHARP_SR2_YBIC_VCOEF0 (0x325c)
#define P_SHARP_SR2_YBIC_VCOEF0 (volatile unsigned int *)((0x325c << 2) + 0xff900000)
//Bit 31:24, reg_sr2_y_bic_vcoef03 Horizontal bi-cubic filter of 1.0 phase of luma channel, Filter will be normalized to 128 as 鈥?鈥? default=0
//Bit 23:16, reg_sr2_y_bic_vcoef02 the same as above; default=0
//Bit 15: 8, reg_sr2_y_bic_vcoef01 the same as above; default=64
//Bit 7: 0, reg_sr2_y_bic_vcoef00 the same as above; default=0
#define SHARP_SR2_YBIC_VCOEF1 (0x325d)
#define P_SHARP_SR2_YBIC_VCOEF1 (volatile unsigned int *)((0x325d << 2) + 0xff900000)
//Bit 31:24, reg_sr2_y_bic_vcoef13 Horizontal bi-cubic filter of 0.5 phase of luma channe, lFilter will be normalized to 128 as 鈥?鈥? default=-4
//Bit 23:16, reg_sr2_y_bic_vcoef12 the same as above; default=36
//Bit 15: 8, reg_sr2_y_bic_vcoef11 the same as above; default=36
//Bit 7: 0, reg_sr2_y_bic_vcoef10 the same as above; default=-4
#define SHARP_SR2_CBIC_VCOEF0 (0x325e)
#define P_SHARP_SR2_CBIC_VCOEF0 (volatile unsigned int *)((0x325e << 2) + 0xff900000)
//Bit 31:24, reg_sr2_c_bic_vcoef03 Horizontal bi-cubic filter of 1.0 phase of luma channel, Filter will be normalized to 128 as 鈥?鈥? default=0
//Bit 23:16, reg_sr2_c_bic_vcoef02 the same as above; default=21
//Bit 15: 8, reg_sr2_c_bic_vcoef01 the same as above; default=22
//Bit 7: 0, reg_sr2_c_bic_vcoef00 the same as above; default=21
#define SHARP_SR2_CBIC_VCOEF1 (0x325f)
#define P_SHARP_SR2_CBIC_VCOEF1 (volatile unsigned int *)((0x325f << 2) + 0xff900000)
//Bit 31:24, reg_sr2_c_bic_vcoef13 Horizontal bi-cubic filter of 0.5 phase of luma channel,Filter will be normalized to 128 as 鈥?鈥? default=-4
//Bit 23:16, reg_sr2_c_bic_vcoef12 the same as above; default=36
//Bit 15: 8, reg_sr2_c_bic_vcoef11 the same as above; default=36
//Bit 7: 0, reg_sr2_c_bic_vcoef10 the same as above; default=-4
#define SHARP_SR2_MISC (0x3260)
#define P_SHARP_SR2_MISC (volatile unsigned int *)((0x3260 << 2) + 0xff900000)
//Bit 31:2, reserved
//Bit 1, reg_sr2_cmpmux_bef : . unsigned , default = 0,0 no swap anf for YUV->YUV; 1, swapped and for RGB->GBR;
//Bit 0, reg_sr2_cmpmux_aft : . unsigned , default = 0,0 no swap anf for YUV->YUV; 1, swapped and for GBR-RGB;
#define SHARP_SR3_SAD_CTRL (0x3261)
#define P_SHARP_SR3_SAD_CTRL (volatile unsigned int *)((0x3261 << 2) + 0xff900000)
//Bit 31:30 reserved
//Bit 29:24 reg_sr3_pk_sad_core_rate // u6: rate of coring for sad(theta) - sad(theta+pi/2)*rate/64
//Bit 23:22 reserved
//Bit 21:16 reg_sr3_lti_sad_core_rate // u6: rate of coring for sad(theta) - sad(theta+pi/2)*rate/64 , default= 6
//Bit 15:14 reserved
//Bit 13:8 reg_sr3_cti_sad_core_rate // u6: rate of coring for sad(theta) - sad(theta+pi/2)*rate/64 , default= 6
//Bit 7, reg_sr3_lti_hsad_mode // u1: mode for hsad of lti caluclation; 0: block based; 1:othor shape; default= 1
//Bit 6, reg_sr3_cti_hsad_mode // u1: mode for hsad of cti caluclation; 0: block based; 1:othor shape; default= 1
//Bit 5, reg_sr3_lti_dsad_mode // u1: mode for dsad of lti caluclation, 0: block based; 1:othor shape; default= 1
//Bit 4, reg_sr3_cti_dsad_mode // u1: mode for dsad of cti caluclation, 0: block based; 1:othor shape; default= 1
//Bit 3, reg_sr3_lti_vsad_mode // u1: mode for vsad of lti caluclation, 0: block based; 1:othor shape; default= 1
//Bit 2, reg_sr3_cti_vsad_mode // u1: mode for vsad of cti caluclation, 0: block based; 1:othor shape; default= 1
//Bit 1, reg_sr3_lti_hsad_hlpf // u1: hlpf for hsad of lti caluclation, 0: no hlpf; 1: with [1 2 1] hlpf; default= 1
//Bit 0, reg_sr3_cti_hsad_hlpf // u1: hlpf for hsad of cti caluclation, 0: no hlpf; 1: with [1 2 1] hlpf; default= 1
#define SHARP_SR3_PK_CTRL0 (0x3262)
#define P_SHARP_SR3_PK_CTRL0 (volatile unsigned int *)((0x3262 << 2) + 0xff900000)
//Bit 31:12 reserved
//Bit 11, reg_sr3_pk_sad_mode // u1: mode for sad of peaking and noise reduction, 0: block based; 1:othor shape; default= 1
//Bit 10, reg_sr3_pk_hsad_hlpf // u1: hlpf for hsad for peaking caluclation, 0: no hlpf; 1: with [1 2 2 2 1] hlpf; default= 1
//Bit 9, reg_sr3_pk_vsad_hlpf // u1: hlpf for vsad for peaking caluclation, 0: no hlpf; 1: with [1 2 2 2 1] hlpf; default= 1
//Bit 8, reg_sr3_pk_dsad_hlpf // u1: hlpf for dsad for peaking caluclation, 0: no hlpf; 1: with [1 2 2 2 1] hlpf; default= 1
//Bit 7:6, reg_sr3_pk_hpdrt_mode // u2: mode for HPdrt filter: default= 3
//Bit 5:4, reg_sr3_pk_bpdrt_mode // u2: mode for BPdrt filter: default= 3
//Bit 3:2, reg_sr3_pk_drtbld_range // u2: range of the min2 and min direction distance; default =1
//Bit 1, reserved
//Bit 0, reg_sr3_pk_ti_blend_mode // u1: blend mode of the TI and PK results: default = 0;
#define SHARP_SR3_PK_CTRL1 (0x3263)
#define P_SHARP_SR3_PK_CTRL1 (volatile unsigned int *)((0x3263 << 2) + 0xff900000)
//Bit 31, reserved
//Bit 30:28, reg_sr3_pk_hp_hvcon_replace8_maxsad //u3: replace HP hvcon by maxsad, default =1
//Bit 27, reserved
//Bit 26:24, reg_sr3_pk_bp_hvcon_replace8_maxsad //u3: replace HP hvcon by maxsad, default =1
//Bit 23:16, reg_sr3_pk_hp_hvcon_replace8lv_gain //u8: gain to local variant before calculating the hv gain for peaking, normalized to 32 as "1" default = 32;
//Bit 15:8, reg_sr3_pk_bp_hvcon_replace8lv_gain //u8: gain to local variant before calculating the hv gain for peaking, normalized to 32 as "1" default = 32;
//Bit 7, reg_sr3_sad_intlev_mode //u1: interleave detection xerr mode: 0 max; 1:sum default=1
//Bit 6, reg_sr3_sad_intlev_mode1 //u1: mode 1 of using diagonal protection: 0: no digonal protection; 1: with diagonal protection default=1
//Bit 5:0, reg_sr3_sad_intlev_gain //u6: interleave detection for sad gain applied, normalized to 8 as 1 default=12
#define SHARP_DEJ_CTRL (0x3264)
#define P_SHARP_DEJ_CTRL (volatile unsigned int *)((0x3264 << 2) + 0xff900000)
//Bit 31:4 reserved
//Bit 3:2, reg_sr3_dejaggy_sameside_prtct // u2: enable of sr3 dejaggy same side curve protect from filter, [0] for proc, [1] for ctrl path, default=3
//Bit 1, reg_sr3_dejaggy_sameside_mode // u1: mode of the sameside flag decision: default =1
//Bit 0, reg_sr3_dejaggy_enable // u1: enable of sr3 dejaggy: default =0
#define SHARP_DEJ_ALPHA (0x3265)
#define P_SHARP_DEJ_ALPHA (volatile unsigned int *)((0x3265 << 2) + 0xff900000)
//Bit 31:28, reg_sr3_dejaggy_ctrlchrm_alpha_1 //u4: alpha for LR video LPF, default = 0
//Bit 27:24, reg_sr3_dejaggy_ctrlchrm_alpha_0 //u4: alpha for LR video LPF, default = 15
//Bit 23:20, reg_sr3_dejaggy_ctrlluma_alpha_1 //u4: alpha for LR video LPF, default = 0
//Bit 19:16, reg_sr3_dejaggy_ctrlluma_alpha_0 //u4: alpha for LR video LPF, default = 15
//Bit 15:12, reg_sr3_dejaggy_procchrm_alpha_1 //u4: alpha for LR video LPF, default = 4
//Bit 11:8, reg_sr3_dejaggy_procchrm_alpha_0 //u4: alpha for LR video LPF, default = 6
//Bit 7:4, reg_sr3_dejaggy_procluma_alpha_1 //u4: alpha for LR video LPF, default = 4
//Bit 3:0, reg_sr3_dejaggy_procluma_alpha_0 //u4: alpha for LR video LPF, default = 6
#define SHARP_SR3_DRTLPF_EN (0x3266)
#define P_SHARP_SR3_DRTLPF_EN (volatile unsigned int *)((0x3266 << 2) + 0xff900000)
//Bit 31:15 reserved
//Bit 14:8, reg_pk_debug_edge . unsigned , default = 0
//Bit 7, reserved
//Bit 6:4, reg_sr3_drtlpf_theta_en //u1x3 theta (pure vertical and horizontal HF burst protection) enable. 0: not enable, 1:enable protection
//Bit 3, reserved
//Bit 2:0 reg_sr3_drtlpf_enable //u1x3 directional lpf on luma U and V channels, default = 7
#define SHARP_SR3_DRTLPF_ALPHA_0 (0x3267)
#define P_SHARP_SR3_DRTLPF_ALPHA_0 (volatile unsigned int *)((0x3267 << 2) + 0xff900000)
//Bit 31:30 reserved
//Bit 29:24 reg_sr3_drtlpf_alpha3 //u6: directional lpf alpha coef for min_sad/max_sad comparied, default = 9
//Bit 23:22 reserved
//Bit 21:16 reg_sr3_drtlpf_alpha2 //u6: default =10
//Bit 15:14 reserved
//Bit 13:8 reg_sr3_drtlpf_alpha1 //u6: default = 11
//Bit 7:6 reserved
//Bit 5:0 reg_sr3_drtlpf_alpha0 //u6: default = 12
#define SHARP_SR3_DRTLPF_ALPHA_1 (0x3268)
#define P_SHARP_SR3_DRTLPF_ALPHA_1 (volatile unsigned int *)((0x3268 << 2) + 0xff900000)
//Bit 31:30 reserved
//Bit 29:24 reg_sr3_drtlpf_alpha7 //u6: directional lpf alpha coef for min_sad/max_sad comparied, default = 1
//Bit 23:22 reserved
//Bit 21:16 reg_sr3_drtlpf_alpha6 //u6: default = 4
//Bit 15:14 reserved
//Bit 13:8 reg_sr3_drtlpf_alpha5 //u6: default = 7
//Bit 7:6 reserved
//Bit 5:0 reg_sr3_drtlpf_alpha4 //u6: default = 8
#define SHARP_SR3_DRTLPF_ALPHA_2 (0x3269)
#define P_SHARP_SR3_DRTLPF_ALPHA_2 (volatile unsigned int *)((0x3269 << 2) + 0xff900000)
//Bit 31:30 reserved
//Bit 29:24 reg_sr3_drtlpf_alpha11 //u6: directional lpf alpha coef for min_sad/max_sad comparied, default = 0
//Bit 23:22 reserved
//Bit 21:16 reg_sr3_drtlpf_alpha10 //u6: default = 0
//Bit 15:14 reserved
//Bit 13:8 reg_sr3_drtlpf_alpha9 //u6: default = 0
//Bit 7:6 reserved
//Bit 5:0 reg_sr3_drtlpf_alpha8 //u6: default = 0
#define SHARP_SR3_DRTLPF_ALPHA_OFST (0x326a)
#define P_SHARP_SR3_DRTLPF_ALPHA_OFST (volatile unsigned int *)((0x326a << 2) + 0xff900000)
//Bit 31:28 reg_sr3_drtlpf_alpha_ofst7 //s4: directional lpf alpha coef ofset of each directions, default = -8
//Bit 27:24 reg_sr3_drtlpf_alpha_ofst6 //s4: default = -8
//Bit 23:20 reg_sr3_drtlpf_alpha_ofst5 //s4: default = -8
//Bit 19:16 reg_sr3_drtlpf_alpha_ofst4 //s4: default = -8
//Bit 15:12 reg_sr3_drtlpf_alpha_ofst3 //s4: default = -8
//Bit 11:8 reg_sr3_drtlpf_alpha_ofst2 //s4: default = -8
//Bit 7:4 reg_sr3_drtlpf_alpha_ofst1 //s4: default = -8
//Bit 3:0 reg_sr3_drtlpf_alpha_ofst0 //s4: default = -8
#define SHARP_SR3_DERING_CTRL (0x326b)
#define P_SHARP_SR3_DERING_CTRL (volatile unsigned int *)((0x326b << 2) + 0xff900000)
//Bit 31 reserved
//Bit 30:28 reg_sr3_dering_enable // u3: dering enable bits; default = 1
//Bit 27 reserved
//Bit 26:24 reg_sr3_dering_varlpf_mode // u3: local variant LPF mode: 0 no filter, 1, errosion 3x3; 2: 3x3 lpf; 3 and up: 3x3 errosion + lpf default = 3
//Bit 23:20 reg_sr3_dering_maxrange // u4: maximum:range of dering in LR resolution, max to 12; default = 9
//Bit 19:18 reserved
//Bit 17:16 reg_sr3_dering_lcvar_blend_mode // u2: mode for lcvar calculation: 0: HVblend; 1: diagblend; 2: HVblend+V (for hring); 3: HVblend+ DiagBlend default = 2
//Bit 15:8 reg_sr3_dering_lcvar_gain // u8: gain to local variant and normalized to 32 as "1" default = 64
//Bit 7:0 reg_sr3_dering_lcvar_nearby_maxsad_th // u8: threshold to use nearer side maxsad if that side sad is larger than this threshold, ortherwise, use the max one default = 28
#define SHARP_SR3_DERING_LUMA2PKGAIN_0TO3 (0x326c)
#define P_SHARP_SR3_DERING_LUMA2PKGAIN_0TO3 (volatile unsigned int *)((0x326c << 2) + 0xff900000)
//Bit 31:24 reg_sr3_dering_luma2pkgain3 // u8: level limit(for th0<bpcon<th1) of curve for dering pkgain based on LPF luma level. default=255
//Bit 23:16 reg_sr3_dering_luma2pkgain2 // u8: level limit(for bpcon<th0) of curve for dering pkgain based on LPF luma level. default=255
//Bit 15:8 reg_sr3_dering_luma2pkgain1 // u8: threshold1 of curve for dering pkgain based on LPF luma level default =200
//Bit 7:0 reg_sr3_dering_luma2pkgain0 // u8: threshold0 of curve for dering pkgain based on LPF luma level. default =30
#define SHARP_SR3_DERING_LUMA2PKGAIN_4TO6 (0x326d)
#define P_SHARP_SR3_DERING_LUMA2PKGAIN_4TO6 (volatile unsigned int *)((0x326d << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23:16 reg_sr3_dering_luma2pkgain6 // u8: rate1 (for bpcon>th1) of curve for dering pkgain based on LPF luma level. default =24
//Bit 15:8 reg_sr3_dering_luma2pkgain5 // u8: rate0 (for bpcon<th0) of curve for dering pkgain based on LPF luma level. dfault =50
//Bit 7:0 reg_sr3_dering_luma2pkgain4 // u8: level limit(for bpcon>th1) of curve for dering pkgain based on LPF luma level. default =255
#define SHARP_SR3_DERING_LUMA2PKOS_0TO3 (0x326e)
#define P_SHARP_SR3_DERING_LUMA2PKOS_0TO3 (volatile unsigned int *)((0x326e << 2) + 0xff900000)
//Bit 31:24 reg_sr3_dering_luma2pkos3 // u8: level limit(for th0<bpcon<th1) of curve for dering pkOS based on LPF luma level. default=255
//Bit 23:16 reg_sr3_dering_luma2pkos2 // u8: level limit(for bpcon<th0) of curve for dering pkOS based on LPF luma level. default=255
//Bit 15:8 reg_sr3_dering_luma2pkos1 // u8: threshold1 of curve for dering pkOS based on LPF luma level default =200
//Bit 7:0 reg_sr3_dering_luma2pkos0 // u8: threshold0 of curve for dering pkOS based on LPF luma leve. default =30
#define SHARP_SR3_DERING_LUMA2PKOS_4TO6 (0x326f)
#define P_SHARP_SR3_DERING_LUMA2PKOS_4TO6 (volatile unsigned int *)((0x326f << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23:16 reg_sr3_dering_luma2pkos6 // u8: rate1 (for bpcon>th1) of curve for dering pkOS based on LPF luma level. default =24
//Bit 15:8 reg_sr3_dering_luma2pkos5 // u8: rate0 (for bpcon<th0) of curve for dering pkOS based on LPF luma level. dfault =50
//Bit 7:0 reg_sr3_dering_luma2pkos4 // u8: level limit(for bpcon>th1) of curve for dering pkOS based on LPF luma level. default =255
#define SHARP_SR3_DERING_GAINVS_MADSAD (0x3270)
#define P_SHARP_SR3_DERING_GAINVS_MADSAD (volatile unsigned int *)((0x3270 << 2) + 0xff900000)
//Bit 31:28 reg_sr3_dering_gainvs_maxsad7 //u4: pkgain vs maxsad value, 8 node interpolations, default = 0
//Bit 27:24 reg_sr3_dering_gainvs_maxsad6 //u4: default = 0
//Bit 23:20 reg_sr3_dering_gainvs_maxsad5 //u4: default = 0
//Bit 19:16 reg_sr3_dering_gainvs_maxsad4 //u4: default = 0
//Bit 15:12 reg_sr3_dering_gainvs_maxsad3 //u4: default = 0
//Bit 11:8 reg_sr3_dering_gainvs_maxsad2 //u4: default = 0
//Bit 7:4 reg_sr3_dering_gainvs_maxsad1 //u4: default = 4
//Bit 3:0 reg_sr3_dering_gainvs_maxsad0 //u4: default = 8
#define SHARP_SR3_DERING_GAINVS_VR2MAX (0x3271)
#define P_SHARP_SR3_DERING_GAINVS_VR2MAX (volatile unsigned int *)((0x3271 << 2) + 0xff900000)
//Bit 31:28 reg_sr3_dering_gainvs_vr2max7 //u4: pkgain vs ratio = max(local_var, floor)/maxsad nearby, default = 15
//Bit 27:24 reg_sr3_dering_gainvs_vr2max6 //u4: default = 15
//Bit 23:20 reg_sr3_dering_gainvs_vr2max5 //u4: default = 15
//Bit 19:16 reg_sr3_dering_gainvs_vr2max4 //u4: default = 15
//Bit 15:12 reg_sr3_dering_gainvs_vr2max3 //u4: default = 14
//Bit 11:8 reg_sr3_dering_gainvs_vr2max2 //u4: default = 12
//Bit 7:4 reg_sr3_dering_gainvs_vr2max1 //u4: default = 2
//Bit 3:0 reg_sr3_dering_gainvs_vr2max0 //u4: default = 0
#define SHARP_SR3_DERING_PARAM0 (0x3272)
#define P_SHARP_SR3_DERING_PARAM0 (volatile unsigned int *)((0x3272 << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23:16 reg_sr3_dering_lcvar_floor //u8: local varianet no smaller than this value to calculate dgain max(localvar,x)/maxsad. default = 10
//Bit 15:8 reg_sr3_dering_vr2max_gain //u8: gain to max(local_var, floor)/maxsad before feeding to LUT. default = 32
//Bit 7:6 reserved
//Bit 5:0 reg_sr3_dering_vr2max_limt //u6: limit of maxsad to max(local_var, floor)*(max(maxsad, lmit))/maxsad. default = 16
#define SHARP_SR3_DRTLPF_THETA (0x3273)
#define P_SHARP_SR3_DRTLPF_THETA (volatile unsigned int *)((0x3273 << 2) + 0xff900000)
//Bit 31:0 reg_sr3_drtlpf_theta //u4x8: directional lpf beta coef for min_sad/min2_sad compared to x=0:7 correspond to[1:8]/16; 0 means no drtLPF, 15: 100% alpha dependant drtLPF
#define SHARP_SATPRT_CTRL (0x3274)
#define P_SHARP_SATPRT_CTRL (volatile unsigned int *)((0x3274 << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23:16 reg_satprt_sat_core //u8: 4x will be coring to cor(irgb_max-irgb_min) to calculate the oy_delt, the smaller the more protection to color, the larger only the rich color will be protected;
//Bit 15:8 reg_satprt_sat_rate //u8: rate to cor(irgb_max-irgb_min) to calculate the oy_delt, the larger the more protection to rich color; norm 16 as 1
//Bit 7:4 reserved
//Bit 3:2 reg_satprt_csc_mode //u2: csc mode of current yuv input: 0:601, 1:709, 2:BT2020 NCL, 3:reserved
//Bit 1 reg_satprt_is_lmt //u1: flag telling the YUV is limited range data or full range data, 0 full range, 1: limited range
//Bit 0 reg_satprt_enable //u1: enable of saturation protection for dnlp adjustments
#define SHARP_SATPRT_DIVM (0x3275)
#define P_SHARP_SATPRT_DIVM (volatile unsigned int *)((0x3275 << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23:0 reg_satprt_div_m //u8x3, 1/m, normalized to 128 as 1, default=1
#define SHARP_SATPRT_LMT_RGB (0x3276)
#define P_SHARP_SATPRT_LMT_RGB (volatile unsigned int *)((0x3276 << 2) + 0xff900000)
//Bit 31:30 reserved
//Bit 29:0 reg_satprt_lmt_rgb //u10x3, limit of the rgb channel, for limited range RGB, set to 960, otherwise set to 1023
#define SHARP_DB_FLT_CTRL (0x3277)
#define P_SHARP_DB_FLT_CTRL (volatile unsigned int *)((0x3277 << 2) + 0xff900000)
//Bit 31:27 reserved
//Bit 26 reg_nrdeband_reset1
//Bit 25 reg_nrdeband_reset0
//Bit 24 reg_nrdeband_rgb // unsigned , default = 0 0:yuv 1:RGB
//Bit 23 reg_nrdeband_en11 // unsigned , default = 1 debanding registers of side lines, [0] for luma, same for below
//Bit 22 reg_nrdeband_en10 // unsigned , default = 1 debanding registers of side lines, [1] for chroma, same for below
//Bit 21 reg_nrdeband_siderand // unsigned , default = 1 options to use side two lines use the rand, instead of use for the YUV three component of middle line, 0: seed[3]/bandrand[3] for middle line yuv; 1: seed[3]/bandrand[3] for nearby three lines Y;
//Bit 20 reg_nrdeband_randmode // unsigned , default = 0 mode of rand noise adding, 0: same noise strength for all difs; else: strenght of noise will not exceed the difs, MIN((pPKReg->reg_nrdeband_bandrand[m]), noise[m])
//Bit 19:17 reg_nrdeband_bandrand2 // unsigned , default = 6
//Bit 16 reserved
//Bit 15:13 reg_nrdeband_bandrand1 // unsigned , default = 6
//Bit 12 reserved
//Bit 11: 9 reg_nrdeband_bandrand0 // unsigned , default = 6
//Bit 8 reserved
//Bit 7 reg_nrdeband_hpxor1 // unsigned , default = 1 debanding random hp portion xor, [0] for luma
//Bit 6 reg_nrdeband_hpxor0 // unsigned , default = 1 debanding random hp portion xor, [1] for chroma
//Bit 5 reg_nrdeband_en1 // unsigned , default = 1 debanding registers, for luma
//Bit 4 reg_nrdeband_en0 // unsigned , default = 1 debanding registers, for chroma
//Bit 3: 2 reg_nrdeband_lpf_mode1 // unsigned , default = 2 lpf mode, 0: 3x3, 1:3x5; 2: 5x5; 3:5x7
//Bit 1: 0 reg_nrdeband_lpf_mode0 // unsigned , default = 2 lpf mode, 0: 3x3, 1:3x5; 2: 5x5; 3:5x7
#define SHARP_DB_FLT_YC_THRD (0x3278)
#define P_SHARP_DB_FLT_YC_THRD (volatile unsigned int *)((0x3278 << 2) + 0xff900000)
//Bit 31:28 reg_nrdeband_luma_th3 // unsigned , default = 9 threshold to |Y-Ylpf|, if < th[0] use lpf
//Bit 27:24 reg_nrdeband_luma_th2 // unsigned , default = 7 elseif <th[1] use (lpf*3 + y)/4
//Bit 23:20 reg_nrdeband_luma_th1 // unsigned , default = 6 elseif <th[1] use (lpf*3 + y)/4elseif <th[2] (lpf*1 + y)/2
//Bit 19:16 reg_nrdeband_luma_th0 // unsigned , default = 5 elseif <th[1] use (lpf*3 + y)/4elseif elseif <th[3] (lpf*1 + 3*y)/4; else
//Bit 15:12 reg_nrdeband_chrm_th3 // unsigned , default = 9 threshold to |Y-Ylpf|, if < th[0] use lpf
//Bit 11: 8 reg_nrdeband_chrm_th2 // unsigned , default = 7 elseif <th[1] use (lpf*3 + y)/4
//Bit 7: 4 reg_nrdeband_chrm_th1 // unsigned , default = 6 elseif <th[1] use (lpf*3 + y)/4elseif <th[2] (lpf*1 + y)/2
//Bit 3: 0 reg_nrdeband_chrm_th0 // unsigned , default = 5 elseif <th[1] use (lpf*3 + y)/4elseif elseif
#define SHARP_DB_FLT_RANDLUT (0x3279)
#define P_SHARP_DB_FLT_RANDLUT (volatile unsigned int *)((0x3279 << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23:21 reg_nrdebandslut7 // unsigned , default = 1 lut0
//Bit 20:18 reg_nrdebandslut6 // unsigned , default = 1 lut0
//Bit 17:15 reg_nrdebandslut5 // unsigned , default = 1 lut0
//Bit 14:12 reg_nrdebandslut4 // unsigned , default = 1 lut0
//Bit 11: 9 reg_nrdebandslut3 // unsigned , default = 1 lut0
//Bit 8: 6 reg_nrdebandslut2 // unsigned , default = 1 lut0
//Bit 5: 3 reg_nrdebandslut1 // unsigned , default = 1 lut0
//Bit 2: 0 reg_nrdebandslut0 // unsigned , default = 1 lut0
#define SHARP_DB_FLT_PXI_THRD (0x327a)
#define P_SHARP_DB_FLT_PXI_THRD (volatile unsigned int *)((0x327a << 2) + 0xff900000)
//Bit 31:26 reserved
//Bit 25:16 reg_nrdeband_yc_th1 // unsigned , default = 0 to luma/|u/v| for using the denoise
//Bit 15:10 reserved
//Bit 9: 0 reg_nrdeband_yc_th0 // unsigned , default = 0 to luma/|u/v| for using the denoise
#define SHARP_DB_FLT_SEED_Y (0x327b)
#define P_SHARP_DB_FLT_SEED_Y (volatile unsigned int *)((0x327b << 2) + 0xff900000)
//Bit 31: 0 reg_nrdeband_seed0 // unsigned , default = 1621438240 noise adding seed for Y. seed[0]= 0x60a52f20; as default
#define SHARP_DB_FLT_SEED_U (0x327c)
#define P_SHARP_DB_FLT_SEED_U (volatile unsigned int *)((0x327c << 2) + 0xff900000)
//Bit 31: 0 reg_nrdeband_seed1 // unsigned , default = 1621438247 noise adding seed for U. seed[0]= 0x60a52f27; as default
#define SHARP_DB_FLT_SEED_V (0x327d)
#define P_SHARP_DB_FLT_SEED_V (volatile unsigned int *)((0x327d << 2) + 0xff900000)
//Bit 31: 0 reg_nrdeband_seed2 // unsigned , default = 1621438242 noise adding seed for V. seed[0]= 0x60a52f22; as default
#define SHARP_PKGAIN_VSLUMA_LUT_L (0x327e)
#define P_SHARP_PKGAIN_VSLUMA_LUT_L (volatile unsigned int *)((0x327e << 2) + 0xff900000)
//Bit 31:28 reg_pkgain_vsluma_lut7;
//Bit 27:24 reg_pkgain_vsluma_lut6;
//Bit 23:20 reg_pkgain_vsluma_lut5;
//Bit 19:16 reg_pkgain_vsluma_lut4;
//Bit 15:12 reg_pkgain_vsluma_lut3;
//Bit 11: 8 reg_pkgain_vsluma_lut2;
//Bit 7: 4 reg_pkgain_vsluma_lut1;
//Bit 3: 0 reg_pkgain_vsluma_lut0;
#define SHARP_PKGAIN_VSLUMA_LUT_H (0x327f)
#define P_SHARP_PKGAIN_VSLUMA_LUT_H (volatile unsigned int *)((0x327f << 2) + 0xff900000)
//Bit 31: 4 reserved;
//Bit 3: 0 reg_pkgain_vsluma_lut8;
#define SHARP_PKOSHT_VSLUMA_LUT_L (0x3203)
#define P_SHARP_PKOSHT_VSLUMA_LUT_L (volatile unsigned int *)((0x3203 << 2) + 0xff900000)
//Bit 31:28 reg_pkosht_vsluma_lut7;
//Bit 27:24 reg_pkosht_vsluma_lut6;
//Bit 23:20 reg_pkosht_vsluma_lut5;
//Bit 19:16 reg_pkosht_vsluma_lut4;
//Bit 15:12 reg_pkosht_vsluma_lut3;
//Bit 11: 8 reg_pkosht_vsluma_lut2;
//Bit 7: 4 reg_pkosht_vsluma_lut1;
//Bit 3: 0 reg_pkosht_vsluma_lut0;
#define SHARP_PKOSHT_VSLUMA_LUT_H (0x3204)
#define P_SHARP_PKOSHT_VSLUMA_LUT_H (volatile unsigned int *)((0x3204 << 2) + 0xff900000)
//Bit 31: 4 reserved;
//Bit 3: 0 reg_pkosht_vsluma_lut8;
//
// Closing file: sharp_regs.h
//
#define SRSHARP0_SHARP_HVSIZE (SRSHARP0_OFFSET + SHARP_HVSIZE ) //0x00 //
#define SRSHARP0_SHARP_HVBLANK_NUM (SRSHARP0_OFFSET + SHARP_HVBLANK_NUM ) //0x01 //
#define SRSHARP0_NR_GAUSSIAN_MODE (SRSHARP0_OFFSET + NR_GAUSSIAN_MODE ) //0x02 //
//`define SRSHARP0_PK_HVCON_LPF_MODE (`SRSHARP0_OFFSET + `PK_HVCON_LPF_MODE ) //8'h03 //
//`define SRSHARP0_PK_CON_BLEND_GAIN (`SRSHARP0_OFFSET + `PK_CON_BLEND_GAIN ) //8'h04 //
#define SRSHARP0_PK_CON_2CIRHPGAIN_TH_RATE (SRSHARP0_OFFSET + PK_CON_2CIRHPGAIN_TH_RATE ) //0x05 //
#define SRSHARP0_PK_CON_2CIRHPGAIN_LIMIT (SRSHARP0_OFFSET + PK_CON_2CIRHPGAIN_LIMIT ) //0x06 //
#define SRSHARP0_PK_CON_2CIRBPGAIN_TH_RATE (SRSHARP0_OFFSET + PK_CON_2CIRBPGAIN_TH_RATE ) //0x07 //
#define SRSHARP0_PK_CON_2CIRBPGAIN_LIMIT (SRSHARP0_OFFSET + PK_CON_2CIRBPGAIN_LIMIT ) //0x08 //
#define SRSHARP0_PK_CON_2DRTHPGAIN_TH_RATE (SRSHARP0_OFFSET + PK_CON_2DRTHPGAIN_TH_RATE ) //0x09 //
#define SRSHARP0_PK_CON_2DRTHPGAIN_LIMIT (SRSHARP0_OFFSET + PK_CON_2DRTHPGAIN_LIMIT ) //0x0a //
#define SRSHARP0_PK_CON_2DRTBPGAIN_TH_RATE (SRSHARP0_OFFSET + PK_CON_2DRTBPGAIN_TH_RATE ) //0x0b //
#define SRSHARP0_PK_CON_2DRTBPGAIN_LIMIT (SRSHARP0_OFFSET + PK_CON_2DRTBPGAIN_LIMIT ) //0x0c //
#define SRSHARP0_PK_CIRFB_LPF_MODE (SRSHARP0_OFFSET + PK_CIRFB_LPF_MODE ) //0x0d //
#define SRSHARP0_PK_DRTFB_LPF_MODE (SRSHARP0_OFFSET + PK_DRTFB_LPF_MODE ) //0x0e //
#define SRSHARP0_PK_CIRFB_HP_CORING (SRSHARP0_OFFSET + PK_CIRFB_HP_CORING ) //0x0f //
#define SRSHARP0_PK_CIRFB_BP_CORING (SRSHARP0_OFFSET + PK_CIRFB_BP_CORING ) //0x10 //
#define SRSHARP0_PK_DRTFB_HP_CORING (SRSHARP0_OFFSET + PK_DRTFB_HP_CORING ) //0x11 //
#define SRSHARP0_PK_DRTFB_BP_CORING (SRSHARP0_OFFSET + PK_DRTFB_BP_CORING ) //0x12 //
#define SRSHARP0_PK_CIRFB_BLEND_GAIN (SRSHARP0_OFFSET + PK_CIRFB_BLEND_GAIN ) //0x13 //
#define SRSHARP0_NR_ALPY_SSD_GAIN_OFST (SRSHARP0_OFFSET + NR_ALPY_SSD_GAIN_OFST ) //0x14 //
#define SRSHARP0_NR_ALP0Y_ERR2CURV_TH_RATE (SRSHARP0_OFFSET + NR_ALP0Y_ERR2CURV_TH_RATE ) //0x15 //
#define SRSHARP0_NR_ALP0Y_ERR2CURV_LIMIT (SRSHARP0_OFFSET + NR_ALP0Y_ERR2CURV_LIMIT ) //0x16 //
#define SRSHARP0_NR_ALP0C_ERR2CURV_TH_RATE (SRSHARP0_OFFSET + NR_ALP0C_ERR2CURV_TH_RATE ) //0x17 //
#define SRSHARP0_NR_ALP0C_ERR2CURV_LIMIT (SRSHARP0_OFFSET + NR_ALP0C_ERR2CURV_LIMIT ) //0x18 //
#define SRSHARP0_NR_ALP0_MIN_MAX (SRSHARP0_OFFSET + NR_ALP0_MIN_MAX ) //0x19 //
#define SRSHARP0_NR_ALP1_MIERR_CORING (SRSHARP0_OFFSET + NR_ALP1_MIERR_CORING ) //0x1a //
#define SRSHARP0_NR_ALP1_ERR2CURV_TH_RATE (SRSHARP0_OFFSET + NR_ALP1_ERR2CURV_TH_RATE ) //0x1b //
#define SRSHARP0_NR_ALP1_ERR2CURV_LIMIT (SRSHARP0_OFFSET + NR_ALP1_ERR2CURV_LIMIT ) //0x1c //
#define SRSHARP0_NR_ALP1_MIN_MAX (SRSHARP0_OFFSET + NR_ALP1_MIN_MAX ) //0x1d //
#define SRSHARP0_PK_ALP2_MIERR_CORING (SRSHARP0_OFFSET + PK_ALP2_MIERR_CORING ) //0x1e //
#define SRSHARP0_PK_ALP2_ERR2CURV_TH_RATE (SRSHARP0_OFFSET + PK_ALP2_ERR2CURV_TH_RATE ) //0x1f //
#define SRSHARP0_PK_ALP2_ERR2CURV_LIMIT (SRSHARP0_OFFSET + PK_ALP2_ERR2CURV_LIMIT ) //0x20 //
#define SRSHARP0_PK_ALP2_MIN_MAX (SRSHARP0_OFFSET + PK_ALP2_MIN_MAX ) //0x21 //
#define SRSHARP0_PK_FINALGAIN_HP_BP (SRSHARP0_OFFSET + PK_FINALGAIN_HP_BP ) //0x22 //
#define SRSHARP0_PK_OS_HORZ_CORE_GAIN (SRSHARP0_OFFSET + PK_OS_HORZ_CORE_GAIN ) //0x23 //
#define SRSHARP0_PK_OS_VERT_CORE_GAIN (SRSHARP0_OFFSET + PK_OS_VERT_CORE_GAIN ) //0x24 //
#define SRSHARP0_PK_OS_ADPT_MISC (SRSHARP0_OFFSET + PK_OS_ADPT_MISC ) //0x25 //
#define SRSHARP0_PK_OS_STATIC (SRSHARP0_OFFSET + PK_OS_STATIC ) //0x26 //
#define SRSHARP0_PK_NR_ENABLE (SRSHARP0_OFFSET + PK_NR_ENABLE ) //0x27 //
#define SRSHARP0_PK_DRT_SAD_MISC (SRSHARP0_OFFSET + PK_DRT_SAD_MISC ) //0x28 //
#define SRSHARP0_NR_TI_DNLP_BLEND (SRSHARP0_OFFSET + NR_TI_DNLP_BLEND ) //0x29 //
#define SRSHARP0_LTI_DIR_CORE_ALPHA (SRSHARP0_OFFSET + LTI_DIR_CORE_ALPHA ) //0x2a //
#define SRSHARP0_CTI_DIR_ALPHA (SRSHARP0_OFFSET + CTI_DIR_ALPHA ) //0x2b //
#define SRSHARP0_LTI_CTI_DF_GAIN (SRSHARP0_OFFSET + LTI_CTI_DF_GAIN ) //0x2c //
#define SRSHARP0_LTI_CTI_DIR_AC_DBG (SRSHARP0_OFFSET + LTI_CTI_DIR_AC_DBG ) //0x2d //
#define SRSHARP0_HCTI_FLT_CLP_DC (SRSHARP0_OFFSET + HCTI_FLT_CLP_DC ) //0x2e //
#define SRSHARP0_HCTI_BST_GAIN (SRSHARP0_OFFSET + HCTI_BST_GAIN ) //0x2f //
#define SRSHARP0_HCTI_BST_CORE (SRSHARP0_OFFSET + HCTI_BST_CORE ) //0x30 //
#define SRSHARP0_HCTI_CON_2_GAIN_0 (SRSHARP0_OFFSET + HCTI_CON_2_GAIN_0 ) //0x31 //
#define SRSHARP0_HCTI_CON_2_GAIN_1 (SRSHARP0_OFFSET + HCTI_CON_2_GAIN_1 ) //0x32 //
#define SRSHARP0_HCTI_OS_MARGIN (SRSHARP0_OFFSET + HCTI_OS_MARGIN ) //0x33 //
#define SRSHARP0_HLTI_FLT_CLP_DC (SRSHARP0_OFFSET + HLTI_FLT_CLP_DC ) //0x34 //
#define SRSHARP0_HLTI_BST_GAIN (SRSHARP0_OFFSET + HLTI_BST_GAIN ) //0x35 //
#define SRSHARP0_HLTI_BST_CORE (SRSHARP0_OFFSET + HLTI_BST_CORE ) //0x36 //
#define SRSHARP0_HLTI_CON_2_GAIN_0 (SRSHARP0_OFFSET + HLTI_CON_2_GAIN_0 ) //0x37 //
#define SRSHARP0_HLTI_CON_2_GAIN_1 (SRSHARP0_OFFSET + HLTI_CON_2_GAIN_1 ) //0x38 //
#define SRSHARP0_HLTI_OS_MARGIN (SRSHARP0_OFFSET + HLTI_OS_MARGIN ) //0x39 //
#define SRSHARP0_VLTI_FLT_CON_CLP (SRSHARP0_OFFSET + VLTI_FLT_CON_CLP ) //0x3a //
#define SRSHARP0_VLTI_BST_GAIN (SRSHARP0_OFFSET + VLTI_BST_GAIN ) //0x3b //
#define SRSHARP0_VLTI_BST_CORE (SRSHARP0_OFFSET + VLTI_BST_CORE ) //0x3c //
#define SRSHARP0_VLTI_CON_2_GAIN_0 (SRSHARP0_OFFSET + VLTI_CON_2_GAIN_0 ) //0x3d //
#define SRSHARP0_VLTI_CON_2_GAIN_1 (SRSHARP0_OFFSET + VLTI_CON_2_GAIN_1 ) //0x3e //
#define SRSHARP0_VCTI_FLT_CON_CLP (SRSHARP0_OFFSET + VCTI_FLT_CON_CLP ) //0x3f //
#define SRSHARP0_VCTI_BST_GAIN (SRSHARP0_OFFSET + VCTI_BST_GAIN ) //0x40 //
#define SRSHARP0_VCTI_BST_CORE (SRSHARP0_OFFSET + VCTI_BST_CORE ) //0x41 //
#define SRSHARP0_VCTI_CON_2_GAIN_0 (SRSHARP0_OFFSET + VCTI_CON_2_GAIN_0 ) //0x42 //
#define SRSHARP0_VCTI_CON_2_GAIN_1 (SRSHARP0_OFFSET + VCTI_CON_2_GAIN_1 ) //0x43 //
#define SRSHARP0_SHARP_3DLIMIT (SRSHARP0_OFFSET + SHARP_3DLIMIT ) //0x44 //
#define SRSHARP0_DNLP_EN (SRSHARP0_OFFSET + DNLP_EN ) //0x45 //
#define SRSHARP0_DNLP_00 (SRSHARP0_OFFSET + DNLP_00 ) //0x46 //
#define SRSHARP0_DNLP_01 (SRSHARP0_OFFSET + DNLP_01 ) //0x47 //
#define SRSHARP0_DNLP_02 (SRSHARP0_OFFSET + DNLP_02 ) //0x48 //
#define SRSHARP0_DNLP_03 (SRSHARP0_OFFSET + DNLP_03 ) //0x49 //
#define SRSHARP0_DNLP_04 (SRSHARP0_OFFSET + DNLP_04 ) //0x4a //
#define SRSHARP0_DNLP_05 (SRSHARP0_OFFSET + DNLP_05 ) //0x4b //
#define SRSHARP0_DNLP_06 (SRSHARP0_OFFSET + DNLP_06 ) //0x4c //
#define SRSHARP0_DNLP_07 (SRSHARP0_OFFSET + DNLP_07 ) //0x4d //
#define SRSHARP0_DNLP_08 (SRSHARP0_OFFSET + DNLP_08 ) //0x4e //
#define SRSHARP0_DNLP_09 (SRSHARP0_OFFSET + DNLP_09 ) //0x4f //
#define SRSHARP0_DNLP_10 (SRSHARP0_OFFSET + DNLP_10 ) //0x50 //
#define SRSHARP0_DNLP_11 (SRSHARP0_OFFSET + DNLP_11 ) //0x51 //
#define SRSHARP0_DNLP_12 (SRSHARP0_OFFSET + DNLP_12 ) //0x52 //
#define SRSHARP0_DNLP_13 (SRSHARP0_OFFSET + DNLP_13 ) //0x53 //
#define SRSHARP0_DNLP_14 (SRSHARP0_OFFSET + DNLP_14 ) //0x54 //
#define SRSHARP0_DNLP_15 (SRSHARP0_OFFSET + DNLP_15 ) //0x55 //
#define SRSHARP0_DEMO_CRTL (SRSHARP0_OFFSET + DEMO_CRTL ) //0x56 //
#define SRSHARP0_SHARP_SR2_CTRL (SRSHARP0_OFFSET + SHARP_SR2_CTRL ) //0x57 //
#define SRSHARP0_SHARP_SR2_YBIC_HCOEF0 (SRSHARP0_OFFSET + SHARP_SR2_YBIC_HCOEF0 ) //0x58
#define SRSHARP0_SHARP_SR2_YBIC_HCOEF1 (SRSHARP0_OFFSET + SHARP_SR2_YBIC_HCOEF1 ) //0x59 //
#define SRSHARP0_SHARP_SR2_CBIC_HCOEF0 (SRSHARP0_OFFSET + SHARP_SR2_CBIC_HCOEF0 ) //0x5a //
#define SRSHARP0_SHARP_SR2_CBIC_HCOEF1 (SRSHARP0_OFFSET + SHARP_SR2_CBIC_HCOEF1 ) //0x5b //
#define SRSHARP0_SHARP_SR2_YBIC_VCOEF0 (SRSHARP0_OFFSET + SHARP_SR2_YBIC_VCOEF0 ) //0x5c //
#define SRSHARP0_SHARP_SR2_YBIC_VCOEF1 (SRSHARP0_OFFSET + SHARP_SR2_YBIC_VCOEF1 ) //0x5d //
#define SRSHARP0_SHARP_SR2_CBIC_VCOEF0 (SRSHARP0_OFFSET + SHARP_SR2_CBIC_VCOEF0 ) //0x5e //
#define SRSHARP0_SHARP_SR2_CBIC_VCOEF1 (SRSHARP0_OFFSET + SHARP_SR2_CBIC_VCOEF1 ) //0x5f //
#define SRSHARP0_SHARP_SR2_MISC (SRSHARP0_OFFSET + SHARP_SR2_MISC ) //0x60 //
// `define SRSHARP0_SHARP_DEJ2_PRC (`SRSHARP0_OFFSET + `SHARP_DEJ2_PRC ) //8'h61 //
// `define SRSHARP0_SHARP_DEJ1_PRC (`SRSHARP0_OFFSET + `SHARP_DEJ1_PRC ) //8'h62 //
// `define SRSHARP0_SHARP_DEJ2_MISC (`SRSHARP0_OFFSET + `SHARP_DEJ2_MISC ) //8'h63 //
// `define SRSHARP0_SHARP_DEJ1_MISC (`SRSHARP0_OFFSET + `SHARP_DEJ1_MISC ) //8'h64 //
#define SRSHARP0_SR3_SAD_CTRL (SRSHARP0_OFFSET + SHARP_SR3_SAD_CTRL ) // 0x61 //
#define SRSHARP0_SR3_PK_CTRL0 (SRSHARP0_OFFSET + SHARP_SR3_PK_CTRL0 ) // 0x62
#define SRSHARP0_SR3_PK_CTRL1 (SRSHARP0_OFFSET + SHARP_SR3_PK_CTRL1 ) // 0x63
#define SRSHARP0_DEJ_CTRL (SRSHARP0_OFFSET + SHARP_DEJ_CTRL ) // 0x64
#define SRSHARP0_DEJ_ALPHA (SRSHARP0_OFFSET + SHARP_DEJ_ALPHA ) // 0x65
#define SRSHARP0_SR3_DRTLPF_EN (SRSHARP0_OFFSET + SHARP_SR3_DRTLPF_EN ) // 0x66
#define SRSHARP0_SR3_DRTLPF_ALPHA_0 (SRSHARP0_OFFSET + SHARP_SR3_DRTLPF_ALPHA_0 ) // 0x67
#define SRSHARP0_SR3_DRTLPF_ALPHA_1 (SRSHARP0_OFFSET + SHARP_SR3_DRTLPF_ALPHA_1 ) // 0x68
#define SRSHARP0_SR3_DRTLPF_ALPHA_2 (SRSHARP0_OFFSET + SHARP_SR3_DRTLPF_ALPHA_2 ) // 0x69
#define SRSHARP0_SR3_DRTLPF_ALPHA_OFST (SRSHARP0_OFFSET + SHARP_SR3_DRTLPF_ALPHA_OFST ) // 0x6a
#define SRSHARP0_SR3_DERING_CTRL (SRSHARP0_OFFSET + SHARP_SR3_DERING_CTRL ) // 0x6b
#define SRSHARP0_SR3_DERING_LUMA2PKGAIN_0TO3 (SRSHARP0_OFFSET + SHARP_SR3_DERING_LUMA2PKGAIN_0TO3 ) // 0x6c
#define SRSHARP0_SR3_DERING_LUMA2PKGAIN_4TO6 (SRSHARP0_OFFSET + SHARP_SR3_DERING_LUMA2PKGAIN_4TO6 ) // 0x6d
#define SRSHARP0_SR3_DERING_LUMA2PKOS_0TO3 (SRSHARP0_OFFSET + SHARP_SR3_DERING_LUMA2PKOS_0TO3 ) // 0x6e
#define SRSHARP0_SR3_DERING_LUMA2PKOS_4TO6 (SRSHARP0_OFFSET + SHARP_SR3_DERING_LUMA2PKOS_4TO6 ) // 0x6f
#define SRSHARP0_SR3_DERING_GAINVS_MADSAD (SRSHARP0_OFFSET + SHARP_SR3_DERING_GAINVS_MADSAD ) // 0x70
#define SRSHARP0_SR3_DERING_GAINVS_VR2MAX (SRSHARP0_OFFSET + SHARP_SR3_DERING_GAINVS_VR2MAX ) // 0x71
#define SRSHARP0_SR3_DERING_PARAM0 (SRSHARP0_OFFSET + SHARP_SR3_DERING_PARAM0 ) // 0x72
#define SRSHARP0_SR3_DRTLPF_THETA (SRSHARP0_OFFSET + SHARP_SR3_DRTLPF_THETA ) // 0x73
#define SRSHARP0_SATPRT_CTRL (SRSHARP0_OFFSET + SHARP_SATPRT_CTRL ) // 0x74
#define SRSHARP0_SATPRT_DIVM (SRSHARP0_OFFSET + SHARP_SATPRT_DIVM ) // 0x75
#define SRSHARP0_SATPRT_LMT_RGB (SRSHARP0_OFFSET + SHARP_SATPRT_LMT_RGB ) // 0x76
#define SRSHARP0_DB_FLT_CTRL (SRSHARP0_OFFSET + SHARP_DB_FLT_CTRL ) // 0x77
#define SRSHARP0_DB_FLT_YC_THRD (SRSHARP0_OFFSET + SHARP_DB_FLT_YC_THRD ) // 0x78
#define SRSHARP0_DB_FLT_RANDLUT (SRSHARP0_OFFSET + SHARP_DB_FLT_RANDLUT ) // 0x79
#define SRSHARP0_DB_FLT_PXI_THRD (SRSHARP0_OFFSET + SHARP_DB_FLT_PXI_THRD ) // 0x7a
#define SRSHARP0_DB_FLT_SEED_Y (SRSHARP0_OFFSET + SHARP_DB_FLT_SEED_Y ) // 0x7b
#define SRSHARP0_DB_FLT_SEED_U (SRSHARP0_OFFSET + SHARP_DB_FLT_SEED_U ) // 0x7c
#define SRSHARP0_DB_FLT_SEED_V (SRSHARP0_OFFSET + SHARP_DB_FLT_SEED_V ) // 0x7d
#define SRSHARP0_PKGAIN_VSLUMA_LUT_L (SRSHARP0_OFFSET + SHARP_PKGAIN_VSLUMA_LUT_L ) // 0x80
#define SRSHARP0_PKGAIN_VSLUMA_LUT_H (SRSHARP0_OFFSET + SHARP_PKGAIN_VSLUMA_LUT_H ) // 0x81
#define SRSHARP0_PKOSHT_VSLUMA_LUT_L (SRSHARP0_OFFSET + SHARP_PKOSHT_VSLUMA_LUT_L ) // 0x82
#define SRSHARP0_PKOSHT_VSLUMA_LUT_H (SRSHARP0_OFFSET + SHARP_PKOSHT_VSLUMA_LUT_H ) // 0x83
//// srsharp1 reg define
#define SRSHARP1_SHARP_HVSIZE (SRSHARP1_OFFSET + SHARP_HVSIZE ) //0x00 //
#define SRSHARP1_SHARP_HVBLANK_NUM (SRSHARP1_OFFSET + SHARP_HVBLANK_NUM ) //0x01 //
#define SRSHARP1_NR_GAUSSIAN_MODE (SRSHARP1_OFFSET + NR_GAUSSIAN_MODE ) //0x02 //
//`define SRSHARP1_PK_HVCON_LPF_MODE (`SRSHARP1_OFFSET + `PK_HVCON_LPF_MODE ) //8'h03 //
//`define SRSHARP1_PK_CON_BLEND_GAIN (`SRSHARP1_OFFSET + `PK_CON_BLEND_GAIN ) //8'h04 //
#define SRSHARP1_PK_CON_2CIRHPGAIN_TH_RATE (SRSHARP1_OFFSET + PK_CON_2CIRHPGAIN_TH_RATE ) //0x05 //
#define SRSHARP1_PK_CON_2CIRHPGAIN_LIMIT (SRSHARP1_OFFSET + PK_CON_2CIRHPGAIN_LIMIT ) //0x06 //
#define SRSHARP1_PK_CON_2CIRBPGAIN_TH_RATE (SRSHARP1_OFFSET + PK_CON_2CIRBPGAIN_TH_RATE ) //0x07 //
#define SRSHARP1_PK_CON_2CIRBPGAIN_LIMIT (SRSHARP1_OFFSET + PK_CON_2CIRBPGAIN_LIMIT ) //0x08 //
#define SRSHARP1_PK_CON_2DRTHPGAIN_TH_RATE (SRSHARP1_OFFSET + PK_CON_2DRTHPGAIN_TH_RATE ) //0x09 //
#define SRSHARP1_PK_CON_2DRTHPGAIN_LIMIT (SRSHARP1_OFFSET + PK_CON_2DRTHPGAIN_LIMIT ) //0x0a //
#define SRSHARP1_PK_CON_2DRTBPGAIN_TH_RATE (SRSHARP1_OFFSET + PK_CON_2DRTBPGAIN_TH_RATE ) //0x0b //
#define SRSHARP1_PK_CON_2DRTBPGAIN_LIMIT (SRSHARP1_OFFSET + PK_CON_2DRTBPGAIN_LIMIT ) //0x0c //
#define SRSHARP1_PK_CIRFB_LPF_MODE (SRSHARP1_OFFSET + PK_CIRFB_LPF_MODE ) //0x0d //
#define SRSHARP1_PK_DRTFB_LPF_MODE (SRSHARP1_OFFSET + PK_DRTFB_LPF_MODE ) //0x0e //
#define SRSHARP1_PK_CIRFB_HP_CORING (SRSHARP1_OFFSET + PK_CIRFB_HP_CORING ) //0x0f //
#define SRSHARP1_PK_CIRFB_BP_CORING (SRSHARP1_OFFSET + PK_CIRFB_BP_CORING ) //0x10 //
#define SRSHARP1_PK_DRTFB_HP_CORING (SRSHARP1_OFFSET + PK_DRTFB_HP_CORING ) //0x11 //
#define SRSHARP1_PK_DRTFB_BP_CORING (SRSHARP1_OFFSET + PK_DRTFB_BP_CORING ) //0x12 //
#define SRSHARP1_PK_CIRFB_BLEND_GAIN (SRSHARP1_OFFSET + PK_CIRFB_BLEND_GAIN ) //0x13 //
#define SRSHARP1_NR_ALPY_SSD_GAIN_OFST (SRSHARP1_OFFSET + NR_ALPY_SSD_GAIN_OFST ) //0x14 //
#define SRSHARP1_NR_ALP0Y_ERR2CURV_TH_RATE (SRSHARP1_OFFSET + NR_ALP0Y_ERR2CURV_TH_RATE ) //0x15 //
#define SRSHARP1_NR_ALP0Y_ERR2CURV_LIMIT (SRSHARP1_OFFSET + NR_ALP0Y_ERR2CURV_LIMIT ) //0x16 //
#define SRSHARP1_NR_ALP0C_ERR2CURV_TH_RATE (SRSHARP1_OFFSET + NR_ALP0C_ERR2CURV_TH_RATE ) //0x17 //
#define SRSHARP1_NR_ALP0C_ERR2CURV_LIMIT (SRSHARP1_OFFSET + NR_ALP0C_ERR2CURV_LIMIT ) //0x18 //
#define SRSHARP1_NR_ALP0_MIN_MAX (SRSHARP1_OFFSET + NR_ALP0_MIN_MAX ) //0x19 //
#define SRSHARP1_NR_ALP1_MIERR_CORING (SRSHARP1_OFFSET + NR_ALP1_MIERR_CORING ) //0x1a //
#define SRSHARP1_NR_ALP1_ERR2CURV_TH_RATE (SRSHARP1_OFFSET + NR_ALP1_ERR2CURV_TH_RATE ) //0x1b //
#define SRSHARP1_NR_ALP1_ERR2CURV_LIMIT (SRSHARP1_OFFSET + NR_ALP1_ERR2CURV_LIMIT ) //0x1c //
#define SRSHARP1_NR_ALP1_MIN_MAX (SRSHARP1_OFFSET + NR_ALP1_MIN_MAX ) //0x1d //
#define SRSHARP1_PK_ALP2_MIERR_CORING (SRSHARP1_OFFSET + PK_ALP2_MIERR_CORING ) //0x1e //
#define SRSHARP1_PK_ALP2_ERR2CURV_TH_RATE (SRSHARP1_OFFSET + PK_ALP2_ERR2CURV_TH_RATE ) //0x1f //
#define SRSHARP1_PK_ALP2_ERR2CURV_LIMIT (SRSHARP1_OFFSET + PK_ALP2_ERR2CURV_LIMIT ) //0x20 //
#define SRSHARP1_PK_ALP2_MIN_MAX (SRSHARP1_OFFSET + PK_ALP2_MIN_MAX ) //0x21 //
#define SRSHARP1_PK_FINALGAIN_HP_BP (SRSHARP1_OFFSET + PK_FINALGAIN_HP_BP ) //0x22 //
#define SRSHARP1_PK_OS_HORZ_CORE_GAIN (SRSHARP1_OFFSET + PK_OS_HORZ_CORE_GAIN ) //0x23 //
#define SRSHARP1_PK_OS_VERT_CORE_GAIN (SRSHARP1_OFFSET + PK_OS_VERT_CORE_GAIN ) //0x24 //
#define SRSHARP1_PK_OS_ADPT_MISC (SRSHARP1_OFFSET + PK_OS_ADPT_MISC ) //0x25 //
#define SRSHARP1_PK_OS_STATIC (SRSHARP1_OFFSET + PK_OS_STATIC ) //0x26 //
#define SRSHARP1_PK_NR_ENABLE (SRSHARP1_OFFSET + PK_NR_ENABLE ) //0x27 //
#define SRSHARP1_PK_DRT_SAD_MISC (SRSHARP1_OFFSET + PK_DRT_SAD_MISC ) //0x28 //
#define SRSHARP1_NR_TI_DNLP_BLEND (SRSHARP1_OFFSET + NR_TI_DNLP_BLEND ) //0x29 //
#define SRSHARP1_LTI_DIR_CORE_ALPHA (SRSHARP1_OFFSET + LTI_DIR_CORE_ALPHA ) //0x2a //
#define SRSHARP1_CTI_DIR_ALPHA (SRSHARP1_OFFSET + CTI_DIR_ALPHA ) //0x2b //
#define SRSHARP1_LTI_CTI_DF_GAIN (SRSHARP1_OFFSET + LTI_CTI_DF_GAIN ) //0x2c //
#define SRSHARP1_LTI_CTI_DIR_AC_DBG (SRSHARP1_OFFSET + LTI_CTI_DIR_AC_DBG ) //0x2d //
#define SRSHARP1_HCTI_FLT_CLP_DC (SRSHARP1_OFFSET + HCTI_FLT_CLP_DC ) //0x2e //
#define SRSHARP1_HCTI_BST_GAIN (SRSHARP1_OFFSET + HCTI_BST_GAIN ) //0x2f //
#define SRSHARP1_HCTI_BST_CORE (SRSHARP1_OFFSET + HCTI_BST_CORE ) //0x30 //
#define SRSHARP1_HCTI_CON_2_GAIN_0 (SRSHARP1_OFFSET + HCTI_CON_2_GAIN_0 ) //0x31 //
#define SRSHARP1_HCTI_CON_2_GAIN_1 (SRSHARP1_OFFSET + HCTI_CON_2_GAIN_1 ) //0x32 //
#define SRSHARP1_HCTI_OS_MARGIN (SRSHARP1_OFFSET + HCTI_OS_MARGIN ) //0x33 //
#define SRSHARP1_HLTI_FLT_CLP_DC (SRSHARP1_OFFSET + HLTI_FLT_CLP_DC ) //0x34 //
#define SRSHARP1_HLTI_BST_GAIN (SRSHARP1_OFFSET + HLTI_BST_GAIN ) //0x35 //
#define SRSHARP1_HLTI_BST_CORE (SRSHARP1_OFFSET + HLTI_BST_CORE ) //0x36 //
#define SRSHARP1_HLTI_CON_2_GAIN_0 (SRSHARP1_OFFSET + HLTI_CON_2_GAIN_0 ) //0x37 //
#define SRSHARP1_HLTI_CON_2_GAIN_1 (SRSHARP1_OFFSET + HLTI_CON_2_GAIN_1 ) //0x38 //
#define SRSHARP1_HLTI_OS_MARGIN (SRSHARP1_OFFSET + HLTI_OS_MARGIN ) //0x39 //
#define SRSHARP1_VLTI_FLT_CON_CLP (SRSHARP1_OFFSET + VLTI_FLT_CON_CLP ) //0x3a //
#define SRSHARP1_VLTI_BST_GAIN (SRSHARP1_OFFSET + VLTI_BST_GAIN ) //0x3b //
#define SRSHARP1_VLTI_BST_CORE (SRSHARP1_OFFSET + VLTI_BST_CORE ) //0x3c //
#define SRSHARP1_VLTI_CON_2_GAIN_0 (SRSHARP1_OFFSET + VLTI_CON_2_GAIN_0 ) //0x3d //
#define SRSHARP1_VLTI_CON_2_GAIN_1 (SRSHARP1_OFFSET + VLTI_CON_2_GAIN_1 ) //0x3e //
#define SRSHARP1_VCTI_FLT_CON_CLP (SRSHARP1_OFFSET + VCTI_FLT_CON_CLP ) //0x3f //
#define SRSHARP1_VCTI_BST_GAIN (SRSHARP1_OFFSET + VCTI_BST_GAIN ) //0x40 //
#define SRSHARP1_VCTI_BST_CORE (SRSHARP1_OFFSET + VCTI_BST_CORE ) //0x41 //
#define SRSHARP1_VCTI_CON_2_GAIN_0 (SRSHARP1_OFFSET + VCTI_CON_2_GAIN_0 ) //0x42 //
#define SRSHARP1_VCTI_CON_2_GAIN_1 (SRSHARP1_OFFSET + VCTI_CON_2_GAIN_1 ) //0x43 //
#define SRSHARP1_SHARP_3DLIMIT (SRSHARP1_OFFSET + SHARP_3DLIMIT ) //0x44 //
#define SRSHARP1_DNLP_EN (SRSHARP1_OFFSET + DNLP_EN ) //0x45 //
#define SRSHARP1_DNLP_00 (SRSHARP1_OFFSET + DNLP_00 ) //0x46 //
#define SRSHARP1_DNLP_01 (SRSHARP1_OFFSET + DNLP_01 ) //0x47 //
#define SRSHARP1_DNLP_02 (SRSHARP1_OFFSET + DNLP_02 ) //0x48 //
#define SRSHARP1_DNLP_03 (SRSHARP1_OFFSET + DNLP_03 ) //0x49 //
#define SRSHARP1_DNLP_04 (SRSHARP1_OFFSET + DNLP_04 ) //0x4a //
#define SRSHARP1_DNLP_05 (SRSHARP1_OFFSET + DNLP_05 ) //0x4b //
#define SRSHARP1_DNLP_06 (SRSHARP1_OFFSET + DNLP_06 ) //0x4c //
#define SRSHARP1_DNLP_07 (SRSHARP1_OFFSET + DNLP_07 ) //0x4d //
#define SRSHARP1_DNLP_08 (SRSHARP1_OFFSET + DNLP_08 ) //0x4e //
#define SRSHARP1_DNLP_09 (SRSHARP1_OFFSET + DNLP_09 ) //0x4f //
#define SRSHARP1_DNLP_10 (SRSHARP1_OFFSET + DNLP_10 ) //0x50 //
#define SRSHARP1_DNLP_11 (SRSHARP1_OFFSET + DNLP_11 ) //0x51 //
#define SRSHARP1_DNLP_12 (SRSHARP1_OFFSET + DNLP_12 ) //0x52 //
#define SRSHARP1_DNLP_13 (SRSHARP1_OFFSET + DNLP_13 ) //0x53 //
#define SRSHARP1_DNLP_14 (SRSHARP1_OFFSET + DNLP_14 ) //0x54 //
#define SRSHARP1_DNLP_15 (SRSHARP1_OFFSET + DNLP_15 ) //0x55 //
#define SRSHARP1_DEMO_CRTL (SRSHARP1_OFFSET + DEMO_CRTL ) //0x56 //
#define SRSHARP1_SHARP_SR2_CTRL (SRSHARP1_OFFSET + SHARP_SR2_CTRL ) //0x57 //
#define SRSHARP1_SHARP_SR2_YBIC_HCOEF0 (SRSHARP1_OFFSET + SHARP_SR2_YBIC_HCOEF0 ) //0x58
#define SRSHARP1_SHARP_SR2_YBIC_HCOEF1 (SRSHARP1_OFFSET + SHARP_SR2_YBIC_HCOEF1 ) //0x59 //
#define SRSHARP1_SHARP_SR2_CBIC_HCOEF0 (SRSHARP1_OFFSET + SHARP_SR2_CBIC_HCOEF0 ) //0x5a //
#define SRSHARP1_SHARP_SR2_CBIC_HCOEF1 (SRSHARP1_OFFSET + SHARP_SR2_CBIC_HCOEF1 ) //0x5b //
#define SRSHARP1_SHARP_SR2_YBIC_VCOEF0 (SRSHARP1_OFFSET + SHARP_SR2_YBIC_VCOEF0 ) //0x5c //
#define SRSHARP1_SHARP_SR2_YBIC_VCOEF1 (SRSHARP1_OFFSET + SHARP_SR2_YBIC_VCOEF1 ) //0x5d //
#define SRSHARP1_SHARP_SR2_CBIC_VCOEF0 (SRSHARP1_OFFSET + SHARP_SR2_CBIC_VCOEF0 ) //0x5e //
#define SRSHARP1_SHARP_SR2_CBIC_VCOEF1 (SRSHARP1_OFFSET + SHARP_SR2_CBIC_VCOEF1 ) //0x5f //
#define SRSHARP1_SHARP_SR2_MISC (SRSHARP1_OFFSET + SHARP_SR2_MISC ) //0x60 //
// `define SRSHARP1_SHARP_DEJ2_PRC (`SRSHARP1_OFFSET + `SHARP_DEJ2_PRC ) //8'h61 //
// `define SRSHARP1_SHARP_DEJ1_PRC (`SRSHARP1_OFFSET + `SHARP_DEJ1_PRC ) //8'h62 //
// `define SRSHARP1_SHARP_DEJ2_MISC (`SRSHARP1_OFFSET + `SHARP_DEJ2_MISC ) //8'h63 //
// `define SRSHARP1_SHARP_DEJ1_MISC (`SRSHARP1_OFFSET + `SHARP_DEJ1_MISC ) //8'h64 //
#define SRSHARP1_SR3_SAD_CTRL (SRSHARP1_OFFSET + SHARP_SR3_SAD_CTRL ) // 0x61 //
#define SRSHARP1_SR3_PK_CTRL0 (SRSHARP1_OFFSET + SHARP_SR3_PK_CTRL0 ) // 0x62
#define SRSHARP1_SR3_PK_CTRL1 (SRSHARP1_OFFSET + SHARP_SR3_PK_CTRL1 ) // 0x63
#define SRSHARP1_DEJ_CTRL (SRSHARP1_OFFSET + SHARP_DEJ_CTRL ) // 0x64
#define SRSHARP1_DEJ_ALPHA (SRSHARP1_OFFSET + SHARP_DEJ_ALPHA ) // 0x65
#define SRSHARP1_SR3_DRTLPF_EN (SRSHARP1_OFFSET + SHARP_SR3_DRTLPF_EN ) // 0x66
#define SRSHARP1_SR3_DRTLPF_ALPHA_0 (SRSHARP1_OFFSET + SHARP_SR3_DRTLPF_ALPHA_0 ) // 0x67
#define SRSHARP1_SR3_DRTLPF_ALPHA_1 (SRSHARP1_OFFSET + SHARP_SR3_DRTLPF_ALPHA_1 ) // 0x68
#define SRSHARP1_SR3_DRTLPF_ALPHA_2 (SRSHARP1_OFFSET + SHARP_SR3_DRTLPF_ALPHA_2 ) // 0x69
#define SRSHARP1_SR3_DRTLPF_ALPHA_OFST (SRSHARP1_OFFSET + SHARP_SR3_DRTLPF_ALPHA_OFST ) // 0x6a
#define SRSHARP1_SR3_DERING_CTRL (SRSHARP1_OFFSET + SHARP_SR3_DERING_CTRL ) // 0x6b
#define SRSHARP1_SR3_DERING_LUMA2PKGAIN_0TO3 (SRSHARP1_OFFSET + SHARP_SR3_DERING_LUMA2PKGAIN_0TO3 ) // 0x6c
#define SRSHARP1_SR3_DERING_LUMA2PKGAIN_4TO6 (SRSHARP1_OFFSET + SHARP_SR3_DERING_LUMA2PKGAIN_4TO6 ) // 0x6d
#define SRSHARP1_SR3_DERING_LUMA2PKOS_0TO3 (SRSHARP1_OFFSET + SHARP_SR3_DERING_LUMA2PKOS_0TO3 ) // 0x6e
#define SRSHARP1_SR3_DERING_LUMA2PKOS_4TO6 (SRSHARP1_OFFSET + SHARP_SR3_DERING_LUMA2PKOS_4TO6 ) // 0x6f
#define SRSHARP1_SR3_DERING_GAINVS_MADSAD (SRSHARP1_OFFSET + SHARP_SR3_DERING_GAINVS_MADSAD ) // 0x70
#define SRSHARP1_SR3_DERING_GAINVS_VR2MAX (SRSHARP1_OFFSET + SHARP_SR3_DERING_GAINVS_VR2MAX ) // 0x71
#define SRSHARP1_SR3_DERING_PARAM0 (SRSHARP1_OFFSET + SHARP_SR3_DERING_PARAM0 ) // 0x72
#define SRSHARP1_SR3_DRTLPF_THETA (SRSHARP1_OFFSET + SHARP_SR3_DRTLPF_THETA ) // 0x73
#define SRSHARP1_SATPRT_CTRL (SRSHARP1_OFFSET + SHARP_SATPRT_CTRL ) // 0x74
#define SRSHARP1_SATPRT_DIVM (SRSHARP1_OFFSET + SHARP_SATPRT_DIVM ) // 0x75
#define SRSHARP1_SATPRT_LMT_RGB (SRSHARP1_OFFSET + SHARP_SATPRT_LMT_RGB ) // 0x76
#define SRSHARP1_DB_FLT_CTRL (SRSHARP1_OFFSET + SHARP_DB_FLT_CTRL ) // 0x77
#define SRSHARP1_DB_FLT_YC_THRD (SRSHARP1_OFFSET + SHARP_DB_FLT_YC_THRD ) // 0x78
#define SRSHARP1_DB_FLT_RANDLUT (SRSHARP1_OFFSET + SHARP_DB_FLT_RANDLUT ) // 0x79
#define SRSHARP1_DB_FLT_PXI_THRD (SRSHARP1_OFFSET + SHARP_DB_FLT_PXI_THRD ) // 0x7a
#define SRSHARP1_DB_FLT_SEED_Y (SRSHARP1_OFFSET + SHARP_DB_FLT_SEED_Y ) // 0x7b
#define SRSHARP1_DB_FLT_SEED_U (SRSHARP1_OFFSET + SHARP_DB_FLT_SEED_U ) // 0x7c
#define SRSHARP1_DB_FLT_SEED_V (SRSHARP1_OFFSET + SHARP_DB_FLT_SEED_V ) // 0x7d
#define SRSHARP1_PKGAIN_VSLUMA_LUT_L (SRSHARP1_OFFSET + SHARP_PKGAIN_VSLUMA_LUT_L ) // 0x80
#define SRSHARP1_PKGAIN_VSLUMA_LUT_H (SRSHARP1_OFFSET + SHARP_PKGAIN_VSLUMA_LUT_H ) // 0x81
#define SRSHARP1_PKOSHT_VSLUMA_LUT_L (SRSHARP1_OFFSET + SHARP_PKOSHT_VSLUMA_LUT_L ) // 0x82
#define SRSHARP1_PKOSHT_VSLUMA_LUT_H (SRSHARP1_OFFSET + SHARP_PKOSHT_VSLUMA_LUT_H ) // 0x83
// synopsys translate_off
// synopsys translate_on
//
// Closing file: srsharp_regs.h
//
//`define DOLBY0_VCBUS_BASE 8'h33
//`include "dolby0_regs.h"
// -----------------------------------------------
// CBUS_BASE: DOLBYTV_VCBUS_BASE = 0x33
// -----------------------------------------------
//
// Reading file: dolby_regs.h
//
// synopsys translate_off
// synopsys translate_on
#define DOLBY_TV_REG_START (0x3300)
#define P_DOLBY_TV_REG_START (volatile unsigned int *)((0x3300 << 2) + 0xff900000)
// dolby register address 0~0xDA
#define DOLBY_TV_CLKGATE_CTRL (0x33f1)
#define P_DOLBY_TV_CLKGATE_CTRL (volatile unsigned int *)((0x33f1 << 2) + 0xff900000)
//bit[9:8] R-RW 0~3 0 dma2axi_clkgate_ctrl : 0 "auto gated clock", 1 "closed clock", 2&3 "free run clock"
//bit[7:6] R-RW 0~3 0 bl_dolby_swaps_clkgate_ctrl : 0 "auto gated clock", 1 "closed clock", 2&3 "free run clock"
//bit[5:4] R-RW 0~3 0 el_swaps_clkgate_ctrl : 0 "auto gated clock", 1 "closed clock", 2&3 "free run clock"
//bit[3:2] R-RW 0~3 0 el_buf_clkgate_ctrl : 0 "auto gated clock", 1 "closed clock", 2&3 "free run clock"
//bit[1:0] R-RW 0~3 0 top_level_reg_clkgate_ctrl : 0 "auto gated clock", 1 "closed clock", 2&3 "free run clock"
#define DOLBY_TV_SWAP_CTRL0 (0x33f2)
#define P_DOLBY_TV_SWAP_CTRL0 (volatile unsigned int *)((0x33f2 << 2) + 0xff900000)
//bit[2] R-RW 0~1 0 el_41mode : 1 "bl resolution : el resolution = 4:1", 0 "bl_res : el_res = 1:1"
//bit[1] R-RW 0~1 0 el_enable : 1 "enhancement layer is supported", 0 "el is not supported"
//bit[0] R-RW 0~1 0 source_enable : 1 "base layer is supported", 0 "bl is not supported"
#define DOLBY_TV_SWAP_CTRL1 (0x33f3)
#define P_DOLBY_TV_SWAP_CTRL1 (volatile unsigned int *)((0x33f3 << 2) + 0xff900000)
//bit[28:16] R-RW 0~8191 0 htotal : total pixels number in each line
//bit[21:0] R-RW 0~8191 0 vtotal : total line number in each frame (only support progress frame)
#define DOLBY_TV_SWAP_CTRL2 (0x33f4)
#define P_DOLBY_TV_SWAP_CTRL2 (volatile unsigned int *)((0x33f4 << 2) + 0xff900000)
//bit[28:16] R-RW 0~4096 0 hsize : active pixels number in each line
//bit[21:0] R-RW 0~3840 0 vsize : active lines number in each frame
#define DOLBY_TV_SWAP_CTRL3 (0x33f5)
#define P_DOLBY_TV_SWAP_CTRL3 (volatile unsigned int *)((0x33f5 << 2) + 0xff900000)
//bit[28:16] R-RW 0~8191 0 hsync_width : hsync signal width (high effective)
//bit[21:0] R-RW 0~8191 0 vsync_width : vysnc singal width (high effective)
#define DOLBY_TV_SWAP_CTRL4 (0x33f6)
#define P_DOLBY_TV_SWAP_CTRL4 (volatile unsigned int *)((0x33f6 << 2) + 0xff900000)
//bit[28:16] R-RW 0~8191 0 hsync_backporch : pixels number between hsync and h_active_duration
//bit[21:0] R-RW 0~8191 0 vsync_backporch : lines number between vsync and v_active_duration
#define DOLBY_TV_SWAP_CTRL5 (0x33f7)
#define P_DOLBY_TV_SWAP_CTRL5 (volatile unsigned int *)((0x33f7 << 2) + 0xff900000)
//[25:8] R-RW : reg_tunnel_sel for tunnel bit match swap
//bit[4] R-RW 0~1 0 bl_tunnel_mode : 1 "hdmi input, source is 12bit422 tunnel in 8bit444", 0 "opt mode, 10 bit 444"
//bit[3:2] R-RW 0~3 0 bl_uv_mode : 3 "uv=in_u", 2 "uv[0]=u[0],uv[1]=v[0]", 1 "uv[0]=v[0],uv[1]=u[0]", 0 "uv=in_v"
//bit[1:0] R-RW 0~3 0 el_uv_mode : 3 "uv=in_u", 2 "uv[0]=u[0],uv[1]=v[0]", 1 "uv[0]=v[0],uv[1]=u[0]", 0 "uv=in_v"
#define DOLBY_TV_SWAP_CTRL6 (0x33f8)
#define P_DOLBY_TV_SWAP_CTRL6 (volatile unsigned int *)((0x33f8 << 2) + 0xff900000)
//bit[31] R-RW 0~1 dm_uv_input : uv select
//bit[23:16] R-RW 0~1 0 dump_ctrl : 1 "fixed output bitdepth as 12bit", 0 "output bitdepth based on vdr_bit_depth"
//bit[15] R-RW 0~1 datapath_reset_n_enable : manual reset control
//bit[14] R-RW 0~1 handshake_reset_n_enable : manual reset control
//bit[13] R-RW 0~1 axi_reset_n_enable : manual reset control
//bit[5:2] R-RW 0~15 vdr_bit_depth
//bit[1:0] R-RW 0~3 reg_hdmi_mode
#define DOLBY_TV_SWAP_CTRL7 (0x33f9)
#define P_DOLBY_TV_SWAP_CTRL7 (volatile unsigned int *)((0x33f9 << 2) + 0xff900000)
//reserved
#define DOLBY_TV_AXI2DMA_CTRL0 (0x33fa)
#define P_DOLBY_TV_AXI2DMA_CTRL0 (volatile unsigned int *)((0x33fa << 2) + 0xff900000)
//bit[31] R-RW 0~1 0 reg_req_en : enable req after line count
//bit[30] R-RW 0~1 0 reg_id_check : check the id of data path and req path
//bit[29] R-RW 0~1 0 reg_clear_fifo : manually reset bit
//bit[28] R-RW 0~1 0 reg_vsync_rst : soft_rst auto reset enable
//bit[27] R-RW 0~1 0 reg_update_addr : manually udpate start addr
//bit[26] R-RW 0~1 0 reg_addr_auto : auto update start addr enable
//bit[25] R-RW 0~1 0 reg_keep_receive : data path keep receive
//bit[24:19] R-RW 0~63 0 reg_req_th : fifo_room > req_th, then send the request
//bit[18:16] R-RW 0~7 0 reg_arsize : axi arsize
//bit[14:12] R-RW 0~7 0 reg_arprot : axi arprot
//bit[11:8] R-RW 0~15 0 reg_aruser : axi aruser
//bit[5:4] R-RW 0~3 0 reg_arid : axi arid
//bit[3:0] R-RW 0~2 0 reg_lens : default request lens, each burst has "reg_lens+1" data
#define DOLBY_TV_AXI2DMA_CTRL1 (0x33fb)
#define P_DOLBY_TV_AXI2DMA_CTRL1 (volatile unsigned int *)((0x33fb << 2) + 0xff900000)
//bit[31] R-RW 0~1 0 axi_addr_mode : 1 "canvas mode", 0 "normal mode"
//bit[27:16] R-RW 0~4095 0 dma_size0 : total data number in dma0
//bit[11:0] R-RW 0~4095 0 dma_size1 : total data number in dma1
#define DOLBY_TV_AXI2DMA_CTRL2 (0x33fc)
#define P_DOLBY_TV_AXI2DMA_CTRL2 (volatile unsigned int *)((0x33fc << 2) + 0xff900000)
//bit[31:0] R-RW 0~4294967295 0 axi_start_addr : axi start address
#define DOLBY_TV_AXI2DMA_CTRL3 (0x33fd)
#define P_DOLBY_TV_AXI2DMA_CTRL3 (volatile unsigned int *)((0x33fd << 2) + 0xff900000)
//bit[11:0] R-RW 0~4095 0 hold_line : after hold_line the axi slave start requesting
#define DOLBY_TV_STATUS0 (0x33fe)
#define P_DOLBY_TV_STATUS0 (volatile unsigned int *)((0x33fe << 2) + 0xff900000)
#define DOLBY_TV_STATUS1 (0x33ff)
#define P_DOLBY_TV_STATUS1 (volatile unsigned int *)((0x33ff << 2) + 0xff900000)
#define DOLBY_TV_ADAPTIVE_SCALE_REGADDR (0x33e0)
#define P_DOLBY_TV_ADAPTIVE_SCALE_REGADDR (volatile unsigned int *)((0x33e0 << 2) + 0xff900000)
#define DOLBY_TV_ADAPTIVE_SCALE_REGDATA (0x33e1)
#define P_DOLBY_TV_ADAPTIVE_SCALE_REGDATA (volatile unsigned int *)((0x33e1 << 2) + 0xff900000)
#define DOLBY_TV_ADAPTIVE_SCALE_LUTADDR (0x33e2)
#define P_DOLBY_TV_ADAPTIVE_SCALE_LUTADDR (volatile unsigned int *)((0x33e2 << 2) + 0xff900000)
#define DOLBY_TV_ADAPTIVE_SCALE_LUTDATA (0x33e3)
#define P_DOLBY_TV_ADAPTIVE_SCALE_LUTDATA (volatile unsigned int *)((0x33e3 << 2) + 0xff900000)
// synopsys translate_off
// synopsys translate_on
//
// Closing file: dolby_regs.h
//
// -----------------------------------------------
// CBUS_BASE: DOLBY1A_VCBUS_BASE = 0x34
// -----------------------------------------------
//
// Reading file: dolby1a_regs.h
//
// synopsys translate_off
// synopsys translate_on
#define DOLBY_CORE2A_REG_START (0x3400)
#define P_DOLBY_CORE2A_REG_START (volatile unsigned int *)((0x3400 << 2) + 0xff900000)
#define DOLBY_CORE2A_CLKGATE_CTRL (0x3432)
#define P_DOLBY_CORE2A_CLKGATE_CTRL (volatile unsigned int *)((0x3432 << 2) + 0xff900000)
#define DOLBY_CORE2A_SWAP_CTRL0 (0x3433)
#define P_DOLBY_CORE2A_SWAP_CTRL0 (volatile unsigned int *)((0x3433 << 2) + 0xff900000)
#define DOLBY_CORE2A_SWAP_CTRL1 (0x3434)
#define P_DOLBY_CORE2A_SWAP_CTRL1 (volatile unsigned int *)((0x3434 << 2) + 0xff900000)
#define DOLBY_CORE2A_SWAP_CTRL2 (0x3435)
#define P_DOLBY_CORE2A_SWAP_CTRL2 (volatile unsigned int *)((0x3435 << 2) + 0xff900000)
#define DOLBY_CORE2A_SWAP_CTRL3 (0x3436)
#define P_DOLBY_CORE2A_SWAP_CTRL3 (volatile unsigned int *)((0x3436 << 2) + 0xff900000)
#define DOLBY_CORE2A_SWAP_CTRL4 (0x3437)
#define P_DOLBY_CORE2A_SWAP_CTRL4 (volatile unsigned int *)((0x3437 << 2) + 0xff900000)
#define DOLBY_CORE2A_SWAP_CTRL5 (0x3438)
#define P_DOLBY_CORE2A_SWAP_CTRL5 (volatile unsigned int *)((0x3438 << 2) + 0xff900000)
#define DOLBY_CORE2A_DMA_CTRL (0x3439)
#define P_DOLBY_CORE2A_DMA_CTRL (volatile unsigned int *)((0x3439 << 2) + 0xff900000)
#define DOLBY_CORE2A_DMA_STATUS (0x343a)
#define P_DOLBY_CORE2A_DMA_STATUS (volatile unsigned int *)((0x343a << 2) + 0xff900000)
#define DOLBY_CORE2A_STATUS0 (0x343b)
#define P_DOLBY_CORE2A_STATUS0 (volatile unsigned int *)((0x343b << 2) + 0xff900000)
#define DOLBY_CORE2A_STATUS1 (0x343c)
#define P_DOLBY_CORE2A_STATUS1 (volatile unsigned int *)((0x343c << 2) + 0xff900000)
#define DOLBY_CORE2A_STATUS2 (0x343d)
#define P_DOLBY_CORE2A_STATUS2 (volatile unsigned int *)((0x343d << 2) + 0xff900000)
#define DOLBY_CORE2A_STATUS3 (0x343e)
#define P_DOLBY_CORE2A_STATUS3 (volatile unsigned int *)((0x343e << 2) + 0xff900000)
#define DOLBY_CORE2A_DMA_PORT (0x343f)
#define P_DOLBY_CORE2A_DMA_PORT (volatile unsigned int *)((0x343f << 2) + 0xff900000)
#define DOLBY_CORE2A_AXI2DMA_CTRL0 (0x3440)
#define P_DOLBY_CORE2A_AXI2DMA_CTRL0 (volatile unsigned int *)((0x3440 << 2) + 0xff900000)
#define DOLBY_CORE2A_AXI2DMA_CTRL1 (0x3441)
#define P_DOLBY_CORE2A_AXI2DMA_CTRL1 (volatile unsigned int *)((0x3441 << 2) + 0xff900000)
#define DOLBY_CORE2A_AXI2DMA_CTRL2 (0x3442)
#define P_DOLBY_CORE2A_AXI2DMA_CTRL2 (volatile unsigned int *)((0x3442 << 2) + 0xff900000)
#define DOLBY_CORE2A_AXI2DMA_CTRL3 (0x3443)
#define P_DOLBY_CORE2A_AXI2DMA_CTRL3 (volatile unsigned int *)((0x3443 << 2) + 0xff900000)
// synopsys translate_off
// synopsys translate_on
//
// Closing file: dolby1a_regs.h
//
// -----------------------------------------------
// CBUS_BASE: DOLBY1B_VCBUS_BASE = 0x35
// -----------------------------------------------
//`include "dolby1b_regs.h"
// -----------------------------------------------
// CBUS_BASE: DOLBY2_VCBUS_BASE = 0x36
// -----------------------------------------------
//
// Reading file: dolby2_regs.h
//
// synopsys translate_off
// synopsys translate_on
#define DOLBY_CORE3_REG_START (0x3600)
#define P_DOLBY_CORE3_REG_START (volatile unsigned int *)((0x3600 << 2) + 0xff900000)
#define DOLBY_CORE3_CLKGATE_CTRL (0x36f0)
#define P_DOLBY_CORE3_CLKGATE_CTRL (volatile unsigned int *)((0x36f0 << 2) + 0xff900000)
#define DOLBY_CORE3_SWAP_CTRL0 (0x36f1)
#define P_DOLBY_CORE3_SWAP_CTRL0 (volatile unsigned int *)((0x36f1 << 2) + 0xff900000)
#define DOLBY_CORE3_SWAP_CTRL1 (0x36f2)
#define P_DOLBY_CORE3_SWAP_CTRL1 (volatile unsigned int *)((0x36f2 << 2) + 0xff900000)
#define DOLBY_CORE3_SWAP_CTRL2 (0x36f3)
#define P_DOLBY_CORE3_SWAP_CTRL2 (volatile unsigned int *)((0x36f3 << 2) + 0xff900000)
#define DOLBY_CORE3_SWAP_CTRL3 (0x36f4)
#define P_DOLBY_CORE3_SWAP_CTRL3 (volatile unsigned int *)((0x36f4 << 2) + 0xff900000)
#define DOLBY_CORE3_SWAP_CTRL4 (0x36f5)
#define P_DOLBY_CORE3_SWAP_CTRL4 (volatile unsigned int *)((0x36f5 << 2) + 0xff900000)
#define DOLBY_CORE3_SWAP_CTRL5 (0x36f6)
#define P_DOLBY_CORE3_SWAP_CTRL5 (volatile unsigned int *)((0x36f6 << 2) + 0xff900000)
#define DOLBY_CORE3_SWAP_CTRL6 (0x36f7)
#define P_DOLBY_CORE3_SWAP_CTRL6 (volatile unsigned int *)((0x36f7 << 2) + 0xff900000)
#define DOLBY_CORE3_SWAP_CTRL7 (0x36f8)
#define P_DOLBY_CORE3_SWAP_CTRL7 (volatile unsigned int *)((0x36f8 << 2) + 0xff900000)
#define DOLBY_CORE3_SWAP_CTRL8 (0x36f9)
#define P_DOLBY_CORE3_SWAP_CTRL8 (volatile unsigned int *)((0x36f9 << 2) + 0xff900000)
#define DOLBY_CORE3_SWAP_CTRL9 (0x36fa)
#define P_DOLBY_CORE3_SWAP_CTRL9 (volatile unsigned int *)((0x36fa << 2) + 0xff900000)
#define DOLBY_CORE3_STATUS0 (0x36fb)
#define P_DOLBY_CORE3_STATUS0 (volatile unsigned int *)((0x36fb << 2) + 0xff900000)
#define DOLBY_CORE3_STATUS1 (0x36fc)
#define P_DOLBY_CORE3_STATUS1 (volatile unsigned int *)((0x36fc << 2) + 0xff900000)
#define DOLBY_CORE3_STATUS2 (0x36fd)
#define P_DOLBY_CORE3_STATUS2 (volatile unsigned int *)((0x36fd << 2) + 0xff900000)
#define DOLBY_CORE3_STATUS3 (0x36fe)
#define P_DOLBY_CORE3_STATUS3 (volatile unsigned int *)((0x36fe << 2) + 0xff900000)
// synopsys translate_off
// synopsys translate_on
//
// Closing file: dolby2_regs.h
//
//`define MADC_VCBUS_BASE 8'h37
//
// Reading file: vpu_madc_regs.h
//
// synopsys translate_off
// synopsys translate_on
// -----------------------------------------------
// CBUS_BASE: MADC_VCBUS_BASE = 0x37
// -----------------------------------------------
// 0x00-0x1f
//
// Reading file: nr4_nm_regs.h
//
// synopsys translate_off
// synopsys translate_on
#define NR4_MCNR_SAD_GAIN (0x3700)
#define P_NR4_MCNR_SAD_GAIN (volatile unsigned int *)((0x3700 << 2) + 0xff900000)
//Bit 31:25 reserved
//Bit 24 reg_nr4_bld12vs3_usemaxsad // unsigned , default = 0 use minsad/maxsad instead of minsad/avgsad to decision if it was texture or flat region, 1: use minsad/maxsad
//Bit 23:16 reg_nr4_bld12vs3_rate_gain // unsigned , default = 64 gain to minsad/maxsad or minsad/avgsad before LUT, 64 normalized as "1"
//Bit 15: 8 reg_nr4_bld1vs2_rate_gain // unsigned , default = 32 gain to minsad/maxsad or minsad/avgsad before the LUT, 64 normalized as"1"
//Bit 7: 0 reg_nr4_coefblt_gain // unsigned , default = 64 gain to final coefblt, normalized 64 as "1"
#define NR4_MCNR_LPF_CTRL (0x3701)
#define P_NR4_MCNR_LPF_CTRL (volatile unsigned int *)((0x3701 << 2) + 0xff900000)
//Bit 31 reserved
//Bit 30:22 reg_nr4_preflt_alpofst // signed , default = 0 pre filter alpha ofst
//Bit 21:16 reg_nr4_preflt_alpgain // unsigned , default = 16 pre filter alpha gain
//Bit 15:14 reg_nr4_preflt_alpsel // unsigned , default = 3 pre filter alpha selection for adaptive blending, 0: mv pointed sad, 1: weighted mv pointed sad, 2or3: coefblt
//Bit 13: 8 reg_nr4_avgsad_gain // unsigned , default = 8 gain for avg sad before luts
//Bit 7 reserved
//Bit 6 reg_nr4_maxsad_mod // unsigned , default = 1 max sad select mode, 0: mx2_sad, 1: max sad
//Bit 5 reg_nr4_minsad_mod // unsigned , default = 1 min sad select mode, 0: sad with min err, 1: min sad
//Bit 4 reg_nr4_minmaxsad_lpf // unsigned , default = 1 mode of lpf for minmaxsad, 0: no LPF, 1: [1 2 1]/4
//Bit 3 reg_nr4_avgsad_lpf // unsigned , default = 1 mode of lpf for avgsad, 0: no LPF, 1: [1 2 1]/4
//Bit 2 reg_nr4_minavgsad_ratio_lpf // unsigned , default = 1 mode of lpf for minsad/avgsad and zmvsad/avgsad, 0: no LPF, 1: [1 2 1]/4
//Bit 1 reg_nr4_bldvs_lut_lpf // unsigned , default = 1 mode of lpf for bld12vs3 and bld1vs2 LUT results, 0: no LPF, 1: [1 2 1]/4
//Bit 0 reg_nr4_final_coef_lpf // unsigned , default = 1 mode of lpf for final coef_blt_blend123, 0: no LPF, 1: [1 2 1]/4
#define NR4_MCNR_BLD_VS3LUT0 (0x3702)
#define P_NR4_MCNR_BLD_VS3LUT0 (volatile unsigned int *)((0x3702 << 2) + 0xff900000)
//Bit 31:30 reserved
//Bit 29:24 reg_nr4_bld12vs3_lut0 // unsigned , default = 0
//Bit 23:22 reserved
//Bit 21:16 reg_nr4_bld12vs3_lut1 // unsigned , default = 8
//Bit 15:14 reserved
//Bit 13: 8 reg_nr4_bld12vs3_lut2 // unsigned , default = 10
//Bit 7: 6 reserved
//Bit 5: 0 reg_nr4_bld12vs3_lut3 // unsigned , default = 11
#define NR4_MCNR_BLD_VS3LUT1 (0x3703)
#define P_NR4_MCNR_BLD_VS3LUT1 (volatile unsigned int *)((0x3703 << 2) + 0xff900000)
//Bit 31:30 reserved
//Bit 29:24 reg_nr4_bld12vs3_lut4 // unsigned , default = 12
//Bit 23:22 reserved
//Bit 21:16 reg_nr4_bld12vs3_lut5 // unsigned , default = 14
//Bit 15:14 reserved
//Bit 13: 8 reg_nr4_bld12vs3_lut6 // unsigned , default = 16
//Bit 7: 6 reserved
//Bit 5: 0 reg_nr4_bld12vs3_lut7 // unsigned , default = 24
#define NR4_MCNR_BLD_VS3LUT2 (0x3704)
#define P_NR4_MCNR_BLD_VS3LUT2 (volatile unsigned int *)((0x3704 << 2) + 0xff900000)
//Bit 31:30 reserved
//Bit 29:24 reg_nr4_bld12vs3_lut8 // unsigned , default = 50
//Bit 23:22 reserved
//Bit 21:16 reg_nr4_bld12vs3_lut9 // unsigned , default = 58
//Bit 15:14 reserved
//Bit 13: 8 reg_nr4_bld12vs3_lut10 // unsigned , default = 63
//Bit 7: 6 reserved
//Bit 5: 0 reg_nr4_bld12vs3_lut11 // unsigned , default = 63
#define NR4_MCNR_BLD_VS2LUT0 (0x3705)
#define P_NR4_MCNR_BLD_VS2LUT0 (volatile unsigned int *)((0x3705 << 2) + 0xff900000)
//Bit 31:30 reserved
//Bit 29:24 reg_nr4_bld1vs2_lut0 // unsigned , default = 63
//Bit 23:22 reserved
//Bit 21:16 reg_nr4_bld1vs2_lut1 // unsigned , default = 32
//Bit 15:14 reserved
//Bit 13: 8 reg_nr4_bld1vs2_lut2 // unsigned , default = 16
//Bit 7: 6 reserved
//Bit 5: 0 reg_nr4_bld1vs2_lut3 // unsigned , default = 8
#define NR4_MCNR_BLD_VS2LUT1 (0x3706)
#define P_NR4_MCNR_BLD_VS2LUT1 (volatile unsigned int *)((0x3706 << 2) + 0xff900000)
//Bit 31:30 reserved
//Bit 29:24 reg_nr4_bld1vs2_lut4 // unsigned , default = 4
//Bit 23:22 reserved
//Bit 21:16 reg_nr4_bld1vs2_lut5 // unsigned , default = 2
//Bit 15:14 reserved
//Bit 13: 8 reg_nr4_bld1vs2_lut6 // unsigned , default = 1
//Bit 7: 6 reserved
//Bit 5: 0 reg_nr4_bld1vs2_lut7 // unsigned , default = 0
#define NR4_COEFBLT_LUT10 (0x3707)
#define P_NR4_COEFBLT_LUT10 (volatile unsigned int *)((0x3707 << 2) + 0xff900000)
//Bit 31:24 reg_nr4_coefblt_lut10 // signed , default = -128
//Bit 23:16 reg_nr4_coefblt_lut11 // signed , default = -128
//Bit 15: 8 reg_nr4_coefblt_lut12 // signed , default = -126
//Bit 7: 0 reg_nr4_coefblt_lut13 // signed , default = -124
#define NR4_COEFBLT_LUT11 (0x3708)
#define P_NR4_COEFBLT_LUT11 (volatile unsigned int *)((0x3708 << 2) + 0xff900000)
//Bit 31:24 reg_nr4_coefblt_lut14 // signed , default = -120
//Bit 23:16 reg_nr4_coefblt_lut15 // signed , default = -110
//Bit 15: 8 reg_nr4_coefblt_lut16 // signed , default = -100
//Bit 7: 0 reg_nr4_coefblt_lut17 // signed , default = -90
#define NR4_COEFBLT_LUT12 (0x3709)
#define P_NR4_COEFBLT_LUT12 (volatile unsigned int *)((0x3709 << 2) + 0xff900000)
//Bit 31:24 reg_nr4_coefblt_lut18 // signed , default = -56
//Bit 23:16 reg_nr4_coefblt_lut19 // signed , default = -32
//Bit 15: 8 reg_nr4_coefblt_lut110 // signed , default = -64
//Bit 7: 0 reg_nr4_coefblt_lut111 // signed , default = -128
#define NR4_COEFBLT_LUT20 (0x370a)
#define P_NR4_COEFBLT_LUT20 (volatile unsigned int *)((0x370a << 2) + 0xff900000)
//Bit 31:24 reg_nr4_coefblt_lut20 // signed , default = -128
//Bit 23:16 reg_nr4_coefblt_lut21 // signed , default = -120
//Bit 15: 8 reg_nr4_coefblt_lut22 // signed , default = -112
//Bit 7: 0 reg_nr4_coefblt_lut23 // signed , default = -104
#define NR4_COEFBLT_LUT21 (0x370b)
#define P_NR4_COEFBLT_LUT21 (volatile unsigned int *)((0x370b << 2) + 0xff900000)
//Bit 31:24 reg_nr4_coefblt_lut24 // signed , default = -96
//Bit 23:16 reg_nr4_coefblt_lut25 // signed , default = -88
//Bit 15: 8 reg_nr4_coefblt_lut26 // signed , default = -76
//Bit 7: 0 reg_nr4_coefblt_lut27 // signed , default = -64
#define NR4_COEFBLT_LUT22 (0x370c)
#define P_NR4_COEFBLT_LUT22 (volatile unsigned int *)((0x370c << 2) + 0xff900000)
//Bit 31:24 reg_nr4_coefblt_lut28 // signed , default = -48
//Bit 23:16 reg_nr4_coefblt_lut29 // signed , default = -32
//Bit 15: 8 reg_nr4_coefblt_lut210 // signed , default = -64
//Bit 7: 0 reg_nr4_coefblt_lut211 // signed , default = -108
#define NR4_COEFBLT_LUT30 (0x370d)
#define P_NR4_COEFBLT_LUT30 (volatile unsigned int *)((0x370d << 2) + 0xff900000)
//Bit 31:24 reg_nr4_coefblt_lut30 // signed , default = 8
//Bit 23:16 reg_nr4_coefblt_lut31 // signed , default = 16
//Bit 15: 8 reg_nr4_coefblt_lut32 // signed , default = 24
//Bit 7: 0 reg_nr4_coefblt_lut33 // signed , default = 30
#define NR4_COEFBLT_LUT31 (0x370e)
#define P_NR4_COEFBLT_LUT31 (volatile unsigned int *)((0x370e << 2) + 0xff900000)
//Bit 31:24 reg_nr4_coefblt_lut34 // signed , default = 36
//Bit 23:16 reg_nr4_coefblt_lut35 // signed , default = 48
//Bit 15: 8 reg_nr4_coefblt_lut36 // signed , default = 70
//Bit 7: 0 reg_nr4_coefblt_lut37 // signed , default = 96
#define NR4_COEFBLT_LUT32 (0x370f)
#define P_NR4_COEFBLT_LUT32 (volatile unsigned int *)((0x370f << 2) + 0xff900000)
//Bit 31:24 reg_nr4_coefblt_lut38 // signed , default = 120
//Bit 23:16 reg_nr4_coefblt_lut39 // signed , default = 64
//Bit 15: 8 reg_nr4_coefblt_lut310 // signed , default = 16
//Bit 7: 0 reg_nr4_coefblt_lut311 // signed , default = -8
#define NR4_COEFBLT_CONV (0x3710)
#define P_NR4_COEFBLT_CONV (volatile unsigned int *)((0x3710 << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23:16 reg_nr4_coefblt_convmin // unsigned , default = 0 minimum of coef. bilateral conversion
//Bit 15: 8 reg_nr4_coefblt_convmax // unsigned , default = 255 maximum of coef. bilateral conversion
//Bit 7: 0 reg_nr4_coefblt_convmid // unsigned , default = 128 value at midpoint of coef. bilateral conversion
#define NR4_DBGWIN_YX0 (0x3711)
#define P_NR4_DBGWIN_YX0 (volatile unsigned int *)((0x3711 << 2) + 0xff900000)
//Bit 31:30 reserved
//Bit 29:16 reg_nr4_dgbwin_yx0 // unsigned , default = 100 ystart for debug window
//Bit 15:14 reserved
//Bit 13: 0 reg_nr4_dgbwin_yx1 // unsigned , default = 160 yend for debug window
#define NR4_DBGWIN_YX1 (0x3712)
#define P_NR4_DBGWIN_YX1 (volatile unsigned int *)((0x3712 << 2) + 0xff900000)
//Bit 31:30 reserved
//Bit 29:16 reg_nr4_dgbwin_yx2 // unsigned , default = 200 xstart for debug window
//Bit 15:14 reserved
//Bit 13: 0 reg_nr4_dgbwin_yx3 // unsigned , default = 300 xend for debug window
#define NR4_NM_X_CFG (0x3713)
#define P_NR4_NM_X_CFG (volatile unsigned int *)((0x3713 << 2) + 0xff900000)
//Bit 31:30 reserved
//Bit 29:16 reg_nr4_nm_xst // unsigned , default = 8 start for noise meter statistic, dft = 8
//Bit 15:14 reserved
//Bit 13: 0 reg_nr4_nm_xed // unsigned , default = 711 end for noise meter statistic, dft = HSIZE-8-1;
#define NR4_NM_Y_CFG (0x3714)
#define P_NR4_NM_Y_CFG (volatile unsigned int *)((0x3714 << 2) + 0xff900000)
//Bit 31:30 reserved
//Bit 29:16 reg_nr4_nm_yst // unsigned , default = 8 start for noise meter statistic, dft = 8;
//Bit 15:14 reserved
//Bit 13: 0 reg_nr4_nm_yed // unsigned , default = 231 end for noise meter statistic, dft = VSIZE-8-1;
#define NR4_NM_SAD_THD (0x3715)
#define P_NR4_NM_SAD_THD (volatile unsigned int *)((0x3715 << 2) + 0xff900000)
//Bit 31: 8 reserved
//Bit 7: 0 reg_nr4_nm_sad_thd // unsigned , default = 255 threshold for (flat region) sad count, dft = 4
#define NR4_MCNR_BANDSPLIT_PRAM (0x3716)
#define P_NR4_MCNR_BANDSPLIT_PRAM (volatile unsigned int *)((0x3716 << 2) + 0xff900000)
//Bit 31: 5 reserved
//Bit 4 reg_nr4_mc_use_bandsplit // unsigned , default = 1 separate lp and us for mc IIR filter, 0: no BS used; 1: use BS
//Bit 3 reg_nr4_mc_apply_on_lp // unsigned , default = 1 use mcnr only on lowpass portion;
//Bit 2 reg_nr4_mc_apply_on_us // unsigned , default = 1 use mcnr only on lp complimentary portion;
//Bit 1: 0 reg_nr4_mc_zmvbs_use_adplpf // unsigned , default = 1 use adapptive LPF for the zmv pointing data for MCNR, for abs(mvx)<th
#define NR4_MCNR_ALP1_SGN_COR (0x3717)
#define P_NR4_MCNR_ALP1_SGN_COR (volatile unsigned int *)((0x3717 << 2) + 0xff900000)
//Bit 31:24 reg_nr4_mc_aph1_sgn_coring0 // unsigned , default = 10 coring to cur-pre before do sgn decision
//Bit 23:16 reg_nr4_mc_aph1_sgn_coring1 // unsigned , default = 7 coring to cur-pre before do sgn decision
//Bit 15: 8 reg_nr4_mc_aph1_sgn_core_max0 // unsigned , default = 90 maximum of coring, default = 30/15
//Bit 7: 0 reg_nr4_mc_aph1_sgn_core_max1 // unsigned , default = 15 maximum of coring, default = 30/15
#define NR4_MCNR_ALP1_SGN_PRAM (0x3718)
#define P_NR4_MCNR_ALP1_SGN_PRAM (volatile unsigned int *)((0x3718 << 2) + 0xff900000)
//Bit 31:11 reserved
//Bit 10 reg_nr4_mc_alp1_sgn_half // unsigned , default = 1 half block sgn sum mode enable, 0: only use 3x5 whole block sum of sgns; 1: use max(sgn_3x5, sqrt(sgn_left+sgn_righ))
//Bit 9 reg_nr4_mc_alp1_sgn_frczmv // unsigned , default = 1 force zmv to calculate the sign_sum;
//Bit 8 reg_nr4_mc_alp1_sgnmvx_mode // unsigned , default = 1 blend mode of sgnlut and mvxlut blend mode: 0: sgnlut+ mvxlut; 1: max(sgnlut, mvxlut), default =1
//Bit 7: 4 reg_nr4_mc_aph1_sgn_crate0 // unsigned , default = 4 rate to var, norm to 16 as 1, default = 2
//Bit 3: 0 reg_nr4_mc_aph1_sgn_crate1 // unsigned , default = 2 rate to var, norm to 16 as 1, default = 2
#define NR4_MCNR_ALP1_MVX_LUT1 (0x3719)
#define P_NR4_MCNR_ALP1_MVX_LUT1 (volatile unsigned int *)((0x3719 << 2) + 0xff900000)
//Bit 31:28 reg_nr4_mc_alp1_mvx_luty3 // unsigned , default = 14 alp1 of luma vas mvx(0~7), and alp1 vs mvy(0,1)
//Bit 27:24 reg_nr4_mc_alp1_mvx_lutc3 // unsigned , default = 14 alp1 of chrm vas mvx(0~7), and alp1 vs mvy(0,1)
//Bit 23:20 reg_nr4_mc_alp1_mvx_luty2 // unsigned , default = 12 alp1 of luma vas mvx(0~7), and alp1 vs mvy(0,1)
//Bit 19:16 reg_nr4_mc_alp1_mvx_lutc2 // unsigned , default = 12 alp1 of chrm vas mvx(0~7), and alp1 vs mvy(0,1)
//Bit 15:12 reg_nr4_mc_alp1_mvx_luty1 // unsigned , default = 5 alp1 of luma vas mvx(0~7), and alp1 vs mvy(0,1)
//Bit 11: 8 reg_nr4_mc_alp1_mvx_lutc1 // unsigned , default = 5 alp1 of chrm vas mvx(0~7), and alp1 vs mvy(0,1)
//Bit 7: 4 reg_nr4_mc_alp1_mvx_luty0 // unsigned , default = 3 alp1 of luma vas mvx(0~7), and alp1 vs mvy(0,1)
//Bit 3: 0 reg_nr4_mc_alp1_mvx_lutc0 // unsigned , default = 3 alp1 of chrm vas mvx(0~7), and alp1 vs mvy(0,1)
#define NR4_MCNR_ALP1_MVX_LUT2 (0x371a)
#define P_NR4_MCNR_ALP1_MVX_LUT2 (volatile unsigned int *)((0x371a << 2) + 0xff900000)
//Bit 31:28 reg_nr4_mc_alp1_mvx_luty7 // unsigned , default = 15 alp1 of luma vas mvx(0~7), and alp1 vs mvy(0,1)
//Bit 27:24 reg_nr4_mc_alp1_mvx_lutc7 // unsigned , default = 15 alp1 of chrm vas mvx(0~7), and alp1 vs mvy(0,1)
//Bit 23:20 reg_nr4_mc_alp1_mvx_luty6 // unsigned , default = 15 alp1 of luma vas mvx(0~7), and alp1 vs mvy(0,1)
//Bit 19:16 reg_nr4_mc_alp1_mvx_lutc6 // unsigned , default = 15 alp1 of chrm vas mvx(0~7), and alp1 vs mvy(0,1)
//Bit 15:12 reg_nr4_mc_alp1_mvx_luty5 // unsigned , default = 15 alp1 of luma vas mvx(0~7), and alp1 vs mvy(0,1)
//Bit 11: 8 reg_nr4_mc_alp1_mvx_lutc5 // unsigned , default = 15 alp1 of chrm vas mvx(0~7), and alp1 vs mvy(0,1)
//Bit 7: 4 reg_nr4_mc_alp1_mvx_luty4 // unsigned , default = 15 alp1 of luma vas mvx(0~7), and alp1 vs mvy(0,1)
//Bit 3: 0 reg_nr4_mc_alp1_mvx_lutc4 // unsigned , default = 15 alp1 of chrm vas mvx(0~7), and alp1 vs mvy(0,1)
#define NR4_MCNR_ALP1_MVX_LUT3 (0x371b)
#define P_NR4_MCNR_ALP1_MVX_LUT3 (volatile unsigned int *)((0x371b << 2) + 0xff900000)
//Bit 31: 8 reserved
//Bit 7: 4 reg_nr4_mc_alp1_mvx_luty8 // unsigned , default = 6 alp1 of luma vas mvx(0~7), and alp1 vs mvy(0,1)
//Bit 3: 0 reg_nr4_mc_alp1_mvx_lutc8 // unsigned , default = 6 alp1 of chrm vas mvx(0~7), and alp1 vs mvy(0,1)
#define NR4_MCNR_ALP1_LP_PRAM (0x371c)
#define P_NR4_MCNR_ALP1_LP_PRAM (volatile unsigned int *)((0x371c << 2) + 0xff900000)
//Bit 31:18 reserved
//Bit 17:16 reg_nr4_mc_alp1_lp_sel // unsigned , default = 1 mode for alp1_lp for lp portion IIR, 0: apha1, 1:dc_dif vs ac analysis; 2: gain/ofst of alp1; 3: max of #1/#2 results
//Bit 15: 8 reg_nr4_mc_alp1_lp_gain // unsigned , default = 64 gain to alp1 to get the alp1_lp = alp1*gain/32 + ofset, default =64;
//Bit 7: 0 reg_nr4_mc_alp1_lp_ofst // signed , default = 0 offset to alp1 to get the alp1_lp = alp1*gain/32 + ofset, default =10;
#define NR4_MCNR_ALP1_SGN_LUT1 (0x371d)
#define P_NR4_MCNR_ALP1_SGN_LUT1 (volatile unsigned int *)((0x371d << 2) + 0xff900000)
//Bit 31:28 reg_nr4_mc_alp1_sgn_lut0 // unsigned , default = 3 alp1 vs x=abs|sgn(cur-pre)|, if x is small, less possibility of flat region move
//Bit 27:24 reg_nr4_mc_alp1_sgn_lut1 // unsigned , default = 3 alp1 vs x=abs|sgn(cur-pre)|, if x is small, less possibility of flat region move
//Bit 23:20 reg_nr4_mc_alp1_sgn_lut2 // unsigned , default = 3 alp1 vs x=abs|sgn(cur-pre)|, if x is small, less possibility of flat region move
//Bit 19:16 reg_nr4_mc_alp1_sgn_lut3 // unsigned , default = 4 alp1 vs x=abs|sgn(cur-pre)|, if x is small, less possibility of flat region move
//Bit 15:12 reg_nr4_mc_alp1_sgn_lut4 // unsigned , default = 5 alp1 vs x=abs|sgn(cur-pre)|, if x is small, less possibility of flat region move
//Bit 11: 8 reg_nr4_mc_alp1_sgn_lut5 // unsigned , default = 6 alp1 vs x=abs|sgn(cur-pre)|, if x is small, less possibility of flat region move
//Bit 7: 4 reg_nr4_mc_alp1_sgn_lut6 // unsigned , default = 7 alp1 vs x=abs|sgn(cur-pre)|, if x is small, less possibility of flat region move
//Bit 3: 0 reg_nr4_mc_alp1_sgn_lut7 // unsigned , default = 8 alp1 vs x=abs|sgn(cur-pre)|, if x is small, less possibility of flat region move
#define NR4_MCNR_ALP1_SGN_LUT2 (0x371e)
#define P_NR4_MCNR_ALP1_SGN_LUT2 (volatile unsigned int *)((0x371e << 2) + 0xff900000)
//Bit 31:28 reg_nr4_mc_alp1_sgn_lut8 // unsigned , default = 9 alp1 vs x=abs|sgn(cur-pre)|, if x is small, less possibility of flat region move
//Bit 27:24 reg_nr4_mc_alp1_sgn_lut9 // unsigned , default = 10 alp1 vs x=abs|sgn(cur-pre)|, if x is small, less possibility of flat region move
//Bit 23:20 reg_nr4_mc_alp1_sgn_lut10 // unsigned , default = 11 alp1 vs x=abs|sgn(cur-pre)|, if x is small, less possibility of flat region move
//Bit 19:16 reg_nr4_mc_alp1_sgn_lut11 // unsigned , default = 12 alp1 vs x=abs|sgn(cur-pre)|, if x is small, less possibility of flat region move
//Bit 15:12 reg_nr4_mc_alp1_sgn_lut12 // unsigned , default = 13 alp1 vs x=abs|sgn(cur-pre)|, if x is small, less possibility of flat region move
//Bit 11: 8 reg_nr4_mc_alp1_sgn_lut13 // unsigned , default = 14 alp1 vs x=abs|sgn(cur-pre)|, if x is small, less possibility of flat region move
//Bit 7: 4 reg_nr4_mc_alp1_sgn_lut14 // unsigned , default = 15 alp1 vs x=abs|sgn(cur-pre)|, if x is small, less possibility of flat region move
//Bit 3: 0 reg_nr4_mc_alp1_sgn_lut15 // unsigned , default = 15 alp1 vs x=abs|sgn(cur-pre)|, if x is small, less possibility of flat region move
#define NR4_RO_NM_SAD_SUM (0x371f)
#define P_NR4_RO_NM_SAD_SUM (volatile unsigned int *)((0x371f << 2) + 0xff900000)
//Bit 31: 0 ro_nr4_nm_sad_sum // unsigned , default = 0 sum of sad, for scene change detectcion, in noise meter
#define NR4_RO_NM_SAD_CNT (0x3720)
#define P_NR4_RO_NM_SAD_CNT (volatile unsigned int *)((0x3720 << 2) + 0xff900000)
//Bit 31: 0 ro_nr4_nm_sad_cnt // unsigned , default = 0 cnt of sad, for scene change detectcion, in noise meter
#define NR4_RO_NM_VAR_SUM (0x3721)
#define P_NR4_RO_NM_VAR_SUM (volatile unsigned int *)((0x3721 << 2) + 0xff900000)
//Bit 31: 0 ro_nr4_nm_var_sum // unsigned , default = 0 sum of var, for noise level detection, in noise meter
#define NR4_RO_NM_VAR_SCNT (0x3722)
#define P_NR4_RO_NM_VAR_SCNT (volatile unsigned int *)((0x3722 << 2) + 0xff900000)
//Bit 31: 0 ro_nr4_nm_var_cnt // unsigned , default = 0 cnt of var, for noise level detection, in noise meter
#define NR4_RO_NM_VAR_MIN_MAX (0x3723)
#define P_NR4_RO_NM_VAR_MIN_MAX (volatile unsigned int *)((0x3723 << 2) + 0xff900000)
//Bit 31:22 reserved
//Bit 21:12 ro_nr4_nm_min_var // unsigned , default = 1023 min of var, for noise level detection, in noise meter
//Bit 11:10 reserved
//Bit 9: 0 ro_nr4_nm_max_var // unsigned , default = 0 max of var, for noise level detection, in noise meter
#define NR4_RO_NR4_DBGPIX_NUM (0x3724)
#define P_NR4_RO_NR4_DBGPIX_NUM (volatile unsigned int *)((0x3724 << 2) + 0xff900000)
//Bit 31:28 reserved
//Bit 27: 0 ro_nr4_dbgpix_num // unsigned , default = 0 number of pixels statistic invoved (removed?)
#define NR4_RO_NR4_BLDVS2_SUM (0x3725)
#define P_NR4_RO_NR4_BLDVS2_SUM (volatile unsigned int *)((0x3725 << 2) + 0xff900000)
//Bit 31: 0 ro_nr4_bld1vs2_sum // unsigned , default = 0 sum of blend_1vs2 with the debug window
#define NR4_BLDVS3_SUM (0x3726)
#define P_NR4_BLDVS3_SUM (volatile unsigned int *)((0x3726 << 2) + 0xff900000)
//Bit 31: 0 ro_nr4_bld12vs3_sum // unsigned , default = 0 sum of blend_12vs3 with the debug window
#define NR4_COEF12_SUM (0x3727)
#define P_NR4_COEF12_SUM (volatile unsigned int *)((0x3727 << 2) + 0xff900000)
//Bit 31: 0 ro_nr4_coef12_sum // signed , default = 0 sum of coef_blt_blend12 with the debug window, under 8 bits precision
#define NR4_COEF123_SUM (0x3728)
#define P_NR4_COEF123_SUM (volatile unsigned int *)((0x3728 << 2) + 0xff900000)
//Bit 31: 0 ro_nr4_coef123_sum // signed , default = 0 sum of coef_final with the debug window, under 8 bits precision
// synopsys translate_off
// synopsys translate_on
//
// Closing file: nr4_nm_regs.h
//
// 0x28-0x38
//
// Reading file: nr_deband_regs.h
//
// synopsys translate_off
// synopsys translate_on
#define NR_DB_FLT_CTRL (0x3738)
#define P_NR_DB_FLT_CTRL (volatile unsigned int *)((0x3738 << 2) + 0xff900000)
//Bit 31:27 reserved
//Bit 26 reg_nrdeband_reset1 // unsigned , default = 0 0 : no reset seed 1: reload chroma seed
//Bit 25 reg_nrdeband_reset0 // unsigned , default = 0 0 : no reset seed 1: reload luma seed
//Bit 24 reg_nrdeband_rgb // unsigned , default = 0 0 : yuv 1: RGB
//Bit 23 reg_nrdeband_en11 // unsigned , default = 1 debanding registers of side lines, [0] for luma, same for below
//Bit 22 reg_nrdeband_en10 // unsigned , default = 1 debanding registers of side lines, [1] for chroma, same for below
//Bit 21 reg_nrdeband_siderand // unsigned , default = 1 options to use side two lines use the rand, instead of use for the YUV three component of middle line, 0: seed[3]/bandrand[3] for middle line yuv; 1: seed[3]/bandrand[3] for nearby three lines Y;
//Bit 20 reg_nrdeband_randmode // unsigned , default = 0 mode of rand noise adding, 0: same noise strength for all difs; else: strenght of noise will not exceed the difs, MIN((pPKReg->reg_nrdeband_bandrand[m]), noise[m])
//Bit 19:17 reg_nrdeband_bandrand2 // unsigned , default = 6
//Bit 16 reserved
//Bit 15:13 reg_nrdeband_bandrand1 // unsigned , default = 6
//Bit 12 reserved
//Bit 11: 9 reg_nrdeband_bandrand0 // unsigned , default = 6
//Bit 8 reserved
//Bit 7 reg_nrdeband_hpxor1 // unsigned , default = 1 debanding random hp portion xor, [0] for luma
//Bit 6 reg_nrdeband_hpxor0 // unsigned , default = 1 debanding random hp portion xor, [1] for chroma
//Bit 5 reg_nrdeband_en1 // unsigned , default = 1 debanding registers, for luma
//Bit 4 reg_nrdeband_en0 // unsigned , default = 1 debanding registers, for chroma
//Bit 3: 2 reg_nrdeband_lpf_mode1 // unsigned , default = 2 lpf mode, 0: 3x3, 1:3x5; 2: 5x5; 3:5x7
//Bit 1: 0 reg_nrdeband_lpf_mode0 // unsigned , default = 2 lpf mode, 0: 3x3, 1:3x5; 2: 5x5; 3:5x7
#define NR_DB_FLT_YC_THRD (0x3739)
#define P_NR_DB_FLT_YC_THRD (volatile unsigned int *)((0x3739 << 2) + 0xff900000)
//Bit 31:28 reg_nrdeband_luma_th3 // unsigned , default = 9 threshold to |Y-Ylpf|, if < th[0] use lpf
//Bit 27:24 reg_nrdeband_luma_th2 // unsigned , default = 7 elseif <th[1] use (lpf*3 + y)/4
//Bit 23:20 reg_nrdeband_luma_th1 // unsigned , default = 6 elseif <th[1] use (lpf*3 + y)/4elseif <th[2] (lpf*1 + y)/2
//Bit 19:16 reg_nrdeband_luma_th0 // unsigned , default = 5 elseif <th[1] use (lpf*3 + y)/4elseif elseif <th[3] (lpf*1 + 3*y)/4; else
//Bit 15:12 reg_nrdeband_chrm_th3 // unsigned , default = 9 threshold to |Y-Ylpf|, if < th[0] use lpf
//Bit 11: 8 reg_nrdeband_chrm_th2 // unsigned , default = 7 elseif <th[1] use (lpf*3 + y)/4
//Bit 7: 4 reg_nrdeband_chrm_th1 // unsigned , default = 6 elseif <th[1] use (lpf*3 + y)/4elseif <th[2] (lpf*1 + y)/2
//Bit 3: 0 reg_nrdeband_chrm_th0 // unsigned , default = 5 elseif <th[1] use (lpf*3 + y)/4elseif elseif
#define NR_DB_FLT_RANDLUT (0x373a)
#define P_NR_DB_FLT_RANDLUT (volatile unsigned int *)((0x373a << 2) + 0xff900000)
//Bit 31:24 reserved
//Bit 23:21 reg_nrdeband_randslut7 // unsigned , default = 1 lut0
//Bit 20:18 reg_nrdeband_randslut6 // unsigned , default = 1 lut0
//Bit 17:15 reg_nrdeband_randslut5 // unsigned , default = 1 lut0
//Bit 14:12 reg_nrdeband_randslut4 // unsigned , default = 1 lut0
//Bit 11: 9 reg_nrdeband_randslut3 // unsigned , default = 1 lut0
//Bit 8: 6 reg_nrdeband_randslut2 // unsigned , default = 1 lut0
//Bit 5: 3 reg_nrdeband_randslut1 // unsigned , default = 1 lut0
//Bit 2: 0 reg_nrdeband_randslut0 // unsigned , default = 1 lut0
#define NR_DB_FLT_PXI_THRD (0x373b)
#define P_NR_DB_FLT_PXI_THRD (volatile unsigned int *)((0x373b << 2) + 0xff900000)
//Bit 31:26 reserved
//Bit 25:16 reg_nrdeband_yc_th1 // unsigned , default = 0 to luma/|u/v| for using the denoise
//Bit 15:10 reserved
//Bit 9: 0 reg_nrdeband_yc_th0 // unsigned , default = 0 to luma/|u/v| for using the denoise
#define NR_DB_FLT_SEED_Y (0x373c)
#define P_NR_DB_FLT_SEED_Y (volatile unsigned int *)((0x373c << 2) + 0xff900000)
//Bit 31: 0 reg_nrdeband_seed0 // unsigned , default = 1621438240 noise adding seed for Y. seed[0]= 0x60a52f20; as default
#define NR_DB_FLT_SEED_U (0x373d)
#define P_NR_DB_FLT_SEED_U (volatile unsigned int *)((0x373d << 2) + 0xff900000)
//Bit 31: 0 reg_nrdeband_seed1 // unsigned , default = 1621438247 noise adding seed for U. seed[0]= 0x60a52f27; as default
#define NR_DB_FLT_SEED_V (0x373e)
#define P_NR_DB_FLT_SEED_V (volatile unsigned int *)((0x373e << 2) + 0xff900000)
//Bit 31: 0 reg_nrdeband_seed2 // unsigned , default = 1621438242 noise adding seed for V. seed[0]= 0x60a52f22; as default
#define NR_DB_FLT_SEED3 (0x373f)
#define P_NR_DB_FLT_SEED3 (volatile unsigned int *)((0x373f << 2) + 0xff900000)
//Bit 31: 0 reg_nrdeband_seed3 // unsigned , default = 1621438242 noise adding seed for V. seed[0]= 0x60a52f22; as default
// synopsys translate_off
// synopsys translate_on
//
// Closing file: nr_deband_regs.h
//
// synopsys translate_off
// synopsys translate_on
//
// Closing file: vpu_madc_regs.h
//
// -----------------------------------------------
// CBUS_BASE: NR4NM_VCBUS_BASE = 0x68
// -----------------------------------------------
// synopsys translate_off
// synopsys translate_on
//
// Closing file: ./vcbus_regs.h
//
//
// Reading file: ./ge2d_regs.h
//
// synopsys translate_off
// synopsys translate_on
//===========================================================================
////// GE2D Registers 0x8a0 - 0x8ff
//address is 0xd016_0000 - 0xd0160000 - 0xd01603ff
//===========================================================================
// -----------------------------------------------
// CBUS_BASE: GE2D_GCBUS_BASE = 0x00
// -----------------------------------------------
//Bit 31, destination bytemask only if destination bitmask is enable
//Bit 30, destination bitmask enable
//Bit 29, source2 key enable
//Bit 28, source2 key mode, 0: mask data when match, 1: mask data when unmatch
//Bit 27, source1 key enable
//Bit 26, source1 key mode, 0: mask data when match, 1: mask data when unmatch
//Bit 25:24, dst1 8bit mode component selection,
// 00: select Y(R), 01: Cb(G), 10: Cr(B), 11: Alpha
//Bit 23 dst clip mode, 0: write inside clip window, 1: write outside clip window
//Bit 22:17, reserved
//Bit 16:15, src2 8bit mode component selection,
// 00: select Y(R), 01: Cb(G), 10: Cr(B), 11: Alpha
//Bit 14 src2 fill mode, 0: repeat data, 1: fill default color
//Bit 13:12 src2 picture struct, 00: frame, 10: even, 11: odd
//Bit 11 src1 x direction yc ration, 0: 1:1, 1: 2:1
//Bit 10 src1 y direction yc ration, 0: 1:1, 1: 2:1
//Bit 9:7 reserved
//Bit 6:5, src1 8bit mode component selection,
// 00: select Y(R), 01: Cb(G), 10: Cr(B), 11: Alpha
//Bit 4 src1 fill mode, 0: repeat data, 1: fill default color
//Bit 3 src1 lookup table enable
//Bit 2:1 src1 picture struct, 00: frame, 10: even, 11: odd
//Bit 0 src1 separate buffer enable
#define GE2D_GEN_CTRL0 (0x00a0)
#define P_GE2D_GEN_CTRL0 (volatile unsigned int *)((0x00a0 << 2) + 0xff940000)
//Bit 31, soft rst
//Bit 30, dst write response counter reset
//Bit 29, disable adding dst write response count to busy bit
//Bit 28:26, reserved
//bit 25:24, interrupt control, if bit[0] true, generate interrupt when one command done,
// if bit[1] true, generate interrupt when ge2d change from busy to not busy
//Bit 23:22 src2 burst size control
//Bit 21:16 src1 burst size control, 5:4, yfifo, 3:2, cbfifo, 1:0, crfifo
// each 2bit, 00: 24 64bitword, 01: 32 64bitword, 10: 48 64bitwords, 11: 64 64bitwords
//Bit 15:14, dst1 picture struct, 00: frame, 10:top, 11: bottom
//Bit 13:12, bit 13 if true, force read src1, bit 12 if true, force read src2
//Bit 11, dst2 request urgent enable
//Bit 10, src1 request urgent enable
//Bit 9, src2 request urgent enable
//Bit 8, dst1 request urgent enable
//Bit 7:0 src1 global alpha
#define GE2D_GEN_CTRL1 (0x00a1)
#define P_GE2D_GEN_CTRL1 (volatile unsigned int *)((0x00a1 << 2) + 0xff940000)
//Bit31 alpha conversion mode in alu, 0: alpha_out = (alpha !=0) ? alpha +1 : 0;
// otherwise, alpha_out = (alpha < 128) ? alpha: alpha + 1;
//Bit30 color conversion mode in alu, 0: color_out = (color != 0) ? color +1: 0;
// otherwise, color_out = (color < 128) ? color: color + 1;
//Bit29 src1_gb_alpha_en, As = src1_gb_alpha_en ? Asr * Ag: Asr
//Bit28 dst1_color_round_mode, 0: truncate, 1: + 0.5 rounding
//Bit27 src2_color_expand_mode, 0: add 0, 1: add MSBs
//Bit26 src2_alpha_expand_mode, 0: add 0, 1: add MSBs
//Bit25 src1_color_expand_mode, 0: add 0, 1: add MSBs
//Bit24 src1_alpha_expand_mode, 0: add 0, 1: add MSBs
//Bit 23 if true, dst little endian, otherwise big endian
//Bit 22:19 dst1 color_map
// dst1_format=0 : output 8-bit;
// dst1_format=1, dst1_color_map=1: output 16-bit YCbCr 655;
// dst1_format=1, dst1_color_map=2: output 16-bit YCbCr 844;
// dst1_format=1, dst1_color_map=3: output 16-bit YCbCrA 6442;
// dst1_format=1, dst1_color_map=4: output 16-bit YCbCrA 4444;
// dst1_format=1, dst1_color_map=5: output 16-bit YCbCr 565;
// dst1_format=1, dst1_color_map=6: output 16-bit AYCbCr 4444;
// dst1_format=1, dst1_color_map=7: output 16-bit AYCbCr 1555;
// dst1_format=1, dst1_color_map=8: output 16-bit YCbCrA 4642;
// dst1_format=1, dst1_color_map=9: output 16-bit CbCr 88;
// dst1_format=1, dst1_color_map=10:output 16-bit CrCb 88;
// dst1_format=2, dst1_color_map=0: output 24-bit YCbCr 888;
// dst1_format=2, dst1_color_map=1: output 24-bit YCbCrA 5658;
// dst1_format=2, dst1_color_map=2: output 24-bit AYCbCr 8565;
// dst1_format=2, dst1_color_map=3: output 24-bit YCbCrA 6666;
// dst1_format=2, dst1_color_map=4: output 24-bit AYCbCr 6666;
// dst1_format=2, dst1_color_map=5: output 24-bit CrCbY 888;
// dst1_format=3, dst1_color_map=0: output 32-bit YCbCrA 8888;
// dst1_format=3, dst1_color_map=1: output 32-bit AYCbCr 8888;
// dst1_format=3, dst1_color_map=2: output 32-bit ACrCbY 8888;
// dst1_format=3, dst1_color_map=3: output 32-bit CrCbYA 8888.
//Bit 17:16 dst1_format, 00: 8bit, 01:16bit, 10:24bit, 11: 32bit
//Bit 15 if true, src2 little endian, otherwise big endian
//Bit 14:11 src2 color_map
// src2_format=0 : output 8-bit;
// src2_format=1, src2_color_map=1: output 16-bit YCbCr 655;
// src2_format=1, src2_color_map=2: output 16-bit YCbCr 844;
// src2_format=1, src2_color_map=3: output 16-bit YCbCrA 6442;
// src2_format=1, src2_color_map=4: output 16-bit YCbCrA 4444;
// src2_format=1, src2_color_map=5: output 16-bit YCbCr 565;
// src2_format=1, src2_color_map=6: output 16-bit AYCbCr 4444;
// src2_format=1, src2_color_map=7: output 16-bit AYCbCr 1555;
// src2_format=1, src2_color_map=8: output 16-bit YCbCrA 4642;
// src2_format=2, src2_color_map=0: output 24-bit YCbCr 888;
// src2_format=2, src2_color_map=1: output 24-bit YCbCrA 5658;
// src2_format=2, src2_color_map=2: output 24-bit AYCbCr 8565;
// src2_format=2, src2_color_map=3: output 24-bit YCbCrA 6666;
// src2_format=2, src2_color_map=4: output 24-bit AYCbCr 6666;
// src2_format=2, src2_color_map=5: output 24-bit CrCbY 888;
// src2_format=3, src2_color_map=0: output 32-bit YCbCrA 8888;
// src2_format=3, src2_color_map=1: output 32-bit AYCbCr 8888;
// src2_format=3, src2_color_map=2: output 32-bit ACrCbY 8888;
// src2_format=3, src2_color_map=3: output 32-bit CrCbYA 8888.
//Bit 9:8 src2 format, 00: 8bit, 01:16bit, 10:24bit 11: 32bit
//Bit 7 if true, src1 little endian, otherwise big endian
//Bit 6:3 src1 color_map
// src1_format=0 : output 8-bit;
// src1_format=1, src1_color_map=0: output 4:2:2 (Y0Cb0Y1Cr0);
// src1_format=1, src1_color_map=1: output 16-bit YCbCr 655;
// src1_format=1, src1_color_map=2: output 16-bit YCbCr 844;
// src1_format=1, src1_color_map=3: output 16-bit YCbCrA 6442;
// src1_format=1, src1_color_map=4: output 16-bit YCbCrA 4444;
// src1_format=1, src1_color_map=5: output 16-bit YCbCr 565;
// src1_format=1, src1_color_map=6: output 16-bit AYCbCr 4444;
// src1_format=1, src1_color_map=7: output 16-bit AYCbCr 1555;
// src1_format=1, src2_color_map=8: output 16-bit YCbCrA 4642;
// src1_format=2, src1_color_map=0: output 24-bit YCbCr 888;
// src1_format=2, src1_color_map=1: output 24-bit YCbCrA 5658;
// src1_format=2, src1_color_map=2: output 24-bit AYCbCr 8565;
// src1_format=2, src1_color_map=3: output 24-bit YCbCrA 6666;
// src1_format=2, src1_color_map=4: output 24-bit AYCbCr 6666;
// src1_format=2, src1_color_map=5: output 24-bit CrCbY 888;
// src1_format=2, src1_color_map=14:output 8-bit Y and 16-bit CbCr;
// src1_format=2, src1_color_map=15:output 8-bit Y and 16-bit CrCb;
// src1_format=3, src1_color_map=0: output 32-bit YCbCrA 8888;
// src1_format=3, src1_color_map=1: output 32-bit AYCbCr 8888;
// src1_format=3, src1_color_map=2: output 32-bit ACrCbY 8888;
// src1_format=3, src1_color_map=3: output 32-bit CrCbYA 8888.
//Bit 1:0 src1 format, 00: 8bit, 01:16bit/4:2:2, 10:24bit 11: 32bit
#define GE2D_GEN_CTRL2 (0x00a2)
#define P_GE2D_GEN_CTRL2 (volatile unsigned int *)((0x00a2 << 2) + 0xff940000)
//Bit 9 if true, all src2 data use default color
//Bit 8 if true, all src1 data use default color
//Bit 7 if true, dst x/y swap
//Bit 6 if true, dst x direction reversely read
//Bit 5 if true, dst y direction reversely read
//Bit 4 if true, src2 x direction reversely read
//Bit 3 if true, src2 y direction reversely read
//Bit 2 if true, src1 x direction reversely read
//Bit 1 if true, src1 y direction reversely read
//Bit 0 cmd write
#define GE2D_CMD_CTRL (0x00a3)
#define P_GE2D_CMD_CTRL (volatile unsigned int *)((0x00a3 << 2) + 0xff940000)
//Read only
//Bit 28:17 dst write response counter, for debug only
//Bit 16:7 ge2d_dp status, for debug only
//Bit 6 read src1 cmd ready
//Bit 5 read src2 cmd ready
//Bit 4 pre dpcmd ready
//Bit 3 ge2d dpcmd ready
//Bit 2 ge2d buffer command valid
//Bit 1 ge2d current command valid
//Bit 0 ge2d busy
#define GE2D_STATUS0 (0x00a4)
#define P_GE2D_STATUS0 (volatile unsigned int *)((0x00a4 << 2) + 0xff940000)
//
//Read only
// Bit 29:16 ge2d_dst1_status, for debug only
// Bit 15 ge2d_rd_src2 core.fifo_empty
// Bit 14 ge2d_rd_src2 core.fifo_overflow
// Bit 13:12 ge2d_rd_src2 core.req_st
// Bit 11 ge2d_rd_src2 cmd_if.cmd_err, true if cmd_format=1
// Bit 10 ge2d_rd_src2 cmd_if.cmd_st, 0=IDLE state, 1=BUSY state
// Bit 9 ge2d_rd_src1 luma_core(chroma_core).fifo_empty
// Bit 8 ge2d_rd_src1 luma_core(chroma_core).fifo_overflow
// Bit 7: 6 ge2d_rd_src1 chroma_core.req_st_cr
// Bit 5: 4 ge2d_rd_src1 chroma_core.req_st_cb
// Bit 3: 2 ge2d_rd_src1 luma_core.req_st_y
// Bit 1 ge2d_rd_src1 cmd_if.stat_read_window_err, 1=reading/clipping window setting exceed limit
// Bit 0 ge2d_rd_src1 cmd_if.cmd_st, 0=IDLE state, 1=BUSY state
#define GE2D_STATUS1 (0x00a5)
#define P_GE2D_STATUS1 (volatile unsigned int *)((0x00a5 << 2) + 0xff940000)
//SRC1 default clolor
//{Y,Cb,Cr,A}/{R,G,B,A}
#define GE2D_SRC1_DEF_COLOR (0x00a6)
#define P_GE2D_SRC1_DEF_COLOR (volatile unsigned int *)((0x00a6 << 2) + 0xff940000)
//Bit 31, SRC1 clip x start extra, if true, one more data is read for chroma
//Bit 28:16, SRC1 clip x start
//Bit 15, SRC1 clip x end extra, if true, one more data is read for chroma
//Bit 12:0, SRC1 clip x end
#define GE2D_SRC1_CLIPX_START_END (0x00a7)
#define P_GE2D_SRC1_CLIPX_START_END (volatile unsigned int *)((0x00a7 << 2) + 0xff940000)
//Bit 31, SRC1 clip y start extra, if true, one more data is read for chroma
//Bit 28:16, SRC1 clip y start
//Bit 15, SRC1 clip y end extra, if true, one more data is read for chroma
//Bit 12:0, SRC1 clip y end
#define GE2D_SRC1_CLIPY_START_END (0x00a8)
#define P_GE2D_SRC1_CLIPY_START_END (volatile unsigned int *)((0x00a8 << 2) + 0xff940000)
//Bit 31:24, SRC1 canvas address0
//Bit 23:16, SRC1 canvas address1
//Bit 15:8, SRC1 canvas address2
#define GE2D_SRC1_CANVAS (0x00a9)
#define P_GE2D_SRC1_CANVAS (volatile unsigned int *)((0x00a9 << 2) + 0xff940000)
//Bit 31, SRC1 x start extra bit1, if true, one more chroma data is read for x even start chroma data when y/c ratio = 2
// or x even/odd start chroma extra data when y/c ratio = 1
//Bit 30, SRC1 x start extra bit0, if true, one more chroma data is read for x odd start chroma data when y/c ratio = 2
//Bit 29:16, SRC1 x start, signed data
//Bit 15, SRC1 x end extra bit1, if true, one more chroma data is read for x odd end chroma data when y/c ratio = 2
// or x even/odd end chroma extra data when y/c ratio = 1
//Bit 14, SRC1 x end extra bit0, if true, one more chroma data is read for x even end chroma data when y/c ratio = 2
//Bit 13:0, SRC1 x end, signed data
#define GE2D_SRC1_X_START_END (0x00aa)
#define P_GE2D_SRC1_X_START_END (volatile unsigned int *)((0x00aa << 2) + 0xff940000)
//Bit 31, SRC1 y start extra, if true, one more chroma data is read for y even start chroma data when y/c ratio = 2
// or y even/odd start chroma extra data when y/c ratio = 1
//Bit 30, SRC1 y start extra, if true, one more chroma data is read for x odd start chroma data when y/c ratio = 2
//Bit 28:16, SRC1 y start
//Bit 15, SRC1 y end extra bit1, if true, one more chroma data is read for y odd end chroma data when y/c ratio = 2
// or y even/odd end chroma extra data when y/c ratio = 1
//Bit 14, SRC1 y end extra bit0, if true, one more chroma data is read for y even end chroma data when y/c ratio = 2
//Bit 12:0, SRC1 y end
#define GE2D_SRC1_Y_START_END (0x00ab)
#define P_GE2D_SRC1_Y_START_END (volatile unsigned int *)((0x00ab << 2) + 0xff940000)
// Bit 31: 9 Reserved
// Bit 8 RW, 0 = Write LUT, 1 = Read LUT
// Bit 7: 0 RW, lut_addr
#define GE2D_SRC1_LUT_ADDR (0x00ac)
#define P_GE2D_SRC1_LUT_ADDR (volatile unsigned int *)((0x00ac << 2) + 0xff940000)
// Bit 31:24 RW, Y or R
// Bit 23:16 RW, Cb or G
// Bit 15: 8 RW, Cr or B
// Bit 7: 0 RW, Alpha
#define GE2D_SRC1_LUT_DAT (0x00ad)
#define P_GE2D_SRC1_LUT_DAT (volatile unsigned int *)((0x00ad << 2) + 0xff940000)
//Bit 19, if true, horizontal formatter using repeat to get the pixel, otherwise using interpolation
//Bit 18, horizontal formatter en
//Bit 17, if true, vertical formatter using repeat to get the pixel, otherwise using interpolation
//Bit 16, vertical formatter en
//Bit 15:8 X direction chroma phase,
// [7:4] for x direction even start/end chroma phase when y/c ratio = 2
// or start/end even/odd chroma phase when y/c ratio = 1
// [3:0] for x direction odd start/end chroma phase only when y/c ration = 2
//Bit 7:0 Y direction chroma phase,
// [7:4] for y direction even start/end chroma phase when y/c ratio = 2
// or start/end even/odd chroma phase when y/c ratio = 1
// [3:0] for y direction odd start/end chroma phase only when y/c ration = 2
#define GE2D_SRC1_FMT_CTRL (0x00ae)
#define P_GE2D_SRC1_FMT_CTRL (volatile unsigned int *)((0x00ae << 2) + 0xff940000)
//SRC2 default clolor
//{Y,Cb,Cr,A}/{R,G,B,A}
#define GE2D_SRC2_DEF_COLOR (0x00af)
#define P_GE2D_SRC2_DEF_COLOR (volatile unsigned int *)((0x00af << 2) + 0xff940000)
//Bit 28:16, SRC2 clip x start
//Bit 12:0, SRC2 clip x end
#define GE2D_SRC2_CLIPX_START_END (0x00b0)
#define P_GE2D_SRC2_CLIPX_START_END (volatile unsigned int *)((0x00b0 << 2) + 0xff940000)
//Bit 28:16, SRC2 clip y start
//Bit 12:0, SRC2 clip y end
#define GE2D_SRC2_CLIPY_START_END (0x00b1)
#define P_GE2D_SRC2_CLIPY_START_END (volatile unsigned int *)((0x00b1 << 2) + 0xff940000)
//Bit 28:16, SRC2 x start
//Bit 12:0, SRC2 x end
#define GE2D_SRC2_X_START_END (0x00b2)
#define P_GE2D_SRC2_X_START_END (volatile unsigned int *)((0x00b2 << 2) + 0xff940000)
//Bit 28:16, SRC2 y start
//Bit 12:0, SRC2 y end
#define GE2D_SRC2_Y_START_END (0x00b3)
#define P_GE2D_SRC2_Y_START_END (volatile unsigned int *)((0x00b3 << 2) + 0xff940000)
//Bit 28:16, DST clip x start
//Bit 12:0, DST clip x end
#define GE2D_DST_CLIPX_START_END (0x00b4)
#define P_GE2D_DST_CLIPX_START_END (volatile unsigned int *)((0x00b4 << 2) + 0xff940000)
//
//Bit 28:16, DST clip y start
//Bit 12:0, DST clip y end
#define GE2D_DST_CLIPY_START_END (0x00b5)
#define P_GE2D_DST_CLIPY_START_END (volatile unsigned int *)((0x00b5 << 2) + 0xff940000)
//Bit 28:16, DST x start
//Bit 12:0, DST x end
#define GE2D_DST_X_START_END (0x00b6)
#define P_GE2D_DST_X_START_END (volatile unsigned int *)((0x00b6 << 2) + 0xff940000)
//
//Bit 28:16, DST x start
//Bit 12:0, DST x end
#define GE2D_DST_Y_START_END (0x00b7)
#define P_GE2D_DST_Y_START_END (volatile unsigned int *)((0x00b7 << 2) + 0xff940000)
//Bit 23:16 DST2 canvas address
//Bit 15:8 SRC2 canvas address
//Bit 7:0 DST1 canvas address
#define GE2D_SRC2_DST_CANVAS (0x00b8)
#define P_GE2D_SRC2_DST_CANVAS (volatile unsigned int *)((0x00b8 << 2) + 0xff940000)
//vertical scaler phase step
//Bit 28:0, 5.24 format
#define GE2D_VSC_START_PHASE_STEP (0x00b9)
#define P_GE2D_VSC_START_PHASE_STEP (volatile unsigned int *)((0x00b9 << 2) + 0xff940000)
//phase slope
//Bit 24:0, bit 24 signed bit
#define GE2D_VSC_PHASE_SLOPE (0x00ba)
#define P_GE2D_VSC_PHASE_SLOPE (volatile unsigned int *)((0x00ba << 2) + 0xff940000)
//Bit 30:29, vertical repeat line0 number
//Bit 23:0, vertical scaler initial phase
#define GE2D_VSC_INI_CTRL (0x00bb)
#define P_GE2D_VSC_INI_CTRL (volatile unsigned int *)((0x00bb << 2) + 0xff940000)
//horizontal scaler phase step
//Bit 28:0, 5.24 format
#define GE2D_HSC_START_PHASE_STEP (0x00bc)
#define P_GE2D_HSC_START_PHASE_STEP (volatile unsigned int *)((0x00bc << 2) + 0xff940000)
//phase slope
//Bit 24:0, bit 24 signed bit
#define GE2D_HSC_PHASE_SLOPE (0x00bd)
#define P_GE2D_HSC_PHASE_SLOPE (volatile unsigned int *)((0x00bd << 2) + 0xff940000)
//Bit 30:29, horizontal repeat line0 number
//Bit 23:0, horizontal scaler initial phase
#define GE2D_HSC_INI_CTRL (0x00be)
#define P_GE2D_HSC_INI_CTRL (volatile unsigned int *)((0x00be << 2) + 0xff940000)
//Bit 31:24, advance number in this round, if horizontal scaler is working on dividing mode
//Bit 23:0, horizontal scaler advance phase in this round, if horizontal scaler is working on dividing mode
#define GE2D_HSC_ADV_CTRL (0x00bf)
#define P_GE2D_HSC_ADV_CTRL (volatile unsigned int *)((0x00bf << 2) + 0xff940000)
//Bit 30, vertical nearest mode enable, must set vt_bank_length = 4
//Bit 29, horizontal nearest mode enable, must set hz_bank_length = 4
//Bit 28, horizontal scaler dividing mode enable
//Bit 27:15, horizontal dividing length, if bit 28 is enable
//Bit 14, pre horizontal scaler enable
//Bit 13, pre vertical scale enable
//Bit 12, vertical scale enable
//Bit 11, horizontal scaler enable
//Bit 9, if true, treat horizontal repeat line number(GE2D_HSC_INI_CTRL bit 30:29) as repeating line,
// otherwise using treat horizontal repeat line number as minus line number.
//Bit 8, if true, treat vertical repeat line number(GE2D_VSC_INI_CTRL bit 30:29) as repeating line,
// otherwise using treat vertical repeat line number as minus line number.
//Bit 7, if true, always use phase0 in vertical scaler
//Bit 6:4, vertical scaler bank length
//Bit 3, if true, always use phase0 in horizontal scaler
//Bit 2:0, horizontal scaler bank length
#define GE2D_SC_MISC_CTRL (0x00c0)
#define P_GE2D_SC_MISC_CTRL (volatile unsigned int *)((0x00c0 << 2) + 0xff940000)
//Read only
//vertical scaler next round integer pixel pointer, signed data
//Bit 13:0
#define GE2D_VSC_NRND_POINT (0x00c1)
#define P_GE2D_VSC_NRND_POINT (volatile unsigned int *)((0x00c1 << 2) + 0xff940000)
//Read only
//vertical scaler next round phase
//bit 23:0
#define GE2D_VSC_NRND_PHASE (0x00c2)
#define P_GE2D_VSC_NRND_PHASE (volatile unsigned int *)((0x00c2 << 2) + 0xff940000)
//Read only
//horizontal scaler next round integer pixel pointer, signed data
//Bit 13:0
#define GE2D_HSC_NRND_POINT (0x00c3)
#define P_GE2D_HSC_NRND_POINT (volatile unsigned int *)((0x00c3 << 2) + 0xff940000)
//Read only
//horizontal scaler next round phase
//bit 23:0
#define GE2D_HSC_NRND_PHASE (0x00c4)
#define P_GE2D_HSC_NRND_PHASE (volatile unsigned int *)((0x00c4 << 2) + 0xff940000)
//
//Bit 28:20, pre_offset0
//Bit 18:10, pre_offset1
//Bit 8:0, pre_offset2
#define GE2D_MATRIX_PRE_OFFSET (0x00c5)
#define P_GE2D_MATRIX_PRE_OFFSET (volatile unsigned int *)((0x00c5 << 2) + 0xff940000)
//Bit 28:16 coef00
//Bit 12:0 coef01
#define GE2D_MATRIX_COEF00_01 (0x00c6)
#define P_GE2D_MATRIX_COEF00_01 (volatile unsigned int *)((0x00c6 << 2) + 0xff940000)
//Bit 28:16 coef02
//Bit 12:0 coef10
#define GE2D_MATRIX_COEF02_10 (0x00c7)
#define P_GE2D_MATRIX_COEF02_10 (volatile unsigned int *)((0x00c7 << 2) + 0xff940000)
//Bit 28:16 coef11
//Bit 12:0 coef12
#define GE2D_MATRIX_COEF11_12 (0x00c8)
#define P_GE2D_MATRIX_COEF11_12 (volatile unsigned int *)((0x00c8 << 2) + 0xff940000)
//Bit 28:16 coef20
//Bit 12:0 coef21
#define GE2D_MATRIX_COEF20_21 (0x00c9)
#define P_GE2D_MATRIX_COEF20_21 (volatile unsigned int *)((0x00c9 << 2) + 0xff940000)
//Bit 28:16 coef22
//Bit 7 input y/cb/cr saturation enable
//Bit 0 conversion matrix enable
#define GE2D_MATRIX_COEF22_CTRL (0x00ca)
#define P_GE2D_MATRIX_COEF22_CTRL (volatile unsigned int *)((0x00ca << 2) + 0xff940000)
//Bit 28:20, offset0
//Bit 18:10, offset1
//Bit 8:0, offset2
#define GE2D_MATRIX_OFFSET (0x00cb)
#define P_GE2D_MATRIX_OFFSET (volatile unsigned int *)((0x00cb << 2) + 0xff940000)
//Bit 26:25, SRC1 color multiplier alpha selection
// if 00, Cs = Csr
// if 01, Cs = Csr * Asr * Ag (if source is not premultiplied)
// if 10, Cs = Csr * Ag (if source is premultipied)
//Bit 24 SRC2 color multiplier alpha selection
// if 0, no multiplier, Cd = Cdr, otherwise, Cd = Cdr * Ad.
//Bit 22:12 ALU color operation
// bit10:8 Blending Mode Parameter
// 3'b000: ADD Cs*Fs + Cd*Fd
// 3'b001: SUBTRACT Cs*Fs - Cd*Fd
// 3'b010: REVERSE SUBTRACT Cd*Fd - Cs*Fs
// 3'b011: MIN min(Cs*Fs, Cd*Fd)
// 3'b100: MAX max(Cs*Fs, Cd*Fd)
// 3'b101: LOGIC OP Cs op Cd
// bit7:4 Source Color Blending Factor CFs
// 4'b0000: ZERO 0
// 4'b0001: ONE 1
// 4'b0010: SRC_COLOR Cs(RGBs)
// 4'b0011: ONE_MINUS_SRC_COLOR 1 - Cs(RGBs)
// 4'b0100: DST_COLOR Cd(RGBd)
// 4'b0101: ONE_MINUS_DST_COLOR 1 - Cd(RGBd)
// 4'b0110: SRC_ALPHA As
// 4'b0111: ONE_MINUS_SRC_ALPHA 1 - As
// 4'b1000: DST_ALPHA Ad
// 4'b1001: ONE_MINUS_DST_ALPHA 1 - Ad
// 4'b1010: CONST_COLOR Cc(RGBc)
// 4'b1011: ONE_MINUS_CONST_COLOR 1 - Cc(RGBc)
// 4'b1100: CONST_ALPHA Ac
// 4'b1101: ONE_MINUS_CONST_ALPHA 1 - Ac
// 4'b1110: SRC_ALPHA_SATURATE min(As,1-Ad)
// bit3:0 dest Color Blending Factor CFd, when bit10:8 != LOGIC OP
// 4'b0000: ZERO 0
// 4'b0001: ONE 1
// 4'b0010: SRC_COLOR Cs(RGBs)
// 4'b0011: ONE_MINUS_SRC_COLOR 1 - Cs(RGBs)
// 4'b0100: DST_COLOR Cd(RGBd)
// 4'b0101: ONE_MINUS_DST_COLOR 1 - Cd(RGBd)
// 4'b0110: SRC_ALPHA As
// 4'b0111: ONE_MINUS_SRC_ALPHA 1 - As
// 4'b1000: DST_ALPHA Ad
// 4'b1001: ONE_MINUS_DST_ALPHA 1 - Ad
// 4'b1010: CONST_COLOR Cc(RGBc)
// 4'b1011: ONE_MINUS_CONST_COLOR 1 - Cc(RGBc)
// 4'b1100: CONST_ALPHA Ac
// 4'b1101: ONE_MINUS_CONST_ALPHA 1 - Ac
// 4'b1110: SRC_ALPHA_SATURATE min(As,1-Ad)
// bit3:0 logic operations, when bit10:8 == LOGIC OP
// 4'b0000: CLEAR 0
// 4'b0001: COPY s
// 4'b0010: NOOP d
// 4'b0011: SET 1
// 4'b0100: COPY_INVERT ~s
// 4'b0101: INVERT ~d
// 4'b0110: AND_REVERSE s & ~d
// 4'b0111: OR_REVERSE s | ~d
// 4'b1000: AND s & d
// 4'b1001: OR s | d
// 4'b1010: NAND ~(s & d)
// 4'b1011: NOR ~(s | d)
// 4'b1100: XOR s ^ d
// 4'b1101: EQUIV ~(s ^ d)
// 4'b1110: AND_INVERTED ~s & d
// 4'b1111: OR_INVERTED ~s | d
//Bit 10:0 ALU alpha operation
// bit10:8 Blending Equation Math Operation
// 3'b000: ADD As*Fs + Ad*Fd
// 3'b001: SUBTRACT As*Fs - Ad*Fd
// 3'b010: REVERSE SUBTRACT Ad*Fd - As*Fs
// 3'b011: MIN min(As*Fs, Ad*Fd)
// 3'b100: MAX max(As*Fs, Ad*Fd)
// 3'b101: LOGIC OP As op Ad
// bit7:4 Source alpha Blending Factor AFs
// 4'b0000 0
// 4'b0001 1
// 4'b0010 As
// 4'b0011 1 - As
// 4'b0100 Ad
// 4'b0101 1 - Ad
// 4'b0110 Ac
// 4'b0111 1 - Ac
// .... reserved
// bit3:0 Destination alpha Blending Factor AFd, when bit10:8 != LOGIC OP
// 4'b0000 0
// 4'b0001 1
// 4'b0010 As
// 4'b0011 1 - As
// 4'b0100 Ad
// 4'b0101 1 - Ad
// 4'b0110 Ac
// 4'b0111 1 - Ac
// .... reserved
// bit3:0 logic operations, when bit10:8 == LOGIC OP
// 4'b0000: CLEAR 0
// 4'b0001: COPY s
// 4'b0010: NOOP d
// 4'b0011: SET 1
// 4'b0100: COPY_INVERT ~s
// 4'b0101: INVERT ~d
// 4'b0110: AND_REVERSE s & ~d
// 4'b0111: OR_REVERSE s | ~d
// 4'b1000: AND s & d
// 4'b1001: OR s | d
// 4'b1010: NAND ~(s & d)
// 4'b1011: NOR ~(s | d)
// 4'b1100: XOR s ^ d
// 4'b1101: EQUIV ~(s ^ d)
// 4'b1110: AND_INVERTED ~s & d
// 4'b1111: OR_INVERTED ~s | d
#define GE2D_ALU_OP_CTRL (0x00cc)
#define P_GE2D_ALU_OP_CTRL (volatile unsigned int *)((0x00cc << 2) + 0xff940000)
//bit 31:0 (RGBA,YCBCRA)
#define GE2D_ALU_CONST_COLOR (0x00cd)
#define P_GE2D_ALU_CONST_COLOR (volatile unsigned int *)((0x00cd << 2) + 0xff940000)
//SRC1 Key
//31:0
#define GE2D_SRC1_KEY (0x00ce)
#define P_GE2D_SRC1_KEY (volatile unsigned int *)((0x00ce << 2) + 0xff940000)
//SRC1 Key Mask
//31:0
#define GE2D_SRC1_KEY_MASK (0x00cf)
#define P_GE2D_SRC1_KEY_MASK (volatile unsigned int *)((0x00cf << 2) + 0xff940000)
//SRC2 Key
//31:0
#define GE2D_SRC2_KEY (0x00d0)
#define P_GE2D_SRC2_KEY (volatile unsigned int *)((0x00d0 << 2) + 0xff940000)
//SRC2 Key Mask
//31:0
#define GE2D_SRC2_KEY_MASK (0x00d1)
#define P_GE2D_SRC2_KEY_MASK (volatile unsigned int *)((0x00d1 << 2) + 0xff940000)
//Destination Bit Mask
//31:0
#define GE2D_DST_BITMASK (0x00d2)
#define P_GE2D_DST_BITMASK (volatile unsigned int *)((0x00d2 << 2) + 0xff940000)
//Bit 31 DP onoff mode, 0: on_counter means how many pixels will output before ge2d turns off
// 1: on_counter means how many clocks will ge2d turn on before ge2d turns off
//Bit 30:16 DP on counter
//Bit 15 0: vd_format doesnt have onoff mode, 1: vd format has onoff mode
//Bit 14:0 DP off counter
#define GE2D_DP_ONOFF_CTRL (0x00d3)
#define P_GE2D_DP_ONOFF_CTRL (volatile unsigned int *)((0x00d3 << 2) + 0xff940000)
//Because there are many coefficients used in the vertical filter and horizontal filters,
//indirect access the coefficients of vertical filter and horizontal filter is used.
//For vertical filter, there are 33x4 coefficients
//For horizontal filter, there are 33x4 coefficients
//Bit 15 index increment, if bit9 == 1 then (0: index increase 1, 1: index increase 2) else (index increase 2)
//Bit 14 1: read coef through cbus enable, just for debug purpose in case when we wanna check the coef in ram in correct or not
//Bit 9 if true, use 9bit resolution coef, other use 8bit resolution coef
//Bit 8 type of index, 0: vertical coef
// 1: horizontal coef
//Bit 6:0 coef index
#define GE2D_SCALE_COEF_IDX (0x00d4)
#define P_GE2D_SCALE_COEF_IDX (volatile unsigned int *)((0x00d4 << 2) + 0xff940000)
//coefficients for vertical filter and horizontal filter
#define GE2D_SCALE_COEF (0x00d5)
#define P_GE2D_SCALE_COEF (volatile unsigned int *)((0x00d5 << 2) + 0xff940000)
//Bit 24 src2 alpha fill mode: together with GE2D_GEN_CTRL0[4](fill_mode), define what alpha values are used
// for the area outside the clipping window. As below:
// fill_mode=0, alpha_fill_mode=0 : use inner alpha, (or default_alpha if src data have no alpha values);
// fill_mode=0, alpha_fill_mode=1 : use outside_alpha;
// fill_mode=1, alpha_fill_mode=0 : use default_alpha;
// fill_mode=1, alpha_fill_mode=1 : use outside_alpha.
//Bit 23:16 src2 outside alpha
//Bit 8 src1 alpha fill mode, refer to src2 alpha fill mode above.
//Bit 7:0 src1 outside alpha
#define GE2D_SRC_OUTSIDE_ALPHA (0x00d6)
#define P_GE2D_SRC_OUTSIDE_ALPHA (volatile unsigned int *)((0x00d6 << 2) + 0xff940000)
//Bit 31 antiflick enable
//Bit 24 1: alpha value for the first line use repeated alpha, 0: use bit 23:16 as the first line alpha
//Bit 23:16 register value for the first line alpha when bit 24 is 1
//Bit 8 1: alpha value for the last line use repeated alpha, 0: use bit 7:0 as the last line alpha
//Bit 7:0 register value for the last line alpha when bit 8 is 1
#define GE2D_ANTIFLICK_CTRL0 (0x00d8)
#define P_GE2D_ANTIFLICK_CTRL0 (volatile unsigned int *)((0x00d8 << 2) + 0xff940000)
//Bit 25, rgb_sel, 1: antiflick RGBA, 0: antiflick YCbCrA
//Bit 24, cbcr_en, 1: also filter cbcr in case of antiflicking YCbCrA, 0: no filter on cbcr in case of antiflicking YCbCrA
//Bit 23:16, R mult coef for converting RGB to Y
//Bit 15:8, G mult coef for converting RGB to Y
//Bit 7:0, B mult coef for converting RGB to Y
//Y = (R * y_r + G * y_g + B * y_b) / 256
#define GE2D_ANTIFLICK_CTRL1 (0x00d9)
#define P_GE2D_ANTIFLICK_CTRL1 (volatile unsigned int *)((0x00d9 << 2) + 0xff940000)
//Bit 31:24, Y threhold1, when 0<Y<=th1, use filter0;
//Bit 23:16, color antiflick filter0 n3
//Bit 15:8, color antiflick filter0 n2
//Bit 7:0, color antiflick filter0 n1
//Y = (line_up * n1 + line_center * n2 + line_dn * n3) / 128
#define GE2D_ANTIFLICK_COLOR_FILT0 (0x00da)
#define P_GE2D_ANTIFLICK_COLOR_FILT0 (volatile unsigned int *)((0x00da << 2) + 0xff940000)
//Bit 31:24, Y threhold2, when th1<Y<=th2, use filter1;
//Bit 23:16, color antiflick filter1 n3
//Bit 15:8, color antiflick filter1 n2
//Bit 7:0, color antiflick filter1 n1
#define GE2D_ANTIFLICK_COLOR_FILT1 (0x00db)
#define P_GE2D_ANTIFLICK_COLOR_FILT1 (volatile unsigned int *)((0x00db << 2) + 0xff940000)
//Bit 31:24, Y threhold3, when th2<Y<=th3, use filter2; Y>th3, use filter3
//Bit 23:16, color antiflick filter2 n3
//Bit 15:8, color antiflick filter2 n2
//Bit 7:0, color antiflick filter2 n1
#define GE2D_ANTIFLICK_COLOR_FILT2 (0x00dc)
#define P_GE2D_ANTIFLICK_COLOR_FILT2 (volatile unsigned int *)((0x00dc << 2) + 0xff940000)
//Bit 23:16, color antiflick filter3 n3
//Bit 15:8, color antiflick filter3 n2
//Bit 7:0, color antiflick filter3 n1
#define GE2D_ANTIFLICK_COLOR_FILT3 (0x00dd)
#define P_GE2D_ANTIFLICK_COLOR_FILT3 (volatile unsigned int *)((0x00dd << 2) + 0xff940000)
//Bit 31:24, Alpha threhold1, when 0<Alpha<=th1, use filter0;
//Bit 23:16, Alpha antiflick filter0 n3
//Bit 15:8, Alpha antiflick filter0 n2
//Bit 7:0, Alpha antiflick filter0 n1
//Alpha = (line_up * n1 + line_center * n2 + line_dn * n3) / 128
#define GE2D_ANTIFLICK_ALPHA_FILT0 (0x00de)
#define P_GE2D_ANTIFLICK_ALPHA_FILT0 (volatile unsigned int *)((0x00de << 2) + 0xff940000)
//Bit 31:24, Alpha threhold2, when th1<Alpha<=th2, use filter1;
//Bit 23:16, Alpha antiflick filter1 n3
//Bit 15:8, Alpha antiflick filter1 n2
//Bit 7:0, Alpha antiflick filter1 n1
#define GE2D_ANTIFLICK_ALPHA_FILT1 (0x00df)
#define P_GE2D_ANTIFLICK_ALPHA_FILT1 (volatile unsigned int *)((0x00df << 2) + 0xff940000)
//Bit 31:24, Alpha threhold3, when th2<Alpha<=th3, use filter2; Alpha>th3, use filter3
//Bit 23:16, Alpha antiflick filter2 n3
//Bit 15:8, Alpha antiflick filter2 n2
//Bit 7:0, Alpha antiflick filter2 n1
#define GE2D_ANTIFLICK_ALPHA_FILT2 (0x00e0)
#define P_GE2D_ANTIFLICK_ALPHA_FILT2 (volatile unsigned int *)((0x00e0 << 2) + 0xff940000)
//Bit 23:16, Alpha antiflick filter3 n3
//Bit 15:8, Alpha antiflick filter3 n2
//Bit 7:0, Alpha antiflick filter3 n1
#define GE2D_ANTIFLICK_ALPHA_FILT3 (0x00e1)
#define P_GE2D_ANTIFLICK_ALPHA_FILT3 (volatile unsigned int *)((0x00e1 << 2) + 0xff940000)
//dout = clipto_0_255(((din + din_offset) * map_coef + ((1 << (map_sr - 1))) >> map_sr + dout_offset)
//Bit 30:22 din_offset (signed data)
//Bit 21:14 map_coef (unsigned data)
//Bit 13:10 map_sr (unsigned data)
//Bit 9:1 dout_offset (signed data)
//Bit 0 enable
#define GE2D_SRC1_RANGE_MAP_Y_CTRL (0x00e3)
#define P_GE2D_SRC1_RANGE_MAP_Y_CTRL (volatile unsigned int *)((0x00e3 << 2) + 0xff940000)
//dout = clipto_0_255(((din + din_offset) * map_coef + ((1 << (map_sr - 1))) >> map_sr + dout_offset)
//Bit 30:22 din_offset (signed data)
//Bit 21:14 map_coef (unsigned data)
//Bit 13:10 map_sr (unsigned data)
//Bit 9:1 dout_offset (signed data)
//Bit 0 enable
#define GE2D_SRC1_RANGE_MAP_CB_CTRL (0x00e4)
#define P_GE2D_SRC1_RANGE_MAP_CB_CTRL (volatile unsigned int *)((0x00e4 << 2) + 0xff940000)
//dout = clipto_0_255(((din + din_offset) * map_coef + ((1 << (map_sr - 1))) >> map_sr + dout_offset)
//Bit 30:22 din_offset (signed data)
//Bit 21:14 map_coef (unsigned data)
//Bit 13:10 map_sr (unsigned data)
//Bit 9:1 dout_offset (signed data)
//Bit 0 enable
#define GE2D_SRC1_RANGE_MAP_CR_CTRL (0x00e5)
#define P_GE2D_SRC1_RANGE_MAP_CR_CTRL (volatile unsigned int *)((0x00e5 << 2) + 0xff940000)
//Bit 21:16 src1 prearbitor burst number
//Bit 13:8 src2 prearbitor burst number
//Bit 5:0 dst prearbitor burst number
#define GE2D_ARB_BURST_NUM (0x00e6)
#define P_GE2D_ARB_BURST_NUM (volatile unsigned int *)((0x00e6 << 2) + 0xff940000)
//each 6bit ID, high 4bit are thread ID, low 2bits are the token
//Bit 21:16 src1 ID
//Bit 13:8 src2 ID
//Bit 5:0 dst ID
#define GE2D_TID_TOKEN (0x00e7)
#define P_GE2D_TID_TOKEN (volatile unsigned int *)((0x00e7 << 2) + 0xff940000)
//Bit 31:28 dst2_bytemask_val. 1-bit mask for each byte (8-bit). Applicable only if both dst_bitmask_en=1 and dst_bytemask_only=1.
//Bit 27:26, dst2 picture struct, 00: frame, 10:top, 11: bottom
//Bit 25:24, dst2 8bit mode component selection,
// 00: select Y(R), 01: Cb(G), 10: Cr(B), 11: Alpha
//Bit 22:19 dst2 color_map
// dst2_format=0 : output 8-bit;
// dst2_format=1, dst2_color_map=1: output 16-bit YCbCr 655;
// dst2_format=1, dst2_color_map=2: output 16-bit YCbCr 844;
// dst2_format=1, dst2_color_map=3: output 16-bit YCbCrA 6442;
// dst2_format=1, dst2_color_map=4: output 16-bit YCbCrA 4444;
// dst2_format=1, dst2_color_map=5: output 16-bit YCbCr 565;
// dst2_format=1, dst2_color_map=6: output 16-bit AYCbCr 4444;
// dst2_format=1, dst2_color_map=7: output 16-bit AYCbCr 1555;
// dst2_format=1, dst2_color_map=8: output 16-bit YCbCrA 4642;
// dst2_format=1, dst2_color_map=9: output 16-bit CbCr 88;
// dst2_format=1, dst2_color_map=10:output 16-bit CrCb 88;
// dst2_format=2, dst2_color_map=0: output 24-bit YCbCr 888;
// dst2_format=2, dst2_color_map=1: output 24-bit YCbCrA 5658;
// dst2_format=2, dst2_color_map=2: output 24-bit AYCbCr 8565;
// dst2_format=2, dst2_color_map=3: output 24-bit YCbCrA 6666;
// dst2_format=2, dst2_color_map=4: output 24-bit AYCbCr 6666;
// dst2_format=2, dst2_color_map=5: output 24-bit CrCbY 888;
// dst2_format=3, dst2_color_map=0: output 32-bit YCbCrA 8888;
// dst2_format=3, dst2_color_map=1: output 32-bit AYCbCr 8888;
// dst2_format=3, dst2_color_map=2: output 32-bit ACrCbY 8888;
// dst2_format=3, dst2_color_map=3: output 32-bit CrCbYA 8888.
//Bit 17:16 dst2_format, 00: 8bit, 01:16bit, 10:24bit, 11: 32bit
//Bit 15 reserved
//Bit 14 dst2_color_round_mode, 0: truncate, 1: + 0.5 rounding
//Bit 13:12, dst2_x_discard_mode. 00: no discard; 10=discard even x; 11=discard odd x. Note: x is post reverse/rotation.
//Bit 11:10, dst2_y_discard_mode. 00: no discard; 10=discard even y; 11=discard odd y. Note: y is post reverse/rotation.
//Bit 9 reserved
//Bit 8, dst2_enable. 0: disable dst2 (default); 1=enable dst2.
//Bit 7: 6 reserved
//Bit 5: 4, dst1_x_discard_mode. 00: no discard; 10=discard even x; 11=discard odd x. Note: x is post reverse/rotation.
//Bit 3: 2, dst1_y_discard_mode. 00: no discard; 10=discard even y; 11=discard odd y. Note: y is post reverse/rotation.
//Bit 1 reserved
//Bit 0, dst1_enable. 0: disable dst1; 1=enable dst1 (default).
#define GE2D_GEN_CTRL3 (0x00e8)
#define P_GE2D_GEN_CTRL3 (volatile unsigned int *)((0x00e8 << 2) + 0xff940000)
//Read only
// Bit 13:0 ge2d_dst2_status, for debug only
#define GE2D_STATUS2 (0x00e9)
#define P_GE2D_STATUS2 (volatile unsigned int *)((0x00e9 << 2) + 0xff940000)
//Bit 27:26 src1 Y fifo size control, 00: 512, 01: 256, 10: 128 11: 96
//Bit 25:24 src2 fifo size control, 00: 512, 01: 256, 10: 128 11: 96
//Bit 23:22 dst1 fifo size control, 00: 512, 01: 256, 10: 128 11: 64
//Bit 21:20 dst2 fifo size control, 00: 512, 01: 256, 10: 128 11: 64
//Bit 19:18, dst1 fifo burst control, 00: 24x64, 01: 32x64, 10: 48x64, 11:64x64
//Bit 17:16, dst2 fifo burst control, 00: 24x64, 01: 32x64, 10: 48x64, 11:64x64
//Bit 15:1, top_wrap_ctrl
//bit 0, if true, disable bug fix about the dp_out_done/scale_out_done(test1823) hang issue when scaling down ratio is high.
#define GE2D_GEN_CTRL4 (0x00ea)
#define P_GE2D_GEN_CTRL4 (volatile unsigned int *)((0x00ea << 2) + 0xff940000)
#define GE2D_GCLK_CTRL0 (0x00ef)
#define P_GE2D_GCLK_CTRL0 (volatile unsigned int *)((0x00ef << 2) + 0xff940000)
#define GE2D_GCLK_CTRL1 (0x00f0)
#define P_GE2D_GCLK_CTRL1 (volatile unsigned int *)((0x00f0 << 2) + 0xff940000)
// synopsys translate_off
// synopsys translate_on
//
// Closing file: ./ge2d_regs.h
//
// canvas.h
// ---------------------------
#define DC_CAV_LUT_DATAL (0x0012 << 2)
#define P_DC_CAV_LUT_DATAL (volatile unsigned int *)((0x0012 << 2) + 0xff638000)
#define DC_CAV_LUT_DATAH (0x0013 << 2)
#define P_DC_CAV_LUT_DATAH (volatile unsigned int *)((0x0013 << 2) + 0xff638000)
#define DC_CAV_LUT_ADDR (0x0014 << 2)
#define P_DC_CAV_LUT_ADDR (volatile unsigned int *)((0x0014 << 2) + 0xff638000)
#define DC_CAV_LUT_RDATAL (0x0015 << 2)
#define P_DC_CAV_LUT_RDATAL (volatile unsigned int *)((0x0015 << 2) + 0xff638000)
#define DC_CAV_LUT_RDATAH (0x0016 << 2)
#define P_DC_CAV_LUT_RDATAH (volatile unsigned int *)((0x0016 << 2) + 0xff638000)
#define VPU_RDARB_MODE_L1C1 (0x2790)
#define VPU_RDARB_MODE_L1C2 (0x2799)
#define VPU_RDARB_MODE_L2C1 (0x279d)
#define VPU_WRARB_MODE_L2C1 (0x27a2)
// secure_apb.h
// registers for mipi_dsi (12'h8a0 - 12'h8ff)
//========================================================================
//
// Reading file: dsi_regs.h
//
// synopsys translate_off
// synopsys translate_on
//===========================================================================
// MIPI DSI HOST CONTROLLER Registers 0x1c00 - 0x1cff
//===========================================================================
// -----------------------------------------------
// CBUS_BASE: DSI_CBUS_BASE = 0x1c
#define MIPI_DSI_REGISTER
// -----------------------------------------------
//------------------------------------------------------------------------------
// DWC IP registers: Synopsys IP, please refer to MIPI DSI HOST Databook
//------------------------------------------------------------------------------
#define MIPI_DSI_DWC_VERSION_OS 0x1c00
#define MIPI_DSI_DWC_PWR_UP_OS 0x1c01
#define MIPI_DSI_DWC_CLKMGR_CFG_OS 0x1c02
#define MIPI_DSI_DWC_DPI_VCID_OS 0x1c03
#define MIPI_DSI_DWC_DPI_COLOR_CODING_OS 0x1c04
#define MIPI_DSI_DWC_DPI_CFG_POL_OS 0x1c05
#define MIPI_DSI_DWC_DPI_LP_CMD_TIM_OS 0x1c06
#define MIPI_DSI_DWC_PCKHDL_CFG_OS 0x1c0b
#define MIPI_DSI_DWC_GEN_VCID_OS 0x1c0c
#define MIPI_DSI_DWC_MODE_CFG_OS 0x1c0d
#define MIPI_DSI_DWC_VID_MODE_CFG_OS 0x1c0e
#define MIPI_DSI_DWC_VID_PKT_SIZE_OS 0x1c0f
#define MIPI_DSI_DWC_VID_NUM_CHUNKS_OS 0x1c10
#define MIPI_DSI_DWC_VID_NULL_SIZE_OS 0x1c11
#define MIPI_DSI_DWC_VID_HSA_TIME_OS 0x1c12
#define MIPI_DSI_DWC_VID_HBP_TIME_OS 0x1c13
#define MIPI_DSI_DWC_VID_HLINE_TIME_OS 0x1c14
#define MIPI_DSI_DWC_VID_VSA_LINES_OS 0x1c15
#define MIPI_DSI_DWC_VID_VBP_LINES_OS 0x1c16
#define MIPI_DSI_DWC_VID_VFP_LINES_OS 0x1c17
#define MIPI_DSI_DWC_VID_VACTIVE_LINES_OS 0x1c18
#define MIPI_DSI_DWC_EDPI_CMD_SIZE_OS 0x1c19
#define MIPI_DSI_DWC_CMD_MODE_CFG_OS 0x1c1a
#define MIPI_DSI_DWC_GEN_HDR_OS 0x1c1b
#define MIPI_DSI_DWC_GEN_PLD_DATA_OS 0x1c1c
#define MIPI_DSI_DWC_CMD_PKT_STATUS_OS 0x1c1d
#define MIPI_DSI_DWC_TO_CNT_CFG_OS 0x1c1e
#define MIPI_DSI_DWC_HS_RD_TO_CNT_OS 0x1c1f
#define MIPI_DSI_DWC_LP_RD_TO_CNT_OS 0x1c20
#define MIPI_DSI_DWC_HS_WR_TO_CNT_OS 0x1c21
#define MIPI_DSI_DWC_LP_WR_TO_CNT_OS 0x1c22
#define MIPI_DSI_DWC_BTA_TO_CNT_OS 0x1c23
#define MIPI_DSI_DWC_SDF_3D_OS 0x1c24
#define MIPI_DSI_DWC_LPCLK_CTRL_OS 0x1c25
#define MIPI_DSI_DWC_PHY_TMR_LPCLK_CFG_OS 0x1c26
#define MIPI_DSI_DWC_PHY_TMR_CFG_OS 0x1c27
#define MIPI_DSI_DWC_PHY_RSTZ_OS 0x1c28
#define MIPI_DSI_DWC_PHY_IF_CFG_OS 0x1c29
#define MIPI_DSI_DWC_PHY_ULPS_CTRL_OS 0x1c2a
#define MIPI_DSI_DWC_PHY_TX_TRIGGERS_OS 0x1c2b
#define MIPI_DSI_DWC_PHY_STATUS_OS 0x1c2c
#define MIPI_DSI_DWC_PHY_TST_CTRL0_OS 0x1c2d
#define MIPI_DSI_DWC_PHY_TST_CTRL1_OS 0x1c2e
#define MIPI_DSI_DWC_INT_ST0_OS 0x1c2f
#define MIPI_DSI_DWC_INT_ST1_OS 0x1c30
#define MIPI_DSI_DWC_INT_MSK0_OS 0x1c31
#define MIPI_DSI_DWC_INT_MSK1_OS 0x1c32
//------------------------------------------------------------------------------
// Top-level registers: AmLogic proprietary
//------------------------------------------------------------------------------
// 31: 4 Reserved. Default 0.
// 3 RW ~tim_rst_n: 1=Assert SW reset on mipi_dsi_host_timing block. 0=Release reset. Default 1.
// 2 RW ~dpi_rst_n: 1=Assert SW reset on mipi_dsi_host_dpi block. 0=Release reset. Default 1.
// 1 RW ~intr_rst_n: 1=Assert SW reset on mipi_dsi_host_intr block. 0=Release reset. Default 1.
// 0 RW ~dwc_rst_n: 1=Assert SW reset on IP core. 0=Release reset. Default 1.
#define MIPI_DSI_TOP_SW_RESET 0x1cf0
// 31: 5 Reserved. Default 0.
// 4 RW manual_edpihalt: 1=Manual suspend VencL; 0=do not suspend VencL. Default 0.
// 3 RW auto_edpihalt_en: 1=Enable IP's edpihalt signal to suspend VencL; 0=IP's edpihalt signal does not affect VencL. Default 0.
// 2 RW clock_freerun: Apply to auto-clock gate only. Default 0.
// 0=Default, use auto-clock gating to save power;
// 1=use free-run clock, disable auto-clock gating, for debug mode.
// 1 RW enable_pixclk: A manual clock gate option, due to DWC IP does not have auto-clock gating. 1=Enable pixclk. Default 0.
// 0 RW enable_sysclk: A manual clock gate option, due to DWC IP does not have auto-clock gating. 1=Enable sysclk. Default 0.
#define MIPI_DSI_TOP_CLK_CNTL 0x1cf1
// 31:27 Reserved. Default 0.
// 26 RW de_dpi_pol: 1= Invert DE polarity from mipi_dsi_host_dpi. Default 0.
// 25 RW hsync_dpi_pol: 1= Invert HS polarity from mipi_dsi_host_dpi. Default 0.
// 24 RW vsync_dpi_pol: 1= Invert VS polarity from mipi_dsi_host_dpi. Default 0.
// 23:20 RW dpi_color_mode: Define DPI pixel format. Default 0.
// 0=16-bit RGB565 config 1;
// 1=16-bit RGB565 config 2;
// 2=16-bit RGB565 config 3;
// 3=18-bit RGB666 config 1;
// 4=18-bit RGB666 config 2;
// 5=24-bit RGB888;
// 6=20-bit YCbCr 4:2:2;
// 7=24-bit YCbCr 4:2:2;
// 8=16-bit YCbCr 4:2:2;
// 9=30-bit RGB;
// 10=36-bit RGB;
// 11=12-bit YCbCr 4:2:0.
// 19 Reserved. Default 0.
// 18:16 RW in_color_mode: Define VENC data width. Default 0.
// 0=30-bit pixel;
// 1=24-bit pixel;
// 2=18-bit pixel, RGB666;
// 3=16-bit pixel, RGB565.
// 15:14 RW chroma_subsample: Define method of chroma subsampling. Default 0.
// Applicable to YUV422 or YUV420 only.
// 0=Use even pixel's chroma;
// 1=Use odd pixel's chroma;
// 2=Use averaged value between even and odd pair.
// 13:12 RW comp2_sel: Select which component to be Cr or B: 0=comp0; 1=comp1; 2=comp2. Default 2.
// 11:10 RW comp1_sel: Select which component to be Cb or G: 0=comp0; 1=comp1; 2=comp2. Default 1.
// 9: 8 RW comp0_sel: Select which component to be Y or R: 0=comp0; 1=comp1; 2=comp2. Default 0.
// 7 Reserved. Default 0.
// 6 RW de_venc_pol: 1= Invert DE polarity from VENC. Default 0.
// 5 RW hsync_venc_pol: 1= Invert HS polarity from VENC. Default 0.
// 4 RW vsync_venc_pol: 1= Invert VS polarity from VENC. Default 0.
// 3 RW dpicolorm: Signal to IP. Default 0.
// 2 RW dpishutdn: Signal to IP. Default 0.
// 1 Reserved. Default 0.
// 0 Reserved. Default 0.
#define MIPI_DSI_TOP_CNTL 0x1cf2
// 31:16 Reserved. Default 0.
// 15: 8 RW suspend_frame_rate: Define rate of timed-suspend. Default 0.
// 0=Execute suspend every frame; 1=Every other frame; ...; 255=Every 256 frame.
// 7: 3 Reserved. Default 0.
// 2 RW timed_suspend_en: 1=Enable timed suspend VencL. 0=Disable timed suspend. Default 0.
// 1 RW manual_suspend_en: 1=Enable manual suspend VencL. 1=Cancel manual suspend VencL. Default 0.
// 0 RW suspend_on_edpihalt:1=Enable IP's edpihalt signal to suspend VencL; 0=IP's edpihalt signal does not affect VencL. Default 1.
#define MIPI_DSI_TOP_SUSPEND_CNTL 0x1cf3
// 31:29 Reserved. Default 0.
// 28:16 RW suspend_line_end: Define timed-suspend region. Suspend from [pix_start,line_start] to [pix_end,line_end]. Default 0.
// 15:13 Reserved. Default 0.
// 12: 0 RW suspend_line_start: Define timed-suspend region. Suspend from [pix_start,line_start] to [pix_end,line_end]. Default 0.
#define MIPI_DSI_TOP_SUSPEND_LINE 0x1cf4
// 31:29 Reserved. Default 0.
// 28:16 RW suspend_pix_end: Define timed-suspend region. Suspend from [pix_start,line_start] to [pix_end,line_end]. Default 0.
// 15:13 Reserved. Default 0.
// 12: 0 RW suspend_pix_start: Define timed-suspend region. Suspend from [pix_start,line_start] to [pix_end,line_end]. Default 0.
#define MIPI_DSI_TOP_SUSPEND_PIX 0x1cf5
// 31:20 Reserved. Default 0.
// 19:10 RW meas_vsync: Control on measuring Host Controller's vsync. Default 0.
// [ 19] meas_en: 1=Enable measurement
// [ 18] accum_meas_en: 0=meas_count is cleared at the end of each measure;
// 1=meas_count is accumulated at the end of each measure.
// [17:10] vsync_span: Define the duration of a measure is to last for how many Vsyncs.
// 9: 0 RW meas_edpite: Control on measuring Display Slave's edpite. Default 0.
// [ 9] meas_en: 1=Enable measurement
// [ 8] accum_meas_en: 0=meas_count is cleared at the end of each measure;
// 1=meas_count is accumulated at the end of each measure.
// [ 7: 0] edpite_span: Define the duration of a measure is to last for how many edpite.
#define MIPI_DSI_TOP_MEAS_CNTL 0x1cf6
// 31 R stat_edpihalt: status of edpihalt signal from IP. Default 0.
// 30:29 Reserved. Default 0.
// 28:16 R stat_te_line: Snapshot of Host's line position at edpite. Default 0.
// 15:13 Reserved. Default 0.
// 12: 0 R stat_te_pix: Snapshot of Host's pixel position at edpite. Default 0.
#define MIPI_DSI_TOP_STAT 0x1cf7
// To measure display slave's frame rate, we can use a reference clock to measure the duration of one of more edpite pulse(s).
// Measurement control is by register MIPI_DSI_TOP_MEAS_CNTL bit[9:0].
// Reference clock comes from clk_rst_tst.cts_dsi_meas_clk, and is defined by HIU register HHI_VDIN_MEAS_CLK_CNTL bit[23:12].
// Mesurement result is in MIPI_DSI_TOP_MEAS_STAT_TE0 and MIPI_DSI_TOP_MEAS_STAT_TE1, as below:
// edpite_meas_count[47:0]: Number of reference clock cycles counted during one measure period (non-incremental measure), or
// during all measure periods so far (incremental measure).
// edpite_meas_count_n[3:0]:Number of measure periods has been done. Number can wrap over.
//
// 31: 0 R edpite_meas_count[31:0]. Default 0.
#define MIPI_DSI_TOP_MEAS_STAT_TE0 0x1cf8
// 19:16 R edpite_meas_count_n. Default 0.
// 15: 0 R edpite_meas_count[47:32]. Default 0.
#define MIPI_DSI_TOP_MEAS_STAT_TE1 0x1cf9
// To measure Host's frame rate, we can use a reference clock to measure the duration of one of more Vsync pulse(s).
// Measurement control is by register MIPI_DSI_TOP_MEAS_CNTL bit[19:10].
// Reference clock comes from clk_rst_tst.cts_dsi_meas_clk, and is defined by HIU register HHI_VDIN_MEAS_CLK_CNTL bit[23:12].
// Mesurement result is in MIPI_DSI_TOP_MEAS_STAT_VS0 and MIPI_DSI_TOP_MEAS_STAT_VS1, as below:
// vsync_meas_count[47:0]: Number of reference clock cycles counted during one measure period (non-incremental measure), or
// during all measure periods so far (incremental measure).
// vsync_meas_count_n[3:0]: Number of measure periods has been done. Number can wrap over.
//
// 31: 0 R vsync_meas_count[31:0]. Default 0.
#define MIPI_DSI_TOP_MEAS_STAT_VS0 0x1cfa
// 19:16 R vsync_meas_count_n. Default 0.
// 15: 0 R vsync_meas_count[47:32]. Default 0.
#define MIPI_DSI_TOP_MEAS_STAT_VS1 0x1cfb
// 31:16 RW intr_stat/clr. For each bit, read as this interrupt level status, write 1 to clear. Default 0.
// Note: To clear the interrupt level, simply write 1 to the specific bit, no need to write 0 afterwards.
// [31:22] Reserved
// [ 21] stat/clr of EOF interrupt
// [ 20] stat/clr of de_fall interrupt
// [ 19] stat/clr of de_rise interrupt
// [ 18] stat/clr of vs_fall interrupt
// [ 17] stat/clr of vs_rise interrupt
// [ 16] stat/clr of dwc_edpite interrupt
// 15: 0 RW intr_enable. For each bit, 1=enable this interrupt, 0=disable. Default 0.
// [15: 6] Reserved
// [ 5] EOF (End_Of_Field) interrupt
// [ 4] de_fall interrupt
// [ 3] de_rise interrupt
// [ 2] vs_fall interrupt
// [ 1] vs_rise interrupt
// [ 0] dwc_edpite interrupt
#define MIPI_DSI_TOP_INTR_CNTL_STAT 0x1cfc
// 31: 2 Reserved. Default 0.
// 1: 0 RW mem_pd. Default 3.
#define MIPI_DSI_TOP_MEM_PD 0x1cfd
// synopsys translate_off
// synopsys translate_on
//
// Closing file: dsi_regs.h