#define VIU_ADDR_START 0x1a00
 #define VIU_ADDR_END 0x1aff
 #define VIU_SW_RESET 0x1a01
+#define                VIU_SW_RESET_OSD1_AFBCD         BIT(31)
+#define                VIU_SW_RESET_G12A_OSD1_AFBCD    BIT(21)
+#define                VIU_SW_RESET_G12A_AFBC_ARB      BIT(19)
 #define                VIU_SW_RESET_OSD1               BIT(0)
 #define VIU_MISC_CTRL0 0x1a06
 #define                VIU_CTRL0_VD1_AFBC_MASK         0x170000
 #define VIU_MISC_CTRL1 0x1a07
+#define                MALI_AFBC_MISC                  GENMASK(15, 8)
 #define D2D3_INTF_LENGTH 0x1a08
 #define D2D3_INTF_CTRL0 0x1a09
 #define VIU_OSD1_CTRL_STAT 0x1a10
 #define                VIU_OSD1_OSD_BLK_ENABLE         BIT(0)
+#define                VIU_OSD1_OSD_MEM_MODE_LINEAR    BIT(2)
 #define                VIU_OSD1_POSTBLD_SRC_VD1        (1 << 8)
 #define                VIU_OSD1_POSTBLD_SRC_VD2        (2 << 8)
 #define                VIU_OSD1_POSTBLD_SRC_OSD1       (3 << 8)
 #define                VIU_OSD1_POSTBLD_SRC_OSD2       (4 << 8)
 #define                VIU_OSD1_OSD_ENABLE             BIT(21)
+#define                VIU_OSD1_CFG_SYN_EN             BIT(31)
 #define VIU_OSD1_CTRL_STAT2 0x1a2d
 #define VIU_OSD1_COLOR_ADDR 0x1a11
 #define VIU_OSD1_COLOR 0x1a12
 #define VIU_OSD1_FIFO_CTRL_STAT 0x1a2b
 #define VIU_OSD1_TEST_RDDATA 0x1a2c
 #define VIU_OSD1_PROT_CTRL 0x1a2e
+#define VIU_OSD1_MALI_UNPACK_CTRL 0x1a2f
+#define                VIU_OSD1_MALI_UNPACK_EN         BIT(31)
+#define                VIU_OSD1_MALI_AFBCD_R_REORDER   GENMASK(15, 12)
+#define                VIU_OSD1_MALI_AFBCD_G_REORDER   GENMASK(11, 8)
+#define                VIU_OSD1_MALI_AFBCD_B_REORDER   GENMASK(7, 4)
+#define                VIU_OSD1_MALI_AFBCD_A_REORDER   GENMASK(3, 0)
+#define                VIU_OSD1_MALI_REORDER_R         1
+#define                VIU_OSD1_MALI_REORDER_G         2
+#define                VIU_OSD1_MALI_REORDER_B         3
+#define                VIU_OSD1_MALI_REORDER_A         4
 #define VIU_OSD2_CTRL_STAT 0x1a30
 #define VIU_OSD2_CTRL_STAT2 0x1a4d
 #define VIU_OSD2_COLOR_ADDR 0x1a31
 
 /* osd afbcd on gxtvbb */
 #define OSD1_AFBCD_ENABLE 0x31a0
+#define                OSD1_AFBCD_ID_FIFO_THRD                 GENMASK(15, 9)
+#define                OSD1_AFBCD_DEC_ENABLE                   BIT(8)
+#define                OSD1_AFBCD_FRM_START                    BIT(0)
 #define OSD1_AFBCD_MODE 0x31a1
+#define                OSD1_AFBCD_SOFT_RESET                   BIT(31)
+#define                OSD1_AFBCD_AXI_REORDER_MODE             BIT(28)
+#define                OSD1_AFBCD_MIF_URGENT                   GENMASK(25, 24)
+#define                OSD1_AFBCD_HOLD_LINE_NUM                GENMASK(22, 16)
+#define                OSD1_AFBCD_RGBA_EXCHAN_CTRL             GENMASK(15, 8)
+#define                OSD1_AFBCD_HREG_BLOCK_SPLIT             BIT(6)
+#define                OSD1_AFBCD_HREG_HALF_BLOCK              BIT(5)
+#define                OSD1_AFBCD_HREG_PIXEL_PACKING_FMT       GENMASK(4, 0)
 #define OSD1_AFBCD_SIZE_IN 0x31a2
