root/drivers/staging/media/meson/vdec/dos_regs.h
/* SPDX-License-Identifier: GPL-2.0+ */
/*
 * Copyright (C) 2018 BayLibre, SAS
 * Author: Maxime Jourdan <mjourdan@baylibre.com>
 */

#ifndef __MESON_VDEC_DOS_REGS_H_
#define __MESON_VDEC_DOS_REGS_H_

/* DOS registers */
#define VDEC_ASSIST_AMR1_INT8   0x00b4

#define ASSIST_MBOX1_CLR_REG    0x01d4
#define ASSIST_MBOX1_MASK       0x01d8

#define MPSR                    0x0c04
#define MCPU_INTR_MSK           0x0c10
#define CPSR                    0x0c84

#define IMEM_DMA_CTRL           0x0d00
#define IMEM_DMA_ADR            0x0d04
#define IMEM_DMA_COUNT          0x0d08
#define LMEM_DMA_CTRL           0x0d40

#define MC_STATUS0              0x2424
#define MC_CTRL1                0x242c

#define PSCALE_RST              0x2440
#define PSCALE_CTRL             0x2444
#define PSCALE_BMEM_ADDR        0x247c
#define PSCALE_BMEM_DAT         0x2480

#define DBLK_CTRL               0x2544
#define DBLK_STATUS             0x254c

#define GCLK_EN                 0x260c
#define MDEC_PIC_DC_CTRL        0x2638
#define MDEC_PIC_DC_STATUS      0x263c
#define ANC0_CANVAS_ADDR        0x2640
#define MDEC_PIC_DC_THRESH      0x26e0

/* Firmware interface registers */
#define AV_SCRATCH_0            0x2700
#define AV_SCRATCH_1            0x2704
#define AV_SCRATCH_2            0x2708
#define AV_SCRATCH_3            0x270c
#define AV_SCRATCH_4            0x2710
#define AV_SCRATCH_5            0x2714
#define AV_SCRATCH_6            0x2718
#define AV_SCRATCH_7            0x271c
#define AV_SCRATCH_8            0x2720
#define AV_SCRATCH_9            0x2724
#define AV_SCRATCH_A            0x2728
#define AV_SCRATCH_B            0x272c
#define AV_SCRATCH_C            0x2730
#define AV_SCRATCH_D            0x2734
#define AV_SCRATCH_E            0x2738
#define AV_SCRATCH_F            0x273c
#define AV_SCRATCH_G            0x2740
#define AV_SCRATCH_H            0x2744
#define AV_SCRATCH_I            0x2748
#define AV_SCRATCH_J            0x274c
#define AV_SCRATCH_K            0x2750
#define AV_SCRATCH_L            0x2754

#define MPEG1_2_REG             0x3004
#define PIC_HEAD_INFO           0x300c
#define POWER_CTL_VLD           0x3020
#define M4_CONTROL_REG          0x30a4

/* Stream Buffer (stbuf) regs */
#define VLD_MEM_VIFIFO_START_PTR        0x3100
#define VLD_MEM_VIFIFO_CURR_PTR 0x3104
#define VLD_MEM_VIFIFO_END_PTR  0x3108
#define VLD_MEM_VIFIFO_CONTROL  0x3110
        #define MEM_FIFO_CNT_BIT        16
        #define MEM_FILL_ON_LEVEL       BIT(10)
        #define MEM_CTRL_EMPTY_EN       BIT(2)
        #define MEM_CTRL_FILL_EN        BIT(1)
#define VLD_MEM_VIFIFO_WP       0x3114
#define VLD_MEM_VIFIFO_RP       0x3118
#define VLD_MEM_VIFIFO_LEVEL    0x311c
#define VLD_MEM_VIFIFO_BUF_CNTL 0x3120
        #define MEM_BUFCTRL_MANUAL      BIT(1)
#define VLD_MEM_VIFIFO_WRAP_COUNT       0x3144

#define DCAC_DMA_CTRL           0x3848

#define DOS_SW_RESET0           0xfc00
#define DOS_GCLK_EN0            0xfc04
#define DOS_GEN_CTRL0           0xfc08
#define DOS_MEM_PD_VDEC         0xfcc0
#define DOS_MEM_PD_HEVC         0xfccc
#define DOS_SW_RESET3           0xfcd0
#define DOS_GCLK_EN3            0xfcd4
#define DOS_VDEC_MCRCC_STALL_CTRL       0xfd00

#endif