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