blob: bbef7027d5abb6a7cf45b11f646a7beae262a848 [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
142 # eSPI Configuration
143 register "common_config.espi_config" = "{
144 .std_io_decode_bitmap = ESPI_DECODE_IO_0x80_EN | ESPI_DECODE_IO_0X60_0X64_EN,
145 .generic_io_range[0] = {
146 .base = 0x62,
147 /*
148 * Only 0x62 and 0x66 are required. But, this is not supported by
149 * standard IO decodes and there are only 4 generic I/O windows
150 * available. Hence, open a window from 0x62-0x67.
151 */
152 .size = 5,
153 },
154 .generic_io_range[1] = {
155 .base = 0x800, /* EC_HOST_CMD_REGION0 */
156 .size = 256, /* EC_HOST_CMD_REGION_SIZE * 2 */
157 },
158 .generic_io_range[2] = {
159 .base = 0x900, /* EC_LPC_ADDR_MEMMAP */
160 .size = 255, /* EC_MEMMAP_SIZE */
161 },
162 .generic_io_range[3] = {
163 .base = 0x200, /* EC_LPC_ADDR_HOST_DATA */
164 .size = 8, /* 0x200 - 0x207 */
165 },
166
167 .io_mode = ESPI_IO_MODE_QUAD,
168 .op_freq_mhz = ESPI_OP_FREQ_33_MHZ,
169 .crc_check_enable = 1,
170 .dedicated_alert_pin = 1,
171 .periph_ch_en = 1,
172 .vw_ch_en = 1,
173 .oob_ch_en = 0,
174 .flash_ch_en = 0,
175
Aaron Durbin76fcf8292020-07-02 11:08:21 -0600176 .vw_irq_polarity = ESPI_VW_IRQ_LEVEL_HIGH(1) | ESPI_VW_IRQ_LEVEL_HIGH(12),
Raul E Rangelb3c41322020-05-20 14:07:41 -0600177 }"
178
179 register "i2c_scl_reset" = "GPIO_I2C2_SCL | GPIO_I2C3_SCL"
180
Raul E Rangelb3c41322020-05-20 14:07:41 -0600181 device cpu_cluster 0 on
182 device lapic 0 on end
183 end
184
185 # See AMD 55570-B1 Table 13: PCI Device ID Assignments.
186 device domain 0 on
187 subsystemid 0x1022 0x1510 inherit
188 device pci 0.0 on end # Root Complex
189 device pci 0.2 on end # IOMMU
190 device pci 1.0 on end # Dummy Host Bridge, must be enabled
191 device pci 1.1 off end # GPP Bridge 0
192 device pci 1.2 on end # GPP Bridge 1 - Wifi
193 device pci 1.3 on end # GPP Bridge 2 - SD
194 device pci 1.4 off end # GPP Bridge 3
195 device pci 1.5 off end # GPP Bridge 4
Rob Barnes9754f382020-07-13 20:15:39 -0600196 device pci 1.6 off end # GPP Bridge 5
197 device pci 1.7 on end # GPP Bridge 6 - NVME
Raul E Rangelb3c41322020-05-20 14:07:41 -0600198 device pci 8.0 on end # Dummy Host Bridge, must be enabled
199 device pci 8.1 on # Internal GPP Bridge 0 to Bus A
200 device pci 0.0 on end # Internal GPU
201 device pci 0.1 on end # Display HDA
202 device pci 0.2 on end # Crypto Coprocesor
Rob Barnesf0d1c9a2020-06-24 09:42:02 -0600203 device pci 0.3 on # USB 3.1
204 chip drivers/usb/acpi
205 register "desc" = ""Root Hub""
206 register "type" = "UPC_TYPE_HUB"
207 device usb 0.0 on
208 chip drivers/usb/acpi
209 register "desc" = ""Left Type-C Port""
210 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
211 register "group" = "ACPI_PLD_GROUP(1, 1)"
212 device usb 2.0 on end
213 end
214 chip drivers/usb/acpi
215 register "desc" = ""Left Type-A Port""
216 register "type" = "UPC_TYPE_USB3_A"
217 register "group" = "ACPI_PLD_GROUP(1, 2)"
218 device usb 2.1 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(2, 1)"
224 device usb 2.2 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(2, 2)"
230 device usb 2.3 on end
231 end
232 chip drivers/usb/acpi
233 register "desc" = ""Left Type-C Port""
234 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
235 register "group" = "ACPI_PLD_GROUP(1, 1)"
236 device usb 3.0 on end
237 end
238 chip drivers/usb/acpi
239 register "desc" = ""Left Type-A Port""
240 register "type" = "UPC_TYPE_USB3_A"
241 register "group" = "ACPI_PLD_GROUP(1, 2)"
242 device usb 3.1 on end
243 end
244 chip drivers/usb/acpi
245 register "desc" = ""Right Type-A Port""
246 register "type" = "UPC_TYPE_USB3_A"
247 register "group" = "ACPI_PLD_GROUP(2, 1)"
248 device usb 3.2 on end
249 end
250 chip drivers/usb/acpi
251 register "desc" = ""Right Type-C Port""
252 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
253 register "group" = "ACPI_PLD_GROUP(2, 2)"
254 device usb 3.3 on end
255 end
256
257 # The following devices are only enabled on Dali SKUs
258 chip drivers/usb/acpi
259 register "desc" = ""User-Facing Camera""
260 register "type" = "UPC_TYPE_INTERNAL"
261 device usb 2.4 on end
262 end
263 chip drivers/usb/acpi
264 register "desc" = ""Bluetooth""
265 register "type" = "UPC_TYPE_INTERNAL"
Rob Barnes56e889c2020-07-23 14:21:23 -0600266 register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_14)"
Rob Barnesf0d1c9a2020-06-24 09:42:02 -0600267 device usb 2.5 on end
268 end
269 end
270 end
271 end
272 device pci 0.4 on # USB 3.1
273 chip drivers/usb/acpi
274 # The following devices are only enabled on Picasso SKUs
275 register "desc" = ""Root Hub""
276 register "type" = "UPC_TYPE_HUB"
277 device usb 0.0 on
278 chip drivers/usb/acpi
279 register "desc" = ""User-Facing Camera""
280 register "type" = "UPC_TYPE_INTERNAL"
281 device usb 2.0 on end
282 end
283 chip drivers/usb/acpi
284 register "desc" = ""Bluetooth""
285 register "type" = "UPC_TYPE_INTERNAL"
Rob Barnes56e889c2020-07-23 14:21:23 -0600286 register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_14)"
Rob Barnesf0d1c9a2020-06-24 09:42:02 -0600287 device usb 2.1 on end
288 end
289 chip drivers/usb/acpi
290 register "desc" = ""World-Facing Camera""
291 register "type" = "UPC_TYPE_INTERNAL"
292 device usb 3.0 on end
293 end
294 end
295 end
296 end
Furquan Shaikh24ec79c2020-07-16 13:40:28 -0700297 device pci 0.5 on
298 chip drivers/amd/i2s_machine_dev
299 register "hid" = ""AMDI5682""
300 # DMIC select GPIO for ACP machine device
301 # This GPIO is used to select DMIC0 or DMIC1 by the
302 # kernel driver. It does not really have a polarity
303 # since low and high control the selection of DMIC and
304 # hence does not have an active polarity.
305 # Kernel driver does not use the polarity field and
306 # instead treats the GPIO selection as follows:
307 # Set low (0) = Select DMIC0
308 # Set high (1) = Select DMIC1
309 register "dmic_select_gpio" = "ACPI_GPIO_OUTPUT(GPIO_67)"
310 device generic 0.0 on end
311 end
312 end # Audio
Raul E Rangelb3c41322020-05-20 14:07:41 -0600313 device pci 0.6 on end # HDA
314 device pci 0.7 on end # non-Sensor Fusion Hub device
315 end
316 device pci 8.2 on # Internal GPP Bridge 0 to Bus B
317 device pci 0.0 on end # AHCI
318 end
319 device pci 14.0 on end # SM
320 device pci 14.3 on # - D14F3 bridge
321 chip ec/google/chromeec
322 device pnp 0c09.0 on
323 chip ec/google/chromeec/i2c_tunnel
324 register "uid" = "1"
325 register "remote_bus" = "8"
326 device generic 0.0 on
327 chip drivers/i2c/generic
328 register "hid" = ""10EC5682""
329 register "name" = ""RT58""
330 register "uid" = "1"
331 register "desc" = ""Realtek RT5682""
332 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_BOTH(62)"
333 register "property_count" = "1"
334 register "property_list[0].type" = "ACPI_DP_TYPE_INTEGER"
335 register "property_list[0].name" = ""realtek,jd-src""
336 register "property_list[0].integer" = "1"
337 device i2c 1a on end
338 end
339 end
340 end
341 chip ec/google/chromeec/i2c_tunnel
342 register "name" = ""MSTH""
343 register "uid" = "1"
344 register "remote_bus" = "9"
345 device generic 1.0 on end
346 end
Furquan Shaikhe284bff2020-07-02 16:03:06 -0700347 chip ec/google/chromeec/audio_codec
348 register "uid" = "1"
349 device generic 0 on end
350 end
Raul E Rangelb3c41322020-05-20 14:07:41 -0600351 end
352 end
353 end
Rob Barnes9754f382020-07-13 20:15:39 -0600354 device pci 14.6 off end # Non-Functional SDHCI
Raul E Rangelb3c41322020-05-20 14:07:41 -0600355 device pci 18.0 on end # Data fabric [0-7]
356 device pci 18.1 on end
357 device pci 18.2 on end
358 device pci 18.3 on end
359 device pci 18.4 on end
360 device pci 18.5 on end
361 device pci 18.6 on end
362 end # domain
363
364 chip drivers/generic/max98357a
Raul E Rangel19704cd2020-06-02 10:43:20 -0600365 register "hid" = ""MX98357A""
Raul E Rangelb3c41322020-05-20 14:07:41 -0600366 register "sdmode_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_91)"
367 register "sdmode_delay" = "5"
368 device generic 0.1 on end
369 end
370
371 device mmio 0xfedc5000 on
372 chip drivers/i2c/tpm
373 register "hid" = ""GOOG0005""
374 register "desc" = ""Cr50 TPM""
375 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_LOW(GPIO_3)"
376 device i2c 50 on end
377 end
378 end
379
Raul E Rangel5e29c0e2020-06-12 11:41:16 -0600380 device mmio 0xfedca000 off end # UART1
381 device mmio 0xfedce000 off end # UART2
382 device mmio 0xfedcf000 off end # UART3
383
Raul E Rangelb3c41322020-05-20 14:07:41 -0600384end # chip soc/amd/picasso