blob: 802ddf1d929b94c2a6c0c458959e49a1ae7b55dc [file] [log] [blame]
Matt Ziegelbaum06bff722020-11-06 21:42:10 -05001chip soc/intel/cannonlake
Matt Ziegelbaum06bff722020-11-06 21:42:10 -05002 # Auto-switch between X4 NVMe and X2 NVMe.
3 register "TetonGlacierMode" = "1"
4
5 register "SerialIoDevMode" = "{
6 [PchSerialIoIndexI2C0] = PchSerialIoDisabled,
7 [PchSerialIoIndexI2C1] = PchSerialIoDisabled,
8 [PchSerialIoIndexI2C2] = PchSerialIoPci,
9 [PchSerialIoIndexI2C3] = PchSerialIoPci,
10 [PchSerialIoIndexI2C4] = PchSerialIoPci,
11 [PchSerialIoIndexI2C5] = PchSerialIoPci,
12 [PchSerialIoIndexSPI0] = PchSerialIoPci,
13 [PchSerialIoIndexSPI1] = PchSerialIoPci,
14 [PchSerialIoIndexSPI2] = PchSerialIoDisabled,
15 [PchSerialIoIndexUART0] = PchSerialIoSkipInit,
16 [PchSerialIoIndexUART1] = PchSerialIoDisabled,
17 [PchSerialIoIndexUART2] = PchSerialIoDisabled,
18 }"
19
20 # USB configuration
21 register "usb2_ports[0]" = "{
22 .enable = 1,
23 .ocpin = OC2,
24 .tx_bias = USB2_BIAS_0MV,
25 .tx_emp_enable = USB2_PRE_EMP_ON,
26 .pre_emp_bias = USB2_BIAS_11P25MV,
27 .pre_emp_bit = USB2_HALF_BIT_PRE_EMP,
28 }" # Type-A Port 2
29 register "usb2_ports[1]" = "{
30 .enable = 1,
31 .ocpin = OC1,
32 .tx_bias = USB2_BIAS_0MV,
33 .tx_emp_enable = USB2_PRE_EMP_ON,
34 .pre_emp_bias = USB2_BIAS_28P15MV,
35 .pre_emp_bit = USB2_HALF_BIT_PRE_EMP,
36 }" # Type-A Port 1
37 register "usb2_ports[2]" = "{
38 .enable = 1,
39 .ocpin = OC3,
40 .tx_bias = USB2_BIAS_0MV,
41 .tx_emp_enable = USB2_PRE_EMP_ON,
42 .pre_emp_bias = USB2_BIAS_28P15MV,
43 .pre_emp_bit = USB2_HALF_BIT_PRE_EMP,
44 }" # Type-A Port 3
45 register "usb2_ports[3]" = "USB2_PORT_TYPE_C(OC_SKIP)" # Type-C Port
46 register "usb2_ports[4]" = "{
47 .enable = 1,
48 .ocpin = OC_SKIP,
49 .tx_bias = USB2_BIAS_0MV,
50 .tx_emp_enable = USB2_PRE_EMP_ON,
51 .pre_emp_bias = USB2_BIAS_28P15MV,
52 .pre_emp_bit = USB2_HALF_BIT_PRE_EMP,
53 }" # Type-A Port 4
54 register "usb2_ports[5]" = "{
55 .enable = 1,
56 .ocpin = OC0,
57 .tx_bias = USB2_BIAS_0MV,
58 .tx_emp_enable = USB2_PRE_EMP_ON,
59 .pre_emp_bias = USB2_BIAS_28P15MV,
60 .pre_emp_bit = USB2_HALF_BIT_PRE_EMP,
61 }" # Type-A port 0
62 register "usb2_ports[6]" = "USB2_PORT_EMPTY"
63 register "usb2_ports[7]" = "USB2_PORT_EMPTY"
64 register "usb2_ports[8]" = "USB2_PORT_EMPTY"
65 register "usb2_ports[9]" = "{
66 .enable = 1,
67 .ocpin = OC_SKIP,
68 .tx_bias = USB2_BIAS_0MV,
69 .tx_emp_enable = USB2_PRE_EMP_ON,
70 .pre_emp_bias = USB2_BIAS_28P15MV,
71 .pre_emp_bit = USB2_HALF_BIT_PRE_EMP,
72 }" # BT
73
74 register "usb3_ports[0]" = "USB3_PORT_DEFAULT(OC2)" # Type-A Port 2
75 register "usb3_ports[1]" = "USB3_PORT_DEFAULT(OC3)" # Type-A Port 3
76 register "usb3_ports[2]" = "USB3_PORT_DEFAULT(OC1)" # Type-A Port 1
77 register "usb3_ports[3]" = "USB3_PORT_DEFAULT(OC_SKIP)" # Type-C
78 register "usb3_ports[4]" = "USB3_PORT_DEFAULT(OC0)" # Type-A Port 0
79 register "usb3_ports[5]" = "USB3_PORT_DEFAULT(OC_SKIP)" # Type-A Port 4
80
81 # Bitmap for Wake Enable on USB attach/detach
Felix Singer21b5a9a2023-10-23 07:26:28 +020082 register "usb2_wake_enable_bitmap" = "USB_PORT_WAKE_ENABLE(1) |
83 USB_PORT_WAKE_ENABLE(2) |
84 USB_PORT_WAKE_ENABLE(3) |
85 USB_PORT_WAKE_ENABLE(5) |
Matt Ziegelbaum06bff722020-11-06 21:42:10 -050086 USB_PORT_WAKE_ENABLE(6)"
Felix Singer21b5a9a2023-10-23 07:26:28 +020087 register "usb3_wake_enable_bitmap" = "USB_PORT_WAKE_ENABLE(1) |
88 USB_PORT_WAKE_ENABLE(2) |
89 USB_PORT_WAKE_ENABLE(3) |
90 USB_PORT_WAKE_ENABLE(5) |
Matt Ziegelbaum06bff722020-11-06 21:42:10 -050091 USB_PORT_WAKE_ENABLE(6)"
92
93 # Enable eMMC HS400
94 register "ScsEmmcHs400Enabled" = "1"
95
96 # EMMC Tx CMD Delay
97 # Refer to EDS-Vol2-14.3.7.
98 # [14:8] steps of delay for DDR mode, each 125ps, range: 0 - 39.
99 # [6:0] steps of delay for SDR mode, each 125ps, range: 0 - 39.
100 register "common_soc_config.emmc_dll.emmc_tx_cmd_cntl" = "0x505"
101
102 # EMMC TX DATA Delay 1
103 # Refer to EDS-Vol2-14.3.8.
104 # [14:8] steps of delay for HS400, each 125ps, range: 0 - 78.
105 # [6:0] steps of delay for SDR104/HS200, each 125ps, range: 0 - 79.
106 register "common_soc_config.emmc_dll.emmc_tx_data_cntl1" = "0x911"
107
108 # EMMC TX DATA Delay 2
109 # Refer to EDS-Vol2-14.3.9.
110 # [30:24] steps of delay for SDR50, each 125ps, range: 0 - 79.
111 # [22:16] steps of delay for DDR50, each 125ps, range: 0 - 78.
112 # [14:8] steps of delay for SDR25/HS50, each 125ps, range: 0 -79.
113 # [6:0] steps of delay for SDR12, each 125ps. Range: 0 - 79.
114 register "common_soc_config.emmc_dll.emmc_tx_data_cntl2" = "0x1C262828"
115
116 # EMMC RX CMD/DATA Delay 1
117 # Refer to EDS-Vol2-14.3.10.
118 # [30:24] steps of delay for SDR50, each 125ps, range: 0 - 119.
119 # [22:16] steps of delay for DDR50, each 125ps, range: 0 - 78.
120 # [14:8] steps of delay for SDR25/HS50, each 125ps, range: 0 - 119.
121 # [6:0] steps of delay for SDR12, each 125ps, range: 0 - 119.
122 register "common_soc_config.emmc_dll.emmc_rx_cmd_data_cntl1" = "0x1C16583b"
123
124 # EMMC RX CMD/DATA Delay 2
125 # Refer to EDS-Vol2-14.3.12.
126 # [17:16] stands for Rx Clock before Output Buffer,
127 # 00: Rx clock after output buffer,
128 # 01: Rx clock before output buffer,
129 # 10: Automatic selection based on working mode.
130 # 11: Reserved
131 # [14:8] steps of delay for Auto Tuning Mode, each 125ps, range: 0 - 39.
132 # [6:0] steps of delay for HS200, each 125ps, range: 0 - 79.
133 register "common_soc_config.emmc_dll.emmc_rx_cmd_data_cntl2" = "0x1001D"
134
135 # EMMC Rx Strobe Delay
136 # Refer to EDS-Vol2-14.3.11.
137 # [14:8] Rx Strobe Delay DLL 1(HS400 Mode), each 125ps, range: 0 - 39.
138 # [6:0] Rx Strobe Delay DLL 2(HS400 Mode), each 125ps, range: 0 - 39.
139 register "common_soc_config.emmc_dll.emmc_rx_strobe_cntl" = "0x1515"
140
141 # Intel HDA - disable I2S Audio SSP1 and DMIC0 as puff variant does not have them.
142 register "PchHdaAudioLinkSsp1" = "0"
143 register "PchHdaAudioLinkDmic0" = "0"
144
145 # Intel Common SoC Config
146 #+-------------------+---------------------------+
147 #| Field | Value |
148 #+-------------------+---------------------------+
149 #| GSPI0 | cr50 TPM. Early init is |
150 #| | required to set up a BAR |
151 #| | for TPM communication |
152 #| | before memory is up |
153 #| I2C0 | RFU |
154 #| I2C2 | PS175 |
155 #| I2C3 | MST |
156 #| I2C4 | Audio |
157 #+-------------------+---------------------------+
158 register "common_soc_config" = "{
159 .gspi[0] = {
160 .speed_mhz = 1,
161 .early_init = 1,
162 },
163 .i2c[0] = {
164 .speed = I2C_SPEED_FAST,
165 .rise_time_ns = 0,
166 .fall_time_ns = 0,
167 },
168 .i2c[2] = {
169 .speed = I2C_SPEED_FAST,
170 .rise_time_ns = 60,
171 .fall_time_ns = 60,
172 },
173 .i2c[3] = {
174 .speed = I2C_SPEED_FAST,
175 .rise_time_ns = 60,
176 .fall_time_ns = 60,
177 },
178 .i2c[4] = {
179 .speed = I2C_SPEED_FAST,
180 .rise_time_ns = 60,
181 .fall_time_ns = 60,
182 },
183 }"
184
Joe Tessler549abfb2021-03-19 16:44:17 +0800185 # PCIe root port 7 for LAN
Matt Ziegelbaum06bff722020-11-06 21:42:10 -0500186 register "PcieRpEnable[6]" = "1"
187 register "PcieRpLtrEnable[6]" = "1"
Matt Ziegelbaum06bff722020-11-06 21:42:10 -0500188 # Uses CLK SRC 0
189 register "PcieClkSrcUsage[0]" = "6"
190 register "PcieClkSrcClkReq[0]" = "0"
191
Joe Tessler549abfb2021-03-19 16:44:17 +0800192 # PCIe root port 8 for WLAN
Joe Tessler0b04d1bf2020-12-08 14:50:55 -0500193 register "PcieRpEnable[7]" = "1"
194 register "PcieRpLtrEnable[7]" = "1"
195 # Uses CLK SRC 5
196 register "PcieClkSrcUsage[5]" = "7"
197 register "PcieClkSrcClkReq[5]" = "5"
198
Joe Tessler549abfb2021-03-19 16:44:17 +0800199 # PCIe root port 9 for SSD (PCIe Lanes 11, 12)
Joe Tessler0b04d1bf2020-12-08 14:50:55 -0500200 register "PcieRpEnable[8]" = "1"
201 register "PcieRpLtrEnable[8]" = "1"
Joe Tessler549abfb2021-03-19 16:44:17 +0800202 # RP 9 uses CLK SRC 1
203 register "PcieClkSrcUsage[1]" = "8"
204 register "PcieClkSrcClkReq[1]" = "1"
Joe Tessler0b04d1bf2020-12-08 14:50:55 -0500205
Joe Tessler549abfb2021-03-19 16:44:17 +0800206 # PCIe root port 10 disabled
207 register "PcieRpEnable[9]" = "0"
Joe Tessler0b04d1bf2020-12-08 14:50:55 -0500208
Joe Tessler549abfb2021-03-19 16:44:17 +0800209 # PCIe root port 11 TPU1
Joe Tessler0b04d1bf2020-12-08 14:50:55 -0500210 register "PcieRpEnable[10]" = "1"
211 register "PcieRpLtrEnable[10]" = "1"
212 # RP 11 uses CLK SRC 1
Joe Tessler549abfb2021-03-19 16:44:17 +0800213 register "PcieClkSrcUsage[4]" = "10"
214 register "PcieClkSrcClkReq[4]" = "4"
215
216 # PCIe root port 12 TPU0
217 register "PcieRpEnable[11]" = "1"
218 register "PcieRpLtrEnable[11]" = "1"
219 # RP 11 uses CLK SRC 1
220 register "PcieClkSrcUsage[2]" = "11"
221 register "PcieClkSrcClkReq[2]" = "2"
Joe Tessler0b04d1bf2020-12-08 14:50:55 -0500222
223 # PCIe port 13 for i350 NIC (x4)
224 register "PcieRpEnable[12]" = "1"
225 register "PcieRpLtrEnable[12]" = "1"
226 # RP 13 uses CLK SRC 3
227 register "PcieClkSrcUsage[3]" = "12"
228 # RP 13 does not use a source clock request line
Joe Tessler549abfb2021-03-19 16:44:17 +0800229 # NOTE: Any value other than a valid source-clock-request (0-5) is
230 # effectively "not connected"
231 register "PcieClkSrcClkReq[3]" = "0xFF"
Joe Tessler0b04d1bf2020-12-08 14:50:55 -0500232 # Disable the remaining ports 14-16
233 register "PcieRpEnable[13]" = "0"
234 register "PcieRpEnable[14]" = "0"
235 register "PcieRpEnable[15]" = "0"
236
Matt Ziegelbaum06bff722020-11-06 21:42:10 -0500237 # GPIO for SD card detect
238 register "sdcard_cd_gpio" = "vSD3_CD_B"
239
240 # SATA port 1 Gen3 Strength
241 # Port1 Tx De-Emphasis = 20*log(0x20/64) = -6dB
242 register "sata_port[1].TxGen3DeEmphEnable" = "1"
243 register "sata_port[1].TxGen3DeEmph" = "0x20"
244
245 device domain 0 on
Matt DeVillier3f4c8302024-01-21 20:39:03 -0600246 device ref dptf on
Matt Ziegelbaum06bff722020-11-06 21:42:10 -0500247 chip drivers/intel/dptf
248 ## Active Policy
249 register "policies.active[0]" = "{.target=DPTF_CPU,
Kenneth Chan285f20a2021-03-05 15:06:43 +0800250 .thresholds={TEMP_PCT(94, 0),}}"
Matt Ziegelbaum06bff722020-11-06 21:42:10 -0500251 register "policies.active[1]" = "{.target=DPTF_TEMP_SENSOR_0,
Kenneth Chan285f20a2021-03-05 15:06:43 +0800252 .thresholds={TEMP_PCT(72, 90),
253 TEMP_PCT(68, 80),
254 TEMP_PCT(62, 70),
255 TEMP_PCT(54, 60),
256 TEMP_PCT(46, 50),
257 TEMP_PCT(39, 40),}}"
Matt Ziegelbaum06bff722020-11-06 21:42:10 -0500258
259 ## Passive Policy
Kenneth Chan285f20a2021-03-05 15:06:43 +0800260 register "policies.passive[0]" = "DPTF_PASSIVE(CPU, CPU, 95, 5000)"
261 register "policies.passive[1]" = "DPTF_PASSIVE(CPU, TEMP_SENSOR_0, 75, 5000)"
Matt Ziegelbaum06bff722020-11-06 21:42:10 -0500262
263 ## Critical Policy
264 register "policies.critical[0]" = "DPTF_CRITICAL(CPU, 100, SHUTDOWN)"
Kenneth Chan285f20a2021-03-05 15:06:43 +0800265 register "policies.critical[1]" = "DPTF_CRITICAL(TEMP_SENSOR_0, 85, SHUTDOWN)"
Matt Ziegelbaum06bff722020-11-06 21:42:10 -0500266
267 ## Power Limits Control
268 # PL1 is fixed at 15W, avg over 28-32s interval
Kenneth Chan285f20a2021-03-05 15:06:43 +0800269 # 51-51W PL2 in 1000mW increments, avg over 28-32s interval
Matt Ziegelbaum06bff722020-11-06 21:42:10 -0500270 register "controls.power_limits.pl1" = "{
271 .min_power = 15000,
272 .max_power = 15000,
273 .time_window_min = 28 * MSECS_PER_SEC,
274 .time_window_max = 32 * MSECS_PER_SEC,
Kenneth Chan285f20a2021-03-05 15:06:43 +0800275 .granularity = 125,}"
Matt Ziegelbaum06bff722020-11-06 21:42:10 -0500276 register "controls.power_limits.pl2" = "{
Kenneth Chan285f20a2021-03-05 15:06:43 +0800277 .min_power = 51000,
278 .max_power = 51000,
Matt Ziegelbaum06bff722020-11-06 21:42:10 -0500279 .time_window_min = 28 * MSECS_PER_SEC,
280 .time_window_max = 32 * MSECS_PER_SEC,
281 .granularity = 1000,}"
282
283 ## Charger Performance Control (Control, mA)
284 register "controls.charger_perf[0]" = "{ 255, 1700 }"
285 register "controls.charger_perf[1]" = "{ 24, 1500 }"
286 register "controls.charger_perf[2]" = "{ 16, 1000 }"
287 register "controls.charger_perf[3]" = "{ 8, 500 }"
288
289 ## Fan Performance Control (Percent, Speed, Noise, Power)
290 register "controls.fan_perf[0]" = "{ 90, 6700, 220, 2200, }"
291 register "controls.fan_perf[1]" = "{ 80, 5800, 180, 1800, }"
292 register "controls.fan_perf[2]" = "{ 70, 5000, 145, 1450, }"
293 register "controls.fan_perf[3]" = "{ 60, 4900, 115, 1150, }"
294 register "controls.fan_perf[4]" = "{ 50, 3838, 90, 900, }"
295 register "controls.fan_perf[5]" = "{ 40, 2904, 55, 550, }"
296 register "controls.fan_perf[6]" = "{ 30, 2337, 30, 300, }"
297 register "controls.fan_perf[7]" = "{ 20, 1608, 15, 150, }"
298 register "controls.fan_perf[8]" = "{ 10, 800, 10, 100, }"
299 register "controls.fan_perf[9]" = "{ 0, 0, 0, 50, }"
300
301 # Fan options
302 register "options.fan.fine_grained_control" = "1"
303 register "options.fan.step_size" = "2"
304
305 device generic 0 on end
306 end
Felix Singerd571ea22024-01-17 21:51:07 +0100307 end
Matt DeVillier3f4c8302024-01-21 20:39:03 -0600308 device ref xhci on
Matt Ziegelbaum06bff722020-11-06 21:42:10 -0500309 chip drivers/usb/acpi
310 device usb 0.0 on
311 chip drivers/usb/acpi
312 register "desc" = ""USB2 Type-A Front Left""
313 register "type" = "UPC_TYPE_A"
314 register "group" = "ACPI_PLD_GROUP(0, 0)"
315 device usb 2.0 on end
316 end
317 chip drivers/usb/acpi
318 register "desc" = ""USB2 Type-C Port Rear""
319 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
320 register "group" = "ACPI_PLD_GROUP(1, 3)"
321 device usb 2.1 on end
322 end
323 chip drivers/usb/acpi
324 register "desc" = ""USB2 Type-A Front Right""
325 register "type" = "UPC_TYPE_A"
326 register "group" = "ACPI_PLD_GROUP(0, 1)"
327 device usb 2.2 on end
328 end
329 chip drivers/usb/acpi
330 register "desc" = ""USB2 Type-A Rear Right""
331 register "type" = "UPC_TYPE_A"
332 register "group" = "ACPI_PLD_GROUP(1, 2)"
333 device usb 2.3 on end
334 end
335 chip drivers/usb/acpi
336 register "desc" = ""USB2 Type-A Rear Middle""
337 register "type" = "UPC_TYPE_A"
338 register "group" = "ACPI_PLD_GROUP(1, 1)"
339 device usb 2.4 on end
340 end
341 chip drivers/usb/acpi
342 register "desc" = ""USB2 Type-A Rear Left""
343 register "type" = "UPC_TYPE_A"
344 register "group" = "ACPI_PLD_GROUP(1, 0)"
345 device usb 2.5 on end
346 end
347 chip drivers/usb/acpi
348 device usb 2.6 off end
349 end
350 chip drivers/usb/acpi
351 register "desc" = ""USB3 Type-A Front Left""
352 register "type" = "UPC_TYPE_USB3_A"
353 register "group" = "ACPI_PLD_GROUP(0, 0)"
354 device usb 3.0 on end
355 end
356 chip drivers/usb/acpi
357 register "desc" = ""USB3 Type-A Front Right""
358 register "type" = "UPC_TYPE_USB3_A"
359 register "group" = "ACPI_PLD_GROUP(0, 1)"
360 device usb 3.1 on end
361 end
362 chip drivers/usb/acpi
363 register "desc" = ""USB3 Type-A Rear Right""
364 register "type" = "UPC_TYPE_USB3_A"
365 register "group" = "ACPI_PLD_GROUP(1, 2)"
366 device usb 3.2 on end
367 end
368 chip drivers/usb/acpi
369 register "desc" = ""USB3 Type-C Rear""
370 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
371 register "group" = "ACPI_PLD_GROUP(1, 3)"
372 device usb 3.3 on end
373 end
374 chip drivers/usb/acpi
Joe Tessler0b04d1bf2020-12-08 14:50:55 -0500375 # USB3 Port 5 is not populated
376 device usb 3.4 off end
Matt Ziegelbaum06bff722020-11-06 21:42:10 -0500377 end
378 chip drivers/usb/acpi
Joe Tessler0b04d1bf2020-12-08 14:50:55 -0500379 register "desc" = ""USB3 M.2 HDMI-to-USB""
Matt Ziegelbaum06bff722020-11-06 21:42:10 -0500380 register "type" = "UPC_TYPE_USB3_A"
Joe Tessler0b04d1bf2020-12-08 14:50:55 -0500381 register "group" = "ACPI_PLD_GROUP(2, 0)"
Matt Ziegelbaum06bff722020-11-06 21:42:10 -0500382 device usb 3.5 on end
383 end
384 end
385 end
Felix Singerd571ea22024-01-17 21:51:07 +0100386 end
Matt DeVillier3f4c8302024-01-21 20:39:03 -0600387 device ref i2c2 on
Felix Singerd571ea22024-01-17 21:51:07 +0100388 # PCON PS175
Matt Ziegelbaum06bff722020-11-06 21:42:10 -0500389 chip drivers/i2c/generic
390 register "hid" = ""1AF80175""
391 register "name" = ""PS17""
392 register "desc" = ""Parade PS175""
393 device i2c 4a on end
394 end
Felix Singerd571ea22024-01-17 21:51:07 +0100395 end
Matt DeVillier3f4c8302024-01-21 20:39:03 -0600396 device ref i2c3 on
Felix Singerd571ea22024-01-17 21:51:07 +0100397 # Realtek RTD2142
Matt Ziegelbaum06bff722020-11-06 21:42:10 -0500398 chip drivers/i2c/generic
399 register "hid" = ""10EC2142""
400 register "name" = ""RTD2""
401 register "desc" = ""Realtek RTD2142""
402 device i2c 4a on end
403 end
Felix Singerd571ea22024-01-17 21:51:07 +0100404 end
Matt DeVillier3f4c8302024-01-21 20:39:03 -0600405 device ref i2c4 on
Matt Ziegelbaum06bff722020-11-06 21:42:10 -0500406 chip drivers/i2c/generic
407 register "hid" = ""10EC5682""
408 register "name" = ""RT58""
409 register "desc" = ""Realtek RT5682""
410 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_BOTH(GPP_H0)"
411 register "property_count" = "1"
412 # Set the jd_src to RT5668_JD1 for jack detection
413 register "property_list[0].type" = "ACPI_DP_TYPE_INTEGER"
414 register "property_list[0].name" = ""realtek,jd-src""
415 register "property_list[0].integer" = "1"
416 device i2c 1a on end
417 end
Felix Singerd571ea22024-01-17 21:51:07 +0100418 end
Matt DeVillier3f4c8302024-01-21 20:39:03 -0600419 device ref pcie_rp7 on
Felix Singerd571ea22024-01-17 21:51:07 +0100420 # LAN
Joe Tessler0b04d1bf2020-12-08 14:50:55 -0500421 chip drivers/net # RTL8111H Ethernet NIC
Matt Ziegelbaum06bff722020-11-06 21:42:10 -0500422 register "customized_leds" = "0x05af"
423 register "wake" = "GPE0_DW1_07" # GPP_C7
Matt Ziegelbaum06bff722020-11-06 21:42:10 -0500424 register "device_index" = "0"
Alexis Savery8ba64cd2023-08-30 20:11:34 +0000425 register "enable_aspm_l1_2" = "1"
Matt DeVillierf03b8fc2023-11-19 16:12:56 -0600426 device pci 00.0 on end
Matt Ziegelbaum06bff722020-11-06 21:42:10 -0500427 end
Joe Tessler0b04d1bf2020-12-08 14:50:55 -0500428 end
Matt DeVillier3f4c8302024-01-21 20:39:03 -0600429 device ref pcie_rp8 on
Felix Singerd571ea22024-01-17 21:51:07 +0100430 # WLAN
Joe Tessler0b04d1bf2020-12-08 14:50:55 -0500431 register "PcieRpSlotImplemented[7]" = "1" # M.2 Slot
432 end
Matt DeVillier3f4c8302024-01-21 20:39:03 -0600433 device ref pcie_rp9 on
Felix Singerd571ea22024-01-17 21:51:07 +0100434 # TPU
Joe Tessler0b04d1bf2020-12-08 14:50:55 -0500435 register "PcieRpSlotImplemented[8]" = "1" # M.2 Slot
436 end
Matt DeVillier3f4c8302024-01-21 20:39:03 -0600437 device ref pcie_rp11 on
Felix Singerd571ea22024-01-17 21:51:07 +0100438 # TPU1
Joe Tessler549abfb2021-03-19 16:44:17 +0800439 register "PcieRpSlotImplemented[10]" = "1" # M.2 Slot
Matt DeVillier3f4c8302024-01-21 20:39:03 -0600440 end
441 device ref pcie_rp12 on
Felix Singerd571ea22024-01-17 21:51:07 +0100442 # TPU0
Joe Tessler549abfb2021-03-19 16:44:17 +0800443 register "PcieRpSlotImplemented[11]" = "1" # M.2 Slot
Matt DeVillier3f4c8302024-01-21 20:39:03 -0600444 end
445 device ref pcie_rp13 on
Felix Singerd571ea22024-01-17 21:51:07 +0100446 # X4 i350 NIC
Joe Tessler0b04d1bf2020-12-08 14:50:55 -0500447 register "PcieRpSlotImplemented[12]" = "0" # Built-in
448 end
Matt DeVillier3f4c8302024-01-21 20:39:03 -0600449 device ref pcie_rp14 on end # non-root
450 device ref pcie_rp15 on end # non-root
451 device ref pcie_rp16 on end # non-root
Matt Ziegelbaum06bff722020-11-06 21:42:10 -0500452 end
453
454 # VR Settings Configuration for 4 Domains
455 #+----------------+-------+-------+-------+-------+
456 #| Domain/Setting | SA | IA | GTUS | GTS |
457 #+----------------+-------+-------+-------+-------+
458 #| Psi1Threshold | 20A | 20A | 20A | 20A |
459 #| Psi2Threshold | 5A | 5A | 5A | 5A |
460 #| Psi3Threshold | 1A | 1A | 1A | 1A |
461 #| Psi3Enable | 1 | 1 | 1 | 1 |
462 #| Psi4Enable | 1 | 1 | 1 | 1 |
463 #| ImonSlope | 0 | 0 | 0 | 0 |
464 #| ImonOffset | 0 | 0 | 0 | 0 |
465 #| VrVoltageLimit | 1.52V | 1.52V | 1.52V | 1.52V |
466 #| AcLoadline | 10.04 | 1.81 | 3.19 | 3.19 |
467 #| DcLoadline | 10.04 | 1.81 | 3.19 | 3.19 |
468 #+----------------+-------+-------+-------+-------+
469 #Note: IccMax settings are moved to SoC code
470 register "domain_vr_config[VR_SYSTEM_AGENT]" = "{
471 .vr_config_enable = 1,
472 .psi1threshold = VR_CFG_AMP(20),
473 .psi2threshold = VR_CFG_AMP(5),
474 .psi3threshold = VR_CFG_AMP(1),
475 .psi3enable = 1,
476 .psi4enable = 1,
477 .imon_slope = 0x0,
478 .imon_offset = 0x0,
479 .icc_max = 0,
480 .voltage_limit = 1520,
481 .ac_loadline = 1004,
482 .dc_loadline = 1004,
483 }"
484
485 register "domain_vr_config[VR_IA_CORE]" = "{
486 .vr_config_enable = 1,
487 .psi1threshold = VR_CFG_AMP(20),
488 .psi2threshold = VR_CFG_AMP(5),
489 .psi3threshold = VR_CFG_AMP(1),
490 .psi3enable = 1,
491 .psi4enable = 1,
492 .imon_slope = 0x0,
493 .imon_offset = 0x0,
494 .icc_max = 0,
495 .voltage_limit = 1520,
496 .ac_loadline = 181,
497 .dc_loadline = 181,
498 }"
499
500 register "domain_vr_config[VR_GT_UNSLICED]" = "{
501 .vr_config_enable = 1,
502 .psi1threshold = VR_CFG_AMP(20),
503 .psi2threshold = VR_CFG_AMP(5),
504 .psi3threshold = VR_CFG_AMP(1),
505 .psi3enable = 1,
506 .psi4enable = 1,
507 .imon_slope = 0x0,
508 .imon_offset = 0x0,
509 .icc_max = 0,
510 .voltage_limit = 1520,
511 .ac_loadline = 319,
512 .dc_loadline = 319,
513 }"
514
515 register "domain_vr_config[VR_GT_SLICED]" = "{
516 .vr_config_enable = 1,
517 .psi1threshold = VR_CFG_AMP(20),
518 .psi2threshold = VR_CFG_AMP(5),
519 .psi3threshold = VR_CFG_AMP(1),
520 .psi3enable = 1,
521 .psi4enable = 1,
522 .imon_slope = 0x0,
523 .imon_offset = 0x0,
524 .icc_max = 0,
525 .voltage_limit = 1520,
526 .ac_loadline = 319,
527 .dc_loadline = 319,
528 }"
529
530end