+#define                OSD1_AFBCD_HREG_VSIZE_IN                GENMASK(31, 16)
+#define                OSD1_AFBCD_HREG_HSIZE_IN                GENMASK(15, 0)
 #define OSD1_AFBCD_HDR_PTR 0x31a3
 #define OSD1_AFBCD_FRAME_PTR 0x31a4
 #define OSD1_AFBCD_CHROMA_PTR 0x31a5
 #define OSD1_AFBCD_CONV_CTRL 0x31a6
+#define                OSD1_AFBCD_CONV_LBUF_LEN                GENMASK(15, 0)
 #define OSD1_AFBCD_STATUS 0x31a8
 #define OSD1_AFBCD_PIXEL_HSCOPE 0x31a9
+#define                OSD1_AFBCD_DEC_PIXEL_BGN_H              GENMASK(31, 16)
+#define                OSD1_AFBCD_DEC_PIXEL_END_H              GENMASK(15, 0)
 #define OSD1_AFBCD_PIXEL_VSCOPE 0x31aa
+#define                OSD1_AFBCD_DEC_PIXEL_BGN_V              GENMASK(31, 16)
+#define                OSD1_AFBCD_DEC_PIXEL_END_V              GENMASK(15, 0)
 
 /* add for gxm and 962e dv core2 */
 #define DOLBY_CORE2A_SWAP_CTRL1        0x3434
 #define VPU_MAFBC_IRQ_CLEAR 0x3a02
 #define VPU_MAFBC_IRQ_MASK 0x3a03
 #define VPU_MAFBC_IRQ_STATUS 0x3a04
+#define                VPU_MAFBC_IRQ_SECURE_ID_ERROR           BIT(5)
+#define                VPU_MAFBC_IRQ_AXI_ERROR                 BIT(4)
+#define                VPU_MAFBC_IRQ_DETILING_ERROR            BIT(3)
+#define                VPU_MAFBC_IRQ_DECODE_ERROR              BIT(2)
+#define                VPU_MAFBC_IRQ_CONFIGURATION_SWAPPED     BIT(1)
+#define                VPU_MAFBC_IRQ_SURFACES_COMPLETED        BIT(0)
 #define VPU_MAFBC_COMMAND 0x3a05
+#define                VPU_MAFBC_PENDING_SWAP  BIT(1)
+#define                VPU_MAFBC_DIRECT_SWAP   BIT(0)
 #define VPU_MAFBC_STATUS 0x3a06
+#define                VPU_MAFBC_ERROR         BIT(2)
+#define                VPU_MAFBC_SWAPPING      BIT(1)
+#define                VPU_MAFBC_ACTIVE        BIT(0)
 #define VPU_MAFBC_SURFACE_CFG 0x3a07
+#define                VPU_MAFBC_CONTINUOUS_DECODING_ENABLE    BIT(16)
+#define                VPU_MAFBC_S3_ENABLE                     BIT(3)
+#define                VPU_MAFBC_S2_ENABLE                     BIT(2)
+#define                VPU_MAFBC_S1_ENABLE                     BIT(1)
+#define                VPU_MAFBC_S0_ENABLE                     BIT(0)
 #define VPU_MAFBC_HEADER_BUF_ADDR_LOW_S0 0x3a10
 #define VPU_MAFBC_HEADER_BUF_ADDR_HIGH_S0 0x3a11
 #define VPU_MAFBC_FORMAT_SPECIFIER_S0 0x3a12
