brintos

brintos / linux-shallow public Read only

0
0
Text · 5.8 KiB · 1c9b1d1 Raw
222 lines · c
1/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */2/*3 * CCS static data binary format definitions4 *5 * Copyright 2019--2020 Intel Corporation6 */7 8#ifndef __CCS_DATA_DEFS_H__9#define __CCS_DATA_DEFS_H__10 11#include "ccs-data.h"12 13#define CCS_STATIC_DATA_VERSION	014 15enum __ccs_data_length_specifier_id {16	CCS_DATA_LENGTH_SPECIFIER_1 = 0,17	CCS_DATA_LENGTH_SPECIFIER_2 = 1,18	CCS_DATA_LENGTH_SPECIFIER_3 = 219};20 21#define CCS_DATA_LENGTH_SPECIFIER_SIZE_SHIFT	622 23struct __ccs_data_length_specifier {24	u8 length;25} __packed;26 27struct __ccs_data_length_specifier2 {28	u8 length[2];29} __packed;30 31struct __ccs_data_length_specifier3 {32	u8 length[3];33} __packed;34 35struct __ccs_data_block {36	u8 id;37	struct __ccs_data_length_specifier length;38} __packed;39 40#define CCS_DATA_BLOCK_HEADER_ID_VERSION_SHIFT	541 42struct __ccs_data_block3 {43	u8 id;44	struct __ccs_data_length_specifier2 length;45} __packed;46 47struct __ccs_data_block4 {48	u8 id;49	struct __ccs_data_length_specifier3 length;50} __packed;51 52enum __ccs_data_block_id {53	CCS_DATA_BLOCK_ID_DUMMY	= 1,54	CCS_DATA_BLOCK_ID_DATA_VERSION = 2,55	CCS_DATA_BLOCK_ID_SENSOR_READ_ONLY_REGS = 3,56	CCS_DATA_BLOCK_ID_MODULE_READ_ONLY_REGS = 4,57	CCS_DATA_BLOCK_ID_SENSOR_MANUFACTURER_REGS = 5,58	CCS_DATA_BLOCK_ID_MODULE_MANUFACTURER_REGS = 6,59	CCS_DATA_BLOCK_ID_SENSOR_RULE_BASED_BLOCK = 32,60	CCS_DATA_BLOCK_ID_MODULE_RULE_BASED_BLOCK = 33,61	CCS_DATA_BLOCK_ID_SENSOR_PDAF_PIXEL_LOCATION = 36,62	CCS_DATA_BLOCK_ID_MODULE_PDAF_PIXEL_LOCATION = 37,63	CCS_DATA_BLOCK_ID_LICENSE = 40,64	CCS_DATA_BLOCK_ID_END = 127,65};66 67struct __ccs_data_block_version {68	u8 static_data_version_major[2];69	u8 static_data_version_minor[2];70	u8 year[2];71	u8 month;72	u8 day;73} __packed;74 75struct __ccs_data_block_regs {76	u8 reg_len;77} __packed;78 79#define CCS_DATA_BLOCK_REGS_ADDR_MASK		0x0780#define CCS_DATA_BLOCK_REGS_LEN_SHIFT		381#define CCS_DATA_BLOCK_REGS_LEN_MASK		0x3882#define CCS_DATA_BLOCK_REGS_SEL_SHIFT		683 84enum ccs_data_block_regs_sel {85	CCS_DATA_BLOCK_REGS_SEL_REGS = 0,86	CCS_DATA_BLOCK_REGS_SEL_REGS2 = 1,87	CCS_DATA_BLOCK_REGS_SEL_REGS3 = 2,88};89 90struct __ccs_data_block_regs2 {91	u8 reg_len;92	u8 addr;93} __packed;94 95#define CCS_DATA_BLOCK_REGS_2_ADDR_MASK		0x0196#define CCS_DATA_BLOCK_REGS_2_LEN_SHIFT		197#define CCS_DATA_BLOCK_REGS_2_LEN_MASK		0x3e98 99struct __ccs_data_block_regs3 {100	u8 reg_len;101	u8 addr[2];102} __packed;103 104#define CCS_DATA_BLOCK_REGS_3_LEN_MASK		0x3f105 106enum __ccs_data_ffd_pixelcode {107	CCS_DATA_BLOCK_FFD_PIXELCODE_EMBEDDED = 1,108	CCS_DATA_BLOCK_FFD_PIXELCODE_DUMMY = 2,109	CCS_DATA_BLOCK_FFD_PIXELCODE_BLACK = 3,110	CCS_DATA_BLOCK_FFD_PIXELCODE_DARK = 4,111	CCS_DATA_BLOCK_FFD_PIXELCODE_VISIBLE = 5,112	CCS_DATA_BLOCK_FFD_PIXELCODE_MS_0 = 8,113	CCS_DATA_BLOCK_FFD_PIXELCODE_MS_1 = 9,114	CCS_DATA_BLOCK_FFD_PIXELCODE_MS_2 = 10,115	CCS_DATA_BLOCK_FFD_PIXELCODE_MS_3 = 11,116	CCS_DATA_BLOCK_FFD_PIXELCODE_MS_4 = 12,117	CCS_DATA_BLOCK_FFD_PIXELCODE_MS_5 = 13,118	CCS_DATA_BLOCK_FFD_PIXELCODE_MS_6 = 14,119	CCS_DATA_BLOCK_FFD_PIXELCODE_TOP_OB = 16,120	CCS_DATA_BLOCK_FFD_PIXELCODE_BOTTOM_OB = 17,121	CCS_DATA_BLOCK_FFD_PIXELCODE_LEFT_OB = 18,122	CCS_DATA_BLOCK_FFD_PIXELCODE_RIGHT_OB = 19,123	CCS_DATA_BLOCK_FFD_PIXELCODE_TOP_LEFT_OB = 20,124	CCS_DATA_BLOCK_FFD_PIXELCODE_TOP_RIGHT_OB = 21,125	CCS_DATA_BLOCK_FFD_PIXELCODE_BOTTOM_LEFT_OB = 22,126	CCS_DATA_BLOCK_FFD_PIXELCODE_BOTTOM_RIGHT_OB = 23,127	CCS_DATA_BLOCK_FFD_PIXELCODE_TOTAL = 24,128	CCS_DATA_BLOCK_FFD_PIXELCODE_TOP_PDAF = 32,129	CCS_DATA_BLOCK_FFD_PIXELCODE_BOTTOM_PDAF = 33,130	CCS_DATA_BLOCK_FFD_PIXELCODE_LEFT_PDAF = 34,131	CCS_DATA_BLOCK_FFD_PIXELCODE_RIGHT_PDAF = 35,132	CCS_DATA_BLOCK_FFD_PIXELCODE_TOP_LEFT_PDAF = 36,133	CCS_DATA_BLOCK_FFD_PIXELCODE_TOP_RIGHT_PDAF = 37,134	CCS_DATA_BLOCK_FFD_PIXELCODE_BOTTOM_LEFT_PDAF = 38,135	CCS_DATA_BLOCK_FFD_PIXELCODE_BOTTOM_RIGHT_PDAF = 39,136	CCS_DATA_BLOCK_FFD_PIXELCODE_SEPARATED_PDAF = 40,137	CCS_DATA_BLOCK_FFD_PIXELCODE_ORIGINAL_ORDER_PDAF = 41,138	CCS_DATA_BLOCK_FFD_PIXELCODE_VENDOR_PDAF = 41,139};140 141struct __ccs_data_block_ffd_entry {142	u8 pixelcode;143	u8 reserved;144	u8 value[2];145} __packed;146 147struct __ccs_data_block_ffd {148	u8 num_column_descs;149	u8 num_row_descs;150} __packed;151 152enum __ccs_data_block_rule_id {153	CCS_DATA_BLOCK_RULE_ID_IF = 1,154	CCS_DATA_BLOCK_RULE_ID_READ_ONLY_REGS = 2,155	CCS_DATA_BLOCK_RULE_ID_FFD = 3,156	CCS_DATA_BLOCK_RULE_ID_MSR = 4,157	CCS_DATA_BLOCK_RULE_ID_PDAF_READOUT = 5,158};159 160struct __ccs_data_block_rule_if {161	u8 addr[2];162	u8 value;163	u8 mask;164} __packed;165 166enum __ccs_data_block_pdaf_readout_order {167	CCS_DATA_BLOCK_PDAF_READOUT_ORDER_ORIGINAL = 1,168	CCS_DATA_BLOCK_PDAF_READOUT_ORDER_SEPARATE_WITHIN_LINE = 2,169	CCS_DATA_BLOCK_PDAF_READOUT_ORDER_SEPARATE_TYPES_SEPARATE_LINES = 3,170};171 172struct __ccs_data_block_pdaf_readout {173	u8 pdaf_readout_info_reserved;174	u8 pdaf_readout_info_order;175} __packed;176 177struct __ccs_data_block_pdaf_pix_loc_block_desc {178	u8 block_type_id;179	u8 repeat_x[2];180} __packed;181 182struct __ccs_data_block_pdaf_pix_loc_block_desc_group {183	u8 num_block_descs[2];184	u8 repeat_y;185} __packed;186 187enum __ccs_data_block_pdaf_pix_loc_pixel_type {188	CCS_DATA_PDAF_PIXEL_TYPE_LEFT_SEPARATED = 0,189	CCS_DATA_PDAF_PIXEL_TYPE_RIGHT_SEPARATED = 1,190	CCS_DATA_PDAF_PIXEL_TYPE_TOP_SEPARATED = 2,191	CCS_DATA_PDAF_PIXEL_TYPE_BOTTOM_SEPARATED = 3,192	CCS_DATA_PDAF_PIXEL_TYPE_LEFT_SIDE_BY_SIDE = 4,193	CCS_DATA_PDAF_PIXEL_TYPE_RIGHT_SIDE_BY_SIDE = 5,194	CCS_DATA_PDAF_PIXEL_TYPE_TOP_SIDE_BY_SIDE = 6,195	CCS_DATA_PDAF_PIXEL_TYPE_BOTTOM_SIDE_BY_SIDE = 7,196	CCS_DATA_PDAF_PIXEL_TYPE_TOP_LEFT = 8,197	CCS_DATA_PDAF_PIXEL_TYPE_TOP_RIGHT = 9,198	CCS_DATA_PDAF_PIXEL_TYPE_BOTTOM_LEFT = 10,199	CCS_DATA_PDAF_PIXEL_TYPE_BOTTOM_RIGHT = 11,200};201 202struct __ccs_data_block_pdaf_pix_loc_pixel_desc {203	u8 pixel_type;204	u8 small_offset_x;205	u8 small_offset_y;206} __packed;207 208struct __ccs_data_block_pdaf_pix_loc {209	u8 main_offset_x[2];210	u8 main_offset_y[2];211	u8 global_pdaf_type;212	u8 block_width;213	u8 block_height;214	u8 num_block_desc_groups[2];215} __packed;216 217struct __ccs_data_block_end {218	u8 crc[4];219} __packed;220 221#endif /* __CCS_DATA_DEFS_H__ */222