#include <linux/clk.h>
#include <linux/cpu.h>
#include <linux/cpufreq.h>
#include <linux/err.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/nvmem-consumer.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/pm_opp.h>
#include <linux/regulator/consumer.h>
#include <linux/slab.h>
#include "cpufreq-dt.h"
#define OCOTP_CFG3_SPEED_GRADE_SHIFT …
#define OCOTP_CFG3_SPEED_GRADE_MASK …
#define IMX8MN_OCOTP_CFG3_SPEED_GRADE_MASK …
#define OCOTP_CFG3_MKT_SEGMENT_SHIFT …
#define OCOTP_CFG3_MKT_SEGMENT_MASK …
#define IMX8MP_OCOTP_CFG3_MKT_SEGMENT_SHIFT …
#define IMX8MP_OCOTP_CFG3_MKT_SEGMENT_MASK …
#define IMX7ULP_MAX_RUN_FREQ …
static struct platform_device *cpufreq_dt_pdev;
static struct device *cpu_dev;
static int cpufreq_opp_token;
enum IMX7ULP_CPUFREQ_CLKS { … };
static struct clk_bulk_data imx7ulp_clks[] = …;
static unsigned int imx7ulp_get_intermediate(struct cpufreq_policy *policy,
unsigned int index)
{ … }
static int imx7ulp_target_intermediate(struct cpufreq_policy *policy,
unsigned int index)
{ … }
static struct cpufreq_dt_platform_data imx7ulp_data = …;
static int imx_cpufreq_dt_probe(struct platform_device *pdev)
{ … }
static void imx_cpufreq_dt_remove(struct platform_device *pdev)
{ … }
static struct platform_driver imx_cpufreq_dt_driver = …;
module_platform_driver(…) …;
MODULE_ALIAS(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;