From 102a0743326a03cd1a1202ceda21e175b7d3575c Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Tue, 20 Feb 2024 01:20:52 +0000 Subject: [PATCH] add new system file --- kernel/drivers/video/rockchip/rga/rga_reg_info.h | 932 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 466 insertions(+), 466 deletions(-) diff --git a/kernel/drivers/video/rockchip/rga/rga_reg_info.h b/kernel/drivers/video/rockchip/rga/rga_reg_info.h index 565e8f7..8edbd5c 100644 --- a/kernel/drivers/video/rockchip/rga/rga_reg_info.h +++ b/kernel/drivers/video/rockchip/rga/rga_reg_info.h @@ -1,467 +1,467 @@ /* SPDX-License-Identifier: GPL-2.0 */ -#ifndef __REG_INFO_H__ -#define __REG_INFO_H__ - - -//#include "chip_register.h" - -//#include "rga_struct.h" -#include "rga.h" - -#ifndef MIN -#define MIN(X, Y) ((X)<(Y)?(X):(Y)) -#endif - -#ifndef MAX -#define MAX(X, Y) ((X)>(Y)?(X):(Y)) -#endif - -#ifndef ABS -#define ABS(X) (((X) < 0) ? (-(X)) : (X)) -#endif - -#ifndef CLIP -#define CLIP(x, a, b) ((x) < (a)) ? (a) : (((x) > (b)) ? (b) : (x)) -#endif - -//RGA register map - -//General Registers -#define rRGA_SYS_CTRL (*(volatile uint32_t *)(RGA_BASE + RGA_SYS_CTRL)) -#define rRGA_CMD_CTRL (*(volatile uint32_t *)(RGA_BASE + RGA_CMD_CTRL)) -#define rRGA_CMD_ADDR (*(volatile uint32_t *)(RGA_BASE + RGA_CMD_ADDR)) -#define rRGA_STATUS (*(volatile uint32_t *)(RGA_BASE + RGA_STATUS)) -#define rRGA_INT (*(volatile uint32_t *)(RGA_BASE + RGA_INT)) -#define rRGA_AXI_ID (*(volatile uint32_t *)(RGA_BASE + RGA_AXI_ID)) -#define rRGA_MMU_STA_CTRL (*(volatile uint32_t *)(RGA_BASE + RGA_MMU_STA_CTRL)) -#define rRGA_MMU_STA (*(volatile uint32_t *)(RGA_BASE + RGA_MMU_STA)) - -//Command code start -#define rRGA_MODE_CTRL (*(volatile uint32_t *)(RGA_BASE + RGA_MODE_CTRL)) - -//Source Image Registers -#define rRGA_SRC_Y_MST (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_Y_MST)) -#define rRGA_SRC_CB_MST (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_CB_MST)) -#define rRGA_MASK_READ_MST (*(volatile uint32_t *)(RGA_BASE + RGA_MASK_READ_MST)) //repeat -#define rRGA_SRC_CR_MST (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_CR_MST)) -#define rRGA_SRC_VIR_INFO (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_VIR_INFO)) -#define rRGA_SRC_ACT_INFO (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_ACT_INFO)) -#define rRGA_SRC_X_PARA (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_X_PARA)) -#define rRGA_SRC_Y_PARA (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_Y_PARA)) -#define rRGA_SRC_TILE_XINFO (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_TILE_XINFO)) -#define rRGA_SRC_TILE_YINFO (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_TILE_YINFO)) -#define rRGA_SRC_TILE_H_INCR (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_TILE_H_INCR)) -#define rRGA_SRC_TILE_V_INCR (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_TILE_V_INCR)) -#define rRGA_SRC_TILE_OFFSETX (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_TILE_OFFSETX)) -#define rRGA_SRC_TILE_OFFSETY (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_TILE_OFFSETY)) -#define rRGA_SRC_BG_COLOR (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_BG_COLOR)) -#define rRGA_SRC_FG_COLOR (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_FG_COLOR)) -#define rRGA_LINE_DRAWING_COLOR (*(volatile uint32_t *)(RGA_BASE + RGA_LINE_DRAWING_COLOR)) //repeat -#define rRGA_SRC_TR_COLOR0 (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_TR_COLOR0)) -#define rRGA_CP_GR_A (*(volatile uint32_t *)(RGA_BASE + RGA_CP_GR_A)) //repeat -#define rRGA_SRC_TR_COLOR1 (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_TR_COLOR1)) -#define rRGA_CP_GR_B (*(volatile uint32_t *)(RGA_BASE + RGA_CP_GR_B)) //repeat - -#define rRGA_LINE_DRAW (*(volatile uint32_t *)(RGA_BASE + RGA_LINE_DRAW)) -#define rRGA_PAT_START_POINT (*(volatile uint32_t *)(RGA_BASE + RGA_PAT_START_POINT)) //repeat - -//Destination Image Registers -#define rRGA_DST_MST (*(volatile uint32_t *)(RGA_BASE + RGA_DST_MST)) -#define rRGA_LUT_MST (*(volatile uint32_t *)(RGA_BASE + RGA_LUT_MST)) //repeat -#define rRGA_PAT_MST (*(volatile uint32_t *)(RGA_BASE + RGA_PAT_MST)) //repeat -#define rRGA_LINE_DRAWING_MST (*(volatile uint32_t *)(RGA_BASE + RGA_LINE_DRAWING_MST)) //repeat - -#define rRGA_DST_VIR_INFO (*(volatile uint32_t *)(RGA_BASE + RGA_DST_VIR_INFO)) - -#define rRGA_DST_CTR_INFO (*(volatile uint32_t *)(RGA_BASE + RGA_DST_CTR_INFO)) -#define rRGA_LINE_DRAW_XY_INFO (*(volatile uint32_t *)(RGA_BASE + RGA_LINE_DRAW_XY_INFO)) //repeat - -//Alpha/ROP Registers -#define rRGA_ALPHA_CON (*(volatile uint32_t *)(RGA_BASE + RGA_ALPHA_CON)) -#define rRGA_FADING_CON (*(volatile uint32_t *)(RGA_BASE + RGA_FADING_CON)) - -#define rRGA_PAT_CON (*(volatile uint32_t *)(RGA_BASE + RGA_PAT_CON)) -#define rRGA_DST_VIR_WIDTH_PIX (*(volatile uint32_t *)(RGA_BASE + RGA_DST_VIR_WIDTH_PIX)) //repeat - -#define rRGA_ROP_CON0 (*(volatile uint32_t *)(RGA_BASE + RGA_ROP_CON0)) -#define rRGA_CP_GR_G (*(volatile uint32_t *)(RGA_BASE + RGA_CP_GR_G)) //repeat -#define rRGA_PRESCL_CB_MST (*(volatile uint32_t *)(RGA_BASE + RGA_PRESCL_CB_MST)) //repeat - -#define rRGA_ROP_CON1 (*(volatile uint32_t *)(RGA_BASE + RGA_ROP_CON1)) -#define rRGA_CP_GR_R (*(volatile uint32_t *)(RGA_BASE + RGA_CP_GR_R)) //repeat -#define rRGA_PRESCL_CR_MST (*(volatile uint32_t *)(RGA_BASE + RGA_PRESCL_CR_MST)) //repeat - -//MMU Register -#define rRGA_MMU_CTRL (*(volatile uint32_t *)(RGA_BASE + RGA_MMU_CTRL)) - - - - -//----------------------------------------------------------------- -//reg detail definition -//----------------------------------------------------------------- -/*RGA_SYS_CTRL*/ -#define m_RGA_SYS_CTRL_CMD_MODE ( 1<<2 ) -#define m_RGA_SYS_CTRL_OP_ST_SLV ( 1<<1 ) -#define m_RGA_sys_CTRL_SOFT_RESET ( 1<<0 ) - -#define s_RGA_SYS_CTRL_CMD_MODE(x) ( (x&0x1)<<2 ) -#define s_RGA_SYS_CTRL_OP_ST_SLV(x) ( (x&0x1)<<1 ) -#define s_RGA_sys_CTRL_SOFT_RESET(x) ( (x&0x1)<<0 ) - - -/*RGA_CMD_CTRL*/ -#define m_RGA_CMD_CTRL_CMD_INCR_NUM ( 0x3ff<<3 ) -#define m_RGA_CMD_CTRL_CMD_STOP_MODE ( 1<<2 ) -#define m_RGA_CMD_CTRL_CMD_INCR_VALID ( 1<<1 ) -#define m_RGA_CMD_CTRL_CMD_LINE_FET_ST ( 1<<0 ) - -#define s_RGA_CMD_CTRL_CMD_INCR_NUM(x) ( (x&0x3ff)<<3 ) -#define s_RGA_CMD_CTRL_CMD_STOP_MODE(x) ( (x&0x1)<<2 ) -#define s_RGA_CMD_CTRL_CMD_INCR_VALID(x) ( (x&0x1)<<1 ) -#define s_RGA_CMD_CTRL_CMD_LINE_FET_ST(x) ( (x*0x1)<<0 ) - - -/*RGA_STATUS*/ -#define m_RGA_CMD_STATUS_CMD_TOTAL_NUM ( 0xfff<<20 ) -#define m_RGA_CMD_STATUS_NOW_CMD_NUM ( 0xfff<<8 ) -#define m_RGA_CMD_STATUS_ENGINE_STATUS ( 1<<0 ) - - -/*RGA_INT*/ -#define m_RGA_INT_ALL_CMD_DONE_INT_EN ( 1<<10 ) -#define m_RGA_INT_MMU_INT_EN ( 1<<9 ) -#define m_RGA_INT_ERROR_INT_EN ( 1<<8 ) -#define m_RGA_INT_NOW_CMD_DONE_INT_CLEAR ( 1<<7 ) -#define m_RGA_INT_ALL_CMD_DONE_INT_CLEAR ( 1<<6 ) -#define m_RGA_INT_MMU_INT_CLEAR ( 1<<5 ) -#define m_RGA_INT_ERROR_INT_CLEAR ( 1<<4 ) -#define m_RGA_INT_NOW_CMD_DONE_INT_FLAG ( 1<<3 ) -#define m_RGA_INT_ALL_CMD_DONE_INT_FLAG ( 1<<2 ) -#define m_RGA_INT_MMU_INT_FLAG ( 1<<1 ) -#define m_RGA_INT_ERROR_INT_FLAG ( 1<<0 ) - -#define s_RGA_INT_ALL_CMD_DONE_INT_EN(x) ( (x&0x1)<<10 ) -#define s_RGA_INT_MMU_INT_EN(x) ( (x&0x1)<<9 ) -#define s_RGA_INT_ERROR_INT_EN(x) ( (x&0x1)<<8 ) -#define s_RGA_INT_NOW_CMD_DONE_INT_CLEAR(x) ( (x&0x1)<<7 ) -#define s_RGA_INT_ALL_CMD_DONE_INT_CLEAR(x) ( (x&0x1)<<6 ) -#define s_RGA_INT_MMU_INT_CLEAR(x) ( (x&0x1)<<5 ) -#define s_RGA_INT_ERROR_INT_CLEAR(x) ( (x&0x1)<<4 ) - - -/*RGA_AXI_ID*/ -#define m_RGA_AXI_ID_MMU_READ ( 3<<30 ) -#define m_RGA_AXI_ID_MMU_WRITE ( 3<<28 ) -#define m_RGA_AXI_ID_MASK_READ ( 0xf<<24 ) -#define m_RGA_AXI_ID_CMD_FET ( 0xf<<20 ) -#define m_RGA_AXI_ID_DST_WRITE ( 0xf<<16 ) -#define m_RGA_AXI_ID_DST_READ ( 0xf<<12 ) -#define m_RGA_AXI_ID_SRC_CR_READ ( 0xf<<8 ) -#define m_RGA_AXI_ID_SRC_CB_READ ( 0xf<<4 ) -#define m_RGA_AXI_ID_SRC_Y_READ ( 0xf<<0 ) - -#define s_RGA_AXI_ID_MMU_READ(x) ( (x&0x3)<<30 ) -#define s_RGA_AXI_ID_MMU_WRITE(x) ( (x&0x3)<<28 ) -#define s_RGA_AXI_ID_MASK_READ(x) ( (x&0xf)<<24 ) -#define s_RGA_AXI_ID_CMD_FET(x) ( (x&0xf)<<20 ) -#define s_RGA_AXI_ID_DST_WRITE(x) ( (x&0xf)<<16 ) -#define s_RGA_AXI_ID_DST_READ(x) ( (x&0xf)<<12 ) -#define s_RGA_AXI_ID_SRC_CR_READ(x) ( (x&0xf)<<8 ) -#define s_RGA_AXI_ID_SRC_CB_READ(x) ( (x&0xf)<<4 ) -#define s_RGA_AXI_ID_SRC_Y_READ(x) ( (x&0xf)<<0 ) - - -/*RGA_MMU_STA_CTRL*/ -#define m_RGA_MMU_STA_CTRL_TLB_STA_CLEAR ( 1<<3 ) -#define m_RGA_MMU_STA_CTRL_TLB_STA_RESUME ( 1<<2 ) -#define m_RGA_MMU_STA_CTRL_TLB_STA_PAUSE ( 1<<1 ) -#define m_RGA_MMU_STA_CTRL_TLB_STA_EN ( 1<<0 ) - -#define s_RGA_MMU_STA_CTRL_TLB_STA_CLEAR(x) ( (x&0x1)<<3 ) -#define s_RGA_MMU_STA_CTRL_TLB_STA_RESUME(x) ( (x&0x1)<<2 ) -#define s_RGA_MMU_STA_CTRL_TLB_STA_PAUSE(x) ( (x&0x1)<<1 ) -#define s_RGA_MMU_STA_CTRL_TLB_STA_EN(x) ( (x&0x1)<<0 ) - - - -/* RGA_MODE_CTRL */ -#define m_RGA_MODE_CTRL_2D_RENDER_MODE ( 7<<0 ) -#define m_RGA_MODE_CTRL_SRC_RGB_PACK ( 1<<3 ) -#define m_RGA_MODE_CTRL_SRC_FORMAT ( 15<<4 ) -#define m_RGA_MODE_CTRL_SRC_RB_SWAP ( 1<<8 ) -#define m_RGA_MODE_CTRL_SRC_ALPHA_SWAP ( 1<<9 ) -#define m_RGA_MODE_CTRL_SRC_UV_SWAP_MODE ( 1<<10 ) -#define m_RGA_MODE_CTRL_YUV2RGB_CON_MODE ( 3<<11 ) -#define m_RGA_MODE_CTRL_SRC_TRANS_MODE (0x1f<<13 ) -#define m_RGA_MODE_CTRL_SRC_TR_MODE ( 1<<13 ) -#define m_RGA_MODE_CTRL_SRC_TR_R_EN ( 1<<14 ) -#define m_RGA_MODE_CTRL_SRC_TR_G_EN ( 1<<15 ) -#define m_RGA_MODE_CTRL_SRC_TR_B_EN ( 1<<16 ) -#define m_RGA_MODE_CTRL_SRC_TR_A_EN ( 1<<17 ) -#define m_RGA_MODE_CTRL_ROTATE_MODE ( 3<<18 ) -#define m_RGA_MODE_CTRL_SCALE_MODE ( 3<<20 ) -#define m_RGA_MODE_CTRL_PAT_SEL ( 1<<22 ) -#define m_RGA_MODE_CTRL_DST_FORMAT ( 3<<23 ) -#define m_RGA_MODE_CTRL_DST_RGB_PACK ( 1<<25 ) -#define m_RGA_MODE_CTRL_DST_RB_SWAP ( 1<<26 ) -#define m_RGA_MODE_CTRL_DST_ALPHA_SWAP ( 1<<27 ) -#define m_RGA_MODE_CTRL_LUT_ENDIAN_MODE ( 1<<28 ) -#define m_RGA_MODE_CTRL_CMD_INT_ENABLE ( 1<<29 ) -#define m_RGA_MODE_CTRL_ZERO_MODE_ENABLE ( 1<<30 ) -#define m_RGA_MODE_CTRL_DST_ALPHA_ENABLE ( 1<<30 ) - - - -#define s_RGA_MODE_CTRL_2D_RENDER_MODE(x) ( (x&0x7)<<0 ) -#define s_RGA_MODE_CTRL_SRC_RGB_PACK(x) ( (x&0x1)<<3 ) -#define s_RGA_MODE_CTRL_SRC_FORMAT(x) ( (x&0xf)<<4 ) -#define s_RGA_MODE_CTRL_SRC_RB_SWAP(x) ( (x&0x1)<<8 ) -#define s_RGA_MODE_CTRL_SRC_ALPHA_SWAP(x) ( (x&0x1)<<9 ) -#define s_RGA_MODE_CTRL_SRC_UV_SWAP_MODE(x) ( (x&0x1)<<10 ) -#define s_RGA_MODE_CTRL_YUV2RGB_CON_MODE(x) ( (x&0x3)<<11 ) -#define s_RGA_MODE_CTRL_SRC_TRANS_MODE(x) ( (x&0x1f)<<13 ) -#define s_RGA_MODE_CTRL_SRC_TR_MODE(x) ( (x&0x1)<<13 ) -#define s_RGA_MODE_CTRL_SRC_TR_R_EN(x) ( (x&0x1)<<14 ) -#define s_RGA_MODE_CTRL_SRC_TR_G_EN(x) ( (x&0x1)<<15 ) -#define s_RGA_MODE_CTRL_SRC_TR_B_EN(x) ( (x&0x1)<<16 ) -#define s_RGA_MODE_CTRL_SRC_TR_A_EN(x) ( (x&0x1)<<17 ) -#define s_RGA_MODE_CTRL_ROTATE_MODE(x) ( (x&0x3)<<18 ) -#define s_RGA_MODE_CTRL_SCALE_MODE(x) ( (x&0x3)<<20 ) -#define s_RGA_MODE_CTRL_PAT_SEL(x) ( (x&0x1)<<22 ) -#define s_RGA_MODE_CTRL_DST_FORMAT(x) ( (x&0x3)<<23 ) -#define s_RGA_MODE_CTRL_DST_RGB_PACK(x) ( (x&0x1)<<25 ) -#define s_RGA_MODE_CTRL_DST_RB_SWAP(x) ( (x&0x1)<<26 ) -#define s_RGA_MODE_CTRL_DST_ALPHA_SWAP(x) ( (x&0x1)<<27 ) -#define s_RGA_MODE_CTRL_LUT_ENDIAN_MODE(x) ( (x&0x1)<<28 ) -#define s_RGA_MODE_CTRL_CMD_INT_ENABLE(x) ( (x&0x1)<<29 ) -#define s_RGA_MODE_CTRL_ZERO_MODE_ENABLE(x) ( (x&0x1)<<30 ) -#define s_RGA_MODE_CTRL_DST_ALPHA_ENABLE(x) ( (x&0x1)<<31 ) - - - -/* RGA_LINE_DRAW */ -#define m_RGA_LINE_DRAW_MAJOR_WIDTH ( 0x7ff<<0 ) -#define m_RGA_LINE_DRAW_LINE_DIRECTION ( 0x1<<11) -#define m_RGA_LINE_DRAW_LINE_WIDTH ( 0xf<<12) -#define m_RGA_LINE_DRAW_INCR_VALUE ( 0xfff<<16) -#define m_RGA_LINE_DRAW_DIR_MAJOR ( 0x1<<28) -#define m_RGA_LINE_DRAW_DIR_SEMI_MAJOR ( 0x1<<29) -#define m_RGA_LINE_DRAW_LAST_POINT ( 0x1<<30) -#define m_RGA_LINE_DRAW_ANTI_ALISING ( 0x1<<31) - -#define s_RGA_LINE_DRAW_MAJOR_WIDTH(x) (((x)&0x7ff)<<0 ) -#define s_RGA_LINE_DRAW_LINE_DIRECTION(x) ( ((x)&0x1)<<11) -#define s_RGA_LINE_DRAW_LINE_WIDTH(x) ( ((x)&0xf)<<12) -#define s_RGA_LINE_DRAW_INCR_VALUE(x) (((x)&0xfff)<<16) -#define s_RGA_LINE_DRAW_DIR_MAJOR(x) ( ((x)&0x1)<<28) -#define s_RGA_LINE_DRAW_DIR_SEMI_MAJOR(x) ( ((x)&0x1)<<29) -#define s_RGA_LINE_DRAW_LAST_POINT(x) ( ((x)&0x1)<<30) -#define s_RGA_LINE_DRAW_ANTI_ALISING(x) ( ((x)&0x1)<<31) - - -/* RGA_ALPHA_CON */ -#define m_RGA_ALPHA_CON_ENABLE ( 0x1<<0 ) -#define m_RGA_ALPHA_CON_A_OR_R_SEL ( 0x1<<1 ) -#define m_RGA_ALPHA_CON_ALPHA_MODE ( 0x3<<2 ) -#define m_RGA_ALPHA_CON_PD_MODE ( 0xf<<4 ) -#define m_RGA_ALPHA_CON_SET_CONSTANT_VALUE (0xff<<8 ) -#define m_RGA_ALPHA_CON_PD_M_SEL ( 0x1<<16) -#define m_RGA_ALPHA_CON_FADING_ENABLE ( 0x1<<17) -#define m_RGA_ALPHA_CON_ROP_MODE_SEL ( 0x3<<18) -#define m_RGA_ALPHA_CON_CAL_MODE_SEL ( 0x1<<28) -#define m_RGA_ALPHA_CON_DITHER_ENABLE ( 0x1<<29) -#define m_RGA_ALPHA_CON_GRADIENT_CAL_MODE ( 0x1<<30) -#define m_RGA_ALPHA_CON_AA_SEL ( 0x1<<31) - -#define s_RGA_ALPHA_CON_ENABLE(x) ( (x&0x1)<<0 ) -#define s_RGA_ALPHA_CON_A_OR_R_SEL(x) ( (x&0x1)<<1 ) -#define s_RGA_ALPHA_CON_ALPHA_MODE(x) ( (x&0x3)<<2 ) -#define s_RGA_ALPHA_CON_PD_MODE(x) ( (x&0xf)<<4 ) -#define s_RGA_ALPHA_CON_SET_CONSTANT_VALUE(x) ((x&0xff)<<8 ) -#define s_RGA_ALPHA_CON_PD_M_SEL(x) ( (x&0x1)<<16) -#define s_RGA_ALPHA_CON_FADING_ENABLE(x) ( (x&0x1)<<17) -#define s_RGA_ALPHA_CON_ROP_MODE_SEL(x) ( (x&0x3)<<18) -#define s_RGA_ALPHA_CON_CAL_MODE_SEL(x) ( (x&0x1)<<28) -#define s_RGA_ALPHA_CON_DITHER_ENABLE(x) ( (x&0x1)<<29) -#define s_RGA_ALPHA_CON_GRADIENT_CAL_MODE(x) ( (x&0x1)<<30) -#define s_RGA_ALPHA_CON_AA_SEL(x) ( (x&0x1)<<31) - - -/* blur sharp mode */ -#define m_RGA_BLUR_SHARP_FILTER_MODE ( 0x1<<25 ) -#define m_RGA_BLUR_SHARP_FILTER_TYPE ( 0x3<<26 ) - -#define s_RGA_BLUR_SHARP_FILTER_MODE(x) ( (x&0x1)<<25 ) -#define s_RGA_BLUR_SHARP_FILTER_TYPE(x) ( (x&0x3)<<26 ) - - -/* pre scale mode */ -#define m_RGA_PRE_SCALE_HOR_RATIO ( 0x3 <<20 ) -#define m_RGA_PRE_SCALE_VER_RATIO ( 0x3 <<22 ) -#define m_RGA_PRE_SCALE_OUTPUT_FORMAT ( 0x1 <<24 ) - -#define s_RGA_PRE_SCALE_HOR_RATIO(x) ( (x&0x3) <<20 ) -#define s_RGA_PRE_SCALE_VER_RATIO(x) ( (x&0x3) <<22 ) -#define s_RGA_PRE_SCALE_OUTPUT_FORMAT(x) ( (x&0x1) <<24 ) - - - -/* RGA_MMU_CTRL*/ -#define m_RGA_MMU_CTRL_TLB_ADDR ( 0xffffffff<<0) -#define m_RGA_MMU_CTRL_PAGE_TABLE_SIZE ( 0x3<<4 ) -#define m_RGA_MMU_CTRL_MMU_ENABLE ( 0x1<<0 ) -#define m_RGA_MMU_CTRL_SRC_FLUSH ( 0x1<<1 ) -#define m_RGA_MMU_CTRL_DST_FLUSH ( 0x1<<2 ) -#define m_RGA_MMU_CTRL_CMD_CHAN_FLUSH ( 0x1<<3 ) - -#define s_RGA_MMU_CTRL_TLB_ADDR(x) ((x&0xffffffff)) -#define s_RGA_MMU_CTRL_PAGE_TABLE_SIZE(x) ((x&0x3)<<4) -#define s_RGA_MMU_CTRL_MMU_ENABLE(x) ((x&0x1)<<0) -#define s_RGA_MMU_CTRL_SRC_FLUSH(x) ((x&0x1)<<1) -#define s_RGA_MMU_CTRL_DST_FLUSH(x) ((x&0x1)<<2) -#define s_RGA_MMU_CTRL_CMD_CHAN_FLUSH(x) ((x&0x1)<<3) - -#endif - -/* -#define RGA_MODE_CTRL_OFFSET 0x0 -#define RGA_SRC_Y_MST_OFFSET 0x4 -#define RGA_SRC_CB_MST_OFFSET 0x8 -#define RGA_SRC_CR_MST_OFFSET 0xc -#define RGA_SRC_VIR_INFO_OFFSET 0x10 -#define RGA_SRC_ACT_INFO_OFFSET 0x14 -#define RGA_SRC_X_PARA_OFFSET 0x18 -#define RGA_SRC_Y_PARA_OFFSET 0x1c -#define RGA_SRC_TILE_XINFO_OFFSET 0x20 -#define RGA_SRC_TILE_YINFO_OFFSET 0x24 -#define RGA_SRC_TILE_H_INCR_OFFSET 0x28 -#define RGA_SRC_TILE_V_INCR_OFFSET 0x2c -#define RGA_SRC_TILE_OFFSETX_OFFSET 0x30 -#define RGA_SRC_TILE_OFFSETY_OFFSET 0x34 -#define RGA_SRC_BG_COLOR_OFFSET 0x38 - -#define RGA_SRC_FG_COLOR_OFFSET 0x3c -#define RGA_LINE_DRAWING_COLOR_OFFSET 0x3c - -#define RGA_SRC_TR_COLOR0_OFFSET 0x40 -#define RGA_CP_GR_A_OFFSET 0x40 //repeat - -#define RGA_SRC_TR_COLOR1_OFFSET 0x44 -#define RGA_CP_GR_B_OFFSET 0x44 //repeat - -#define RGA_LINE_DRAW_OFFSET 0x48 -#define RGA_PAT_START_POINT_OFFSET 0x48 //repeat - -#define RGA_DST_MST_OFFSET 0x4c -#define RGA_LUT_MST_OFFSET 0x4c //repeat -#define RGA_PAT_MST_OFFSET 0x4c //repeat -#define RGA_LINE_DRAWING_MST_OFFSET 0x4c //repeat - -#define RGA_DST_VIR_INFO_OFFSET 0x50 - -#define RGA_DST_CTR_INFO_OFFSET 0x54 -#define RGA_LINE_DRAW_XY_INFO_OFFSET 0x54 //repeat - -#define RGA_ALPHA_CON_OFFSET 0x58 -#define RGA_FADING_CON_OFFSET 0x5c - -#define RGA_PAT_CON_OFFSET 0x60 -#define RGA_LINE_DRAWING_WIDTH_OFFSET 0x60 //repeat - -#define RGA_ROP_CON0_OFFSET 0x64 -#define RGA_CP_GR_G_OFFSET 0x64 //repeat -#define RGA_PRESCL_CB_MST_OFFSET 0x64 //repeat - -#define RGA_ROP_CON1_OFFSET 0x68 -#define RGA_CP_GR_R_OFFSET 0x68 //repeat -#define RGA_PRESCL_CR_MST_OFFSET 0x68 //repeat - -#define RGA_MMU_CTRL_OFFSET 0x6c - - -#define RGA_SYS_CTRL_OFFSET 0x000 -#define RGA_CMD_CTRL_OFFSET 0x004 -#define RGA_CMD_ADDR_OFFSET 0x008 -#define RGA_STATUS_OFFSET 0x00c -#define RGA_INT_OFFSET 0x010 -#define RGA_AXI_ID_OFFSET 0x014 -#define RGA_MMU_STA_CTRL_OFFSET 0x018 -#define RGA_MMU_STA_OFFSET 0x01c -*/ -//hxx - -#define RGA_SYS_CTRL_OFFSET (RGA_SYS_CTRL-0x100) -#define RGA_CMD_CTRL_OFFSET (RGA_CMD_CTRL-0x100) -#define RGA_CMD_ADDR_OFFSET (RGA_CMD_ADDR-0x100) -#define RGA_STATUS_OFFSET (RGA_STATUS-0x100) -#define RGA_INT_OFFSET (RGA_INT-0x100) -#define RGA_AXI_ID_OFFSET (RGA_AXI_ID-0x100) -#define RGA_MMU_STA_CTRL_OFFSET (RGA_MMU_STA_CTRL-0x100) -#define RGA_MMU_STA_OFFSET (RGA_MMU_STA-0x100) - -#define RGA_MODE_CTRL_OFFSET (RGA_MODE_CTRL-0x100) -#define RGA_SRC_Y_MST_OFFSET (RGA_SRC_Y_MST-0x100) -#define RGA_SRC_CB_MST_OFFSET (RGA_SRC_CB_MST-0x100) -#define RGA_SRC_CR_MST_OFFSET (RGA_SRC_CR_MST-0x100) -#define RGA_SRC_VIR_INFO_OFFSET (RGA_SRC_VIR_INFO-0x100) -#define RGA_SRC_ACT_INFO_OFFSET (RGA_SRC_ACT_INFO-0x100) -#define RGA_SRC_X_PARA_OFFSET (RGA_SRC_X_PARA-0x100) -#define RGA_SRC_Y_PARA_OFFSET (RGA_SRC_Y_PARA-0x100) -#define RGA_SRC_TILE_XINFO_OFFSET (RGA_SRC_TILE_XINFO-0x100) -#define RGA_SRC_TILE_YINFO_OFFSET (RGA_SRC_TILE_YINFO-0x100) -#define RGA_SRC_TILE_H_INCR_OFFSET (RGA_SRC_TILE_H_INCR-0x100) -#define RGA_SRC_TILE_V_INCR_OFFSET (RGA_SRC_TILE_V_INCR-0x100) -#define RGA_SRC_TILE_OFFSETX_OFFSET (RGA_SRC_TILE_OFFSETX-0x100) -#define RGA_SRC_TILE_OFFSETY_OFFSET (RGA_SRC_TILE_OFFSETY-0x100) -#define RGA_SRC_BG_COLOR_OFFSET (RGA_SRC_BG_COLOR-0x100) - -#define RGA_SRC_FG_COLOR_OFFSET (RGA_SRC_FG_COLOR-0x100) -#define RGA_LINE_DRAWING_COLOR_OFFSET (RGA_LINE_DRAWING_COLOR-0x100) - -#define RGA_SRC_TR_COLOR0_OFFSET (RGA_SRC_TR_COLOR0-0x100) -#define RGA_CP_GR_A_OFFSET (RGA_CP_GR_A-0x100) //repeat - -#define RGA_SRC_TR_COLOR1_OFFSET (RGA_SRC_TR_COLOR1-0x100) -#define RGA_CP_GR_B_OFFSET (RGA_CP_GR_B-0x100) //repeat - -#define RGA_LINE_DRAW_OFFSET (RGA_LINE_DRAW-0x100) -#define RGA_PAT_START_POINT_OFFSET (RGA_PAT_START_POINT-0x100) //repeat - -#define RGA_DST_MST_OFFSET (RGA_DST_MST-0x100) -#define RGA_LUT_MST_OFFSET (RGA_LUT_MST-0x100) //repeat -#define RGA_PAT_MST_OFFSET (RGA_PAT_MST-0x100) //repeat -#define RGA_LINE_DRAWING_MST_OFFSET (RGA_LINE_DRAWING_MST-0x100) //repeat - -#define RGA_DST_VIR_INFO_OFFSET (RGA_DST_VIR_INFO-0x100) - -#define RGA_DST_CTR_INFO_OFFSET (RGA_DST_CTR_INFO-0x100) -#define RGA_LINE_DRAW_XY_INFO_OFFSET (RGA_LINE_DRAW_XY_INFO-0x100) //repeat - -#define RGA_ALPHA_CON_OFFSET (RGA_ALPHA_CON-0x100) - -#define RGA_PAT_CON_OFFSET (RGA_PAT_CON-0x100) -#define RGA_LINE_DRAWING_WIDTH_OFFSET (RGA_DST_VIR_WIDTH_PIX-0x100) //repeat - -#define RGA_ROP_CON0_OFFSET (RGA_ROP_CON0-0x100) -#define RGA_CP_GR_G_OFFSET (RGA_CP_GR_G-0x100) //repeat -#define RGA_PRESCL_CB_MST_OFFSET (RGA_PRESCL_CB_MST-0x100) //repeat - -#define RGA_ROP_CON1_OFFSET (RGA_ROP_CON1-0x100) -#define RGA_CP_GR_R_OFFSET (RGA_CP_GR_R-0x100) //repeat -#define RGA_PRESCL_CR_MST_OFFSET (RGA_PRESCL_CR_MST-0x100) //repeat - -#define RGA_FADING_CON_OFFSET (RGA_FADING_CON-0x100) -#define RGA_MMU_TLB_OFFSET (RGA_MMU_TBL-0x100) - -#define RGA_YUV_OUT_CFG_OFFSET (RGA_YUV_OUT_CFG-0x100) -#define RGA_DST_UV_MST_OFFSET (RGA_DST_UV_MST-0x100) - - - -void matrix_cal(const struct rga_req *msg, TILE_INFO *tile); - - -int RGA_gen_reg_info(const struct rga_req *msg, unsigned char *base); -uint8_t RGA_pixel_width_init(uint32_t format); - +#ifndef __REG_INFO_H__ +#define __REG_INFO_H__ + + +//#include "chip_register.h" + +//#include "rga_struct.h" +#include "rga.h" + +#ifndef MIN +#define MIN(X, Y) ((X)<(Y)?(X):(Y)) +#endif + +#ifndef MAX +#define MAX(X, Y) ((X)>(Y)?(X):(Y)) +#endif + +#ifndef ABS +#define ABS(X) (((X) < 0) ? (-(X)) : (X)) +#endif + +#ifndef CLIP +#define CLIP(x, a, b) ((x) < (a)) ? (a) : (((x) > (b)) ? (b) : (x)) +#endif + +//RGA register map + +//General Registers +#define rRGA_SYS_CTRL (*(volatile uint32_t *)(RGA_BASE + RGA_SYS_CTRL)) +#define rRGA_CMD_CTRL (*(volatile uint32_t *)(RGA_BASE + RGA_CMD_CTRL)) +#define rRGA_CMD_ADDR (*(volatile uint32_t *)(RGA_BASE + RGA_CMD_ADDR)) +#define rRGA_STATUS (*(volatile uint32_t *)(RGA_BASE + RGA_STATUS)) +#define rRGA_INT (*(volatile uint32_t *)(RGA_BASE + RGA_INT)) +#define rRGA_AXI_ID (*(volatile uint32_t *)(RGA_BASE + RGA_AXI_ID)) +#define rRGA_MMU_STA_CTRL (*(volatile uint32_t *)(RGA_BASE + RGA_MMU_STA_CTRL)) +#define rRGA_MMU_STA (*(volatile uint32_t *)(RGA_BASE + RGA_MMU_STA)) + +//Command code start +#define rRGA_MODE_CTRL (*(volatile uint32_t *)(RGA_BASE + RGA_MODE_CTRL)) + +//Source Image Registers +#define rRGA_SRC_Y_MST (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_Y_MST)) +#define rRGA_SRC_CB_MST (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_CB_MST)) +#define rRGA_MASK_READ_MST (*(volatile uint32_t *)(RGA_BASE + RGA_MASK_READ_MST)) //repeat +#define rRGA_SRC_CR_MST (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_CR_MST)) +#define rRGA_SRC_VIR_INFO (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_VIR_INFO)) +#define rRGA_SRC_ACT_INFO (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_ACT_INFO)) +#define rRGA_SRC_X_PARA (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_X_PARA)) +#define rRGA_SRC_Y_PARA (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_Y_PARA)) +#define rRGA_SRC_TILE_XINFO (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_TILE_XINFO)) +#define rRGA_SRC_TILE_YINFO (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_TILE_YINFO)) +#define rRGA_SRC_TILE_H_INCR (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_TILE_H_INCR)) +#define rRGA_SRC_TILE_V_INCR (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_TILE_V_INCR)) +#define rRGA_SRC_TILE_OFFSETX (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_TILE_OFFSETX)) +#define rRGA_SRC_TILE_OFFSETY (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_TILE_OFFSETY)) +#define rRGA_SRC_BG_COLOR (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_BG_COLOR)) +#define rRGA_SRC_FG_COLOR (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_FG_COLOR)) +#define rRGA_LINE_DRAWING_COLOR (*(volatile uint32_t *)(RGA_BASE + RGA_LINE_DRAWING_COLOR)) //repeat +#define rRGA_SRC_TR_COLOR0 (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_TR_COLOR0)) +#define rRGA_CP_GR_A (*(volatile uint32_t *)(RGA_BASE + RGA_CP_GR_A)) //repeat +#define rRGA_SRC_TR_COLOR1 (*(volatile uint32_t *)(RGA_BASE + RGA_SRC_TR_COLOR1)) +#define rRGA_CP_GR_B (*(volatile uint32_t *)(RGA_BASE + RGA_CP_GR_B)) //repeat + +#define rRGA_LINE_DRAW (*(volatile uint32_t *)(RGA_BASE + RGA_LINE_DRAW)) +#define rRGA_PAT_START_POINT (*(volatile uint32_t *)(RGA_BASE + RGA_PAT_START_POINT)) //repeat + +//Destination Image Registers +#define rRGA_DST_MST (*(volatile uint32_t *)(RGA_BASE + RGA_DST_MST)) +#define rRGA_LUT_MST (*(volatile uint32_t *)(RGA_BASE + RGA_LUT_MST)) //repeat +#define rRGA_PAT_MST (*(volatile uint32_t *)(RGA_BASE + RGA_PAT_MST)) //repeat +#define rRGA_LINE_DRAWING_MST (*(volatile uint32_t *)(RGA_BASE + RGA_LINE_DRAWING_MST)) //repeat + +#define rRGA_DST_VIR_INFO (*(volatile uint32_t *)(RGA_BASE + RGA_DST_VIR_INFO)) + +#define rRGA_DST_CTR_INFO (*(volatile uint32_t *)(RGA_BASE + RGA_DST_CTR_INFO)) +#define rRGA_LINE_DRAW_XY_INFO (*(volatile uint32_t *)(RGA_BASE + RGA_LINE_DRAW_XY_INFO)) //repeat + +//Alpha/ROP Registers +#define rRGA_ALPHA_CON (*(volatile uint32_t *)(RGA_BASE + RGA_ALPHA_CON)) +#define rRGA_FADING_CON (*(volatile uint32_t *)(RGA_BASE + RGA_FADING_CON)) + +#define rRGA_PAT_CON (*(volatile uint32_t *)(RGA_BASE + RGA_PAT_CON)) +#define rRGA_DST_VIR_WIDTH_PIX (*(volatile uint32_t *)(RGA_BASE + RGA_DST_VIR_WIDTH_PIX)) //repeat + +#define rRGA_ROP_CON0 (*(volatile uint32_t *)(RGA_BASE + RGA_ROP_CON0)) +#define rRGA_CP_GR_G (*(volatile uint32_t *)(RGA_BASE + RGA_CP_GR_G)) //repeat +#define rRGA_PRESCL_CB_MST (*(volatile uint32_t *)(RGA_BASE + RGA_PRESCL_CB_MST)) //repeat + +#define rRGA_ROP_CON1 (*(volatile uint32_t *)(RGA_BASE + RGA_ROP_CON1)) +#define rRGA_CP_GR_R (*(volatile uint32_t *)(RGA_BASE + RGA_CP_GR_R)) //repeat +#define rRGA_PRESCL_CR_MST (*(volatile uint32_t *)(RGA_BASE + RGA_PRESCL_CR_MST)) //repeat + +//MMU Register +#define rRGA_MMU_CTRL (*(volatile uint32_t *)(RGA_BASE + RGA_MMU_CTRL)) + + + + +//----------------------------------------------------------------- +//reg detail definition +//----------------------------------------------------------------- +/*RGA_SYS_CTRL*/ +#define m_RGA_SYS_CTRL_CMD_MODE ( 1<<2 ) +#define m_RGA_SYS_CTRL_OP_ST_SLV ( 1<<1 ) +#define m_RGA_sys_CTRL_SOFT_RESET ( 1<<0 ) + +#define s_RGA_SYS_CTRL_CMD_MODE(x) ( (x&0x1)<<2 ) +#define s_RGA_SYS_CTRL_OP_ST_SLV(x) ( (x&0x1)<<1 ) +#define s_RGA_sys_CTRL_SOFT_RESET(x) ( (x&0x1)<<0 ) + + +/*RGA_CMD_CTRL*/ +#define m_RGA_CMD_CTRL_CMD_INCR_NUM ( 0x3ff<<3 ) +#define m_RGA_CMD_CTRL_CMD_STOP_MODE ( 1<<2 ) +#define m_RGA_CMD_CTRL_CMD_INCR_VALID ( 1<<1 ) +#define m_RGA_CMD_CTRL_CMD_LINE_FET_ST ( 1<<0 ) + +#define s_RGA_CMD_CTRL_CMD_INCR_NUM(x) ( (x&0x3ff)<<3 ) +#define s_RGA_CMD_CTRL_CMD_STOP_MODE(x) ( (x&0x1)<<2 ) +#define s_RGA_CMD_CTRL_CMD_INCR_VALID(x) ( (x&0x1)<<1 ) +#define s_RGA_CMD_CTRL_CMD_LINE_FET_ST(x) ( (x*0x1)<<0 ) + + +/*RGA_STATUS*/ +#define m_RGA_CMD_STATUS_CMD_TOTAL_NUM ( 0xfff<<20 ) +#define m_RGA_CMD_STATUS_NOW_CMD_NUM ( 0xfff<<8 ) +#define m_RGA_CMD_STATUS_ENGINE_STATUS ( 1<<0 ) + + +/*RGA_INT*/ +#define m_RGA_INT_ALL_CMD_DONE_INT_EN ( 1<<10 ) +#define m_RGA_INT_MMU_INT_EN ( 1<<9 ) +#define m_RGA_INT_ERROR_INT_EN ( 1<<8 ) +#define m_RGA_INT_NOW_CMD_DONE_INT_CLEAR ( 1<<7 ) +#define m_RGA_INT_ALL_CMD_DONE_INT_CLEAR ( 1<<6 ) +#define m_RGA_INT_MMU_INT_CLEAR ( 1<<5 ) +#define m_RGA_INT_ERROR_INT_CLEAR ( 1<<4 ) +#define m_RGA_INT_NOW_CMD_DONE_INT_FLAG ( 1<<3 ) +#define m_RGA_INT_ALL_CMD_DONE_INT_FLAG ( 1<<2 ) +#define m_RGA_INT_MMU_INT_FLAG ( 1<<1 ) +#define m_RGA_INT_ERROR_INT_FLAG ( 1<<0 ) + +#define s_RGA_INT_ALL_CMD_DONE_INT_EN(x) ( (x&0x1)<<10 ) +#define s_RGA_INT_MMU_INT_EN(x) ( (x&0x1)<<9 ) +#define s_RGA_INT_ERROR_INT_EN(x) ( (x&0x1)<<8 ) +#define s_RGA_INT_NOW_CMD_DONE_INT_CLEAR(x) ( (x&0x1)<<7 ) +#define s_RGA_INT_ALL_CMD_DONE_INT_CLEAR(x) ( (x&0x1)<<6 ) +#define s_RGA_INT_MMU_INT_CLEAR(x) ( (x&0x1)<<5 ) +#define s_RGA_INT_ERROR_INT_CLEAR(x) ( (x&0x1)<<4 ) + + +/*RGA_AXI_ID*/ +#define m_RGA_AXI_ID_MMU_READ ( 3<<30 ) +#define m_RGA_AXI_ID_MMU_WRITE ( 3<<28 ) +#define m_RGA_AXI_ID_MASK_READ ( 0xf<<24 ) +#define m_RGA_AXI_ID_CMD_FET ( 0xf<<20 ) +#define m_RGA_AXI_ID_DST_WRITE ( 0xf<<16 ) +#define m_RGA_AXI_ID_DST_READ ( 0xf<<12 ) +#define m_RGA_AXI_ID_SRC_CR_READ ( 0xf<<8 ) +#define m_RGA_AXI_ID_SRC_CB_READ ( 0xf<<4 ) +#define m_RGA_AXI_ID_SRC_Y_READ ( 0xf<<0 ) + +#define s_RGA_AXI_ID_MMU_READ(x) ( (x&0x3)<<30 ) +#define s_RGA_AXI_ID_MMU_WRITE(x) ( (x&0x3)<<28 ) +#define s_RGA_AXI_ID_MASK_READ(x) ( (x&0xf)<<24 ) +#define s_RGA_AXI_ID_CMD_FET(x) ( (x&0xf)<<20 ) +#define s_RGA_AXI_ID_DST_WRITE(x) ( (x&0xf)<<16 ) +#define s_RGA_AXI_ID_DST_READ(x) ( (x&0xf)<<12 ) +#define s_RGA_AXI_ID_SRC_CR_READ(x) ( (x&0xf)<<8 ) +#define s_RGA_AXI_ID_SRC_CB_READ(x) ( (x&0xf)<<4 ) +#define s_RGA_AXI_ID_SRC_Y_READ(x) ( (x&0xf)<<0 ) + + +/*RGA_MMU_STA_CTRL*/ +#define m_RGA_MMU_STA_CTRL_TLB_STA_CLEAR ( 1<<3 ) +#define m_RGA_MMU_STA_CTRL_TLB_STA_RESUME ( 1<<2 ) +#define m_RGA_MMU_STA_CTRL_TLB_STA_PAUSE ( 1<<1 ) +#define m_RGA_MMU_STA_CTRL_TLB_STA_EN ( 1<<0 ) + +#define s_RGA_MMU_STA_CTRL_TLB_STA_CLEAR(x) ( (x&0x1)<<3 ) +#define s_RGA_MMU_STA_CTRL_TLB_STA_RESUME(x) ( (x&0x1)<<2 ) +#define s_RGA_MMU_STA_CTRL_TLB_STA_PAUSE(x) ( (x&0x1)<<1 ) +#define s_RGA_MMU_STA_CTRL_TLB_STA_EN(x) ( (x&0x1)<<0 ) + + + +/* RGA_MODE_CTRL */ +#define m_RGA_MODE_CTRL_2D_RENDER_MODE ( 7<<0 ) +#define m_RGA_MODE_CTRL_SRC_RGB_PACK ( 1<<3 ) +#define m_RGA_MODE_CTRL_SRC_FORMAT ( 15<<4 ) +#define m_RGA_MODE_CTRL_SRC_RB_SWAP ( 1<<8 ) +#define m_RGA_MODE_CTRL_SRC_ALPHA_SWAP ( 1<<9 ) +#define m_RGA_MODE_CTRL_SRC_UV_SWAP_MODE ( 1<<10 ) +#define m_RGA_MODE_CTRL_YUV2RGB_CON_MODE ( 3<<11 ) +#define m_RGA_MODE_CTRL_SRC_TRANS_MODE (0x1f<<13 ) +#define m_RGA_MODE_CTRL_SRC_TR_MODE ( 1<<13 ) +#define m_RGA_MODE_CTRL_SRC_TR_R_EN ( 1<<14 ) +#define m_RGA_MODE_CTRL_SRC_TR_G_EN ( 1<<15 ) +#define m_RGA_MODE_CTRL_SRC_TR_B_EN ( 1<<16 ) +#define m_RGA_MODE_CTRL_SRC_TR_A_EN ( 1<<17 ) +#define m_RGA_MODE_CTRL_ROTATE_MODE ( 3<<18 ) +#define m_RGA_MODE_CTRL_SCALE_MODE ( 3<<20 ) +#define m_RGA_MODE_CTRL_PAT_SEL ( 1<<22 ) +#define m_RGA_MODE_CTRL_DST_FORMAT ( 3<<23 ) +#define m_RGA_MODE_CTRL_DST_RGB_PACK ( 1<<25 ) +#define m_RGA_MODE_CTRL_DST_RB_SWAP ( 1<<26 ) +#define m_RGA_MODE_CTRL_DST_ALPHA_SWAP ( 1<<27 ) +#define m_RGA_MODE_CTRL_LUT_ENDIAN_MODE ( 1<<28 ) +#define m_RGA_MODE_CTRL_CMD_INT_ENABLE ( 1<<29 ) +#define m_RGA_MODE_CTRL_ZERO_MODE_ENABLE ( 1<<30 ) +#define m_RGA_MODE_CTRL_DST_ALPHA_ENABLE ( 1<<30 ) + + + +#define s_RGA_MODE_CTRL_2D_RENDER_MODE(x) ( (x&0x7)<<0 ) +#define s_RGA_MODE_CTRL_SRC_RGB_PACK(x) ( (x&0x1)<<3 ) +#define s_RGA_MODE_CTRL_SRC_FORMAT(x) ( (x&0xf)<<4 ) +#define s_RGA_MODE_CTRL_SRC_RB_SWAP(x) ( (x&0x1)<<8 ) +#define s_RGA_MODE_CTRL_SRC_ALPHA_SWAP(x) ( (x&0x1)<<9 ) +#define s_RGA_MODE_CTRL_SRC_UV_SWAP_MODE(x) ( (x&0x1)<<10 ) +#define s_RGA_MODE_CTRL_YUV2RGB_CON_MODE(x) ( (x&0x3)<<11 ) +#define s_RGA_MODE_CTRL_SRC_TRANS_MODE(x) ( (x&0x1f)<<13 ) +#define s_RGA_MODE_CTRL_SRC_TR_MODE(x) ( (x&0x1)<<13 ) +#define s_RGA_MODE_CTRL_SRC_TR_R_EN(x) ( (x&0x1)<<14 ) +#define s_RGA_MODE_CTRL_SRC_TR_G_EN(x) ( (x&0x1)<<15 ) +#define s_RGA_MODE_CTRL_SRC_TR_B_EN(x) ( (x&0x1)<<16 ) +#define s_RGA_MODE_CTRL_SRC_TR_A_EN(x) ( (x&0x1)<<17 ) +#define s_RGA_MODE_CTRL_ROTATE_MODE(x) ( (x&0x3)<<18 ) +#define s_RGA_MODE_CTRL_SCALE_MODE(x) ( (x&0x3)<<20 ) +#define s_RGA_MODE_CTRL_PAT_SEL(x) ( (x&0x1)<<22 ) +#define s_RGA_MODE_CTRL_DST_FORMAT(x) ( (x&0x3)<<23 ) +#define s_RGA_MODE_CTRL_DST_RGB_PACK(x) ( (x&0x1)<<25 ) +#define s_RGA_MODE_CTRL_DST_RB_SWAP(x) ( (x&0x1)<<26 ) +#define s_RGA_MODE_CTRL_DST_ALPHA_SWAP(x) ( (x&0x1)<<27 ) +#define s_RGA_MODE_CTRL_LUT_ENDIAN_MODE(x) ( (x&0x1)<<28 ) +#define s_RGA_MODE_CTRL_CMD_INT_ENABLE(x) ( (x&0x1)<<29 ) +#define s_RGA_MODE_CTRL_ZERO_MODE_ENABLE(x) ( (x&0x1)<<30 ) +#define s_RGA_MODE_CTRL_DST_ALPHA_ENABLE(x) ( (x&0x1)<<31 ) + + + +/* RGA_LINE_DRAW */ +#define m_RGA_LINE_DRAW_MAJOR_WIDTH ( 0x7ff<<0 ) +#define m_RGA_LINE_DRAW_LINE_DIRECTION ( 0x1<<11) +#define m_RGA_LINE_DRAW_LINE_WIDTH ( 0xf<<12) +#define m_RGA_LINE_DRAW_INCR_VALUE ( 0xfff<<16) +#define m_RGA_LINE_DRAW_DIR_MAJOR ( 0x1<<28) +#define m_RGA_LINE_DRAW_DIR_SEMI_MAJOR ( 0x1<<29) +#define m_RGA_LINE_DRAW_LAST_POINT ( 0x1<<30) +#define m_RGA_LINE_DRAW_ANTI_ALISING ( 0x1<<31) + +#define s_RGA_LINE_DRAW_MAJOR_WIDTH(x) (((x)&0x7ff)<<0 ) +#define s_RGA_LINE_DRAW_LINE_DIRECTION(x) ( ((x)&0x1)<<11) +#define s_RGA_LINE_DRAW_LINE_WIDTH(x) ( ((x)&0xf)<<12) +#define s_RGA_LINE_DRAW_INCR_VALUE(x) (((x)&0xfff)<<16) +#define s_RGA_LINE_DRAW_DIR_MAJOR(x) ( ((x)&0x1)<<28) +#define s_RGA_LINE_DRAW_DIR_SEMI_MAJOR(x) ( ((x)&0x1)<<29) +#define s_RGA_LINE_DRAW_LAST_POINT(x) ( ((x)&0x1)<<30) +#define s_RGA_LINE_DRAW_ANTI_ALISING(x) ( ((x)&0x1)<<31) + + +/* RGA_ALPHA_CON */ +#define m_RGA_ALPHA_CON_ENABLE ( 0x1<<0 ) +#define m_RGA_ALPHA_CON_A_OR_R_SEL ( 0x1<<1 ) +#define m_RGA_ALPHA_CON_ALPHA_MODE ( 0x3<<2 ) +#define m_RGA_ALPHA_CON_PD_MODE ( 0xf<<4 ) +#define m_RGA_ALPHA_CON_SET_CONSTANT_VALUE (0xff<<8 ) +#define m_RGA_ALPHA_CON_PD_M_SEL ( 0x1<<16) +#define m_RGA_ALPHA_CON_FADING_ENABLE ( 0x1<<17) +#define m_RGA_ALPHA_CON_ROP_MODE_SEL ( 0x3<<18) +#define m_RGA_ALPHA_CON_CAL_MODE_SEL ( 0x1<<28) +#define m_RGA_ALPHA_CON_DITHER_ENABLE ( 0x1<<29) +#define m_RGA_ALPHA_CON_GRADIENT_CAL_MODE ( 0x1<<30) +#define m_RGA_ALPHA_CON_AA_SEL ( 0x1<<31) + +#define s_RGA_ALPHA_CON_ENABLE(x) ( (x&0x1)<<0 ) +#define s_RGA_ALPHA_CON_A_OR_R_SEL(x) ( (x&0x1)<<1 ) +#define s_RGA_ALPHA_CON_ALPHA_MODE(x) ( (x&0x3)<<2 ) +#define s_RGA_ALPHA_CON_PD_MODE(x) ( (x&0xf)<<4 ) +#define s_RGA_ALPHA_CON_SET_CONSTANT_VALUE(x) ((x&0xff)<<8 ) +#define s_RGA_ALPHA_CON_PD_M_SEL(x) ( (x&0x1)<<16) +#define s_RGA_ALPHA_CON_FADING_ENABLE(x) ( (x&0x1)<<17) +#define s_RGA_ALPHA_CON_ROP_MODE_SEL(x) ( (x&0x3)<<18) +#define s_RGA_ALPHA_CON_CAL_MODE_SEL(x) ( (x&0x1)<<28) +#define s_RGA_ALPHA_CON_DITHER_ENABLE(x) ( (x&0x1)<<29) +#define s_RGA_ALPHA_CON_GRADIENT_CAL_MODE(x) ( (x&0x1)<<30) +#define s_RGA_ALPHA_CON_AA_SEL(x) ( (x&0x1)<<31) + + +/* blur sharp mode */ +#define m_RGA_BLUR_SHARP_FILTER_MODE ( 0x1<<25 ) +#define m_RGA_BLUR_SHARP_FILTER_TYPE ( 0x3<<26 ) + +#define s_RGA_BLUR_SHARP_FILTER_MODE(x) ( (x&0x1)<<25 ) +#define s_RGA_BLUR_SHARP_FILTER_TYPE(x) ( (x&0x3)<<26 ) + + +/* pre scale mode */ +#define m_RGA_PRE_SCALE_HOR_RATIO ( 0x3 <<20 ) +#define m_RGA_PRE_SCALE_VER_RATIO ( 0x3 <<22 ) +#define m_RGA_PRE_SCALE_OUTPUT_FORMAT ( 0x1 <<24 ) + +#define s_RGA_PRE_SCALE_HOR_RATIO(x) ( (x&0x3) <<20 ) +#define s_RGA_PRE_SCALE_VER_RATIO(x) ( (x&0x3) <<22 ) +#define s_RGA_PRE_SCALE_OUTPUT_FORMAT(x) ( (x&0x1) <<24 ) + + + +/* RGA_MMU_CTRL*/ +#define m_RGA_MMU_CTRL_TLB_ADDR ( 0xffffffff<<0) +#define m_RGA_MMU_CTRL_PAGE_TABLE_SIZE ( 0x3<<4 ) +#define m_RGA_MMU_CTRL_MMU_ENABLE ( 0x1<<0 ) +#define m_RGA_MMU_CTRL_SRC_FLUSH ( 0x1<<1 ) +#define m_RGA_MMU_CTRL_DST_FLUSH ( 0x1<<2 ) +#define m_RGA_MMU_CTRL_CMD_CHAN_FLUSH ( 0x1<<3 ) + +#define s_RGA_MMU_CTRL_TLB_ADDR(x) ((x&0xffffffff)) +#define s_RGA_MMU_CTRL_PAGE_TABLE_SIZE(x) ((x&0x3)<<4) +#define s_RGA_MMU_CTRL_MMU_ENABLE(x) ((x&0x1)<<0) +#define s_RGA_MMU_CTRL_SRC_FLUSH(x) ((x&0x1)<<1) +#define s_RGA_MMU_CTRL_DST_FLUSH(x) ((x&0x1)<<2) +#define s_RGA_MMU_CTRL_CMD_CHAN_FLUSH(x) ((x&0x1)<<3) + +#endif + +/* +#define RGA_MODE_CTRL_OFFSET 0x0 +#define RGA_SRC_Y_MST_OFFSET 0x4 +#define RGA_SRC_CB_MST_OFFSET 0x8 +#define RGA_SRC_CR_MST_OFFSET 0xc +#define RGA_SRC_VIR_INFO_OFFSET 0x10 +#define RGA_SRC_ACT_INFO_OFFSET 0x14 +#define RGA_SRC_X_PARA_OFFSET 0x18 +#define RGA_SRC_Y_PARA_OFFSET 0x1c +#define RGA_SRC_TILE_XINFO_OFFSET 0x20 +#define RGA_SRC_TILE_YINFO_OFFSET 0x24 +#define RGA_SRC_TILE_H_INCR_OFFSET 0x28 +#define RGA_SRC_TILE_V_INCR_OFFSET 0x2c +#define RGA_SRC_TILE_OFFSETX_OFFSET 0x30 +#define RGA_SRC_TILE_OFFSETY_OFFSET 0x34 +#define RGA_SRC_BG_COLOR_OFFSET 0x38 + +#define RGA_SRC_FG_COLOR_OFFSET 0x3c +#define RGA_LINE_DRAWING_COLOR_OFFSET 0x3c + +#define RGA_SRC_TR_COLOR0_OFFSET 0x40 +#define RGA_CP_GR_A_OFFSET 0x40 //repeat + +#define RGA_SRC_TR_COLOR1_OFFSET 0x44 +#define RGA_CP_GR_B_OFFSET 0x44 //repeat + +#define RGA_LINE_DRAW_OFFSET 0x48 +#define RGA_PAT_START_POINT_OFFSET 0x48 //repeat + +#define RGA_DST_MST_OFFSET 0x4c +#define RGA_LUT_MST_OFFSET 0x4c //repeat +#define RGA_PAT_MST_OFFSET 0x4c //repeat +#define RGA_LINE_DRAWING_MST_OFFSET 0x4c //repeat + +#define RGA_DST_VIR_INFO_OFFSET 0x50 + +#define RGA_DST_CTR_INFO_OFFSET 0x54 +#define RGA_LINE_DRAW_XY_INFO_OFFSET 0x54 //repeat + +#define RGA_ALPHA_CON_OFFSET 0x58 +#define RGA_FADING_CON_OFFSET 0x5c + +#define RGA_PAT_CON_OFFSET 0x60 +#define RGA_LINE_DRAWING_WIDTH_OFFSET 0x60 //repeat + +#define RGA_ROP_CON0_OFFSET 0x64 +#define RGA_CP_GR_G_OFFSET 0x64 //repeat +#define RGA_PRESCL_CB_MST_OFFSET 0x64 //repeat + +#define RGA_ROP_CON1_OFFSET 0x68 +#define RGA_CP_GR_R_OFFSET 0x68 //repeat +#define RGA_PRESCL_CR_MST_OFFSET 0x68 //repeat + +#define RGA_MMU_CTRL_OFFSET 0x6c + + +#define RGA_SYS_CTRL_OFFSET 0x000 +#define RGA_CMD_CTRL_OFFSET 0x004 +#define RGA_CMD_ADDR_OFFSET 0x008 +#define RGA_STATUS_OFFSET 0x00c +#define RGA_INT_OFFSET 0x010 +#define RGA_AXI_ID_OFFSET 0x014 +#define RGA_MMU_STA_CTRL_OFFSET 0x018 +#define RGA_MMU_STA_OFFSET 0x01c +*/ +//hxx + +#define RGA_SYS_CTRL_OFFSET (RGA_SYS_CTRL-0x100) +#define RGA_CMD_CTRL_OFFSET (RGA_CMD_CTRL-0x100) +#define RGA_CMD_ADDR_OFFSET (RGA_CMD_ADDR-0x100) +#define RGA_STATUS_OFFSET (RGA_STATUS-0x100) +#define RGA_INT_OFFSET (RGA_INT-0x100) +#define RGA_AXI_ID_OFFSET (RGA_AXI_ID-0x100) +#define RGA_MMU_STA_CTRL_OFFSET (RGA_MMU_STA_CTRL-0x100) +#define RGA_MMU_STA_OFFSET (RGA_MMU_STA-0x100) + +#define RGA_MODE_CTRL_OFFSET (RGA_MODE_CTRL-0x100) +#define RGA_SRC_Y_MST_OFFSET (RGA_SRC_Y_MST-0x100) +#define RGA_SRC_CB_MST_OFFSET (RGA_SRC_CB_MST-0x100) +#define RGA_SRC_CR_MST_OFFSET (RGA_SRC_CR_MST-0x100) +#define RGA_SRC_VIR_INFO_OFFSET (RGA_SRC_VIR_INFO-0x100) +#define RGA_SRC_ACT_INFO_OFFSET (RGA_SRC_ACT_INFO-0x100) +#define RGA_SRC_X_PARA_OFFSET (RGA_SRC_X_PARA-0x100) +#define RGA_SRC_Y_PARA_OFFSET (RGA_SRC_Y_PARA-0x100) +#define RGA_SRC_TILE_XINFO_OFFSET (RGA_SRC_TILE_XINFO-0x100) +#define RGA_SRC_TILE_YINFO_OFFSET (RGA_SRC_TILE_YINFO-0x100) +#define RGA_SRC_TILE_H_INCR_OFFSET (RGA_SRC_TILE_H_INCR-0x100) +#define RGA_SRC_TILE_V_INCR_OFFSET (RGA_SRC_TILE_V_INCR-0x100) +#define RGA_SRC_TILE_OFFSETX_OFFSET (RGA_SRC_TILE_OFFSETX-0x100) +#define RGA_SRC_TILE_OFFSETY_OFFSET (RGA_SRC_TILE_OFFSETY-0x100) +#define RGA_SRC_BG_COLOR_OFFSET (RGA_SRC_BG_COLOR-0x100) + +#define RGA_SRC_FG_COLOR_OFFSET (RGA_SRC_FG_COLOR-0x100) +#define RGA_LINE_DRAWING_COLOR_OFFSET (RGA_LINE_DRAWING_COLOR-0x100) + +#define RGA_SRC_TR_COLOR0_OFFSET (RGA_SRC_TR_COLOR0-0x100) +#define RGA_CP_GR_A_OFFSET (RGA_CP_GR_A-0x100) //repeat + +#define RGA_SRC_TR_COLOR1_OFFSET (RGA_SRC_TR_COLOR1-0x100) +#define RGA_CP_GR_B_OFFSET (RGA_CP_GR_B-0x100) //repeat + +#define RGA_LINE_DRAW_OFFSET (RGA_LINE_DRAW-0x100) +#define RGA_PAT_START_POINT_OFFSET (RGA_PAT_START_POINT-0x100) //repeat + +#define RGA_DST_MST_OFFSET (RGA_DST_MST-0x100) +#define RGA_LUT_MST_OFFSET (RGA_LUT_MST-0x100) //repeat +#define RGA_PAT_MST_OFFSET (RGA_PAT_MST-0x100) //repeat +#define RGA_LINE_DRAWING_MST_OFFSET (RGA_LINE_DRAWING_MST-0x100) //repeat + +#define RGA_DST_VIR_INFO_OFFSET (RGA_DST_VIR_INFO-0x100) + +#define RGA_DST_CTR_INFO_OFFSET (RGA_DST_CTR_INFO-0x100) +#define RGA_LINE_DRAW_XY_INFO_OFFSET (RGA_LINE_DRAW_XY_INFO-0x100) //repeat + +#define RGA_ALPHA_CON_OFFSET (RGA_ALPHA_CON-0x100) + +#define RGA_PAT_CON_OFFSET (RGA_PAT_CON-0x100) +#define RGA_LINE_DRAWING_WIDTH_OFFSET (RGA_DST_VIR_WIDTH_PIX-0x100) //repeat + +#define RGA_ROP_CON0_OFFSET (RGA_ROP_CON0-0x100) +#define RGA_CP_GR_G_OFFSET (RGA_CP_GR_G-0x100) //repeat +#define RGA_PRESCL_CB_MST_OFFSET (RGA_PRESCL_CB_MST-0x100) //repeat + +#define RGA_ROP_CON1_OFFSET (RGA_ROP_CON1-0x100) +#define RGA_CP_GR_R_OFFSET (RGA_CP_GR_R-0x100) //repeat +#define RGA_PRESCL_CR_MST_OFFSET (RGA_PRESCL_CR_MST-0x100) //repeat + +#define RGA_FADING_CON_OFFSET (RGA_FADING_CON-0x100) +#define RGA_MMU_TLB_OFFSET (RGA_MMU_TBL-0x100) + +#define RGA_YUV_OUT_CFG_OFFSET (RGA_YUV_OUT_CFG-0x100) +#define RGA_DST_UV_MST_OFFSET (RGA_DST_UV_MST-0x100) + + + +void matrix_cal(const struct rga_req *msg, TILE_INFO *tile); + + +int RGA_gen_reg_info(const struct rga_req *msg, unsigned char *base); +uint8_t RGA_pixel_width_init(uint32_t format); + -- Gitblit v1.6.2