1 #ifndef __UAPI_CAM_LRME_H__
2 #define __UAPI_CAM_LRME_H__
3 
4 #include "cam_defs.h"
5 
6 
7 enum CAM_LRME_IO_TYPE {
8 	CAM_LRME_IO_TYPE_TAR,
9 	CAM_LRME_IO_TYPE_REF,
10 	CAM_LRME_IO_TYPE_RES,
11 	CAM_LRME_IO_TYPE_DS2,
12 };
13 
14 #define CAM_LRME_INPUT_PORT_TYPE_TAR (1 << 0)
15 #define CAM_LRME_INPUT_PORT_TYPE_REF (1 << 1)
16 
17 #define CAM_LRME_OUTPUT_PORT_TYPE_DS2 (1 << 0)
18 #define CAM_LRME_OUTPUT_PORT_TYPE_RES (1 << 1)
19 
20 #define CAM_LRME_DEV_MAX 1
21 
22 
23 struct cam_lrme_hw_version {
24 	uint32_t gen;
25 	uint32_t rev;
26 	uint32_t step;
27 };
28 
29 struct cam_lrme_dev_cap {
30 	struct cam_lrme_hw_version clc_hw_version;
31 	struct cam_lrme_hw_version bus_rd_hw_version;
32 	struct cam_lrme_hw_version bus_wr_hw_version;
33 	struct cam_lrme_hw_version top_hw_version;
34 	struct cam_lrme_hw_version top_titan_version;
35 };
36 
37 struct cam_lrme_query_cap_cmd {
38 	struct cam_iommu_handle device_iommu;
39 	struct cam_iommu_handle cdm_iommu;
40 	uint32_t num_devices;
41 	struct cam_lrme_dev_cap dev_caps[CAM_LRME_DEV_MAX];
42 };
43 
44 struct cam_lrme_soc_info {
45 	uint64_t clock_rate;
46 	uint64_t bandwidth;
47 	uint64_t reserved[4];
48 };
49 
50 struct cam_lrme_acquire_args {
51 	struct cam_lrme_soc_info lrme_soc_info;
52 };
53 
54 #endif /* __UAPI_CAM_LRME_H__ */
55 
56