#define pr_fmt(fmt) …
#include <linux/linear_range.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/regulator/driver.h>
#include <linux/regulator/machine.h>
#include <linux/regulator/of_regulator.h>
#include <linux/scmi_protocol.h>
#include <linux/slab.h>
#include <linux/types.h>
static const struct scmi_voltage_proto_ops *voltage_ops;
struct scmi_regulator { … };
struct scmi_regulator_info { … };
static int scmi_reg_enable(struct regulator_dev *rdev)
{ … }
static int scmi_reg_disable(struct regulator_dev *rdev)
{ … }
static int scmi_reg_is_enabled(struct regulator_dev *rdev)
{ … }
static int scmi_reg_get_voltage_sel(struct regulator_dev *rdev)
{ … }
static int scmi_reg_set_voltage_sel(struct regulator_dev *rdev,
unsigned int selector)
{ … }
static const struct regulator_ops scmi_reg_fixed_ops = …;
static const struct regulator_ops scmi_reg_linear_ops = …;
static const struct regulator_ops scmi_reg_discrete_ops = …;
static int
scmi_config_linear_regulator_mappings(struct scmi_regulator *sreg,
const struct scmi_voltage_info *vinfo)
{ … }
static int
scmi_config_discrete_regulator_mappings(struct scmi_regulator *sreg,
const struct scmi_voltage_info *vinfo)
{ … }
static int scmi_regulator_common_init(struct scmi_regulator *sreg)
{ … }
static int process_scmi_regulator_of_node(struct scmi_device *sdev,
struct scmi_protocol_handle *ph,
struct device_node *np,
struct scmi_regulator_info *rinfo)
{ … }
static int scmi_regulator_probe(struct scmi_device *sdev)
{ … }
static void scmi_regulator_remove(struct scmi_device *sdev)
{ … }
static const struct scmi_device_id scmi_regulator_id_table[] = …;
MODULE_DEVICE_TABLE(scmi, scmi_regulator_id_table);
static struct scmi_driver scmi_drv = …;
module_scmi_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;