blob: f9a1201d68e217f12d986fe8c042a59c04f0b3ba [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
Martin Rothe5b85c32021-04-26 16:04:51 -060051 register "system_configuration" = "2"
52
Karthikeyan Ramasubramanian699a7092021-03-15 06:42:15 -060053 register "i2c_scl_reset" = "GPIO_I2C0_SCL | GPIO_I2C1_SCL |
54 GPIO_I2C2_SCL | GPIO_I2C3_SCL"
Karthikeyan Ramasubramanianfec4db92021-06-02 16:14:39 -060055 # I2C Pad Control RX Select Configuration
56 register "i2c_pad_ctrl_rx_sel[0]" = "I2C_PAD_CTRL_RX_SEL_3_3V" # Trackpad
57 register "i2c_pad_ctrl_rx_sel[1]" = "I2C_PAD_CTRL_RX_SEL_3_3V" # Touchscreen
58 register "i2c_pad_ctrl_rx_sel[2]" = "I2C_PAD_CTRL_RX_SEL_3_3V" # Audio/SAR
59 register "i2c_pad_ctrl_rx_sel[3]" = "I2C_PAD_CTRL_RX_SEL_1_8V" # GSC
Karthikeyan Ramasubramanian699a7092021-03-15 06:42:15 -060060
Matt Papageorge5a2feed2021-07-20 15:09:46 -050061 register "pspp_policy" = "DXIO_PSPP_BALANCED"
Felix Helda7c410b2021-05-25 20:51:35 +020062
Julian Schroedercf2c99f2021-05-21 14:56:00 -050063 register "usb_phy_custom" = "1"
64 register "usb_phy" = "{
65 .Usb2PhyPort[0] = {
66 .compdstune = 3,
67 .sqrxtune = 3,
68 .txfslstune = 3,
69 .txpreempamptune = 1,
70 .txpreemppulsetune = 0,
71 .txrisetune = 1,
72 .txvreftune = 6,
73 .txhsxvtune = 3,
74 .txrestune = 1,
75 },
76 .Usb2PhyPort[1] = {
77 .compdstune = 3,
78 .sqrxtune = 3,
79 .txfslstune = 3,
80 .txpreempamptune = 1,
81 .txpreemppulsetune = 0,
82 .txrisetune = 1,
83 .txvreftune = 6,
84 .txhsxvtune = 3,
85 .txrestune = 1,
86 },
87 .Usb2PhyPort[2] = {
88 .compdstune = 1,
89 .sqrxtune = 3,
90 .txfslstune = 3,
91 .txpreempamptune = 2,
92 .txpreemppulsetune = 0,
93 .txrisetune = 2,
94 .txvreftune = 3,
95 .txhsxvtune = 3,
96 .txrestune = 2,
97 },
98 .Usb2PhyPort[3] = {
99 .compdstune = 1,
100 .sqrxtune = 3,
101 .txfslstune = 3,
102 .txpreempamptune = 2,
103 .txpreemppulsetune = 0,
104 .txrisetune = 2,
105 .txvreftune = 3,
106 .txhsxvtune = 3,
107 .txrestune = 2,
108 },
109 .Usb2PhyPort[4] = {
110 .compdstune = 3,
111 .sqrxtune = 3,
112 .txfslstune = 3,
113 .txpreempamptune = 1,
114 .txpreemppulsetune = 0,
115 .txrisetune = 1,
116 .txvreftune = 6,
117 .txhsxvtune = 3,
118 .txrestune = 1,
119 },
120 .Usb2PhyPort[5] = {
121 .compdstune = 3,
122 .sqrxtune = 3,
123 .txfslstune = 3,
124 .txpreempamptune = 1,
125 .txpreemppulsetune = 0,
126 .txrisetune = 1,
127 .txvreftune = 6,
128 .txhsxvtune = 3,
129 .txrestune = 1,
130 },
131 .Usb2PhyPort[6] = {
132 .compdstune = 1,
133 .sqrxtune = 3,
134 .txfslstune = 3,
135 .txpreempamptune = 2,
136 .txpreemppulsetune = 0,
137 .txrisetune = 2,
138 .txvreftune = 3,
139 .txhsxvtune = 3,
140 .txrestune = 2,
141 },
142 .Usb2PhyPort[7] = {
143 .compdstune = 1,
144 .sqrxtune = 3,
145 .txfslstune = 3,
146 .txpreempamptune = 2,
147 .txpreemppulsetune = 0,
148 .txrisetune = 2,
149 .txvreftune = 3,
150 .txhsxvtune = 3,
151 .txrestune = 2,
152 },
153
154 .Usb3PhyPort[0] = {
155 .tx_term_ctrl=2,
156 .rx_term_ctrl=2,
157 .tx_vboost_lvl_en=1,
158 .tx_vboost_lvl=5,
159 },
160 .Usb3PhyPort[1] = {
161 .tx_term_ctrl=2,
162 .rx_term_ctrl=2,
163 .tx_vboost_lvl_en=1,
164 .tx_vboost_lvl=5,
165 },
166 .Usb3PhyPort[2] = {
167 .tx_term_ctrl=2,
168 .rx_term_ctrl=2,
169 .tx_vboost_lvl_en=1,
170 .tx_vboost_lvl=5,
171 },
172 .Usb3PhyPort[3] = {
173 .tx_term_ctrl=2,
174 .rx_term_ctrl=2,
175 .tx_vboost_lvl_en=1,
176 .tx_vboost_lvl=5,
177 },
178
179 .ComboPhyStaticConfig[0] = 0,
180 .ComboPhyStaticConfig[1] = 0,
181 .Version_Major = 0xd,
182 .Version_Minor = 0x4,
183 .TableLength = 100,
184 .BatteryChargerEnable = 0,
185 .PhyP3CpmP4Support = 0,
186 }"
187
Mathew King2e2fc7a2020-12-08 11:33:58 -0700188 device domain 0 on
Raul E Rangel3acc5152021-06-09 13:36:10 -0600189 device ref iommu on end
190
Karthikeyan Ramasubramanian24abd3e2021-05-04 16:19:32 -0600191 device ref gpp_bridge_0 on
192 chip drivers/wifi/generic
193 register "wake" = "GEVENT_8"
194 device pci 00.0 on end
195 end
196 end # WLAN
Mathew King095bdec2021-03-12 14:01:22 -0700197 device ref gpp_bridge_1 on end # SD
198 device ref gpp_bridge_2 on end # WWAN
Raul E Rangelc54968d2021-05-26 17:04:14 -0600199 device ref gpp_bridge_3 on
200 # Required so the NVMe gets placed into D3 when entering S0i3.
201 chip drivers/pcie/rtd3/device
202 register "name" = ""NVME""
203 device pci 00.0 on end
204 end
205 end # NVMe
Mathew King095bdec2021-03-12 14:01:22 -0700206
Mathew Kingabc69712021-03-03 16:36:46 -0700207 device ref gpp_bridge_a on # Internal GPP Bridge 0 to Bus A
Raul Rangelca25ad52021-04-06 15:33:16 +0000208 device ref gfx on end # Internal GPU (GFX)
Karthikeyan Ramasubramanianf6b2a1c2021-05-04 00:38:22 -0600209 device ref gfx_hda on end # GFX HD Audio Controller
Felix Held1028a412021-05-26 22:48:30 +0200210 device ref crypto on end # Crypto Coprocessor
Mathew King238242b2021-03-04 08:24:55 -0700211 device ref xhci_0 on # USB 3.1 (USB0)
212 chip drivers/usb/acpi
213 device ref xhci_0_root_hub on
214 chip drivers/usb/acpi
215 register "desc" = ""Right Type-C Port""
216 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
217 register "group" = "ACPI_PLD_GROUP(1, 1)"
218 device ref usb3_port0 on end
219 end
220 chip drivers/usb/acpi
221 register "desc" = ""Right Type-A Port""
222 register "type" = "UPC_TYPE_USB3_A"
223 register "group" = "ACPI_PLD_GROUP(1, 2)"
224 device ref usb3_port1 on end
225 end
226 chip drivers/usb/acpi
227 register "desc" = ""Right Type-C Port""
228 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
229 register "group" = "ACPI_PLD_GROUP(1, 1)"
230 device ref usb2_port0 on end
231 end
232 chip drivers/usb/acpi
233 register "desc" = ""Right Type-A Port""
234 register "type" = "UPC_TYPE_USB3_A"
235 register "group" = "ACPI_PLD_GROUP(1, 2)"
236 device ref usb2_port1 on end
237 end
238 chip drivers/usb/acpi
239 register "desc" = ""User-Facing Camera""
240 register "type" = "UPC_TYPE_INTERNAL"
241 device ref usb2_port2 on end
242 end
243 chip drivers/usb/acpi
244 register "desc" = ""World-Facing Camera""
245 register "type" = "UPC_TYPE_INTERNAL"
246 device ref usb2_port3 on end
247 end
248 end
249 end
250 end
251 device ref xhci_1 on # USB 3.1 (USB1)
252 chip drivers/usb/acpi
253 device ref xhci_1_root_hub on
254 chip drivers/usb/acpi
255 register "desc" = ""Left Type-C Port""
256 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
257 register "group" = "ACPI_PLD_GROUP(2, 2)"
258 device ref usb3_port4 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(2, 1)"
264 device ref usb3_port5 on end
265 end
266 chip drivers/usb/acpi
267 register "desc" = ""Left Type-C Port""
268 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
269 register "group" = "ACPI_PLD_GROUP(2, 2)"
270 device ref usb2_port4 on end
271 end
272 chip drivers/usb/acpi
273 register "desc" = ""Left Type-A Port""
274 register "type" = "UPC_TYPE_USB3_A"
275 register "group" = "ACPI_PLD_GROUP(2, 1)"
276 device ref usb2_port5 on end
277 end
278 chip drivers/usb/acpi
279 register "desc" = ""Bluetooth""
280 register "type" = "UPC_TYPE_INTERNAL"
Karthikeyan Ramasubramaniand84ce402021-03-30 16:27:59 -0600281 register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_132)"
Mathew King238242b2021-03-04 08:24:55 -0700282 device ref usb2_port6 on end
283 end
284 end
285 end
286 end
Karthikeyan Ramasubramaniane71a6ee2021-04-23 09:51:41 -0600287 device ref acp on
288 chip drivers/amd/i2s_machine_dev
Yu-Hsuan Hsu45c46b62021-06-15 14:52:03 +0800289 register "hid" = ""AMDI1019""
Karthikeyan Ramasubramaniane71a6ee2021-04-23 09:51:41 -0600290 device generic 0.0 on end
291 end
292 end # Audio
Mathew Kingabc69712021-03-03 16:36:46 -0700293 end
Mathew King78f03012021-03-05 09:04:44 -0700294
295 device ref lpc_bridge on
296 chip ec/google/chromeec
Raul E Rangelba102232021-05-12 17:07:39 -0600297 device pnp 0c09.0 alias chrome_ec on end
Mathew King78f03012021-03-05 09:04:44 -0700298 end
299 end
Mathew King2e2fc7a2020-12-08 11:33:58 -0700300 end # domain
Karthikeyan Ramasubramanian8f7fca52021-03-15 10:31:37 -0600301
302 device ref i2c_3 on
303 chip drivers/i2c/tpm
304 register "hid" = ""GOOG0005""
305 register "desc" = ""Cr50 TPM""
306 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_LOW(GPIO_3)"
307 device i2c 50 on end
308 end
309 end
Ivy Jiana7696ad2021-04-13 14:04:12 +0800310
311 device ref uart_0 on end # UART0
312
Raul E Rangelba102232021-05-12 17:07:39 -0600313 # See https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/platform/ec/baseboard/guybrush/baseboard.c;l=221
314 # for the EC configuration.
315 #
316 # EC is configured to power off the system at 105C, so add a two degree
317 # buffer so the OS can gracefully shutdown.
318 #
319 # EC is configured to assert PROCHOT at 100C. That drastically lowers
320 # performance. Instead we will tell the OS to start throttling the CPUs
321 # at 95C in hopes that we don't hit the PROCHOT limit.
322 #
323 # We set use_acpi1_thermal_zone_scope because the Chrome ec.asl
324 # performs a `Notify` to the `_\TZ` scope.
325 chip drivers/acpi/thermal_zone
326 register "description" = ""SOC""
327 use chrome_ec as temperature_controller
328 register "sensor_id" = "0"
329 register "polling_period" = "10"
330 register "critical_temperature" = "103"
331 register "passive_config.temperature" = "95"
332 register "use_acpi1_thermal_zone_scope" = "true"
333
334 device generic 0 on end
335 end
336 chip drivers/acpi/thermal_zone
337 register "description" = ""Charger""
338 use chrome_ec as temperature_controller
339 register "sensor_id" = "1"
340 register "polling_period" = "10"
341 register "critical_temperature" = "103"
342 register "passive_config.temperature" = "95"
343 register "use_acpi1_thermal_zone_scope" = "true"
344
345 device generic 1 on end
346 end
347 chip drivers/acpi/thermal_zone
348 register "description" = ""Memory""
349 use chrome_ec as temperature_controller
350 register "sensor_id" = "2"
351 register "polling_period" = "10"
352 register "critical_temperature" = "103"
353 register "passive_config.temperature" = "95"
354 register "use_acpi1_thermal_zone_scope" = "true"
355
356 device generic 2 on end
357 end
358 chip drivers/acpi/thermal_zone
359 register "description" = ""CPU""
360 use chrome_ec as temperature_controller
361 register "sensor_id" = "3"
362 register "polling_period" = "10"
363 register "critical_temperature" = "103"
364 register "passive_config.temperature" = "95"
365 register "use_acpi1_thermal_zone_scope" = "true"
366
367 device generic 3 on end
368 end
Mathew King2e2fc7a2020-12-08 11:33:58 -0700369end # chip soc/amd/cezanne