blob: 8d475e956e7f7e24630f863c0442e8c097000504 [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"
Felix Held5ad4dcb2020-08-13 01:27:39 +02006 # See table 5-34 ACPI 6.3 spec
7 register "fadt_flags" = "ACPI_FADT_SLEEP_BUTTON | ACPI_FADT_SEALED_CASE"
Raul E Rangelb3c41322020-05-20 14:07:41 -06008
9 register "acp_pin_cfg" = "I2S_PINS_I2S_TDM"
Furquan Shaikhfd884082020-08-11 17:05:46 -070010 register "acp_i2s_wake_enable" = "0"
Felix Held828a36e2020-09-11 21:45:20 +020011 register "acp_pme_enable" = "0"
Raul E Rangelb3c41322020-05-20 14:07:41 -060012
13 # Start : OPN Performance Configuration
14 # (Configuratin that is common for all variants)
15 # For the below fields, 0 indicates use SOC default
16
17 # PROCHOT_L de-assertion Ramp Time
18 register "prochot_l_deassertion_ramp_time" = "20" #mS
19
20 # Lower die temperature limit
21 register "thermctl_limit" = "100" #degrees C
22
23 # FP5 Processor Voltage Supply PSI Currents
24 register "psi0_current_limit" = "18000" #mA
25 register "psi0_soc_current_limit" = "12000" #mA
26 register "vddcr_soc_voltage_margin" = "0" #mV
27 register "vddcr_vdd_voltage_margin" = "0" #mV
28
29 # VRM Limits
30 register "vrm_maximum_current_limit" = "0" #mA
31 register "vrm_soc_maximum_current_limit" = "0" #mA
32 register "vrm_current_limit" = "0" #mA
33 register "vrm_soc_current_limit" = "0" #mA
34
35 # Misc SMU settings
36 register "sb_tsi_alert_comparator_mode_en" = "0"
37 register "core_dldo_bypass" = "1"
38 register "min_soc_vid_offset" = "0"
39 register "aclk_dpm0_freq_400MHz" = "0"
40
41 # End : OPN Performance Configuration
42
Raul E Rangel7c79d832020-09-03 14:30:33 -060043 register "emmc_config" = "{
44 .timing = SD_EMMC_EMMC_HS400,
45 }"
Raul E Rangelb3c41322020-05-20 14:07:41 -060046
Lucas Chenc1bb32f2020-05-26 19:31:48 +080047 register "xhci0_force_gen1" = "0"
48
Felix Held1d0154c2020-07-23 19:37:42 +020049 register "has_usb2_phy_tune_params" = "1"
50
Chris Wang1e3e5282020-06-23 21:10:57 +080051 # Controller0 Port0 Default
Felix Held3a7389e2020-07-23 18:22:30 +020052 register "usb_2_port_tune_params[0]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +080053 .com_pds_tune = 0x03,
54 .sq_rx_tune = 0x3,
55 .tx_fsls_tune = 0x3,
56 .tx_pre_emp_amp_tune = 0x03,
57 .tx_pre_emp_pulse_tune = 0x0,
58 .tx_rise_tune = 0x1,
59 .rx_vref_tune = 0x6,
60 .tx_hsxv_tune = 0x3,
61 .tx_res_tune = 0x01,
62 }"
63
64 # Controller0 Port1 Default
Felix Held3a7389e2020-07-23 18:22:30 +020065 register "usb_2_port_tune_params[1]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +080066 .com_pds_tune = 0x03,
67 .sq_rx_tune = 0x3,
68 .tx_fsls_tune = 0x3,
69 .tx_pre_emp_amp_tune = 0x03,
70 .tx_pre_emp_pulse_tune = 0x0,
71 .tx_rise_tune = 0x1,
72 .rx_vref_tune = 0x6,
73 .tx_hsxv_tune = 0x3,
74 .tx_res_tune = 0x01,
75 }"
76
77 # Controller0 Port2 Default
Felix Held3a7389e2020-07-23 18:22:30 +020078 register "usb_2_port_tune_params[2]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +080079 .com_pds_tune = 0x03,
80 .sq_rx_tune = 0x3,
81 .tx_fsls_tune = 0x3,
82 .tx_pre_emp_amp_tune = 0x03,
83 .tx_pre_emp_pulse_tune = 0x0,
84 .tx_rise_tune = 0x1,
85 .rx_vref_tune = 0x6,
86 .tx_hsxv_tune = 0x3,
87 .tx_res_tune = 0x01,
88 }"
89
90 # Controller0 Port3 Default
Felix Held3a7389e2020-07-23 18:22:30 +020091 register "usb_2_port_tune_params[3]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +080092 .com_pds_tune = 0x03,
93 .sq_rx_tune = 0x3,
94 .tx_fsls_tune = 0x3,
95 .tx_pre_emp_amp_tune = 0x03,
96 .tx_pre_emp_pulse_tune = 0x0,
97 .tx_rise_tune = 0x1,
98 .rx_vref_tune = 0x6,
99 .tx_hsxv_tune = 0x3,
100 .tx_res_tune = 0x01,
101 }"
102
103 # Controller1 Port0 Default
Felix Held3a7389e2020-07-23 18:22:30 +0200104 register "usb_2_port_tune_params[4]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +0800105 .com_pds_tune = 0x03,
106 .sq_rx_tune = 0x3,
107 .tx_fsls_tune = 0x3,
108 .tx_pre_emp_amp_tune = 0x02,
109 .tx_pre_emp_pulse_tune = 0x0,
110 .tx_rise_tune = 0x1,
111 .rx_vref_tune = 0x5,
112 .tx_hsxv_tune = 0x3,
113 .tx_res_tune = 0x01,
114 }"
115
116 # Controller1 Port1 Default
Felix Held3a7389e2020-07-23 18:22:30 +0200117 register "usb_2_port_tune_params[5]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +0800118 .com_pds_tune = 0x03,
119 .sq_rx_tune = 0x3,
120 .tx_fsls_tune = 0x3,
121 .tx_pre_emp_amp_tune = 0x02,
122 .tx_pre_emp_pulse_tune = 0x0,
123 .tx_rise_tune = 0x1,
124 .rx_vref_tune = 0x5,
125 .tx_hsxv_tune = 0x3,
126 .tx_res_tune = 0x01,
127 }"
128
Raul E Rangelb3c41322020-05-20 14:07:41 -0600129 # SPI Configuration
130 register "common_config.spi_config" = "{
Rob Barnes13ec6a02020-07-14 13:23:43 -0600131 .normal_speed = SPI_SPEED_33M, /* MHz */
132 .fast_speed = SPI_SPEED_66M, /* MHz */
Raul E Rangelb3c41322020-05-20 14:07:41 -0600133 .altio_speed = SPI_SPEED_66M, /* MHz */
134 .tpm_speed = SPI_SPEED_66M, /* MHz */
Martin Roth637f9412020-07-06 20:02:36 -0600135 .read_mode = SPI_READ_MODE_DUAL122,
Raul E Rangelb3c41322020-05-20 14:07:41 -0600136 }"
137
Felix Held04394d62020-08-06 15:04:15 +0200138 # USB OC pin mapping
139 register "usb_port_overcurrent_pin[0]" = "USB_OC_PIN_0" # USB C0
140 register "usb_port_overcurrent_pin[1]" = "USB_OC_PIN_0" # USB A0
141 register "usb_port_overcurrent_pin[2]" = "USB_OC_PIN_1" # USB A1
142 register "usb_port_overcurrent_pin[3]" = "USB_OC_PIN_1" # USB C1
Felix Helde2379962020-07-29 01:02:38 +0200143 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
Felix Held764b9872020-08-28 02:12:06 +0200185 # genral purpose PCIe clock output configuration
186 register "gpp_clk_config[0]" = "GPP_CLK_REQ" # WLAN
187 register "gpp_clk_config[1]" = "GPP_CLK_REQ" # SD Reader
188 register "gpp_clk_config[2]" = "GPP_CLK_OFF"
189 register "gpp_clk_config[3]" = "GPP_CLK_OFF"
190 register "gpp_clk_config[4]" = "GPP_CLK_REQ" # NVME SSD
191 register "gpp_clk_config[5]" = "GPP_CLK_OFF"
192 register "gpp_clk_config[6]" = "GPP_CLK_OFF"
193
Raul E Rangelb3c41322020-05-20 14:07:41 -0600194 device cpu_cluster 0 on
195 device lapic 0 on end
196 end
197
198 # See AMD 55570-B1 Table 13: PCI Device ID Assignments.
199 device domain 0 on
200 subsystemid 0x1022 0x1510 inherit
201 device pci 0.0 on end # Root Complex
202 device pci 0.2 on end # IOMMU
203 device pci 1.0 on end # Dummy Host Bridge, must be enabled
204 device pci 1.1 off end # GPP Bridge 0
205 device pci 1.2 on end # GPP Bridge 1 - Wifi
206 device pci 1.3 on end # GPP Bridge 2 - SD
207 device pci 1.4 off end # GPP Bridge 3
208 device pci 1.5 off end # GPP Bridge 4
Rob Barnes9754f382020-07-13 20:15:39 -0600209 device pci 1.6 off end # GPP Bridge 5
210 device pci 1.7 on end # GPP Bridge 6 - NVME
Raul E Rangelb3c41322020-05-20 14:07:41 -0600211 device pci 8.0 on end # Dummy Host Bridge, must be enabled
212 device pci 8.1 on # Internal GPP Bridge 0 to Bus A
213 device pci 0.0 on end # Internal GPU
214 device pci 0.1 on end # Display HDA
215 device pci 0.2 on end # Crypto Coprocesor
Rob Barnesf0d1c9a2020-06-24 09:42:02 -0600216 device pci 0.3 on # USB 3.1
217 chip drivers/usb/acpi
218 register "desc" = ""Root Hub""
219 register "type" = "UPC_TYPE_HUB"
220 device usb 0.0 on
221 chip drivers/usb/acpi
222 register "desc" = ""Left Type-C Port""
223 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
224 register "group" = "ACPI_PLD_GROUP(1, 1)"
225 device usb 2.0 on end
226 end
227 chip drivers/usb/acpi
228 register "desc" = ""Left Type-A Port""
229 register "type" = "UPC_TYPE_USB3_A"
230 register "group" = "ACPI_PLD_GROUP(1, 2)"
231 device usb 2.1 on end
232 end
233 chip drivers/usb/acpi
234 register "desc" = ""Right Type-A Port""
235 register "type" = "UPC_TYPE_USB3_A"
236 register "group" = "ACPI_PLD_GROUP(2, 1)"
237 device usb 2.2 on end
238 end
239 chip drivers/usb/acpi
240 register "desc" = ""Right Type-C Port""
241 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
242 register "group" = "ACPI_PLD_GROUP(2, 2)"
243 device usb 2.3 on end
244 end
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(1, 1)"
249 device usb 3.0 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(1, 2)"
255 device usb 3.1 on end
256 end
257 chip drivers/usb/acpi
258 register "desc" = ""Right Type-A Port""
259 register "type" = "UPC_TYPE_USB3_A"
260 register "group" = "ACPI_PLD_GROUP(2, 1)"
261 device usb 3.2 on end
262 end
263 chip drivers/usb/acpi
264 register "desc" = ""Right Type-C Port""
265 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
266 register "group" = "ACPI_PLD_GROUP(2, 2)"
267 device usb 3.3 on end
268 end
269
270 # The following devices are only enabled on Dali SKUs
271 chip drivers/usb/acpi
272 register "desc" = ""User-Facing Camera""
273 register "type" = "UPC_TYPE_INTERNAL"
274 device usb 2.4 on end
275 end
276 chip drivers/usb/acpi
277 register "desc" = ""Bluetooth""
278 register "type" = "UPC_TYPE_INTERNAL"
Rob Barnes56e889c2020-07-23 14:21:23 -0600279 register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_14)"
Rob Barnesf0d1c9a2020-06-24 09:42:02 -0600280 device usb 2.5 on end
281 end
282 end
283 end
284 end
285 device pci 0.4 on # USB 3.1
286 chip drivers/usb/acpi
287 # The following devices are only enabled on Picasso SKUs
288 register "desc" = ""Root Hub""
289 register "type" = "UPC_TYPE_HUB"
290 device usb 0.0 on
291 chip drivers/usb/acpi
292 register "desc" = ""User-Facing Camera""
293 register "type" = "UPC_TYPE_INTERNAL"
294 device usb 2.0 on end
295 end
296 chip drivers/usb/acpi
297 register "desc" = ""Bluetooth""
298 register "type" = "UPC_TYPE_INTERNAL"
Rob Barnes56e889c2020-07-23 14:21:23 -0600299 register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_14)"
Rob Barnesf0d1c9a2020-06-24 09:42:02 -0600300 device usb 2.1 on end
301 end
302 chip drivers/usb/acpi
303 register "desc" = ""World-Facing Camera""
304 register "type" = "UPC_TYPE_INTERNAL"
305 device usb 3.0 on end
306 end
307 end
308 end
309 end
Furquan Shaikh24ec79c2020-07-16 13:40:28 -0700310 device pci 0.5 on
311 chip drivers/amd/i2s_machine_dev
312 register "hid" = ""AMDI5682""
313 # DMIC select GPIO for ACP machine device
314 # This GPIO is used to select DMIC0 or DMIC1 by the
315 # kernel driver. It does not really have a polarity
316 # since low and high control the selection of DMIC and
317 # hence does not have an active polarity.
318 # Kernel driver does not use the polarity field and
319 # instead treats the GPIO selection as follows:
320 # Set low (0) = Select DMIC0
321 # Set high (1) = Select DMIC1
322 register "dmic_select_gpio" = "ACPI_GPIO_OUTPUT(GPIO_67)"
323 device generic 0.0 on end
324 end
325 end # Audio
Felix Held90ca7f42020-08-21 16:17:05 +0200326 device pci 0.6 off end # HDA
Raul E Rangelb3c41322020-05-20 14:07:41 -0600327 device pci 0.7 on end # non-Sensor Fusion Hub device
328 end
Matt Papageorge48b2b2b2020-07-30 15:32:34 -0500329 device pci 8.2 off # Internal GPP Bridge 0 to Bus B
330 device pci 0.0 off end # AHCI
Raul E Rangelb3c41322020-05-20 14:07:41 -0600331 end
332 device pci 14.0 on end # SM
333 device pci 14.3 on # - D14F3 bridge
334 chip ec/google/chromeec
335 device pnp 0c09.0 on
336 chip ec/google/chromeec/i2c_tunnel
337 register "uid" = "1"
338 register "remote_bus" = "8"
339 device generic 0.0 on
340 chip drivers/i2c/generic
341 register "hid" = ""10EC5682""
342 register "name" = ""RT58""
343 register "uid" = "1"
344 register "desc" = ""Realtek RT5682""
Josie Nordrumcc72e152020-08-03 11:39:41 -0600345 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_BOTH(GPIO_29)"
Akshu Agrawalc7d6d7a2020-07-06 19:39:51 +0530346 register "property_count" = "2"
Raul E Rangelb3c41322020-05-20 14:07:41 -0600347 register "property_list[0].type" = "ACPI_DP_TYPE_INTEGER"
348 register "property_list[0].name" = ""realtek,jd-src""
349 register "property_list[0].integer" = "1"
Akshu Agrawalc7d6d7a2020-07-06 19:39:51 +0530350 register "property_list[1].type" = "ACPI_DP_TYPE_STRING"
351 register "property_list[1].name" = ""realtek,mclk-name""
352 register "property_list[1].string" = ""oscout1""
Raul E Rangelb3c41322020-05-20 14:07:41 -0600353 device i2c 1a on end
354 end
355 end
356 end
357 chip ec/google/chromeec/i2c_tunnel
358 register "name" = ""MSTH""
359 register "uid" = "1"
360 register "remote_bus" = "9"
361 device generic 1.0 on end
362 end
Furquan Shaikhe284bff2020-07-02 16:03:06 -0700363 chip ec/google/chromeec/audio_codec
364 register "uid" = "1"
365 device generic 0 on end
366 end
Raul E Rangelb3c41322020-05-20 14:07:41 -0600367 end
368 end
369 end
Rob Barnes9754f382020-07-13 20:15:39 -0600370 device pci 14.6 off end # Non-Functional SDHCI
Raul E Rangelb3c41322020-05-20 14:07:41 -0600371 device pci 18.0 on end # Data fabric [0-7]
372 device pci 18.1 on end
373 device pci 18.2 on end
374 device pci 18.3 on end
375 device pci 18.4 on end
376 device pci 18.5 on end
377 device pci 18.6 on end
378 end # domain
379
380 chip drivers/generic/max98357a
Raul E Rangel19704cd2020-06-02 10:43:20 -0600381 register "hid" = ""MX98357A""
Raul E Rangelb3c41322020-05-20 14:07:41 -0600382 register "sdmode_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_91)"
383 register "sdmode_delay" = "5"
384 device generic 0.1 on end
385 end
386
387 device mmio 0xfedc5000 on
388 chip drivers/i2c/tpm
389 register "hid" = ""GOOG0005""
390 register "desc" = ""Cr50 TPM""
391 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_LOW(GPIO_3)"
392 device i2c 50 on end
393 end
394 end
395
Raul E Rangel5e29c0e2020-06-12 11:41:16 -0600396 device mmio 0xfedca000 off end # UART1
397 device mmio 0xfedce000 off end # UART2
398 device mmio 0xfedcf000 off end # UART3
399
Raul E Rangelb3c41322020-05-20 14:07:41 -0600400end # chip soc/amd/picasso