The consumer interface only requires the driver to include one header:
#include <linux/regulator/consumer.h>
A consumer can be static or dynamic. A static one requires only a fixed supply, whereas a dynamic one requires active management of the regulator at runtime. From the consumer point side, a regulator device is represented in the kernel as an instance of a struct regulator structure, defined in drivers/regulator/internal.h and shown as follows:
/* * struct regulator * * One for each consumer device. */ struct regulator { struct device *dev; struct list_head list; unsigned int always_on:1; unsigned int bypass:1; int uA_load; int min_uV; int max_uV; char *supply_name; struct device_attribute dev_attr; struct regulator_dev *rdev; struct dentry *debugfs; };
This structure is meaningful...