Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/drivers/media/i2c/ccs/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 5 kB image not shown  

Quelle  ccs-data-defs.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
/*
 * CCS static data binary format definitions
 *
 * Copyright 2019--2020 Intel Corporation
 */


#ifndef __CCS_DATA_DEFS_H__
#define __CCS_DATA_DEFS_H__

#include "ccs-data.h"

#define CCS_STATIC_DATA_VERSION 0

enum __ccs_data_length_specifier_id {
 CCS_DATA_LENGTH_SPECIFIER_1 = 0,
 CCS_DATA_LENGTH_SPECIFIER_2 = 1,
 CCS_DATA_LENGTH_SPECIFIER_3 = 2
};

#define CCS_DATA_LENGTH_SPECIFIER_SIZE_SHIFT 6

struct __ccs_data_length_specifier {
 u8 length;
} __packed;

struct __ccs_data_length_specifier2 {
 u8 length[2];
} __packed;

struct __ccs_data_length_specifier3 {
 u8 length[3];
} __packed;

struct __ccs_data_block {
 u8 id;
 struct __ccs_data_length_specifier length;
} __packed;

#define CCS_DATA_BLOCK_HEADER_ID_VERSION_SHIFT 5

struct __ccs_data_block3 {
 u8 id;
 struct __ccs_data_length_specifier2 length;
} __packed;

struct __ccs_data_block4 {
 u8 id;
 struct __ccs_data_length_specifier3 length;
} __packed;

enum __ccs_data_block_id {
 CCS_DATA_BLOCK_ID_DUMMY = 1,
 CCS_DATA_BLOCK_ID_DATA_VERSION = 2,
 CCS_DATA_BLOCK_ID_SENSOR_READ_ONLY_REGS = 3,
 CCS_DATA_BLOCK_ID_MODULE_READ_ONLY_REGS = 4,
 CCS_DATA_BLOCK_ID_SENSOR_MANUFACTURER_REGS = 5,
 CCS_DATA_BLOCK_ID_MODULE_MANUFACTURER_REGS = 6,
 CCS_DATA_BLOCK_ID_SENSOR_RULE_BASED_BLOCK = 32,
 CCS_DATA_BLOCK_ID_MODULE_RULE_BASED_BLOCK = 33,
 CCS_DATA_BLOCK_ID_SENSOR_PDAF_PIXEL_LOCATION = 36,
 CCS_DATA_BLOCK_ID_MODULE_PDAF_PIXEL_LOCATION = 37,
 CCS_DATA_BLOCK_ID_LICENSE = 40,
 CCS_DATA_BLOCK_ID_END = 127,
};

struct __ccs_data_block_version {
 u8 static_data_version_major[2];
 u8 static_data_version_minor[2];
 u8 year[2];
 u8 month;
 u8 day;
} __packed;

struct __ccs_data_block_regs {
 u8 reg_len;
} __packed;

#define CCS_DATA_BLOCK_REGS_ADDR_MASK  0x07
#define CCS_DATA_BLOCK_REGS_LEN_SHIFT  3
#define CCS_DATA_BLOCK_REGS_LEN_MASK  0x38
#define CCS_DATA_BLOCK_REGS_SEL_SHIFT  6

enum ccs_data_block_regs_sel {
 CCS_DATA_BLOCK_REGS_SEL_REGS = 0,
 CCS_DATA_BLOCK_REGS_SEL_REGS2 = 1,
 CCS_DATA_BLOCK_REGS_SEL_REGS3 = 2,
};

struct __ccs_data_block_regs2 {
 u8 reg_len;
 u8 addr;
} __packed;

#define CCS_DATA_BLOCK_REGS_2_ADDR_MASK  0x01
#define CCS_DATA_BLOCK_REGS_2_LEN_SHIFT  1
#define CCS_DATA_BLOCK_REGS_2_LEN_MASK  0x3e

struct __ccs_data_block_regs3 {
 u8 reg_len;
 u8 addr[2];
} __packed;

#define CCS_DATA_BLOCK_REGS_3_LEN_MASK  0x3f

