blob: 19e8c9a7af0f7180b70434f356bc0e66c7aeba64 [file] [log] [blame]
/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
/*
* drivers/amlogic/media/di_multi/sc2/reg_bits_afbce.h
*
* Copyright (C) 2017 Amlogic, Inc. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
*/
#ifndef __REG_BITS_AFBCE_H__
#define __REG_BITS_AFBCE_H__
/*register*/
#ifdef MARK_SC2 /*move to register.h*/
#define DI_AFBCE_CTRL (0x2003)
#define DI_AFBCE_ENABLE (0x2060)
#define DI_AFBCE_MODE (0x2061)
#define DI_AFBCE_SIZE_IN (0x2062)
#define DI_AFBCE_BLK_SIZE_IN (0x2063)
#define DI_AFBCE_HEAD_BADDR (0x2064)
#define DI_AFBCE_MIF_SIZE (0x2065)
#define DI_AFBCE_PIXEL_IN_HOR_SCOPE (0x2066)
#define DI_AFBCE_PIXEL_IN_VER_SCOPE (0x2067)
#define DI_AFBCE_CONV_CTRL (0x2068)
#define DI_AFBCE_MIF_HOR_SCOPE (0x2069)
#define DI_AFBCE_MIF_VER_SCOPE (0x206a)
#define DI_AFBCE_STAT1 (0x206b)
#define DI_AFBCE_STAT2 (0x206c)
#define DI_AFBCE_FORMAT (0x206d)
#define DI_AFBCE_MODE_EN (0x206e)
#define DI_AFBCE_DWSCALAR (0x206f)
#define DI_AFBCE_DEFCOLOR_1 (0x2070)
#define DI_AFBCE_DEFCOLOR_2 (0x2071)
#define DI_AFBCE_QUANT_ENABLE (0x2072)
#define DI_AFBCE_IQUANT_LUT_1 (0x2073)
#define DI_AFBCE_IQUANT_LUT_2 (0x2074)
#define DI_AFBCE_IQUANT_LUT_3 (0x2075)
#define DI_AFBCE_IQUANT_LUT_4 (0x2076)
#define DI_AFBCE_RQUANT_LUT_1 (0x2077)
#define DI_AFBCE_RQUANT_LUT_2 (0x2078)
#define DI_AFBCE_RQUANT_LUT_3 (0x2079)
#define DI_AFBCE_RQUANT_LUT_4 (0x207a)
#define DI_AFBCE_YUV_FORMAT_CONV_MODE (0x207b)
#define DI_AFBCE_DUMMY_DATA (0x207c)
#define DI_AFBCE_CLR_FLAG (0x207d)
#define DI_AFBCE_STA_FLAGT (0x207e)
#define DI_AFBCE_MMU_NUM (0x207f) /*read only*/
#define DI_AFBCE_MMU_RMIF_CTRL1 (0x2080)
#define DI_AFBCE_MMU_RMIF_CTRL2 (0x2081)
#define DI_AFBCE_MMU_RMIF_CTRL3 (0x2082)
#define DI_AFBCE_MMU_RMIF_CTRL4 (0x2083)
#define DI_AFBCE_MMU_RMIF_SCOPE_X (0x2084)
#define DI_AFBCE_MMU_RMIF_SCOPE_Y (0x2085)
#define DI_AFBCE_MMU_RMIF_RO_STAT (0x2086)
#endif
/* AFBCE bits index */
#define E_AFBCE_AFBCE_ST (0)
#define E_AFBCE_ENC_EN (1)
#define E_AFBCE_ENC_EN_MODE (2)
#define E_AFBCE_ENC_RST_MODE (3)
#define E_AFBCE_AFBCE_SYNC_SEL (4)
#define E_AFBCE_GCLK_CTRL (5)
#define E_AFBCE_REG_FMT444_CMB (6)
#define E_AFBCE_BURST_MODE (7)
#define E_AFBCE_HOLD_LINE_NUM (8)
#define E_AFBCE_MIF_URGENT (9)
#define E_AFBCE_REV_MODE (10)
#define E_AFBCE_SOFT_RST (11)
#define E_AFBCE_V_IN (12)
#define E_AFBCE_H_IN (13)
#define E_AFBCE_VBLK_SIZE (14)
#define E_AFBCE_HBLK_SIZE (15)
#define E_AFBCE_HEAD_BADDR (16)
#define E_AFBCE_MMU_PAGE_SIZE (17)
#define E_AFBCE_UNCMP_SIZE (18)
#define E_AFBCE_CMD_BLK_SIZE (19)
#define E_AFBCE_DDR_BLK_SIZE (20)
#define E_AFBCE_ENC_WIN_BGN_H (21)
#define E_AFBCE_ENC_WIN_END_H (22)
#define E_AFBCE_ENC_WIN_BGN_V (23)
#define E_AFBCE_ENC_WIN_END_V (24)
#define E_AFBCE_LBUF_DEPTH (25)
#define E_AFBCE_FMT_YBUF_DEPTH (26)
#define E_AFBCE_BLK_BGN_H (27)
#define E_AFBCE_BLK_END_H (28)
#define E_AFBCE_BLK_BGN_V (29)
#define E_AFBCE_BLK_END_V (30)
#define E_AFBCE_COMPBITS_Y (31)
#define E_AFBCE_COMPBITS_C (32)
#define E_AFBCE_FORMAT_MODE (33)
#define E_AFBCE_FORCE_ORDER_EN (34)
#define E_AFBCE_FORCE_ORDER_VALUE (35)
#define E_AFBCE_DWDS_PADDING_UV128 (36)
#define E_AFBCE_INPUT_PADDING_UV128 (37)
#define E_AFBCE_UNCOMPRESS_SPLIT_MODE (38)
#define E_AFBCE_ENABLE_16X4BLOCK (39)
#define E_AFBCE_MINVAL_YENC_EN (40)
#define E_AFBCE_DISABLE_ORDER_I0 (41)
#define E_AFBCE_DISABLE_ORDER_I1 (42)
#define E_AFBCE_DISABLE_ORDER_I2 (43)
#define E_AFBCE_DISABLE_ORDER_I3 (44)
#define E_AFBCE_DISABLE_ORDER_I4 (45)
#define E_AFBCE_DISABLE_ORDER_I5 (46)
#define E_AFBCE_DISABLE_ORDER_I6 (47)
#define E_AFBCE_ADPT_XINTERLEAVE_CHRM_RIDE (48)
#define E_AFBCE_ADPT_XINTERLEAVE_LUMA_RIDE (49)
#define E_AFBCE_ADPT_YINTERLEAVE_CHRM_RIDE (50)
#define E_AFBCE_ADPT_YINTERLEAVE_LUMA_RIDE (51)
#define E_AFBCE_ADPT_INTERLEAVE_CMODE (52)
#define E_AFBCE_ADPT_INTERLEAVE_YMODE (53)
#define E_AFBCE_DWSCALAR_H1 (54)
#define E_AFBCE_DWSCALAR_H0 (55)
#define E_AFBCE_DWSCALAR_W1 (56)
#define E_AFBCE_DWSCALAR_W0 (57)
#define E_AFBCE_ENC_DEFALUTCOLOR_0 (58)
#define E_AFBCE_ENC_DEFALUTCOLOR_3 (59)
#define E_AFBCE_ENC_DEFALUTCOLOR_1 (60)
#define E_AFBCE_ENC_DEFALUTCOLOR_2 (61)
#define E_AFBCE_QUANT_EN0 (62)
#define E_AFBCE_QUANT_EN1 (63)
#define E_AFBCE_BCLEAV_OFST (64)
#define E_AFBCE_QUANT_EXP_EN0 (65)
#define E_AFBCE_QUANT_EXP_EN1 (66)
#define E_AFBCE_IQUANT_YCLUT_0_4 (67)
#define E_AFBCE_IQUANT_YCLUT_0_5 (68)
#define E_AFBCE_IQUANT_YCLUT_0_6 (69)
#define E_AFBCE_IQUANT_YCLUT_0_7 (70)
#define E_AFBCE_IQUANT_YCLUT_0_8 (71)
#define E_AFBCE_IQUANT_YCLUT_0_9 (72)
#define E_AFBCE_IQUANT_YCLUT_0_10 (73)
#define E_AFBCE_IQUANT_YCLUT_0_11 (74)
#define E_AFBCE_IQUANT_YCLUT_0_0 (75)
#define E_AFBCE_IQUANT_YCLUT_0_1 (76)
#define E_AFBCE_IQUANT_YCLUT_0_2 (77)
#define E_AFBCE_IQUANT_YCLUT_0_3 (78)
#define E_AFBCE_IQUANT_YCLUT_1_4 (79)
#define E_AFBCE_IQUANT_YCLUT_1_5 (80)
#define E_AFBCE_IQUANT_YCLUT_1_6 (81)
#define E_AFBCE_IQUANT_YCLUT_1_7 (82)
#define E_AFBCE_IQUANT_YCLUT_1_8 (83)
#define E_AFBCE_IQUANT_YCLUT_1_9 (84)
#define E_AFBCE_IQUANT_YCLUT_1_10 (85)
#define E_AFBCE_IQUANT_YCLUT_1_11 (86)
#define E_AFBCE_IQUANT_YCLUT_1_0 (87)
#define E_AFBCE_IQUANT_YCLUT_1_1 (88)
#define E_AFBCE_IQUANT_YCLUT_1_2 (89)
#define E_AFBCE_IQUANT_YCLUT_1_3 (90)
#define E_AFBCE_RQUANT_YCLUT_0_4 (91)
#define E_AFBCE_RQUANT_YCLUT_0_5 (92)
#define E_AFBCE_RQUANT_YCLUT_0_6 (93)
#define E_AFBCE_RQUANT_YCLUT_0_7 (94)
#define E_AFBCE_RQUANT_YCLUT_0_8 (95)
#define E_AFBCE_RQUANT_YCLUT_0_9 (96)
#define E_AFBCE_RQUANT_YCLUT_0_10 (97)
#define E_AFBCE_RQUANT_YCLUT_0_11 (98)
#define E_AFBCE_RQUANT_YCLUT_0_0 (99)
#define E_AFBCE_RQUANT_YCLUT_0_1 (100)
#define E_AFBCE_RQUANT_YCLUT_0_2 (101)
#define E_AFBCE_RQUANT_YCLUT_0_3 (102)
#define E_AFBCE_RQUANT_YCLUT_1_4 (103)
#define E_AFBCE_RQUANT_YCLUT_1_5 (104)
#define E_AFBCE_RQUANT_YCLUT_1_6 (105)
#define E_AFBCE_RQUANT_YCLUT_1_7 (106)
#define E_AFBCE_RQUANT_YCLUT_1_8 (107)
#define E_AFBCE_RQUANT_YCLUT_1_9 (108)
#define E_AFBCE_RQUANT_YCLUT_1_10 (109)
#define E_AFBCE_RQUANT_YCLUT_1_11 (110)
#define E_AFBCE_RQUANT_YCLUT_1_0 (111)
#define E_AFBCE_RQUANT_YCLUT_1_1 (112)
#define E_AFBCE_RQUANT_YCLUT_1_2 (113)
#define E_AFBCE_RQUANT_YCLUT_1_3 (114)
#define E_AFBCE_MODE_422TO420 (115)
#define E_AFBCE_MODE_444TO422 (116)
#define E_AFBCE_DUMMY_DATA (117)
#define E_AFBCE_FRM_END_CLR (118)
#define E_AFBCE_ENC_ERROR_CLR (119)
#define E_AFBCE_PACK_MODE (120)
#define E_AFBCE_X_REV (121)
#define E_AFBCE_Y_REV (122)
#define E_AFBCE_LITTLE_ENDIAN (123)
#define E_AFBCE_SWAP_64BIT (124)
#define E_AFBCE_BURST_LEN (125)
#define E_AFBCE_CMD_REQ_SIZE (126)
#define E_AFBCE_CMD_INTR_LEN (127)
#define E_AFBCE_CANVAS_ID (128)
#define E_AFBCE_SYNC_SEL (129)
#define E_AFBCE_UNGENT_CTRL (130)
#define E_AFBCE_RMIF_GCLK_CTRL (131)
#define E_AFBCE_SW_RST (132)
#define E_AFBCE_STRIDE (133)
#define E_AFBCE_ACC_MODE (134)
#define E_AFBCE_BADDR (135)
#define E_AFBCE_X_START (136)
#define E_AFBCE_X_END (137)
#define E_AFBCE_Y_START (138)
#define E_AFBCE_Y_END (139)
#define E_AFBCE_STATUS (140)
/********************************************************************/
/* bits define */
#ifdef MARK_SC2
#define AFBCE_ENABLE (0x41a0)
#define AFBCE_MODE (0x41a1)
#define AFBCE_SIZE_IN (0x41a2)
#define AFBCE_BLK_SIZE_IN (0x41a3)
#define AFBCE_HEAD_BADDR (0x41a4)
#define AFBCE_MIF_SIZE (0x41a5)
#define AFBCE_PIXEL_IN_HOR_SCOPE (0x41a6)
#define AFBCE_PIXEL_IN_VER_SCOPE (0x41a7)
#define AFBCE_CONV_CTRL (0x41a8)
#define AFBCE_MIF_HOR_SCOPE (0x41a9)
#define AFBCE_MIF_VER_SCOPE (0x41aa)
/**/
#define AFBCE_FORMAT (0x41ad)
#define AFBCE_DEFCOLOR_1 (0x41b0)
#define AFBCE_DEFCOLOR_2 (0x41b1)
#define AFBCE_QUANT_ENABLE (0x41b2)
#define AFBCE_MMU_NUM (0x41bf)
#define AFBCE_MMU_RMIF_CTRL1 (0x41c0)
#define AFBCE_MMU_RMIF_CTRL2 (0x41c1)
#define AFBCE_MMU_RMIF_CTRL3 (0x41c2)
#define AFBCE_MMU_RMIF_CTRL4 (0x41c3)
#define AFBCE_MMU_RMIF_SCOPE_X (0x41c4)
#define AFBCE_MMU_RMIF_SCOPE_Y (0x41c5)
#endif
union AFBCE_ENABLE_BITS {
unsigned int d32;
struct {
unsigned int afbce_st:1, /* bit 0 */
//afbce_st Afbce start encod pulse,
//active when AFBCE_ENABLE[12] high
reserved3:7,
enc_en:1, /* bit 8 */
reserved2:3,
enc_en_mode:1, /* bit 12? */
/* enc_en_mode:default = 0, */
//1: chose pulse staert mode,
//need write a pule by AFBCE_ENABLE[0],
//0: automatic start
enc_rst_mode:1, /* bit[13] ?*/
reserved1:2,
afbce_sync_sel:4, /* bit[19:16]? */
gclk_ctrl:12; /* bit[31:20]? */
} b;
};
union AFBCE_MODE_BITS {
unsigned int d32;
struct {
unsigned int reg_fmt444_cmb:1,/* bit[0] ?*/
reserved3:13,
burst_mode:2, /* bit[15:14] */
hold_line_num:7, /* bit[22:16] */
reserved2:1,
mif_urgent:2, /* bit[25:24] */
rev_mode:2, /* bit[27:26] */
reserved1:1,
soft_rst:3; /* bit[31:29] */
} b;
};
union AFBCE_SIZE_IN_BITS {
unsigned int d32;
struct {
unsigned int v_in:13, /* bit[12:0] */
reserved2:3,
h_in:13, /* bit[28:16] */
reserved1:3;
} b;
};
union AFBCE_BLK_SIZE_IN_BITS {
unsigned int d32;
struct {
unsigned int vblk_size:13, /* bit[12:0] */
reserved2:3,
hblk_size:13, /* bit[28:16] */
reserved1:3;
} b;
};
#ifdef MARK_SC2
union AFBCE_HEAD_BADDR_BITS {
unsigned int d32;
struct {
unsigned int head_baddr:32;
} b;
};
#endif
union AFBCE_MIF_SIZE_BITS {
unsigned int d32;
struct {
unsigned int mmu_page_size:16, /* bit[15:0] ?*/
uncmp_size:5, /* bit[20:16] */
reserved3:3,
cmd_blk_size:3, /* bit[26:24] */
reserved2:1,
ddr_blk_size:2, /* bit[29:28] */
reserved1:2;
} b;
};
union AFBCE_PIXEL_IN_HOR_SCOPE_BITS {
unsigned int d32;
struct {
unsigned int enc_win_bgn_h:13, /* bit[12:0] */
reserved2:3,
enc_win_end_h:13, /* bit[28:16] */
reserved1:3;
} b;
};
union AFBCE_PIXEL_IN_VER_SCOPE_BITS {
unsigned int d32;
struct {
unsigned int enc_win_bgn_v:13, /* bit[12:0] */
reserved2:3,
enc_win_end_v:13, /* bit[28:16] */
reserved1:3;
} b;
};
union AFBCE_CONV_CTRL_BITS { /*diff with ucode, need check if err*/
unsigned int d32;
struct {
unsigned int lbuf_depth:12, /* bit[11:0] */
reserved2:4,
fmt_ybuf_depth:13, /* bit[28:16] ?*/
reserved1:3;
} b;
};
union AFBCE_MIF_HOR_SCOPE_BITS {
unsigned int d32;
struct {
unsigned int blk_bgn_h:10, /* bit[9:0] */
reserved2:6,
blk_end_h:10, /* bit[25:16] */
reserved1:6;
} b;
};
union AFBCE_MIF_VER_SCOPE_BITS {
unsigned int d32;
struct {
unsigned int blk_bgn_v:12, /* bit[11:0] */
reserved2:4,
blk_end_v:12, /* bit[27:16] */
reserved1:4;
} b;
};
/**/
union AFBCE_FORMAT_BITS {
unsigned int d32;
struct {
unsigned int compbits_y:4, /* bit[3:0] */
compbits_c:4, /* bit[7:4] */
format_mode:2, /* bit[9:8]? */
reserved1:22;
} b;
};
/**/
union AFBCE_DEFCOLOR_1_BITS {
unsigned int d32;
struct {
unsigned int enc_defalutcolor_0:12, /* bit[11:0] */
enc_defalutcolor_3:12, /* bit[23:12] */
reserved1:8;
} b;
};
union AFBCE_DEFCOLOR_2_BITS {
unsigned int d32;
struct {
unsigned int enc_defalutcolor_1:12, /* bit[11:0] */
enc_defalutcolor_2:12, /* bit[23:12] */
reserved1:8;
} b;
};
union AFBCE_QUANT_ENABLE_BITS {
unsigned int d32;
struct {
unsigned int quant_en0:1, /* bit[0] */
reserved3:3,
quant_en1:1, /* bit[4] */
reserved2:3,
bcleav_ofst:2, /* bit[9:8] */
quant_exp_en0:1, /* bit[10] ?*/
quant_exp_en1:1, /* bit[11] ?*/
reserved1:20;
} b;
};
union AFBCE_MMU_RMIF_CTRL1_BITS {
unsigned int d32;
struct {
unsigned int pack_mode:3, /* bit[2:0] */
reserved3:1,
x_rev:1, /* bit[4] */
y_rev:1, /* bit[5] */
little_endian:1, /* bit[6] */
swap_64bit:1, /* bit[7] */
burst_len:2, /* bit[9:8] */
cmd_req_size:2, /* bit[11:10] */
cmd_intr_len:3, /* bit[14:12] */
reserved2:1,
canvas_id:8, /* bit[23:16] */
sync_sel:2, /* bit[25:24] */
reserved1:6;
} b;
};
union AFBCE_MMU_RMIF_CTRL2_BITS {
unsigned int d32;
struct {
unsigned int ungent_ctrl:17, /* bit[16:0] */
reserved2:1,
gclk_ctrl:6, /* bit[23:18] */
reserved1:6, /* bit[29:24] */
sw_rst:2; /* bit[31:30] */
} b;
};
union AFBCE_MMU_RMIF_CTRL3_BITS {
unsigned int d32;
struct {
unsigned int stride:13, /* bit[12:0] */
reserved2:3,
acc_mode:1, /* bit[16] */
reserved1:15;
} b;
};
#ifdef MARK_SC2
union AFBCE_MMU_RMIF_CTRL4_BITS {
unsigned int d32;
struct {
unsigned int baddr:32;
} b;
};
#endif
union AFBCE_MMU_RMIF_SCOPE_X_BITS {
unsigned int d32;
struct {
unsigned int x_start:13, /* bit[12:0] */
reserved2:3,
x_end:13, /* bit[28:16] */
reserved1:3;
} b;
};
union AFBCE_MMU_RMIF_SCOPE_Y_BITS {
unsigned int d32;
struct {
unsigned int y_start:13, /* bit[12:0] */
reserved2:3,
y_end:13, /* bit[28:16] */
reserved1:3;
} b;
};
//ary-----
struct afbce_bits_s {
union AFBCE_ENABLE_BITS enable; /*0*/
union AFBCE_MODE_BITS mode; /*1*/
union AFBCE_SIZE_IN_BITS size_in; /*2*/
union AFBCE_BLK_SIZE_IN_BITS blk_size_in; /*3*/
unsigned int head_baddr; /*4*/
union AFBCE_MIF_SIZE_BITS mif_size; /*5*/
union AFBCE_PIXEL_IN_HOR_SCOPE_BITS pixel_in_h_scope; /*6*/
union AFBCE_PIXEL_IN_VER_SCOPE_BITS pixel_in_v_scope; /*7*/
union AFBCE_CONV_CTRL_BITS conv_ctrl; /*8*/
union AFBCE_MIF_HOR_SCOPE_BITS mif_h_scope; /*9*/
union AFBCE_MIF_VER_SCOPE_BITS mif_v_scope; /*10*/
/**/
union AFBCE_FORMAT_BITS format; /*11*/
/**/
union AFBCE_DEFCOLOR_1_BITS defcolor_1; /*12*/
union AFBCE_DEFCOLOR_2_BITS defcolor_2; /*13*/
union AFBCE_QUANT_ENABLE_BITS quant_en; /*14*/
//unsigned int mmu_num;
union AFBCE_MMU_RMIF_CTRL1_BITS mmu_rmif_ctr1; /*15*/
union AFBCE_MMU_RMIF_CTRL2_BITS mmu_rmif_ctr2; /*16*/
union AFBCE_MMU_RMIF_CTRL3_BITS mmu_rmif_ctr3; /*17*/
unsigned int mmu_rmif_ctr4_baddr; /*18*/
union AFBCE_MMU_RMIF_SCOPE_X_BITS mmu_rmif_scope_x; /*19*/
union AFBCE_MMU_RMIF_SCOPE_Y_BITS mmu_rmif_scope_y; /*20*/
};
//ary not use?-----
//#define AFBCE_MODE_EN (0x41ae)
union AFBCE_MODE_EN_BITS {
unsigned int d32;
struct {
unsigned int force_order_en:1,
force_order_value:3,
dwds_padding_uv128:1,
input_padding_uv128:1,
reserved4:2,
uncompress_split_mode:1,
enable_16x4block:1,
minval_yenc_en:1,
reserved3:1,
disable_order_i0:1,
disable_order_i1:1,
disable_order_i2:1,
disable_order_i3:1,
disable_order_i4:1,
disable_order_i5:1,
disable_order_i6:1,
reserved2:1,
adpt_xinterleave_chrm_ride:1,
adpt_xinterleave_luma_ride:1,
adpt_yinterleave_chrm_ride:1,
adpt_yinterleave_luma_ride:1,
adpt_interleave_cmode:1,
adpt_interleave_ymode:1,
reserved1:6;
} b;
};
//#define AFBCE_DWSCALAR (0x41af)
union AFBCE_DWSCALAR_BITS {
unsigned int d32;
struct {
unsigned int dwscalar_h1:2,
dwscalar_h0:2,
dwscalar_w1:2,
dwscalar_w0:2,
reserved1:24;
} b;
};
//#define AFBCE_IQUANT_LUT_1 (0x41b3)
union AFBCE_IQUANT_LUT_1_BITS {
unsigned int d32;
struct {
unsigned int iquant_yclut_0_4:3,
reserved8:1,
iquant_yclut_0_5:3,
reserved7:1,
iquant_yclut_0_6:3,
reserved6:1,
iquant_yclut_0_7:3,
reserved5:1,
iquant_yclut_0_8:3,
reserved4:1,
iquant_yclut_0_9:3,
reserved3:1,
iquant_yclut_0_10:3,
reserved2:1,
iquant_yclut_0_11:3,
reserved1:1;
} b;
};
//#define AFBCE_IQUANT_LUT_2 (0x41b4)
union AFBCE_IQUANT_LUT_2_BITS {
unsigned int d32;
struct {
unsigned int iquant_yclut_0_0:3,
reserved4:1,
iquant_yclut_0_1:3,
reserved3:1,
iquant_yclut_0_2:3,
reserved2:1,
iquant_yclut_0_3:3,
reserved1:17;
} b;
};
//#define AFBCE_IQUANT_LUT_3 (0x41b5)
union AFBCE_IQUANT_LUT_3_BITS {
unsigned int d32;
struct {
unsigned int iquant_yclut_1_4:3,
reserved8:1,
iquant_yclut_1_5:3,
reserved7:1,
iquant_yclut_1_6:3,
reserved6:1,
iquant_yclut_1_7:3,
reserved5:1,
iquant_yclut_1_8:3,
reserved4:1,
iquant_yclut_1_9:3,
reserved3:1,
iquant_yclut_1_10:3,
reserved2:1,
iquant_yclut_1_11:3,
reserved1:1;
} b;
};
//#define AFBCE_IQUANT_LUT_4 (0x41b6)
union AFBCE_IQUANT_LUT_4_BITS {
unsigned int d32;
struct {
unsigned int iquant_yclut_1_0:3,
reserved4:1,
iquant_yclut_1_1:3,
reserved3:1,
iquant_yclut_1_2:3,
reserved2:1,
iquant_yclut_1_3:3,
reserved1:17;
} b;
};
//#define AFBCE_RQUANT_LUT_1 (0x41b7)
union AFBCE_RQUANT_LUT_1_BITS {
unsigned int d32;
struct {
unsigned int rquant_yclut_0_4:3,
reserved8:1,
rquant_yclut_0_5:3,
reserved7:1,
rquant_yclut_0_6:3,
reserved6:1,
rquant_yclut_0_7:3,
reserved5:1,
rquant_yclut_0_8:3,
reserved4:1,
rquant_yclut_0_9:3,
reserved3:1,
rquant_yclut_0_10:3,
reserved2:1,
rquant_yclut_0_11:3,
reserved1:1;
} b;
};
//#define AFBCE_RQUANT_LUT_2 (0x41b8)
union AFBCE_RQUANT_LUT_2_BITS {
unsigned int d32;
struct {
unsigned int rquant_yclut_0_0:3,
reserved4:1,
rquant_yclut_0_1:3,
reserved3:1,
rquant_yclut_0_2:3,
reserved2:1,
rquant_yclut_0_3:3,
reserved1:17;
} b;
};
//#define AFBCE_RQUANT_LUT_3 (0x41b9)
union AFBCE_RQUANT_LUT_3_BITS {
unsigned int d32;
struct {
unsigned int rquant_yclut_1_4:3,
reserved8:1,
rquant_yclut_1_5:3,
reserved7:1,
rquant_yclut_1_6:3,
reserved6:1,
rquant_yclut_1_7:3,
reserved5:1,
rquant_yclut_1_8:3,
reserved4:1,
rquant_yclut_1_9:3,
reserved3:1,
rquant_yclut_1_10:3,
reserved2:1,
rquant_yclut_1_11:3,
reserved1:1;
} b;
};
//#define AFBCE_RQUANT_LUT_4 (0x41ba)
union AFBCE_RQUANT_LUT_4_BITS {
unsigned int d32;
struct {
unsigned int rquant_yclut_1_0:3,
reserved4:1,
rquant_yclut_1_1:3,
reserved3:1,
rquant_yclut_1_2:3,
reserved2:1,
rquant_yclut_1_3:3,
reserved1:17;
} b;
};
//#define AFBCE_YUV_FORMAT_CONV_MODE (0x41bb)
union AFBCE_YUV_FORMAT_CONV_MODE_BITS {
unsigned int d32;
struct {
unsigned int mode_422to420:3,
reserved2:1,
mode_444to422:3,
reserved1:25;
} b;
};
//#define AFBCE_DUMMY_DATA (0x41bc)
union AFBCE_DUMMY_DATA_BITS {
unsigned int d32;
struct {
unsigned int dummy_data:30,
reserved1:2;
} b;
};
//#define AFBCE_CLR_FLAG (0x41bd)
union AFBCE_CLR_FLAG_BITS {
unsigned int d32;
struct {
unsigned int frm_end_clr:1,
enc_error_clr:1,
reserved1:30;
} b;
};
/* read only */
//#define AFBCE_STAT1 (0x41ab)
//#define AFBCE_STAT2 (0x410c)
//#define AFBCE_STA_FLAGT (0x41be)
//#define AFBCE_MMU_RMIF_RO_STAT (0x41c6)
union AFBCE_MMU_RMIF_RO_STAT_BITS {
unsigned int d32;
struct {
unsigned int status:16,
reserved1:16;
} b;
};
/**/
struct afbce_ctr_s {
union {
unsigned int d32;
struct {
//unsigned int support : 1;
unsigned int int_flg : 1; /*addr ini*/
unsigned int en : 1;
unsigned int rev1 : 2;
unsigned int chg_level : 2;
unsigned int rev2 : 26;
} b;
};
unsigned int l_vtype;
unsigned int l_h;
unsigned int l_w;
unsigned int l_bitdepth;
unsigned int addr_h;
unsigned int addr_b;
/*need set as config*/
unsigned int compbits_y;/*bits num after compression*/
unsigned int compbits_c;
unsigned int format_mode;/*0:444 1:422 2:420*/
unsigned int loosy_mode;
/*loosy_mode*/
//0:close 1:luma lossy 2:chrma lossy 3: luma & chrma lossy
unsigned int rev_mode;
};
struct reg_afbce_s {
unsigned int support;
struct afbce_ctr_s ctr;
union {
struct afbce_bits_s bits;
unsigned int d32[DIM_AFBCE_UP_NUB];
};
unsigned int addr[DIM_AFBCE_NUB];
};
#endif /*__REG_BITS_AFBCE_H__*/