sound/soc/codecs/fs-amp-lib.h

Source file repositories/reference/linux-study-clean/sound/soc/codecs/fs-amp-lib.h

File Facts

System
Linux kernel
Corpus path
sound/soc/codecs/fs-amp-lib.h
Extension
.h
Size
2886 bytes
Lines
151
Domain
Driver Families
Bucket
sound/soc
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 fs_reg_val {
	u8 reg;
	u16 val;
};

struct fs_reg_bits {
	u8 cmd; /* FS_CMD_UPDATE */
	u8 reg;
	u16 val;
	u16 mask;
};

struct fs_cmd_pkg {
	union {
		u8 cmd;
		struct fs_reg_val regv;
		struct fs_reg_bits regb;
	};
};

struct fs_fwm_index {
	/* Index type */
	u16 type;
	/* Offset address starting from the end of header */
	u16 offset;
};

struct fs_fwm_table {
	char name[FS_TABLE_NAME_LEN];
	u16 size; /* size of buf */
	u8 buf[];
};

struct fs_scene_index {
	/* Offset address(scene name) in string table */
	u16 name;
	/* Offset address(scene reg) in register table */
	u16 reg;
	/* Offset address(scene model) in model table */
	u16 model;
	/* Offset address(scene effect) in effect table */
	u16 effect;
};

struct fs_reg_table {
	u16 size; /* size of buf */
	u8 buf[];
};

struct fs_file_table {
	u16 name;
	u16 size; /* size of buf */
	u8 buf[];
};

struct fs_fwm_date {
	u32 year:12;
	u32 month:4;
	u32 day:5;
	u32 hour:5;
	u32 minute:6;
};

struct fs_fwm_header {
	u16 version;
	u16 project; /* Offset address(project name) in string table */
	u16 device; /* Offset address(device name) in string table */
	struct fs_fwm_date date;
	u16 crc16;
	u16 crc_size; /* Starting position for CRC checking */
	u16 chip_type;
	u16 addr; /* 7-bit i2c address */
	u16 spkid;
	u16 rsvd[6];
	u8 params[];
};

#pragma pack(pop)

struct fs_i2s_srate {
	u32 srate; /* Sample rate */
	u16 i2ssr; /* Value of Bit field[I2SSR] */
};

struct fs_pll_div {
	unsigned int bclk; /* Rate of bit clock */
	u16 pll1;
	u16 pll2;
	u16 pll3;
};

Annotation

Implementation Notes