+
+#include +
+static struct regulator *vddarm;
+
+static unsigned long regulator_latency;
+static unsigned long emxx_cpufreq;
+struct emxx_dvfs {
+ unsigned int vddarm_min;
+ unsigned int vddarm_max;
+};
+
+static struct emxx_dvfs emxx_dvfs_table[] = {
+ [0] = { 1000000, 1150000 },
+ [1] = { 1050000, 1150000 },
+ [2] = { 1100000, 1150000 },
+ [3] = { 1200000, 1350000 },
+};
+
+static struct cpufreq_frequency_table emxx_freq_table[] = {
+ { 0, 1062000 },
+ { 0, 1062000 },
+ { 1, 1062000 },
+ { 1, 1062000 },
+ { 2, 1062000 },
+ { 2, 1062000 },
+ { 2, 1062000 },
+ { 2, 1062000 },
+ { 3, 1062000 },
+ { 0, CPUFREQ_TABLE_END },
+};
+
+static int emxx_cpufreq_verify_speed(struct cpufreq_policy *policy)
+{
+ return cpufreq_frequency_table_verify(policy, emxx_freq_table);
+}
+
+static unsigned int emxx_cpufreq_get_speed(unsigned int cpu)
+{
+ return emxx_cpufreq;
+}
+
+static int emxx_cpufreq_set_target(struct cpufreq_policy *policy,
+ unsigned int target_freq,
+ unsigned int rel