#include <linux/kernel.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/device.h>
#include <linux/init.h>
#include <linux/err.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
#include <linux/regulator/of_regulator.h>
#include <linux/regulator/driver.h>
#include <linux/regulator/machine.h>
#include <linux/mfd/tps65218.h>
#define TPS65218_REGULATOR(_name, _of, _id, _type, _ops, _n, _vr, _vm, _er, \
_em, _cr, _cm, _lr, _nlr, _delay, _fuv, _sr, _sm, \
_ct, _ncl) … \
static const struct linear_range dcdc1_dcdc2_ranges[] = …;
static const struct linear_range ldo1_dcdc3_ranges[] = …;
static const struct linear_range dcdc4_ranges[] = …;
static int tps65218_pmic_set_voltage_sel(struct regulator_dev *dev,
unsigned selector)
{ … }
static int tps65218_pmic_enable(struct regulator_dev *dev)
{ … }
static int tps65218_pmic_disable(struct regulator_dev *dev)
{ … }
static int tps65218_pmic_set_suspend_enable(struct regulator_dev *dev)
{ … }
static int tps65218_pmic_set_suspend_disable(struct regulator_dev *dev)
{ … }
static const struct regulator_ops tps65218_dcdc12_ops = …;
static const struct regulator_ops tps65218_ldo1_dcdc34_ops = …;
static const unsigned int ls3_currents[] = …;
static int tps65218_pmic_set_input_current_lim(struct regulator_dev *dev,
int lim_uA)
{ … }
static int tps65218_pmic_set_current_limit(struct regulator_dev *dev,
int min_uA, int max_uA)
{ … }
static const struct regulator_ops tps65218_ls23_ops = …;
static const struct regulator_ops tps65218_dcdc56_pmic_ops = …;
static const struct regulator_desc regulators[] = …;
static int tps65218_regulator_probe(struct platform_device *pdev)
{ … }
static const struct platform_device_id tps65218_regulator_id_table[] = …;
MODULE_DEVICE_TABLE(platform, tps65218_regulator_id_table);
static struct platform_driver tps65218_regulator_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_ALIAS(…) …;
MODULE_LICENSE(…) …;