blob: d66d7bd7eb45b027fe248ca61da9825a6a4f963c [file] [log] [blame]
Simon Zhou3b821312023-05-22 18:52:38 +08001fw_config
Simon Zhou298732e2023-06-01 08:56:07 +08002 field AUDIO 0 1
3 option AUDIO_UNKNOWN 0
4 option ALC1019_ALC5682I_I2S 1
5 end
6 field DB_CONFIG 2 4
7 option DB_UNKNOWN 0
8 option DB_TYPEC 1
9 option DB_TBT 2
10 end
Simon Zhou3b821312023-05-22 18:52:38 +080011 field MB_CONFIG 5 7
12 option MB_UNKNOWN 0
13 option MB_TYPEC 1
14 option MB_TBT 2
15 end
16end
17
Simon Zhou2cf25eb2023-04-14 14:21:00 +080018chip soc/intel/meteorlake
19
Kun Liu6f6353d2023-05-06 12:25:54 +080020 register "usb2_ports[0]" = "USB2_PORT_TYPE_C(OC1)" # USB2_C1
21 register "usb2_ports[1]" = "USB2_PORT_TYPE_C(OC0)" # USB2_C0
22 register "usb2_ports[2]" = "USB2_PORT_MID(OC2)" # Type-A Port A1
23 register "usb2_ports[8]" = "USB2_PORT_MID(OC3)" # Type-A Port A0
qinwentao3afa5932023-05-19 15:25:01 +080024 register "usb2_ports[9]" = "USB2_PORT_MID(OC_SKIP)" # M.2 Bluetooth
Simon Zhou2cf25eb2023-04-14 14:21:00 +080025
Kun Liu6f6353d2023-05-06 12:25:54 +080026 register "usb3_ports[0]" = "USB3_PORT_DEFAULT(OC3)" # USB3/2 Type A port A0
27 register "usb3_ports[1]" = "USB3_PORT_DEFAULT(OC2)" # USB3/2 Type A port A1
28
29 register "tcss_ports[1]" = "TCSS_PORT_DEFAULT(OC0)"
30 register "tcss_ports[3]" = "TCSS_PORT_DEFAULT(OC1)"
31
32 # Enable eDP in Port A
33 register "ddi_port_A_config" = "1"
34 # Enable HDMI in Port B
35 register "ddi_port_B_config" = "0"
36
37 # Enable Display Port Configuration
38 register "ddi_ports_config" = "{
39 [DDI_PORT_A] = DDI_ENABLE_HPD,
40 [DDI_PORT_B] = DDI_ENABLE_HPD | DDI_ENABLE_DDC,
41 [DDI_PORT_1] = DDI_ENABLE_HPD,
42 [DDI_PORT_2] = DDI_ENABLE_HPD,
43 [DDI_PORT_3] = DDI_ENABLE_HPD,
44 [DDI_PORT_4] = DDI_ENABLE_HPD,
45 }"
46
47 register "serial_io_gspi_mode" = "{
48 [PchSerialIoIndexGSPI0] = PchSerialIoDisabled,
49 [PchSerialIoIndexGSPI1] = PchSerialIoPci,
50 [PchSerialIoIndexGSPI2] = PchSerialIoDisabled,
51 }"
52
53 register "serial_io_i2c_mode" = "{
54 [PchSerialIoIndexI2C0] = PchSerialIoPci,
55 [PchSerialIoIndexI2C1] = PchSerialIoPci,
56 [PchSerialIoIndexI2C2] = PchSerialIoDisabled,
57 [PchSerialIoIndexI2C3] = PchSerialIoPci,
58 [PchSerialIoIndexI2C4] = PchSerialIoPci,
59 [PchSerialIoIndexI2C5] = PchSerialIoPci,
60 }"
61
Wentao Qin23c40992023-05-29 18:47:00 +080062 # Temporary setting TCC of 90C = Tj max - Tcc
63 register "tcc_offset" = "20"
64
Kun Liu6f6353d2023-05-06 12:25:54 +080065 # Intel Common SoC Config
66 #+-------------------+---------------------------+
67 #| Field | Value |
68 #+-------------------+---------------------------+
69 #| I2C0 | Audio |
70 #| I2C1 | Touchscreen |
71 #| I2C3 | Touchpad |
72 #| I2C4 | cr50 TPM. Early init is |
73 #| | required to set up a BAR |
74 #| | for TPM communication |
75 #| I2C5 | UFC |
76 #+-------------------+---------------------------+
77 register "common_soc_config" = "{
78 .i2c[0] = {
79 .speed = I2C_SPEED_FAST,
80 .rise_time_ns = 650,
81 .fall_time_ns = 400,
82 .data_hold_time_ns = 50,
83 },
84 .i2c[1] = {
85 .speed = I2C_SPEED_FAST,
86 .rise_time_ns = 650,
87 .fall_time_ns = 400,
88 .data_hold_time_ns = 50,
89 },
90 .i2c[3] = {
91 .speed = I2C_SPEED_FAST,
92 .rise_time_ns = 650,
93 .fall_time_ns = 400,
94 .data_hold_time_ns = 50,
95 },
96 .i2c[4] = {
97 .early_init = 1,
98 .speed = I2C_SPEED_FAST,
99 .rise_time_ns = 600,
100 .fall_time_ns = 400,
101 .data_hold_time_ns = 50,
102 },
103 .i2c[5] = {
104 .speed = I2C_SPEED_FAST,
105 .rise_time_ns = 900,
106 .fall_time_ns = 400,
107 .data_hold_time_ns = 50,
108 },
109 }"
110
111 device domain 0 on
112 device ref dtt on
113 chip drivers/intel/dptf
114 ## sensor information
115 register "options.tsr[0].desc" = ""DDR_SOC""
116 register "options.tsr[1].desc" = ""Ambient""
117 register "options.tsr[2].desc" = ""Charger""
118
119 ## Active Policy
120 # FIXME: below values are initial reference values only
121 register "policies.active" = "{
122 [0] = {
123 .target = DPTF_TEMP_SENSOR_0,
124 .thresholds = {
125 TEMP_PCT(75, 90),
126 TEMP_PCT(70, 80),
127 TEMP_PCT(65, 70),
128 TEMP_PCT(60, 60),
129 TEMP_PCT(55, 50),
130 TEMP_PCT(50, 40),
131 TEMP_PCT(45, 30),
132 }
133 },
134 [1] = {
135 .target = DPTF_TEMP_SENSOR_1,
136 .thresholds = {
137 TEMP_PCT(75, 90),
138 TEMP_PCT(70, 80),
139 TEMP_PCT(65, 70),
140 TEMP_PCT(60, 60),
141 TEMP_PCT(55, 50),
142 TEMP_PCT(50, 40),
143 TEMP_PCT(45, 30),
144 }
145 },
146 [2] = {
147 .target = DPTF_TEMP_SENSOR_2,
148 .thresholds = {
149 TEMP_PCT(75, 90),
150 TEMP_PCT(70, 80),
151 TEMP_PCT(65, 70),
152 TEMP_PCT(60, 50),
153 }
154 }
155 }"
156
157 ## Passive Policy
158 # TODO: below values are initial reference values only
159 register "policies.passive" = "{
160 [0] = DPTF_PASSIVE(CPU, CPU, 95, 5000),
161 [1] = DPTF_PASSIVE(CPU, TEMP_SENSOR_0, 80, 5000),
162 [2] = DPTF_PASSIVE(CPU, TEMP_SENSOR_1, 80, 5000),
163 [3] = DPTF_PASSIVE(CHARGER, TEMP_SENSOR_2, 75, 5000),
164 }"
165
166 ## Critical Policy
167 # TODO: below values are initial reference values only
168 register "policies.critical" = "{
169 [0] = DPTF_CRITICAL(CPU, 105, SHUTDOWN),
170 [1] = DPTF_CRITICAL(TEMP_SENSOR_0, 85, SHUTDOWN),
171 [2] = DPTF_CRITICAL(TEMP_SENSOR_1, 85, SHUTDOWN),
172 [3] = DPTF_CRITICAL(TEMP_SENSOR_2, 85, SHUTDOWN),
173 }"
174
175 ## Power Limits Control
176 register "controls.power_limits" = "{
177 .pl1 = {
178 .min_power = 15000,
179 .max_power = 15000,
180 .time_window_min = 28 * MSECS_PER_SEC,
181 .time_window_max = 32 * MSECS_PER_SEC,
182 .granularity = 200,
183 },
184 .pl2 = {
185 .min_power = 57000,
186 .max_power = 57000,
187 .time_window_min = 28 * MSECS_PER_SEC,
188 .time_window_max = 32 * MSECS_PER_SEC,
189 .granularity = 1000,
190 }
191 }"
192
193 ## Charger Performance Control (Control, mA)
194 register "controls.charger_perf" = "{
195 [0] = { 255, 3000 },
196 [1] = { 24, 1500 },
197 [2] = { 16, 1000 },
198 [3] = { 8, 500 }
199 }"
200
201 ## Fan Performance Control (Percent, Speed, Noise, Power)
202 register "controls.fan_perf" = "{
203 [0] = { 90, 6700, 220, 2200, },
204 [1] = { 80, 5800, 180, 1800, },
205 [2] = { 70, 5000, 145, 1450, },
206 [3] = { 60, 4900, 115, 1150, },
207 [4] = { 50, 3838, 90, 900, },
208 [5] = { 40, 2904, 55, 550, },
209 [6] = { 30, 2337, 30, 300, },
210 [7] = { 20, 1608, 15, 150, },
211 [8] = { 10, 800, 10, 100, },
212 [9] = { 0, 0, 0, 50, }
213 }"
214
215 ## Fan options
216 register "options.fan.fine_grained_control" = "1"
217 register "options.fan.step_size" = "2"
218
219 device generic 0 alias dptf_policy on end
220 end
221 end
222 device ref pcie_rp9 on
223 # Enable SSD Card PCIE 9 using clk 4
224 register "pcie_rp[PCH_RP(9)]" = "{
225 .clk_src = 4,
226 .clk_req = 4,
227 .flags = PCIE_RP_LTR | PCIE_RP_AER,
228 }"
229 end # PCIE4_P9 SSD card
230 device ref pcie_rp10 on
231 # Enable SD Card PCIE4 rp10 using clk 7
232 register "pcie_rp[PCH_RP(10)]" = "{
233 .clk_src = 7,
234 .clk_req = 7,
235 .flags = PCIE_RP_HOTPLUG | PCIE_RP_LTR | PCIE_RP_AER,
236 }"
237 chip soc/intel/common/block/pcie/rtd3
238 register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_D03)"
239 register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D02)"
240 register "srcclk_pin" = "7"
241 device generic 0 on end
242 end
243 end
244 device ref tbt_pcie_rp0 on end
245 device ref tbt_pcie_rp2 on end
246 device ref tcss_xhci on
247 chip drivers/usb/acpi
248 device ref tcss_root_hub on
249 chip drivers/usb/acpi
250 register "desc" = ""USB3 Type-C Port C0 (MLB)""
251 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
252 register "use_custom_pld" = "true"
253 register "custom_pld" = "ACPI_PLD_TYPE_C(RIGHT, RIGHT, ACPI_PLD_GROUP(1, 1))"
254 device ref tcss_usb3_port2 on end
255 end
256 chip drivers/usb/acpi
257 register "desc" = ""USB3 Type-C Port C1 (DB)""
258 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
259 register "use_custom_pld" = "true"
260 register "custom_pld" = "ACPI_PLD_TYPE_C(LEFT, LEFT, ACPI_PLD_GROUP(2, 1))"
261 device ref tcss_usb3_port4 on end
262 end
263 end
264 end
265 end
266 device ref tcss_dma0 on
267 chip drivers/intel/usb4/retimer
268 register "dfp[0].power_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_B22)"
269 use tcss_usb3_port2 as dfp[0].typec_port
270 device generic 0 on end
271 end
272 end
273 device ref tcss_dma1 on
274 chip drivers/intel/usb4/retimer
275 register "dfp[0].power_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_B22)"
276 use tcss_usb3_port4 as dfp[0].typec_port
277 device generic 0 on end
278 end
279 end
280 device ref xhci on
281 chip drivers/usb/acpi
282 device ref xhci_root_hub on
283 chip drivers/usb/acpi
284 register "desc" = ""USB2 Type-C Port C1 (DB)""
285 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
286 register "use_custom_pld" = "true"
287 register "custom_pld" = "ACPI_PLD_TYPE_C(LEFT, LEFT, ACPI_PLD_GROUP(2, 1))"
288 device ref usb2_port1 on end
289 end
290 chip drivers/usb/acpi
291 register "desc" = ""USB2 Type-C Port C0 (MLB)""
292 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
293 register "use_custom_pld" = "true"
294 register "custom_pld" = "ACPI_PLD_TYPE_C(RIGHT, RIGHT, ACPI_PLD_GROUP(1, 1))"
295 device ref usb2_port2 on end
296 end
297 chip drivers/usb/acpi
298 register "desc" = ""USB2 Type-A Port A1 (MLB)""
299 register "type" = "UPC_TYPE_A"
300 register "use_custom_pld" = "true"
301 register "custom_pld" = "ACPI_PLD_TYPE_A(RIGHT, LEFT, ACPI_PLD_GROUP(4, 1))"
302 device ref usb2_port3 on end
303 end
304 chip drivers/usb/acpi
305 register "desc" = ""USB2 Type-A Port A0 (MLB)""
306 register "type" = "UPC_TYPE_A"
307 register "use_custom_pld" = "true"
308 register "custom_pld" = "ACPI_PLD_TYPE_A(RIGHT, CENTER, ACPI_PLD_GROUP(3, 1))"
309 device ref usb2_port9 on end
310 end
311 chip drivers/usb/acpi
qinwentao3afa5932023-05-19 15:25:01 +0800312 register "desc" = ""USB2 Bluetooth""
313 register "type" = "UPC_TYPE_INTERNAL"
314 register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_B01)"
315 device ref usb2_port10 on end
316 end
317 chip drivers/usb/acpi
Kun Liu6f6353d2023-05-06 12:25:54 +0800318 register "desc" = ""USB3 Type-A Port A0 (MLB)""
319 register "type" = "UPC_TYPE_USB3_A"
320 register "use_custom_pld" = "true"
321 register "custom_pld" = "ACPI_PLD_TYPE_A(RIGHT, CENTER, ACPI_PLD_GROUP(3, 1))"
322 device ref usb3_port1 on end
323 end
324 chip drivers/usb/acpi
325 register "desc" = ""USB3 Type-A Port A1 (MLB)""
326 register "type" = "UPC_TYPE_USB3_A"
327 register "use_custom_pld" = "true"
328 register "custom_pld" = "ACPI_PLD_TYPE_A(RIGHT, LEFT, ACPI_PLD_GROUP(4, 1))"
329 device ref usb3_port2 on end
330 end
331 end
332 end
333 end
334 device ref cnvi_wifi on
335 chip drivers/wifi/generic
336 register "wake" = "GPE0_PME_B0"
337 register "add_acpi_dma_property" = "true"
338 register "enable_cnvi_ddr_rfim" = "true"
339 device generic 0 on end
340 end
341 end
jason.z.chen90c3df72023-05-11 17:23:50 +0800342 device ref ipu on
343 chip drivers/intel/mipi_camera
344 register "acpi_uid" = "0x50000"
345 register "acpi_name" = ""IPU0""
346 register "device_type" = "INTEL_ACPI_CAMERA_CIO2"
347
348 register "cio2_num_ports" = "1"
349 register "cio2_lanes_used" = "{4}"
350 register "cio2_lane_endpoint[0]" = ""^I2C5.CAM0""
351 register "cio2_prt[0]" = "4"
352 device generic 0 on end
353 end
354 end
Rui Zhou5c3c5292023-06-01 18:22:13 +0800355 device ref i2c0 on
356 chip drivers/i2c/generic
357 register "hid" = ""RTL5682""
358 register "name" = ""RT58""
359 register "desc" = ""Headset Codec""
360 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_BOTH(GPP_B06)"
361 # Set the jd_src to RT5668_JD1 for jack detection
362 register "property_count" = "1"
363 register "property_list[0].type" = "ACPI_DP_TYPE_INTEGER"
364 register "property_list[0].name" = ""realtek,jd-src""
365 register "property_list[0].integer" = "1"
366 device i2c 1a on
367 probe AUDIO ALC1019_ALC5682I_I2S
368 end
369 end
370 end
Zhongtian Wua1256702023-05-19 18:48:07 +0800371 device ref i2c3 on
372 chip drivers/i2c/generic
373 register "hid" = ""ELAN0000""
374 register "desc" = ""ELAN Touchpad""
375 register "irq" = "ACPI_IRQ_WAKE_LEVEL_LOW(GPP_B00_IRQ)"
376 register "wake" = "GPE0_DW0_00"
377 register "detect" = "1"
378 device i2c 15 on end
379 end
380 end
Kun Liu6f6353d2023-05-06 12:25:54 +0800381 device ref i2c4 on
382 chip drivers/i2c/tpm
383 register "hid" = ""GOOG0005""
384 register "irq" = "ACPI_IRQ_EDGE_LOW(GPP_E03_IRQ)"
385 device i2c 50 on end
386 end
387 end
Simon Zhou6477d192023-05-17 10:12:29 +0800388 device ref gspi1 on
389 chip drivers/spi/acpi
390 register "name" = ""CRFP""
391 register "hid" = "ACPI_DT_NAMESPACE_HID"
392 register "uid" = "1"
393 register "compat_string" = ""google,cros-ec-spi""
394 register "irq" = "ACPI_IRQ_WAKE_LEVEL_LOW(GPP_E10_IRQ)"
395 register "wake" = "GPE0_DW1_10"
396 register "has_power_resource" = "1"
397 register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_C21)"
398 register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_B08)"
399 register "enable_delay_ms" = "3"
400 device spi 0 on end
401 end # FPMCU
402 end
jason.z.chen90c3df72023-05-11 17:23:50 +0800403 device ref i2c5 on
404 chip drivers/intel/mipi_camera
405 register "acpi_hid" = ""OVTI08F4""
406 register "acpi_uid" = "0"
407 register "acpi_name" = ""CAM0""
408 register "chip_name" = ""Ov 08X40 Camera""
409 register "device_type" = "INTEL_ACPI_CAMERA_SENSOR"
410 register "ssdb.lanes_used" = "4"
411 register "ssdb.link_used" = "1"
412 register "num_freq_entries" = "1"
413 register "link_freq[0]" = "400 * MHz"
414 register "remote_name" = ""IPU0""
415
416 register "has_power_resource" = "1"
417 #Controls
418 register "clk_panel.clks[0].clknum" = "IMGCLKOUT_2"
419 register "clk_panel.clks[0].freq" = "FREQ_19_2_MHZ"
420 register "gpio_panel.gpio[1].gpio_num" = "GPP_A12" #EN_UCAM_PWR
421 register "gpio_panel.gpio[0].gpio_num" = "GPP_A11" #EN_UCAM_SENR_PWR
422 register "gpio_panel.gpio[2].gpio_num" = "GPP_V23" #UCAM_RST_L
423
424 #_ON
425 register "on_seq.ops_cnt" = "5"
426 register "on_seq.ops[0]" = "SEQ_OPS_CLK_ENABLE(0, 0)"
427 register "on_seq.ops[1]" = "SEQ_OPS_GPIO_ENABLE(0, 5)"
428 register "on_seq.ops[2]" = "SEQ_OPS_GPIO_ENABLE(1, 5)"
429 register "on_seq.ops[3]" = "SEQ_OPS_GPIO_DISABLE(2, 5)"
430 register "on_seq.ops[4]" = "SEQ_OPS_GPIO_ENABLE(2, 5)"
431
432 #_OFF
433 register "off_seq.ops_cnt" = "4"
434 register "off_seq.ops[0]" = "SEQ_OPS_CLK_DISABLE(0, 0)"
435 register "off_seq.ops[1]" = "SEQ_OPS_GPIO_DISABLE(2, 0)"
436 register "off_seq.ops[2]" = "SEQ_OPS_GPIO_DISABLE(1, 0)"
437 register "off_seq.ops[3]" = "SEQ_OPS_GPIO_DISABLE(0, 0)"
438 device i2c 36 on end
439 end
440 chip drivers/intel/mipi_camera
441 register "acpi_uid" = "1"
442 register "acpi_name" = ""NVM0""
443 register "chip_name" = ""M24C64X""
444 register "device_type" = "INTEL_ACPI_CAMERA_NVM"
445
446 register "has_power_resource" = "1"
447 #Controls
448 register "gpio_panel.gpio[0].gpio_num" = "GPP_A12" #EN_UCAM_PWR
449
450 #_ON
451 register "on_seq.ops_cnt" = "1"
452 register "on_seq.ops[0]" = "SEQ_OPS_GPIO_ENABLE(0, 0)"
453
454 #_OFF
455 register "off_seq.ops_cnt" = "1"
456 register "off_seq.ops[0]" = "SEQ_OPS_GPIO_DISABLE(0, 0)"
457
458 register "nvm_size" = "0x2000"
459 register "nvm_pagesize" = "1"
460 register "nvm_readonly" = "1"
461 register "nvm_width" = "0x10"
462 register "nvm_compat" = ""atmel,24c64""
463
464 device i2c 50 on end
465 end
466 end #I2C5
Kun Liu6f6353d2023-05-06 12:25:54 +0800467 device ref soc_espi on
468 chip ec/google/chromeec
469 use conn0 as mux_conn[0]
470 use conn1 as mux_conn[1]
471 device pnp 0c09.0 on end
472 end
473 end
474 device ref pmc hidden
475 chip drivers/intel/pmc_mux
476 device generic 0 on
477 chip drivers/intel/pmc_mux/conn
478 use usb2_port2 as usb2_port
479 use tcss_usb3_port2 as usb3_port
480 device generic 0 alias conn0 on end
481 end
482 chip drivers/intel/pmc_mux/conn
483 use usb2_port1 as usb2_port
484 use tcss_usb3_port4 as usb3_port
485 device generic 1 alias conn1 on end
486 end
487 end
488 end
489 end
Rui Zhou5c3c5292023-06-01 18:22:13 +0800490 device ref hda on
491 chip drivers/generic/alc1015
492 register "hid" = ""RTL1019""
493 register "sdb" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_B07)"
494 device generic 0 on
495 probe AUDIO ALC1019_ALC5682I_I2S
496 end
497 end
498 end
Kun Liu6f6353d2023-05-06 12:25:54 +0800499 end
Simon Zhou2cf25eb2023-04-14 14:21:00 +0800500end