blob: 3c45ff47d3eeb7bef78da57158896319f12acbe7 [file] [log] [blame]
Ian Feng52d0ec22022-07-21 16:28:12 +08001fw_config
2 field WFC 0
3 option WFC_PRESENT 0
4 option WFC_ABSENT 1
5 end
6 field STYLUS 1
7 option STYLUS_PRESENT 0
8 option STYLUS_ABSENT 1
9 end
Ian Feng32a3d932022-11-15 15:00:23 +080010 field AUDIO_CODEC_SOURCE 8
11 option AUDIO_CODEC_ALC5682_VS 0
12 option AUDIO_CODEC_ALC5682_VD 1
13 end
Ian Feng52d0ec22022-07-21 16:28:12 +080014end
15
Ian Fengd234b072022-06-20 09:26:49 +080016chip soc/intel/alderlake
Ian Feng2e1bcd32022-06-23 14:20:15 +080017 register "sagv" = "SaGv_Enabled"
Ian Fengd234b072022-06-20 09:26:49 +080018
Ian Feng738a3852022-09-26 17:13:13 +080019 # Disable CNVi BT
20 register "cnvi_bt_core" = "false"
21
Ian Feng2e1bcd32022-06-23 14:20:15 +080022 # SOC Aux orientation override:
23 # This is a bitfield that corresponds to up to 4 TCSS ports.
24 # Bits (0,1) allocated for TCSS Port1 configuration and Bits (2,3)for TCSS Port2.
25 # TcssAuxOri = 0101b
26 # Bit0,Bit2 set to "1" indicates no retimer on USBC Ports
27 # Bit1,Bit3 set to "0" indicates Aux lines are not swapped on the
28 # motherboard to USBC connector
29 register "tcss_aux_ori" = "5"
30
31 register "typec_aux_bias_pads[0]" = "{.pad_auxp_dc = GPP_E22, .pad_auxn_dc = GPP_E23}"
32 register "typec_aux_bias_pads[1]" = "{.pad_auxp_dc = GPP_A21, .pad_auxn_dc = GPP_A22}"
33
34 register "usb2_ports[7]" = "USB2_PORT_MID(OC_SKIP)" # Bluetooth port for PCIe WLAN
35
36 # Intel Common SoC Config
37 #+-------------------+---------------------------+
38 #| Field | Value |
39 #+-------------------+---------------------------+
40 #| I2C0 | TPM. Early init is |
41 #| | required to set up a BAR |
42 #| | for TPM communication |
43 #| I2C1 | Touchscreen |
Ian Feng1307ce82022-06-23 14:43:05 +080044 #| I2C2 | WCAM |
Ian Feng2e1bcd32022-06-23 14:20:15 +080045 #| I2C3 | Audio |
46 #| I2C5 | Trackpad |
47 #+-------------------+---------------------------+
Ian Feng9ace9462022-10-03 12:28:31 +080048 register "common_soc_config" = "{
49 .i2c[0] = {
50 .early_init = 1,
51 .speed = I2C_SPEED_FAST_PLUS,
52 .speed_config[0] = {
53 .speed = I2C_SPEED_FAST_PLUS,
54 .scl_lcnt = 55,
55 .scl_hcnt = 30,
56 .sda_hold = 7,
57 }
58 },
59 .i2c[1] = {
60 .speed = I2C_SPEED_FAST,
61 .speed_config[0] = {
62 .speed = I2C_SPEED_FAST,
63 .scl_lcnt = 158,
64 .scl_hcnt = 79,
65 .sda_hold = 7,
66 }
67 },
68 .i2c[2] = {
69 .speed = I2C_SPEED_FAST,
70 .speed_config[0] = {
71 .speed = I2C_SPEED_FAST,
72 .scl_lcnt = 158,
73 .scl_hcnt = 79,
74 .sda_hold = 7,
75 }
76 },
77 .i2c[3] = {
78 .speed = I2C_SPEED_FAST,
79 .speed_config[0] = {
80 .speed = I2C_SPEED_FAST,
81 .scl_lcnt = 158,
82 .scl_hcnt = 79,
83 .sda_hold = 7,
84 }
85 },
86 .i2c[5] = {
87 .speed = I2C_SPEED_FAST,
88 .speed_config[0] = {
89 .speed = I2C_SPEED_FAST,
90 .scl_lcnt = 158,
91 .scl_hcnt = 79,
92 .sda_hold = 7,
93 }
94 },
95 }"
96
Ian Fengd234b072022-06-20 09:26:49 +080097 device domain 0 on
Ian Feng801f4cd2022-09-29 11:42:19 +080098 device ref dtt on
99 chip drivers/intel/dptf
100 ## sensor information
101 register "options.tsr[0].desc" = ""Memory""
102 register "options.tsr[1].desc" = ""Ambient""
103 register "options.tsr[2].desc" = ""Charger""
104
105 # TODO: below values are initial reference values only
106 ## Passive Policy
107 register "policies.passive" = "{
108 [0] = DPTF_PASSIVE(CPU, CPU, 90, 5000),
109 [1] = DPTF_PASSIVE(CPU, TEMP_SENSOR_0, 77, 5000),
110 [2] = DPTF_PASSIVE(CPU, TEMP_SENSOR_1, 60, 5000),
111 [3] = DPTF_PASSIVE(CHARGER, TEMP_SENSOR_2, 78, 5000),
112 }"
113
114 ## Critical Policy
115 register "policies.critical" = "{
116 [0] = DPTF_CRITICAL(TEMP_SENSOR_0, 87, SHUTDOWN),
117 [1] = DPTF_CRITICAL(TEMP_SENSOR_1, 78, SHUTDOWN),
118 [2] = DPTF_CRITICAL(TEMP_SENSOR_2, 88, SHUTDOWN),
119 }"
120
121 register "controls.power_limits" = "{
122 .pl1 = {
123 .min_power = 6000,
124 .max_power = 6000,
125 .time_window_min = 28 * MSECS_PER_SEC,
126 .time_window_max = 32 * MSECS_PER_SEC,
127 .granularity = 200
128 },
129 .pl2 = {
130 .min_power = 25000,
131 .max_power = 25000,
132 .time_window_min = 28 * MSECS_PER_SEC,
133 .time_window_max = 32 * MSECS_PER_SEC,
134 .granularity = 1000
135 }
136 }"
137
138 ## Charger Performance Control (Control, mA)
139 register "controls.charger_perf" = "{
140 [0] = { 255, 1700 },
141 [1] = { 24, 1500 },
142 [2] = { 16, 1000 },
143 [3] = { 8, 500 }
144 }"
145
146 device generic 0 on end
147 end
148 end
Ian Feng1307ce82022-06-23 14:43:05 +0800149 device ref ipu on
150 chip drivers/intel/mipi_camera
151 register "acpi_uid" = "0x50000"
152 register "acpi_name" = ""IPU0""
153 register "device_type" = "INTEL_ACPI_CAMERA_CIO2"
154
155 register "cio2_num_ports" = "1"
156 register "cio2_lanes_used" = "{4}" # 4 CSI Camera lanes are used
157 register "cio2_lane_endpoint[0]" = ""^I2C2.CAM0""
158 register "cio2_prt[0]" = "2"
159 device generic 0 on end
160 end
Ian Feng52d0ec22022-07-21 16:28:12 +0800161 probe WFC WFC_PRESENT
Ian Feng1307ce82022-06-23 14:43:05 +0800162 end
Ian Feng2e1bcd32022-06-23 14:20:15 +0800163 device ref i2c1 on
164 chip drivers/i2c/hid
165 register "generic.hid" = ""ELAN9008""
166 register "generic.desc" = ""ELAN Touchscreen""
167 register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_C7_IRQ)"
168 register "generic.probed" = "1"
169 register "generic.reset_gpio" =
170 "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_C1)"
171 register "generic.reset_delay_ms" = "300"
172 register "generic.reset_off_delay_ms" = "1"
173 register "generic.enable_gpio" =
174 "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_C0)"
175 register "generic.enable_delay_ms" = "6"
176 register "generic.stop_gpio" =
177 "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_C6)"
178 register "generic.stop_off_delay_ms" = "1"
179 register "generic.has_power_resource" = "1"
180 register "generic.disable_gpio_export_in_crs" = "1"
181 register "hid_desc_reg_offset" = "0x01"
182 device i2c 10 on end
183 end
184 chip drivers/generic/gpio_keys
185 register "name" = ""PENH""
186 register "gpio" = "ACPI_GPIO_INPUT_ACTIVE_LOW(GPP_F13)"
187 register "key.wake_gpe" = "GPE0_DW2_15"
188 register "key.wakeup_route" = "WAKEUP_ROUTE_SCI"
Eric Lai445e0662022-06-24 15:34:42 +0800189 register "key.wakeup_event_action" = "EV_ACT_DEASSERTED"
Ian Feng2e1bcd32022-06-23 14:20:15 +0800190 register "key.dev_name" = ""EJCT""
191 register "key.linux_code" = "SW_PEN_INSERTED"
192 register "key.linux_input_type" = "EV_SW"
193 register "key.label" = ""pen_eject""
194 device generic 0 on
Ian Feng52d0ec22022-07-21 16:28:12 +0800195 probe STYLUS STYLUS_PRESENT
Ian Feng2e1bcd32022-06-23 14:20:15 +0800196 end
197 end
198 end
Ian Feng1307ce82022-06-23 14:43:05 +0800199 device ref i2c2 on
200 chip drivers/intel/mipi_camera
201 register "acpi_hid" = ""OVTI8856""
202 register "acpi_uid" = "0"
203 register "acpi_name" = ""CAM0""
204 register "chip_name" = ""Ov 8856 Camera""
205 register "device_type" = "INTEL_ACPI_CAMERA_SENSOR"
206
207 register "ssdb.lanes_used" = "4"
208 register "ssdb.link_used" = "1"
209 register "ssdb.vcm_type" = "0x0C"
210 register "vcm_name" = ""VCM0""
211 register "num_freq_entries" = "2"
212 register "link_freq[0]" = "360000000"
213 register "link_freq[1]" = "180000000"
214 register "remote_name" = ""IPU0""
215
216 register "has_power_resource" = "1"
217 #Controls
218 register "clk_panel.clks[0].clknum" = "IMGCLKOUT_3"
219 register "clk_panel.clks[0].freq" = "FREQ_19_2_MHZ"
220
221 register "gpio_panel.gpio[0].gpio_num" = "GPP_D15" # EN_PP2800_WCAM_X
222 register "gpio_panel.gpio[1].gpio_num" = "GPP_D16" # EN_PP1800_PP1200_WCAM_X
223 register "gpio_panel.gpio[2].gpio_num" = "GPP_D3" # WCAM_RST_L
224
225 #_ON
226 register "on_seq.ops_cnt" = "5"
227 register "on_seq.ops[0]" = "SEQ_OPS_CLK_ENABLE(0, 0)"
228 register "on_seq.ops[1]" = "SEQ_OPS_GPIO_ENABLE(0, 5)"
229 register "on_seq.ops[2]" = "SEQ_OPS_GPIO_ENABLE(1, 5)"
230 register "on_seq.ops[3]" = "SEQ_OPS_GPIO_DISABLE(2, 5)"
231 register "on_seq.ops[4]" = "SEQ_OPS_GPIO_ENABLE(2, 5)"
232
233 #_OFF
234 register "off_seq.ops_cnt" = "4"
235 register "off_seq.ops[0]" = "SEQ_OPS_CLK_DISABLE(0, 0)"
236 register "off_seq.ops[1]" = "SEQ_OPS_GPIO_DISABLE(2, 0)"
237 register "off_seq.ops[2]" = "SEQ_OPS_GPIO_DISABLE(1, 0)"
238 register "off_seq.ops[3]" = "SEQ_OPS_GPIO_DISABLE(0, 0)"
239
Ian Feng52d0ec22022-07-21 16:28:12 +0800240 device i2c 36 on
241 probe WFC WFC_PRESENT
242 end
Ian Feng1307ce82022-06-23 14:43:05 +0800243 end
244 chip drivers/intel/mipi_camera
245 register "acpi_uid" = "3"
246 register "acpi_name" = ""VCM0""
247 register "chip_name" = ""DW AF DAC""
248 register "device_type" = "INTEL_ACPI_CAMERA_VCM"
249
250 register "pr0" = ""\\_SB.PCI0.I2C2.CAM0.PRIC""
251 register "vcm_compat" = ""dongwoon,dw9714""
252
Ian Feng52d0ec22022-07-21 16:28:12 +0800253 device i2c 0C on
254 probe WFC WFC_PRESENT
255 end
Ian Feng1307ce82022-06-23 14:43:05 +0800256 end
257 chip drivers/intel/mipi_camera
258 register "acpi_hid" = "ACPI_DT_NAMESPACE_HID"
259 register "acpi_uid" = "1"
260 register "acpi_name" = ""NVM0""
261 register "chip_name" = ""GT24C08""
262 register "device_type" = "INTEL_ACPI_CAMERA_NVM"
263
264 register "pr0" = ""\\_SB.PCI0.I2C2.CAM0.PRIC""
265
266 register "nvm_size" = "0x2000"
267 register "nvm_pagesize" = "1"
268 register "nvm_readonly" = "1"
269 register "nvm_width" = "0x10"
270 register "nvm_compat" = ""atmel,24c08""
271
Ian Feng52d0ec22022-07-21 16:28:12 +0800272 device i2c 50 on
273 probe WFC WFC_PRESENT
274 end
Ian Feng1307ce82022-06-23 14:43:05 +0800275 end
276 end
Ian Feng2e1bcd32022-06-23 14:20:15 +0800277 device ref i2c3 on
278 chip drivers/i2c/generic
279 register "hid" = ""RTL5682""
280 register "name" = ""RT58""
281 register "desc" = ""Headset Codec""
282 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_BOTH(GPP_A23)"
283 # Set the jd_src to RT5668_JD1 for jack detection
284 register "property_count" = "1"
285 register "property_list[0].type" = "ACPI_DP_TYPE_INTEGER"
286 register "property_list[0].name" = ""realtek,jd-src""
287 register "property_list[0].integer" = "1"
Ian Feng32a3d932022-11-15 15:00:23 +0800288 device i2c 1a on
289 probe AUDIO_CODEC_SOURCE AUDIO_CODEC_ALC5682_VS
290 end
291 end
292 chip drivers/i2c/generic
293 register "hid" = ""10EC5682""
294 register "name" = ""RT58""
295 register "desc" = ""Headset Codec""
296 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_BOTH(GPP_A23)"
297 # Set the jd_src to RT5668_JD1 for jack detection
298 register "property_count" = "1"
299 register "property_list[0].type" = "ACPI_DP_TYPE_INTEGER"
300 register "property_list[0].name" = ""realtek,jd-src""
301 register "property_list[0].integer" = "1"
302 device i2c 1a on
303 probe AUDIO_CODEC_SOURCE AUDIO_CODEC_ALC5682_VD
304 end
Ian Feng2e1bcd32022-06-23 14:20:15 +0800305 end
306 chip drivers/generic/alc1015
307 register "hid" = ""RTL1019""
308 register "sdb" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_A11)"
309 device generic 0 on end
310 end
311 end
312 device ref i2c5 on
313 chip drivers/i2c/generic
314 register "hid" = ""ELAN0000""
315 register "desc" = ""ELAN Touchpad""
316 register "irq" = "ACPI_IRQ_WAKE_LEVEL_LOW(GPP_F14_IRQ)"
317 register "wake" = "GPE0_DW2_14"
Matt DeVillier2cf52d82022-09-01 15:09:24 -0500318 register "detect" = "1"
Ian Feng2e1bcd32022-06-23 14:20:15 +0800319 device i2c 15 on end
320 end
321 end
322 device ref pcie_rp4 on
323 # PCIe 4 WLAN
324 register "pch_pcie_rp[PCH_RP(4)]" = "{
325 .clk_src = 2,
326 .clk_req = 2,
327 .flags = PCIE_RP_LTR | PCIE_RP_AER,
328 }"
329 chip drivers/wifi/generic
330 register "wake" = "GPE0_DW1_03"
Reka Normanafa72ee2022-08-30 10:27:45 +1000331 register "is_untrusted" = "true"
Ian Feng2e1bcd32022-06-23 14:20:15 +0800332 device pci 00.0 on end
333 end
Ian Feng2e1bcd32022-06-23 14:20:15 +0800334 end
Ian Feng738a3852022-09-26 17:13:13 +0800335
336 device ref cnvi_wifi off end
337
Ian Feng2e1bcd32022-06-23 14:20:15 +0800338 device ref pch_espi on
339 chip ec/google/chromeec
340 use conn0 as mux_conn[0]
341 use conn1 as mux_conn[1]
342 device pnp 0c09.0 on end
343 end
344 end
345 device ref pmc hidden
346 chip drivers/intel/pmc_mux
347 device generic 0 on
348 chip drivers/intel/pmc_mux/conn
349 use usb2_port1 as usb2_port
350 use tcss_usb3_port1 as usb3_port
351 device generic 0 alias conn0 on end
352 end
353 chip drivers/intel/pmc_mux/conn
354 use usb2_port2 as usb2_port
355 use tcss_usb3_port2 as usb3_port
356 device generic 1 alias conn1 on end
357 end
358 end
359 end
360 end
361 device ref tcss_xhci on
362 chip drivers/usb/acpi
363 device ref tcss_root_hub on
364 chip drivers/usb/acpi
365 register "desc" = ""USB3 Type-C Port C0 (MLB)""
366 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
367 register "use_custom_pld" = "true"
368 register "custom_pld" = "ACPI_PLD_TYPE_C(LEFT, LEFT, ACPI_PLD_GROUP(1, 1))"
369 device ref tcss_usb3_port1 on end
370 end
371 chip drivers/usb/acpi
372 register "desc" = ""USB3 Type-C Port C1 (DB)""
373 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
374 register "use_custom_pld" = "true"
375 register "custom_pld" = "ACPI_PLD_TYPE_C(RIGHT, RIGHT, ACPI_PLD_GROUP(2, 1))"
376 device ref tcss_usb3_port2 on end
377 end
378 end
379 end
380 end
381 device ref xhci on
382 chip drivers/usb/acpi
383 device ref xhci_root_hub on
384 chip drivers/usb/acpi
385 register "desc" = ""USB2 Type-C Port C0 (MLB)""
386 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
387 register "use_custom_pld" = "true"
388 register "custom_pld" = "ACPI_PLD_TYPE_C(LEFT, LEFT, ACPI_PLD_GROUP(1, 1))"
389 device ref usb2_port1 on end
390 end
391 chip drivers/usb/acpi
392 register "desc" = ""USB2 Type-C Port C1 (DB)""
393 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
394 register "use_custom_pld" = "true"
395 register "custom_pld" = "ACPI_PLD_TYPE_C(RIGHT, RIGHT, ACPI_PLD_GROUP(2, 1))"
396 device ref usb2_port2 on end
397 end
398 chip drivers/usb/acpi
399 register "desc" = ""USB2 Type-A Port A0 (MLB)""
400 register "type" = "UPC_TYPE_A"
401 register "use_custom_pld" = "true"
402 register "custom_pld" = "ACPI_PLD_TYPE_A(LEFT, RIGHT, ACPI_PLD_GROUP(3, 1))"
403 device ref usb2_port3 on end
404 end
405 chip drivers/usb/acpi
406 register "desc" = ""USB2 Type-A Port A1 (DB)""
407 register "type" = "UPC_TYPE_A"
408 register "use_custom_pld" = "true"
409 register "custom_pld" = "ACPI_PLD_TYPE_A(RIGHT, LEFT, ACPI_PLD_GROUP(4, 1))"
410 device ref usb2_port4 on end
411 end
412 chip drivers/usb/acpi
413 register "desc" = ""USB2 Camera""
414 register "type" = "UPC_TYPE_INTERNAL"
415 device ref usb2_port6 on end
416 end
417 chip drivers/usb/acpi
418 register "desc" = ""USB2 Bluetooth""
419 register "type" = "UPC_TYPE_INTERNAL"
420 register "reset_gpio" =
421 "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D4)"
422 device ref usb2_port8 on end
423 end
424 chip drivers/usb/acpi
425 register "desc" = ""USB3 Type-A Port A0 (MLB)""
426 register "type" = "UPC_TYPE_USB3_A"
427 register "use_custom_pld" = "true"
428 register "custom_pld" = "ACPI_PLD_TYPE_A(LEFT, RIGHT, ACPI_PLD_GROUP(3, 1))"
429 device ref usb3_port1 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, LEFT, ACPI_PLD_GROUP(4, 1))"
436 device ref usb3_port2 on end
437 end
438 end
439 end
440 end
Ian Fengd234b072022-06-20 09:26:49 +0800441 end
Ian Fengd234b072022-06-20 09:26:49 +0800442end