#include <linux/acpi.h>
#include <linux/init.h>
#include <linux/mfd/tps68470.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
struct tps68470_pmic_table { … };
#define TI_PMIC_POWER_OPREGION_ID …
#define TI_PMIC_VR_VAL_OPREGION_ID …
#define TI_PMIC_CLOCK_OPREGION_ID …
#define TI_PMIC_CLKFREQ_OPREGION_ID …
struct tps68470_pmic_opregion { … };
#define S_IO_I2C_EN …
static const struct tps68470_pmic_table power_table[] = …;
static const struct tps68470_pmic_table vr_val_table[] = …;
static const struct tps68470_pmic_table clk_freq_table[] = …;
static const struct tps68470_pmic_table clk_table[] = …;
static int pmic_get_reg_bit(u64 address,
const struct tps68470_pmic_table *table,
const unsigned int table_size, int *reg,
int *bitmask)
{ … }
static int tps68470_pmic_get_power(struct regmap *regmap, int reg,
int bitmask, u64 *value)
{ … }
static int tps68470_pmic_get_vr_val(struct regmap *regmap, int reg,
int bitmask, u64 *value)
{ … }
static int tps68470_pmic_get_clk(struct regmap *regmap, int reg,
int bitmask, u64 *value)
{ … }
static int tps68470_pmic_get_clk_freq(struct regmap *regmap, int reg,
int bitmask, u64 *value)
{ … }
static int ti_tps68470_regmap_update_bits(struct regmap *regmap, int reg,
int bitmask, u64 value)
{ … }
static acpi_status tps68470_pmic_common_handler(u32 function,
acpi_physical_address address,
u32 bits, u64 *value,
void *region_context,
int (*get)(struct regmap *,
int, int, u64 *),
int (*update)(struct regmap *,
int, int, u64),
const struct tps68470_pmic_table *tbl,
unsigned int tbl_size)
{ … }
static acpi_status tps68470_pmic_cfreq_handler(u32 function,
acpi_physical_address address,
u32 bits, u64 *value,
void *handler_context,
void *region_context)
{ … }
static acpi_status tps68470_pmic_clk_handler(u32 function,
acpi_physical_address address, u32 bits,
u64 *value, void *handler_context,
void *region_context)
{ … }
static acpi_status tps68470_pmic_vrval_handler(u32 function,
acpi_physical_address address,
u32 bits, u64 *value,
void *handler_context,
void *region_context)
{ … }
static acpi_status tps68470_pmic_pwr_handler(u32 function,
acpi_physical_address address,
u32 bits, u64 *value,
void *handler_context,
void *region_context)
{ … }
static int tps68470_pmic_opregion_probe(struct platform_device *pdev)
{ … }
static struct platform_driver tps68470_pmic_opregion_driver = …;
builtin_platform_driver(…) …