drivers/regulator/da9121-regulator.h

Source file repositories/reference/linux-study-clean/drivers/regulator/da9121-regulator.h

File Facts

System
Linux kernel
Corpus path
drivers/regulator/da9121-regulator.h
Extension
.h
Size
10093 bytes
Lines
322
Domain
Driver Families
Bucket
drivers/regulator
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

#ifndef __DA9121_REGISTERS_H__
#define __DA9121_REGISTERS_H__

/* Values for: DA9121_REG_BUCK_BUCKx_4 registers, fields CHx_y_MODE
 *             DA9121_REG_BUCK_BUCKx_7 registers, fields CHx_RIPPLE_CANCEL
 */
#include <dt-bindings/regulator/dlg,da9121-regulator.h>

enum da9121_variant {
	DA9121_TYPE_DA9121_DA9130,
	DA9121_TYPE_DA9220_DA9132,
	DA9121_TYPE_DA9122_DA9131,
	DA9121_TYPE_DA9217,
	DA9121_TYPE_DA9141,
	DA9121_TYPE_DA9142
};

enum da9121_subvariant {
	DA9121_SUBTYPE_DA9121,
	DA9121_SUBTYPE_DA9130,
	DA9121_SUBTYPE_DA9220,
	DA9121_SUBTYPE_DA9132,
	DA9121_SUBTYPE_DA9122,
	DA9121_SUBTYPE_DA9131,
	DA9121_SUBTYPE_DA9217,
	DA9121_SUBTYPE_DA9141,
	DA9121_SUBTYPE_DA9142
};

/* Minimum, maximum and default polling millisecond periods are provided
 * here as an example. It is expected that any final implementation will
 * include a modification of these settings to match the required
 * application.
 */
#define DA9121_DEFAULT_POLLING_PERIOD_MS	3000
#define DA9121_MAX_POLLING_PERIOD_MS		10000
#define DA9121_MIN_POLLING_PERIOD_MS		1000

/* Registers */

#define DA9121_REG_SYS_STATUS_0		0x01
#define DA9121_REG_SYS_STATUS_1		0x02
#define DA9121_REG_SYS_STATUS_2		0x03
#define DA9121_REG_SYS_EVENT_0		0x04
#define DA9121_REG_SYS_EVENT_1		0x05
#define DA9121_REG_SYS_EVENT_2		0x06
#define DA9121_REG_SYS_MASK_0		0x07
#define DA9121_REG_SYS_MASK_1		0x08
#define DA9121_REG_SYS_MASK_2		0x09
#define DA9121_REG_SYS_MASK_3		0x0A
#define DA9121_REG_SYS_CONFIG_0		0x0B
#define DA9121_REG_SYS_CONFIG_1		0x0C
#define DA9121_REG_SYS_CONFIG_2		0x0D
#define DA9121_REG_SYS_CONFIG_3		0x0E
#define DA9121_REG_SYS_GPIO0_0		0x10
#define DA9121_REG_SYS_GPIO0_1		0x11
#define DA9121_REG_SYS_GPIO1_0		0x12
#define DA9121_REG_SYS_GPIO1_1		0x13
#define DA9121_REG_SYS_GPIO2_0		0x14
#define DA9121_REG_SYS_GPIO2_1		0x15
#define DA914x_REG_SYS_GPIO3_0		0x16
#define DA914x_REG_SYS_GPIO3_1		0x17
#define DA914x_REG_SYS_GPIO4_0		0x18
#define DA914x_REG_SYS_GPIO4_1		0x19
#define DA914x_REG_SYS_ADMUX1_0		0x1A
#define DA914x_REG_SYS_ADMUX1_1		0x1B
#define DA914x_REG_SYS_ADMUX2_0		0x1C
#define DA914x_REG_SYS_ADMUX2_1		0x1D
#define DA9121_REG_BUCK_BUCK1_0		0x20
#define DA9121_REG_BUCK_BUCK1_1		0x21
#define DA9121_REG_BUCK_BUCK1_2		0x22
#define DA9121_REG_BUCK_BUCK1_3		0x23
#define DA9121_REG_BUCK_BUCK1_4		0x24
#define DA9121_REG_BUCK_BUCK1_5		0x25
#define DA9121_REG_BUCK_BUCK1_6		0x26
#define DA9121_REG_BUCK_BUCK1_7		0x27
#define DA9xxx_REG_BUCK_BUCK2_0		0x28
#define DA9xxx_REG_BUCK_BUCK2_1		0x29
#define DA9xxx_REG_BUCK_BUCK2_2		0x2A
#define DA9xxx_REG_BUCK_BUCK2_3		0x2B
#define DA9xxx_REG_BUCK_BUCK2_4		0x2C
#define DA9xxx_REG_BUCK_BUCK2_5		0x2D
#define DA9xxx_REG_BUCK_BUCK2_6		0x2E
#define DA9xxx_REG_BUCK_BUCK2_7		0x2F
#define DA9121_REG_OTP_DEVICE_ID	0x48
#define DA9121_REG_OTP_VARIANT_ID	0x49
#define DA9121_REG_OTP_CUSTOMER_ID	0x4A
#define DA9121_REG_OTP_CONFIG_ID	0x4B

/* Register bits */

Annotation

Implementation Notes