#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/err.h>
#include <linux/i2c.h>
#include <linux/platform_device.h>
#include <linux/regulator/driver.h>
#include <linux/slab.h>
#include <linux/regulator/max8649.h>
#include <linux/regmap.h>
#define MAX8649_DCDC_VMIN …
#define MAX8649_DCDC_VMAX …
#define MAX8649_DCDC_STEP …
#define MAX8649_VOL_MASK …
#define MAX8649_MODE0 …
#define MAX8649_MODE1 …
#define MAX8649_MODE2 …
#define MAX8649_MODE3 …
#define MAX8649_CONTROL …
#define MAX8649_SYNC …
#define MAX8649_RAMP …
#define MAX8649_CHIP_ID1 …
#define MAX8649_CHIP_ID2 …
#define MAX8649_EN_PD …
#define MAX8649_VID0_PD …
#define MAX8649_VID1_PD …
#define MAX8649_VID_MASK …
#define MAX8649_FORCE_PWM …
#define MAX8649_SYNC_EXTCLK …
#define MAX8649_EXT_MASK …
#define MAX8649_RAMP_MASK …
#define MAX8649_RAMP_DOWN …
struct max8649_regulator_info { … };
static int max8649_enable_time(struct regulator_dev *rdev)
{ … }
static int max8649_set_mode(struct regulator_dev *rdev, unsigned int mode)
{ … }
static unsigned int max8649_get_mode(struct regulator_dev *rdev)
{ … }
static const struct regulator_ops max8649_dcdc_ops = …;
static struct regulator_desc dcdc_desc = …;
static const struct regmap_config max8649_regmap_config = …;
static int max8649_regulator_probe(struct i2c_client *client)
{ … }
static const struct i2c_device_id max8649_id[] = …;
MODULE_DEVICE_TABLE(i2c, max8649_id);
static struct i2c_driver max8649_driver = …;
static int __init max8649_init(void)
{ … }
subsys_initcall(max8649_init);
static void __exit max8649_exit(void)
{ … }
module_exit(max8649_exit);
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;