100 lines
2.4 KiB
C
100 lines
2.4 KiB
C
/*
|
|
* Copyright (C) Cvitek Co., Ltd. 2019-2020. All rights reserved.
|
|
*
|
|
* File Name: cvi_base.h
|
|
* Description:
|
|
*/
|
|
|
|
|
|
#ifndef _U_CVI_BASE_H_
|
|
#define _U_CVI_BASE_H_
|
|
|
|
#include <linux/types.h>
|
|
|
|
struct base_statesignal32 {
|
|
unsigned int signr;
|
|
unsigned int context;
|
|
};
|
|
|
|
struct base_statesignal {
|
|
unsigned int signr;
|
|
void *context;
|
|
};
|
|
|
|
enum base_state_e {
|
|
BASE_STATE_NORMAL = 0, /* init state or after user space resume is complete. */
|
|
BASE_STATE_SUSPEND_PREPARE, /* enter when suspend prepare is notified. */
|
|
BASE_STATE_SUSPEND, /* enter after user space suspend is done. */
|
|
BASE_STATE_RESUME, /* enter when suspend post is notified. */
|
|
BASE_STATE_NUM
|
|
};
|
|
|
|
/* chip ID list */
|
|
enum ENUM_CHIP_ID {
|
|
E_CHIPID_CV1822 = 0, //0
|
|
E_CHIPID_CV1832, //1
|
|
E_CHIPID_CV1835, //2
|
|
E_CHIPID_CV1838, //3
|
|
E_CHIPID_CV1829, //4
|
|
E_CHIPID_CV1826, //5
|
|
E_CHIPID_CV1821, //6
|
|
E_CHIPID_CV1820, //7
|
|
E_CHIPID_CV1823, //8
|
|
E_CHIPID_CV1825, //9
|
|
// cv181 chips
|
|
E_CHIPID_CV1820A, //10
|
|
E_CHIPID_CV1821A, //11
|
|
E_CHIPID_CV1822A, //12
|
|
E_CHIPID_CV1823A, //13
|
|
E_CHIPID_CV1825A, //14
|
|
E_CHIPID_CV1826A, //15
|
|
E_CHIPID_CV1810C, //16
|
|
E_CHIPID_CV1811C, //17
|
|
E_CHIPID_CV1812C, //18
|
|
E_CHIPID_CV1811H, //19
|
|
E_CHIPID_CV1812H, //20
|
|
E_CHIPID_CV1813H, //21
|
|
// cv180 chips
|
|
E_CHIPID_CV1800B, //22
|
|
E_CHIPID_CV1801B, //23
|
|
E_CHIPID_CV1800C, //24
|
|
E_CHIPID_CV1801C, //25
|
|
};
|
|
|
|
/* chip version list */
|
|
enum ENUM_CHIP_VERSION {
|
|
E_CHIPVERSION_U01 = 1, //1
|
|
E_CHIPVERSION_U02, //2
|
|
};
|
|
|
|
/* chip power on reason list */
|
|
enum ENUM_CHIP_PWR_ON_REASON {
|
|
E_CHIP_PWR_ON_COLDBOOT = 1, //1
|
|
E_CHIP_PWR_ON_WDT, //2
|
|
E_CHIP_PWR_ON_SUSPEND, //3
|
|
E_CHIP_PWR_ON_WARM_RST, //4
|
|
};
|
|
|
|
struct vb_ext_control {
|
|
__u32 id;
|
|
__u32 reserved[1];
|
|
union {
|
|
__s32 value;
|
|
__s64 value64;
|
|
void *ptr;
|
|
};
|
|
} __attribute__ ((packed));
|
|
|
|
#define IOCTL_BASE_MAGIC 's'
|
|
#define IOCTL_READ_CHIP_ID _IOR(IOCTL_BASE_MAGIC, 1, unsigned int)
|
|
#define IOCTL_READ_CHIP_VERSION _IOR(IOCTL_BASE_MAGIC, 2, unsigned int)
|
|
#define IOCTL_STATESIG _IOW(IOCTL_BASE_MAGIC, 3, struct base_statesignal)
|
|
#define IOCTL_STATESIG32 _IOW(IOCTL_BASE_MAGIC, 3, struct base_statesignal32)
|
|
#define IOCTL_READ_STATE _IOR(IOCTL_BASE_MAGIC, 4, unsigned int)
|
|
#define IOCTL_USER_SUSPEND_DONE _IOR(IOCTL_BASE_MAGIC, 5, unsigned int)
|
|
#define IOCTL_USER_RESUME_DONE _IOR(IOCTL_BASE_MAGIC, 6, unsigned int)
|
|
#define IOCTL_READ_CHIP_PWR_ON_REASON _IOR(IOCTL_BASE_MAGIC, 7, unsigned int)
|
|
#define IOCTL_VB_CMD _IOWR(IOCTL_BASE_MAGIC, 8, struct vb_ext_control)
|
|
|
|
#endif // _U_CVI_BASE_H_
|