mirror of
https://github.com/physwizz/a155-U-u1.git
synced 2025-09-26 19:04:54 +00:00
76 lines
1.9 KiB
C
76 lines
1.9 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Copyright (c) 2020 MediaTek Inc.
|
|
*/
|
|
#ifndef __VPU_REG_H__
|
|
#define __VPU_REG_H__
|
|
|
|
#include <linux/io.h>
|
|
#include "vpu_cfg.h"
|
|
#include "vpu_cmn.h"
|
|
|
|
/* Spare Register - Enum */
|
|
enum {
|
|
VPU_CMD_DO_EXIT = 0x00,
|
|
VPU_CMD_DO_LOADER = 0x01,
|
|
VPU_CMD_DO_D2D = 0x22,
|
|
VPU_CMD_DO_D2D_EXT = 0x24,
|
|
VPU_CMD_SET_DEBUG = 0x40,
|
|
VPU_CMD_SET_FTRACE_LOG = 0x42,
|
|
|
|
/* Extend for test */
|
|
VPU_CMD_EXT_BUSY = 0xF0,
|
|
VPU_CMD_DO_D2D_EXT_TEST = 0x80000024
|
|
};
|
|
|
|
/* host side state */
|
|
enum {
|
|
VPU_STATE_NOT_READY = 0x00,
|
|
VPU_STATE_READY = 0x01,
|
|
VPU_STATE_IDLE = 0x02,
|
|
VPU_STATE_BUSY = 0x04,
|
|
VPU_STATE_ERROR = 0x08,
|
|
VPU_STATE_TERMINATED = 0x10,
|
|
VPU_STATE_ABORT = 0xFF /* Aborted by driver */
|
|
};
|
|
|
|
/* device to host request */
|
|
enum {
|
|
VPU_REQ_NONE = 0,
|
|
VPU_REQ_DO_CHECK_STATE = 0x100,
|
|
VPU_REQ_DO_DUMP_LOG = 0x101,
|
|
VPU_REQ_DO_CLOSED_FILE = 0x102,
|
|
VPU_REQ_MAX = 0xFFFF,
|
|
};
|
|
|
|
/* device state, INFO17 b24..16 */
|
|
enum {
|
|
DS_DSP_RDY = 0x010000, /* boot-up done */
|
|
DS_DBG_RDY = 0x020000, /* set-debug done */
|
|
DS_ALG_RDY = 0x040000, /* do-loader done */
|
|
DS_ALG_DONE = 0x080000, /* d2d done */
|
|
DS_ALG_GOT = 0x100000, /* get-algo done */
|
|
DS_PREEMPT_RDY = 0x200000, /* context switch done */
|
|
DS_PREEMPT_DONE = 0x400000, /* d2d-ext done */
|
|
DS_FTRACE_RDY = 0x800000, /* set-ftrace done */
|
|
};
|
|
|
|
#define vpu_reg_base(vd) ((unsigned long)vd->reg.m)
|
|
|
|
#define vpu_reg_read(vd, r) \
|
|
ioread32((void *) (vpu_reg_base(vd) + (vd_reg(vd)->r)))
|
|
|
|
#define vpu_reg_write(vd, r, val) \
|
|
iowrite32(val, (void *) (vpu_reg_base(vd) + (vd_reg(vd)->r)))
|
|
|
|
#define vpu_reg_clr(vd, r, mask) \
|
|
vpu_reg_write(vd, r, vpu_reg_read(vd, r) & ~mask)
|
|
|
|
#define vpu_reg_set(vd, r, mask) \
|
|
vpu_reg_write(vd, r, vpu_reg_read(vd, r) | mask)
|
|
|
|
#define vpu_reg_read_ofs(vd, ofs) \
|
|
ioread32((void *) (vpu_reg_base(vd) + ofs))
|
|
|
|
#endif
|