#define SAMPLE_COUNT           3
 
+#define BYT_RATIOS     0x66a
+
 #define FRAC_BITS 8
 #define int_tofp(X) ((int64_t)(X) << FRAC_BITS)
 #define fp_toint(X) ((X) >> FRAC_BITS)
 }
 
 /************************** sysfs end ************************/
+static int byt_get_min_pstate(void)
+{
+       u64 value;
+       rdmsrl(BYT_RATIOS, value);
+       return value & 0xFF;
+}
+
+static int byt_get_max_pstate(void)
+{
+       u64 value;
+       rdmsrl(BYT_RATIOS, value);
+       return (value >> 16) & 0xFF;
+}
+
 static int core_get_min_pstate(void)
 {
        u64 value;
        },
 };
 
+static struct cpu_defaults byt_params = {
+       .pid_policy = {
+               .sample_rate_ms = 10,
+               .deadband = 0,
+               .setpoint = 97,
+               .p_gain_pct = 14,
+               .d_gain_pct = 0,
+               .i_gain_pct = 4,
+       },
+       .funcs = {
+               .get_max = byt_get_max_pstate,
+               .get_min = byt_get_min_pstate,
+               .get_turbo = byt_get_max_pstate,
+               .set = core_set_pstate,
+       },
+};
+
+
 static void intel_pstate_get_min_max(struct cpudata *cpu, int *min, int *max)
 {
        int max_perf = cpu->pstate.turbo_pstate;
 static const struct x86_cpu_id intel_pstate_cpu_ids[] = {
        ICPU(0x2a, core_params),
        ICPU(0x2d, core_params),
+       ICPU(0x37, byt_params),
        ICPU(0x3a, core_params),
        ICPU(0x3c, core_params),
        ICPU(0x3e, core_params),