13d0407baSopenharmony_ci/* SPDX-License-Identifier: ((GPL-2.0+ WITH Linux-syscall-note) OR MIT) 23d0407baSopenharmony_ci * 33d0407baSopenharmony_ci * Rockchip isp2 driver 43d0407baSopenharmony_ci * Copyright (C) 2017 Rockchip Electronics Co., Ltd. 53d0407baSopenharmony_ci */ 63d0407baSopenharmony_ci 73d0407baSopenharmony_ci#ifndef _UAPI_RKISP2_CONFIG_H 83d0407baSopenharmony_ci#define _UAPI_RKISP2_CONFIG_H 93d0407baSopenharmony_ci 103d0407baSopenharmony_ci#include <linux/types.h> 113d0407baSopenharmony_ci#include <linux/v4l2-controls.h> 123d0407baSopenharmony_ci 133d0407baSopenharmony_ci#define RKISP_API_VERSION KERNEL_VERSION(1, 8, 0) 143d0407baSopenharmony_ci 153d0407baSopenharmony_ci/****************ISP SUBDEV IOCTL*****************************/ 163d0407baSopenharmony_ci 173d0407baSopenharmony_ci#define RKISP_CMD_TRIGGER_READ_BACK _IOW('V', BASE_VIDIOC_PRIVATE + 0, struct isp2x_csi_trigger) 183d0407baSopenharmony_ci 193d0407baSopenharmony_ci#define RKISP_CMD_GET_SHARED_BUF _IOR('V', BASE_VIDIOC_PRIVATE + 2, struct rkisp_thunderboot_resmem) 203d0407baSopenharmony_ci 213d0407baSopenharmony_ci#define RKISP_CMD_FREE_SHARED_BUF _IO('V', BASE_VIDIOC_PRIVATE + 3) 223d0407baSopenharmony_ci 233d0407baSopenharmony_ci#define RKISP_CMD_GET_LDCHBUF_INFO _IOR('V', BASE_VIDIOC_PRIVATE + 4, struct rkisp_ldchbuf_info) 243d0407baSopenharmony_ci 253d0407baSopenharmony_ci#define RKISP_CMD_SET_LDCHBUF_SIZE _IOW('V', BASE_VIDIOC_PRIVATE + 5, struct rkisp_ldchbuf_size) 263d0407baSopenharmony_ci 273d0407baSopenharmony_ci#define RKISP_CMD_GET_SHM_BUFFD _IOWR('V', BASE_VIDIOC_PRIVATE + 6, struct rkisp_thunderboot_shmem) 283d0407baSopenharmony_ci 293d0407baSopenharmony_ci#define RKISP_CMD_GET_FBCBUF_FD _IOR('V', BASE_VIDIOC_PRIVATE + 7, struct isp2x_buf_idxfd) 303d0407baSopenharmony_ci 313d0407baSopenharmony_ci#define RKISP_CMD_GET_MESHBUF_INFO _IOWR('V', BASE_VIDIOC_PRIVATE + 8, struct rkisp_meshbuf_info) 323d0407baSopenharmony_ci 333d0407baSopenharmony_ci#define RKISP_CMD_SET_MESHBUF_SIZE _IOW('V', BASE_VIDIOC_PRIVATE + 9, struct rkisp_meshbuf_size) 343d0407baSopenharmony_ci 353d0407baSopenharmony_ci/****************ISP VIDEO IOCTL******************************/ 363d0407baSopenharmony_ci 373d0407baSopenharmony_ci#define RKISP_CMD_GET_CSI_MEMORY_MODE _IOR('V', BASE_VIDIOC_PRIVATE + 100, int) 383d0407baSopenharmony_ci 393d0407baSopenharmony_ci#define RKISP_CMD_SET_CSI_MEMORY_MODE _IOW('V', BASE_VIDIOC_PRIVATE + 101, int) 403d0407baSopenharmony_ci 413d0407baSopenharmony_ci#define RKISP_CMD_GET_CMSK _IOR('V', BASE_VIDIOC_PRIVATE + 102, struct rkisp_cmsk_cfg) 423d0407baSopenharmony_ci 433d0407baSopenharmony_ci#define RKISP_CMD_SET_CMSK _IOW('V', BASE_VIDIOC_PRIVATE + 103, struct rkisp_cmsk_cfg) 443d0407baSopenharmony_ci 453d0407baSopenharmony_ci/*************************************************************/ 463d0407baSopenharmony_ci 473d0407baSopenharmony_ci#define ISP2X_ID_DPCC (0) 483d0407baSopenharmony_ci#define ISP2X_ID_BLS (1) 493d0407baSopenharmony_ci#define ISP2X_ID_SDG (2) 503d0407baSopenharmony_ci#define ISP2X_ID_SIHST (3) 513d0407baSopenharmony_ci#define ISP2X_ID_LSC (4) 523d0407baSopenharmony_ci#define ISP2X_ID_AWB_GAIN (5) 533d0407baSopenharmony_ci#define ISP2X_ID_BDM (7) 543d0407baSopenharmony_ci#define ISP2X_ID_CCM (8) 553d0407baSopenharmony_ci#define ISP2X_ID_GOC (9) 563d0407baSopenharmony_ci#define ISP2X_ID_CPROC (10) 573d0407baSopenharmony_ci#define ISP2X_ID_SIAF (11) 583d0407baSopenharmony_ci#define ISP2X_ID_SIAWB (12) 593d0407baSopenharmony_ci#define ISP2X_ID_IE (13) 603d0407baSopenharmony_ci#define ISP2X_ID_YUVAE (14) 613d0407baSopenharmony_ci#define ISP2X_ID_WDR (15) 623d0407baSopenharmony_ci#define ISP2X_ID_RK_IESHARP (16) 633d0407baSopenharmony_ci#define ISP2X_ID_RAWAF (17) 643d0407baSopenharmony_ci#define ISP2X_ID_RAWAE0 (18) 653d0407baSopenharmony_ci#define ISP2X_ID_RAWAE1 (19) 663d0407baSopenharmony_ci#define ISP2X_ID_RAWAE2 (20) 673d0407baSopenharmony_ci#define ISP2X_ID_RAWAE3 (21) 683d0407baSopenharmony_ci#define ISP2X_ID_RAWAWB (22) 693d0407baSopenharmony_ci#define ISP2X_ID_RAWHIST0 (23) 703d0407baSopenharmony_ci#define ISP2X_ID_RAWHIST1 (24) 713d0407baSopenharmony_ci#define ISP2X_ID_RAWHIST2 (25) 723d0407baSopenharmony_ci#define ISP2X_ID_RAWHIST3 (26) 733d0407baSopenharmony_ci#define ISP2X_ID_HDRMGE (27) 743d0407baSopenharmony_ci#define ISP2X_ID_RAWNR (28) 753d0407baSopenharmony_ci#define ISP2X_ID_HDRTMO (29) 763d0407baSopenharmony_ci#define ISP2X_ID_GIC (30) 773d0407baSopenharmony_ci#define ISP2X_ID_DHAZ (31) 783d0407baSopenharmony_ci#define ISP2X_ID_3DLUT (32) 793d0407baSopenharmony_ci#define ISP2X_ID_LDCH (33) 803d0407baSopenharmony_ci#define ISP2X_ID_GAIN (34) 813d0407baSopenharmony_ci#define ISP2X_ID_DEBAYER (35) 823d0407baSopenharmony_ci#define ISP2X_ID_MAX (36) 833d0407baSopenharmony_ci 843d0407baSopenharmony_ci#define ISP2X_MODULE_DPCC BIT_ULL(ISP2X_ID_DPCC) 853d0407baSopenharmony_ci#define ISP2X_MODULE_BLS BIT_ULL(ISP2X_ID_BLS) 863d0407baSopenharmony_ci#define ISP2X_MODULE_SDG BIT_ULL(ISP2X_ID_SDG) 873d0407baSopenharmony_ci#define ISP2X_MODULE_SIHST BIT_ULL(ISP2X_ID_SIHST) 883d0407baSopenharmony_ci#define ISP2X_MODULE_LSC BIT_ULL(ISP2X_ID_LSC) 893d0407baSopenharmony_ci#define ISP2X_MODULE_AWB_GAIN BIT_ULL(ISP2X_ID_AWB_GAIN) 903d0407baSopenharmony_ci#define ISP2X_MODULE_BDM BIT_ULL(ISP2X_ID_BDM) 913d0407baSopenharmony_ci#define ISP2X_MODULE_CCM BIT_ULL(ISP2X_ID_CCM) 923d0407baSopenharmony_ci#define ISP2X_MODULE_GOC BIT_ULL(ISP2X_ID_GOC) 933d0407baSopenharmony_ci#define ISP2X_MODULE_CPROC BIT_ULL(ISP2X_ID_CPROC) 943d0407baSopenharmony_ci#define ISP2X_MODULE_SIAF BIT_ULL(ISP2X_ID_SIAF) 953d0407baSopenharmony_ci#define ISP2X_MODULE_SIAWB BIT_ULL(ISP2X_ID_SIAWB) 963d0407baSopenharmony_ci#define ISP2X_MODULE_IE BIT_ULL(ISP2X_ID_IE) 973d0407baSopenharmony_ci#define ISP2X_MODULE_YUVAE BIT_ULL(ISP2X_ID_YUVAE) 983d0407baSopenharmony_ci#define ISP2X_MODULE_WDR BIT_ULL(ISP2X_ID_WDR) 993d0407baSopenharmony_ci#define ISP2X_MODULE_RK_IESHARP BIT_ULL(ISP2X_ID_RK_IESHARP) 1003d0407baSopenharmony_ci#define ISP2X_MODULE_RAWAF BIT_ULL(ISP2X_ID_RAWAF) 1013d0407baSopenharmony_ci#define ISP2X_MODULE_RAWAE0 BIT_ULL(ISP2X_ID_RAWAE0) 1023d0407baSopenharmony_ci#define ISP2X_MODULE_RAWAE1 BIT_ULL(ISP2X_ID_RAWAE1) 1033d0407baSopenharmony_ci#define ISP2X_MODULE_RAWAE2 BIT_ULL(ISP2X_ID_RAWAE2) 1043d0407baSopenharmony_ci#define ISP2X_MODULE_RAWAE3 BIT_ULL(ISP2X_ID_RAWAE3) 1053d0407baSopenharmony_ci#define ISP2X_MODULE_RAWAWB BIT_ULL(ISP2X_ID_RAWAWB) 1063d0407baSopenharmony_ci#define ISP2X_MODULE_RAWHIST0 BIT_ULL(ISP2X_ID_RAWHIST0) 1073d0407baSopenharmony_ci#define ISP2X_MODULE_RAWHIST1 BIT_ULL(ISP2X_ID_RAWHIST1) 1083d0407baSopenharmony_ci#define ISP2X_MODULE_RAWHIST2 BIT_ULL(ISP2X_ID_RAWHIST2) 1093d0407baSopenharmony_ci#define ISP2X_MODULE_RAWHIST3 BIT_ULL(ISP2X_ID_RAWHIST3) 1103d0407baSopenharmony_ci#define ISP2X_MODULE_HDRMGE BIT_ULL(ISP2X_ID_HDRMGE) 1113d0407baSopenharmony_ci#define ISP2X_MODULE_RAWNR BIT_ULL(ISP2X_ID_RAWNR) 1123d0407baSopenharmony_ci#define ISP2X_MODULE_HDRTMO BIT_ULL(ISP2X_ID_HDRTMO) 1133d0407baSopenharmony_ci#define ISP2X_MODULE_GIC BIT_ULL(ISP2X_ID_GIC) 1143d0407baSopenharmony_ci#define ISP2X_MODULE_DHAZ BIT_ULL(ISP2X_ID_DHAZ) 1153d0407baSopenharmony_ci#define ISP2X_MODULE_3DLUT BIT_ULL(ISP2X_ID_3DLUT) 1163d0407baSopenharmony_ci#define ISP2X_MODULE_LDCH BIT_ULL(ISP2X_ID_LDCH) 1173d0407baSopenharmony_ci#define ISP2X_MODULE_GAIN BIT_ULL(ISP2X_ID_GAIN) 1183d0407baSopenharmony_ci#define ISP2X_MODULE_DEBAYER BIT_ULL(ISP2X_ID_DEBAYER) 1193d0407baSopenharmony_ci 1203d0407baSopenharmony_ci/* 1213d0407baSopenharmony_ci * Measurement types 1223d0407baSopenharmony_ci */ 1233d0407baSopenharmony_ci#define ISP2X_STAT_SIAWB BIT(0) 1243d0407baSopenharmony_ci#define ISP2X_STAT_YUVAE BIT(1) 1253d0407baSopenharmony_ci#define ISP2X_STAT_SIAF BIT(2) 1263d0407baSopenharmony_ci#define ISP2X_STAT_SIHST BIT(3) 1273d0407baSopenharmony_ci#define ISP2X_STAT_EMB_DATA BIT(4) 1283d0407baSopenharmony_ci#define ISP2X_STAT_RAWAWB BIT(5) 1293d0407baSopenharmony_ci#define ISP2X_STAT_RAWAF BIT(6) 1303d0407baSopenharmony_ci#define ISP2X_STAT_RAWAE0 BIT(7) 1313d0407baSopenharmony_ci#define ISP2X_STAT_RAWAE1 BIT(8) 1323d0407baSopenharmony_ci#define ISP2X_STAT_RAWAE2 BIT(9) 1333d0407baSopenharmony_ci#define ISP2X_STAT_RAWAE3 BIT(10) 1343d0407baSopenharmony_ci#define ISP2X_STAT_RAWHST0 BIT(11) 1353d0407baSopenharmony_ci#define ISP2X_STAT_RAWHST1 BIT(12) 1363d0407baSopenharmony_ci#define ISP2X_STAT_RAWHST2 BIT(13) 1373d0407baSopenharmony_ci#define ISP2X_STAT_RAWHST3 BIT(14) 1383d0407baSopenharmony_ci#define ISP2X_STAT_BLS BIT(15) 1393d0407baSopenharmony_ci#define ISP2X_STAT_HDRTMO BIT(16) 1403d0407baSopenharmony_ci#define ISP2X_STAT_DHAZ BIT(17) 1413d0407baSopenharmony_ci 1423d0407baSopenharmony_ci#define ISP2X_LSC_GRAD_TBL_SIZE 8 1433d0407baSopenharmony_ci#define ISP2X_LSC_SIZE_TBL_SIZE 8 1443d0407baSopenharmony_ci#define ISP2X_LSC_DATA_TBL_SIZE 290 1453d0407baSopenharmony_ci 1463d0407baSopenharmony_ci#define ISP2X_DEGAMMA_CURVE_SIZE 17 1473d0407baSopenharmony_ci 1483d0407baSopenharmony_ci#define ISP2X_GAIN_HDRMGE_GAIN_NUM 3 1493d0407baSopenharmony_ci#define ISP2X_GAIN_IDX_NUM 15 1503d0407baSopenharmony_ci#define ISP2X_GAIN_LUT_NUM 17 1513d0407baSopenharmony_ci 1523d0407baSopenharmony_ci#define ISP2X_AWB_MAX_GRID 1 1533d0407baSopenharmony_ci#define ISP2X_RAWAWB_SUM_NUM 7 1543d0407baSopenharmony_ci#define ISP2X_RAWAWB_MULWD_NUM 8 1553d0407baSopenharmony_ci#define ISP2X_RAWAWB_RAMDATA_NUM 225 1563d0407baSopenharmony_ci 1573d0407baSopenharmony_ci#define ISP2X_RAWAEBIG_SUBWIN_NUM 4 1583d0407baSopenharmony_ci#define ISP2X_RAWAEBIG_MEAN_NUM 225 1593d0407baSopenharmony_ci#define ISP2X_RAWAELITE_MEAN_NUM 25 1603d0407baSopenharmony_ci#define ISP2X_YUVAE_SUBWIN_NUM 4 1613d0407baSopenharmony_ci#define ISP2X_YUVAE_MEAN_NUM 225 1623d0407baSopenharmony_ci 1633d0407baSopenharmony_ci#define ISP2X_RAWHISTBIG_SUBWIN_NUM 225 1643d0407baSopenharmony_ci#define ISP2X_RAWHISTLITE_SUBWIN_NUM 25 1653d0407baSopenharmony_ci#define ISP2X_SIHIST_WIN_NUM 1 1663d0407baSopenharmony_ci#define ISP2X_HIST_WEIGHT_NUM 225 1673d0407baSopenharmony_ci#define ISP2X_HIST_BIN_N_MAX 256 1683d0407baSopenharmony_ci#define ISP2X_SIHIST_BIN_N_MAX 32 1693d0407baSopenharmony_ci 1703d0407baSopenharmony_ci#define ISP2X_RAWAF_WIN_NUM 2 1713d0407baSopenharmony_ci#define ISP2X_RAWAF_LINE_NUM 5 1723d0407baSopenharmony_ci#define ISP2X_RAWAF_GAMMA_NUM 17 1733d0407baSopenharmony_ci#define ISP2X_RAWAF_SUMDATA_ROW 15 1743d0407baSopenharmony_ci#define ISP2X_RAWAF_SUMDATA_COLUMN 15 1753d0407baSopenharmony_ci#define ISP2X_RAWAF_SUMDATA_NUM 225 1763d0407baSopenharmony_ci#define ISP2X_AFM_MAX_WINDOWS 3 1773d0407baSopenharmony_ci 1783d0407baSopenharmony_ci#define ISP2X_DPCC_PDAF_POINT_NUM 16 1793d0407baSopenharmony_ci 1803d0407baSopenharmony_ci#define ISP2X_HDRMGE_L_CURVE_NUM 17 1813d0407baSopenharmony_ci#define ISP2X_HDRMGE_E_CURVE_NUM 17 1823d0407baSopenharmony_ci 1833d0407baSopenharmony_ci#define ISP2X_RAWNR_LUMA_RATION_NUM 8 1843d0407baSopenharmony_ci 1853d0407baSopenharmony_ci#define ISP2X_HDRTMO_MINMAX_NUM 32 1863d0407baSopenharmony_ci 1873d0407baSopenharmony_ci#define ISP2X_GIC_SIGMA_Y_NUM 15 1883d0407baSopenharmony_ci 1893d0407baSopenharmony_ci#define ISP2X_CCM_CURVE_NUM 17 1903d0407baSopenharmony_ci 1913d0407baSopenharmony_ci/* WDR */ 1923d0407baSopenharmony_ci#define ISP2X_WDR_SIZE 48 1933d0407baSopenharmony_ci 1943d0407baSopenharmony_ci#define ISP2X_DHAZ_CONV_COEFF_NUM 6 1953d0407baSopenharmony_ci#define ISP2X_DHAZ_HIST_IIR_NUM 64 1963d0407baSopenharmony_ci 1973d0407baSopenharmony_ci#define ISP2X_GAMMA_OUT_MAX_SAMPLES 45 1983d0407baSopenharmony_ci 1993d0407baSopenharmony_ci#define ISP2X_MIPI_LUMA_MEAN_MAX 16 2003d0407baSopenharmony_ci#define ISP2X_MIPI_RAW_MAX 3 2013d0407baSopenharmony_ci#define ISP2X_RAW0_Y_STATE (1 << 0) 2023d0407baSopenharmony_ci#define ISP2X_RAW1_Y_STATE (1 << 1) 2033d0407baSopenharmony_ci#define ISP2X_RAW2_Y_STATE (1 << 2) 2043d0407baSopenharmony_ci 2053d0407baSopenharmony_ci#define ISP2X_3DLUT_DATA_NUM 729 2063d0407baSopenharmony_ci 2073d0407baSopenharmony_ci#define ISP2X_LDCH_MESH_XY_NUM 0x80000 2083d0407baSopenharmony_ci#define ISP2X_LDCH_BUF_NUM 2 2093d0407baSopenharmony_ci 2103d0407baSopenharmony_ci#define ISP2X_THUNDERBOOT_VIDEO_BUF_NUM 30 2113d0407baSopenharmony_ci 2123d0407baSopenharmony_ci#define ISP2X_FBCBUF_FD_NUM 64 2133d0407baSopenharmony_ci 2143d0407baSopenharmony_ci#define ISP2X_MESH_BUF_NUM 2 2153d0407baSopenharmony_ci 2163d0407baSopenharmony_cienum isp2x_mesh_buf_stat { 2173d0407baSopenharmony_ci MESH_BUF_INIT = 0, 2183d0407baSopenharmony_ci MESH_BUF_WAIT2CHIP, 2193d0407baSopenharmony_ci MESH_BUF_CHIPINUSE, 2203d0407baSopenharmony_ci}; 2213d0407baSopenharmony_ci 2223d0407baSopenharmony_cistruct rkisp_meshbuf_info { 2233d0407baSopenharmony_ci u64 module_id; 2243d0407baSopenharmony_ci u32 unite_isp_id; 2253d0407baSopenharmony_ci s32 buf_fd[ISP2X_MESH_BUF_NUM]; 2263d0407baSopenharmony_ci u32 buf_size[ISP2X_MESH_BUF_NUM]; 2273d0407baSopenharmony_ci} __attribute__((packed)); 2283d0407baSopenharmony_ci 2293d0407baSopenharmony_cistruct rkisp_meshbuf_size { 2303d0407baSopenharmony_ci u64 module_id; 2313d0407baSopenharmony_ci u32 unite_isp_id; 2323d0407baSopenharmony_ci u32 meas_width; 2333d0407baSopenharmony_ci u32 meas_height; 2343d0407baSopenharmony_ci} __attribute__((packed)); 2353d0407baSopenharmony_ci 2363d0407baSopenharmony_cistruct isp2x_mesh_head { 2373d0407baSopenharmony_ci enum isp2x_mesh_buf_stat stat; 2383d0407baSopenharmony_ci u32 data_oft; 2393d0407baSopenharmony_ci} __attribute__((packed)); 2403d0407baSopenharmony_ci 2413d0407baSopenharmony_ci#define RKISP_CMSK_WIN_MAX 8 2423d0407baSopenharmony_ci#define RKISP_CMSK_MOSAIC_MODE 0 2433d0407baSopenharmony_ci#define RKISP_CMSK_COVER_MODE 1 2443d0407baSopenharmony_ci 2453d0407baSopenharmony_ci/* struct rkisp_cmsk_win 2463d0407baSopenharmony_ci * Priacy Mask Window configture, support 8 windows, and 2473d0407baSopenharmony_ci * support for mainpath and selfpath output stream channel. 2483d0407baSopenharmony_ci * 2493d0407baSopenharmony_ci * mode: 0:mosaic mode, 1:cover mode 2503d0407baSopenharmony_ci * win_index: window index 0~7. windows overlap, priority win7 > win0. 2513d0407baSopenharmony_ci * cover_color_y: cover mode effective, share for stream channel when same win_index. 2523d0407baSopenharmony_ci * cover_color_u: cover mode effective, share for stream channel when same win_index. 2533d0407baSopenharmony_ci * cover_color_v: cover mode effective, share for stream channel when same win_index. 2543d0407baSopenharmony_ci * 2553d0407baSopenharmony_ci * h_offs: window horizontal offset, share for stream channel when same win_index. 2 align. 2563d0407baSopenharmony_ci * v_offs: window vertical offset, share for stream channel when same win_index. 2 align. 2573d0407baSopenharmony_ci * h_size: window horizontal size, share for stream channel when same win_index. 8 align. 2583d0407baSopenharmony_ci * v_size: window vertical size, share for stream channel when same win_index. 8 align. 2593d0407baSopenharmony_ci */ 2603d0407baSopenharmony_cistruct rkisp_cmsk_win { 2613d0407baSopenharmony_ci unsigned char mode; 2623d0407baSopenharmony_ci unsigned char win_en; 2633d0407baSopenharmony_ci 2643d0407baSopenharmony_ci unsigned char cover_color_y; 2653d0407baSopenharmony_ci unsigned char cover_color_u; 2663d0407baSopenharmony_ci unsigned char cover_color_v; 2673d0407baSopenharmony_ci 2683d0407baSopenharmony_ci unsigned short h_offs; 2693d0407baSopenharmony_ci unsigned short v_offs; 2703d0407baSopenharmony_ci unsigned short h_size; 2713d0407baSopenharmony_ci unsigned short v_size; 2723d0407baSopenharmony_ci} __attribute__((packed)); 2733d0407baSopenharmony_ci 2743d0407baSopenharmony_ci/* struct rkisp_cmsk_cfg 2753d0407baSopenharmony_ci * win: priacy mask window 2763d0407baSopenharmony_ci * width_ro: isp full resolution, h_offs + h_size <= width_ro. 2773d0407baSopenharmony_ci * height_ro: isp full resolution, v_offs + v_size <= height_ro. 2783d0407baSopenharmony_ci */ 2793d0407baSopenharmony_cistruct rkisp_cmsk_cfg { 2803d0407baSopenharmony_ci struct rkisp_cmsk_win win[RKISP_CMSK_WIN_MAX]; 2813d0407baSopenharmony_ci unsigned int width_ro; 2823d0407baSopenharmony_ci unsigned int height_ro; 2833d0407baSopenharmony_ci} __attribute__((packed)); 2843d0407baSopenharmony_ci 2853d0407baSopenharmony_ci/* trigger event mode 2863d0407baSopenharmony_ci * T_TRY: trigger maybe with retry 2873d0407baSopenharmony_ci * T_TRY_YES: trigger to retry 2883d0407baSopenharmony_ci * T_TRY_NO: trigger no to retry 2893d0407baSopenharmony_ci * 2903d0407baSopenharmony_ci * T_START_X1: isp read one frame 2913d0407baSopenharmony_ci * T_START_X2: isp read hdr two frame 2923d0407baSopenharmony_ci * T_START_X3: isp read hdr three frame 2933d0407baSopenharmony_ci */ 2943d0407baSopenharmony_cienum isp2x_trigger_mode { 2953d0407baSopenharmony_ci T_TRY = BIT(0), 2963d0407baSopenharmony_ci T_TRY_YES = BIT(1), 2973d0407baSopenharmony_ci T_TRY_NO = BIT(2), 2983d0407baSopenharmony_ci 2993d0407baSopenharmony_ci T_START_X1 = BIT(4), 3003d0407baSopenharmony_ci T_START_X2 = BIT(5), 3013d0407baSopenharmony_ci T_START_X3 = BIT(6), 3023d0407baSopenharmony_ci}; 3033d0407baSopenharmony_ci 3043d0407baSopenharmony_cistruct isp2x_csi_trigger { 3053d0407baSopenharmony_ci /* timestamp in ns */ 3063d0407baSopenharmony_ci u64 sof_timestamp; 3073d0407baSopenharmony_ci u64 frame_timestamp; 3083d0407baSopenharmony_ci u32 frame_id; 3093d0407baSopenharmony_ci int times; 3103d0407baSopenharmony_ci enum isp2x_trigger_mode mode; 3113d0407baSopenharmony_ci} __attribute__((packed)); 3123d0407baSopenharmony_ci 3133d0407baSopenharmony_ci/* isp csi dmatx/dmarx memory mode 3143d0407baSopenharmony_ci * 0: raw12/raw10/raw8 8bit memory compact 3153d0407baSopenharmony_ci * 1: raw12/raw10 16bit memory one pixel 3163d0407baSopenharmony_ci * big endian for rv1126/rv1109 3173d0407baSopenharmony_ci * |15|14|13|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0| 3183d0407baSopenharmony_ci * | 3| 2| 1| 0| -| -| -| -|11|10| 9| 8| 7| 6| 5| 4| 3193d0407baSopenharmony_ci * little align for rk356x 3203d0407baSopenharmony_ci * |15|14|13|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0| 3213d0407baSopenharmony_ci * | -| -| -| -|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0| 3223d0407baSopenharmony_ci * 2: raw12/raw10 16bit memory one pixel 3233d0407baSopenharmony_ci * big align for rv1126/rv1109/rk356x 3243d0407baSopenharmony_ci * |15|14|13|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0| 3253d0407baSopenharmony_ci * |11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0| -| -| -| -| 3263d0407baSopenharmony_ci */ 3273d0407baSopenharmony_cienum isp_csi_memory { 3283d0407baSopenharmony_ci CSI_MEM_COMPACT = 0, 3293d0407baSopenharmony_ci CSI_MEM_WORD_BIG_END = 1, 3303d0407baSopenharmony_ci CSI_MEM_WORD_LITTLE_ALIGN = 1, 3313d0407baSopenharmony_ci CSI_MEM_WORD_BIG_ALIGN = 2, 3323d0407baSopenharmony_ci}; 3333d0407baSopenharmony_ci 3343d0407baSopenharmony_cistruct isp2x_ispgain_buf { 3353d0407baSopenharmony_ci u32 gain_dmaidx; 3363d0407baSopenharmony_ci u32 mfbc_dmaidx; 3373d0407baSopenharmony_ci u32 gain_size; 3383d0407baSopenharmony_ci u32 mfbc_size; 3393d0407baSopenharmony_ci u32 frame_id; 3403d0407baSopenharmony_ci} __attribute__((packed)); 3413d0407baSopenharmony_ci 3423d0407baSopenharmony_cistruct isp2x_buf_idxfd { 3433d0407baSopenharmony_ci u32 buf_num; 3443d0407baSopenharmony_ci u32 index[ISP2X_FBCBUF_FD_NUM]; 3453d0407baSopenharmony_ci s32 dmafd[ISP2X_FBCBUF_FD_NUM]; 3463d0407baSopenharmony_ci} __attribute__((packed)); 3473d0407baSopenharmony_ci 3483d0407baSopenharmony_cistruct isp2x_window { 3493d0407baSopenharmony_ci u16 h_offs; 3503d0407baSopenharmony_ci u16 v_offs; 3513d0407baSopenharmony_ci u16 h_size; 3523d0407baSopenharmony_ci u16 v_size; 3533d0407baSopenharmony_ci} __attribute__((packed)); 3543d0407baSopenharmony_ci 3553d0407baSopenharmony_cistruct isp2x_bls_fixed_val { 3563d0407baSopenharmony_ci s16 r; 3573d0407baSopenharmony_ci s16 gr; 3583d0407baSopenharmony_ci s16 gb; 3593d0407baSopenharmony_ci s16 b; 3603d0407baSopenharmony_ci} __attribute__((packed)); 3613d0407baSopenharmony_ci 3623d0407baSopenharmony_cistruct isp2x_bls_cfg { 3633d0407baSopenharmony_ci u8 enable_auto; 3643d0407baSopenharmony_ci u8 en_windows; 3653d0407baSopenharmony_ci struct isp2x_window bls_window1; 3663d0407baSopenharmony_ci struct isp2x_window bls_window2; 3673d0407baSopenharmony_ci u8 bls_samples; 3683d0407baSopenharmony_ci struct isp2x_bls_fixed_val fixed_val; 3693d0407baSopenharmony_ci} __attribute__((packed)); 3703d0407baSopenharmony_ci 3713d0407baSopenharmony_cistruct isp2x_bls_stat { 3723d0407baSopenharmony_ci u16 meas_r; 3733d0407baSopenharmony_ci u16 meas_gr; 3743d0407baSopenharmony_ci u16 meas_gb; 3753d0407baSopenharmony_ci u16 meas_b; 3763d0407baSopenharmony_ci} __attribute__((packed)); 3773d0407baSopenharmony_ci 3783d0407baSopenharmony_cistruct isp2x_dpcc_pdaf_point { 3793d0407baSopenharmony_ci u8 y; 3803d0407baSopenharmony_ci u8 x; 3813d0407baSopenharmony_ci} __attribute__((packed)); 3823d0407baSopenharmony_ci 3833d0407baSopenharmony_cistruct isp2x_dpcc_cfg { 3843d0407baSopenharmony_ci // mode 0x0000 3853d0407baSopenharmony_ci u8 stage1_enable; 3863d0407baSopenharmony_ci u8 grayscale_mode; 3873d0407baSopenharmony_ci 3883d0407baSopenharmony_ci // output_mode 0x0004 3893d0407baSopenharmony_ci u8 sw_rk_out_sel; 3903d0407baSopenharmony_ci u8 sw_dpcc_output_sel; 3913d0407baSopenharmony_ci u8 stage1_rb_3x3; 3923d0407baSopenharmony_ci u8 stage1_g_3x3; 3933d0407baSopenharmony_ci u8 stage1_incl_rb_center; 3943d0407baSopenharmony_ci u8 stage1_incl_green_center; 3953d0407baSopenharmony_ci 3963d0407baSopenharmony_ci // set_use 0x0008 3973d0407baSopenharmony_ci u8 stage1_use_fix_set; 3983d0407baSopenharmony_ci u8 stage1_use_set_3; 3993d0407baSopenharmony_ci u8 stage1_use_set_2; 4003d0407baSopenharmony_ci u8 stage1_use_set_1; 4013d0407baSopenharmony_ci 4023d0407baSopenharmony_ci // methods_set_1 0x000c 4033d0407baSopenharmony_ci u8 sw_rk_red_blue1_en; 4043d0407baSopenharmony_ci u8 rg_red_blue1_enable; 4053d0407baSopenharmony_ci u8 rnd_red_blue1_enable; 4063d0407baSopenharmony_ci u8 ro_red_blue1_enable; 4073d0407baSopenharmony_ci u8 lc_red_blue1_enable; 4083d0407baSopenharmony_ci u8 pg_red_blue1_enable; 4093d0407baSopenharmony_ci u8 sw_rk_green1_en; 4103d0407baSopenharmony_ci u8 rg_green1_enable; 4113d0407baSopenharmony_ci u8 rnd_green1_enable; 4123d0407baSopenharmony_ci u8 ro_green1_enable; 4133d0407baSopenharmony_ci u8 lc_green1_enable; 4143d0407baSopenharmony_ci u8 pg_green1_enable; 4153d0407baSopenharmony_ci 4163d0407baSopenharmony_ci // methods_set_2 0x0010 4173d0407baSopenharmony_ci u8 sw_rk_red_blue2_en; 4183d0407baSopenharmony_ci u8 rg_red_blue2_enable; 4193d0407baSopenharmony_ci u8 rnd_red_blue2_enable; 4203d0407baSopenharmony_ci u8 ro_red_blue2_enable; 4213d0407baSopenharmony_ci u8 lc_red_blue2_enable; 4223d0407baSopenharmony_ci u8 pg_red_blue2_enable; 4233d0407baSopenharmony_ci u8 sw_rk_green2_en; 4243d0407baSopenharmony_ci u8 rg_green2_enable; 4253d0407baSopenharmony_ci u8 rnd_green2_enable; 4263d0407baSopenharmony_ci u8 ro_green2_enable; 4273d0407baSopenharmony_ci u8 lc_green2_enable; 4283d0407baSopenharmony_ci u8 pg_green2_enable; 4293d0407baSopenharmony_ci 4303d0407baSopenharmony_ci // methods_set_3 0x0014 4313d0407baSopenharmony_ci u8 sw_rk_red_blue3_en; 4323d0407baSopenharmony_ci u8 rg_red_blue3_enable; 4333d0407baSopenharmony_ci u8 rnd_red_blue3_enable; 4343d0407baSopenharmony_ci u8 ro_red_blue3_enable; 4353d0407baSopenharmony_ci u8 lc_red_blue3_enable; 4363d0407baSopenharmony_ci u8 pg_red_blue3_enable; 4373d0407baSopenharmony_ci u8 sw_rk_green3_en; 4383d0407baSopenharmony_ci u8 rg_green3_enable; 4393d0407baSopenharmony_ci u8 rnd_green3_enable; 4403d0407baSopenharmony_ci u8 ro_green3_enable; 4413d0407baSopenharmony_ci u8 lc_green3_enable; 4423d0407baSopenharmony_ci u8 pg_green3_enable; 4433d0407baSopenharmony_ci 4443d0407baSopenharmony_ci // line_thresh_1 0x0018 4453d0407baSopenharmony_ci u8 sw_mindis1_rb; 4463d0407baSopenharmony_ci u8 sw_mindis1_g; 4473d0407baSopenharmony_ci u8 line_thr_1_rb; 4483d0407baSopenharmony_ci u8 line_thr_1_g; 4493d0407baSopenharmony_ci 4503d0407baSopenharmony_ci // line_mad_fac_1 0x001c 4513d0407baSopenharmony_ci u8 sw_dis_scale_min1; 4523d0407baSopenharmony_ci u8 sw_dis_scale_max1; 4533d0407baSopenharmony_ci u8 line_mad_fac_1_rb; 4543d0407baSopenharmony_ci u8 line_mad_fac_1_g; 4553d0407baSopenharmony_ci 4563d0407baSopenharmony_ci // pg_fac_1 0x0020 4573d0407baSopenharmony_ci u8 pg_fac_1_rb; 4583d0407baSopenharmony_ci u8 pg_fac_1_g; 4593d0407baSopenharmony_ci 4603d0407baSopenharmony_ci // rnd_thresh_1 0x0024 4613d0407baSopenharmony_ci u8 rnd_thr_1_rb; 4623d0407baSopenharmony_ci u8 rnd_thr_1_g; 4633d0407baSopenharmony_ci 4643d0407baSopenharmony_ci // rg_fac_1 0x0028 4653d0407baSopenharmony_ci u8 rg_fac_1_rb; 4663d0407baSopenharmony_ci u8 rg_fac_1_g; 4673d0407baSopenharmony_ci 4683d0407baSopenharmony_ci // line_thresh_2 0x002c 4693d0407baSopenharmony_ci u8 sw_mindis2_rb; 4703d0407baSopenharmony_ci u8 sw_mindis2_g; 4713d0407baSopenharmony_ci u8 line_thr_2_rb; 4723d0407baSopenharmony_ci u8 line_thr_2_g; 4733d0407baSopenharmony_ci 4743d0407baSopenharmony_ci // line_mad_fac_2 0x0030 4753d0407baSopenharmony_ci u8 sw_dis_scale_min2; 4763d0407baSopenharmony_ci u8 sw_dis_scale_max2; 4773d0407baSopenharmony_ci u8 line_mad_fac_2_rb; 4783d0407baSopenharmony_ci u8 line_mad_fac_2_g; 4793d0407baSopenharmony_ci 4803d0407baSopenharmony_ci // pg_fac_2 0x0034 4813d0407baSopenharmony_ci u8 pg_fac_2_rb; 4823d0407baSopenharmony_ci u8 pg_fac_2_g; 4833d0407baSopenharmony_ci 4843d0407baSopenharmony_ci // rnd_thresh_2 0x0038 4853d0407baSopenharmony_ci u8 rnd_thr_2_rb; 4863d0407baSopenharmony_ci u8 rnd_thr_2_g; 4873d0407baSopenharmony_ci 4883d0407baSopenharmony_ci // rg_fac_2 0x003c 4893d0407baSopenharmony_ci u8 rg_fac_2_rb; 4903d0407baSopenharmony_ci u8 rg_fac_2_g; 4913d0407baSopenharmony_ci 4923d0407baSopenharmony_ci // line_thresh_3 0x0040 4933d0407baSopenharmony_ci u8 sw_mindis3_rb; 4943d0407baSopenharmony_ci u8 sw_mindis3_g; 4953d0407baSopenharmony_ci u8 line_thr_3_rb; 4963d0407baSopenharmony_ci u8 line_thr_3_g; 4973d0407baSopenharmony_ci 4983d0407baSopenharmony_ci // line_mad_fac_3 0x0044 4993d0407baSopenharmony_ci u8 sw_dis_scale_min3; 5003d0407baSopenharmony_ci u8 sw_dis_scale_max3; 5013d0407baSopenharmony_ci u8 line_mad_fac_3_rb; 5023d0407baSopenharmony_ci u8 line_mad_fac_3_g; 5033d0407baSopenharmony_ci 5043d0407baSopenharmony_ci // pg_fac_3 0x0048 5053d0407baSopenharmony_ci u8 pg_fac_3_rb; 5063d0407baSopenharmony_ci u8 pg_fac_3_g; 5073d0407baSopenharmony_ci 5083d0407baSopenharmony_ci // rnd_thresh_3 0x004c 5093d0407baSopenharmony_ci u8 rnd_thr_3_rb; 5103d0407baSopenharmony_ci u8 rnd_thr_3_g; 5113d0407baSopenharmony_ci 5123d0407baSopenharmony_ci // rg_fac_3 0x0050 5133d0407baSopenharmony_ci u8 rg_fac_3_rb; 5143d0407baSopenharmony_ci u8 rg_fac_3_g; 5153d0407baSopenharmony_ci 5163d0407baSopenharmony_ci // ro_limits 0x0054 5173d0407baSopenharmony_ci u8 ro_lim_3_rb; 5183d0407baSopenharmony_ci u8 ro_lim_3_g; 5193d0407baSopenharmony_ci u8 ro_lim_2_rb; 5203d0407baSopenharmony_ci u8 ro_lim_2_g; 5213d0407baSopenharmony_ci u8 ro_lim_1_rb; 5223d0407baSopenharmony_ci u8 ro_lim_1_g; 5233d0407baSopenharmony_ci 5243d0407baSopenharmony_ci // rnd_offs 0x0058 5253d0407baSopenharmony_ci u8 rnd_offs_3_rb; 5263d0407baSopenharmony_ci u8 rnd_offs_3_g; 5273d0407baSopenharmony_ci u8 rnd_offs_2_rb; 5283d0407baSopenharmony_ci u8 rnd_offs_2_g; 5293d0407baSopenharmony_ci u8 rnd_offs_1_rb; 5303d0407baSopenharmony_ci u8 rnd_offs_1_g; 5313d0407baSopenharmony_ci 5323d0407baSopenharmony_ci // bpt_ctrl 0x005c 5333d0407baSopenharmony_ci u8 bpt_rb_3x3; 5343d0407baSopenharmony_ci u8 bpt_g_3x3; 5353d0407baSopenharmony_ci u8 bpt_incl_rb_center; 5363d0407baSopenharmony_ci u8 bpt_incl_green_center; 5373d0407baSopenharmony_ci u8 bpt_use_fix_set; 5383d0407baSopenharmony_ci u8 bpt_use_set_3; 5393d0407baSopenharmony_ci u8 bpt_use_set_2; 5403d0407baSopenharmony_ci u8 bpt_use_set_1; 5413d0407baSopenharmony_ci u8 bpt_cor_en; 5423d0407baSopenharmony_ci u8 bpt_det_en; 5433d0407baSopenharmony_ci 5443d0407baSopenharmony_ci // bpt_number 0x0060 5453d0407baSopenharmony_ci u16 bp_number; 5463d0407baSopenharmony_ci 5473d0407baSopenharmony_ci // bpt_addr 0x0064 5483d0407baSopenharmony_ci u16 bp_table_addr; 5493d0407baSopenharmony_ci 5503d0407baSopenharmony_ci // bpt_data 0x0068 5513d0407baSopenharmony_ci u16 bpt_v_addr; 5523d0407baSopenharmony_ci u16 bpt_h_addr; 5533d0407baSopenharmony_ci 5543d0407baSopenharmony_ci // bp_cnt 0x006c 5553d0407baSopenharmony_ci u32 bp_cnt; 5563d0407baSopenharmony_ci 5573d0407baSopenharmony_ci // pdaf_en 0x0070 5583d0407baSopenharmony_ci u8 sw_pdaf_en; 5593d0407baSopenharmony_ci 5603d0407baSopenharmony_ci // pdaf_point_en 0x0074 5613d0407baSopenharmony_ci u8 pdaf_point_en[ISP2X_DPCC_PDAF_POINT_NUM]; 5623d0407baSopenharmony_ci 5633d0407baSopenharmony_ci // pdaf_offset 0x0078 5643d0407baSopenharmony_ci u16 pdaf_offsety; 5653d0407baSopenharmony_ci u16 pdaf_offsetx; 5663d0407baSopenharmony_ci 5673d0407baSopenharmony_ci // pdaf_wrap 0x007c 5683d0407baSopenharmony_ci u16 pdaf_wrapy; 5693d0407baSopenharmony_ci u16 pdaf_wrapx; 5703d0407baSopenharmony_ci 5713d0407baSopenharmony_ci // pdaf_scope 0x0080 5723d0407baSopenharmony_ci u16 pdaf_wrapy_num; 5733d0407baSopenharmony_ci u16 pdaf_wrapx_num; 5743d0407baSopenharmony_ci 5753d0407baSopenharmony_ci // pdaf_point_0 0x0084 5763d0407baSopenharmony_ci struct isp2x_dpcc_pdaf_point point[ISP2X_DPCC_PDAF_POINT_NUM]; 5773d0407baSopenharmony_ci 5783d0407baSopenharmony_ci // pdaf_forward_med 0x00a4 5793d0407baSopenharmony_ci u8 pdaf_forward_med; 5803d0407baSopenharmony_ci} __attribute__((packed)); 5813d0407baSopenharmony_ci 5823d0407baSopenharmony_cistruct isp2x_hdrmge_curve { 5833d0407baSopenharmony_ci u16 curve_1[ISP2X_HDRMGE_L_CURVE_NUM]; 5843d0407baSopenharmony_ci u16 curve_0[ISP2X_HDRMGE_L_CURVE_NUM]; 5853d0407baSopenharmony_ci} __attribute__((packed)); 5863d0407baSopenharmony_ci 5873d0407baSopenharmony_cistruct isp2x_hdrmge_cfg { 5883d0407baSopenharmony_ci u8 mode; 5893d0407baSopenharmony_ci 5903d0407baSopenharmony_ci u16 gain0_inv; 5913d0407baSopenharmony_ci u16 gain0; 5923d0407baSopenharmony_ci 5933d0407baSopenharmony_ci u16 gain1_inv; 5943d0407baSopenharmony_ci u16 gain1; 5953d0407baSopenharmony_ci 5963d0407baSopenharmony_ci u8 gain2; 5973d0407baSopenharmony_ci 5983d0407baSopenharmony_ci u8 lm_dif_0p15; 5993d0407baSopenharmony_ci u8 lm_dif_0p9; 6003d0407baSopenharmony_ci u8 ms_diff_0p15; 6013d0407baSopenharmony_ci u8 ms_dif_0p8; 6023d0407baSopenharmony_ci 6033d0407baSopenharmony_ci struct isp2x_hdrmge_curve curve; 6043d0407baSopenharmony_ci u16 e_y[ISP2X_HDRMGE_E_CURVE_NUM]; 6053d0407baSopenharmony_ci} __attribute__((packed)); 6063d0407baSopenharmony_ci 6073d0407baSopenharmony_cistruct isp2x_rawnr_cfg { 6083d0407baSopenharmony_ci u8 gauss_en; 6093d0407baSopenharmony_ci u8 log_bypass; 6103d0407baSopenharmony_ci 6113d0407baSopenharmony_ci u16 filtpar0; 6123d0407baSopenharmony_ci u16 filtpar1; 6133d0407baSopenharmony_ci u16 filtpar2; 6143d0407baSopenharmony_ci 6153d0407baSopenharmony_ci u32 dgain0; 6163d0407baSopenharmony_ci u32 dgain1; 6173d0407baSopenharmony_ci u32 dgain2; 6183d0407baSopenharmony_ci 6193d0407baSopenharmony_ci u16 luration[ISP2X_RAWNR_LUMA_RATION_NUM]; 6203d0407baSopenharmony_ci u16 lulevel[ISP2X_RAWNR_LUMA_RATION_NUM]; 6213d0407baSopenharmony_ci 6223d0407baSopenharmony_ci u32 gauss; 6233d0407baSopenharmony_ci u16 sigma; 6243d0407baSopenharmony_ci u16 pix_diff; 6253d0407baSopenharmony_ci 6263d0407baSopenharmony_ci u32 thld_diff; 6273d0407baSopenharmony_ci 6283d0407baSopenharmony_ci u8 gas_weig_scl2; 6293d0407baSopenharmony_ci u8 gas_weig_scl1; 6303d0407baSopenharmony_ci u16 thld_chanelw; 6313d0407baSopenharmony_ci 6323d0407baSopenharmony_ci u16 lamda; 6333d0407baSopenharmony_ci 6343d0407baSopenharmony_ci u16 fixw0; 6353d0407baSopenharmony_ci u16 fixw1; 6363d0407baSopenharmony_ci u16 fixw2; 6373d0407baSopenharmony_ci u16 fixw3; 6383d0407baSopenharmony_ci 6393d0407baSopenharmony_ci u32 wlamda0; 6403d0407baSopenharmony_ci u32 wlamda1; 6413d0407baSopenharmony_ci u32 wlamda2; 6423d0407baSopenharmony_ci 6433d0407baSopenharmony_ci u16 rgain_filp; 6443d0407baSopenharmony_ci u16 bgain_filp; 6453d0407baSopenharmony_ci} __attribute__((packed)); 6463d0407baSopenharmony_ci 6473d0407baSopenharmony_cistruct isp2x_lsc_cfg { 6483d0407baSopenharmony_ci u16 r_data_tbl[ISP2X_LSC_DATA_TBL_SIZE]; 6493d0407baSopenharmony_ci u16 gr_data_tbl[ISP2X_LSC_DATA_TBL_SIZE]; 6503d0407baSopenharmony_ci u16 gb_data_tbl[ISP2X_LSC_DATA_TBL_SIZE]; 6513d0407baSopenharmony_ci u16 b_data_tbl[ISP2X_LSC_DATA_TBL_SIZE]; 6523d0407baSopenharmony_ci 6533d0407baSopenharmony_ci u16 x_grad_tbl[ISP2X_LSC_GRAD_TBL_SIZE]; 6543d0407baSopenharmony_ci u16 y_grad_tbl[ISP2X_LSC_GRAD_TBL_SIZE]; 6553d0407baSopenharmony_ci 6563d0407baSopenharmony_ci u16 x_size_tbl[ISP2X_LSC_SIZE_TBL_SIZE]; 6573d0407baSopenharmony_ci u16 y_size_tbl[ISP2X_LSC_SIZE_TBL_SIZE]; 6583d0407baSopenharmony_ci} __attribute__((packed)); 6593d0407baSopenharmony_ci 6603d0407baSopenharmony_cienum isp2x_goc_mode { ISP2X_GOC_MODE_LOGARITHMIC, ISP2X_GOC_MODE_EQUIDISTANT }; 6613d0407baSopenharmony_ci 6623d0407baSopenharmony_cistruct isp2x_goc_cfg { 6633d0407baSopenharmony_ci enum isp2x_goc_mode mode; 6643d0407baSopenharmony_ci u8 gamma_y[17]; 6653d0407baSopenharmony_ci} __attribute__((packed)); 6663d0407baSopenharmony_ci 6673d0407baSopenharmony_cistruct isp2x_hdrtmo_predict { 6683d0407baSopenharmony_ci u8 global_tmo; 6693d0407baSopenharmony_ci s32 iir_max; 6703d0407baSopenharmony_ci s32 global_tmo_strength; 6713d0407baSopenharmony_ci 6723d0407baSopenharmony_ci u8 scene_stable; 6733d0407baSopenharmony_ci s32 k_rolgmean; 6743d0407baSopenharmony_ci s32 iir; 6753d0407baSopenharmony_ci} __attribute__((packed)); 6763d0407baSopenharmony_ci 6773d0407baSopenharmony_cistruct isp2x_hdrtmo_cfg { 6783d0407baSopenharmony_ci u16 cnt_vsize; 6793d0407baSopenharmony_ci u8 gain_ld_off2; 6803d0407baSopenharmony_ci u8 gain_ld_off1; 6813d0407baSopenharmony_ci u8 big_en; 6823d0407baSopenharmony_ci u8 nobig_en; 6833d0407baSopenharmony_ci u8 newhst_en; 6843d0407baSopenharmony_ci u8 cnt_mode; 6853d0407baSopenharmony_ci 6863d0407baSopenharmony_ci u16 expl_lgratio; 6873d0407baSopenharmony_ci u8 lgscl_ratio; 6883d0407baSopenharmony_ci u8 cfg_alpha; 6893d0407baSopenharmony_ci 6903d0407baSopenharmony_ci u16 set_gainoff; 6913d0407baSopenharmony_ci u16 set_palpha; 6923d0407baSopenharmony_ci 6933d0407baSopenharmony_ci u16 set_lgmax; 6943d0407baSopenharmony_ci u16 set_lgmin; 6953d0407baSopenharmony_ci 6963d0407baSopenharmony_ci u8 set_weightkey; 6973d0407baSopenharmony_ci u16 set_lgmean; 6983d0407baSopenharmony_ci 6993d0407baSopenharmony_ci u16 set_lgrange1; 7003d0407baSopenharmony_ci u16 set_lgrange0; 7013d0407baSopenharmony_ci 7023d0407baSopenharmony_ci u16 set_lgavgmax; 7033d0407baSopenharmony_ci 7043d0407baSopenharmony_ci u8 clipgap1_i; 7053d0407baSopenharmony_ci u8 clipgap0_i; 7063d0407baSopenharmony_ci u8 clipratio1; 7073d0407baSopenharmony_ci u8 clipratio0; 7083d0407baSopenharmony_ci u8 ratiol; 7093d0407baSopenharmony_ci 7103d0407baSopenharmony_ci u16 lgscl_inv; 7113d0407baSopenharmony_ci u16 lgscl; 7123d0407baSopenharmony_ci 7133d0407baSopenharmony_ci u16 lgmax; 7143d0407baSopenharmony_ci 7153d0407baSopenharmony_ci u16 hist_low; 7163d0407baSopenharmony_ci u16 hist_min; 7173d0407baSopenharmony_ci 7183d0407baSopenharmony_ci u8 hist_shift; 7193d0407baSopenharmony_ci u16 hist_0p3; 7203d0407baSopenharmony_ci u16 hist_high; 7213d0407baSopenharmony_ci 7223d0407baSopenharmony_ci u16 palpha_lwscl; 7233d0407baSopenharmony_ci u16 palpha_lw0p5; 7243d0407baSopenharmony_ci u16 palpha_0p18; 7253d0407baSopenharmony_ci 7263d0407baSopenharmony_ci u16 maxgain; 7273d0407baSopenharmony_ci u16 maxpalpha; 7283d0407baSopenharmony_ci 7293d0407baSopenharmony_ci struct isp2x_hdrtmo_predict predict; 7303d0407baSopenharmony_ci} __attribute__((packed)); 7313d0407baSopenharmony_ci 7323d0407baSopenharmony_cistruct isp2x_hdrtmo_stat { 7333d0407baSopenharmony_ci u16 lglow; 7343d0407baSopenharmony_ci u16 lgmin; 7353d0407baSopenharmony_ci u16 lghigh; 7363d0407baSopenharmony_ci u16 lgmax; 7373d0407baSopenharmony_ci u16 weightkey; 7383d0407baSopenharmony_ci u16 lgmean; 7393d0407baSopenharmony_ci u16 lgrange1; 7403d0407baSopenharmony_ci u16 lgrange0; 7413d0407baSopenharmony_ci u16 palpha; 7423d0407baSopenharmony_ci u16 lgavgmax; 7433d0407baSopenharmony_ci u16 linecnt; 7443d0407baSopenharmony_ci u32 min_max[ISP2X_HDRTMO_MINMAX_NUM]; 7453d0407baSopenharmony_ci} __attribute__((packed)); 7463d0407baSopenharmony_ci 7473d0407baSopenharmony_cistruct isp2x_gic_cfg { 7483d0407baSopenharmony_ci u8 edge_open; 7493d0407baSopenharmony_ci 7503d0407baSopenharmony_ci u16 regmingradthrdark2; 7513d0407baSopenharmony_ci u16 regmingradthrdark1; 7523d0407baSopenharmony_ci u16 regminbusythre; 7533d0407baSopenharmony_ci 7543d0407baSopenharmony_ci u16 regdarkthre; 7553d0407baSopenharmony_ci u16 regmaxcorvboth; 7563d0407baSopenharmony_ci u16 regdarktthrehi; 7573d0407baSopenharmony_ci 7583d0407baSopenharmony_ci u8 regkgrad2dark; 7593d0407baSopenharmony_ci u8 regkgrad1dark; 7603d0407baSopenharmony_ci u8 regstrengthglobal_fix; 7613d0407baSopenharmony_ci u8 regdarkthrestep; 7623d0407baSopenharmony_ci u8 regkgrad2; 7633d0407baSopenharmony_ci u8 regkgrad1; 7643d0407baSopenharmony_ci u8 reggbthre; 7653d0407baSopenharmony_ci 7663d0407baSopenharmony_ci u16 regmaxcorv; 7673d0407baSopenharmony_ci u16 regmingradthr2; 7683d0407baSopenharmony_ci u16 regmingradthr1; 7693d0407baSopenharmony_ci 7703d0407baSopenharmony_ci u8 gr_ratio; 7713d0407baSopenharmony_ci u16 dnloscale; 7723d0407baSopenharmony_ci u16 dnhiscale; 7733d0407baSopenharmony_ci u8 reglumapointsstep; 7743d0407baSopenharmony_ci 7753d0407baSopenharmony_ci u16 gvaluelimitlo; 7763d0407baSopenharmony_ci u16 gvaluelimithi; 7773d0407baSopenharmony_ci u8 fusionratiohilimt1; 7783d0407baSopenharmony_ci 7793d0407baSopenharmony_ci u8 regstrength_fix; 7803d0407baSopenharmony_ci 7813d0407baSopenharmony_ci u16 sigma_y[ISP2X_GIC_SIGMA_Y_NUM]; 7823d0407baSopenharmony_ci 7833d0407baSopenharmony_ci u8 noise_cut_en; 7843d0407baSopenharmony_ci u16 noise_coe_a; 7853d0407baSopenharmony_ci 7863d0407baSopenharmony_ci u16 noise_coe_b; 7873d0407baSopenharmony_ci u16 diff_clip; 7883d0407baSopenharmony_ci} __attribute__((packed)); 7893d0407baSopenharmony_ci 7903d0407baSopenharmony_cistruct isp2x_debayer_cfg { 7913d0407baSopenharmony_ci u8 filter_c_en; 7923d0407baSopenharmony_ci u8 filter_g_en; 7933d0407baSopenharmony_ci 7943d0407baSopenharmony_ci u8 thed1; 7953d0407baSopenharmony_ci u8 thed0; 7963d0407baSopenharmony_ci u8 dist_scale; 7973d0407baSopenharmony_ci u8 max_ratio; 7983d0407baSopenharmony_ci u8 clip_en; 7993d0407baSopenharmony_ci 8003d0407baSopenharmony_ci s8 filter1_coe5; 8013d0407baSopenharmony_ci s8 filter1_coe4; 8023d0407baSopenharmony_ci s8 filter1_coe3; 8033d0407baSopenharmony_ci s8 filter1_coe2; 8043d0407baSopenharmony_ci s8 filter1_coe1; 8053d0407baSopenharmony_ci 8063d0407baSopenharmony_ci s8 filter2_coe5; 8073d0407baSopenharmony_ci s8 filter2_coe4; 8083d0407baSopenharmony_ci s8 filter2_coe3; 8093d0407baSopenharmony_ci s8 filter2_coe2; 8103d0407baSopenharmony_ci s8 filter2_coe1; 8113d0407baSopenharmony_ci 8123d0407baSopenharmony_ci u16 hf_offset; 8133d0407baSopenharmony_ci u8 gain_offset; 8143d0407baSopenharmony_ci u8 offset; 8153d0407baSopenharmony_ci 8163d0407baSopenharmony_ci u8 shift_num; 8173d0407baSopenharmony_ci u8 order_max; 8183d0407baSopenharmony_ci u8 order_min; 8193d0407baSopenharmony_ci} __attribute__((packed)); 8203d0407baSopenharmony_ci 8213d0407baSopenharmony_cistruct isp2x_ccm_cfg { 8223d0407baSopenharmony_ci s16 coeff0_r; 8233d0407baSopenharmony_ci s16 coeff1_r; 8243d0407baSopenharmony_ci s16 coeff2_r; 8253d0407baSopenharmony_ci s16 offset_r; 8263d0407baSopenharmony_ci 8273d0407baSopenharmony_ci s16 coeff0_g; 8283d0407baSopenharmony_ci s16 coeff1_g; 8293d0407baSopenharmony_ci s16 coeff2_g; 8303d0407baSopenharmony_ci s16 offset_g; 8313d0407baSopenharmony_ci 8323d0407baSopenharmony_ci s16 coeff0_b; 8333d0407baSopenharmony_ci s16 coeff1_b; 8343d0407baSopenharmony_ci s16 coeff2_b; 8353d0407baSopenharmony_ci s16 offset_b; 8363d0407baSopenharmony_ci 8373d0407baSopenharmony_ci u16 coeff0_y; 8383d0407baSopenharmony_ci u16 coeff1_y; 8393d0407baSopenharmony_ci u16 coeff2_y; 8403d0407baSopenharmony_ci 8413d0407baSopenharmony_ci u16 alp_y[ISP2X_CCM_CURVE_NUM]; 8423d0407baSopenharmony_ci 8433d0407baSopenharmony_ci u8 bound_bit; 8443d0407baSopenharmony_ci} __attribute__((packed)); 8453d0407baSopenharmony_ci 8463d0407baSopenharmony_cistruct isp2x_gammaout_cfg { 8473d0407baSopenharmony_ci u8 equ_segm; 8483d0407baSopenharmony_ci u16 offset; 8493d0407baSopenharmony_ci u16 gamma_y[ISP2X_GAMMA_OUT_MAX_SAMPLES]; 8503d0407baSopenharmony_ci} __attribute__((packed)); 8513d0407baSopenharmony_ci 8523d0407baSopenharmony_cienum isp2x_wdr_mode { ISP2X_WDR_MODE_BLOCK, ISP2X_WDR_MODE_GLOBAL }; 8533d0407baSopenharmony_ci 8543d0407baSopenharmony_cistruct isp2x_wdr_cfg { 8553d0407baSopenharmony_ci enum isp2x_wdr_mode mode; 8563d0407baSopenharmony_ci unsigned int c_wdr[ISP2X_WDR_SIZE]; 8573d0407baSopenharmony_ci} __attribute__((packed)); 8583d0407baSopenharmony_ci 8593d0407baSopenharmony_cistruct isp2x_dhaz_cfg { 8603d0407baSopenharmony_ci u8 enhance_en; 8613d0407baSopenharmony_ci u8 hist_chn; 8623d0407baSopenharmony_ci u8 hpara_en; 8633d0407baSopenharmony_ci u8 hist_en; 8643d0407baSopenharmony_ci u8 dc_en; 8653d0407baSopenharmony_ci u8 big_en; 8663d0407baSopenharmony_ci u8 nobig_en; 8673d0407baSopenharmony_ci 8683d0407baSopenharmony_ci u8 yblk_th; 8693d0407baSopenharmony_ci u8 yhist_th; 8703d0407baSopenharmony_ci u8 dc_max_th; 8713d0407baSopenharmony_ci u8 dc_min_th; 8723d0407baSopenharmony_ci 8733d0407baSopenharmony_ci u16 wt_max; 8743d0407baSopenharmony_ci u8 bright_max; 8753d0407baSopenharmony_ci u8 bright_min; 8763d0407baSopenharmony_ci 8773d0407baSopenharmony_ci u8 tmax_base; 8783d0407baSopenharmony_ci u8 dark_th; 8793d0407baSopenharmony_ci u8 air_max; 8803d0407baSopenharmony_ci u8 air_min; 8813d0407baSopenharmony_ci 8823d0407baSopenharmony_ci u16 tmax_max; 8833d0407baSopenharmony_ci u16 tmax_off; 8843d0407baSopenharmony_ci 8853d0407baSopenharmony_ci u8 hist_th_off; 8863d0407baSopenharmony_ci u8 hist_gratio; 8873d0407baSopenharmony_ci 8883d0407baSopenharmony_ci u16 hist_min; 8893d0407baSopenharmony_ci u16 hist_k; 8903d0407baSopenharmony_ci 8913d0407baSopenharmony_ci u16 enhance_value; 8923d0407baSopenharmony_ci u16 hist_scale; 8933d0407baSopenharmony_ci 8943d0407baSopenharmony_ci u16 iir_wt_sigma; 8953d0407baSopenharmony_ci u16 iir_sigma; 8963d0407baSopenharmony_ci u16 stab_fnum; 8973d0407baSopenharmony_ci 8983d0407baSopenharmony_ci u16 iir_tmax_sigma; 8993d0407baSopenharmony_ci u16 iir_air_sigma; 9003d0407baSopenharmony_ci 9013d0407baSopenharmony_ci u16 cfg_wt; 9023d0407baSopenharmony_ci u16 cfg_air; 9033d0407baSopenharmony_ci u16 cfg_alpha; 9043d0407baSopenharmony_ci 9053d0407baSopenharmony_ci u16 cfg_gratio; 9063d0407baSopenharmony_ci u16 cfg_tmax; 9073d0407baSopenharmony_ci 9083d0407baSopenharmony_ci u16 dc_weitcur; 9093d0407baSopenharmony_ci u16 dc_thed; 9103d0407baSopenharmony_ci 9113d0407baSopenharmony_ci u8 sw_dhaz_dc_bf_h3; 9123d0407baSopenharmony_ci u8 sw_dhaz_dc_bf_h2; 9133d0407baSopenharmony_ci u8 sw_dhaz_dc_bf_h1; 9143d0407baSopenharmony_ci u8 sw_dhaz_dc_bf_h0; 9153d0407baSopenharmony_ci 9163d0407baSopenharmony_ci u8 sw_dhaz_dc_bf_h5; 9173d0407baSopenharmony_ci u8 sw_dhaz_dc_bf_h4; 9183d0407baSopenharmony_ci 9193d0407baSopenharmony_ci u16 air_weitcur; 9203d0407baSopenharmony_ci u16 air_thed; 9213d0407baSopenharmony_ci 9223d0407baSopenharmony_ci u8 air_bf_h2; 9233d0407baSopenharmony_ci u8 air_bf_h1; 9243d0407baSopenharmony_ci u8 air_bf_h0; 9253d0407baSopenharmony_ci 9263d0407baSopenharmony_ci u8 gaus_h2; 9273d0407baSopenharmony_ci u8 gaus_h1; 9283d0407baSopenharmony_ci u8 gaus_h0; 9293d0407baSopenharmony_ci 9303d0407baSopenharmony_ci u8 conv_t0[ISP2X_DHAZ_CONV_COEFF_NUM]; 9313d0407baSopenharmony_ci u8 conv_t1[ISP2X_DHAZ_CONV_COEFF_NUM]; 9323d0407baSopenharmony_ci u8 conv_t2[ISP2X_DHAZ_CONV_COEFF_NUM]; 9333d0407baSopenharmony_ci} __attribute__((packed)); 9343d0407baSopenharmony_ci 9353d0407baSopenharmony_cistruct isp2x_dhaz_stat { 9363d0407baSopenharmony_ci u16 dhaz_adp_air_base; 9373d0407baSopenharmony_ci u16 dhaz_adp_wt; 9383d0407baSopenharmony_ci 9393d0407baSopenharmony_ci u16 dhaz_adp_gratio; 9403d0407baSopenharmony_ci u16 dhaz_adp_tmax; 9413d0407baSopenharmony_ci 9423d0407baSopenharmony_ci u16 h_r_iir[ISP2X_DHAZ_HIST_IIR_NUM]; 9433d0407baSopenharmony_ci u16 h_g_iir[ISP2X_DHAZ_HIST_IIR_NUM]; 9443d0407baSopenharmony_ci u16 h_b_iir[ISP2X_DHAZ_HIST_IIR_NUM]; 9453d0407baSopenharmony_ci} __attribute__((packed)); 9463d0407baSopenharmony_ci 9473d0407baSopenharmony_cistruct isp2x_cproc_cfg { 9483d0407baSopenharmony_ci u8 c_out_range; 9493d0407baSopenharmony_ci u8 y_in_range; 9503d0407baSopenharmony_ci u8 y_out_range; 9513d0407baSopenharmony_ci u8 contrast; 9523d0407baSopenharmony_ci u8 brightness; 9533d0407baSopenharmony_ci u8 sat; 9543d0407baSopenharmony_ci u8 hue; 9553d0407baSopenharmony_ci} __attribute__((packed)); 9563d0407baSopenharmony_ci 9573d0407baSopenharmony_cistruct isp2x_ie_cfg { 9583d0407baSopenharmony_ci u16 effect; 9593d0407baSopenharmony_ci u16 color_sel; 9603d0407baSopenharmony_ci u16 eff_mat_1; 9613d0407baSopenharmony_ci u16 eff_mat_2; 9623d0407baSopenharmony_ci u16 eff_mat_3; 9633d0407baSopenharmony_ci u16 eff_mat_4; 9643d0407baSopenharmony_ci u16 eff_mat_5; 9653d0407baSopenharmony_ci u16 eff_tint; 9663d0407baSopenharmony_ci} __attribute__((packed)); 9673d0407baSopenharmony_ci 9683d0407baSopenharmony_cistruct isp2x_rkiesharp_cfg { 9693d0407baSopenharmony_ci u8 coring_thr; 9703d0407baSopenharmony_ci u8 full_range; 9713d0407baSopenharmony_ci u8 switch_avg; 9723d0407baSopenharmony_ci u8 yavg_thr[4]; 9733d0407baSopenharmony_ci u8 delta1[5]; 9743d0407baSopenharmony_ci u8 delta2[5]; 9753d0407baSopenharmony_ci u8 maxnumber[5]; 9763d0407baSopenharmony_ci u8 minnumber[5]; 9773d0407baSopenharmony_ci u8 gauss_flat_coe[9]; 9783d0407baSopenharmony_ci u8 gauss_noise_coe[9]; 9793d0407baSopenharmony_ci u8 gauss_other_coe[9]; 9803d0407baSopenharmony_ci u8 line1_filter_coe[6]; 9813d0407baSopenharmony_ci u8 line2_filter_coe[9]; 9823d0407baSopenharmony_ci u8 line3_filter_coe[6]; 9833d0407baSopenharmony_ci u16 grad_seq[4]; 9843d0407baSopenharmony_ci u8 sharp_factor[5]; 9853d0407baSopenharmony_ci u8 uv_gauss_flat_coe[15]; 9863d0407baSopenharmony_ci u8 uv_gauss_noise_coe[15]; 9873d0407baSopenharmony_ci u8 uv_gauss_other_coe[15]; 9883d0407baSopenharmony_ci u8 lap_mat_coe[9]; 9893d0407baSopenharmony_ci} __attribute__((packed)); 9903d0407baSopenharmony_ci 9913d0407baSopenharmony_cistruct isp2x_superimp_cfg { 9923d0407baSopenharmony_ci u8 transparency_mode; 9933d0407baSopenharmony_ci u8 ref_image; 9943d0407baSopenharmony_ci 9953d0407baSopenharmony_ci u16 offset_x; 9963d0407baSopenharmony_ci u16 offset_y; 9973d0407baSopenharmony_ci 9983d0407baSopenharmony_ci u8 y_comp; 9993d0407baSopenharmony_ci u8 cb_comp; 10003d0407baSopenharmony_ci u8 cr_comp; 10013d0407baSopenharmony_ci} __attribute__((packed)); 10023d0407baSopenharmony_ci 10033d0407baSopenharmony_cistruct isp2x_gamma_corr_curve { 10043d0407baSopenharmony_ci u16 gamma_y[ISP2X_DEGAMMA_CURVE_SIZE]; 10053d0407baSopenharmony_ci} __attribute__((packed)); 10063d0407baSopenharmony_ci 10073d0407baSopenharmony_cistruct isp2x_gamma_curve_x_axis_pnts { 10083d0407baSopenharmony_ci u32 gamma_dx0; 10093d0407baSopenharmony_ci u32 gamma_dx1; 10103d0407baSopenharmony_ci} __attribute__((packed)); 10113d0407baSopenharmony_ci 10123d0407baSopenharmony_cistruct isp2x_sdg_cfg { 10133d0407baSopenharmony_ci struct isp2x_gamma_corr_curve curve_r; 10143d0407baSopenharmony_ci struct isp2x_gamma_corr_curve curve_g; 10153d0407baSopenharmony_ci struct isp2x_gamma_corr_curve curve_b; 10163d0407baSopenharmony_ci struct isp2x_gamma_curve_x_axis_pnts xa_pnts; 10173d0407baSopenharmony_ci} __attribute__((packed)); 10183d0407baSopenharmony_ci 10193d0407baSopenharmony_cistruct isp2x_bdm_config { 10203d0407baSopenharmony_ci unsigned char demosaic_th; 10213d0407baSopenharmony_ci} __attribute__((packed)); 10223d0407baSopenharmony_ci 10233d0407baSopenharmony_cistruct isp2x_gain_cfg { 10243d0407baSopenharmony_ci u8 dhaz_en; 10253d0407baSopenharmony_ci u8 wdr_en; 10263d0407baSopenharmony_ci u8 tmo_en; 10273d0407baSopenharmony_ci u8 lsc_en; 10283d0407baSopenharmony_ci u8 mge_en; 10293d0407baSopenharmony_ci 10303d0407baSopenharmony_ci u32 mge_gain[ISP2X_GAIN_HDRMGE_GAIN_NUM]; 10313d0407baSopenharmony_ci u16 idx[ISP2X_GAIN_IDX_NUM]; 10323d0407baSopenharmony_ci u16 lut[ISP2X_GAIN_LUT_NUM]; 10333d0407baSopenharmony_ci} __attribute__((packed)); 10343d0407baSopenharmony_ci 10353d0407baSopenharmony_cistruct isp2x_3dlut_cfg { 10363d0407baSopenharmony_ci u8 bypass_en; 10373d0407baSopenharmony_ci u32 actual_size; // word unit 10383d0407baSopenharmony_ci u16 lut_r[ISP2X_3DLUT_DATA_NUM]; 10393d0407baSopenharmony_ci u16 lut_g[ISP2X_3DLUT_DATA_NUM]; 10403d0407baSopenharmony_ci u16 lut_b[ISP2X_3DLUT_DATA_NUM]; 10413d0407baSopenharmony_ci} __attribute__((packed)); 10423d0407baSopenharmony_ci 10433d0407baSopenharmony_cienum isp2x_ldch_buf_stat { 10443d0407baSopenharmony_ci LDCH_BUF_INIT = 0, 10453d0407baSopenharmony_ci LDCH_BUF_WAIT2CHIP, 10463d0407baSopenharmony_ci LDCH_BUF_CHIPINUSE, 10473d0407baSopenharmony_ci}; 10483d0407baSopenharmony_ci 10493d0407baSopenharmony_cistruct rkisp_ldchbuf_info { 10503d0407baSopenharmony_ci s32 buf_fd[ISP2X_LDCH_BUF_NUM]; 10513d0407baSopenharmony_ci u32 buf_size[ISP2X_LDCH_BUF_NUM]; 10523d0407baSopenharmony_ci} __attribute__((packed)); 10533d0407baSopenharmony_ci 10543d0407baSopenharmony_cistruct rkisp_ldchbuf_size { 10553d0407baSopenharmony_ci u32 meas_width; 10563d0407baSopenharmony_ci u32 meas_height; 10573d0407baSopenharmony_ci} __attribute__((packed)); 10583d0407baSopenharmony_ci 10593d0407baSopenharmony_cistruct isp2x_ldch_head { 10603d0407baSopenharmony_ci enum isp2x_ldch_buf_stat stat; 10613d0407baSopenharmony_ci u32 data_oft; 10623d0407baSopenharmony_ci} __attribute__((packed)); 10633d0407baSopenharmony_ci 10643d0407baSopenharmony_cistruct isp2x_ldch_cfg { 10653d0407baSopenharmony_ci u32 hsize; 10663d0407baSopenharmony_ci u32 vsize; 10673d0407baSopenharmony_ci s32 buf_fd; 10683d0407baSopenharmony_ci} __attribute__((packed)); 10693d0407baSopenharmony_ci 10703d0407baSopenharmony_cistruct isp2x_awb_gain_cfg { 10713d0407baSopenharmony_ci u16 gain_red; 10723d0407baSopenharmony_ci u16 gain_green_r; 10733d0407baSopenharmony_ci u16 gain_blue; 10743d0407baSopenharmony_ci u16 gain_green_b; 10753d0407baSopenharmony_ci} __attribute__((packed)); 10763d0407baSopenharmony_ci 10773d0407baSopenharmony_cistruct isp2x_siawb_meas_cfg { 10783d0407baSopenharmony_ci struct isp2x_window awb_wnd; 10793d0407baSopenharmony_ci u8 awb_mode; 10803d0407baSopenharmony_ci u8 max_y; 10813d0407baSopenharmony_ci u8 min_y; 10823d0407baSopenharmony_ci u8 max_csum; 10833d0407baSopenharmony_ci u8 min_c; 10843d0407baSopenharmony_ci u8 frames; 10853d0407baSopenharmony_ci u8 awb_ref_cr; 10863d0407baSopenharmony_ci u8 awb_ref_cb; 10873d0407baSopenharmony_ci u8 enable_ymax_cmp; 10883d0407baSopenharmony_ci} __attribute__((packed)); 10893d0407baSopenharmony_ci 10903d0407baSopenharmony_cistruct isp2x_rawawb_meas_cfg { 10913d0407baSopenharmony_ci u8 rawawb_sel; 10923d0407baSopenharmony_ci u8 sw_rawawb_light_num; // CTRL 10933d0407baSopenharmony_ci u8 sw_rawawb_wind_size; // CTRL 10943d0407baSopenharmony_ci u8 sw_rawawb_c_range; // CTRL 10953d0407baSopenharmony_ci u8 sw_rawawb_y_range; // CTRL 10963d0407baSopenharmony_ci u8 sw_rawawb_3dyuv_ls_idx3; // CTRL 10973d0407baSopenharmony_ci u8 sw_rawawb_3dyuv_ls_idx2; // CTRL 10983d0407baSopenharmony_ci u8 sw_rawawb_3dyuv_ls_idx1; // CTRL 10993d0407baSopenharmony_ci u8 sw_rawawb_3dyuv_ls_idx0; // CTRL 11003d0407baSopenharmony_ci u8 sw_rawawb_xy_en; // CTRL 11013d0407baSopenharmony_ci u8 sw_rawawb_uv_en; // CTRL 11023d0407baSopenharmony_ci u8 sw_rawlsc_bypass_en; // CTRL 11033d0407baSopenharmony_ci u8 sw_rawawb_blk_measure_mode; // BLK_CTRL 11043d0407baSopenharmony_ci u8 sw_rawawb_store_wp_flag_ls_idx2; // BLK_CTRL 11053d0407baSopenharmony_ci u8 sw_rawawb_store_wp_flag_ls_idx1; // BLK_CTRL 11063d0407baSopenharmony_ci u8 sw_rawawb_store_wp_flag_ls_idx0; // BLK_CTRL 11073d0407baSopenharmony_ci u16 sw_rawawb_store_wp_th0; // BLK_CTRL 11083d0407baSopenharmony_ci u16 sw_rawawb_store_wp_th1; // BLK_CTRL 11093d0407baSopenharmony_ci u16 sw_rawawb_store_wp_th2; // RAW_CTRL 11103d0407baSopenharmony_ci u16 sw_rawawb_v_offs; // WIN_OFFS 11113d0407baSopenharmony_ci u16 sw_rawawb_h_offs; // WIN_OFFS 11123d0407baSopenharmony_ci u16 sw_rawawb_v_size; // WIN_SIZE 11133d0407baSopenharmony_ci u16 sw_rawawb_h_size; // WIN_SIZE 11143d0407baSopenharmony_ci u16 sw_rawawb_g_max; // LIMIT_RG_MAX 11153d0407baSopenharmony_ci u16 sw_rawawb_r_max; // LIMIT_RG_MAX 11163d0407baSopenharmony_ci u16 sw_rawawb_y_max; // LIMIT_BY_MAX 11173d0407baSopenharmony_ci u16 sw_rawawb_b_max; // LIMIT_BY_MAX 11183d0407baSopenharmony_ci u16 sw_rawawb_g_min; // LIMIT_RG_MIN 11193d0407baSopenharmony_ci u16 sw_rawawb_r_min; // LIMIT_RG_MIN 11203d0407baSopenharmony_ci u16 sw_rawawb_y_min; // LIMIT_BY_MIN 11213d0407baSopenharmony_ci u16 sw_rawawb_b_min; // LIMIT_BY_MIN 11223d0407baSopenharmony_ci u16 sw_rawawb_coeff_y_g; // RGB2Y_0 11233d0407baSopenharmony_ci u16 sw_rawawb_coeff_y_r; // RGB2Y_0 11243d0407baSopenharmony_ci u16 sw_rawawb_coeff_y_b; // RGB2Y_1 11253d0407baSopenharmony_ci u16 sw_rawawb_coeff_u_g; // RGB2U_0 11263d0407baSopenharmony_ci u16 sw_rawawb_coeff_u_r; // RGB2U_0 11273d0407baSopenharmony_ci u16 sw_rawawb_coeff_u_b; // RGB2U_1 11283d0407baSopenharmony_ci u16 sw_rawawb_coeff_v_g; // RGB2V_0 11293d0407baSopenharmony_ci u16 sw_rawawb_coeff_v_r; // RGB2V_0 11303d0407baSopenharmony_ci u16 sw_rawawb_coeff_v_b; // RGB2V_1 11313d0407baSopenharmony_ci u16 sw_rawawb_vertex0_v_0; // UV_DETC_VERTEX0_0 11323d0407baSopenharmony_ci u16 sw_rawawb_vertex0_u_0; // UV_DETC_VERTEX0_0 11333d0407baSopenharmony_ci u16 sw_rawawb_vertex1_v_0; // UV_DETC_VERTEX1_0 11343d0407baSopenharmony_ci u16 sw_rawawb_vertex1_u_0; // UV_DETC_VERTEX1_0 11353d0407baSopenharmony_ci u16 sw_rawawb_vertex2_v_0; // UV_DETC_VERTEX2_0 11363d0407baSopenharmony_ci u16 sw_rawawb_vertex2_u_0; // UV_DETC_VERTEX2_0 11373d0407baSopenharmony_ci u16 sw_rawawb_vertex3_v_0; // UV_DETC_VERTEX3_0 11383d0407baSopenharmony_ci u16 sw_rawawb_vertex3_u_0; // UV_DETC_VERTEX3_0 11393d0407baSopenharmony_ci u32 sw_rawawb_islope01_0; // UV_DETC_ISLOPE01_0 11403d0407baSopenharmony_ci u32 sw_rawawb_islope12_0; // UV_DETC_ISLOPE12_0 11413d0407baSopenharmony_ci u32 sw_rawawb_islope23_0; // UV_DETC_ISLOPE23_0 11423d0407baSopenharmony_ci u32 sw_rawawb_islope30_0; // UV_DETC_ISLOPE30_0 11433d0407baSopenharmony_ci u16 sw_rawawb_vertex0_v_1; // UV_DETC_VERTEX0_1 11443d0407baSopenharmony_ci u16 sw_rawawb_vertex0_u_1; // UV_DETC_VERTEX0_1 11453d0407baSopenharmony_ci u16 sw_rawawb_vertex1_v_1; // UV_DETC_VERTEX1_1 11463d0407baSopenharmony_ci u16 sw_rawawb_vertex1_u_1; // UV_DETC_VERTEX1_1 11473d0407baSopenharmony_ci u16 sw_rawawb_vertex2_v_1; // UV_DETC_VERTEX2_1 11483d0407baSopenharmony_ci u16 sw_rawawb_vertex2_u_1; // UV_DETC_VERTEX2_1 11493d0407baSopenharmony_ci u16 sw_rawawb_vertex3_v_1; // UV_DETC_VERTEX3_1 11503d0407baSopenharmony_ci u16 sw_rawawb_vertex3_u_1; // UV_DETC_VERTEX3_1 11513d0407baSopenharmony_ci u32 sw_rawawb_islope01_1; // UV_DETC_ISLOPE01_1 11523d0407baSopenharmony_ci u32 sw_rawawb_islope12_1; // UV_DETC_ISLOPE12_1 11533d0407baSopenharmony_ci u32 sw_rawawb_islope23_1; // UV_DETC_ISLOPE23_1 11543d0407baSopenharmony_ci u32 sw_rawawb_islope30_1; // UV_DETC_ISLOPE30_1 11553d0407baSopenharmony_ci u16 sw_rawawb_vertex0_v_2; // UV_DETC_VERTEX0_2 11563d0407baSopenharmony_ci u16 sw_rawawb_vertex0_u_2; // UV_DETC_VERTEX0_2 11573d0407baSopenharmony_ci u16 sw_rawawb_vertex1_v_2; // UV_DETC_VERTEX1_2 11583d0407baSopenharmony_ci u16 sw_rawawb_vertex1_u_2; // UV_DETC_VERTEX1_2 11593d0407baSopenharmony_ci u16 sw_rawawb_vertex2_v_2; // UV_DETC_VERTEX2_2 11603d0407baSopenharmony_ci u16 sw_rawawb_vertex2_u_2; // UV_DETC_VERTEX2_2 11613d0407baSopenharmony_ci u16 sw_rawawb_vertex3_v_2; // UV_DETC_VERTEX3_2 11623d0407baSopenharmony_ci u16 sw_rawawb_vertex3_u_2; // UV_DETC_VERTEX3_2 11633d0407baSopenharmony_ci u32 sw_rawawb_islope01_2; // UV_DETC_ISLOPE01_2 11643d0407baSopenharmony_ci u32 sw_rawawb_islope12_2; // UV_DETC_ISLOPE12_2 11653d0407baSopenharmony_ci u32 sw_rawawb_islope23_2; // UV_DETC_ISLOPE23_2 11663d0407baSopenharmony_ci u32 sw_rawawb_islope30_2; // UV_DETC_ISLOPE30_2 11673d0407baSopenharmony_ci u16 sw_rawawb_vertex0_v_3; // UV_DETC_VERTEX0_3 11683d0407baSopenharmony_ci u16 sw_rawawb_vertex0_u_3; // UV_DETC_VERTEX0_3 11693d0407baSopenharmony_ci u16 sw_rawawb_vertex1_v_3; // UV_DETC_VERTEX1_3 11703d0407baSopenharmony_ci u16 sw_rawawb_vertex1_u_3; // UV_DETC_VERTEX1_3 11713d0407baSopenharmony_ci u16 sw_rawawb_vertex2_v_3; // UV_DETC_VERTEX2_3 11723d0407baSopenharmony_ci u16 sw_rawawb_vertex2_u_3; // UV_DETC_VERTEX2_3 11733d0407baSopenharmony_ci u16 sw_rawawb_vertex3_v_3; // UV_DETC_VERTEX3_3 11743d0407baSopenharmony_ci u16 sw_rawawb_vertex3_u_3; // UV_DETC_VERTEX3_3 11753d0407baSopenharmony_ci u32 sw_rawawb_islope01_3; // UV_DETC_ISLOPE01_3 11763d0407baSopenharmony_ci u32 sw_rawawb_islope12_3; // UV_DETC_ISLOPE12_3 11773d0407baSopenharmony_ci u32 sw_rawawb_islope23_3; // UV_DETC_ISLOPE23_3 11783d0407baSopenharmony_ci u32 sw_rawawb_islope30_3; // UV_DETC_ISLOPE30_3 11793d0407baSopenharmony_ci u16 sw_rawawb_vertex0_v_4; // UV_DETC_VERTEX0_4 11803d0407baSopenharmony_ci u16 sw_rawawb_vertex0_u_4; // UV_DETC_VERTEX0_4 11813d0407baSopenharmony_ci u16 sw_rawawb_vertex1_v_4; // UV_DETC_VERTEX1_4 11823d0407baSopenharmony_ci u16 sw_rawawb_vertex1_u_4; // UV_DETC_VERTEX1_4 11833d0407baSopenharmony_ci u16 sw_rawawb_vertex2_v_4; // UV_DETC_VERTEX2_4 11843d0407baSopenharmony_ci u16 sw_rawawb_vertex2_u_4; // UV_DETC_VERTEX2_4 11853d0407baSopenharmony_ci u16 sw_rawawb_vertex3_v_4; // UV_DETC_VERTEX3_4 11863d0407baSopenharmony_ci u16 sw_rawawb_vertex3_u_4; // UV_DETC_VERTEX3_4 11873d0407baSopenharmony_ci u32 sw_rawawb_islope01_4; // UV_DETC_ISLOPE01_4 11883d0407baSopenharmony_ci u32 sw_rawawb_islope12_4; // UV_DETC_ISLOPE12_4 11893d0407baSopenharmony_ci u32 sw_rawawb_islope23_4; // UV_DETC_ISLOPE23_4 11903d0407baSopenharmony_ci u32 sw_rawawb_islope30_4; // UV_DETC_ISLOPE30_4 11913d0407baSopenharmony_ci u16 sw_rawawb_vertex0_v_5; // UV_DETC_VERTEX0_5 11923d0407baSopenharmony_ci u16 sw_rawawb_vertex0_u_5; // UV_DETC_VERTEX0_5 11933d0407baSopenharmony_ci u16 sw_rawawb_vertex1_v_5; // UV_DETC_VERTEX1_5 11943d0407baSopenharmony_ci u16 sw_rawawb_vertex1_u_5; // UV_DETC_VERTEX1_5 11953d0407baSopenharmony_ci u16 sw_rawawb_vertex2_v_5; // UV_DETC_VERTEX2_5 11963d0407baSopenharmony_ci u16 sw_rawawb_vertex2_u_5; // UV_DETC_VERTEX2_5 11973d0407baSopenharmony_ci u16 sw_rawawb_vertex3_v_5; // UV_DETC_VERTEX3_5 11983d0407baSopenharmony_ci u16 sw_rawawb_vertex3_u_5; // UV_DETC_VERTEX3_5 11993d0407baSopenharmony_ci u32 sw_rawawb_islope01_5; // UV_DETC_ISLOPE01_5 12003d0407baSopenharmony_ci u32 sw_rawawb_islope12_5; // UV_DETC_ISLOPE10_5 12013d0407baSopenharmony_ci u32 sw_rawawb_islope23_5; // UV_DETC_ISLOPE23_5 12023d0407baSopenharmony_ci u32 sw_rawawb_islope30_5; // UV_DETC_ISLOPE30_5 12033d0407baSopenharmony_ci u16 sw_rawawb_vertex0_v_6; // UV_DETC_VERTEX0_6 12043d0407baSopenharmony_ci u16 sw_rawawb_vertex0_u_6; // UV_DETC_VERTEX0_6 12053d0407baSopenharmony_ci u16 sw_rawawb_vertex1_v_6; // UV_DETC_VERTEX1_6 12063d0407baSopenharmony_ci u16 sw_rawawb_vertex1_u_6; // UV_DETC_VERTEX1_6 12073d0407baSopenharmony_ci u16 sw_rawawb_vertex2_v_6; // UV_DETC_VERTEX2_6 12083d0407baSopenharmony_ci u16 sw_rawawb_vertex2_u_6; // UV_DETC_VERTEX2_6 12093d0407baSopenharmony_ci u16 sw_rawawb_vertex3_v_6; // UV_DETC_VERTEX3_6 12103d0407baSopenharmony_ci u16 sw_rawawb_vertex3_u_6; // UV_DETC_VERTEX3_6 12113d0407baSopenharmony_ci u32 sw_rawawb_islope01_6; // UV_DETC_ISLOPE01_6 12123d0407baSopenharmony_ci u32 sw_rawawb_islope12_6; // UV_DETC_ISLOPE10_6 12133d0407baSopenharmony_ci u32 sw_rawawb_islope23_6; // UV_DETC_ISLOPE23_6 12143d0407baSopenharmony_ci u32 sw_rawawb_islope30_6; // UV_DETC_ISLOPE30_6 12153d0407baSopenharmony_ci u32 sw_rawawb_b_uv_0; // YUV_DETC_B_UV_0 12163d0407baSopenharmony_ci u32 sw_rawawb_slope_vtcuv_0; // YUV_DETC_SLOPE_VTCUV_0 12173d0407baSopenharmony_ci u32 sw_rawawb_inv_dslope_0; // YUV_DETC_INV_DSLOPE_0 12183d0407baSopenharmony_ci u32 sw_rawawb_slope_ydis_0; // YUV_DETC_SLOPE_YDIS_0 12193d0407baSopenharmony_ci u32 sw_rawawb_b_ydis_0; // YUV_DETC_B_YDIS_0 12203d0407baSopenharmony_ci u32 sw_rawawb_b_uv_1; // YUV_DETC_B_UV_1 12213d0407baSopenharmony_ci u32 sw_rawawb_slope_vtcuv_1; // YUV_DETC_SLOPE_VTCUV_1 12223d0407baSopenharmony_ci u32 sw_rawawb_inv_dslope_1; // YUV_DETC_INV_DSLOPE_1 12233d0407baSopenharmony_ci u32 sw_rawawb_slope_ydis_1; // YUV_DETC_SLOPE_YDIS_1 12243d0407baSopenharmony_ci u32 sw_rawawb_b_ydis_1; // YUV_DETC_B_YDIS_1 12253d0407baSopenharmony_ci u32 sw_rawawb_b_uv_2; // YUV_DETC_B_UV_2 12263d0407baSopenharmony_ci u32 sw_rawawb_slope_vtcuv_2; // YUV_DETC_SLOPE_VTCUV_2 12273d0407baSopenharmony_ci u32 sw_rawawb_inv_dslope_2; // YUV_DETC_INV_DSLOPE_2 12283d0407baSopenharmony_ci u32 sw_rawawb_slope_ydis_2; // YUV_DETC_SLOPE_YDIS_2 12293d0407baSopenharmony_ci u32 sw_rawawb_b_ydis_2; // YUV_DETC_B_YDIS_2 12303d0407baSopenharmony_ci u32 sw_rawawb_b_uv_3; // YUV_DETC_B_UV_3 12313d0407baSopenharmony_ci u32 sw_rawawb_slope_vtcuv_3; // YUV_DETC_SLOPE_VTCUV_3 12323d0407baSopenharmony_ci u32 sw_rawawb_inv_dslope_3; // YUV_DETC_INV_DSLOPE_3 12333d0407baSopenharmony_ci u32 sw_rawawb_slope_ydis_3; // YUV_DETC_SLOPE_YDIS_3 12343d0407baSopenharmony_ci u32 sw_rawawb_b_ydis_3; // YUV_DETC_B_YDIS_3 12353d0407baSopenharmony_ci u32 sw_rawawb_ref_u; // YUV_DETC_REF_U 12363d0407baSopenharmony_ci u8 sw_rawawb_ref_v_3; // YUV_DETC_REF_V_1 12373d0407baSopenharmony_ci u8 sw_rawawb_ref_v_2; // YUV_DETC_REF_V_1 12383d0407baSopenharmony_ci u8 sw_rawawb_ref_v_1; // YUV_DETC_REF_V_1 12393d0407baSopenharmony_ci u8 sw_rawawb_ref_v_0; // YUV_DETC_REF_V_1 12403d0407baSopenharmony_ci u16 sw_rawawb_dis1_0; // YUV_DETC_DIS01_0 12413d0407baSopenharmony_ci u16 sw_rawawb_dis0_0; // YUV_DETC_DIS01_0 12423d0407baSopenharmony_ci u16 sw_rawawb_dis3_0; // YUV_DETC_DIS23_0 12433d0407baSopenharmony_ci u16 sw_rawawb_dis2_0; // YUV_DETC_DIS23_0 12443d0407baSopenharmony_ci u16 sw_rawawb_dis5_0; // YUV_DETC_DIS45_0 12453d0407baSopenharmony_ci u16 sw_rawawb_dis4_0; // YUV_DETC_DIS45_0 12463d0407baSopenharmony_ci u8 sw_rawawb_th3_0; // YUV_DETC_TH03_0 12473d0407baSopenharmony_ci u8 sw_rawawb_th2_0; // YUV_DETC_TH03_0 12483d0407baSopenharmony_ci u8 sw_rawawb_th1_0; // YUV_DETC_TH03_0 12493d0407baSopenharmony_ci u8 sw_rawawb_th0_0; // YUV_DETC_TH03_0 12503d0407baSopenharmony_ci u8 sw_rawawb_th5_0; // YUV_DETC_TH45_0 12513d0407baSopenharmony_ci u8 sw_rawawb_th4_0; // YUV_DETC_TH45_0 12523d0407baSopenharmony_ci u16 sw_rawawb_dis1_1; // YUV_DETC_DIS01_1 12533d0407baSopenharmony_ci u16 sw_rawawb_dis0_1; // YUV_DETC_DIS01_1 12543d0407baSopenharmony_ci u16 sw_rawawb_dis3_1; // YUV_DETC_DIS23_1 12553d0407baSopenharmony_ci u16 sw_rawawb_dis2_1; // YUV_DETC_DIS23_1 12563d0407baSopenharmony_ci u16 sw_rawawb_dis5_1; // YUV_DETC_DIS45_1 12573d0407baSopenharmony_ci u16 sw_rawawb_dis4_1; // YUV_DETC_DIS45_1 12583d0407baSopenharmony_ci u8 sw_rawawb_th3_1; // YUV_DETC_TH03_1 12593d0407baSopenharmony_ci u8 sw_rawawb_th2_1; // YUV_DETC_TH03_1 12603d0407baSopenharmony_ci u8 sw_rawawb_th1_1; // YUV_DETC_TH03_1 12613d0407baSopenharmony_ci u8 sw_rawawb_th0_1; // YUV_DETC_TH03_1 12623d0407baSopenharmony_ci u8 sw_rawawb_th5_1; // YUV_DETC_TH45_1 12633d0407baSopenharmony_ci u8 sw_rawawb_th4_1; // YUV_DETC_TH45_1 12643d0407baSopenharmony_ci u16 sw_rawawb_dis1_2; // YUV_DETC_DIS01_2 12653d0407baSopenharmony_ci u16 sw_rawawb_dis0_2; // YUV_DETC_DIS01_2 12663d0407baSopenharmony_ci u16 sw_rawawb_dis3_2; // YUV_DETC_DIS23_2 12673d0407baSopenharmony_ci u16 sw_rawawb_dis2_2; // YUV_DETC_DIS23_2 12683d0407baSopenharmony_ci u16 sw_rawawb_dis5_2; // YUV_DETC_DIS45_2 12693d0407baSopenharmony_ci u16 sw_rawawb_dis4_2; // YUV_DETC_DIS45_2 12703d0407baSopenharmony_ci u8 sw_rawawb_th3_2; // YUV_DETC_TH03_2 12713d0407baSopenharmony_ci u8 sw_rawawb_th2_2; // YUV_DETC_TH03_2 12723d0407baSopenharmony_ci u8 sw_rawawb_th1_2; // YUV_DETC_TH03_2 12733d0407baSopenharmony_ci u8 sw_rawawb_th0_2; // YUV_DETC_TH03_2 12743d0407baSopenharmony_ci u8 sw_rawawb_th5_2; // YUV_DETC_TH45_2 12753d0407baSopenharmony_ci u8 sw_rawawb_th4_2; // YUV_DETC_TH45_2 12763d0407baSopenharmony_ci u16 sw_rawawb_dis1_3; // YUV_DETC_DIS01_3 12773d0407baSopenharmony_ci u16 sw_rawawb_dis0_3; // YUV_DETC_DIS01_3 12783d0407baSopenharmony_ci u16 sw_rawawb_dis3_3; // YUV_DETC_DIS23_3 12793d0407baSopenharmony_ci u16 sw_rawawb_dis2_3; // YUV_DETC_DIS23_3 12803d0407baSopenharmony_ci u16 sw_rawawb_dis5_3; // YUV_DETC_DIS45_3 12813d0407baSopenharmony_ci u16 sw_rawawb_dis4_3; // YUV_DETC_DIS45_3 12823d0407baSopenharmony_ci u8 sw_rawawb_th3_3; // YUV_DETC_TH03_3 12833d0407baSopenharmony_ci u8 sw_rawawb_th2_3; // YUV_DETC_TH03_3 12843d0407baSopenharmony_ci u8 sw_rawawb_th1_3; // YUV_DETC_TH03_3 12853d0407baSopenharmony_ci u8 sw_rawawb_th0_3; // YUV_DETC_TH03_3 12863d0407baSopenharmony_ci u8 sw_rawawb_th5_3; // YUV_DETC_TH45_3 12873d0407baSopenharmony_ci u8 sw_rawawb_th4_3; // YUV_DETC_TH45_3 12883d0407baSopenharmony_ci u16 sw_rawawb_wt1; // RGB2XY_WT01 12893d0407baSopenharmony_ci u16 sw_rawawb_wt0; // RGB2XY_WT01 12903d0407baSopenharmony_ci u16 sw_rawawb_wt2; // RGB2XY_WT2 12913d0407baSopenharmony_ci u16 sw_rawawb_mat0_y; // RGB2XY_MAT0_XY 12923d0407baSopenharmony_ci u16 sw_rawawb_mat0_x; // RGB2XY_MAT0_XY 12933d0407baSopenharmony_ci u16 sw_rawawb_mat1_y; // RGB2XY_MAT1_XY 12943d0407baSopenharmony_ci u16 sw_rawawb_mat1_x; // RGB2XY_MAT1_XY 12953d0407baSopenharmony_ci u16 sw_rawawb_mat2_y; // RGB2XY_MAT2_XY 12963d0407baSopenharmony_ci u16 sw_rawawb_mat2_x; // RGB2XY_MAT2_XY 12973d0407baSopenharmony_ci u16 sw_rawawb_nor_x1_0; // XY_DETC_NOR_X_0 12983d0407baSopenharmony_ci u16 sw_rawawb_nor_x0_0; // XY_DETC_NOR_X_0 12993d0407baSopenharmony_ci u16 sw_rawawb_nor_y1_0; // XY_DETC_NOR_Y_0 13003d0407baSopenharmony_ci u16 sw_rawawb_nor_y0_0; // XY_DETC_NOR_Y_0 13013d0407baSopenharmony_ci u16 sw_rawawb_big_x1_0; // XY_DETC_BIG_X_0 13023d0407baSopenharmony_ci u16 sw_rawawb_big_x0_0; // XY_DETC_BIG_X_0 13033d0407baSopenharmony_ci u16 sw_rawawb_big_y1_0; // XY_DETC_BIG_Y_0 13043d0407baSopenharmony_ci u16 sw_rawawb_big_y0_0; // XY_DETC_BIG_Y_0 13053d0407baSopenharmony_ci u16 sw_rawawb_sma_x1_0; // XY_DETC_SMA_X_0 13063d0407baSopenharmony_ci u16 sw_rawawb_sma_x0_0; // XY_DETC_SMA_X_0 13073d0407baSopenharmony_ci u16 sw_rawawb_sma_y1_0; // XY_DETC_SMA_Y_0 13083d0407baSopenharmony_ci u16 sw_rawawb_sma_y0_0; // XY_DETC_SMA_Y_0 13093d0407baSopenharmony_ci u16 sw_rawawb_nor_x1_1; // XY_DETC_NOR_X_1 13103d0407baSopenharmony_ci u16 sw_rawawb_nor_x0_1; // XY_DETC_NOR_X_1 13113d0407baSopenharmony_ci u16 sw_rawawb_nor_y1_1; // XY_DETC_NOR_Y_1 13123d0407baSopenharmony_ci u16 sw_rawawb_nor_y0_1; // XY_DETC_NOR_Y_1 13133d0407baSopenharmony_ci u16 sw_rawawb_big_x1_1; // XY_DETC_BIG_X_1 13143d0407baSopenharmony_ci u16 sw_rawawb_big_x0_1; // XY_DETC_BIG_X_1 13153d0407baSopenharmony_ci u16 sw_rawawb_big_y1_1; // XY_DETC_BIG_Y_1 13163d0407baSopenharmony_ci u16 sw_rawawb_big_y0_1; // XY_DETC_BIG_Y_1 13173d0407baSopenharmony_ci u16 sw_rawawb_sma_x1_1; // XY_DETC_SMA_X_1 13183d0407baSopenharmony_ci u16 sw_rawawb_sma_x0_1; // XY_DETC_SMA_X_1 13193d0407baSopenharmony_ci u16 sw_rawawb_sma_y1_1; // XY_DETC_SMA_Y_1 13203d0407baSopenharmony_ci u16 sw_rawawb_sma_y0_1; // XY_DETC_SMA_Y_1 13213d0407baSopenharmony_ci u16 sw_rawawb_nor_x1_2; // XY_DETC_NOR_X_2 13223d0407baSopenharmony_ci u16 sw_rawawb_nor_x0_2; // XY_DETC_NOR_X_2 13233d0407baSopenharmony_ci u16 sw_rawawb_nor_y1_2; // XY_DETC_NOR_Y_2 13243d0407baSopenharmony_ci u16 sw_rawawb_nor_y0_2; // XY_DETC_NOR_Y_2 13253d0407baSopenharmony_ci u16 sw_rawawb_big_x1_2; // XY_DETC_BIG_X_2 13263d0407baSopenharmony_ci u16 sw_rawawb_big_x0_2; // XY_DETC_BIG_X_2 13273d0407baSopenharmony_ci u16 sw_rawawb_big_y1_2; // XY_DETC_BIG_Y_2 13283d0407baSopenharmony_ci u16 sw_rawawb_big_y0_2; // XY_DETC_BIG_Y_2 13293d0407baSopenharmony_ci u16 sw_rawawb_sma_x1_2; // XY_DETC_SMA_X_2 13303d0407baSopenharmony_ci u16 sw_rawawb_sma_x0_2; // XY_DETC_SMA_X_2 13313d0407baSopenharmony_ci u16 sw_rawawb_sma_y1_2; // XY_DETC_SMA_Y_2 13323d0407baSopenharmony_ci u16 sw_rawawb_sma_y0_2; // XY_DETC_SMA_Y_2 13333d0407baSopenharmony_ci u16 sw_rawawb_nor_x1_3; // XY_DETC_NOR_X_3 13343d0407baSopenharmony_ci u16 sw_rawawb_nor_x0_3; // XY_DETC_NOR_X_3 13353d0407baSopenharmony_ci u16 sw_rawawb_nor_y1_3; // XY_DETC_NOR_Y_3 13363d0407baSopenharmony_ci u16 sw_rawawb_nor_y0_3; // XY_DETC_NOR_Y_3 13373d0407baSopenharmony_ci u16 sw_rawawb_big_x1_3; // XY_DETC_BIG_X_3 13383d0407baSopenharmony_ci u16 sw_rawawb_big_x0_3; // XY_DETC_BIG_X_3 13393d0407baSopenharmony_ci u16 sw_rawawb_big_y1_3; // XY_DETC_BIG_Y_3 13403d0407baSopenharmony_ci u16 sw_rawawb_big_y0_3; // XY_DETC_BIG_Y_3 13413d0407baSopenharmony_ci u16 sw_rawawb_sma_x1_3; // XY_DETC_SMA_X_3 13423d0407baSopenharmony_ci u16 sw_rawawb_sma_x0_3; // XY_DETC_SMA_X_3 13433d0407baSopenharmony_ci u16 sw_rawawb_sma_y1_3; // XY_DETC_SMA_Y_3 13443d0407baSopenharmony_ci u16 sw_rawawb_sma_y0_3; // XY_DETC_SMA_Y_3 13453d0407baSopenharmony_ci u16 sw_rawawb_nor_x1_4; // XY_DETC_NOR_X_4 13463d0407baSopenharmony_ci u16 sw_rawawb_nor_x0_4; // XY_DETC_NOR_X_4 13473d0407baSopenharmony_ci u16 sw_rawawb_nor_y1_4; // XY_DETC_NOR_Y_4 13483d0407baSopenharmony_ci u16 sw_rawawb_nor_y0_4; // XY_DETC_NOR_Y_4 13493d0407baSopenharmony_ci u16 sw_rawawb_big_x1_4; // XY_DETC_BIG_X_4 13503d0407baSopenharmony_ci u16 sw_rawawb_big_x0_4; // XY_DETC_BIG_X_4 13513d0407baSopenharmony_ci u16 sw_rawawb_big_y1_4; // XY_DETC_BIG_Y_4 13523d0407baSopenharmony_ci u16 sw_rawawb_big_y0_4; // XY_DETC_BIG_Y_4 13533d0407baSopenharmony_ci u16 sw_rawawb_sma_x1_4; // XY_DETC_SMA_X_4 13543d0407baSopenharmony_ci u16 sw_rawawb_sma_x0_4; // XY_DETC_SMA_X_4 13553d0407baSopenharmony_ci u16 sw_rawawb_sma_y1_4; // XY_DETC_SMA_Y_4 13563d0407baSopenharmony_ci u16 sw_rawawb_sma_y0_4; // XY_DETC_SMA_Y_4 13573d0407baSopenharmony_ci u16 sw_rawawb_nor_x1_5; // XY_DETC_NOR_X_5 13583d0407baSopenharmony_ci u16 sw_rawawb_nor_x0_5; // XY_DETC_NOR_X_5 13593d0407baSopenharmony_ci u16 sw_rawawb_nor_y1_5; // XY_DETC_NOR_Y_5 13603d0407baSopenharmony_ci u16 sw_rawawb_nor_y0_5; // XY_DETC_NOR_Y_5 13613d0407baSopenharmony_ci u16 sw_rawawb_big_x1_5; // XY_DETC_BIG_X_5 13623d0407baSopenharmony_ci u16 sw_rawawb_big_x0_5; // XY_DETC_BIG_X_5 13633d0407baSopenharmony_ci u16 sw_rawawb_big_y1_5; // XY_DETC_BIG_Y_5 13643d0407baSopenharmony_ci u16 sw_rawawb_big_y0_5; // XY_DETC_BIG_Y_5 13653d0407baSopenharmony_ci u16 sw_rawawb_sma_x1_5; // XY_DETC_SMA_X_5 13663d0407baSopenharmony_ci u16 sw_rawawb_sma_x0_5; // XY_DETC_SMA_X_5 13673d0407baSopenharmony_ci u16 sw_rawawb_sma_y1_5; // XY_DETC_SMA_Y_5 13683d0407baSopenharmony_ci u16 sw_rawawb_sma_y0_5; // XY_DETC_SMA_Y_5 13693d0407baSopenharmony_ci u16 sw_rawawb_nor_x1_6; // XY_DETC_NOR_X_6 13703d0407baSopenharmony_ci u16 sw_rawawb_nor_x0_6; // XY_DETC_NOR_X_6 13713d0407baSopenharmony_ci u16 sw_rawawb_nor_y1_6; // XY_DETC_NOR_Y_6 13723d0407baSopenharmony_ci u16 sw_rawawb_nor_y0_6; // XY_DETC_NOR_Y_6 13733d0407baSopenharmony_ci u16 sw_rawawb_big_x1_6; // XY_DETC_BIG_X_6 13743d0407baSopenharmony_ci u16 sw_rawawb_big_x0_6; // XY_DETC_BIG_X_6 13753d0407baSopenharmony_ci u16 sw_rawawb_big_y1_6; // XY_DETC_BIG_Y_6 13763d0407baSopenharmony_ci u16 sw_rawawb_big_y0_6; // XY_DETC_BIG_Y_6 13773d0407baSopenharmony_ci u16 sw_rawawb_sma_x1_6; // XY_DETC_SMA_X_6 13783d0407baSopenharmony_ci u16 sw_rawawb_sma_x0_6; // XY_DETC_SMA_X_6 13793d0407baSopenharmony_ci u16 sw_rawawb_sma_y1_6; // XY_DETC_SMA_Y_6 13803d0407baSopenharmony_ci u16 sw_rawawb_sma_y0_6; // XY_DETC_SMA_Y_6 13813d0407baSopenharmony_ci u8 sw_rawawb_multiwindow_en; // MULTIWINDOW_EXC_CTRL 13823d0407baSopenharmony_ci u8 sw_rawawb_exc_wp_region6_domain; // MULTIWINDOW_EXC_CTRL 13833d0407baSopenharmony_ci u8 sw_rawawb_exc_wp_region6_measen; // MULTIWINDOW_EXC_CTRL 13843d0407baSopenharmony_ci u8 sw_rawawb_exc_wp_region6_excen; // MULTIWINDOW_EXC_CTRL 13853d0407baSopenharmony_ci u8 sw_rawawb_exc_wp_region5_domain; // MULTIWINDOW_EXC_CTRL 13863d0407baSopenharmony_ci u8 sw_rawawb_exc_wp_region5_measen; // MULTIWINDOW_EXC_CTRL 13873d0407baSopenharmony_ci u8 sw_rawawb_exc_wp_region5_excen; // MULTIWINDOW_EXC_CTRL 13883d0407baSopenharmony_ci u8 sw_rawawb_exc_wp_region4_domain; // MULTIWINDOW_EXC_CTRL 13893d0407baSopenharmony_ci u8 sw_rawawb_exc_wp_region4_measen; // MULTIWINDOW_EXC_CTRL 13903d0407baSopenharmony_ci u8 sw_rawawb_exc_wp_region4_excen; // MULTIWINDOW_EXC_CTRL 13913d0407baSopenharmony_ci u8 sw_rawawb_exc_wp_region3_domain; // MULTIWINDOW_EXC_CTRL 13923d0407baSopenharmony_ci u8 sw_rawawb_exc_wp_region3_measen; // MULTIWINDOW_EXC_CTRL 13933d0407baSopenharmony_ci u8 sw_rawawb_exc_wp_region3_excen; // MULTIWINDOW_EXC_CTRL 13943d0407baSopenharmony_ci u8 sw_rawawb_exc_wp_region2_domain; // MULTIWINDOW_EXC_CTRL 13953d0407baSopenharmony_ci u8 sw_rawawb_exc_wp_region2_measen; // MULTIWINDOW_EXC_CTRL 13963d0407baSopenharmony_ci u8 sw_rawawb_exc_wp_region2_excen; // MULTIWINDOW_EXC_CTRL 13973d0407baSopenharmony_ci u8 sw_rawawb_exc_wp_region1_domain; // MULTIWINDOW_EXC_CTRL 13983d0407baSopenharmony_ci u8 sw_rawawb_exc_wp_region1_measen; // MULTIWINDOW_EXC_CTRL 13993d0407baSopenharmony_ci u8 sw_rawawb_exc_wp_region1_excen; // MULTIWINDOW_EXC_CTRL 14003d0407baSopenharmony_ci u8 sw_rawawb_exc_wp_region0_domain; // MULTIWINDOW_EXC_CTRL 14013d0407baSopenharmony_ci u8 sw_rawawb_exc_wp_region0_measen; // MULTIWINDOW_EXC_CTRL 14023d0407baSopenharmony_ci u8 sw_rawawb_exc_wp_region0_excen; // MULTIWINDOW_EXC_CTRL 14033d0407baSopenharmony_ci u16 sw_rawawb_multiwindow0_v_offs; // MULTIWINDOW0_OFFS 14043d0407baSopenharmony_ci u16 sw_rawawb_multiwindow0_h_offs; // MULTIWINDOW0_OFFS 14053d0407baSopenharmony_ci u16 sw_rawawb_multiwindow0_v_size; // MULTIWINDOW0_SIZE 14063d0407baSopenharmony_ci u16 sw_rawawb_multiwindow0_h_size; // MULTIWINDOW0_SIZE 14073d0407baSopenharmony_ci u16 sw_rawawb_multiwindow1_v_offs; // MULTIWINDOW1_OFFS 14083d0407baSopenharmony_ci u16 sw_rawawb_multiwindow1_h_offs; // MULTIWINDOW1_OFFS 14093d0407baSopenharmony_ci u16 sw_rawawb_multiwindow1_v_size; // MULTIWINDOW1_SIZE 14103d0407baSopenharmony_ci u16 sw_rawawb_multiwindow1_h_size; // MULTIWINDOW1_SIZE 14113d0407baSopenharmony_ci u16 sw_rawawb_multiwindow2_v_offs; // MULTIWINDOW2_OFFS 14123d0407baSopenharmony_ci u16 sw_rawawb_multiwindow2_h_offs; // MULTIWINDOW2_OFFS 14133d0407baSopenharmony_ci u16 sw_rawawb_multiwindow2_v_size; // MULTIWINDOW2_SIZE 14143d0407baSopenharmony_ci u16 sw_rawawb_multiwindow2_h_size; // MULTIWINDOW2_SIZE 14153d0407baSopenharmony_ci u16 sw_rawawb_multiwindow3_v_offs; // MULTIWINDOW3_OFFS 14163d0407baSopenharmony_ci u16 sw_rawawb_multiwindow3_h_offs; // MULTIWINDOW3_OFFS 14173d0407baSopenharmony_ci u16 sw_rawawb_multiwindow3_v_size; // MULTIWINDOW3_SIZE 14183d0407baSopenharmony_ci u16 sw_rawawb_multiwindow3_h_size; // MULTIWINDOW3_SIZE 14193d0407baSopenharmony_ci u16 sw_rawawb_multiwindow4_v_offs; // MULTIWINDOW4_OFFS 14203d0407baSopenharmony_ci u16 sw_rawawb_multiwindow4_h_offs; // MULTIWINDOW4_OFFS 14213d0407baSopenharmony_ci u16 sw_rawawb_multiwindow4_v_size; // MULTIWINDOW4_SIZE 14223d0407baSopenharmony_ci u16 sw_rawawb_multiwindow4_h_size; // MULTIWINDOW4_SIZE 14233d0407baSopenharmony_ci u16 sw_rawawb_multiwindow5_v_offs; // MULTIWINDOW5_OFFS 14243d0407baSopenharmony_ci u16 sw_rawawb_multiwindow5_h_offs; // MULTIWINDOW5_OFFS 14253d0407baSopenharmony_ci u16 sw_rawawb_multiwindow5_v_size; // MULTIWINDOW5_SIZE 14263d0407baSopenharmony_ci u16 sw_rawawb_multiwindow5_h_size; // MULTIWINDOW5_SIZE 14273d0407baSopenharmony_ci u16 sw_rawawb_multiwindow6_v_offs; // MULTIWINDOW6_OFFS 14283d0407baSopenharmony_ci u16 sw_rawawb_multiwindow6_h_offs; // MULTIWINDOW6_OFFS 14293d0407baSopenharmony_ci u16 sw_rawawb_multiwindow6_v_size; // MULTIWINDOW6_SIZE 14303d0407baSopenharmony_ci u16 sw_rawawb_multiwindow6_h_size; // MULTIWINDOW6_SIZE 14313d0407baSopenharmony_ci u16 sw_rawawb_multiwindow7_v_offs; // MULTIWINDOW7_OFFS 14323d0407baSopenharmony_ci u16 sw_rawawb_multiwindow7_h_offs; // MULTIWINDOW7_OFFS 14333d0407baSopenharmony_ci u16 sw_rawawb_multiwindow7_v_size; // MULTIWINDOW7_SIZE 14343d0407baSopenharmony_ci u16 sw_rawawb_multiwindow7_h_size; // MULTIWINDOW7_SIZE 14353d0407baSopenharmony_ci u16 sw_rawawb_exc_wp_region0_xu1; // EXC_WP_REGION0_XU 14363d0407baSopenharmony_ci u16 sw_rawawb_exc_wp_region0_xu0; // EXC_WP_REGION0_XU 14373d0407baSopenharmony_ci u16 sw_rawawb_exc_wp_region0_yv1; // EXC_WP_REGION0_YV 14383d0407baSopenharmony_ci u16 sw_rawawb_exc_wp_region0_yv0; // EXC_WP_REGION0_YV 14393d0407baSopenharmony_ci u16 sw_rawawb_exc_wp_region1_xu1; // EXC_WP_REGION1_XU 14403d0407baSopenharmony_ci u16 sw_rawawb_exc_wp_region1_xu0; // EXC_WP_REGION1_XU 14413d0407baSopenharmony_ci u16 sw_rawawb_exc_wp_region1_yv1; // EXC_WP_REGION1_YV 14423d0407baSopenharmony_ci u16 sw_rawawb_exc_wp_region1_yv0; // EXC_WP_REGION1_YV 14433d0407baSopenharmony_ci u16 sw_rawawb_exc_wp_region2_xu1; // EXC_WP_REGION2_XU 14443d0407baSopenharmony_ci u16 sw_rawawb_exc_wp_region2_xu0; // EXC_WP_REGION2_XU 14453d0407baSopenharmony_ci u16 sw_rawawb_exc_wp_region2_yv1; // EXC_WP_REGION2_YV 14463d0407baSopenharmony_ci u16 sw_rawawb_exc_wp_region2_yv0; // EXC_WP_REGION2_YV 14473d0407baSopenharmony_ci u16 sw_rawawb_exc_wp_region3_xu1; // EXC_WP_REGION3_XU 14483d0407baSopenharmony_ci u16 sw_rawawb_exc_wp_region3_xu0; // EXC_WP_REGION3_XU 14493d0407baSopenharmony_ci u16 sw_rawawb_exc_wp_region3_yv1; // EXC_WP_REGION3_YV 14503d0407baSopenharmony_ci u16 sw_rawawb_exc_wp_region3_yv0; // EXC_WP_REGION3_YV 14513d0407baSopenharmony_ci u16 sw_rawawb_exc_wp_region4_xu1; // EXC_WP_REGION4_XU 14523d0407baSopenharmony_ci u16 sw_rawawb_exc_wp_region4_xu0; // EXC_WP_REGION4_XU 14533d0407baSopenharmony_ci u16 sw_rawawb_exc_wp_region4_yv1; // EXC_WP_REGION4_YV 14543d0407baSopenharmony_ci u16 sw_rawawb_exc_wp_region4_yv0; // EXC_WP_REGION4_YV 14553d0407baSopenharmony_ci u16 sw_rawawb_exc_wp_region5_xu1; // EXC_WP_REGION5_XU 14563d0407baSopenharmony_ci u16 sw_rawawb_exc_wp_region5_xu0; // EXC_WP_REGION5_XU 14573d0407baSopenharmony_ci u16 sw_rawawb_exc_wp_region5_yv1; // EXC_WP_REGION5_YV 14583d0407baSopenharmony_ci u16 sw_rawawb_exc_wp_region5_yv0; // EXC_WP_REGION5_YV 14593d0407baSopenharmony_ci u16 sw_rawawb_exc_wp_region6_xu1; // EXC_WP_REGION6_XU 14603d0407baSopenharmony_ci u16 sw_rawawb_exc_wp_region6_xu0; // EXC_WP_REGION6_XU 14613d0407baSopenharmony_ci u16 sw_rawawb_exc_wp_region6_yv1; // EXC_WP_REGION6_YV 14623d0407baSopenharmony_ci u16 sw_rawawb_exc_wp_region6_yv0; // EXC_WP_REGION6_YV 14633d0407baSopenharmony_ci} __attribute__((packed)); 14643d0407baSopenharmony_ci 14653d0407baSopenharmony_cistruct isp2x_rawaebig_meas_cfg { 14663d0407baSopenharmony_ci u8 rawae_sel; 14673d0407baSopenharmony_ci u8 wnd_num; 14683d0407baSopenharmony_ci u8 subwin_en[ISP2X_RAWAEBIG_SUBWIN_NUM]; 14693d0407baSopenharmony_ci struct isp2x_window win; 14703d0407baSopenharmony_ci struct isp2x_window subwin[ISP2X_RAWAEBIG_SUBWIN_NUM]; 14713d0407baSopenharmony_ci} __attribute__((packed)); 14723d0407baSopenharmony_ci 14733d0407baSopenharmony_cistruct isp2x_rawaelite_meas_cfg { 14743d0407baSopenharmony_ci u8 rawae_sel; 14753d0407baSopenharmony_ci u8 wnd_num; 14763d0407baSopenharmony_ci struct isp2x_window win; 14773d0407baSopenharmony_ci} __attribute__((packed)); 14783d0407baSopenharmony_ci 14793d0407baSopenharmony_cistruct isp2x_yuvae_meas_cfg { 14803d0407baSopenharmony_ci u8 ysel; 14813d0407baSopenharmony_ci u8 wnd_num; 14823d0407baSopenharmony_ci u8 subwin_en[ISP2X_YUVAE_SUBWIN_NUM]; 14833d0407baSopenharmony_ci struct isp2x_window win; 14843d0407baSopenharmony_ci struct isp2x_window subwin[ISP2X_YUVAE_SUBWIN_NUM]; 14853d0407baSopenharmony_ci} __attribute__((packed)); 14863d0407baSopenharmony_ci 14873d0407baSopenharmony_cistruct isp2x_rawaf_meas_cfg { 14883d0407baSopenharmony_ci u8 rawaf_sel; 14893d0407baSopenharmony_ci u8 num_afm_win; 14903d0407baSopenharmony_ci u8 gaus_en; 14913d0407baSopenharmony_ci u8 gamma_en; 14923d0407baSopenharmony_ci struct isp2x_window win[ISP2X_RAWAF_WIN_NUM]; 14933d0407baSopenharmony_ci u8 line_en[ISP2X_RAWAF_LINE_NUM]; 14943d0407baSopenharmony_ci u8 line_num[ISP2X_RAWAF_LINE_NUM]; 14953d0407baSopenharmony_ci u8 gaus_coe_h2; 14963d0407baSopenharmony_ci u8 gaus_coe_h1; 14973d0407baSopenharmony_ci u8 gaus_coe_h0; 14983d0407baSopenharmony_ci u16 afm_thres; 14993d0407baSopenharmony_ci u8 lum_var_shift[ISP2X_RAWAF_WIN_NUM]; 15003d0407baSopenharmony_ci u8 afm_var_shift[ISP2X_RAWAF_WIN_NUM]; 15013d0407baSopenharmony_ci u16 gamma_y[ISP2X_RAWAF_GAMMA_NUM]; 15023d0407baSopenharmony_ci} __attribute__((packed)); 15033d0407baSopenharmony_ci 15043d0407baSopenharmony_cistruct isp2x_siaf_win_cfg { 15053d0407baSopenharmony_ci u8 sum_shift; 15063d0407baSopenharmony_ci u8 lum_shift; 15073d0407baSopenharmony_ci struct isp2x_window win; 15083d0407baSopenharmony_ci} __attribute__((packed)); 15093d0407baSopenharmony_ci 15103d0407baSopenharmony_cistruct isp2x_siaf_cfg { 15113d0407baSopenharmony_ci u8 num_afm_win; 15123d0407baSopenharmony_ci u32 thres; 15133d0407baSopenharmony_ci struct isp2x_siaf_win_cfg afm_win[ISP2X_AFM_MAX_WINDOWS]; 15143d0407baSopenharmony_ci} __attribute__((packed)); 15153d0407baSopenharmony_ci 15163d0407baSopenharmony_cistruct isp2x_rawhistbig_cfg { 15173d0407baSopenharmony_ci u8 wnd_num; 15183d0407baSopenharmony_ci u8 data_sel; 15193d0407baSopenharmony_ci u8 waterline; 15203d0407baSopenharmony_ci u8 mode; 15213d0407baSopenharmony_ci u8 stepsize; 15223d0407baSopenharmony_ci u8 off; 15233d0407baSopenharmony_ci u8 bcc; 15243d0407baSopenharmony_ci u8 gcc; 15253d0407baSopenharmony_ci u8 rcc; 15263d0407baSopenharmony_ci struct isp2x_window win; 15273d0407baSopenharmony_ci u8 weight[ISP2X_RAWHISTBIG_SUBWIN_NUM]; 15283d0407baSopenharmony_ci} __attribute__((packed)); 15293d0407baSopenharmony_ci 15303d0407baSopenharmony_cistruct isp2x_rawhistlite_cfg { 15313d0407baSopenharmony_ci u8 data_sel; 15323d0407baSopenharmony_ci u8 waterline; 15333d0407baSopenharmony_ci u8 mode; 15343d0407baSopenharmony_ci u8 stepsize; 15353d0407baSopenharmony_ci u8 off; 15363d0407baSopenharmony_ci u8 bcc; 15373d0407baSopenharmony_ci u8 gcc; 15383d0407baSopenharmony_ci u8 rcc; 15393d0407baSopenharmony_ci struct isp2x_window win; 15403d0407baSopenharmony_ci u8 weight[ISP2X_RAWHISTLITE_SUBWIN_NUM]; 15413d0407baSopenharmony_ci} __attribute__((packed)); 15423d0407baSopenharmony_ci 15433d0407baSopenharmony_cistruct isp2x_sihst_win_cfg { 15443d0407baSopenharmony_ci u8 data_sel; 15453d0407baSopenharmony_ci u8 waterline; 15463d0407baSopenharmony_ci u8 auto_stop; 15473d0407baSopenharmony_ci u8 mode; 15483d0407baSopenharmony_ci u8 stepsize; 15493d0407baSopenharmony_ci struct isp2x_window win; 15503d0407baSopenharmony_ci} __attribute__((packed)); 15513d0407baSopenharmony_ci 15523d0407baSopenharmony_cistruct isp2x_sihst_cfg { 15533d0407baSopenharmony_ci u8 wnd_num; 15543d0407baSopenharmony_ci struct isp2x_sihst_win_cfg win_cfg[ISP2X_SIHIST_WIN_NUM]; 15553d0407baSopenharmony_ci u8 hist_weight[ISP2X_HIST_WEIGHT_NUM]; 15563d0407baSopenharmony_ci} __attribute__((packed)); 15573d0407baSopenharmony_ci 15583d0407baSopenharmony_cistruct isp2x_isp_other_cfg { 15593d0407baSopenharmony_ci struct isp2x_bls_cfg bls_cfg; 15603d0407baSopenharmony_ci struct isp2x_dpcc_cfg dpcc_cfg; 15613d0407baSopenharmony_ci struct isp2x_hdrmge_cfg hdrmge_cfg; 15623d0407baSopenharmony_ci struct isp2x_rawnr_cfg rawnr_cfg; 15633d0407baSopenharmony_ci struct isp2x_lsc_cfg lsc_cfg; 15643d0407baSopenharmony_ci struct isp2x_awb_gain_cfg awb_gain_cfg; 15653d0407baSopenharmony_ci struct isp2x_gic_cfg gic_cfg; 15663d0407baSopenharmony_ci struct isp2x_debayer_cfg debayer_cfg; 15673d0407baSopenharmony_ci struct isp2x_ccm_cfg ccm_cfg; 15683d0407baSopenharmony_ci struct isp2x_gammaout_cfg gammaout_cfg; 15693d0407baSopenharmony_ci struct isp2x_wdr_cfg wdr_cfg; 15703d0407baSopenharmony_ci struct isp2x_cproc_cfg cproc_cfg; 15713d0407baSopenharmony_ci struct isp2x_ie_cfg ie_cfg; 15723d0407baSopenharmony_ci struct isp2x_rkiesharp_cfg rkiesharp_cfg; 15733d0407baSopenharmony_ci struct isp2x_superimp_cfg superimp_cfg; 15743d0407baSopenharmony_ci struct isp2x_sdg_cfg sdg_cfg; 15753d0407baSopenharmony_ci struct isp2x_bdm_config bdm_cfg; 15763d0407baSopenharmony_ci struct isp2x_hdrtmo_cfg hdrtmo_cfg; 15773d0407baSopenharmony_ci struct isp2x_dhaz_cfg dhaz_cfg; 15783d0407baSopenharmony_ci struct isp2x_gain_cfg gain_cfg; 15793d0407baSopenharmony_ci struct isp2x_3dlut_cfg isp3dlut_cfg; 15803d0407baSopenharmony_ci struct isp2x_ldch_cfg ldch_cfg; 15813d0407baSopenharmony_ci} __attribute__((packed)); 15823d0407baSopenharmony_ci 15833d0407baSopenharmony_cistruct isp2x_isp_meas_cfg { 15843d0407baSopenharmony_ci struct isp2x_siawb_meas_cfg siawb; 15853d0407baSopenharmony_ci struct isp2x_rawawb_meas_cfg rawawb; 15863d0407baSopenharmony_ci struct isp2x_rawaelite_meas_cfg rawae0; 15873d0407baSopenharmony_ci struct isp2x_rawaebig_meas_cfg rawae1; 15883d0407baSopenharmony_ci struct isp2x_rawaebig_meas_cfg rawae2; 15893d0407baSopenharmony_ci struct isp2x_rawaebig_meas_cfg rawae3; 15903d0407baSopenharmony_ci struct isp2x_yuvae_meas_cfg yuvae; 15913d0407baSopenharmony_ci struct isp2x_rawaf_meas_cfg rawaf; 15923d0407baSopenharmony_ci struct isp2x_siaf_cfg siaf; 15933d0407baSopenharmony_ci struct isp2x_rawhistlite_cfg rawhist0; 15943d0407baSopenharmony_ci struct isp2x_rawhistbig_cfg rawhist1; 15953d0407baSopenharmony_ci struct isp2x_rawhistbig_cfg rawhist2; 15963d0407baSopenharmony_ci struct isp2x_rawhistbig_cfg rawhist3; 15973d0407baSopenharmony_ci struct isp2x_sihst_cfg sihst; 15983d0407baSopenharmony_ci} __attribute__((packed)); 15993d0407baSopenharmony_ci 16003d0407baSopenharmony_cistruct sensor_exposure_s { 16013d0407baSopenharmony_ci u32 fine_integration_time; 16023d0407baSopenharmony_ci u32 coarse_integration_time; 16033d0407baSopenharmony_ci u32 analog_gain_code_global; 16043d0407baSopenharmony_ci u32 digital_gain_global; 16053d0407baSopenharmony_ci u32 isp_digital_gain; 16063d0407baSopenharmony_ci} __attribute__((packed)); 16073d0407baSopenharmony_ci 16083d0407baSopenharmony_cistruct sensor_exposure_cfg { 16093d0407baSopenharmony_ci struct sensor_exposure_s linear_exp; 16103d0407baSopenharmony_ci struct sensor_exposure_s hdr_exp[3]; 16113d0407baSopenharmony_ci} __attribute__((packed)); 16123d0407baSopenharmony_ci 16133d0407baSopenharmony_cistruct isp2x_isp_params_cfg { 16143d0407baSopenharmony_ci u64 module_en_update; 16153d0407baSopenharmony_ci u64 module_ens; 16163d0407baSopenharmony_ci u64 module_cfg_update; 16173d0407baSopenharmony_ci 16183d0407baSopenharmony_ci u32 frame_id; 16193d0407baSopenharmony_ci struct isp2x_isp_meas_cfg meas; 16203d0407baSopenharmony_ci struct isp2x_isp_other_cfg others; 16213d0407baSopenharmony_ci struct sensor_exposure_cfg exposure; 16223d0407baSopenharmony_ci} __attribute__((packed)); 16233d0407baSopenharmony_ci 16243d0407baSopenharmony_cistruct isp2x_siawb_meas { 16253d0407baSopenharmony_ci u32 cnt; 16263d0407baSopenharmony_ci u8 mean_y_or_g; 16273d0407baSopenharmony_ci u8 mean_cb_or_b; 16283d0407baSopenharmony_ci u8 mean_cr_or_r; 16293d0407baSopenharmony_ci} __attribute__((packed)); 16303d0407baSopenharmony_ci 16313d0407baSopenharmony_cistruct isp2x_siawb_stat { 16323d0407baSopenharmony_ci struct isp2x_siawb_meas awb_mean[ISP2X_AWB_MAX_GRID]; 16333d0407baSopenharmony_ci} __attribute__((packed)); 16343d0407baSopenharmony_ci 16353d0407baSopenharmony_cistruct isp2x_rawawb_ramdata { 16363d0407baSopenharmony_ci u32 wp; 16373d0407baSopenharmony_ci u32 r; 16383d0407baSopenharmony_ci u32 g; 16393d0407baSopenharmony_ci u32 b; 16403d0407baSopenharmony_ci}; 16413d0407baSopenharmony_ci 16423d0407baSopenharmony_cistruct isp2x_rawawb_meas_stat { 16433d0407baSopenharmony_ci u32 ro_rawawb_sum_r_nor[ISP2X_RAWAWB_SUM_NUM]; // SUM_R_NOR_0 16443d0407baSopenharmony_ci u32 ro_rawawb_sum_g_nor[ISP2X_RAWAWB_SUM_NUM]; // SUM_G_NOR_0 16453d0407baSopenharmony_ci u32 ro_rawawb_sum_b_nor[ISP2X_RAWAWB_SUM_NUM]; // SUM_B_NOR_0 16463d0407baSopenharmony_ci u32 ro_rawawb_wp_num_nor[ISP2X_RAWAWB_SUM_NUM]; // WP_NUM_NOR_0 16473d0407baSopenharmony_ci u32 ro_rawawb_sum_r_big[ISP2X_RAWAWB_SUM_NUM]; // SUM_R_BIG_0 16483d0407baSopenharmony_ci u32 ro_rawawb_sum_g_big[ISP2X_RAWAWB_SUM_NUM]; // SUM_G_BIG_0 16493d0407baSopenharmony_ci u32 ro_rawawb_sum_b_big[ISP2X_RAWAWB_SUM_NUM]; // SUM_B_BIG_0 16503d0407baSopenharmony_ci u32 ro_rawawb_wp_num_big[ISP2X_RAWAWB_SUM_NUM]; // WP_NUM_BIG_0 16513d0407baSopenharmony_ci u32 ro_rawawb_sum_r_sma[ISP2X_RAWAWB_SUM_NUM]; // SUM_R_SMA_0 16523d0407baSopenharmony_ci u32 ro_rawawb_sum_g_sma[ISP2X_RAWAWB_SUM_NUM]; // SUM_G_SMA_0 16533d0407baSopenharmony_ci u32 ro_rawawb_sum_b_sma[ISP2X_RAWAWB_SUM_NUM]; // SUM_B_SMA_0 16543d0407baSopenharmony_ci u32 ro_rawawb_wp_num_sma[ISP2X_RAWAWB_SUM_NUM]; 16553d0407baSopenharmony_ci u32 ro_sum_r_nor_multiwindow[ISP2X_RAWAWB_MULWD_NUM]; // SUM_R_NOR_MULTIWINDOW_0 16563d0407baSopenharmony_ci u32 ro_sum_g_nor_multiwindow[ISP2X_RAWAWB_MULWD_NUM]; // SUM_G_NOR_MULTIWINDOW_0 16573d0407baSopenharmony_ci u32 ro_sum_b_nor_multiwindow[ISP2X_RAWAWB_MULWD_NUM]; // SUM_B_NOR_MULTIWINDOW_0 16583d0407baSopenharmony_ci u32 ro_wp_nm_nor_multiwindow[ISP2X_RAWAWB_MULWD_NUM]; // WP_NM_NOR_MULTIWINDOW_0 16593d0407baSopenharmony_ci u32 ro_sum_r_big_multiwindow[ISP2X_RAWAWB_MULWD_NUM]; // SUM_R_BIG_MULTIWINDOW_0 16603d0407baSopenharmony_ci u32 ro_sum_g_big_multiwindow[ISP2X_RAWAWB_MULWD_NUM]; // SUM_G_BIG_MULTIWINDOW_0 16613d0407baSopenharmony_ci u32 ro_sum_b_big_multiwindow[ISP2X_RAWAWB_MULWD_NUM]; // SUM_B_BIG_MULTIWINDOW_0 16623d0407baSopenharmony_ci u32 ro_wp_nm_big_multiwindow[ISP2X_RAWAWB_MULWD_NUM]; // WP_NM_BIG_MULTIWINDOW_0 16633d0407baSopenharmony_ci u32 ro_sum_r_sma_multiwindow[ISP2X_RAWAWB_MULWD_NUM]; // SUM_R_SMA_MULTIWINDOW_0 16643d0407baSopenharmony_ci u32 ro_sum_g_sma_multiwindow[ISP2X_RAWAWB_MULWD_NUM]; // SUM_G_SMA_MULTIWINDOW_0 16653d0407baSopenharmony_ci u32 ro_sum_b_sma_multiwindow[ISP2X_RAWAWB_MULWD_NUM]; // SUM_B_SMA_MULTIWINDOW_0 16663d0407baSopenharmony_ci u32 ro_wp_nm_sma_multiwindow[ISP2X_RAWAWB_MULWD_NUM]; // WP_NM_SMA_MULTIWINDOW_0 16673d0407baSopenharmony_ci u32 ro_sum_r_exc[ISP2X_RAWAWB_SUM_NUM]; 16683d0407baSopenharmony_ci u32 ro_sum_g_exc[ISP2X_RAWAWB_SUM_NUM]; 16693d0407baSopenharmony_ci u32 ro_sum_b_exc[ISP2X_RAWAWB_SUM_NUM]; 16703d0407baSopenharmony_ci u32 ro_wp_nm_exc[ISP2X_RAWAWB_SUM_NUM]; 16713d0407baSopenharmony_ci struct isp2x_rawawb_ramdata ramdata[ISP2X_RAWAWB_RAMDATA_NUM]; 16723d0407baSopenharmony_ci} __attribute__((packed)); 16733d0407baSopenharmony_ci 16743d0407baSopenharmony_cistruct isp2x_rawae_meas_data { 16753d0407baSopenharmony_ci u16 channelr_xy; 16763d0407baSopenharmony_ci u16 channelb_xy; 16773d0407baSopenharmony_ci u16 channelg_xy; 16783d0407baSopenharmony_ci}; 16793d0407baSopenharmony_ci 16803d0407baSopenharmony_cistruct isp2x_rawaebig_stat { 16813d0407baSopenharmony_ci u32 sumr[ISP2X_RAWAEBIG_SUBWIN_NUM]; 16823d0407baSopenharmony_ci u32 sumg[ISP2X_RAWAEBIG_SUBWIN_NUM]; 16833d0407baSopenharmony_ci u32 sumb[ISP2X_RAWAEBIG_SUBWIN_NUM]; 16843d0407baSopenharmony_ci struct isp2x_rawae_meas_data data[ISP2X_RAWAEBIG_MEAN_NUM]; 16853d0407baSopenharmony_ci} __attribute__((packed)); 16863d0407baSopenharmony_ci 16873d0407baSopenharmony_cistruct isp2x_rawaelite_stat { 16883d0407baSopenharmony_ci struct isp2x_rawae_meas_data data[ISP2X_RAWAELITE_MEAN_NUM]; 16893d0407baSopenharmony_ci} __attribute__((packed)); 16903d0407baSopenharmony_ci 16913d0407baSopenharmony_cistruct isp2x_yuvae_stat { 16923d0407baSopenharmony_ci u32 ro_yuvae_sumy[ISP2X_YUVAE_SUBWIN_NUM]; 16933d0407baSopenharmony_ci u8 mean[ISP2X_YUVAE_MEAN_NUM]; 16943d0407baSopenharmony_ci} __attribute__((packed)); 16953d0407baSopenharmony_ci 16963d0407baSopenharmony_cistruct isp2x_rawaf_stat { 16973d0407baSopenharmony_ci u32 int_state; 16983d0407baSopenharmony_ci u32 afm_sum[ISP2X_RAWAF_WIN_NUM]; 16993d0407baSopenharmony_ci u32 afm_lum[ISP2X_RAWAF_WIN_NUM]; 17003d0407baSopenharmony_ci u32 ramdata[ISP2X_RAWAF_SUMDATA_NUM]; 17013d0407baSopenharmony_ci} __attribute__((packed)); 17023d0407baSopenharmony_ci 17033d0407baSopenharmony_cistruct isp2x_siaf_meas_val { 17043d0407baSopenharmony_ci u32 sum; 17053d0407baSopenharmony_ci u32 lum; 17063d0407baSopenharmony_ci} __attribute__((packed)); 17073d0407baSopenharmony_ci 17083d0407baSopenharmony_cistruct isp2x_siaf_stat { 17093d0407baSopenharmony_ci struct isp2x_siaf_meas_val win[ISP2X_AFM_MAX_WINDOWS]; 17103d0407baSopenharmony_ci} __attribute__((packed)); 17113d0407baSopenharmony_ci 17123d0407baSopenharmony_cistruct isp2x_rawhistbig_stat { 17133d0407baSopenharmony_ci u32 hist_bin[ISP2X_HIST_BIN_N_MAX]; 17143d0407baSopenharmony_ci} __attribute__((packed)); 17153d0407baSopenharmony_ci 17163d0407baSopenharmony_cistruct isp2x_rawhistlite_stat { 17173d0407baSopenharmony_ci u32 hist_bin[ISP2X_HIST_BIN_N_MAX]; 17183d0407baSopenharmony_ci} __attribute__((packed)); 17193d0407baSopenharmony_ci 17203d0407baSopenharmony_cistruct isp2x_sihst_win_stat { 17213d0407baSopenharmony_ci u32 hist_bins[ISP2X_SIHIST_BIN_N_MAX]; 17223d0407baSopenharmony_ci} __attribute__((packed)); 17233d0407baSopenharmony_ci 17243d0407baSopenharmony_cistruct isp2x_sihst_stat { 17253d0407baSopenharmony_ci struct isp2x_sihst_win_stat win_stat[ISP2X_SIHIST_WIN_NUM]; 17263d0407baSopenharmony_ci} __attribute__((packed)); 17273d0407baSopenharmony_ci 17283d0407baSopenharmony_cistruct isp2x_stat { 17293d0407baSopenharmony_ci struct isp2x_siawb_stat siawb; 17303d0407baSopenharmony_ci struct isp2x_rawawb_meas_stat rawawb; 17313d0407baSopenharmony_ci struct isp2x_rawaelite_stat rawae0; 17323d0407baSopenharmony_ci struct isp2x_rawaebig_stat rawae1; 17333d0407baSopenharmony_ci struct isp2x_rawaebig_stat rawae2; 17343d0407baSopenharmony_ci struct isp2x_rawaebig_stat rawae3; 17353d0407baSopenharmony_ci struct isp2x_yuvae_stat yuvae; 17363d0407baSopenharmony_ci struct isp2x_rawaf_stat rawaf; 17373d0407baSopenharmony_ci struct isp2x_siaf_stat siaf; 17383d0407baSopenharmony_ci struct isp2x_rawhistlite_stat rawhist0; 17393d0407baSopenharmony_ci struct isp2x_rawhistbig_stat rawhist1; 17403d0407baSopenharmony_ci struct isp2x_rawhistbig_stat rawhist2; 17413d0407baSopenharmony_ci struct isp2x_rawhistbig_stat rawhist3; 17423d0407baSopenharmony_ci struct isp2x_sihst_stat sihst; 17433d0407baSopenharmony_ci 17443d0407baSopenharmony_ci struct isp2x_bls_stat bls; 17453d0407baSopenharmony_ci struct isp2x_hdrtmo_stat hdrtmo; 17463d0407baSopenharmony_ci struct isp2x_dhaz_stat dhaz; 17473d0407baSopenharmony_ci} __attribute__((packed)); 17483d0407baSopenharmony_ci 17493d0407baSopenharmony_ci/** 17503d0407baSopenharmony_ci * struct rkisp_isp2x_stat_buffer - Rockchip ISP2 Statistics Meta Data 17513d0407baSopenharmony_ci * 17523d0407baSopenharmony_ci * @meas_type: measurement types (CIFISP_STAT_ definitions) 17533d0407baSopenharmony_ci * @frame_id: frame ID for sync 17543d0407baSopenharmony_ci * @params: statistics data 17553d0407baSopenharmony_ci */ 17563d0407baSopenharmony_cistruct rkisp_isp2x_stat_buffer { 17573d0407baSopenharmony_ci unsigned int meas_type; 17583d0407baSopenharmony_ci unsigned int frame_id; 17593d0407baSopenharmony_ci struct isp2x_stat params; 17603d0407baSopenharmony_ci} __attribute__((packed)); 17613d0407baSopenharmony_ci 17623d0407baSopenharmony_ci/** 17633d0407baSopenharmony_ci * struct rkisp_mipi_luma - statistics mipi y statistic 17643d0407baSopenharmony_ci * 17653d0407baSopenharmony_ci * @exp_mean: Mean luminance value of block xx 17663d0407baSopenharmony_ci * 17673d0407baSopenharmony_ci * Image is divided into 5x5 blocks. 17683d0407baSopenharmony_ci */ 17693d0407baSopenharmony_cistruct rkisp_mipi_luma { 17703d0407baSopenharmony_ci unsigned int exp_mean[ISP2X_MIPI_LUMA_MEAN_MAX]; 17713d0407baSopenharmony_ci} __attribute__((packed)); 17723d0407baSopenharmony_ci 17733d0407baSopenharmony_ci/** 17743d0407baSopenharmony_ci * struct rkisp_isp2x_luma_buffer - Rockchip ISP1 Statistics Mipi Luma 17753d0407baSopenharmony_ci * 17763d0407baSopenharmony_ci * @meas_type: measurement types (CIFISP_STAT_ definitions) 17773d0407baSopenharmony_ci * @frame_id: frame ID for sync 17783d0407baSopenharmony_ci * @params: statistics data 17793d0407baSopenharmony_ci */ 17803d0407baSopenharmony_cistruct rkisp_isp2x_luma_buffer { 17813d0407baSopenharmony_ci unsigned int meas_type; 17823d0407baSopenharmony_ci unsigned int frame_id; 17833d0407baSopenharmony_ci struct rkisp_mipi_luma luma[ISP2X_MIPI_RAW_MAX]; 17843d0407baSopenharmony_ci} __attribute__((packed)); 17853d0407baSopenharmony_ci 17863d0407baSopenharmony_ci/** 17873d0407baSopenharmony_ci * struct rkisp_thunderboot_video_buf 17883d0407baSopenharmony_ci */ 17893d0407baSopenharmony_cistruct rkisp_thunderboot_video_buf { 17903d0407baSopenharmony_ci u32 index; 17913d0407baSopenharmony_ci u32 frame_id; 17923d0407baSopenharmony_ci u32 timestamp; 17933d0407baSopenharmony_ci u32 time_reg; 17943d0407baSopenharmony_ci u32 gain_reg; 17953d0407baSopenharmony_ci u32 bufaddr; 17963d0407baSopenharmony_ci u32 bufsize; 17973d0407baSopenharmony_ci} __attribute__((packed)); 17983d0407baSopenharmony_ci 17993d0407baSopenharmony_ci/** 18003d0407baSopenharmony_ci * struct rkisp_thunderboot_resmem_head 18013d0407baSopenharmony_ci */ 18023d0407baSopenharmony_cistruct rkisp_thunderboot_resmem_head { 18033d0407baSopenharmony_ci u16 enable; 18043d0407baSopenharmony_ci u16 complete; 18053d0407baSopenharmony_ci u16 frm_total; 18063d0407baSopenharmony_ci u16 hdr_mode; 18073d0407baSopenharmony_ci u16 width; 18083d0407baSopenharmony_ci u16 height; 18093d0407baSopenharmony_ci u32 bus_fmt; 18103d0407baSopenharmony_ci 18113d0407baSopenharmony_ci struct rkisp_thunderboot_video_buf l_buf[ISP2X_THUNDERBOOT_VIDEO_BUF_NUM]; 18123d0407baSopenharmony_ci struct rkisp_thunderboot_video_buf m_buf[ISP2X_THUNDERBOOT_VIDEO_BUF_NUM]; 18133d0407baSopenharmony_ci struct rkisp_thunderboot_video_buf s_buf[ISP2X_THUNDERBOOT_VIDEO_BUF_NUM]; 18143d0407baSopenharmony_ci} __attribute__((packed)); 18153d0407baSopenharmony_ci 18163d0407baSopenharmony_ci/** 18173d0407baSopenharmony_ci * struct rkisp_thunderboot_resmem - shared buffer for thunderboot with risc-v side 18183d0407baSopenharmony_ci */ 18193d0407baSopenharmony_cistruct rkisp_thunderboot_resmem { 18203d0407baSopenharmony_ci u32 resmem_padr; 18213d0407baSopenharmony_ci u32 resmem_size; 18223d0407baSopenharmony_ci} __attribute__((packed)); 18233d0407baSopenharmony_ci 18243d0407baSopenharmony_ci/** 18253d0407baSopenharmony_ci * struct rkisp_thunderboot_shmem 18263d0407baSopenharmony_ci */ 18273d0407baSopenharmony_cistruct rkisp_thunderboot_shmem { 18283d0407baSopenharmony_ci u32 shm_start; 18293d0407baSopenharmony_ci u32 shm_size; 18303d0407baSopenharmony_ci s32 shm_fd; 18313d0407baSopenharmony_ci} __attribute__((packed)); 18323d0407baSopenharmony_ci 18333d0407baSopenharmony_ci#endif /* _UAPI_RKISP2_CONFIG_H */ 1834