#include <linux/bitops.h>
#include <linux/device.h>
#include <linux/err.h>
#include <linux/module.h>
#include <linux/io.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
#include <linux/regulator/driver.h>
#include <linux/regulator/machine.h>
#include <linux/regulator/of_regulator.h>
#include <linux/mfd/hi655x-pmic.h>
struct hi655x_regulator { … };
static const unsigned int ldo7_voltages[] = …;
static const unsigned int ldo19_voltages[] = …;
static const unsigned int ldo22_voltages[] = …;
enum hi655x_regulator_id { … };
static int hi655x_is_enabled(struct regulator_dev *rdev)
{ … }
static int hi655x_disable(struct regulator_dev *rdev)
{ … }
static const struct regulator_ops hi655x_regulator_ops = …;
static const struct regulator_ops hi655x_ldo_linear_ops = …;
#define HI655X_LDO(_ID, vreg, vmask, ereg, dreg, \
sreg, cmask, vtable) …
#define HI655X_LDO_LINEAR(_ID, vreg, vmask, ereg, dreg, \
sreg, cmask, minv, nvolt, vstep) …
static const struct hi655x_regulator regulators[] = …;
static int hi655x_regulator_probe(struct platform_device *pdev)
{ … }
static const struct platform_device_id hi655x_regulator_table[] = …;
MODULE_DEVICE_TABLE(platform, hi655x_regulator_table);
static struct platform_driver hi655x_regulator_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;