blob: df8bd2afd3d4f4fd6b20e499be94a7fae55ae548 [file] [log] [blame]
Mathew King2e2fc7a2020-12-08 11:33:58 -07001# SPDX-License-Identifier: GPL-2.0-or-later
2chip soc/amd/cezanne
Mathew Kingc44cc192021-02-23 14:15:50 -07003
Karthikeyan Ramasubramaniane71a6ee2021-04-23 09:51:41 -06004 register "common_config.acp_config" = "{
5 .acp_pin_cfg = I2S_PINS_I2S_TDM,
6 .acp_i2s_wake_enable = 0,
7 .acp_pme_enable = 0,
Karthikeyan Ramasubramanian6ce71e32021-05-27 16:34:29 -06008 .dmic_present = 1,
Karthikeyan Ramasubramaniane71a6ee2021-04-23 09:51:41 -06009 }"
10
Mathew Kingc44cc192021-02-23 14:15:50 -070011 # eSPI Configuration
12 register "common_config.espi_config" = "{
13 .std_io_decode_bitmap = ESPI_DECODE_IO_0x80_EN | ESPI_DECODE_IO_0X60_0X64_EN,
14 .generic_io_range[0] = {
15 .base = 0x62,
16 /*
17 * Only 0x62 and 0x66 are required. But, this is not supported by
18 * standard IO decodes and there are only 4 generic I/O windows
19 * available. Hence, open a window from 0x62-0x67.
20 */
21 .size = 5,
22 },
23 .generic_io_range[1] = {
24 .base = 0x800, /* EC_HOST_CMD_REGION0 */
25 .size = 256, /* EC_HOST_CMD_REGION_SIZE * 2 */
26 },
27 .generic_io_range[2] = {
28 .base = 0x900, /* EC_LPC_ADDR_MEMMAP */
29 .size = 255, /* EC_MEMMAP_SIZE */
30 },
31 .generic_io_range[3] = {
32 .base = 0x200, /* EC_LPC_ADDR_HOST_DATA */
33 .size = 8, /* 0x200 - 0x207 */
34 },
35
36 .io_mode = ESPI_IO_MODE_QUAD,
Rob Barnes20d689f2021-04-15 17:31:01 -060037 .op_freq_mhz = ESPI_OP_FREQ_33_MHZ,
Mathew Kingc44cc192021-02-23 14:15:50 -070038 .crc_check_enable = 1,
Raul E Rangelf33f8572021-05-05 13:41:24 -060039 .alert_pin = ESPI_ALERT_PIN_IN_BAND,
Mathew Kingc44cc192021-02-23 14:15:50 -070040 .periph_ch_en = 1,
41 .vw_ch_en = 1,
42 .oob_ch_en = 0,
43 .flash_ch_en = 0,
44
Raul E Rangel5804aa32021-04-06 15:51:46 -060045 .vw_irq_polarity = ESPI_VW_IRQ_LEVEL_HIGH(1),
Mathew Kingc44cc192021-02-23 14:15:50 -070046 }"
47
Karthikeyan Ramasubramanianb6a44762021-04-22 17:03:56 -060048 # Enable S0i3 support
49 register "s0ix_enable" = "1"
50
Jason Glenesk87f20732021-06-11 12:09:20 -070051 # Enable STT support
52 register "stt_control" = "1"
53 register "stt_pcb_sensor_count" = "2"
54 register "stt_min_limit" = "0"
55 register "stt_m1" = "0x0319"
56 register "stt_m2" = "0x01A0"
57 register "stt_m3" = "0"
58 register "stt_m4" = "0"
59 register "stt_m5" = "0"
60 register "stt_m6" = "0"
61 register "stt_c_apu" = "0xE99F"
62 register "stt_c_gpu" = "0"
63 register "stt_c_hs2" = "0"
64 register "stt_alpha_apu" = "0xCCD"
65 register "stt_alpha_gpu" = "0"
66 register "stt_alpha_hs2" = "0"
67 register "stt_skin_temp_apu" = "0x2D00"
68 register "stt_skin_temp_gpu" = "0"
69 register "stt_skin_temp_hs2" = "0"
70 register "stt_error_coeff" = "0xD"
71 register "stt_error_rate_coefficient" = "0x8F6"
72
Martin Rothe5b85c32021-04-26 16:04:51 -060073 register "system_configuration" = "2"
74
Karthikeyan Ramasubramanian699a7092021-03-15 06:42:15 -060075 register "i2c_scl_reset" = "GPIO_I2C0_SCL | GPIO_I2C1_SCL |
76 GPIO_I2C2_SCL | GPIO_I2C3_SCL"
Karthikeyan Ramasubramanianfec4db92021-06-02 16:14:39 -060077 # I2C Pad Control RX Select Configuration
78 register "i2c_pad_ctrl_rx_sel[0]" = "I2C_PAD_CTRL_RX_SEL_3_3V" # Trackpad
79 register "i2c_pad_ctrl_rx_sel[1]" = "I2C_PAD_CTRL_RX_SEL_3_3V" # Touchscreen
80 register "i2c_pad_ctrl_rx_sel[2]" = "I2C_PAD_CTRL_RX_SEL_3_3V" # Audio/SAR
81 register "i2c_pad_ctrl_rx_sel[3]" = "I2C_PAD_CTRL_RX_SEL_1_8V" # GSC
Karthikeyan Ramasubramanian699a7092021-03-15 06:42:15 -060082
Patrick Huang25fc0702021-08-10 17:52:01 +080083 # genral purpose PCIe clock output configuration
84 register "gpp_clk_config[0]" = "GPP_CLK_REQ"
85 register "gpp_clk_config[1]" = "GPP_CLK_REQ"
86 register "gpp_clk_config[2]" = "GPP_CLK_REQ"
87 register "gpp_clk_config[3]" = "GPP_CLK_REQ"
88 register "gpp_clk_config[4]" = "GPP_CLK_OFF"
89 register "gpp_clk_config[5]" = "GPP_CLK_OFF"
90 register "gpp_clk_config[6]" = "GPP_CLK_OFF"
91
Matt Papageorge5a2feed2021-07-20 15:09:46 -050092 register "pspp_policy" = "DXIO_PSPP_BALANCED"
Felix Helda7c410b2021-05-25 20:51:35 +020093
Julian Schroedercf2c99f2021-05-21 14:56:00 -050094 register "usb_phy_custom" = "1"
95 register "usb_phy" = "{
96 .Usb2PhyPort[0] = {
97 .compdstune = 3,
98 .sqrxtune = 3,
99 .txfslstune = 3,
100 .txpreempamptune = 1,
101 .txpreemppulsetune = 0,
102 .txrisetune = 1,
103 .txvreftune = 6,
104 .txhsxvtune = 3,
105 .txrestune = 1,
106 },
107 .Usb2PhyPort[1] = {
108 .compdstune = 3,
109 .sqrxtune = 3,
110 .txfslstune = 3,
111 .txpreempamptune = 1,
112 .txpreemppulsetune = 0,
113 .txrisetune = 1,
114 .txvreftune = 6,
115 .txhsxvtune = 3,
116 .txrestune = 1,
117 },
118 .Usb2PhyPort[2] = {
119 .compdstune = 1,
120 .sqrxtune = 3,
121 .txfslstune = 3,
122 .txpreempamptune = 2,
123 .txpreemppulsetune = 0,
124 .txrisetune = 2,
125 .txvreftune = 3,
126 .txhsxvtune = 3,
127 .txrestune = 2,
128 },
129 .Usb2PhyPort[3] = {
130 .compdstune = 1,
131 .sqrxtune = 3,
132 .txfslstune = 3,
133 .txpreempamptune = 2,
134 .txpreemppulsetune = 0,
135 .txrisetune = 2,
136 .txvreftune = 3,
137 .txhsxvtune = 3,
138 .txrestune = 2,
139 },
140 .Usb2PhyPort[4] = {
141 .compdstune = 3,
142 .sqrxtune = 3,
143 .txfslstune = 3,
144 .txpreempamptune = 1,
145 .txpreemppulsetune = 0,
146 .txrisetune = 1,
147 .txvreftune = 6,
148 .txhsxvtune = 3,
149 .txrestune = 1,
150 },
151 .Usb2PhyPort[5] = {
Ivy Jian13bf4dd2021-08-12 12:06:38 +0800152 .compdstune = 5,
Julian Schroedercf2c99f2021-05-21 14:56:00 -0500153 .sqrxtune = 3,
154 .txfslstune = 3,
155 .txpreempamptune = 1,
156 .txpreemppulsetune = 0,
157 .txrisetune = 1,
Ivy Jian13bf4dd2021-08-12 12:06:38 +0800158 .txvreftune = 9,
Julian Schroedercf2c99f2021-05-21 14:56:00 -0500159 .txhsxvtune = 3,
160 .txrestune = 1,
161 },
162 .Usb2PhyPort[6] = {
163 .compdstune = 1,
164 .sqrxtune = 3,
165 .txfslstune = 3,
166 .txpreempamptune = 2,
167 .txpreemppulsetune = 0,
168 .txrisetune = 2,
169 .txvreftune = 3,
170 .txhsxvtune = 3,
171 .txrestune = 2,
172 },
173 .Usb2PhyPort[7] = {
174 .compdstune = 1,
175 .sqrxtune = 3,
176 .txfslstune = 3,
177 .txpreempamptune = 2,
178 .txpreemppulsetune = 0,
179 .txrisetune = 2,
180 .txvreftune = 3,
181 .txhsxvtune = 3,
182 .txrestune = 2,
183 },
184
185 .Usb3PhyPort[0] = {
186 .tx_term_ctrl=2,
187 .rx_term_ctrl=2,
188 .tx_vboost_lvl_en=1,
189 .tx_vboost_lvl=5,
190 },
191 .Usb3PhyPort[1] = {
192 .tx_term_ctrl=2,
193 .rx_term_ctrl=2,
194 .tx_vboost_lvl_en=1,
195 .tx_vboost_lvl=5,
196 },
197 .Usb3PhyPort[2] = {
198 .tx_term_ctrl=2,
199 .rx_term_ctrl=2,
200 .tx_vboost_lvl_en=1,
201 .tx_vboost_lvl=5,
202 },
203 .Usb3PhyPort[3] = {
204 .tx_term_ctrl=2,
205 .rx_term_ctrl=2,
206 .tx_vboost_lvl_en=1,
207 .tx_vboost_lvl=5,
208 },
209
210 .ComboPhyStaticConfig[0] = 0,
211 .ComboPhyStaticConfig[1] = 0,
212 .Version_Major = 0xd,
213 .Version_Minor = 0x4,
214 .TableLength = 100,
215 .BatteryChargerEnable = 0,
216 .PhyP3CpmP4Support = 0,
217 }"
218
Mathew King2e2fc7a2020-12-08 11:33:58 -0700219 device domain 0 on
Raul E Rangel3acc5152021-06-09 13:36:10 -0600220 device ref iommu on end
221
Karthikeyan Ramasubramanian24abd3e2021-05-04 16:19:32 -0600222 device ref gpp_bridge_0 on
223 chip drivers/wifi/generic
224 register "wake" = "GEVENT_8"
225 device pci 00.0 on end
226 end
227 end # WLAN
Mathew King095bdec2021-03-12 14:01:22 -0700228 device ref gpp_bridge_1 on end # SD
229 device ref gpp_bridge_2 on end # WWAN
Raul E Rangelc54968d2021-05-26 17:04:14 -0600230 device ref gpp_bridge_3 on
231 # Required so the NVMe gets placed into D3 when entering S0i3.
232 chip drivers/pcie/rtd3/device
233 register "name" = ""NVME""
234 device pci 00.0 on end
235 end
236 end # NVMe
Mathew King095bdec2021-03-12 14:01:22 -0700237
Mathew Kingabc69712021-03-03 16:36:46 -0700238 device ref gpp_bridge_a on # Internal GPP Bridge 0 to Bus A
Raul Rangelca25ad52021-04-06 15:33:16 +0000239 device ref gfx on end # Internal GPU (GFX)
Karthikeyan Ramasubramanianf6b2a1c2021-05-04 00:38:22 -0600240 device ref gfx_hda on end # GFX HD Audio Controller
Felix Held1028a412021-05-26 22:48:30 +0200241 device ref crypto on end # Crypto Coprocessor
Mathew King238242b2021-03-04 08:24:55 -0700242 device ref xhci_0 on # USB 3.1 (USB0)
243 chip drivers/usb/acpi
244 device ref xhci_0_root_hub on
245 chip drivers/usb/acpi
246 register "desc" = ""Right Type-C Port""
247 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
248 register "group" = "ACPI_PLD_GROUP(1, 1)"
249 device ref usb3_port0 on end
250 end
251 chip drivers/usb/acpi
252 register "desc" = ""Right Type-A Port""
253 register "type" = "UPC_TYPE_USB3_A"
254 register "group" = "ACPI_PLD_GROUP(1, 2)"
255 device ref usb3_port1 on end
256 end
257 chip drivers/usb/acpi
258 register "desc" = ""Right Type-C Port""
259 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
260 register "group" = "ACPI_PLD_GROUP(1, 1)"
261 device ref usb2_port0 on end
262 end
263 chip drivers/usb/acpi
264 register "desc" = ""Right Type-A Port""
265 register "type" = "UPC_TYPE_USB3_A"
266 register "group" = "ACPI_PLD_GROUP(1, 2)"
267 device ref usb2_port1 on end
268 end
269 chip drivers/usb/acpi
270 register "desc" = ""User-Facing Camera""
271 register "type" = "UPC_TYPE_INTERNAL"
272 device ref usb2_port2 on end
273 end
274 chip drivers/usb/acpi
275 register "desc" = ""World-Facing Camera""
276 register "type" = "UPC_TYPE_INTERNAL"
277 device ref usb2_port3 on end
278 end
279 end
280 end
281 end
282 device ref xhci_1 on # USB 3.1 (USB1)
283 chip drivers/usb/acpi
284 device ref xhci_1_root_hub on
285 chip drivers/usb/acpi
286 register "desc" = ""Left Type-C Port""
287 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
288 register "group" = "ACPI_PLD_GROUP(2, 2)"
289 device ref usb3_port4 on end
290 end
291 chip drivers/usb/acpi
292 register "desc" = ""Left Type-A Port""
293 register "type" = "UPC_TYPE_USB3_A"
294 register "group" = "ACPI_PLD_GROUP(2, 1)"
295 device ref usb3_port5 on end
296 end
297 chip drivers/usb/acpi
298 register "desc" = ""Left Type-C Port""
299 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
300 register "group" = "ACPI_PLD_GROUP(2, 2)"
301 device ref usb2_port4 on end
302 end
303 chip drivers/usb/acpi
304 register "desc" = ""Left Type-A Port""
305 register "type" = "UPC_TYPE_USB3_A"
306 register "group" = "ACPI_PLD_GROUP(2, 1)"
307 device ref usb2_port5 on end
308 end
309 chip drivers/usb/acpi
310 register "desc" = ""Bluetooth""
311 register "type" = "UPC_TYPE_INTERNAL"
Karthikeyan Ramasubramaniand84ce402021-03-30 16:27:59 -0600312 register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_132)"
Mathew King238242b2021-03-04 08:24:55 -0700313 device ref usb2_port6 on end
314 end
315 end
316 end
317 end
Karthikeyan Ramasubramaniane71a6ee2021-04-23 09:51:41 -0600318 device ref acp on
319 chip drivers/amd/i2s_machine_dev
Yu-Hsuan Hsu45c46b62021-06-15 14:52:03 +0800320 register "hid" = ""AMDI1019""
Karthikeyan Ramasubramaniane71a6ee2021-04-23 09:51:41 -0600321 device generic 0.0 on end
322 end
323 end # Audio
Mathew Kingabc69712021-03-03 16:36:46 -0700324 end
Mathew King78f03012021-03-05 09:04:44 -0700325
326 device ref lpc_bridge on
327 chip ec/google/chromeec
Raul E Rangelba102232021-05-12 17:07:39 -0600328 device pnp 0c09.0 alias chrome_ec on end
Mathew King78f03012021-03-05 09:04:44 -0700329 end
330 end
Mathew King2e2fc7a2020-12-08 11:33:58 -0700331 end # domain
Karthikeyan Ramasubramanian8f7fca52021-03-15 10:31:37 -0600332
333 device ref i2c_3 on
334 chip drivers/i2c/tpm
335 register "hid" = ""GOOG0005""
336 register "desc" = ""Cr50 TPM""
337 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_LOW(GPIO_3)"
338 device i2c 50 on end
339 end
340 end
Ivy Jiana7696ad2021-04-13 14:04:12 +0800341
342 device ref uart_0 on end # UART0
343
Raul E Rangelba102232021-05-12 17:07:39 -0600344 # See https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/platform/ec/baseboard/guybrush/baseboard.c;l=221
345 # for the EC configuration.
346 #
347 # EC is configured to power off the system at 105C, so add a two degree
348 # buffer so the OS can gracefully shutdown.
349 #
350 # EC is configured to assert PROCHOT at 100C. That drastically lowers
351 # performance. Instead we will tell the OS to start throttling the CPUs
352 # at 95C in hopes that we don't hit the PROCHOT limit.
353 #
354 # We set use_acpi1_thermal_zone_scope because the Chrome ec.asl
355 # performs a `Notify` to the `_\TZ` scope.
356 chip drivers/acpi/thermal_zone
357 register "description" = ""SOC""
358 use chrome_ec as temperature_controller
359 register "sensor_id" = "0"
360 register "polling_period" = "10"
361 register "critical_temperature" = "103"
362 register "passive_config.temperature" = "95"
363 register "use_acpi1_thermal_zone_scope" = "true"
364
365 device generic 0 on end
366 end
367 chip drivers/acpi/thermal_zone
368 register "description" = ""Charger""
369 use chrome_ec as temperature_controller
370 register "sensor_id" = "1"
371 register "polling_period" = "10"
372 register "critical_temperature" = "103"
373 register "passive_config.temperature" = "95"
374 register "use_acpi1_thermal_zone_scope" = "true"
375
376 device generic 1 on end
377 end
378 chip drivers/acpi/thermal_zone
379 register "description" = ""Memory""
380 use chrome_ec as temperature_controller
381 register "sensor_id" = "2"
382 register "polling_period" = "10"
383 register "critical_temperature" = "103"
384 register "passive_config.temperature" = "95"
385 register "use_acpi1_thermal_zone_scope" = "true"
386
387 device generic 2 on end
388 end
389 chip drivers/acpi/thermal_zone
390 register "description" = ""CPU""
391 use chrome_ec as temperature_controller
392 register "sensor_id" = "3"
393 register "polling_period" = "10"
394 register "critical_temperature" = "103"
395 register "passive_config.temperature" = "95"
396 register "use_acpi1_thermal_zone_scope" = "true"
397
398 device generic 3 on end
399 end
Mathew King2e2fc7a2020-12-08 11:33:58 -0700400end # chip soc/amd/cezanne