blob: 6d26179afd87addaa05de0ed0c4bd66d36f78758 [file] [log] [blame]
Raul E Rangelb3c41322020-05-20 14:07:41 -06001# SPDX-License-Identifier: GPL-2.0-or-later
2chip soc/amd/picasso
3
4 # Set FADT Configuration
Raul E Rangelb3c41322020-05-20 14:07:41 -06005 register "fadt_boot_arch" = "ACPI_FADT_LEGACY_DEVICES | ACPI_FADT_8042"
6 register "fadt_flags" = "ACPI_FADT_WBINVD | /* See table 5-34 ACPI 6.3 spec */
7 ACPI_FADT_C1_SUPPORTED |
8 ACPI_FADT_SLEEP_BUTTON |
9 ACPI_FADT_S4_RTC_WAKE |
10 ACPI_FADT_32BIT_TIMER |
Raul E Rangelb3c41322020-05-20 14:07:41 -060011 ACPI_FADT_SEALED_CASE |
12 ACPI_FADT_PCI_EXPRESS_WAKE |
13 ACPI_FADT_REMOTE_POWER_ON"
14
15 register "acp_pin_cfg" = "I2S_PINS_I2S_TDM"
Furquan Shaikha4697362020-07-15 21:25:14 -070016 register "acp_i2s_wake_enable" = "1"
17 register "acpi_pme_enable" = "1"
Raul E Rangelb3c41322020-05-20 14:07:41 -060018
19 # Start : OPN Performance Configuration
20 # (Configuratin that is common for all variants)
21 # For the below fields, 0 indicates use SOC default
22
23 # PROCHOT_L de-assertion Ramp Time
24 register "prochot_l_deassertion_ramp_time" = "20" #mS
25
26 # Lower die temperature limit
27 register "thermctl_limit" = "100" #degrees C
28
29 # FP5 Processor Voltage Supply PSI Currents
30 register "psi0_current_limit" = "18000" #mA
31 register "psi0_soc_current_limit" = "12000" #mA
32 register "vddcr_soc_voltage_margin" = "0" #mV
33 register "vddcr_vdd_voltage_margin" = "0" #mV
34
35 # VRM Limits
36 register "vrm_maximum_current_limit" = "0" #mA
37 register "vrm_soc_maximum_current_limit" = "0" #mA
38 register "vrm_current_limit" = "0" #mA
39 register "vrm_soc_current_limit" = "0" #mA
40
41 # Misc SMU settings
42 register "sb_tsi_alert_comparator_mode_en" = "0"
43 register "core_dldo_bypass" = "1"
44 register "min_soc_vid_offset" = "0"
45 register "aclk_dpm0_freq_400MHz" = "0"
46
47 # End : OPN Performance Configuration
48
49 register "sd_emmc_config" = "SD_EMMC_EMMC_HS400"
50
Lucas Chenc1bb32f2020-05-26 19:31:48 +080051 register "xhci0_force_gen1" = "0"
52
Felix Held1d0154c2020-07-23 19:37:42 +020053 register "has_usb2_phy_tune_params" = "1"
54
Chris Wang1e3e5282020-06-23 21:10:57 +080055 # Controller0 Port0 Default
Felix Held3a7389e2020-07-23 18:22:30 +020056 register "usb_2_port_tune_params[0]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +080057 .com_pds_tune = 0x03,
58 .sq_rx_tune = 0x3,
59 .tx_fsls_tune = 0x3,
60 .tx_pre_emp_amp_tune = 0x03,
61 .tx_pre_emp_pulse_tune = 0x0,
62 .tx_rise_tune = 0x1,
63 .rx_vref_tune = 0x6,
64 .tx_hsxv_tune = 0x3,
65 .tx_res_tune = 0x01,
66 }"
67
68 # Controller0 Port1 Default
Felix Held3a7389e2020-07-23 18:22:30 +020069 register "usb_2_port_tune_params[1]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +080070 .com_pds_tune = 0x03,
71 .sq_rx_tune = 0x3,
72 .tx_fsls_tune = 0x3,
73 .tx_pre_emp_amp_tune = 0x03,
74 .tx_pre_emp_pulse_tune = 0x0,
75 .tx_rise_tune = 0x1,
76 .rx_vref_tune = 0x6,
77 .tx_hsxv_tune = 0x3,
78 .tx_res_tune = 0x01,
79 }"
80
81 # Controller0 Port2 Default
Felix Held3a7389e2020-07-23 18:22:30 +020082 register "usb_2_port_tune_params[2]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +080083 .com_pds_tune = 0x03,
84 .sq_rx_tune = 0x3,
85 .tx_fsls_tune = 0x3,
86 .tx_pre_emp_amp_tune = 0x03,
87 .tx_pre_emp_pulse_tune = 0x0,
88 .tx_rise_tune = 0x1,
89 .rx_vref_tune = 0x6,
90 .tx_hsxv_tune = 0x3,
91 .tx_res_tune = 0x01,
92 }"
93
94 # Controller0 Port3 Default
Felix Held3a7389e2020-07-23 18:22:30 +020095 register "usb_2_port_tune_params[3]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +080096 .com_pds_tune = 0x03,
97 .sq_rx_tune = 0x3,
98 .tx_fsls_tune = 0x3,
99 .tx_pre_emp_amp_tune = 0x03,
100 .tx_pre_emp_pulse_tune = 0x0,
101 .tx_rise_tune = 0x1,
102 .rx_vref_tune = 0x6,
103 .tx_hsxv_tune = 0x3,
104 .tx_res_tune = 0x01,
105 }"
106
107 # Controller1 Port0 Default
Felix Held3a7389e2020-07-23 18:22:30 +0200108 register "usb_2_port_tune_params[4]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +0800109 .com_pds_tune = 0x03,
110 .sq_rx_tune = 0x3,
111 .tx_fsls_tune = 0x3,
112 .tx_pre_emp_amp_tune = 0x02,
113 .tx_pre_emp_pulse_tune = 0x0,
114 .tx_rise_tune = 0x1,
115 .rx_vref_tune = 0x5,
116 .tx_hsxv_tune = 0x3,
117 .tx_res_tune = 0x01,
118 }"
119
120 # Controller1 Port1 Default
Felix Held3a7389e2020-07-23 18:22:30 +0200121 register "usb_2_port_tune_params[5]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +0800122 .com_pds_tune = 0x03,
123 .sq_rx_tune = 0x3,
124 .tx_fsls_tune = 0x3,
125 .tx_pre_emp_amp_tune = 0x02,
126 .tx_pre_emp_pulse_tune = 0x0,
127 .tx_rise_tune = 0x1,
128 .rx_vref_tune = 0x5,
129 .tx_hsxv_tune = 0x3,
130 .tx_res_tune = 0x01,
131 }"
132
Raul E Rangelb3c41322020-05-20 14:07:41 -0600133 # SPI Configuration
134 register "common_config.spi_config" = "{
Rob Barnes13ec6a02020-07-14 13:23:43 -0600135 .normal_speed = SPI_SPEED_33M, /* MHz */
136 .fast_speed = SPI_SPEED_66M, /* MHz */
Raul E Rangelb3c41322020-05-20 14:07:41 -0600137 .altio_speed = SPI_SPEED_66M, /* MHz */
138 .tpm_speed = SPI_SPEED_66M, /* MHz */
Martin Roth637f9412020-07-06 20:02:36 -0600139 .read_mode = SPI_READ_MODE_DUAL122,
Raul E Rangelb3c41322020-05-20 14:07:41 -0600140 }"
141
Felix Helde2379962020-07-29 01:02:38 +0200142 # common USB OC pin mapping
143 register "usb_port_overcurrent_pin[4]" = "USB_OC_NONE" # Camera or internal hub
144 register "usb_port_overcurrent_pin[5]" = "USB_OC_NONE" # Bluetooth
145
Raul E Rangelb3c41322020-05-20 14:07:41 -0600146 # eSPI Configuration
147 register "common_config.espi_config" = "{
148 .std_io_decode_bitmap = ESPI_DECODE_IO_0x80_EN | ESPI_DECODE_IO_0X60_0X64_EN,
149 .generic_io_range[0] = {
150 .base = 0x62,
151 /*
152 * Only 0x62 and 0x66 are required. But, this is not supported by
153 * standard IO decodes and there are only 4 generic I/O windows
154 * available. Hence, open a window from 0x62-0x67.
155 */
156 .size = 5,
157 },
158 .generic_io_range[1] = {
159 .base = 0x800, /* EC_HOST_CMD_REGION0 */
160 .size = 256, /* EC_HOST_CMD_REGION_SIZE * 2 */
161 },
162 .generic_io_range[2] = {
163 .base = 0x900, /* EC_LPC_ADDR_MEMMAP */
164 .size = 255, /* EC_MEMMAP_SIZE */
165 },
166 .generic_io_range[3] = {
167 .base = 0x200, /* EC_LPC_ADDR_HOST_DATA */
168 .size = 8, /* 0x200 - 0x207 */
169 },
170
171 .io_mode = ESPI_IO_MODE_QUAD,
172 .op_freq_mhz = ESPI_OP_FREQ_33_MHZ,
173 .crc_check_enable = 1,
174 .dedicated_alert_pin = 1,
175 .periph_ch_en = 1,
176 .vw_ch_en = 1,
177 .oob_ch_en = 0,
178 .flash_ch_en = 0,
179
Aaron Durbin76fcf8292020-07-02 11:08:21 -0600180 .vw_irq_polarity = ESPI_VW_IRQ_LEVEL_HIGH(1) | ESPI_VW_IRQ_LEVEL_HIGH(12),
Raul E Rangelb3c41322020-05-20 14:07:41 -0600181 }"
182
183 register "i2c_scl_reset" = "GPIO_I2C2_SCL | GPIO_I2C3_SCL"
184
Raul E Rangelb3c41322020-05-20 14:07:41 -0600185 device cpu_cluster 0 on
186 device lapic 0 on end
187 end
188
189 # See AMD 55570-B1 Table 13: PCI Device ID Assignments.
190 device domain 0 on
191 subsystemid 0x1022 0x1510 inherit
192 device pci 0.0 on end # Root Complex
193 device pci 0.2 on end # IOMMU
194 device pci 1.0 on end # Dummy Host Bridge, must be enabled
195 device pci 1.1 off end # GPP Bridge 0
196 device pci 1.2 on end # GPP Bridge 1 - Wifi
197 device pci 1.3 on end # GPP Bridge 2 - SD
198 device pci 1.4 off end # GPP Bridge 3
199 device pci 1.5 off end # GPP Bridge 4
Rob Barnes9754f382020-07-13 20:15:39 -0600200 device pci 1.6 off end # GPP Bridge 5
201 device pci 1.7 on end # GPP Bridge 6 - NVME
Raul E Rangelb3c41322020-05-20 14:07:41 -0600202 device pci 8.0 on end # Dummy Host Bridge, must be enabled
203 device pci 8.1 on # Internal GPP Bridge 0 to Bus A
204 device pci 0.0 on end # Internal GPU
205 device pci 0.1 on end # Display HDA
206 device pci 0.2 on end # Crypto Coprocesor
Rob Barnesf0d1c9a2020-06-24 09:42:02 -0600207 device pci 0.3 on # USB 3.1
208 chip drivers/usb/acpi
209 register "desc" = ""Root Hub""
210 register "type" = "UPC_TYPE_HUB"
211 device usb 0.0 on
212 chip drivers/usb/acpi
213 register "desc" = ""Left Type-C Port""
214 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
215 register "group" = "ACPI_PLD_GROUP(1, 1)"
216 device usb 2.0 on end
217 end
218 chip drivers/usb/acpi
219 register "desc" = ""Left Type-A Port""
220 register "type" = "UPC_TYPE_USB3_A"
221 register "group" = "ACPI_PLD_GROUP(1, 2)"
222 device usb 2.1 on end
223 end
224 chip drivers/usb/acpi
225 register "desc" = ""Right Type-A Port""
226 register "type" = "UPC_TYPE_USB3_A"
227 register "group" = "ACPI_PLD_GROUP(2, 1)"
228 device usb 2.2 on end
229 end
230 chip drivers/usb/acpi
231 register "desc" = ""Right Type-C Port""
232 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
233 register "group" = "ACPI_PLD_GROUP(2, 2)"
234 device usb 2.3 on end
235 end
236 chip drivers/usb/acpi
237 register "desc" = ""Left Type-C Port""
238 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
239 register "group" = "ACPI_PLD_GROUP(1, 1)"
240 device usb 3.0 on end
241 end
242 chip drivers/usb/acpi
243 register "desc" = ""Left Type-A Port""
244 register "type" = "UPC_TYPE_USB3_A"
245 register "group" = "ACPI_PLD_GROUP(1, 2)"
246 device usb 3.1 on end
247 end
248 chip drivers/usb/acpi
249 register "desc" = ""Right Type-A Port""
250 register "type" = "UPC_TYPE_USB3_A"
251 register "group" = "ACPI_PLD_GROUP(2, 1)"
252 device usb 3.2 on end
253 end
254 chip drivers/usb/acpi
255 register "desc" = ""Right Type-C Port""
256 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
257 register "group" = "ACPI_PLD_GROUP(2, 2)"
258 device usb 3.3 on end
259 end
260
261 # The following devices are only enabled on Dali SKUs
262 chip drivers/usb/acpi
263 register "desc" = ""User-Facing Camera""
264 register "type" = "UPC_TYPE_INTERNAL"
265 device usb 2.4 on end
266 end
267 chip drivers/usb/acpi
268 register "desc" = ""Bluetooth""
269 register "type" = "UPC_TYPE_INTERNAL"
Rob Barnes56e889c2020-07-23 14:21:23 -0600270 register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_14)"
Rob Barnesf0d1c9a2020-06-24 09:42:02 -0600271 device usb 2.5 on end
272 end
273 end
274 end
275 end
276 device pci 0.4 on # USB 3.1
277 chip drivers/usb/acpi
278 # The following devices are only enabled on Picasso SKUs
279 register "desc" = ""Root Hub""
280 register "type" = "UPC_TYPE_HUB"
281 device usb 0.0 on
282 chip drivers/usb/acpi
283 register "desc" = ""User-Facing Camera""
284 register "type" = "UPC_TYPE_INTERNAL"
285 device usb 2.0 on end
286 end
287 chip drivers/usb/acpi
288 register "desc" = ""Bluetooth""
289 register "type" = "UPC_TYPE_INTERNAL"
Rob Barnes56e889c2020-07-23 14:21:23 -0600290 register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_14)"
Rob Barnesf0d1c9a2020-06-24 09:42:02 -0600291 device usb 2.1 on end
292 end
293 chip drivers/usb/acpi
294 register "desc" = ""World-Facing Camera""
295 register "type" = "UPC_TYPE_INTERNAL"
296 device usb 3.0 on end
297 end
298 end
299 end
300 end
Furquan Shaikh24ec79c2020-07-16 13:40:28 -0700301 device pci 0.5 on
302 chip drivers/amd/i2s_machine_dev
303 register "hid" = ""AMDI5682""
304 # DMIC select GPIO for ACP machine device
305 # This GPIO is used to select DMIC0 or DMIC1 by the
306 # kernel driver. It does not really have a polarity
307 # since low and high control the selection of DMIC and
308 # hence does not have an active polarity.
309 # Kernel driver does not use the polarity field and
310 # instead treats the GPIO selection as follows:
311 # Set low (0) = Select DMIC0
312 # Set high (1) = Select DMIC1
313 register "dmic_select_gpio" = "ACPI_GPIO_OUTPUT(GPIO_67)"
314 device generic 0.0 on end
315 end
316 end # Audio
Raul E Rangelb3c41322020-05-20 14:07:41 -0600317 device pci 0.6 on end # HDA
318 device pci 0.7 on end # non-Sensor Fusion Hub device
319 end
320 device pci 8.2 on # Internal GPP Bridge 0 to Bus B
321 device pci 0.0 on end # AHCI
322 end
323 device pci 14.0 on end # SM
324 device pci 14.3 on # - D14F3 bridge
325 chip ec/google/chromeec
326 device pnp 0c09.0 on
327 chip ec/google/chromeec/i2c_tunnel
328 register "uid" = "1"
329 register "remote_bus" = "8"
330 device generic 0.0 on
331 chip drivers/i2c/generic
332 register "hid" = ""10EC5682""
333 register "name" = ""RT58""
334 register "uid" = "1"
335 register "desc" = ""Realtek RT5682""
Josie Nordrumcc72e152020-08-03 11:39:41 -0600336 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_BOTH(GPIO_29)"
Akshu Agrawalc7d6d7a2020-07-06 19:39:51 +0530337 register "property_count" = "2"
Raul E Rangelb3c41322020-05-20 14:07:41 -0600338 register "property_list[0].type" = "ACPI_DP_TYPE_INTEGER"
339 register "property_list[0].name" = ""realtek,jd-src""
340 register "property_list[0].integer" = "1"
Akshu Agrawalc7d6d7a2020-07-06 19:39:51 +0530341 register "property_list[1].type" = "ACPI_DP_TYPE_STRING"
342 register "property_list[1].name" = ""realtek,mclk-name""
343 register "property_list[1].string" = ""oscout1""
Raul E Rangelb3c41322020-05-20 14:07:41 -0600344 device i2c 1a on end
345 end
346 end
347 end
348 chip ec/google/chromeec/i2c_tunnel
349 register "name" = ""MSTH""
350 register "uid" = "1"
351 register "remote_bus" = "9"
352 device generic 1.0 on end
353 end
Furquan Shaikhe284bff2020-07-02 16:03:06 -0700354 chip ec/google/chromeec/audio_codec
355 register "uid" = "1"
356 device generic 0 on end
357 end
Raul E Rangelb3c41322020-05-20 14:07:41 -0600358 end
359 end
360 end
Rob Barnes9754f382020-07-13 20:15:39 -0600361 device pci 14.6 off end # Non-Functional SDHCI
Raul E Rangelb3c41322020-05-20 14:07:41 -0600362 device pci 18.0 on end # Data fabric [0-7]
363 device pci 18.1 on end
364 device pci 18.2 on end
365 device pci 18.3 on end
366 device pci 18.4 on end
367 device pci 18.5 on end
368 device pci 18.6 on end
369 end # domain
370
371 chip drivers/generic/max98357a
Raul E Rangel19704cd2020-06-02 10:43:20 -0600372 register "hid" = ""MX98357A""
Raul E Rangelb3c41322020-05-20 14:07:41 -0600373 register "sdmode_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_91)"
374 register "sdmode_delay" = "5"
375 device generic 0.1 on end
376 end
377
378 device mmio 0xfedc5000 on
379 chip drivers/i2c/tpm
380 register "hid" = ""GOOG0005""
381 register "desc" = ""Cr50 TPM""
382 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_LOW(GPIO_3)"
383 device i2c 50 on end
384 end
385 end
386
Raul E Rangel5e29c0e2020-06-12 11:41:16 -0600387 device mmio 0xfedca000 off end # UART1
388 device mmio 0xfedce000 off end # UART2
389 device mmio 0xfedcf000 off end # UART3
390
Raul E Rangelb3c41322020-05-20 14:07:41 -0600391end # chip soc/amd/picasso