blob: 6abe55a7336b8c21ffcb1d5d3e65b419c229bcdd [file] [log] [blame]
/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
/*
* Copyright (c) 2019 Amlogic, Inc. All rights reserved.
*/
#ifndef VPU_SECURITY_H_
#define VPU_SECURITY_H_
#include <linux/amlogic/media/vpu_secure/vpu_secure.h>
struct vpu_secure_ins {
struct mutex secure_lock;/*vpu secure mutex*/
unsigned char registered;
unsigned char secure_enable;
unsigned char secure_status;
unsigned char config_delay;
int (*reg_wr_op[VPP_TOP_MAX])(u32 addr, u32 val, u32 start, u32 len);
void (*secure_cb)(u32 arg);
};
struct vpu_security_device_info {
const char *device_name;
struct platform_device *pdev;
struct class *clsp;
int mismatch_cnt;
int probed;
struct vpu_secure_ins ins[MODULE_NUM];
};
enum vpu_security_version_e {
VPU_SEC_V1 = 1,
VPU_SEC_V2,
VPU_SEC_V3,
VPU_SEC_MAX
};
struct vpu_sec_reg_s {
u32 reg;
u32 en;
u32 start;
u32 len;
};
struct vpu_sec_bit_s {
u32 bit_changed; /* the changed src bit */
u32 current_val; /* reg val after being chagned */
};
struct sec_dev_data_s {
enum vpu_security_version_e version;
};
#endif