+#define                VPU_MAFBC_PAYLOAD_LIMIT_EN      BIT(19)
+#define                VPU_MAFBC_TILED_HEADER_EN       BIT(18)
+#define                VPU_MAFBC_SUPER_BLOCK_ASPECT    GENMASK(17, 16)
+#define                VPU_MAFBC_BLOCK_SPLIT           BIT(9)
+#define                VPU_MAFBC_YUV_TRANSFORM         BIT(8)
+#define                VPU_MAFBC_PIXEL_FORMAT          GENMASK(3, 0)
 #define VPU_MAFBC_BUFFER_WIDTH_S0 0x3a13
 #define VPU_MAFBC_BUFFER_HEIGHT_S0 0x3a14
 #define VPU_MAFBC_BOUNDING_BOX_X_START_S0 0x3a15
 #define VPU_MAFBC_OUTPUT_BUF_ADDR_HIGH_S0 0x3a1a
 #define VPU_MAFBC_OUTPUT_BUF_STRIDE_S0 0x3a1b
 #define VPU_MAFBC_PREFETCH_CFG_S0 0x3a1c
+#define                VPU_MAFBC_PREFETCH_READ_DIRECTION_Y     BIT(1)
+#define                VPU_MAFBC_PREFETCH_READ_DIRECTION_X     BIT(0)
 
 #define VPU_MAFBC_HEADER_BUF_ADDR_LOW_S1 0x3a30
 #define VPU_MAFBC_HEADER_BUF_ADDR_HIGH_S1 0x3a31
 #define DOLBY_PATH_CTRL 0x1a0c
 #define                DOLBY_BYPASS_EN(val)            (val & 0xf)
 #define OSD_PATH_MISC_CTRL 0x1a0e
+#define                OSD_PATH_OSD_AXI_SEL_OSD1_AFBCD BIT(4)
+#define                OSD_PATH_OSD_AXI_SEL_OSD2_AFBCD BIT(5)
+#define                OSD_PATH_OSD_AXI_SEL_OSD3_AFBCD BIT(6)
 #define MALI_AFBCD_TOP_CTRL 0x1a0f
+#define                MALI_AFBCD_MANUAL_RESET         BIT(23)
 
 #define VIU_OSD_BLEND_CTRL 0x39b0
 #define                VIU_OSD_BLEND_REORDER(dest, src)      ((src) << (dest * 4))
 
 #define __MESON_VIU_H
 
 /* OSDx_BLKx_CFG */
+#define OSD_MALI_SRC_EN                BIT(30)
+
 #define OSD_CANVAS_SEL         16
 
 #define OSD_ENDIANNESS_LE      BIT(15)
 #define OSD_COLOR_MATRIX_16_RGB655     (0x00 << 2)
 #define OSD_COLOR_MATRIX_16_RGB565     (0x04 << 2)
 
+#define OSD_MALI_COLOR_MODE_R8         (0 << 8)
+#define OSD_MALI_COLOR_MODE_YUV422     (1 << 8)
+#define OSD_MALI_COLOR_MODE_RGB565     (2 << 8)
+#define OSD_MALI_COLOR_MODE_RGBA5551   (3 << 8)
+#define OSD_MALI_COLOR_MODE_RGBA4444   (4 << 8)
+#define OSD_MALI_COLOR_MODE_RGBA8888   (5 << 8)
+#define OSD_MALI_COLOR_MODE_RGB888     (7 << 8)
+#define OSD_MALI_COLOR_MODE_YUV422_10B (8 << 8)
+#define OSD_MALI_COLOR_MODE_RGBA1010102        (9 << 8)
+
 #define OSD_INTERLACE_ENABLED  BIT(1)
 #define OSD_INTERLACE_ODD      BIT(0)
 #define OSD_INTERLACE_EVEN     (0)
 
 /* OSDx_CTRL_STAT */
 #define OSD_ENABLE             BIT(21)
+#define OSD_MEM_LINEAR_ADDR    BIT(2)
 #define OSD_BLK0_ENABLE                BIT(0)
 
 #define OSD_GLOBAL_ALPHA_SHIFT 12
 
 /* OSDx_CTRL_STAT2 */
+#define OSD_DPATH_MALI_AFBCD   BIT(15)
 #define OSD_REPLACE_EN         BIT(14)
 #define OSD_REPLACE_SHIFT      6
+#define OSD_PENDING_STAT_CLEAN BIT(1)
 
 void meson_viu_osd1_reset(struct meson_drm *priv);
 void meson_viu_init(struct meson_drm *priv);