drivers/iio/dac/mcp47feb02.c

Source file repositories/reference/linux-study-clean/drivers/iio/dac/mcp47feb02.c

File Facts

System
Linux kernel
Corpus path
drivers/iio/dac/mcp47feb02.c
Extension
.c
Size
37752 bytes
Lines
1244
Domain
Driver Families
Bucket
drivers/iio
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 mcp47feb02_features {
	const char *name;
	unsigned int phys_channels;
	unsigned int resolution;
	bool have_ext_vref1;
	bool have_eeprom;
};

static const struct mcp47feb02_features mcp47feb01_chip_features = {
	.name = "mcp47feb01",
	.phys_channels = 1,
	.resolution = 8,
	.have_ext_vref1 = false,
	.have_eeprom = true,
};

static const struct mcp47feb02_features mcp47feb02_chip_features = {
	.name = "mcp47feb02",
	.phys_channels = 2,
	.resolution = 8,
	.have_ext_vref1 = false,
	.have_eeprom = true,
};

static const struct mcp47feb02_features mcp47feb04_chip_features = {
	.name = "mcp47feb04",
	.phys_channels = 4,
	.resolution = 8,
	.have_ext_vref1 = true,
	.have_eeprom = true,
};

static const struct mcp47feb02_features mcp47feb08_chip_features = {
	.name = "mcp47feb08",
	.phys_channels = 8,
	.resolution = 8,
	.have_ext_vref1 = true,
	.have_eeprom = true,
};

static const struct mcp47feb02_features mcp47feb11_chip_features = {
	.name = "mcp47feb11",
	.phys_channels = 1,
	.resolution = 10,
	.have_ext_vref1 = false,
	.have_eeprom = true,
};

static const struct mcp47feb02_features mcp47feb12_chip_features = {
	.name = "mcp47feb12",
	.phys_channels = 2,
	.resolution = 10,
	.have_ext_vref1 = false,
	.have_eeprom = true,
};

static const struct mcp47feb02_features mcp47feb14_chip_features = {
	.name = "mcp47feb14",
	.phys_channels = 4,
	.resolution = 10,
	.have_ext_vref1 = true,
	.have_eeprom = true,
};

static const struct mcp47feb02_features mcp47feb18_chip_features = {
	.name = "mcp47feb18",
	.phys_channels = 8,
	.resolution = 10,
	.have_ext_vref1 = true,
	.have_eeprom = true,
};

static const struct mcp47feb02_features mcp47feb21_chip_features = {
	.name = "mcp47feb21",
	.phys_channels = 1,
	.resolution = 12,
	.have_ext_vref1 = false,
	.have_eeprom = true,
};

static const struct mcp47feb02_features mcp47feb22_chip_features = {
	.name = "mcp47feb22",
	.phys_channels = 2,
	.resolution = 12,
	.have_ext_vref1 = false,
	.have_eeprom = true,
};

static const struct mcp47feb02_features mcp47feb24_chip_features = {
	.name = "mcp47feb24",

Annotation

Implementation Notes