drivers/media/i2c/cvs/icvs.h

Source file repositories/reference/linux-study-clean/drivers/media/i2c/cvs/icvs.h

File Facts

System
Linux kernel
Corpus path
drivers/media/i2c/cvs/icvs.h
Extension
.h
Size
16111 bytes
Lines
496
Domain
Driver Families
Bucket
drivers/media
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct icvs_device_quirk {
	u16 vid;
	u16 pid;
	unsigned long quirks;
};

/**
 * struct icvs_dt_config - Data type configuration for a virtual channel
 * @pixel_width: Pixel width in pixels
 * @pixel_height: Pixel height in pixels
 * @data_type: MIPI CSI-2 data type (RAW10, RAW12, etc.)
 * @reserved: Reserved for future use
 */
struct icvs_dt_config {
	u16	pixel_width;
	u16	pixel_height;
	u8	data_type;
	u8	reserved[3];
};

/**
 * struct icvs_vc_config - Virtual channel configuration
 * @vc: Virtual channel index (0-31)
 * @dt_count: Number of data types configured
 * @dt_configs: Array of data type configurations (up to 4)
 * @reserved: Reserved for future use
 */
struct icvs_vc_config {
	u8	vc;
	u8	dt_count;
	struct icvs_dt_config dt_configs[4];
	u8	reserved[6];
};

/**
 * struct icvs_link_cfg - Host to CVS CSI link configuration
 * @fps: Frames per second
 * @nr_of_lanes: Number of CSI-2 data lanes used
 * @phy_mode: 0 = DPHY, 1 = CPHY
 * @vc_count: Number of virtual channels enabled
 * @vc_configs: Per-VC configuration
 * @link_freq: Link frequency in Hz
 * @reserved: Reserved for future use
 */
struct icvs_link_cfg {
	u8	fps;
	u8	nr_of_lanes;
	u8	phy_mode;
	u8	vc_count;
	struct icvs_vc_config vc_configs[4];
	u32	link_freq;
	u8	reserved[8];
};

/**
 * struct icvs_fw_version - Firmware version tuple
 * @major: Major version
 * @minor: Minor version
 * @hotfix: Hotfix/patch level
 * @build: Build number
 */
struct icvs_fw_version {
	u32	major;
	u32	minor;
	u32	hotfix;
	u32	build;
};

/**
 * struct icvs_vid_pid - Device vendor/product IDs
 * @v_id: Vendor ID
 * @p_id: Product ID
 */
struct icvs_vid_pid {
	u16	v_id;
	u16	p_id;
};

/**
 * struct icvs_mipi_data_packet - Encapsulated MIPI link configuration packet
 * @cmd_id: Command identifier
 * @size: Payload size (bytes)
 * @crc: Checksum over payload
 * @conf: CSI link configuration
 * @reserved: Reserved for future use
 */
struct icvs_mipi_data_packet {
	__be16	cmd_id;
	u32	size;
	u32	crc;

Annotation

Implementation Notes