#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/err.h>
#include <linux/i2c.h>
#include <linux/platform_device.h>
#include <linux/regulator/driver.h>
#include <linux/regulator/machine.h>
#include <linux/mfd/max8925.h>
#include <linux/of.h>
#include <linux/regulator/of_regulator.h>
#define SD1_DVM_VMIN …
#define SD1_DVM_VMAX …
#define SD1_DVM_STEP …
#define SD1_DVM_SHIFT …
#define SD1_DVM_EN …
#define LDO_SEQ_I2C …
#define LDO_SEQ_MASK …
#define LDO_SEQ_SHIFT …
#define LDO_I2C_EN …
#define LDO_I2C_EN_MASK …
#define LDO_I2C_EN_SHIFT …
struct max8925_regulator_info { … };
static int max8925_set_voltage_sel(struct regulator_dev *rdev,
unsigned int selector)
{ … }
static int max8925_get_voltage_sel(struct regulator_dev *rdev)
{ … }
static int max8925_enable(struct regulator_dev *rdev)
{ … }
static int max8925_disable(struct regulator_dev *rdev)
{ … }
static int max8925_is_enabled(struct regulator_dev *rdev)
{ … }
static int max8925_set_dvm_voltage(struct regulator_dev *rdev, int uV)
{ … }
static int max8925_set_dvm_enable(struct regulator_dev *rdev)
{ … }
static int max8925_set_dvm_disable(struct regulator_dev *rdev)
{ … }
static const struct regulator_ops max8925_regulator_sdv_ops = …;
static const struct regulator_ops max8925_regulator_ldo_ops = …;
#define MAX8925_SDV(_id, min, max, step) …
#define MAX8925_LDO(_id, min, max, step) …
static struct max8925_regulator_info max8925_regulator_info[] = …;
static int max8925_regulator_probe(struct platform_device *pdev)
{ … }
static struct platform_driver max8925_regulator_driver = …;
static int __init max8925_regulator_init(void)
{ … }
subsys_initcall(max8925_regulator_init);
static void __exit max8925_regulator_exit(void)
{ … }
module_exit(max8925_regulator_exit);
MODULE_LICENSE(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_ALIAS(…) …;