blob: de3704c888a5828d0040b5da7ab5715e5a22f025 [file] [log] [blame]
Paul Fagerburg8af1bcd2020-06-22 20:52:15 -06001chip soc/intel/cannonlake
Paul Fagerburg8af1bcd2020-06-22 20:52:15 -06002
3 # Auto-switch between X4 NVMe and X2 NVMe.
4 register "TetonGlacierMode" = "1"
5
Sam McNallyd0aa9992020-10-11 10:38:07 +11006 register "SataPortsEnable[0]" = "1"
7
Paul Fagerburg8af1bcd2020-06-22 20:52:15 -06008 register "SerialIoDevMode" = "{
9 [PchSerialIoIndexI2C0] = PchSerialIoDisabled,
10 [PchSerialIoIndexI2C1] = PchSerialIoDisabled,
11 [PchSerialIoIndexI2C2] = PchSerialIoPci,
12 [PchSerialIoIndexI2C3] = PchSerialIoPci,
13 [PchSerialIoIndexI2C4] = PchSerialIoPci,
14 [PchSerialIoIndexI2C5] = PchSerialIoPci,
15 [PchSerialIoIndexSPI0] = PchSerialIoPci,
16 [PchSerialIoIndexSPI1] = PchSerialIoPci,
17 [PchSerialIoIndexSPI2] = PchSerialIoDisabled,
18 [PchSerialIoIndexUART0] = PchSerialIoSkipInit,
19 [PchSerialIoIndexUART1] = PchSerialIoDisabled,
20 [PchSerialIoIndexUART2] = PchSerialIoDisabled,
21 }"
22
Matt DeVillier680539c2020-11-19 13:59:08 -060023 # No need for dynamic config (and the additional RAM training time)
24 # on a Chromebox; always use high power/high performance mode
25 register "SaGv" = "SaGv_FixedHigh"
26
Paul Fagerburg8af1bcd2020-06-22 20:52:15 -060027 # USB configuration
28 register "usb2_ports[0]" = "{
29 .enable = 1,
30 .ocpin = OC2,
31 .tx_bias = USB2_BIAS_0MV,
32 .tx_emp_enable = USB2_PRE_EMP_ON,
33 .pre_emp_bias = USB2_BIAS_11P25MV,
34 .pre_emp_bit = USB2_HALF_BIT_PRE_EMP,
35 }" # Type-A Port 2
36 register "usb2_ports[1]" = "{
37 .enable = 1,
38 .ocpin = OC1,
39 .tx_bias = USB2_BIAS_0MV,
40 .tx_emp_enable = USB2_PRE_EMP_ON,
41 .pre_emp_bias = USB2_BIAS_28P15MV,
42 .pre_emp_bit = USB2_HALF_BIT_PRE_EMP,
43 }" # Type-A Port 1
44 register "usb2_ports[2]" = "{
45 .enable = 1,
46 .ocpin = OC3,
47 .tx_bias = USB2_BIAS_0MV,
48 .tx_emp_enable = USB2_PRE_EMP_ON,
49 .pre_emp_bias = USB2_BIAS_28P15MV,
50 .pre_emp_bit = USB2_HALF_BIT_PRE_EMP,
51 }" # Type-A Port 3
52 register "usb2_ports[3]" = "USB2_PORT_TYPE_C(OC_SKIP)" # Type-C Port
53 register "usb2_ports[4]" = "{
54 .enable = 1,
55 .ocpin = OC_SKIP,
56 .tx_bias = USB2_BIAS_0MV,
57 .tx_emp_enable = USB2_PRE_EMP_ON,
58 .pre_emp_bias = USB2_BIAS_28P15MV,
59 .pre_emp_bit = USB2_HALF_BIT_PRE_EMP,
60 }" # Type-A Port 4
61 register "usb2_ports[5]" = "{
62 .enable = 1,
63 .ocpin = OC0,
64 .tx_bias = USB2_BIAS_0MV,
65 .tx_emp_enable = USB2_PRE_EMP_ON,
66 .pre_emp_bias = USB2_BIAS_28P15MV,
67 .pre_emp_bit = USB2_HALF_BIT_PRE_EMP,
68 }" # Type-A port 0
Paul Fagerburg8af1bcd2020-06-22 20:52:15 -060069 register "usb2_ports[9]" = "{
70 .enable = 1,
71 .ocpin = OC_SKIP,
72 .tx_bias = USB2_BIAS_0MV,
73 .tx_emp_enable = USB2_PRE_EMP_ON,
74 .pre_emp_bias = USB2_BIAS_28P15MV,
75 .pre_emp_bit = USB2_HALF_BIT_PRE_EMP,
76 }" # BT
77
78 register "usb3_ports[0]" = "USB3_PORT_DEFAULT(OC2)" # Type-A Port 2
79 register "usb3_ports[1]" = "USB3_PORT_DEFAULT(OC3)" # Type-A Port 3
80 register "usb3_ports[2]" = "USB3_PORT_DEFAULT(OC1)" # Type-A Port 1
81 register "usb3_ports[3]" = "USB3_PORT_DEFAULT(OC_SKIP)" # Type-C
82 register "usb3_ports[4]" = "USB3_PORT_DEFAULT(OC0)" # Type-A Port 0
83 register "usb3_ports[5]" = "USB3_PORT_DEFAULT(OC_SKIP)" # Type-A Port 4
84
Edward O'Callaghan7b2f5032020-07-02 12:50:26 +100085 # Bitmap for Wake Enable on USB attach/detach
Felix Singer21b5a9a2023-10-23 07:26:28 +020086 register "usb2_wake_enable_bitmap" = "USB_PORT_WAKE_ENABLE(1) |
87 USB_PORT_WAKE_ENABLE(2) |
88 USB_PORT_WAKE_ENABLE(3) |
Edward O'Callaghan7b2f5032020-07-02 12:50:26 +100089 USB_PORT_WAKE_ENABLE(6)"
Felix Singer21b5a9a2023-10-23 07:26:28 +020090 register "usb3_wake_enable_bitmap" = "USB_PORT_WAKE_ENABLE(1) |
91 USB_PORT_WAKE_ENABLE(2) |
92 USB_PORT_WAKE_ENABLE(3) |
Edward O'Callaghan7b2f5032020-07-02 12:50:26 +100093 USB_PORT_WAKE_ENABLE(5)"
94
Paul Fagerburg8af1bcd2020-06-22 20:52:15 -060095 # Enable eMMC HS400
96 register "ScsEmmcHs400Enabled" = "1"
97
98 # EMMC Tx CMD Delay
99 # Refer to EDS-Vol2-14.3.7.
100 # [14:8] steps of delay for DDR mode, each 125ps, range: 0 - 39.
101 # [6:0] steps of delay for SDR mode, each 125ps, range: 0 - 39.
102 register "common_soc_config.emmc_dll.emmc_tx_cmd_cntl" = "0x505"
103
104 # EMMC TX DATA Delay 1
105 # Refer to EDS-Vol2-14.3.8.
106 # [14:8] steps of delay for HS400, each 125ps, range: 0 - 78.
107 # [6:0] steps of delay for SDR104/HS200, each 125ps, range: 0 - 79.
108 register "common_soc_config.emmc_dll.emmc_tx_data_cntl1" = "0x911"
109
110 # EMMC TX DATA Delay 2
111 # Refer to EDS-Vol2-14.3.9.
112 # [30:24] steps of delay for SDR50, each 125ps, range: 0 - 79.
113 # [22:16] steps of delay for DDR50, each 125ps, range: 0 - 78.
114 # [14:8] steps of delay for SDR25/HS50, each 125ps, range: 0 -79.
115 # [6:0] steps of delay for SDR12, each 125ps. Range: 0 - 79.
116 register "common_soc_config.emmc_dll.emmc_tx_data_cntl2" = "0x1C262828"
117
118 # EMMC RX CMD/DATA Delay 1
119 # Refer to EDS-Vol2-14.3.10.
120 # [30:24] steps of delay for SDR50, each 125ps, range: 0 - 119.
121 # [22:16] steps of delay for DDR50, each 125ps, range: 0 - 78.
122 # [14:8] steps of delay for SDR25/HS50, each 125ps, range: 0 - 119.
123 # [6:0] steps of delay for SDR12, each 125ps, range: 0 - 119.
124 register "common_soc_config.emmc_dll.emmc_rx_cmd_data_cntl1" = "0x1C16583b"
125
126 # EMMC RX CMD/DATA Delay 2
127 # Refer to EDS-Vol2-14.3.12.
128 # [17:16] stands for Rx Clock before Output Buffer,
129 # 00: Rx clock after output buffer,
130 # 01: Rx clock before output buffer,
131 # 10: Automatic selection based on working mode.
132 # 11: Reserved
133 # [14:8] steps of delay for Auto Tuning Mode, each 125ps, range: 0 - 39.
134 # [6:0] steps of delay for HS200, each 125ps, range: 0 - 79.
135 register "common_soc_config.emmc_dll.emmc_rx_cmd_data_cntl2" = "0x1001D"
136
137 # EMMC Rx Strobe Delay
138 # Refer to EDS-Vol2-14.3.11.
139 # [14:8] Rx Strobe Delay DLL 1(HS400 Mode), each 125ps, range: 0 - 39.
140 # [6:0] Rx Strobe Delay DLL 2(HS400 Mode), each 125ps, range: 0 - 39.
141 register "common_soc_config.emmc_dll.emmc_rx_strobe_cntl" = "0x1515"
142
143 # Intel HDA - disable I2S Audio SSP1 and DMIC0 as puff variant does not have them.
144 register "PchHdaAudioLinkSsp1" = "0"
145 register "PchHdaAudioLinkDmic0" = "0"
146
147 # Intel Common SoC Config
148 #+-------------------+---------------------------+
149 #| Field | Value |
150 #+-------------------+---------------------------+
151 #| GSPI0 | cr50 TPM. Early init is |
152 #| | required to set up a BAR |
153 #| | for TPM communication |
154 #| | before memory is up |
155 #| I2C0 | RFU |
156 #| I2C2 | PS175 |
157 #| I2C3 | MST |
158 #| I2C4 | Audio |
159 #+-------------------+---------------------------+
160 register "common_soc_config" = "{
161 .gspi[0] = {
162 .speed_mhz = 1,
163 .early_init = 1,
164 },
165 .i2c[0] = {
166 .speed = I2C_SPEED_FAST,
167 .rise_time_ns = 0,
168 .fall_time_ns = 0,
169 },
170 .i2c[2] = {
171 .speed = I2C_SPEED_FAST,
172 .rise_time_ns = 60,
173 .fall_time_ns = 60,
174 },
175 .i2c[3] = {
176 .speed = I2C_SPEED_FAST,
177 .rise_time_ns = 60,
178 .fall_time_ns = 60,
179 },
180 .i2c[4] = {
181 .speed = I2C_SPEED_FAST,
182 .rise_time_ns = 60,
183 .fall_time_ns = 60,
184 },
185 }"
186
187 # PCIe port 7 for LAN
188 register "PcieRpEnable[6]" = "1"
189 register "PcieRpLtrEnable[6]" = "1"
190 # PCIe port 11 (x2) for NVMe hybrid storage devices
191 register "PcieRpEnable[10]" = "1"
192 register "PcieRpLtrEnable[10]" = "1"
193 # Uses CLK SRC 0
194 register "PcieClkSrcUsage[0]" = "6"
195 register "PcieClkSrcClkReq[0]" = "0"
196
197 # GPIO for SD card detect
198 register "sdcard_cd_gpio" = "vSD3_CD_B"
199
200 # SATA port 1 Gen3 Strength
201 # Port1 Tx De-Emphasis = 20*log(0x20/64) = -6dB
202 register "sata_port[1].TxGen3DeEmphEnable" = "1"
203 register "sata_port[1].TxGen3DeEmph" = "0x20"
204
205 device domain 0 on
Edward O'Callaghanb7a68d52020-08-28 20:14:50 +1000206 device pci 04.0 on
207 chip drivers/intel/dptf
208 ## Active Policy
209 register "policies.active[0]" = "{.target=DPTF_CPU,
210 .thresholds={TEMP_PCT(90, 85),
211 TEMP_PCT(85, 75),
212 TEMP_PCT(80, 65),
213 TEMP_PCT(75, 55),
214 TEMP_PCT(70, 45),}}"
215 register "policies.active[1]" = "{.target=DPTF_TEMP_SENSOR_0,
216 .thresholds={TEMP_PCT(50, 85),
217 TEMP_PCT(47, 75),
218 TEMP_PCT(45, 65),
219 TEMP_PCT(42, 55),
220 TEMP_PCT(39, 45),}}"
221
222 ## Passive Policy
223 register "policies.passive[0]" = "DPTF_PASSIVE(CPU, CPU, 93, 5000)"
224 register "policies.passive[1]" = "DPTF_PASSIVE(CPU, TEMP_SENSOR_0, 65, 6000)"
225
226 ## Critical Policy
227 register "policies.critical[0]" = "DPTF_CRITICAL(CPU, 100, SHUTDOWN)"
228 register "policies.critical[1]" = "DPTF_CRITICAL(TEMP_SENSOR_0, 75, SHUTDOWN)"
229
230 ## Power Limits Control
231 # PL1 is fixed at 15W, avg over 28-32s interval
232 # 25-64W PL2 in 1000mW increments, avg over 28-32s interval
233 register "controls.power_limits.pl1" = "{
234 .min_power = 15000,
235 .max_power = 15000,
236 .time_window_min = 28 * MSECS_PER_SEC,
237 .time_window_max = 32 * MSECS_PER_SEC,
238 .granularity = 200,}"
239 register "controls.power_limits.pl2" = "{
240 .min_power = 25000,
241 .max_power = 64000,
242 .time_window_min = 28 * MSECS_PER_SEC,
243 .time_window_max = 32 * MSECS_PER_SEC,
244 .granularity = 1000,}"
245
246 ## Charger Performance Control (Control, mA)
247 register "controls.charger_perf[0]" = "{ 255, 1700 }"
248 register "controls.charger_perf[1]" = "{ 24, 1500 }"
249 register "controls.charger_perf[2]" = "{ 16, 1000 }"
250 register "controls.charger_perf[3]" = "{ 8, 500 }"
251
252 ## Fan Performance Control (Percent, Speed, Noise, Power)
253 register "controls.fan_perf[0]" = "{ 90, 6700, 220, 2200, }"
254 register "controls.fan_perf[1]" = "{ 80, 5800, 180, 1800, }"
255 register "controls.fan_perf[2]" = "{ 70, 5000, 145, 1450, }"
256 register "controls.fan_perf[3]" = "{ 60, 4900, 115, 1150, }"
257 register "controls.fan_perf[4]" = "{ 50, 3838, 90, 900, }"
258 register "controls.fan_perf[5]" = "{ 40, 2904, 55, 550, }"
259 register "controls.fan_perf[6]" = "{ 30, 2337, 30, 300, }"
260 register "controls.fan_perf[7]" = "{ 20, 1608, 15, 150, }"
261 register "controls.fan_perf[8]" = "{ 10, 800, 10, 100, }"
262 register "controls.fan_perf[9]" = "{ 0, 0, 0, 50, }"
263
264 # Fan options
265 register "options.fan.fine_grained_control" = "1"
266 register "options.fan.step_size" = "2"
267
268 device generic 0 on end
269 end
270 end # DPTF 0x1903
Paul Fagerburg8af1bcd2020-06-22 20:52:15 -0600271 device pci 14.0 on
272 chip drivers/usb/acpi
273 device usb 0.0 on
274 chip drivers/usb/acpi
275 register "desc" = ""USB2 Type-A Front Left""
276 register "type" = "UPC_TYPE_A"
277 register "group" = "ACPI_PLD_GROUP(0, 0)"
278 device usb 2.0 on end
279 end
280 chip drivers/usb/acpi
281 register "desc" = ""USB2 Type-C Port Rear""
282 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
283 register "group" = "ACPI_PLD_GROUP(1, 3)"
284 device usb 2.1 on end
285 end
286 chip drivers/usb/acpi
287 register "desc" = ""USB2 Type-A Front Right""
288 register "type" = "UPC_TYPE_A"
289 register "group" = "ACPI_PLD_GROUP(0, 1)"
290 device usb 2.2 on end
291 end
292 chip drivers/usb/acpi
293 register "desc" = ""USB2 Type-A Rear Right""
294 register "type" = "UPC_TYPE_A"
295 register "group" = "ACPI_PLD_GROUP(1, 2)"
296 device usb 2.3 on end
297 end
298 chip drivers/usb/acpi
299 register "desc" = ""USB2 Type-A Rear Middle""
300 register "type" = "UPC_TYPE_A"
301 register "group" = "ACPI_PLD_GROUP(1, 1)"
302 device usb 2.4 on end
303 end
304 chip drivers/usb/acpi
305 register "desc" = ""USB2 Type-A Rear Left""
306 register "type" = "UPC_TYPE_A"
307 register "group" = "ACPI_PLD_GROUP(1, 0)"
308 device usb 2.5 on end
309 end
310 chip drivers/usb/acpi
311 device usb 2.6 off end
312 end
313 chip drivers/usb/acpi
314 register "desc" = ""USB3 Type-A Front Left""
315 register "type" = "UPC_TYPE_USB3_A"
316 register "group" = "ACPI_PLD_GROUP(0, 0)"
317 device usb 3.0 on end
318 end
319 chip drivers/usb/acpi
320 register "desc" = ""USB3 Type-A Front Right""
321 register "type" = "UPC_TYPE_USB3_A"
322 register "group" = "ACPI_PLD_GROUP(0, 1)"
323 device usb 3.1 on end
324 end
325 chip drivers/usb/acpi
326 register "desc" = ""USB3 Type-A Rear Right""
327 register "type" = "UPC_TYPE_USB3_A"
328 register "group" = "ACPI_PLD_GROUP(1, 2)"
329 device usb 3.2 on end
330 end
331 chip drivers/usb/acpi
332 register "desc" = ""USB3 Type-C Rear""
333 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
334 register "group" = "ACPI_PLD_GROUP(1, 3)"
335 device usb 3.3 on end
336 end
337 chip drivers/usb/acpi
338 register "desc" = ""USB3 Type-A Rear Left""
339 register "type" = "UPC_TYPE_USB3_A"
340 register "group" = "ACPI_PLD_GROUP(1, 0)"
341 device usb 3.4 on end
342 end
343 chip drivers/usb/acpi
344 register "desc" = ""USB3 Type-A Rear Middle""
345 register "type" = "UPC_TYPE_USB3_A"
346 register "group" = "ACPI_PLD_GROUP(1, 1)"
347 device usb 3.5 on end
348 end
349 end
350 end
351 end # USB xHCI
352 device pci 15.0 off
353 # RFU - Reserved for Future Use.
354 end # I2C #0
355 device pci 15.1 off end # I2C #1
356 device pci 15.2 on
357 chip drivers/i2c/generic
358 register "hid" = ""1AF80175""
359 register "name" = ""PS17""
360 register "desc" = ""Parade PS175""
361 device i2c 4a on end
362 end
363 end # I2C #2, PCON PS175.
364 device pci 15.3 on
365 chip drivers/i2c/generic
366 register "hid" = ""10EC2142""
367 register "name" = ""RTD2""
368 register "desc" = ""Realtek RTD2142""
369 device i2c 4a on end
370 end
371 end # I2C #3, Realtek RTD2142.
Felix Singer3de90d12020-08-04 16:47:10 +0200372 device pci 16.0 on end # Management Engine Interface 1
Paul Fagerburg8af1bcd2020-06-22 20:52:15 -0600373 device pci 19.0 on
374 chip drivers/i2c/generic
375 register "hid" = ""10EC5682""
376 register "name" = ""RT58""
377 register "desc" = ""Realtek RT5682""
378 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_BOTH(GPP_H0)"
379 register "property_count" = "1"
380 # Set the jd_src to RT5668_JD1 for jack detection
381 register "property_list[0].type" = "ACPI_DP_TYPE_INTEGER"
382 register "property_list[0].name" = ""realtek,jd-src""
383 register "property_list[0].integer" = "1"
384 device i2c 1a on end
385 end
386 end #I2C #4
387 device pci 1a.0 on end # eMMC
388 device pci 1c.6 on
389 chip drivers/net
390 register "customized_leds" = "0x05af"
391 register "wake" = "GPE0_DW1_07" # GPP_C7
Paul Fagerburg8af1bcd2020-06-22 20:52:15 -0600392 register "device_index" = "0"
Alexis Savery8ba64cd2023-08-30 20:11:34 +0000393 register "enable_aspm_l1_2" = "1"
Matt DeVillier6c705e72023-11-01 15:52:03 -0500394 device generic 0 on end
Paul Fagerburg8af1bcd2020-06-22 20:52:15 -0600395 end
Nico Huber119ace02019-10-02 16:02:06 +0200396 register "PcieRpSlotImplemented[6]" = "1"
Paul Fagerburg8af1bcd2020-06-22 20:52:15 -0600397 end # RTL8111H Ethernet NIC
Nico Huber119ace02019-10-02 16:02:06 +0200398 device pci 1d.2 on # PCI Express Port 11 (X2 NVMe)
399 register "PcieRpSlotImplemented[10]" = "1"
400 end
Paul Fagerburg8af1bcd2020-06-22 20:52:15 -0600401 device pci 1e.3 off end # GSPI #1
402 end
403
404 # VR Settings Configuration for 4 Domains
405 #+----------------+-------+-------+-------+-------+
406 #| Domain/Setting | SA | IA | GTUS | GTS |
407 #+----------------+-------+-------+-------+-------+
408 #| Psi1Threshold | 20A | 20A | 20A | 20A |
409 #| Psi2Threshold | 5A | 5A | 5A | 5A |
410 #| Psi3Threshold | 1A | 1A | 1A | 1A |
411 #| Psi3Enable | 1 | 1 | 1 | 1 |
412 #| Psi4Enable | 1 | 1 | 1 | 1 |
413 #| ImonSlope | 0 | 0 | 0 | 0 |
414 #| ImonOffset | 0 | 0 | 0 | 0 |
415 #| VrVoltageLimit | 1.52V | 1.52V | 1.52V | 1.52V |
416 #| AcLoadline | 10.04 | 1.81 | 3.19 | 3.19 |
417 #| DcLoadline | 10.04 | 1.81 | 3.19 | 3.19 |
418 #+----------------+-------+-------+-------+-------+
419 #Note: IccMax settings are moved to SoC code
420 register "domain_vr_config[VR_SYSTEM_AGENT]" = "{
421 .vr_config_enable = 1,
422 .psi1threshold = VR_CFG_AMP(20),
423 .psi2threshold = VR_CFG_AMP(5),
424 .psi3threshold = VR_CFG_AMP(1),
425 .psi3enable = 1,
426 .psi4enable = 1,
427 .imon_slope = 0x0,
428 .imon_offset = 0x0,
429 .icc_max = 0,
430 .voltage_limit = 1520,
431 .ac_loadline = 1004,
432 .dc_loadline = 1004,
433 }"
434
435 register "domain_vr_config[VR_IA_CORE]" = "{
436 .vr_config_enable = 1,
437 .psi1threshold = VR_CFG_AMP(20),
438 .psi2threshold = VR_CFG_AMP(5),
439 .psi3threshold = VR_CFG_AMP(1),
440 .psi3enable = 1,
441 .psi4enable = 1,
442 .imon_slope = 0x0,
443 .imon_offset = 0x0,
444 .icc_max = 0,
445 .voltage_limit = 1520,
446 .ac_loadline = 181,
447 .dc_loadline = 181,
448 }"
449
450 register "domain_vr_config[VR_GT_UNSLICED]" = "{
451 .vr_config_enable = 1,
452 .psi1threshold = VR_CFG_AMP(20),
453 .psi2threshold = VR_CFG_AMP(5),
454 .psi3threshold = VR_CFG_AMP(1),
455 .psi3enable = 1,
456 .psi4enable = 1,
457 .imon_slope = 0x0,
458 .imon_offset = 0x0,
459 .icc_max = 0,
460 .voltage_limit = 1520,
461 .ac_loadline = 319,
462 .dc_loadline = 319,
463 }"
464
465 register "domain_vr_config[VR_GT_SLICED]" = "{
466 .vr_config_enable = 1,
467 .psi1threshold = VR_CFG_AMP(20),
468 .psi2threshold = VR_CFG_AMP(5),
469 .psi3threshold = VR_CFG_AMP(1),
470 .psi3enable = 1,
471 .psi4enable = 1,
472 .imon_slope = 0x0,
473 .imon_offset = 0x0,
474 .icc_max = 0,
475 .voltage_limit = 1520,
476 .ac_loadline = 319,
477 .dc_loadline = 319,
478 }"
479
480end