blob: 16f94daadd37d5dfa5f3175fdfe7876a7fb81756 [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
Matt DeVillier37601982024-01-21 18:48:28 -0600201 device ref igpu on end
202 device ref thermal on end
203 device ref xhci on
Matt DeVillier45b1da32022-09-07 17:21:01 -0500204 chip drivers/usb/acpi
205 register "desc" = ""Root Hub""
206 register "type" = "UPC_TYPE_HUB"
207 device usb 0.0 on
208 chip drivers/usb/acpi
209 register "desc" = ""Left Type-C Port""
210 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
211 register "group" = "ACPI_PLD_GROUP(1, 1)"
212 device usb 2.0 on end
213 end
214 chip drivers/usb/acpi
215 register "desc" = ""Right Type-C Port 1""
216 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
217 register "group" = "ACPI_PLD_GROUP(2, 1)"
218 device usb 2.1 on end
219 end
220 chip drivers/usb/acpi
221 register "desc" = ""Left Type-A Port""
222 register "type" = "UPC_TYPE_A"
223 register "group" = "ACPI_PLD_GROUP(1, 2)"
224 device usb 2.2 on end
225 end
226 chip drivers/usb/acpi
227 register "desc" = ""Right Type-A Port 1""
228 register "type" = "UPC_TYPE_A"
229 register "group" = "ACPI_PLD_GROUP(2, 2)"
230 device usb 2.3 on end
231 end
232 chip drivers/usb/acpi
233 register "desc" = ""WWAN""
234 register "type" = "UPC_TYPE_INTERNAL"
235 device usb 2.5 on end
236 end
237 chip drivers/usb/acpi
238 register "desc" = ""Camera""
239 register "type" = "UPC_TYPE_INTERNAL"
240 device usb 2.6 on end
241 end
242 chip drivers/usb/acpi
243 register "desc" = ""Bluetooth""
244 register "type" = "UPC_TYPE_INTERNAL"
245 register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_C14)"
246 device usb 2.9 on end
247 end
248 chip drivers/usb/acpi
249 register "desc" = ""Left Type-C Port""
250 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
251 register "group" = "ACPI_PLD_GROUP(1, 1)"
252 device usb 3.0 on end
253 end
254 chip drivers/usb/acpi
255 register "desc" = ""Right Type-C Port 1""
256 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
257 register "group" = "ACPI_PLD_GROUP(2, 1)"
258 device usb 3.1 on end
259 end
260 chip drivers/usb/acpi
261 register "desc" = ""Left Type-A Port""
262 register "type" = "UPC_TYPE_USB3_A"
263 register "group" = "ACPI_PLD_GROUP(1, 2)"
264 device usb 3.2 on end
265 end
266 chip drivers/usb/acpi
267 register "desc" = ""Right Type-A Port 1""
268 register "type" = "UPC_TYPE_USB3_A"
269 register "group" = "ACPI_PLD_GROUP(2, 2)"
270 device usb 3.3 on end
271 end
272 chip drivers/usb/acpi
273 register "desc" = ""WWAN""
274 register "type" = "UPC_TYPE_INTERNAL"
275 device usb 3.4 on end
276 end
277 end
278 end
Felix Singerd571ea22024-01-17 21:51:07 +0100279 end
Matt DeVillier37601982024-01-21 18:48:28 -0600280 device ref cnvi_wifi on
Matt DeVillier45b1da32022-09-07 17:21:01 -0500281 chip drivers/wifi/generic
282 register "wake" = "GPE0_PME_B0"
283 device generic 0 on end
284 end
Felix Singerd571ea22024-01-17 21:51:07 +0100285 end
Matt DeVillier37601982024-01-21 18:48:28 -0600286 device ref sdxc on end
287 device ref i2c0 on end
288 device ref i2c1 on end
289 device ref i2c2 on end
290 device ref i2c3 on end
291 device ref heci1 on end
292 device ref sata on end
293 device ref i2c4 on end
294 device ref pcie_rp9 on
Felix Singerd571ea22024-01-17 21:51:07 +0100295 # X4 NVME
Matt DeVillier45b1da32022-09-07 17:21:01 -0500296 register "PcieRpSlotImplemented[8]" = "1"
297 end
Matt DeVillier37601982024-01-21 18:48:28 -0600298 device ref pcie_rp14 on
Felix Singerd571ea22024-01-17 21:51:07 +0100299 # x4
Matt DeVillier45b1da32022-09-07 17:21:01 -0500300 chip drivers/wifi/generic
301 register "wake" = "GPE0_DW1_01"
Matt DeVillier6c705e72023-11-01 15:52:03 -0500302 device generic 0 on end
Matt DeVillier45b1da32022-09-07 17:21:01 -0500303 end
304 register "PcieRpSlotImplemented[13]" = "1"
Felix Singerd571ea22024-01-17 21:51:07 +0100305 end
Matt DeVillier37601982024-01-21 18:48:28 -0600306 device ref uart0 on end
307 device ref gspi0 on
Matt DeVillier45b1da32022-09-07 17:21:01 -0500308 chip drivers/spi/acpi
309 register "hid" = "ACPI_DT_NAMESPACE_HID"
310 register "compat_string" = ""google,cr50""
311 register "irq" = "ACPI_IRQ_EDGE_LOW(GPP_C21_IRQ)"
312 device spi 0 on end
313 end
Felix Singerd571ea22024-01-17 21:51:07 +0100314 end
Matt DeVillier37601982024-01-21 18:48:28 -0600315 device ref gspi1 on end
Felix Singerd571ea22024-01-17 21:51:07 +0100316 device ref lpc_espi on
Matt DeVillier45b1da32022-09-07 17:21:01 -0500317 chip ec/google/chromeec
318 device pnp 0c09.0 on end
319 end
Felix Singerd571ea22024-01-17 21:51:07 +0100320 end
Matt DeVillier37601982024-01-21 18:48:28 -0600321 device ref p2sb on end
322 device ref hda on
Matt DeVillier1d876382023-01-17 12:25:45 -0600323 chip drivers/sof
324 register "jack_tplg" = "rt5682"
325 device generic 0 on end
326 end
Felix Singerd571ea22024-01-17 21:51:07 +0100327 end
Matt DeVillier37601982024-01-21 18:48:28 -0600328 device ref smbus on end
329 device ref fast_spi on end
Matt DeVillier45b1da32022-09-07 17:21:01 -0500330 end
331end