include/linux/mfd/aat2870.h

Source file repositories/reference/linux-study-clean/include/linux/mfd/aat2870.h

File Facts

System
Linux kernel
Corpus path
include/linux/mfd/aat2870.h
Extension
.h
Size
3965 bytes
Lines
165
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.

Dependency Surface

Detected Declarations

Annotated Snippet

struct aat2870_register {
	bool readable;
	bool writeable;
	u8 value;
};

struct aat2870_data {
	struct device *dev;
	struct i2c_client *client;

	struct mutex io_lock;
	struct aat2870_register *reg_cache; /* register cache */
	int en_pin; /* enable GPIO pin (if < 0, ignore this value) */
	bool is_enable;

	/* init and uninit for platform specified */
	int (*init)(struct aat2870_data *aat2870);
	void (*uninit)(struct aat2870_data *aat2870);

	/* i2c io funcntions */
	int (*read)(struct aat2870_data *aat2870, u8 addr, u8 *val);
	int (*write)(struct aat2870_data *aat2870, u8 addr, u8 val);
	int (*update)(struct aat2870_data *aat2870, u8 addr, u8 mask, u8 val);
};

struct aat2870_subdev_info {
	int id;
	const char *name;
	void *platform_data;
};

struct aat2870_platform_data {
	int en_pin; /* enable GPIO pin (if < 0, ignore this value) */

	struct aat2870_subdev_info *subdevs;
	int num_subdevs;

	/* init and uninit for platform specified */
	int (*init)(struct aat2870_data *aat2870);
	void (*uninit)(struct aat2870_data *aat2870);
};

struct aat2870_bl_platform_data {
	/* backlight channels, default is AAT2870_BL_CH_ALL */
	int channels;
	/* backlight current magnitude, default is AAT2870_CURRENT_27_9 */
	int max_current;
	/* maximum brightness, default is 255 */
	int max_brightness;
};

#endif /* __LINUX_MFD_AAT2870_H */

Annotation

Implementation Notes