blob: 0547dca8fef0405361e4b1d33fe71c33859e26cf [file] [log] [blame]
Seunghwan Kimbe426e02024-02-27 16:12:05 +09001fw_config
2 field STORAGE 0 0
3 option STORAGE_UFS 0
4 option STORAGE_NVME 1
5 end
6end
Seunghwan Kim49d9b182024-02-02 09:17:57 +09007
YH Line4fb5e72024-01-12 01:27:40 +00008chip soc/intel/alderlake
Seunghwan Kim49d9b182024-02-02 09:17:57 +09009 register "domain_vr_config[VR_DOMAIN_IA]" = "{
10 .enable_fast_vmode = 1,
11 }"
YH Line4fb5e72024-01-12 01:27:40 +000012
Seunghwan Kim49d9b182024-02-02 09:17:57 +090013 register "sagv" = "SaGv_Enabled"
YH Line4fb5e72024-01-12 01:27:40 +000014
Seunghwan Kim49d9b182024-02-02 09:17:57 +090015 register "pch_slp_a_min_assertion_width" = "SLP_A_ASSERTION_DEFAULT"
16
17 # As per Intel Advisory doc#723158, the change is required to prevent possible
18 # display flickering issue.
19 register "disable_dynamic_tccold_handshake" = "true"
20
Seunghwan Kima2f47bb2024-02-08 10:01:35 +090021 register "tcc_offset" = "6" # TCC of 94
22
Seunghwan Kim49d9b182024-02-02 09:17:57 +090023 register "platform_pmax" = "145"
24
25 register "usb2_ports[0]" = "{
26 .enable = 1,
27 .ocpin = OC0,
28 .pre_emp_bias = USB2_BIAS_28P15MV,
29 .tx_bias = USB2_BIAS_0MV,
30 .tx_emp_enable = USB2_PRE_EMP_ON,
31 .pre_emp_bit = USB2_HALF_BIT_PRE_EMP,
32 .type_c = 1,
33 }" # USB2_C0
34 register "usb2_ports[1]" = "USB2_PORT_EMPTY"
35 register "usb2_ports[2]" = "{
36 .enable = 1,
37 .ocpin = OC_SKIP,
38 .pre_emp_bias = USB2_BIAS_28P15MV,
39 .tx_bias = USB2_BIAS_0MV,
40 .tx_emp_enable = USB2_PRE_EMP_ON,
41 .pre_emp_bit = USB2_HALF_BIT_PRE_EMP,
42 .type_c = 1,
43 }" # USB2_C2
44 register "usb2_ports[3]" = "{
45 .enable = 1,
46 .ocpin = OC_SKIP,
47 .pre_emp_bias = USB2_BIAS_28P15MV,
48 .tx_bias = USB2_BIAS_0MV,
49 .tx_emp_enable = USB2_DE_EMP_ON_PRE_EMP_ON,
50 .pre_emp_bit = USB2_FULL_BIT_PRE_EMP,
51 }" # uSD
52 register "usb2_ports[4]" = "{
53 .enable = 1,
54 .ocpin = OC_SKIP,
55 .pre_emp_bias = USB2_BIAS_28P15MV,
56 .tx_bias = USB2_BIAS_11P25MV,
57 .tx_emp_enable = USB2_DE_EMP_ON_PRE_EMP_ON,
58 .pre_emp_bit = USB2_FULL_BIT_PRE_EMP,
59 }" # USB2_A1
60 register "usb2_ports[5]" = "{
61 .enable = 1,
62 .ocpin = OC_SKIP,
63 .pre_emp_bias = USB2_BIAS_28P15MV,
64 .tx_bias = USB2_BIAS_0MV,
65 .tx_emp_enable = USB2_DE_EMP_ON_PRE_EMP_ON,
66 .pre_emp_bit = USB2_FULL_BIT_PRE_EMP,
67 }" # Camera
68 register "usb2_ports[6]" = "USB2_PORT_EMPTY"
69 register "usb2_ports[7]" = "USB2_PORT_EMPTY"
70 register "usb2_ports[8]" = "USB2_PORT_EMPTY"
71 register "usb2_ports[9]" = "USB2_PORT_MID(OC_SKIP)" # Bluetooth
72
73 register "usb3_ports[0]" = "USB3_PORT_EMPTY"
74 register "usb3_ports[1]" = "USB3_PORT_EMPTY"
75 register "usb3_ports[2]" = "USB3_PORT_DEFAULT(OC_SKIP)" # USB3_A1
76 register "usb3_ports[3]" = "USB3_PORT_EMPTY"
77
78 register "tcss_ports[0]" = "TCSS_PORT_DEFAULT(OC0)"
79 register "tcss_ports[1]" = "TCSS_PORT_EMPTY"
80 register "tcss_ports[2]" = "TCSS_PORT_DEFAULT(OC_SKIP)"
81 register "tcss_ports[3]" = "TCSS_PORT_EMPTY"
82
83 register "tcss_aux_ori" = "0x11"
84
85 register "typec_aux_bias_pads[0]" = "{.pad_auxp_dc = GPP_E22, .pad_auxn_dc = GPP_E23}"
86 register "typec_aux_bias_pads[2]" = "{.pad_auxp_dc = GPP_A19, .pad_auxn_dc = GPP_A20}"
87
88 register "serial_io_i2c_mode" = "{
89 [PchSerialIoIndexI2C0] = PchSerialIoPci,
90 [PchSerialIoIndexI2C1] = PchSerialIoPci,
91 [PchSerialIoIndexI2C2] = PchSerialIoDisabled,
92 [PchSerialIoIndexI2C3] = PchSerialIoDisabled,
93 [PchSerialIoIndexI2C4] = PchSerialIoDisabled,
94 [PchSerialIoIndexI2C5] = PchSerialIoPci,
95 }"
96
97 register "serial_io_gspi_mode" = "{
98 [PchSerialIoIndexGSPI0] = PchSerialIoDisabled,
99 [PchSerialIoIndexGSPI1] = PchSerialIoDisabled,
100 }"
101
102 # Intel Common SoC Config
103 #+-------------------+---------------------------+
104 #| Field | Value |
105 #+-------------------+---------------------------+
106 #| I2C0 | Audio |
107 #| I2C1 | cr50 TPM. Early init is |
108 #| | required to set up a BAR |
109 #| | for TPM communication |
110 #| I2C5 | Trackpad |
111 #+-------------------+---------------------------+
112 register "common_soc_config" = "{
113 .i2c[0]= {
114 .speed = I2C_SPEED_FAST,
115 .rise_time_ns = 175,
116 .fall_time_ns = 8,
117 },
118 .i2c[1] = {
119 .early_init = 1,
120 .speed = I2C_SPEED_FAST,
121 .rise_time_ns = 600,
122 .fall_time_ns = 400,
123 .data_hold_time_ns = 50,
124 },
125 .i2c[5] = {
126 .speed = I2C_SPEED_FAST,
127 .rise_time_ns = 650,
128 .fall_time_ns = 400,
129 .data_hold_time_ns = 50,
130 },
131 }"
132
133 device domain 0 on
134 device ref igpu on
135 chip drivers/gfx/generic
136 register "device_count" = "6"
137 # DDIA for eDP
138 register "device[0].name" = ""LCD""
139 # DDIB for HDMI
140 register "device[1].name" = ""DD01""
141 # TCP0 (DP-1) for port C0
142 register "device[2].name" = ""DD02""
143 register "device[2].use_pld" = "true"
144 register "device[2].pld" = "ACPI_PLD_TYPE_C(LEFT, RIGHT, ACPI_PLD_GROUP(1, 1))"
145 # TCP1 (DP-2) is unused for any ports but still enumerated in the kernel, so GFX device is added for TCP1
146 register "device[3].name" = ""DD03""
147 # TCP2 (DP-3) for port C2
148 register "device[4].name" = ""DD04""
149 register "device[4].use_pld" = "true"
150 register "device[4].pld" = "ACPI_PLD_TYPE_C(LEFT, LEFT, ACPI_PLD_GROUP(2, 1))"
151 # TCP3 (DP-4) is unused for any ports but still enumerated in the kernel, so GFX device is added for TCP3
152 register "device[5].name" = ""DD05""
153 device generic 0 on end
154 end
155 end # Integrated Graphics Device
156 device ref dtt on
157 chip drivers/intel/dptf
158 ## sensor information
159 register "options.tsr[0].desc" = ""DRAM_SOC""
160 register "options.tsr[1].desc" = ""Ambient""
161 register "options.tsr[2].desc" = ""Charger""
162
163 # TODO: below values are initial reference values only
164 ## Active Policy
165 register "policies.active" = "{
166 [0] = {
167 .target = DPTF_TEMP_SENSOR_0,
168 .thresholds = {
169 TEMP_PCT(75, 97),
170 TEMP_PCT(70, 93),
171 TEMP_PCT(60, 86),
172 TEMP_PCT(52, 80),
173 TEMP_PCT(47, 64),
174 TEMP_PCT(43, 52),
175 TEMP_PCT(40, 40),
176 }
177 },
178 [1] = {
179 .target = DPTF_TEMP_SENSOR_1,
180 .thresholds = {
181 TEMP_PCT(75, 97),
182 TEMP_PCT(70, 93),
183 TEMP_PCT(60, 86),
184 TEMP_PCT(52, 80),
185 TEMP_PCT(47, 64),
186 TEMP_PCT(43, 52),
187 TEMP_PCT(40, 40),
188 }
189 },
190 [2] = {
191 .target = DPTF_TEMP_SENSOR_2,
192 .thresholds = {
193 TEMP_PCT(82, 97),
194 TEMP_PCT(78, 93),
195 TEMP_PCT(72, 86),
196 TEMP_PCT(60, 80),
197 }
198 }
199 }"
200
201 ## Passive Policy
202 register "policies.passive" = "{
203 [0] = DPTF_PASSIVE(CPU, CPU, 95, 5000),
204 [1] = DPTF_PASSIVE(CPU, TEMP_SENSOR_0, 80, 5000),
205 [2] = DPTF_PASSIVE(CPU, TEMP_SENSOR_1, 80, 5000),
206 [3] = DPTF_PASSIVE(CHARGER, TEMP_SENSOR_2, 75, 5000),
207 }"
208
209 ## Critical Policy
210 register "policies.critical" = "{
Seunghwan Kima2f47bb2024-02-08 10:01:35 +0900211 [0] = DPTF_CRITICAL(CPU, 99, SHUTDOWN),
Seunghwan Kim49d9b182024-02-02 09:17:57 +0900212 [1] = DPTF_CRITICAL(TEMP_SENSOR_0, 85, SHUTDOWN),
213 [2] = DPTF_CRITICAL(TEMP_SENSOR_1, 85, SHUTDOWN),
214 [3] = DPTF_CRITICAL(TEMP_SENSOR_2, 85, SHUTDOWN),
215 }"
216
217 register "controls.power_limits" = "{
218 .pl1 = {
219 .min_power = 15000,
220 .max_power = 15000,
221 .time_window_min = 28 * MSECS_PER_SEC,
222 .time_window_max = 32 * MSECS_PER_SEC,
223 .granularity = 200,
224 },
225 .pl2 = {
226 .min_power = 55000,
227 .max_power = 55000,
228 .time_window_min = 28 * MSECS_PER_SEC,
229 .time_window_max = 32 * MSECS_PER_SEC,
230 .granularity = 1000,
231 }
232 }"
233
234 ## Charger Performance Control (Control, mA)
235 register "controls.charger_perf" = "{
236 [0] = { 255, 1700 },
237 [1] = { 24, 1500 },
238 [2] = { 16, 1000 },
239 [3] = { 8, 500 }
240 }"
241
242 ## Fan Performance Control (Percent, Speed, Noise, Power)
243 register "controls.fan_perf" = "{
244 [0] = { 90, 6700, 220, 2200, },
245 [1] = { 80, 5800, 180, 1800, },
246 [2] = { 70, 5000, 145, 1450, },
247 [3] = { 60, 4900, 115, 1150, },
248 [4] = { 50, 3838, 90, 900, },
249 [5] = { 40, 2904, 55, 550, },
250 [6] = { 30, 2337, 30, 300, },
251 [7] = { 20, 1608, 15, 150, },
252 [8] = { 10, 800, 10, 100, },
253 [9] = { 0, 0, 0, 50, }
254 }"
255
256 ## Fan options
257 register "options.fan.fine_grained_control" = "1"
258 register "options.fan.step_size" = "2"
259
260 device generic 0 alias dptf_policy on end
261 end
262 end
263 device ref pcie4_0 on
Seunghwan Kim4efd2e32024-02-27 16:15:30 +0900264 # Enable CPU PCIE RP 1 using CLK 0
Seunghwan Kim49d9b182024-02-02 09:17:57 +0900265 register "cpu_pcie_rp[CPU_RP(1)]" = "{
266 .clk_req = 1,
Seunghwan Kim4efd2e32024-02-27 16:15:30 +0900267 .clk_src = 0,
Seunghwan Kim49d9b182024-02-02 09:17:57 +0900268 .flags = PCIE_RP_LTR | PCIE_RP_AER,
269 }"
Seunghwan Kimbe426e02024-02-27 16:12:05 +0900270 probe STORAGE STORAGE_NVME
271 end # NVMe
Seunghwan Kim49d9b182024-02-02 09:17:57 +0900272 device ref tbt_pcie_rp0 off end
273 device ref tbt_pcie_rp1 off end
274 device ref tbt_pcie_rp2 off end
275 device ref tbt_pcie_rp3 off end
276 device ref tcss_dma0 off end
277 device ref tcss_dma1 off end
278 device ref ish on
279 chip drivers/intel/ish
280 register "add_acpi_dma_property" = "true"
281 device generic 0 on end
282 end
Seunghwan Kimbe426e02024-02-27 16:12:05 +0900283 probe STORAGE STORAGE_UFS
Seunghwan Kim49d9b182024-02-02 09:17:57 +0900284 end
Seunghwan Kimbe426e02024-02-27 16:12:05 +0900285 device ref ufs on
286 probe STORAGE STORAGE_UFS
287 end
Seunghwan Kim49d9b182024-02-02 09:17:57 +0900288 device ref cnvi_wifi on
289 chip drivers/wifi/generic
290 register "wake" = "GPE0_PME_B0"
291 register "enable_cnvi_ddr_rfim" = "true"
292 device generic 0 on end
293 end
294 end
295 device ref i2c0 on
296 chip drivers/i2c/da7219
297 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_BOTH(GPP_A23)"
298 register "btn_cfg" = "50"
299 register "mic_det_thr" = "200"
300 register "jack_ins_deb" = "20"
301 register "jack_det_rate" = ""32ms_64ms""
302 register "jack_rem_deb" = "1"
303 register "a_d_btn_thr" = "0xa"
304 register "d_b_btn_thr" = "0x16"
305 register "b_c_btn_thr" = "0x21"
306 register "c_mic_btn_thr" = "0x3e"
307 register "btn_avg" = "4"
308 register "adc_1bit_rpt" = "1"
309 register "micbias_lvl" = "2600"
310 register "mic_amp_in_sel" = ""diff""
311 device i2c 1a on end
312 end
313 end #I2C0
314 device ref i2c1 on
315 chip drivers/i2c/tpm
316 register "hid" = ""GOOG0005""
317 register "irq" = "ACPI_IRQ_EDGE_LOW(GPP_A13_IRQ)"
318 device i2c 50 on end
319 end
320 end #I2C1
321 device ref i2c5 on
322 chip drivers/i2c/hid
323 register "generic.hid" = ""ZNT0000""
324 register "generic.desc" = ""Zinitix Touchpad""
325 register "generic.irq" = "ACPI_IRQ_WAKE_LEVEL_LOW(GPP_F14_IRQ)"
326 register "generic.wake" = "GPE0_DW2_14"
327 register "generic.detect" = "1"
328 register "hid_desc_reg_offset" = "0xE"
329 device i2c 40 on end
330 end
331 end #I2C5
332 device ref hda on
333 chip drivers/generic/max98357a
334 register "hid" = ""MX98360A""
335 register "sdmode_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_A11)"
336 register "sdmode_delay" = "5"
337 device generic 0 on end
338 end
339 chip drivers/sof
340 register "spkr_tplg" = "max98360a"
341 register "jack_tplg" = "da7219"
342 register "mic_tplg" = "_2ch_pdm0"
343 device generic 0 on end
344 end
345
346 end
347 device ref pch_espi on
348 chip ec/google/chromeec
349 use conn0 as mux_conn[0]
350 use conn1 as mux_conn[1]
351 device pnp 0c09.0 on end
352 end
353 end
354 device ref pmc hidden
355 chip drivers/intel/pmc_mux
356 device generic 0 on
357 chip drivers/intel/pmc_mux/conn
358 use usb2_port1 as usb2_port
359 use tcss_usb3_port1 as usb3_port
360 device generic 0 alias conn0 on end
361 end
362 chip drivers/intel/pmc_mux/conn
363 use usb2_port3 as usb2_port
364 use tcss_usb3_port3 as usb3_port
365 device generic 1 alias conn1 on end
366 end
367 end
368 end
369 end
370 device ref tcss_xhci on
371 chip drivers/usb/acpi
372 device ref tcss_root_hub on
373 chip drivers/usb/acpi
374 register "desc" = ""USB3 Type-C Port C0 (MLB)""
375 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
376 register "use_custom_pld" = "true"
377 register "custom_pld" = "ACPI_PLD_TYPE_C(LEFT, RIGHT, ACPI_PLD_GROUP(1, 1))"
378 device ref tcss_usb3_port1 on end
379 end
380 chip drivers/usb/acpi
381 register "desc" = ""USB3 Type-C Port C2 (MLB)""
382 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
383 register "use_custom_pld" = "true"
384 register "custom_pld" = "ACPI_PLD_TYPE_C(LEFT, LEFT, ACPI_PLD_GROUP(2, 1))"
385 device ref tcss_usb3_port3 on end
386 end
387 end
388 end
389 end
390 device ref xhci on
391 chip drivers/usb/acpi
392 device ref xhci_root_hub on
393 chip drivers/usb/acpi
394 register "desc" = ""USB2 Type-C Port C0 (MLB)""
395 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
396 register "use_custom_pld" = "true"
397 register "custom_pld" = "ACPI_PLD_TYPE_C(LEFT, RIGHT, ACPI_PLD_GROUP(1, 1))"
398 device ref usb2_port1 on end
399 end
400 chip drivers/usb/acpi
401 register "desc" = ""USB2 Type-C Port C2 (MLB)""
402 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
403 register "use_custom_pld" = "true"
404 register "custom_pld" = "ACPI_PLD_TYPE_C(LEFT, LEFT, ACPI_PLD_GROUP(2, 1))"
405 device ref usb2_port3 on end
406 end
407 chip drivers/usb/acpi
408 register "desc" = ""USB2 MMC""
409 register "type" = "UPC_TYPE_EXPRESSCARD"
410 device ref usb2_port4 on end
411 end
412 chip drivers/usb/acpi
413 register "desc" = ""USB2 Type-A Port A1 (DB)""
414 register "type" = "UPC_TYPE_A"
415 register "use_custom_pld" = "true"
416 register "custom_pld" = "ACPI_PLD_TYPE_A(RIGHT, RIGHT, ACPI_PLD_GROUP(1, 2))"
417 device ref usb2_port5 on end
418 end
419 chip drivers/usb/acpi
420 register "desc" = ""USB2 Camera""
421 register "type" = "UPC_TYPE_INTERNAL"
422 device ref usb2_port6 on end
423 end
424 chip drivers/usb/acpi
425 register "desc" = ""USB2 Bluetooth""
426 register "type" = "UPC_TYPE_INTERNAL"
427 register "reset_gpio" =
428 "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D4)"
429 device ref usb2_port10 on end
430 end
431 chip drivers/usb/acpi
432 register "desc" = ""USB3 Type-A Port A1 (DB)""
433 register "type" = "UPC_TYPE_USB3_A"
434 register "use_custom_pld" = "true"
435 register "custom_pld" = "ACPI_PLD_TYPE_A(RIGHT, RIGHT, ACPI_PLD_GROUP(1, 2))"
436 device ref usb3_port3 on end
437 end
438 end
439 end
440 end
441 end
YH Line4fb5e72024-01-12 01:27:40 +0000442end