enum __ccs_data_ffd_pixelcode {
 CCS_DATA_BLOCK_FFD_PIXELCODE_EMBEDDED = 1,
 CCS_DATA_BLOCK_FFD_PIXELCODE_DUMMY = 2,
 CCS_DATA_BLOCK_FFD_PIXELCODE_BLACK = 3,
 CCS_DATA_BLOCK_FFD_PIXELCODE_DARK = 4,
 CCS_DATA_BLOCK_FFD_PIXELCODE_VISIBLE = 5,
 CCS_DATA_BLOCK_FFD_PIXELCODE_MS_0 = 8,
 CCS_DATA_BLOCK_FFD_PIXELCODE_MS_1 = 9,
 CCS_DATA_BLOCK_FFD_PIXELCODE_MS_2 = 10,
 CCS_DATA_BLOCK_FFD_PIXELCODE_MS_3 = 11,
 CCS_DATA_BLOCK_FFD_PIXELCODE_MS_4 = 12,
 CCS_DATA_BLOCK_FFD_PIXELCODE_MS_5 = 13,
 CCS_DATA_BLOCK_FFD_PIXELCODE_MS_6 = 14,
 CCS_DATA_BLOCK_FFD_PIXELCODE_TOP_OB = 16,
 CCS_DATA_BLOCK_FFD_PIXELCODE_BOTTOM_OB = 17,
 CCS_DATA_BLOCK_FFD_PIXELCODE_LEFT_OB = 18,
 CCS_DATA_BLOCK_FFD_PIXELCODE_RIGHT_OB = 19,
 CCS_DATA_BLOCK_FFD_PIXELCODE_TOP_LEFT_OB = 20,
 CCS_DATA_BLOCK_FFD_PIXELCODE_TOP_RIGHT_OB = 21,
 CCS_DATA_BLOCK_FFD_PIXELCODE_BOTTOM_LEFT_OB = 22,
 CCS_DATA_BLOCK_FFD_PIXELCODE_BOTTOM_RIGHT_OB = 23,
 CCS_DATA_BLOCK_FFD_PIXELCODE_TOTAL = 24,
 CCS_DATA_BLOCK_FFD_PIXELCODE_TOP_PDAF = 32,
 CCS_DATA_BLOCK_FFD_PIXELCODE_BOTTOM_PDAF = 33,
 CCS_DATA_BLOCK_FFD_PIXELCODE_LEFT_PDAF = 34,
 CCS_DATA_BLOCK_FFD_PIXELCODE_RIGHT_PDAF = 35,
 CCS_DATA_BLOCK_FFD_PIXELCODE_TOP_LEFT_PDAF = 36,
 CCS_DATA_BLOCK_FFD_PIXELCODE_TOP_RIGHT_PDAF = 37,
 CCS_DATA_BLOCK_FFD_PIXELCODE_BOTTOM_LEFT_PDAF = 38,
 CCS_DATA_BLOCK_FFD_PIXELCODE_BOTTOM_RIGHT_PDAF = 39,
 CCS_DATA_BLOCK_FFD_PIXELCODE_SEPARATED_PDAF = 40,
 CCS_DATA_BLOCK_FFD_PIXELCODE_ORIGINAL_ORDER_PDAF = 41,
 CCS_DATA_BLOCK_FFD_PIXELCODE_VENDOR_PDAF = 41,
};

struct __ccs_data_block_ffd_entry {
 u8 pixelcode;
 u8 reserved;
 u8 value[2];
} __packed;

struct __ccs_data_block_ffd {
 u8 num_column_descs;
 u8 num_row_descs;
} __packed;

enum __ccs_data_block_rule_id {
 CCS_DATA_BLOCK_RULE_ID_IF = 1,
 CCS_DATA_BLOCK_RULE_ID_READ_ONLY_REGS = 2,
 CCS_DATA_BLOCK_RULE_ID_FFD = 3,
 CCS_DATA_BLOCK_RULE_ID_MSR = 4,
 CCS_DATA_BLOCK_RULE_ID_PDAF_READOUT = 5,
};

struct __ccs_data_block_rule_if {
 u8 addr[2];
 u8 value;
 u8 mask;
} __packed;

enum __ccs_data_block_pdaf_readout_order {
 CCS_DATA_BLOCK_PDAF_READOUT_ORDER_ORIGINAL = 1,
 CCS_DATA_BLOCK_PDAF_READOUT_ORDER_SEPARATE_WITHIN_LINE = 2,
 CCS_DATA_BLOCK_PDAF_READOUT_ORDER_SEPARATE_TYPES_SEPARATE_LINES = 3,
};

struct __ccs_data_block_pdaf_readout {
 u8 pdaf_readout_info_reserved;
 u8 pdaf_readout_info_order;
} __packed;

struct __ccs_data_block_pdaf_pix_loc_block_desc {
 u8 block_type_id;
 u8 repeat_x[2];
} __packed;

struct __ccs_data_block_pdaf_pix_loc_block_desc_group {
 u8 num_block_descs[2];
 u8 repeat_y;
} __packed;

enum __ccs_data_block_pdaf_pix_loc_pixel_type {
 CCS_DATA_PDAF_PIXEL_TYPE_LEFT_SEPARATED = 0,
 CCS_DATA_PDAF_PIXEL_TYPE_RIGHT_SEPARATED = 1,
 CCS_DATA_PDAF_PIXEL_TYPE_TOP_SEPARATED = 2,
 CCS_DATA_PDAF_PIXEL_TYPE_BOTTOM_SEPARATED = 3,
 CCS_DATA_PDAF_PIXEL_TYPE_LEFT_SIDE_BY_SIDE = 4,
 CCS_DATA_PDAF_PIXEL_TYPE_RIGHT_SIDE_BY_SIDE = 5,
 CCS_DATA_PDAF_PIXEL_TYPE_TOP_SIDE_BY_SIDE = 6,
 CCS_DATA_PDAF_PIXEL_TYPE_BOTTOM_SIDE_BY_SIDE = 7,
 CCS_DATA_PDAF_PIXEL_TYPE_TOP_LEFT = 8,
 CCS_DATA_PDAF_PIXEL_TYPE_TOP_RIGHT = 9,
 CCS_DATA_PDAF_PIXEL_TYPE_BOTTOM_LEFT = 10,
 CCS_DATA_PDAF_PIXEL_TYPE_BOTTOM_RIGHT = 11,
};

struct __ccs_data_block_pdaf_pix_loc_pixel_desc {
 u8 pixel_type;
 u8 small_offset_x;
 u8 small_offset_y;
} __packed;

struct __ccs_data_block_pdaf_pix_loc {
 u8 main_offset_x[2];
 u8 main_offset_y[2];
 u8 global_pdaf_type;
 u8 block_width;
 u8 block_height;
 u8 num_block_desc_groups[2];
} __packed;

struct __ccs_data_block_end {
 u8 crc[4];
} __packed;

#endif /* __CCS_DATA_DEFS_H__ */

Messung V0.5
C=96 H=100 G=97

¤ Dauer der Verarbeitung: 0.4 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.