#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/err.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/regulator/driver.h>
#include <linux/regulator/machine.h>
#include <linux/slab.h>
#include <linux/mfd/tps65910.h>
#include <linux/regulator/of_regulator.h>
#define TPS65910_SUPPLY_STATE_ENABLED …
#define EXT_SLEEP_CONTROL …
static const unsigned int VIO_VSEL_table[] = …;
static const unsigned int VRTC_VSEL_table[] = …;
static const unsigned int VDD3_VSEL_table[] = …;
static const unsigned int VDIG1_VSEL_table[] = …;
static const unsigned int VDIG2_VSEL_table[] = …;
static const unsigned int VPLL_VSEL_table[] = …;
static const unsigned int VDAC_VSEL_table[] = …;
static const unsigned int VAUX1_VSEL_table[] = …;
static const unsigned int VAUX2_VSEL_table[] = …;
static const unsigned int VAUX33_VSEL_table[] = …;
static const unsigned int VMMC_VSEL_table[] = …;
static const unsigned int VBB_VSEL_table[] = …;
struct tps_info { … };
static struct tps_info tps65910_regs[] = …;
static struct tps_info tps65911_regs[] = …;
#define EXT_CONTROL_REG_BITS(id, regs_offs, bits) …
static unsigned int tps65910_ext_sleep_control[] = …;
static unsigned int tps65911_ext_sleep_control[] = …;
struct tps65910_reg { … };
static int tps65910_get_ctrl_register(int id)
{ … }
static int tps65911_get_ctrl_register(int id)
{ … }
static int tps65910_set_mode(struct regulator_dev *dev, unsigned int mode)
{ … }
static unsigned int tps65910_get_mode(struct regulator_dev *dev)
{ … }
static int tps65910_get_voltage_dcdc_sel(struct regulator_dev *dev)
{ … }
static int tps65910_get_voltage_sel(struct regulator_dev *dev)
{ … }
static int tps65910_get_voltage_vdd3(struct regulator_dev *dev)
{ … }
static int tps65911_get_voltage_sel(struct regulator_dev *dev)
{ … }
static int tps65910_set_voltage_dcdc_sel(struct regulator_dev *dev,
unsigned selector)
{ … }
static int tps65910_set_voltage_sel(struct regulator_dev *dev,
unsigned selector)
{ … }
static int tps65911_set_voltage_sel(struct regulator_dev *dev,
unsigned selector)
{ … }
static int tps65910_list_voltage_dcdc(struct regulator_dev *dev,
unsigned selector)
{ … }
static int tps65911_list_voltage(struct regulator_dev *dev, unsigned selector)
{ … }
static const struct regulator_ops tps65910_ops_dcdc = …;
static const struct regulator_ops tps65910_ops_vdd3 = …;
static const struct regulator_ops tps65910_ops_vbb = …;
static const struct regulator_ops tps65910_ops = …;
static const struct regulator_ops tps65911_ops = …;
static int tps65910_set_ext_sleep_config(struct tps65910_reg *pmic,
int id, int ext_sleep_config)
{ … }
#ifdef CONFIG_OF
static struct of_regulator_match tps65910_matches[] = …;
static struct of_regulator_match tps65911_matches[] = …;
static struct tps65910_board *tps65910_parse_dt_reg_data(
struct platform_device *pdev,
struct of_regulator_match **tps65910_reg_matches)
{ … }
#else
static inline struct tps65910_board *tps65910_parse_dt_reg_data(
struct platform_device *pdev,
struct of_regulator_match **tps65910_reg_matches)
{
*tps65910_reg_matches = NULL;
return NULL;
}
#endif
static int tps65910_probe(struct platform_device *pdev)
{ … }
static void tps65910_shutdown(struct platform_device *pdev)
{ … }
static struct platform_driver tps65910_driver = …;
static int __init tps65910_init(void)
{ … }
subsys_initcall(tps65910_init);
static void __exit tps65910_cleanup(void)
{ … }
module_exit(tps65910_cleanup);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;