1 /* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ 2 /* 3 * Copyright (c) 2016-2019, The Linux Foundation. All rights reserved. 4 */ 5 6 #ifndef __UAPI_CAM_CPAS_H__ 7 #define __UAPI_CAM_CPAS_H__ 8 9 #include <media/cam_defs.h> 10 11 #define CAM_FAMILY_CAMERA_SS 1 12 #define CAM_FAMILY_CPAS_SS 2 13 14 /* AXI BW Voting Version */ 15 #define CAM_AXI_BW_VOTING_V2 2 16 17 /* AXI BW Voting Transaction Type */ 18 #define CAM_AXI_TRANSACTION_READ 0 19 #define CAM_AXI_TRANSACTION_WRITE 1 20 21 /* AXI BW Voting Path Data Type */ 22 #define CAM_AXI_PATH_DATA_IFE_START_OFFSET 0 23 #define CAM_AXI_PATH_DATA_IFE_LINEAR (CAM_AXI_PATH_DATA_IFE_START_OFFSET + 0) 24 #define CAM_AXI_PATH_DATA_IFE_VID (CAM_AXI_PATH_DATA_IFE_START_OFFSET + 1) 25 #define CAM_AXI_PATH_DATA_IFE_DISP (CAM_AXI_PATH_DATA_IFE_START_OFFSET + 2) 26 #define CAM_AXI_PATH_DATA_IFE_STATS (CAM_AXI_PATH_DATA_IFE_START_OFFSET + 3) 27 #define CAM_AXI_PATH_DATA_IFE_RDI0 (CAM_AXI_PATH_DATA_IFE_START_OFFSET + 4) 28 #define CAM_AXI_PATH_DATA_IFE_RDI1 (CAM_AXI_PATH_DATA_IFE_START_OFFSET + 5) 29 #define CAM_AXI_PATH_DATA_IFE_RDI2 (CAM_AXI_PATH_DATA_IFE_START_OFFSET + 6) 30 #define CAM_AXI_PATH_DATA_IFE_RDI3 (CAM_AXI_PATH_DATA_IFE_START_OFFSET + 7) 31 #define CAM_AXI_PATH_DATA_IFE_PDAF (CAM_AXI_PATH_DATA_IFE_START_OFFSET + 8) 32 #define CAM_AXI_PATH_DATA_IFE_PIXEL_RAW \ 33 (CAM_AXI_PATH_DATA_IFE_START_OFFSET + 9) 34 #define CAM_AXI_PATH_DATA_IFE_MAX_OFFSET \ 35 (CAM_AXI_PATH_DATA_IFE_START_OFFSET + 31) 36 37 #define CAM_AXI_PATH_DATA_IPE_START_OFFSET 32 38 #define CAM_AXI_PATH_DATA_IPE_RD_IN (CAM_AXI_PATH_DATA_IPE_START_OFFSET + 0) 39 #define CAM_AXI_PATH_DATA_IPE_RD_REF (CAM_AXI_PATH_DATA_IPE_START_OFFSET + 1) 40 #define CAM_AXI_PATH_DATA_IPE_WR_VID (CAM_AXI_PATH_DATA_IPE_START_OFFSET + 2) 41 #define CAM_AXI_PATH_DATA_IPE_WR_DISP (CAM_AXI_PATH_DATA_IPE_START_OFFSET + 3) 42 #define CAM_AXI_PATH_DATA_IPE_WR_REF (CAM_AXI_PATH_DATA_IPE_START_OFFSET + 4) 43 #define CAM_AXI_PATH_DATA_IPE_MAX_OFFSET \ 44 (CAM_AXI_PATH_DATA_IPE_START_OFFSET + 31) 45 46 #define CAM_AXI_PATH_DATA_ALL 256 47 48 /** 49 * struct cam_cpas_query_cap - CPAS query device capability payload 50 * 51 * @camera_family : Camera family type 52 * @reserved : Reserved field for alignment 53 * @camera_version : Camera platform version 54 * @cpas_version : Camera CPAS version within camera platform 55 * 56 */ 57 struct cam_cpas_query_cap { 58 uint32_t camera_family; 59 uint32_t reserved; 60 struct cam_hw_version camera_version; 61 struct cam_hw_version cpas_version; 62 }; 63 64 /** 65 * struct cam_axi_per_path_bw_vote - Per path bandwidth vote information 66 * 67 * @usage_data client usage data (left/right/rdi) 68 * @transac_type Transaction type on the path (read/write) 69 * @path_data_type Path for which vote is given (video, display, rdi) 70 * @reserved Reserved for alignment 71 * @camnoc_bw CAMNOC bw for this path 72 * @mnoc_ab_bw MNOC AB bw for this path 73 * @mnoc_ib_bw MNOC IB bw for this path 74 * @ddr_ab_bw DDR AB bw for this path 75 * @ddr_ib_bw DDR IB bw for this path 76 */ 77 struct cam_axi_per_path_bw_vote { 78 uint32_t usage_data; 79 uint32_t transac_type; 80 uint32_t path_data_type; 81 uint32_t reserved; 82 uint64_t camnoc_bw; 83 uint64_t mnoc_ab_bw; 84 uint64_t mnoc_ib_bw; 85 uint64_t ddr_ab_bw; 86 uint64_t ddr_ib_bw; 87 }; 88 89 #endif /* __UAPI_CAM_CPAS_H__ */ 90