#include <linux/module.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 <dt-bindings/regulator/active-semi,8945a-regulator.h>
#define ACT8945A_SYS_MODE …
#define ACT8945A_SYS_CTRL …
#define ACT8945A_SYS_UNLK_REGS …
#define ACT8945A_DCDC1_VSET1 …
#define ACT8945A_DCDC1_VSET2 …
#define ACT8945A_DCDC1_CTRL …
#define ACT8945A_DCDC1_SUS …
#define ACT8945A_DCDC2_VSET1 …
#define ACT8945A_DCDC2_VSET2 …
#define ACT8945A_DCDC2_CTRL …
#define ACT8945A_DCDC2_SUS …
#define ACT8945A_DCDC3_VSET1 …
#define ACT8945A_DCDC3_VSET2 …
#define ACT8945A_DCDC3_CTRL …
#define ACT8945A_DCDC3_SUS …
#define ACT8945A_LDO1_VSET …
#define ACT8945A_LDO1_CTRL …
#define ACT8945A_LDO1_SUS …
#define ACT8945A_LDO2_VSET …
#define ACT8945A_LDO2_CTRL …
#define ACT8945A_LDO2_SUS …
#define ACT8945A_LDO3_VSET …
#define ACT8945A_LDO3_CTRL …
#define ACT8945A_LDO3_SUS …
#define ACT8945A_LDO4_VSET …
#define ACT8945A_LDO4_CTRL …
#define ACT8945A_LDO4_SUS …
#define ACT8945A_ENA …
#define ACT8945A_VSEL_MASK …
#define ACT8945A_VOLTAGE_NUM …
enum { … };
struct act8945a_pmic { … };
static const struct linear_range act8945a_voltage_ranges[] = …;
static int act8945a_set_suspend_state(struct regulator_dev *rdev, bool enable)
{ … }
static int act8945a_set_suspend_enable(struct regulator_dev *rdev)
{ … }
static int act8945a_set_suspend_disable(struct regulator_dev *rdev)
{ … }
static unsigned int act8945a_of_map_mode(unsigned int mode)
{ … }
static int act8945a_set_mode(struct regulator_dev *rdev, unsigned int mode)
{ … }
static unsigned int act8945a_get_mode(struct regulator_dev *rdev)
{ … }
static const struct regulator_ops act8945a_ops = …;
#define ACT89xx_REG(_name, _family, _id, _vsel_reg, _supply) …
static const struct regulator_desc act8945a_regulators[] = …;
static const struct regulator_desc act8945a_alt_regulators[] = …;
static int act8945a_pmic_probe(struct platform_device *pdev)
{ … }
static int __maybe_unused act8945a_suspend(struct device *pdev)
{ … }
static SIMPLE_DEV_PM_OPS(act8945a_pm, act8945a_suspend, NULL);
static void act8945a_pmic_shutdown(struct platform_device *pdev)
{ … }
static struct platform_driver act8945a_pmic_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;