include/linux/mfd/lp8788.h
Source file repositories/reference/linux-study-clean/include/linux/mfd/lp8788.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/mfd/lp8788.h- Extension
.h- Size
- 6878 bytes
- Lines
- 290
- Domain
- Core OS
- Bucket
- Core Kernel Interface
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/irqdomain.hlinux/regmap.h
Detected Declarations
struct lp8788struct lp8788_buck1_dvsstruct lp8788_buck2_dvsstruct lp8788_chg_paramstruct lp8788_charger_platform_datastruct lp8788_led_platform_datastruct lp8788_vib_platform_datastruct lp8788_platform_datastruct lp8788enum lp8788_int_idenum lp8788_dvs_selenum lp8788_ext_ldo_en_idenum lp8788_charger_eventenum lp8788_bl_dim_modeenum lp8788_bl_full_scale_currentenum lp8788_bl_ramp_stepenum lp8788_isink_scaleenum lp8788_isink_numberenum lp8788_alarm_selenum lp8788_adc_id
Annotated Snippet
struct lp8788_buck1_dvs {
enum lp8788_dvs_sel vsel;
};
/*
* lp8788_buck2_dvs
* @vsel : dvs selector for buck v2 register
*/
struct lp8788_buck2_dvs {
enum lp8788_dvs_sel vsel;
};
/*
* struct lp8788_chg_param
* @addr : charging control register address (range : 0x11 ~ 0x1C)
* @val : charging parameter value
*/
struct lp8788_chg_param {
u8 addr;
u8 val;
};
/*
* struct lp8788_charger_platform_data
* @adc_vbatt : adc channel name for battery voltage
* @adc_batt_temp : adc channel name for battery temperature
* @max_vbatt_mv : used for calculating battery capacity
* @chg_params : initial charging parameters
* @num_chg_params : numbers of charging parameters
* @charger_event : the charger event can be reported to the platform side
*/
struct lp8788_charger_platform_data {
const char *adc_vbatt;
const char *adc_batt_temp;
unsigned int max_vbatt_mv;
struct lp8788_chg_param *chg_params;
int num_chg_params;
void (*charger_event) (struct lp8788 *lp,
enum lp8788_charger_event event);
};
/*
* struct lp8788_led_platform_data
* @name : led driver name. (default: "keyboard-backlight")
* @scale : current scale
* @num : current sink number
* @iout_code : current output value (Addr 9Ah ~ 9Bh)
*/
struct lp8788_led_platform_data {
char *name;
enum lp8788_isink_scale scale;
enum lp8788_isink_number num;
int iout_code;
};
/*
* struct lp8788_vib_platform_data
* @name : vibrator driver name
* @scale : current scale
* @num : current sink number
* @iout_code : current output value (Addr 9Ah ~ 9Bh)
* @pwm_code : PWM code value (Addr 9Ch ~ 9Eh)
*/
struct lp8788_vib_platform_data {
char *name;
enum lp8788_isink_scale scale;
enum lp8788_isink_number num;
int iout_code;
int pwm_code;
};
/*
* struct lp8788_platform_data
* @init_func : used for initializing registers
* before mfd driver is registered
* @buck_data : regulator initial data for buck
* @dldo_data : regulator initial data for digital ldo
* @aldo_data : regulator initial data for analog ldo
* @buck1_dvs : configurations for buck1 dvs
* @buck2_dvs : configurations for buck2 dvs
* @chg_pdata : platform data for charger driver
* @alarm_sel : rtc alarm selection (1 or 2)
* @led_pdata : configurable data for led driver
* @vib_pdata : configurable data for vibrator driver
* @adc_pdata : iio map data for adc driver
*/
struct lp8788_platform_data {
/* general system information */
int (*init_func) (struct lp8788 *lp);
Annotation
- Immediate include surface: `linux/irqdomain.h`, `linux/regmap.h`.
- Detected declarations: `struct lp8788`, `struct lp8788_buck1_dvs`, `struct lp8788_buck2_dvs`, `struct lp8788_chg_param`, `struct lp8788_charger_platform_data`, `struct lp8788_led_platform_data`, `struct lp8788_vib_platform_data`, `struct lp8788_platform_data`, `struct lp8788`, `enum lp8788_int_id`.
- Atlas domain: Core OS / Core Kernel Interface.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.