drivers/iio/adc/axp20x_adc.c

Source file repositories/reference/linux-study-clean/drivers/iio/adc/axp20x_adc.c

File Facts

System
Linux kernel
Corpus path
drivers/iio/adc/axp20x_adc.c
Extension
.c
Size
29690 bytes
Lines
1194
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 axp20x_adc_iio {
	struct regmap		*regmap;
	const struct axp_data	*data;
};

enum axp192_adc_channel_v {
	AXP192_ACIN_V = 0,
	AXP192_VBUS_V,
	AXP192_TS_IN,
	AXP192_GPIO0_V,
	AXP192_GPIO1_V,
	AXP192_GPIO2_V,
	AXP192_GPIO3_V,
	AXP192_IPSOUT_V,
	AXP192_BATT_V,
};

enum axp192_adc_channel_i {
	AXP192_ACIN_I = 0,
	AXP192_VBUS_I,
	AXP192_BATT_CHRG_I,
	AXP192_BATT_DISCHRG_I,
};

enum axp20x_adc_channel_v {
	AXP20X_ACIN_V = 0,
	AXP20X_VBUS_V,
	AXP20X_TS_IN,
	AXP20X_GPIO0_V,
	AXP20X_GPIO1_V,
	AXP20X_IPSOUT_V,
	AXP20X_BATT_V,
};

enum axp20x_adc_channel_i {
	AXP20X_ACIN_I = 0,
	AXP20X_VBUS_I,
	AXP20X_BATT_CHRG_I,
	AXP20X_BATT_DISCHRG_I,
};

enum axp22x_adc_channel_v {
	AXP22X_TS_IN = 0,
	AXP22X_BATT_V,
};

enum axp22x_adc_channel_i {
	AXP22X_BATT_CHRG_I = 1,
	AXP22X_BATT_DISCHRG_I,
};

enum axp717_adc_channel_v {
	AXP717_BATT_V = 0,
	AXP717_TS_IN,
	AXP717_VBUS_V,
	AXP717_VSYS_V,
	AXP717_DIE_TEMP_V,
	AXP717_VMID_V = 6,
	AXP717_BKUP_BATT_V,
};

enum axp717_adc_channel_i {
	AXP717_BATT_CHRG_I = 5,
};

enum axp813_adc_channel_v {
	AXP813_TS_IN = 0,
	AXP813_GPIO0_V,
	AXP813_BATT_V,
};

static const struct iio_map axp20x_maps[] = {
	IIO_MAP("vbus_v", "axp20x-usb-power-supply", "vbus_v"),
	IIO_MAP("vbus_i", "axp20x-usb-power-supply", "vbus_i"),
	IIO_MAP("acin_v", "axp20x-ac-power-supply", "acin_v"),
	IIO_MAP("acin_i", "axp20x-ac-power-supply", "acin_i"),
	IIO_MAP("batt_v", "axp20x-battery-power-supply", "batt_v"),
	IIO_MAP("batt_chrg_i", "axp20x-battery-power-supply", "batt_chrg_i"),
	IIO_MAP("batt_dischrg_i", "axp20x-battery-power-supply", "batt_dischrg_i"),
	{ }
};

static const struct iio_map axp22x_maps[] = {
	IIO_MAP("batt_v", "axp20x-battery-power-supply", "batt_v"),
	IIO_MAP("batt_chrg_i", "axp20x-battery-power-supply", "batt_chrg_i"),
	IIO_MAP("batt_dischrg_i", "axp20x-battery-power-supply", "batt_dischrg_i"),
	{ }
};

static const struct iio_map axp717_maps[] = {

Annotation

Implementation Notes