blob: 02f2f1ce7f5a48cc5247a847be81fa396c98f44c [file] [log] [blame]
Angel Ponsf23ae0b2020-04-02 23:48:12 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Aaron Durbin76c37002012-10-30 09:03:43 -05002
Jan Samekedda0f92023-04-27 10:39:27 +02003#ifndef __CPU_INTEL_HASWELL_CHIP_H__
4#define __CPU_INTEL_HASWELL_CHIP_H__
5
Angel Pons242fd282020-10-28 23:48:56 +01006#include <stdbool.h>
7#include <stdint.h>
8
9struct cpu_vr_config {
10 /*
11 * Minimum voltage for C6/C7 state:
12 * 0x67 = 1.6V (full swing)
13 * ...
14 * 0x79 = 1.7V
15 * ...
16 * 0x83 = 1.8V (no swing)
17 */
18 uint8_t cpu_min_vid;
19
20 /*
21 * Set slow VR ramp rate on C-state exit:
22 * 0 = Fast VR ramp rate / 2
23 * 1 = Fast VR ramp rate / 4
24 * 2 = Fast VR ramp rate / 8
25 * 3 = Fast VR ramp rate / 16
26 */
27 uint8_t slow_ramp_rate_set;
28
29 /* Enable slow VR ramp rate */
30 bool slow_ramp_rate_enable;
31};
32
Aaron Durbin76c37002012-10-30 09:03:43 -050033struct cpu_intel_haswell_config {
Aaron Durbin76c37002012-10-30 09:03:43 -050034 int tcc_offset; /* TCC Activation Offset */
Angel Pons242fd282020-10-28 23:48:56 +010035
36 struct cpu_vr_config vr_config;
Angel Pons8e6f1622020-10-29 00:18:11 +010037
38 /* Enable S0iX support */
39 bool s0ix_enable;
Aaron Durbin76c37002012-10-30 09:03:43 -050040};
Jan Samekedda0f92023-04-27 10:39:27 +020041
42#endif /* __CPU_INTEL_HASWELL_CHIP_H__ */