blob: 2c0c5d97c4141b3c585130e47da1a5fedadb1a1a [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,
8 }"
9
Mathew Kingc44cc192021-02-23 14:15:50 -070010 # eSPI Configuration
11 register "common_config.espi_config" = "{
12 .std_io_decode_bitmap = ESPI_DECODE_IO_0x80_EN | ESPI_DECODE_IO_0X60_0X64_EN,
13 .generic_io_range[0] = {
14 .base = 0x62,
15 /*
16 * Only 0x62 and 0x66 are required. But, this is not supported by
17 * standard IO decodes and there are only 4 generic I/O windows
18 * available. Hence, open a window from 0x62-0x67.
19 */
20 .size = 5,
21 },
22 .generic_io_range[1] = {
23 .base = 0x800, /* EC_HOST_CMD_REGION0 */
24 .size = 256, /* EC_HOST_CMD_REGION_SIZE * 2 */
25 },
26 .generic_io_range[2] = {
27 .base = 0x900, /* EC_LPC_ADDR_MEMMAP */
28 .size = 255, /* EC_MEMMAP_SIZE */
29 },
30 .generic_io_range[3] = {
31 .base = 0x200, /* EC_LPC_ADDR_HOST_DATA */
32 .size = 8, /* 0x200 - 0x207 */
33 },
34
35 .io_mode = ESPI_IO_MODE_QUAD,
Rob Barnes20d689f2021-04-15 17:31:01 -060036 .op_freq_mhz = ESPI_OP_FREQ_33_MHZ,
Mathew Kingc44cc192021-02-23 14:15:50 -070037 .crc_check_enable = 1,
Raul E Rangelf33f8572021-05-05 13:41:24 -060038 .alert_pin = ESPI_ALERT_PIN_IN_BAND,
Mathew Kingc44cc192021-02-23 14:15:50 -070039 .periph_ch_en = 1,
40 .vw_ch_en = 1,
41 .oob_ch_en = 0,
42 .flash_ch_en = 0,
43
Raul E Rangel5804aa32021-04-06 15:51:46 -060044 .vw_irq_polarity = ESPI_VW_IRQ_LEVEL_HIGH(1),
Mathew Kingc44cc192021-02-23 14:15:50 -070045 }"
46
Karthikeyan Ramasubramanianb6a44762021-04-22 17:03:56 -060047 # Enable S0i3 support
48 register "s0ix_enable" = "1"
49
Martin Rothe5b85c32021-04-26 16:04:51 -060050 register "system_configuration" = "2"
51
Karthikeyan Ramasubramanian699a7092021-03-15 06:42:15 -060052 register "i2c_scl_reset" = "GPIO_I2C0_SCL | GPIO_I2C1_SCL |
53 GPIO_I2C2_SCL | GPIO_I2C3_SCL"
Karthikeyan Ramasubramanianfec4db92021-06-02 16:14:39 -060054 # I2C Pad Control RX Select Configuration
55 register "i2c_pad_ctrl_rx_sel[0]" = "I2C_PAD_CTRL_RX_SEL_3_3V" # Trackpad
56 register "i2c_pad_ctrl_rx_sel[1]" = "I2C_PAD_CTRL_RX_SEL_3_3V" # Touchscreen
57 register "i2c_pad_ctrl_rx_sel[2]" = "I2C_PAD_CTRL_RX_SEL_3_3V" # Audio/SAR
58 register "i2c_pad_ctrl_rx_sel[3]" = "I2C_PAD_CTRL_RX_SEL_1_8V" # GSC
Karthikeyan Ramasubramanian699a7092021-03-15 06:42:15 -060059
Felix Helda7c410b2021-05-25 20:51:35 +020060 register "pspp_policy" = "DXIO_PSPP_POWERSAVE"
61
Julian Schroedercf2c99f2021-05-21 14:56:00 -050062 register "usb_phy_custom" = "1"
63 register "usb_phy" = "{
64 .Usb2PhyPort[0] = {
65 .compdstune = 3,
66 .sqrxtune = 3,
67 .txfslstune = 3,
68 .txpreempamptune = 1,
69 .txpreemppulsetune = 0,
70 .txrisetune = 1,
71 .txvreftune = 6,
72 .txhsxvtune = 3,
73 .txrestune = 1,
74 },
75 .Usb2PhyPort[1] = {
76 .compdstune = 3,
77 .sqrxtune = 3,
78 .txfslstune = 3,
79 .txpreempamptune = 1,
80 .txpreemppulsetune = 0,
81 .txrisetune = 1,
82 .txvreftune = 6,
83 .txhsxvtune = 3,
84 .txrestune = 1,
85 },
86 .Usb2PhyPort[2] = {
87 .compdstune = 1,
88 .sqrxtune = 3,
89 .txfslstune = 3,
90 .txpreempamptune = 2,
91 .txpreemppulsetune = 0,
92 .txrisetune = 2,
93 .txvreftune = 3,
94 .txhsxvtune = 3,
95 .txrestune = 2,
96 },
97 .Usb2PhyPort[3] = {
98 .compdstune = 1,
99 .sqrxtune = 3,
100 .txfslstune = 3,
101 .txpreempamptune = 2,
102 .txpreemppulsetune = 0,
103 .txrisetune = 2,
104 .txvreftune = 3,
105 .txhsxvtune = 3,
106 .txrestune = 2,
107 },
108 .Usb2PhyPort[4] = {
109 .compdstune = 3,
110 .sqrxtune = 3,
111 .txfslstune = 3,
112 .txpreempamptune = 1,
113 .txpreemppulsetune = 0,
114 .txrisetune = 1,
115 .txvreftune = 6,
116 .txhsxvtune = 3,
117 .txrestune = 1,
118 },
119 .Usb2PhyPort[5] = {
120 .compdstune = 3,
121 .sqrxtune = 3,
122 .txfslstune = 3,
123 .txpreempamptune = 1,
124 .txpreemppulsetune = 0,
125 .txrisetune = 1,
126 .txvreftune = 6,
127 .txhsxvtune = 3,
128 .txrestune = 1,
129 },
130 .Usb2PhyPort[6] = {
131 .compdstune = 1,
132 .sqrxtune = 3,
133 .txfslstune = 3,
134 .txpreempamptune = 2,
135 .txpreemppulsetune = 0,
136 .txrisetune = 2,
137 .txvreftune = 3,
138 .txhsxvtune = 3,
139 .txrestune = 2,
140 },
141 .Usb2PhyPort[7] = {
142 .compdstune = 1,
143 .sqrxtune = 3,
144 .txfslstune = 3,
145 .txpreempamptune = 2,
146 .txpreemppulsetune = 0,
147 .txrisetune = 2,
148 .txvreftune = 3,
149 .txhsxvtune = 3,
150 .txrestune = 2,
151 },
152
153 .Usb3PhyPort[0] = {
154 .tx_term_ctrl=2,
155 .rx_term_ctrl=2,
156 .tx_vboost_lvl_en=1,
157 .tx_vboost_lvl=5,
158 },
159 .Usb3PhyPort[1] = {
160 .tx_term_ctrl=2,
161 .rx_term_ctrl=2,
162 .tx_vboost_lvl_en=1,
163 .tx_vboost_lvl=5,
164 },
165 .Usb3PhyPort[2] = {
166 .tx_term_ctrl=2,
167 .rx_term_ctrl=2,
168 .tx_vboost_lvl_en=1,
169 .tx_vboost_lvl=5,
170 },
171 .Usb3PhyPort[3] = {
172 .tx_term_ctrl=2,
173 .rx_term_ctrl=2,
174 .tx_vboost_lvl_en=1,
175 .tx_vboost_lvl=5,
176 },
177
178 .ComboPhyStaticConfig[0] = 0,
179 .ComboPhyStaticConfig[1] = 0,
180 .Version_Major = 0xd,
181 .Version_Minor = 0x4,
182 .TableLength = 100,
183 .BatteryChargerEnable = 0,
184 .PhyP3CpmP4Support = 0,
185 }"
186
Mathew King2e2fc7a2020-12-08 11:33:58 -0700187 device domain 0 on
Karthikeyan Ramasubramanian24abd3e2021-05-04 16:19:32 -0600188 device ref gpp_bridge_0 on
189 chip drivers/wifi/generic
190 register "wake" = "GEVENT_8"
191 device pci 00.0 on end
192 end
193 end # WLAN
Mathew King095bdec2021-03-12 14:01:22 -0700194 device ref gpp_bridge_1 on end # SD
195 device ref gpp_bridge_2 on end # WWAN
196 device ref gpp_bridge_3 on end # NVMe
197
Mathew Kingabc69712021-03-03 16:36:46 -0700198 device ref gpp_bridge_a on # Internal GPP Bridge 0 to Bus A
Raul Rangelca25ad52021-04-06 15:33:16 +0000199 device ref gfx on end # Internal GPU (GFX)
Karthikeyan Ramasubramanianf6b2a1c2021-05-04 00:38:22 -0600200 device ref gfx_hda on end # GFX HD Audio Controller
Felix Held1028a412021-05-26 22:48:30 +0200201 device ref crypto on end # Crypto Coprocessor
Mathew King238242b2021-03-04 08:24:55 -0700202 device ref xhci_0 on # USB 3.1 (USB0)
203 chip drivers/usb/acpi
204 device ref xhci_0_root_hub on
205 chip drivers/usb/acpi
206 register "desc" = ""Right Type-C Port""
207 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
208 register "group" = "ACPI_PLD_GROUP(1, 1)"
209 device ref usb3_port0 on end
210 end
211 chip drivers/usb/acpi
212 register "desc" = ""Right Type-A Port""
213 register "type" = "UPC_TYPE_USB3_A"
214 register "group" = "ACPI_PLD_GROUP(1, 2)"
215 device ref usb3_port1 on end
216 end
217 chip drivers/usb/acpi
218 register "desc" = ""Right Type-C Port""
219 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
220 register "group" = "ACPI_PLD_GROUP(1, 1)"
221 device ref usb2_port0 on end
222 end
223 chip drivers/usb/acpi
224 register "desc" = ""Right Type-A Port""
225 register "type" = "UPC_TYPE_USB3_A"
226 register "group" = "ACPI_PLD_GROUP(1, 2)"
227 device ref usb2_port1 on end
228 end
229 chip drivers/usb/acpi
230 register "desc" = ""User-Facing Camera""
231 register "type" = "UPC_TYPE_INTERNAL"
232 device ref usb2_port2 on end
233 end
234 chip drivers/usb/acpi
235 register "desc" = ""World-Facing Camera""
236 register "type" = "UPC_TYPE_INTERNAL"
237 device ref usb2_port3 on end
238 end
239 end
240 end
241 end
242 device ref xhci_1 on # USB 3.1 (USB1)
243 chip drivers/usb/acpi
244 device ref xhci_1_root_hub on
245 chip drivers/usb/acpi
246 register "desc" = ""Left Type-C Port""
247 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
248 register "group" = "ACPI_PLD_GROUP(2, 2)"
249 device ref usb3_port4 on end
250 end
251 chip drivers/usb/acpi
252 register "desc" = ""Left Type-A Port""
253 register "type" = "UPC_TYPE_USB3_A"
254 register "group" = "ACPI_PLD_GROUP(2, 1)"
255 device ref usb3_port5 on end
256 end
257 chip drivers/usb/acpi
258 register "desc" = ""Left Type-C Port""
259 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
260 register "group" = "ACPI_PLD_GROUP(2, 2)"
261 device ref usb2_port4 on end
262 end
263 chip drivers/usb/acpi
264 register "desc" = ""Left Type-A Port""
265 register "type" = "UPC_TYPE_USB3_A"
266 register "group" = "ACPI_PLD_GROUP(2, 1)"
267 device ref usb2_port5 on end
268 end
269 chip drivers/usb/acpi
270 register "desc" = ""Bluetooth""
271 register "type" = "UPC_TYPE_INTERNAL"
Karthikeyan Ramasubramaniand84ce402021-03-30 16:27:59 -0600272 register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_132)"
Mathew King238242b2021-03-04 08:24:55 -0700273 device ref usb2_port6 on end
274 end
275 end
276 end
277 end
Karthikeyan Ramasubramaniane71a6ee2021-04-23 09:51:41 -0600278 device ref acp on
279 chip drivers/amd/i2s_machine_dev
280 register "hid" = ""AMDI5682""
281 device generic 0.0 on end
282 end
283 end # Audio
Mathew Kingabc69712021-03-03 16:36:46 -0700284 end
Mathew King78f03012021-03-05 09:04:44 -0700285
286 device ref lpc_bridge on
287 chip ec/google/chromeec
Raul E Rangelba102232021-05-12 17:07:39 -0600288 device pnp 0c09.0 alias chrome_ec on end
Mathew King78f03012021-03-05 09:04:44 -0700289 end
290 end
Mathew King2e2fc7a2020-12-08 11:33:58 -0700291 end # domain
Karthikeyan Ramasubramanian8f7fca52021-03-15 10:31:37 -0600292
293 device ref i2c_3 on
294 chip drivers/i2c/tpm
295 register "hid" = ""GOOG0005""
296 register "desc" = ""Cr50 TPM""
297 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_LOW(GPIO_3)"
298 device i2c 50 on end
299 end
300 end
Ivy Jiana7696ad2021-04-13 14:04:12 +0800301
302 device ref uart_0 on end # UART0
303
Raul E Rangelba102232021-05-12 17:07:39 -0600304 # See https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/platform/ec/baseboard/guybrush/baseboard.c;l=221
305 # for the EC configuration.
306 #
307 # EC is configured to power off the system at 105C, so add a two degree
308 # buffer so the OS can gracefully shutdown.
309 #
310 # EC is configured to assert PROCHOT at 100C. That drastically lowers
311 # performance. Instead we will tell the OS to start throttling the CPUs
312 # at 95C in hopes that we don't hit the PROCHOT limit.
313 #
314 # We set use_acpi1_thermal_zone_scope because the Chrome ec.asl
315 # performs a `Notify` to the `_\TZ` scope.
316 chip drivers/acpi/thermal_zone
317 register "description" = ""SOC""
318 use chrome_ec as temperature_controller
319 register "sensor_id" = "0"
320 register "polling_period" = "10"
321 register "critical_temperature" = "103"
322 register "passive_config.temperature" = "95"
323 register "use_acpi1_thermal_zone_scope" = "true"
324
325 device generic 0 on end
326 end
327 chip drivers/acpi/thermal_zone
328 register "description" = ""Charger""
329 use chrome_ec as temperature_controller
330 register "sensor_id" = "1"
331 register "polling_period" = "10"
332 register "critical_temperature" = "103"
333 register "passive_config.temperature" = "95"
334 register "use_acpi1_thermal_zone_scope" = "true"
335
336 device generic 1 on end
337 end
338 chip drivers/acpi/thermal_zone
339 register "description" = ""Memory""
340 use chrome_ec as temperature_controller
341 register "sensor_id" = "2"
342 register "polling_period" = "10"
343 register "critical_temperature" = "103"
344 register "passive_config.temperature" = "95"
345 register "use_acpi1_thermal_zone_scope" = "true"
346
347 device generic 2 on end
348 end
349 chip drivers/acpi/thermal_zone
350 register "description" = ""CPU""
351 use chrome_ec as temperature_controller
352 register "sensor_id" = "3"
353 register "polling_period" = "10"
354 register "critical_temperature" = "103"
355 register "passive_config.temperature" = "95"
356 register "use_acpi1_thermal_zone_scope" = "true"
357
358 device generic 3 on end
359 end
Mathew King2e2fc7a2020-12-08 11:33:58 -0700360end # chip soc/amd/cezanne