blob: d38aaf221e6e0a346e9d43aa99f9dba310153bae [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 Held04394d62020-08-06 15:04:15 +0200142 # USB OC pin mapping
143 register "usb_port_overcurrent_pin[0]" = "USB_OC_PIN_0" # USB C0
144 register "usb_port_overcurrent_pin[1]" = "USB_OC_PIN_0" # USB A0
145 register "usb_port_overcurrent_pin[2]" = "USB_OC_PIN_1" # USB A1
146 register "usb_port_overcurrent_pin[3]" = "USB_OC_PIN_1" # USB C1
Felix Helde2379962020-07-29 01:02:38 +0200147 register "usb_port_overcurrent_pin[4]" = "USB_OC_NONE" # Camera or internal hub
148 register "usb_port_overcurrent_pin[5]" = "USB_OC_NONE" # Bluetooth
149
Raul E Rangelb3c41322020-05-20 14:07:41 -0600150 # eSPI Configuration
151 register "common_config.espi_config" = "{
152 .std_io_decode_bitmap = ESPI_DECODE_IO_0x80_EN | ESPI_DECODE_IO_0X60_0X64_EN,
153 .generic_io_range[0] = {
154 .base = 0x62,
155 /*
156 * Only 0x62 and 0x66 are required. But, this is not supported by
157 * standard IO decodes and there are only 4 generic I/O windows
158 * available. Hence, open a window from 0x62-0x67.
159 */
160 .size = 5,
161 },
162 .generic_io_range[1] = {
163 .base = 0x800, /* EC_HOST_CMD_REGION0 */
164 .size = 256, /* EC_HOST_CMD_REGION_SIZE * 2 */
165 },
166 .generic_io_range[2] = {
167 .base = 0x900, /* EC_LPC_ADDR_MEMMAP */
168 .size = 255, /* EC_MEMMAP_SIZE */
169 },
170 .generic_io_range[3] = {
171 .base = 0x200, /* EC_LPC_ADDR_HOST_DATA */
172 .size = 8, /* 0x200 - 0x207 */
173 },
174
175 .io_mode = ESPI_IO_MODE_QUAD,
176 .op_freq_mhz = ESPI_OP_FREQ_33_MHZ,
177 .crc_check_enable = 1,
178 .dedicated_alert_pin = 1,
179 .periph_ch_en = 1,
180 .vw_ch_en = 1,
181 .oob_ch_en = 0,
182 .flash_ch_en = 0,
183
Aaron Durbin76fcf8292020-07-02 11:08:21 -0600184 .vw_irq_polarity = ESPI_VW_IRQ_LEVEL_HIGH(1) | ESPI_VW_IRQ_LEVEL_HIGH(12),
Raul E Rangelb3c41322020-05-20 14:07:41 -0600185 }"
186
187 register "i2c_scl_reset" = "GPIO_I2C2_SCL | GPIO_I2C3_SCL"
188
Raul E Rangelb3c41322020-05-20 14:07:41 -0600189 device cpu_cluster 0 on
190 device lapic 0 on end
191 end
192
193 # See AMD 55570-B1 Table 13: PCI Device ID Assignments.
194 device domain 0 on
195 subsystemid 0x1022 0x1510 inherit
196 device pci 0.0 on end # Root Complex
197 device pci 0.2 on end # IOMMU
198 device pci 1.0 on end # Dummy Host Bridge, must be enabled
199 device pci 1.1 off end # GPP Bridge 0
200 device pci 1.2 on end # GPP Bridge 1 - Wifi
201 device pci 1.3 on end # GPP Bridge 2 - SD
202 device pci 1.4 off end # GPP Bridge 3
203 device pci 1.5 off end # GPP Bridge 4
Rob Barnes9754f382020-07-13 20:15:39 -0600204 device pci 1.6 off end # GPP Bridge 5
205 device pci 1.7 on end # GPP Bridge 6 - NVME
Raul E Rangelb3c41322020-05-20 14:07:41 -0600206 device pci 8.0 on end # Dummy Host Bridge, must be enabled
207 device pci 8.1 on # Internal GPP Bridge 0 to Bus A
208 device pci 0.0 on end # Internal GPU
209 device pci 0.1 on end # Display HDA
210 device pci 0.2 on end # Crypto Coprocesor
Rob Barnesf0d1c9a2020-06-24 09:42:02 -0600211 device pci 0.3 on # USB 3.1
212 chip drivers/usb/acpi
213 register "desc" = ""Root Hub""
214 register "type" = "UPC_TYPE_HUB"
215 device usb 0.0 on
216 chip drivers/usb/acpi
217 register "desc" = ""Left Type-C Port""
218 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
219 register "group" = "ACPI_PLD_GROUP(1, 1)"
220 device usb 2.0 on end
221 end
222 chip drivers/usb/acpi
223 register "desc" = ""Left Type-A Port""
224 register "type" = "UPC_TYPE_USB3_A"
225 register "group" = "ACPI_PLD_GROUP(1, 2)"
226 device usb 2.1 on end
227 end
228 chip drivers/usb/acpi
229 register "desc" = ""Right Type-A Port""
230 register "type" = "UPC_TYPE_USB3_A"
231 register "group" = "ACPI_PLD_GROUP(2, 1)"
232 device usb 2.2 on end
233 end
234 chip drivers/usb/acpi
235 register "desc" = ""Right Type-C Port""
236 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
237 register "group" = "ACPI_PLD_GROUP(2, 2)"
238 device usb 2.3 on end
239 end
240 chip drivers/usb/acpi
241 register "desc" = ""Left Type-C Port""
242 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
243 register "group" = "ACPI_PLD_GROUP(1, 1)"
244 device usb 3.0 on end
245 end
246 chip drivers/usb/acpi
247 register "desc" = ""Left Type-A Port""
248 register "type" = "UPC_TYPE_USB3_A"
249 register "group" = "ACPI_PLD_GROUP(1, 2)"
250 device usb 3.1 on end
251 end
252 chip drivers/usb/acpi
253 register "desc" = ""Right Type-A Port""
254 register "type" = "UPC_TYPE_USB3_A"
255 register "group" = "ACPI_PLD_GROUP(2, 1)"
256 device usb 3.2 on end
257 end
258 chip drivers/usb/acpi
259 register "desc" = ""Right Type-C Port""
260 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
261 register "group" = "ACPI_PLD_GROUP(2, 2)"
262 device usb 3.3 on end
263 end
264
265 # The following devices are only enabled on Dali SKUs
266 chip drivers/usb/acpi
267 register "desc" = ""User-Facing Camera""
268 register "type" = "UPC_TYPE_INTERNAL"
269 device usb 2.4 on end
270 end
271 chip drivers/usb/acpi
272 register "desc" = ""Bluetooth""
273 register "type" = "UPC_TYPE_INTERNAL"
Rob Barnes56e889c2020-07-23 14:21:23 -0600274 register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_14)"
Rob Barnesf0d1c9a2020-06-24 09:42:02 -0600275 device usb 2.5 on end
276 end
277 end
278 end
279 end
280 device pci 0.4 on # USB 3.1
281 chip drivers/usb/acpi
282 # The following devices are only enabled on Picasso SKUs
283 register "desc" = ""Root Hub""
284 register "type" = "UPC_TYPE_HUB"
285 device usb 0.0 on
286 chip drivers/usb/acpi
287 register "desc" = ""User-Facing Camera""
288 register "type" = "UPC_TYPE_INTERNAL"
289 device usb 2.0 on end
290 end
291 chip drivers/usb/acpi
292 register "desc" = ""Bluetooth""
293 register "type" = "UPC_TYPE_INTERNAL"
Rob Barnes56e889c2020-07-23 14:21:23 -0600294 register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_14)"
Rob Barnesf0d1c9a2020-06-24 09:42:02 -0600295 device usb 2.1 on end
296 end
297 chip drivers/usb/acpi
298 register "desc" = ""World-Facing Camera""
299 register "type" = "UPC_TYPE_INTERNAL"
300 device usb 3.0 on end
301 end
302 end
303 end
304 end
Furquan Shaikh24ec79c2020-07-16 13:40:28 -0700305 device pci 0.5 on
306 chip drivers/amd/i2s_machine_dev
307 register "hid" = ""AMDI5682""
308 # DMIC select GPIO for ACP machine device
309 # This GPIO is used to select DMIC0 or DMIC1 by the
310 # kernel driver. It does not really have a polarity
311 # since low and high control the selection of DMIC and
312 # hence does not have an active polarity.
313 # Kernel driver does not use the polarity field and
314 # instead treats the GPIO selection as follows:
315 # Set low (0) = Select DMIC0
316 # Set high (1) = Select DMIC1
317 register "dmic_select_gpio" = "ACPI_GPIO_OUTPUT(GPIO_67)"
318 device generic 0.0 on end
319 end
320 end # Audio
Raul E Rangelb3c41322020-05-20 14:07:41 -0600321 device pci 0.6 on end # HDA
322 device pci 0.7 on end # non-Sensor Fusion Hub device
323 end
324 device pci 8.2 on # Internal GPP Bridge 0 to Bus B
325 device pci 0.0 on end # AHCI
326 end
327 device pci 14.0 on end # SM
328 device pci 14.3 on # - D14F3 bridge
329 chip ec/google/chromeec
330 device pnp 0c09.0 on
331 chip ec/google/chromeec/i2c_tunnel
332 register "uid" = "1"
333 register "remote_bus" = "8"
334 device generic 0.0 on
335 chip drivers/i2c/generic
336 register "hid" = ""10EC5682""
337 register "name" = ""RT58""
338 register "uid" = "1"
339 register "desc" = ""Realtek RT5682""
Josie Nordrumcc72e152020-08-03 11:39:41 -0600340 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_BOTH(GPIO_29)"
Akshu Agrawalc7d6d7a2020-07-06 19:39:51 +0530341 register "property_count" = "2"
Raul E Rangelb3c41322020-05-20 14:07:41 -0600342 register "property_list[0].type" = "ACPI_DP_TYPE_INTEGER"
343 register "property_list[0].name" = ""realtek,jd-src""
344 register "property_list[0].integer" = "1"
Akshu Agrawalc7d6d7a2020-07-06 19:39:51 +0530345 register "property_list[1].type" = "ACPI_DP_TYPE_STRING"
346 register "property_list[1].name" = ""realtek,mclk-name""
347 register "property_list[1].string" = ""oscout1""
Raul E Rangelb3c41322020-05-20 14:07:41 -0600348 device i2c 1a on end
349 end
350 end
351 end
352 chip ec/google/chromeec/i2c_tunnel
353 register "name" = ""MSTH""
354 register "uid" = "1"
355 register "remote_bus" = "9"
356 device generic 1.0 on end
357 end
Furquan Shaikhe284bff2020-07-02 16:03:06 -0700358 chip ec/google/chromeec/audio_codec
359 register "uid" = "1"
360 device generic 0 on end
361 end
Raul E Rangelb3c41322020-05-20 14:07:41 -0600362 end
363 end
364 end
Rob Barnes9754f382020-07-13 20:15:39 -0600365 device pci 14.6 off end # Non-Functional SDHCI
Raul E Rangelb3c41322020-05-20 14:07:41 -0600366 device pci 18.0 on end # Data fabric [0-7]
367 device pci 18.1 on end
368 device pci 18.2 on end
369 device pci 18.3 on end
370 device pci 18.4 on end
371 device pci 18.5 on end
372 device pci 18.6 on end
373 end # domain
374
375 chip drivers/generic/max98357a
Raul E Rangel19704cd2020-06-02 10:43:20 -0600376 register "hid" = ""MX98357A""
Raul E Rangelb3c41322020-05-20 14:07:41 -0600377 register "sdmode_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_91)"
378 register "sdmode_delay" = "5"
379 device generic 0.1 on end
380 end
381
382 device mmio 0xfedc5000 on
383 chip drivers/i2c/tpm
384 register "hid" = ""GOOG0005""
385 register "desc" = ""Cr50 TPM""
386 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_LOW(GPIO_3)"
387 device i2c 50 on end
388 end
389 end
390
Raul E Rangel5e29c0e2020-06-12 11:41:16 -0600391 device mmio 0xfedca000 off end # UART1
392 device mmio 0xfedce000 off end # UART2
393 device mmio 0xfedcf000 off end # UART3
394
Raul E Rangelb3c41322020-05-20 14:07:41 -0600395end # chip soc/amd/picasso