blob: d3624df0cf3ad143d8b95cb063198f47280d88ac [file] [log] [blame]
Matt DeVillier45b1da32022-09-07 17:21:01 -05001chip soc/intel/cannonlake
2
3 # GPE configuration
4 # Note that GPE events called out in ASL code rely on this
5 # route. i.e. If this route changes then the affected GPE
6 # offset bits also need to be changed.
7 # DW1 is used by:
8 # - GPP_C1 - PCIE_14_WLAN_WAKE_ODL
9 # - GPP_C21 - H1_PCH_INT_ODL
10 register "gpe0_dw0" = "PMC_GPP_A"
11 register "gpe0_dw1" = "PMC_GPP_C"
12 register "gpe0_dw2" = "PMC_GPP_D"
13
14 # EC host command ranges are in 0x800-0x8ff & 0x200-0x20f
15 register "gen1_dec" = "0x00fc0801"
16 register "gen2_dec" = "0x000c0201"
17 # EC memory map range is 0x900-0x9ff
18 register "gen3_dec" = "0x00fc0901"
19
20 # FSP configuration
21 register "SkipExtGfxScan" = "1"
22 register "SataSalpSupport" = "1"
23 register "SataPortsEnable[1]" = "1"
24 register "SataPortsDevSlp[1]" = "1"
25 # Configure devslp pad reset to PLT_RST
26 register "SataPortsDevSlpResetConfig[1]" = "SataDevSlpPlatformReset"
27 register "satapwroptimize" = "1"
28 # Enable System Agent dynamic frequency
29 register "SaGv" = "SaGv_Enabled"
30 # Enable S0ix
31 register "s0ix_enable" = "1"
32 # Enable DPTF
33 register "dptf_enable" = "1"
34 register "power_limits_config" = "{
35 .tdp_pl1_override = 15,
36 .tdp_pl2_override = 64,
37 }"
38 register "Device4Enable" = "1"
39 # Enable eDP device
40 register "DdiPortEdp" = "1"
41 # Enable HPD for DDI ports B/C
42 register "DdiPortBHpd" = "1"
43 register "DdiPortCHpd" = "1"
44 register "tcc_offset" = "10" # TCC of 90C
45 # Unlock GPIO pads
46 register "PchUnlockGpioPads" = "1"
47 # SD card WP pin configuration
48 register "ScsSdCardWpPinEnabled" = "0"
49
50 # NOTE: if any variant wants to override this value, use the same format
51 # as register "common_soc_config.pch_thermal_trip" = "value", instead of
52 # putting it under register "common_soc_config" in overridetree.cb file.
53 register "common_soc_config.pch_thermal_trip" = "77"
54
55 # Select CPU PL2/PL4 config
56 register "cpu_pl2_4_cfg" = "baseline"
57
58 # VR Settings Configuration for 4 Domains
59 #+----------------+-------+-------+-------+-------+
60 #| Domain/Setting | SA | IA | GTUS | GTS |
61 #+----------------+-------+-------+-------+-------+
62 #| Psi1Threshold | 20A | 20A | 20A | 20A |
63 #| Psi2Threshold | 5A | 5A | 5A | 5A |
64 #| Psi3Threshold | 1A | 1A | 1A | 1A |
65 #| Psi3Enable | 1 | 1 | 1 | 1 |
66 #| Psi4Enable | 1 | 1 | 1 | 1 |
67 #| ImonSlope | 0 | 0 | 0 | 0 |
68 #| ImonOffset | 0 | 0 | 0 | 0 |
69 #| IccMax | 6A | 70A | 31A | 31A |
70 #| VrVoltageLimit | 1.52V | 1.52V | 1.52V | 1.52V |
71 #| AcLoadline | 10.3 | 1.8 | 3.1 | 3.1 |
72 #| DcLoadline | 10.3 | 1.8 | 3.1 | 3.1 |
73 #+----------------+-------+-------+-------+-------+
74 register "domain_vr_config[VR_SYSTEM_AGENT]" = "{
75 .vr_config_enable = 1,
76 .psi1threshold = VR_CFG_AMP(20),
77 .psi2threshold = VR_CFG_AMP(5),
78 .psi3threshold = VR_CFG_AMP(1),
79 .psi3enable = 1,
80 .psi4enable = 1,
81 .imon_slope = 0x0,
82 .imon_offset = 0x0,
83 .icc_max = 0,
84 .voltage_limit = 1520,
85 .ac_loadline = 1030,
86 .dc_loadline = 1030,
87 }"
88
89 register "domain_vr_config[VR_IA_CORE]" = "{
90 .vr_config_enable = 1,
91 .psi1threshold = VR_CFG_AMP(20),
92 .psi2threshold = VR_CFG_AMP(5),
93 .psi3threshold = VR_CFG_AMP(1),
94 .psi3enable = 1,
95 .psi4enable = 1,
96 .imon_slope = 0x0,
97 .imon_offset = 0x0,
98 .icc_max = 0,
99 .voltage_limit = 1520,
100 .ac_loadline = 180,
101 .dc_loadline = 180,
102 }"
103
104 register "domain_vr_config[VR_GT_UNSLICED]" = "{
105 .vr_config_enable = 1,
106 .psi1threshold = VR_CFG_AMP(20),
107 .psi2threshold = VR_CFG_AMP(5),
108 .psi3threshold = VR_CFG_AMP(1),
109 .psi3enable = 1,
110 .psi4enable = 1,
111 .imon_slope = 0x0,
112 .imon_offset = 0x0,
113 .icc_max = 0,
114 .voltage_limit = 1520,
115 .ac_loadline = 310,
116 .dc_loadline = 310,
117 }"
118
119 register "domain_vr_config[VR_GT_SLICED]" = "{
120 .vr_config_enable = 1,
121 .psi1threshold = VR_CFG_AMP(20),
122 .psi2threshold = VR_CFG_AMP(5),
123 .psi3threshold = VR_CFG_AMP(1),
124 .psi3enable = 1,
125 .psi4enable = 1,
126 .imon_slope = 0x0,
127 .imon_offset = 0x0,
128 .icc_max = 0,
129 .voltage_limit = 1520,
130 .ac_loadline = 310,
131 .dc_loadline = 310,
132 }"
133
134 register "PchPmSlpS3MinAssert" = "2" # 50ms
135 register "PchPmSlpS4MinAssert" = "1" # 1s
136 register "PchPmSlpSusMinAssert" = "1" # 500ms
137 register "PchPmSlpAMinAssert" = "3" # 98ms
138
139 # NOTE: Duration programmed in the below register should never be smaller than the
140 # stretch duration programmed in the following registers -
141 # - GEN_PMCON_A.SLP_S3_MIN_ASST_WDTH (PchPmSlpS3MinAssert)
142 # - GEN_PMCON_A.S4MAW (PchPmSlpS4MinAssert)
143 # - PM_CFG.SLP_A_MIN_ASST_WDTH (PchPmSlpAMinAssert)
144 # - PM_CFG.SLP_LAN_MIN_ASST_WDTH
145 register "PchPmPwrCycDur" = "1" # 1s
146
147 # Enable Audio DSP oscillator qualification for S0ix
148 register "cppmvric2_adsposcdis" = "1"
149
150 register "usb2_ports[0]" = "USB2_PORT_TYPE_C(OC2)" # Type-C Port 0
151 register "usb2_ports[1]" = "USB2_PORT_TYPE_C(OC2)" # Type-C Port 1
152 register "usb2_ports[2]" = "USB2_PORT_SHORT(OC3)" # Type-A Port 0
153 register "usb2_ports[3]" = "USB2_PORT_LONG(OC3)" # Type-A Port 1
154 register "usb2_ports[5]" = "USB2_PORT_MID(OC_SKIP)" # WWAN
155 register "usb2_ports[6]" = "USB2_PORT_LONG(OC_SKIP)" # Camera
156 register "usb2_ports[9]" = "USB2_PORT_MID(OC_SKIP)" # BT
157
158 register "usb3_ports[0]" = "USB3_PORT_DEFAULT(OC2)" # Type-C Port 0
159 register "usb3_ports[1]" = "USB3_PORT_DEFAULT(OC2)" # Type-C Port 1
160 register "usb3_ports[2]" = "USB3_PORT_DEFAULT(OC3)" # Type-A Port 0
161 register "usb3_ports[3]" = "USB3_PORT_DEFAULT(OC3)" # Type-A Port 1
162 register "usb3_ports[4]" = "USB3_PORT_DEFAULT(OC_SKIP)" # WWAN
163
164 # Enable Root port 9(x4) for NVMe.
165 register "PcieRpEnable[8]" = "1"
166 register "PcieRpLtrEnable[8]" = "1"
167 # RP 9 uses CLK SRC 1
168 register "PcieClkSrcUsage[1]" = "8"
169 # ClkReq-to-ClkSrc mapping for CLK SRC 1
170 register "PcieClkSrcClkReq[1]" = "1"
171
172 # PCIe port 14 for M.2 E-key WLAN
173 register "PcieRpEnable[13]" = "1"
174 register "PcieRpLtrEnable[13]" = "1"
175 # RP 14 uses CLK SRC 3
176 register "PcieClkSrcUsage[3]" = "13"
177 register "PcieClkSrcClkReq[3]" = "3"
178
179 #Enable I2S Audio, SSP0, SSP1 and DMIC0, default DMIC1 N/A (by variants override)
180 register "PchHdaDspEnable" = "1"
181 register "PchHdaAudioLinkSsp0" = "1"
182 register "PchHdaAudioLinkSsp1" = "1"
183 register "PchHdaAudioLinkDmic0" = "1"
184 register "PchHdaAudioLinkDmic1" = "0"
185
186 # GPIO PM programming
187 register "gpio_override_pm" = "1"
188
189 # GPIO community PM configuration
190 # Disable dynamic clock gating; with bits 0-5 set in these registers,
191 # some short interrupt pulses were missed (esp. cr50 irq)
192 register "gpio_pm[COMM_0]" = "0"
193 register "gpio_pm[COMM_1]" = "0"
194 register "gpio_pm[COMM_2]" = "0"
195 register "gpio_pm[COMM_3]" = "0"
196 register "gpio_pm[COMM_4]" = "0"
197
Arthur Heymans69cd7292022-11-07 13:52:11 +0100198 device cpu_cluster 0 on end
Matt DeVillier45b1da32022-09-07 17:21:01 -0500199
200 device domain 0 on
Felix Singerd571ea22024-01-17 21:51:07 +0100201 device ref system_agent on end
202 device ref igpu on end
203 device ref dptf off end
204 device ref ipu off end
205 device ref thermal on end
206 device ref ufs off end
207 device ref gspi2 off end
208 device ref xhci on
Matt DeVillier45b1da32022-09-07 17:21:01 -0500209 chip drivers/usb/acpi
210 register "desc" = ""Root Hub""
211 register "type" = "UPC_TYPE_HUB"
212 device usb 0.0 on
213 chip drivers/usb/acpi
214 register "desc" = ""Left Type-C Port""
215 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
216 register "group" = "ACPI_PLD_GROUP(1, 1)"
217 device usb 2.0 on end
218 end
219 chip drivers/usb/acpi
220 register "desc" = ""Right Type-C Port 1""
221 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
222 register "group" = "ACPI_PLD_GROUP(2, 1)"
223 device usb 2.1 on end
224 end
225 chip drivers/usb/acpi
226 register "desc" = ""Left Type-A Port""
227 register "type" = "UPC_TYPE_A"
228 register "group" = "ACPI_PLD_GROUP(1, 2)"
229 device usb 2.2 on end
230 end
231 chip drivers/usb/acpi
232 register "desc" = ""Right Type-A Port 1""
233 register "type" = "UPC_TYPE_A"
234 register "group" = "ACPI_PLD_GROUP(2, 2)"
235 device usb 2.3 on end
236 end
237 chip drivers/usb/acpi
238 register "desc" = ""WWAN""
239 register "type" = "UPC_TYPE_INTERNAL"
240 device usb 2.5 on end
241 end
242 chip drivers/usb/acpi
243 register "desc" = ""Camera""
244 register "type" = "UPC_TYPE_INTERNAL"
245 device usb 2.6 on end
246 end
247 chip drivers/usb/acpi
248 register "desc" = ""Bluetooth""
249 register "type" = "UPC_TYPE_INTERNAL"
250 register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_C14)"
251 device usb 2.9 on end
252 end
253 chip drivers/usb/acpi
254 register "desc" = ""Left Type-C Port""
255 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
256 register "group" = "ACPI_PLD_GROUP(1, 1)"
257 device usb 3.0 on end
258 end
259 chip drivers/usb/acpi
260 register "desc" = ""Right Type-C Port 1""
261 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
262 register "group" = "ACPI_PLD_GROUP(2, 1)"
263 device usb 3.1 on end
264 end
265 chip drivers/usb/acpi
266 register "desc" = ""Left Type-A Port""
267 register "type" = "UPC_TYPE_USB3_A"
268 register "group" = "ACPI_PLD_GROUP(1, 2)"
269 device usb 3.2 on end
270 end
271 chip drivers/usb/acpi
272 register "desc" = ""Right Type-A Port 1""
273 register "type" = "UPC_TYPE_USB3_A"
274 register "group" = "ACPI_PLD_GROUP(2, 2)"
275 device usb 3.3 on end
276 end
277 chip drivers/usb/acpi
278 register "desc" = ""WWAN""
279 register "type" = "UPC_TYPE_INTERNAL"
280 device usb 3.4 on end
281 end
282 end
283 end
Felix Singerd571ea22024-01-17 21:51:07 +0100284 end
285 device ref xdci off end
286 device ref cnvi_wifi on
Matt DeVillier45b1da32022-09-07 17:21:01 -0500287 chip drivers/wifi/generic
288 register "wake" = "GPE0_PME_B0"
289 device generic 0 on end
290 end
Felix Singerd571ea22024-01-17 21:51:07 +0100291 end
292 device ref sdxc on end
293 device ref i2c0 on end
294 device ref i2c1 on end
295 device ref i2c2 on end
296 device ref i2c3 on end
297 device ref heci1 on end
298 device ref heci2 off end
299 device ref csme_ider off end
300 device ref csme_ktr off end
301 device ref heci3 off end
302 device ref heci4 off end
303 device ref sata on end
304 device ref i2c4 on end
305 device ref i2c5 off end
306 device ref uart2 off end
307 device ref emmc off end
308 device ref pcie_rp1 off end
309 device ref pcie_rp2 off end
310 device ref pcie_rp3 off end
311 device ref pcie_rp4 off end
312 device ref pcie_rp5 off end
313 device ref pcie_rp6 off end
314 device ref pcie_rp7 off end
315 device ref pcie_rp8 off end
316 device ref pcie_rp9 on
317 # X4 NVME
Matt DeVillier45b1da32022-09-07 17:21:01 -0500318 register "PcieRpSlotImplemented[8]" = "1"
319 end
Felix Singerd571ea22024-01-17 21:51:07 +0100320 device ref pcie_rp10 off end
321 device ref pcie_rp11 off end
322 device ref pcie_rp12 off end
323 device ref pcie_rp13 off end
324 device ref pcie_rp14 on
325 # x4
Matt DeVillier45b1da32022-09-07 17:21:01 -0500326 chip drivers/wifi/generic
327 register "wake" = "GPE0_DW1_01"
Matt DeVillier6c705e72023-11-01 15:52:03 -0500328 device generic 0 on end
Matt DeVillier45b1da32022-09-07 17:21:01 -0500329 end
330 register "PcieRpSlotImplemented[13]" = "1"
Felix Singerd571ea22024-01-17 21:51:07 +0100331 end
332 device ref uart0 on end
333 device ref uart1 off end
334 device ref gspi0 on
Matt DeVillier45b1da32022-09-07 17:21:01 -0500335 chip drivers/spi/acpi
336 register "hid" = "ACPI_DT_NAMESPACE_HID"
337 register "compat_string" = ""google,cr50""
338 register "irq" = "ACPI_IRQ_EDGE_LOW(GPP_C21_IRQ)"
339 device spi 0 on end
340 end
Felix Singerd571ea22024-01-17 21:51:07 +0100341 end
342 device ref gspi1 on end
343 device ref lpc_espi on
Matt DeVillier45b1da32022-09-07 17:21:01 -0500344 chip ec/google/chromeec
345 device pnp 0c09.0 on end
346 end
Felix Singerd571ea22024-01-17 21:51:07 +0100347 end
348 device ref p2sb on end
349 device ref pmc hidden end
350 device ref hda on
Matt DeVillier1d876382023-01-17 12:25:45 -0600351 chip drivers/sof
352 register "jack_tplg" = "rt5682"
353 device generic 0 on end
354 end
Felix Singerd571ea22024-01-17 21:51:07 +0100355 end
356 device ref smbus on end
357 device ref fast_spi on end
358 device ref gbe off end
Matt DeVillier45b1da32022-09-07 17:21:01 -0500359 end
360end