blob: 63bff0e066225d4da72f46e6d28b1b0504e5698c [file] [log] [blame]
Amanda Huang7ba0cc02024-05-31 02:27:41 +08001fw_config
2 field THERMAL_SOLUTION 0 0
3 option THERMAL_SOLUTION_6W 0
4 option THERMAL_SOLUTION_15W 1
5 end
6end
7
EricKY Cheng7728ed32024-05-09 16:44:23 +08008chip soc/intel/alderlake
Amanda Huang7ba0cc02024-05-31 02:27:41 +08009 register "sagv" = "SaGv_Enabled"
EricKY Cheng7728ed32024-05-09 16:44:23 +080010
Amanda Huang7ba0cc02024-05-31 02:27:41 +080011 # GPE configuration
12 register "pmc_gpe0_dw1" = "GPP_B"
EricKY Cheng7728ed32024-05-09 16:44:23 +080013
Amanda Huang7ba0cc02024-05-31 02:27:41 +080014 # S0ix enable
15 register "s0ix_enable" = "1"
16
17 # DPTF enable
18 register "dptf_enable" = "1"
19
20 register "tcc_offset" = "10" # TCC of 90
21
22 # Enable CNVi BT
23 register "cnvi_bt_core" = "true"
24
25 # eMMC HS400
26 register "emmc_enable_hs400_mode" = "1"
27
28 #eMMC DLL tuning parameters
29 # EMMC Tx CMD Delay
30 # Refer to EDS-Vol2-42.3.7.
31 # [14:8] steps of delay for DDR mode, each 125ps, range: 0 - 39.
32 # [6:0] steps of delay for SDR mode, each 125ps, range: 0 - 39.
33 register "common_soc_config.emmc_dll.emmc_tx_cmd_cntl" = "0x505"
34
35 # EMMC TX DATA Delay 1
36 # Refer to EDS-Vol2-42.3.8.
37 # [14:8] steps of delay for HS400, each 125ps, range: 0 - 78.
38 # [6:0] steps of delay for SDR104/HS200, each 125ps, range: 0 - 79.
39 register "common_soc_config.emmc_dll.emmc_tx_data_cntl1" = "0x909"
40
41 # EMMC TX DATA Delay 2
42 # Refer to EDS-Vol2-42.3.9.
43 # [30:24] steps of delay for SDR50, each 125ps, range: 0 - 79.
44 # [22:16] steps of delay for DDR50, each 125ps, range: 0 - 78.
45 # [14:8] steps of delay for SDR25/HS50, each 125ps, range: 0 -79.
46 # [6:0] steps of delay for SDR12, each 125ps. Range: 0 - 79.
47 register "common_soc_config.emmc_dll.emmc_tx_data_cntl2" = "0x1C2A2828"
48
49 # EMMC RX CMD/DATA Delay 1
50 # Refer to EDS-Vol2-42.3.10.
51 # [30:24] steps of delay for SDR50, each 125ps, range: 0 - 119.
52 # [22:16] steps of delay for DDR50, each 125ps, range: 0 - 78.
53 # [14:8] steps of delay for SDR25/HS50, each 125ps, range: 0 - 119.
54 # [6:0] steps of delay for SDR12, each 125ps, range: 0 - 119.
55 register "common_soc_config.emmc_dll.emmc_rx_cmd_data_cntl1" = "0x1C1B4F1B"
56
57 # EMMC RX CMD/DATA Delay 2
58 # Refer to EDS-Vol2-42.3.12.
59 # [17:16] stands for Rx Clock before Output Buffer,
60 # 00: Rx clock after output buffer,
61 # 01: Rx clock before output buffer,
62 # 10: Automatic selection based on working mode.
63 # 11: Reserved
64 # [14:8] steps of delay for Auto Tuning Mode, each 125ps, range: 0 - 39.
65 # [6:0] steps of delay for HS200, each 125ps, range: 0 - 79.
66 register "common_soc_config.emmc_dll.emmc_rx_cmd_data_cntl2" = "0x1004E"
67
68 # EMMC Rx Strobe Delay
69 # Refer to EDS-Vol2-42.3.11.
70 # [14:8] Rx Strobe Delay DLL 1(HS400 Mode), each 125ps, range: 0 - 39.
71 # [6:0] Rx Strobe Delay DLL 2(HS400 Mode), each 125ps, range: 0 - 39.
72 register "common_soc_config.emmc_dll.emmc_rx_strobe_cntl" = "0x01515"
73
74 register "usb2_ports[0]" = "USB2_PORT_MID(OC_SKIP)" # USB2_A0
75 register "usb2_ports[1]" = "USB2_PORT_MID(OC_SKIP)" # USB2_A1
76 register "usb2_ports[2]" = "USB2_PORT_MID(OC_SKIP)" # M.2 Camera
77 register "usb2_ports[3]" = "USB2_PORT_EMPTY" # Disable USB2 Port 4
78 register "usb2_ports[4]" = "USB2_PORT_TYPE_C(OC_SKIP)" # USB2_C0
79 register "usb2_ports[5]" = "USB2_PORT_MID(OC_SKIP)" # Bluetooth port for CNVi WLAN
80 register "usb2_ports[6]" = "USB2_PORT_EMPTY" # Disable USB2 Port 7
81 register "usb2_ports[7]" = "USB2_PORT_EMPTY" # Disable USB2 Port 8
82 register "usb2_ports[9]" = "USB2_PORT_MID(OC_SKIP)" # Bluetooth port for CNVi WLAN
83
84 register "usb3_ports[0]" = "USB3_PORT_DEFAULT(OC_SKIP)" # USB3/2 Type A port A0
85 register "usb3_ports[1]" = "USB3_PORT_DEFAULT(OC_SKIP)" # USB3/2 Type A port A1
86
87 register "tcss_ports[0]" = "TCSS_PORT_DEFAULT(OC_SKIP)"
88
89 # Bit 0 - C0 has no redriver, so enable SBU muxing in the SoC.
90 # Bit 2 - C1 has a redriver which does SBU muxing.
91 # Bit 1,3 - AUX lines are not swapped on the motherboard for either C0 or C1.
92 register "tcss_aux_ori" = "0"
93
94 # Configure external V1P05/Vnn/VnnSx Rails
95 register "ext_fivr_settings" = "{
96 .configure_ext_fivr = 1,
97 .v1p05_enable_bitmap = FIVR_ENABLE_ALL_SX & ~FIVR_ENABLE_S0,
98 .vnn_enable_bitmap = FIVR_ENABLE_ALL_SX,
99 .vnn_sx_enable_bitmap = FIVR_ENABLE_ALL_SX,
100 .v1p05_supported_voltage_bitmap = FIVR_VOLTAGE_NORMAL,
101 .vnn_supported_voltage_bitmap = FIVR_VOLTAGE_MIN_ACTIVE,
102 .v1p05_voltage_mv = 1050,
103 .vnn_voltage_mv = 780,
104 .vnn_sx_voltage_mv = 1050,
105 .v1p05_icc_max_ma = 500,
106 .vnn_icc_max_ma = 500,
107 }"
108
109
110 register "serial_io_i2c_mode" = "{
111 [PchSerialIoIndexI2C0] = PchSerialIoPci,
112 [PchSerialIoIndexI2C1] = PchSerialIoPci,
113 [PchSerialIoIndexI2C2] = PchSerialIoDisabled,
114 [PchSerialIoIndexI2C3] = PchSerialIoDisabled,
115 [PchSerialIoIndexI2C4] = PchSerialIoDisabled,
116 [PchSerialIoIndexI2C5] = PchSerialIoPci,
117 }"
118
119 register "serial_io_gspi_mode" = "{
120 [PchSerialIoIndexGSPI0] = PchSerialIoDisabled,
121 [PchSerialIoIndexGSPI1] = PchSerialIoDisabled,
122 }"
123
124 register "serial_io_uart_mode" = "{
125 [PchSerialIoIndexUART0] = PchSerialIoPci,
126 [PchSerialIoIndexUART1] = PchSerialIoDisabled,
127 [PchSerialIoIndexUART2] = PchSerialIoDisabled,
128 }"
129
130 # FIXME: To be enabled in future based on PNP impact data.
131 # Disable Package C-state demotion for nissa baseboard.
132 register "disable_package_c_state_demotion" = "1"
133
134 # Intel Common SoC Config
135 #+-------------------+---------------------------+
136 #| Field | Value |
137 #+-------------------+---------------------------+
138 #| I2C0 | TPM. Early init is |
139 #| | required to set up a BAR |
140 #| | for TPM communication |
141 #| I2C1 | Trackpad |
142 #| I2C5 | Touchscreen |
143 #+-------------------+---------------------------+
144 register "common_soc_config" = "{
145 .i2c[0] = {
146 .early_init = 1,
147 .speed = I2C_SPEED_FAST_PLUS,
148 .speed_config[0] = {
149 .speed = I2C_SPEED_FAST_PLUS,
150 .scl_lcnt = 55,
151 .scl_hcnt = 30,
152 .sda_hold = 7,
153 }
154 },
155 .i2c[1] = {
156 .speed = I2C_SPEED_FAST,
157 .speed_config[0] = {
158 .speed = I2C_SPEED_FAST,
159 .scl_lcnt = 158,
160 .scl_hcnt = 79,
161 .sda_hold = 7,
162 }
163 },
164 .i2c[5] = {
165 .speed = I2C_SPEED_FAST,
166 .speed_config[0] = {
167 .speed = I2C_SPEED_FAST,
168 .scl_lcnt = 158,
169 .scl_hcnt = 79,
170 .sda_hold = 7,
171 }
172 },
173 }"
174
175 register "power_limits_config[ADL_N_041_6W_CORE]" = "{
176 .tdp_pl1_override = 20,
177 .tdp_pl2_override = 25,
178 .tdp_pl4 = 78,
179 }"
180
181 register "power_limits_config[ADL_N_081_15W_CORE]" = "{
182 .tdp_pl1_override = 20,
183 .tdp_pl2_override = 35,
184 .tdp_pl4 = 83,
185 }"
186
187 device domain 0 on
188 device ref igpu on end
189 device ref dtt on
190 chip drivers/intel/dptf
191 ## sensor information
192 register "options.tsr[0].desc" = ""DDR""
193 register "options.tsr[1].desc" = ""charger""
194 register "options.tsr[2].desc" = ""ambient""
195
196 ## Active Policy
197 register "policies.active" = "{
198 [0] = {
199 .target = DPTF_CPU,
200 .thresholds = {
201 TEMP_PCT(70, 100),
202 TEMP_PCT(60, 65),
203 TEMP_PCT(42, 60),
204 TEMP_PCT(39, 55),
205 TEMP_PCT(38, 50),
206 TEMP_PCT(35, 43),
207 TEMP_PCT(31, 30),
208 }
209 },
210 [1] = {
211 .target = DPTF_TEMP_SENSOR_0,
212 .thresholds = {
213 TEMP_PCT(60, 100),
214 TEMP_PCT(55, 65),
215 TEMP_PCT(52, 60),
216 TEMP_PCT(50, 55),
217 TEMP_PCT(48, 50),
218 TEMP_PCT(45, 43),
219 TEMP_PCT(41, 30),
220 }
221 }
222 }"
223
224 ## Passive Policy
225 register "policies.passive" = "{
226 [0] = DPTF_PASSIVE(CPU, CPU, 95, 5000),
227 [1] = DPTF_PASSIVE(CPU, TEMP_SENSOR_0, 70, 5000),
228 [2] = DPTF_PASSIVE(CPU, TEMP_SENSOR_1, 70, 5000),
229 [3] = DPTF_PASSIVE(CPU, TEMP_SENSOR_2, 70, 5000),
230 }"
231
232 ## Critical Policy
233 register "policies.critical" = "{
234 [0] = DPTF_CRITICAL(CPU, 100, SHUTDOWN),
235 [1] = DPTF_CRITICAL(TEMP_SENSOR_0, 95, SHUTDOWN),
236 [2] = DPTF_CRITICAL(TEMP_SENSOR_1, 95, SHUTDOWN),
237 [3] = DPTF_CRITICAL(TEMP_SENSOR_2, 95, SHUTDOWN),
238 }"
239
240 register "controls.power_limits" = "{
241 .pl1 = {
242 .min_power = 6000,
243 .max_power = 20000,
244 .time_window_min = 28 * MSECS_PER_SEC,
245 .time_window_max = 28 * MSECS_PER_SEC,
246 .granularity = 500
247 },
248 .pl2 = {
249 .min_power = 25000,
250 .max_power = 25000,
251 .time_window_min = 32 * MSECS_PER_SEC,
252 .time_window_max = 32 * MSECS_PER_SEC,
253 .granularity = 500
254 }
255 }"
256
257 ## Charger Performance Control (Control, mA)
258 register "controls.charger_perf" = "{
259 [0] = { 255, 1700 },
260 [1] = { 24, 1500 },
261 [2] = { 16, 1000 },
262 [3] = { 8, 500 }
263 }"
264
265 ## Fan Performance Control (Percent, Speed, Noise, Power)
266 register "controls.fan_perf" = "{
267 [0] = { 100, 6000, 220, 2200, },
268 [1] = { 92, 5500, 180, 1800, },
269 [2] = { 85, 5000, 145, 1450, },
270 [3] = { 70, 4400, 115, 1150, },
271 [4] = { 56, 3900, 90, 900, },
272 [5] = { 45, 3300, 55, 550, },
273 [6] = { 38, 3000, 30, 300, },
274 [7] = { 33, 2900, 15, 150, },
275 [8] = { 10, 800, 10, 100, },
276 [9] = { 0, 0, 0, 50, }
277 }"
278
279 ## Fan options
280 register "options.fan.fine_grained_control" = "1"
281 register "options.fan.step_size" = "2"
282
283 device generic 0 on
284 probe THERMAL_SOLUTION THERMAL_SOLUTION_6W
285 end
286 end
287 chip drivers/intel/dptf
288 ## sensor information
289 register "options.tsr[0].desc" = ""DDR""
290 register "options.tsr[1].desc" = ""charger""
291 register "options.tsr[2].desc" = ""ambient""
292
293 ## Active Policy
294 register "policies.active" = "{
295 [0] = {
296 .target = DPTF_CPU,
297 .thresholds = {
298 TEMP_PCT(70, 100),
299 TEMP_PCT(60, 65),
300 TEMP_PCT(42, 58),
301 TEMP_PCT(39, 53),
302 TEMP_PCT(38, 47),
303 TEMP_PCT(35, 43),
304 TEMP_PCT(31, 30),
305 }
306 },
307 [1] = {
308 .target = DPTF_TEMP_SENSOR_0,
309 .thresholds = {
310 TEMP_PCT(60, 100),
311 TEMP_PCT(55, 65),
312 TEMP_PCT(52, 58),
313 TEMP_PCT(50, 53),
314 TEMP_PCT(48, 47),
315 TEMP_PCT(45, 43),
316 TEMP_PCT(41, 30),
317 }
318 }
319 }"
320
321 ## Passive Policy
322 register "policies.passive" = "{
323 [0] = DPTF_PASSIVE(CPU, CPU, 95, 5000),
324 [1] = DPTF_PASSIVE(CPU, TEMP_SENSOR_0, 70, 5000),
325 [2] = DPTF_PASSIVE(CPU, TEMP_SENSOR_1, 70, 5000),
326 [3] = DPTF_PASSIVE(CPU, TEMP_SENSOR_2, 70, 5000),
327 }"
328
329 ## Critical Policy
330 register "policies.critical" = "{
331 [0] = DPTF_CRITICAL(CPU, 100, SHUTDOWN),
332 [1] = DPTF_CRITICAL(TEMP_SENSOR_0, 95, SHUTDOWN),
333 [2] = DPTF_CRITICAL(TEMP_SENSOR_1, 95, SHUTDOWN),
334 [3] = DPTF_CRITICAL(TEMP_SENSOR_2, 95, SHUTDOWN),
335 }"
336
337 register "controls.power_limits" = "{
338 .pl1 = {
339 .min_power = 15000,
340 .max_power = 20000,
341 .time_window_min = 28 * MSECS_PER_SEC,
342 .time_window_max = 28 * MSECS_PER_SEC,
343 .granularity = 500
344 },
345 .pl2 = {
346 .min_power = 35000,
347 .max_power = 35000,
348 .time_window_min = 32 * MSECS_PER_SEC,
349 .time_window_max = 32 * MSECS_PER_SEC,
350 .granularity = 500
351 }
352 }"
353
354 ## Charger Performance Control (Control, mA)
355 register "controls.charger_perf" = "{
356 [0] = { 255, 1700 },
357 [1] = { 24, 1500 },
358 [2] = { 16, 1000 },
359 [3] = { 8, 500 }
360 }"
361
362 ## Fan Performance Control (Percent, Speed, Noise, Power)
363 register "controls.fan_perf" = "{
364 [0] = { 100, 6000, 220, 2200, },
365 [1] = { 92, 5500, 180, 1800, },
366 [2] = { 85, 5000, 145, 1450, },
367 [3] = { 70, 4400, 115, 1150, },
368 [4] = { 56, 3900, 90, 900, },
369 [5] = { 45, 3300, 55, 550, },
370 [6] = { 38, 3000, 30, 300, },
371 [7] = { 33, 2900, 15, 150, },
372 [8] = { 10, 800, 10, 100, },
373 [9] = { 0, 0, 0, 50, }
374 }"
375
376 ## Fan options
377 register "options.fan.fine_grained_control" = "1"
378 register "options.fan.step_size" = "2"
379
380 device generic 1 on
381 probe THERMAL_SOLUTION THERMAL_SOLUTION_15W
382 end
383 end
384 end
385 device ref tcss_xhci on
386 chip drivers/usb/acpi
387 device ref tcss_root_hub on
388 chip drivers/usb/acpi
389 register "desc" = ""USB3 Type-C Port C0 (MLB)""
390 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
391 register "use_custom_pld" = "true"
392 register "custom_pld" = "ACPI_PLD_TYPE_C(LEFT, LEFT, ACPI_PLD_GROUP(1, 1))"
393 device ref tcss_usb3_port1 on end
394 end
395 end
396 end
397 end
398 device ref xhci on
399 chip drivers/usb/acpi
400 device ref xhci_root_hub on
401 chip drivers/usb/acpi
402 register "desc" = ""USB2 Type-C Port C0 (MLB)""
403 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
404 register "use_custom_pld" = "true"
405 register "custom_pld" = "ACPI_PLD_TYPE_C(LEFT, LEFT, ACPI_PLD_GROUP(1, 1))"
406 device ref usb2_port5 on end
407 end
408 chip drivers/usb/acpi
409 register "desc" = ""USB2 Type-A Port A0 (DB)""
410 register "type" = "UPC_TYPE_A"
411 register "use_custom_pld" = "true"
412 register "custom_pld" = "ACPI_PLD_TYPE_A(LEFT, RIGHT, ACPI_PLD_GROUP(3, 1))"
413 device ref usb2_port1 on end
414 end
415 chip drivers/usb/acpi
416 register "desc" = ""USB2 Type-A Port A1 (DB)""
417 register "type" = "UPC_TYPE_A"
418 register "use_custom_pld" = "true"
419 register "custom_pld" = "ACPI_PLD_TYPE_A(RIGHT, LEFT, ACPI_PLD_GROUP(4, 1))"
420 device ref usb2_port2 on end
421 end
422 chip drivers/usb/acpi
423 register "desc" = ""USB2 Camera""
424 register "type" = "UPC_TYPE_INTERNAL"
425 device ref usb2_port3 on end
426 end
427 chip drivers/usb/acpi
428 register "desc" = ""USB2 Bluetooth""
429 register "type" = "UPC_TYPE_INTERNAL"
430 register "reset_gpio" =
431 "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_A13)"
432 device ref usb2_port6 on end
433 end
434 chip drivers/usb/acpi
435 register "desc" = ""USB2 Bluetooth""
436 register "type" = "UPC_TYPE_INTERNAL"
437 register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_A13)"
438 device ref usb2_port10 on end
439 end
440 chip drivers/usb/acpi
441 register "desc" = ""USB3 Type-A Port A0 (MLB)""
442 register "type" = "UPC_TYPE_USB3_A"
443 register "use_custom_pld" = "true"
444 register "custom_pld" = "ACPI_PLD_TYPE_A(LEFT, RIGHT, ACPI_PLD_GROUP(3, 1))"
445 device ref usb3_port1 on end
446 end
447 chip drivers/usb/acpi
448 register "desc" = ""USB3 Type-A Port A1 (DB)""
449 register "type" = "UPC_TYPE_USB3_A"
450 register "use_custom_pld" = "true"
451 register "custom_pld" = "ACPI_PLD_TYPE_A(RIGHT, LEFT, ACPI_PLD_GROUP(4, 1))"
452 device ref usb3_port2 on end
453 end
454 end
455 end
456 end
457 device ref shared_sram on end
458 device ref cnvi_wifi on
459 chip drivers/wifi/generic
460 register "wake" = "GPE0_PME_B0"
461 register "enable_cnvi_ddr_rfim" = "true"
462 register "add_acpi_dma_property" = "true"
463 device generic 0 on end
464 end
465 end
466 device ref i2c0 on
467 chip drivers/i2c/tpm
468 register "hid" = ""GOOG0005""
469 register "irq" = "ACPI_IRQ_EDGE_LOW(GPP_A17_IRQ)"
470 device i2c 50 on end
471 end
472 end #I2C0
473 device ref i2c1 on
474 chip drivers/i2c/generic
475 register "hid" = ""ELAN0000""
476 register "desc" = ""ELAN Touchpad""
477 register "irq" = "ACPI_IRQ_WAKE_LEVEL_LOW(GPP_B3_IRQ)"
478 register "wake" = "GPE0_DW1_03"
479 register "detect" = "1"
480 device i2c 15 on end
481 end
482 end #I2C1
483 device ref i2c5 on
484 chip drivers/i2c/hid
485 register "generic.hid" = ""ELAN9004""
486 register "generic.desc" = ""ELAN Touchscreen""
487 register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D16_IRQ)"
488 register "generic.detect" = "1"
489 register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D15)"
490 register "generic.reset_delay_ms" = "20"
491 register "generic.reset_off_delay_ms" = "2"
492 register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_E17)"
493 register "generic.enable_delay_ms" = "1"
494 register "generic.stop_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_A21)"
495 register "generic.stop_delay_ms" = "150"
496 register "generic.stop_off_delay_ms" = "2"
497 register "generic.has_power_resource" = "1"
498 register "hid_desc_reg_offset" = "0x01"
499 device i2c 10 on end
500 end
501 end #I2C5
502 device ref heci1 on end
503 device ref pcie_rp7 off end
504 device ref emmc on end
505 device ref ish on
506 chip drivers/intel/ish
507 register "add_acpi_dma_property" = "true"
508 device generic 0 on end
509 end
510 end
511 device ref ufs on end
512 device ref uart0 on end
513 device ref pch_espi on
514 chip ec/google/chromeec
515 use conn0 as mux_conn[0]
516 device pnp 0c09.0 on end
517 end
518 end
519 device ref pmc hidden
520 chip drivers/intel/pmc_mux
521 device generic 0 on
522 chip drivers/intel/pmc_mux/conn
523 use usb2_port5 as usb2_port
524 use tcss_usb3_port1 as usb3_port
525 device generic 0 alias conn0 on end
526 end
527 end
528 end
529 end
530 end
EricKY Cheng7728ed32024-05-09 16:44:23 +0800531end