#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/err.h>
#include <linux/platform_device.h>
#include <linux/regulator/driver.h>
#include <linux/i2c.h>
#include <linux/slab.h>
#define ISL6271A_VOLTAGE_MIN …
#define ISL6271A_VOLTAGE_MAX …
#define ISL6271A_VOLTAGE_STEP …
struct isl_pmic { … };
static int isl6271a_get_voltage_sel(struct regulator_dev *dev)
{ … }
static int isl6271a_set_voltage_sel(struct regulator_dev *dev,
unsigned selector)
{ … }
static const struct regulator_ops isl_core_ops = …;
static const struct regulator_ops isl_fixed_ops = …;
static const struct regulator_desc isl_rd[] = …;
static int isl6271a_probe(struct i2c_client *i2c)
{ … }
static const struct i2c_device_id isl6271a_id[] = …;
MODULE_DEVICE_TABLE(i2c, isl6271a_id);
static struct i2c_driver isl6271a_i2c_driver = …;
static int __init isl6271a_init(void)
{ … }
static void __exit isl6271a_cleanup(void)
{ … }
subsys_initcall(isl6271a_init);
module_exit(isl6271a_cleanup);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;