#include <linux/cpu.h>
#include <linux/io.h>
#include <linux/mfd/syscon.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/pm_opp.h>
#include <linux/regmap.h>
#define VERSION_ELEMENTS …
#define MAX_PCODE_NAME_LEN …
#define VERSION_SHIFT …
#define HW_INFO_INDEX …
#define MAJOR_ID_INDEX …
#define MINOR_ID_INDEX …
#define DEFAULT_VERSION …
enum { … };
static struct sti_cpufreq_ddata { … } ddata;
static int sti_cpufreq_fetch_major(void) { … }
static int sti_cpufreq_fetch_minor(void)
{ … }
static int sti_cpufreq_fetch_regmap_field(const struct reg_field *reg_fields,
int hw_info_offset, int field)
{ … }
static const struct reg_field sti_stih407_dvfs_regfields[DVFS_MAX_REGFIELDS] = …;
static const struct reg_field *sti_cpufreq_match(void)
{ … }
static int sti_cpufreq_set_opp_info(void)
{ … }
static int sti_cpufreq_fetch_syscon_registers(void)
{ … }
static int __init sti_cpufreq_init(void)
{ … }
module_init(…) …;
static const struct of_device_id __maybe_unused sti_cpufreq_of_match[] = …;
MODULE_DEVICE_TABLE(of, sti_cpufreq_of_match);
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;