#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/init.h>
#include <linux/bitops.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/gpio/consumer.h>
#include <linux/slab.h>
#include <linux/mfd/wm831x/core.h>
#include <linux/mfd/wm831x/regulator.h>
#include <linux/mfd/wm831x/pdata.h>
#define WM831X_BUCKV_MAX_SELECTOR …
#define WM831X_BUCKP_MAX_SELECTOR …
#define WM831X_DCDC_MODE_FAST …
#define WM831X_DCDC_MODE_NORMAL …
#define WM831X_DCDC_MODE_IDLE …
#define WM831X_DCDC_MODE_STANDBY …
#define WM831X_DCDC_MAX_NAME …
#define WM831X_DCDC_CONTROL_1 …
#define WM831X_DCDC_CONTROL_2 …
#define WM831X_DCDC_ON_CONFIG …
#define WM831X_DCDC_SLEEP_CONTROL …
#define WM831X_DCDC_DVS_CONTROL …
struct wm831x_dcdc { … };
static unsigned int wm831x_dcdc_get_mode(struct regulator_dev *rdev)
{ … }
static int wm831x_dcdc_set_mode_int(struct wm831x *wm831x, int reg,
unsigned int mode)
{ … }
static int wm831x_dcdc_set_mode(struct regulator_dev *rdev, unsigned int mode)
{ … }
static int wm831x_dcdc_set_suspend_mode(struct regulator_dev *rdev,
unsigned int mode)
{ … }
static int wm831x_dcdc_get_status(struct regulator_dev *rdev)
{ … }
static irqreturn_t wm831x_dcdc_uv_irq(int irq, void *data)
{ … }
static irqreturn_t wm831x_dcdc_oc_irq(int irq, void *data)
{ … }
static const struct linear_range wm831x_buckv_ranges[] = …;
static int wm831x_buckv_set_dvs(struct regulator_dev *rdev, int state)
{ … }
static int wm831x_buckv_set_voltage_sel(struct regulator_dev *rdev,
unsigned vsel)
{ … }
static int wm831x_buckv_set_suspend_voltage(struct regulator_dev *rdev,
int uV)
{ … }
static int wm831x_buckv_get_voltage_sel(struct regulator_dev *rdev)
{ … }
static const unsigned int wm831x_dcdc_ilim[] = …;
static const struct regulator_ops wm831x_buckv_ops = …;
static void wm831x_buckv_dvs_init(struct platform_device *pdev,
struct wm831x_dcdc *dcdc,
struct wm831x_buckv_pdata *pdata)
{ … }
static int wm831x_buckv_probe(struct platform_device *pdev)
{ … }
static struct platform_driver wm831x_buckv_driver = …;
static int wm831x_buckp_set_suspend_voltage(struct regulator_dev *rdev, int uV)
{ … }
static const struct regulator_ops wm831x_buckp_ops = …;
static int wm831x_buckp_probe(struct platform_device *pdev)
{ … }
static struct platform_driver wm831x_buckp_driver = …;
static int wm831x_boostp_get_status(struct regulator_dev *rdev)
{ … }
static const struct regulator_ops wm831x_boostp_ops = …;
static int wm831x_boostp_probe(struct platform_device *pdev)
{ … }
static struct platform_driver wm831x_boostp_driver = …;
#define WM831X_EPE_BASE …
static const struct regulator_ops wm831x_epe_ops = …;
static int wm831x_epe_probe(struct platform_device *pdev)
{ … }
static struct platform_driver wm831x_epe_driver = …;
static struct platform_driver * const drivers[] = …;
static int __init wm831x_dcdc_init(void)
{ … }
subsys_initcall(wm831x_dcdc_init);
static void __exit wm831x_dcdc_exit(void)
{ … }
module_exit(wm831x_dcdc_exit);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;
MODULE_ALIAS(…) …;
MODULE_ALIAS(…) …;
MODULE_ALIAS(…) …;