blob: 16206439ee851821bc83d16b59018d62b661d21c [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"
11 register "acpi_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
43 register "sd_emmc_config" = "SD_EMMC_EMMC_HS400"
44
Lucas Chenc1bb32f2020-05-26 19:31:48 +080045 register "xhci0_force_gen1" = "0"
46
Felix Held1d0154c2020-07-23 19:37:42 +020047 register "has_usb2_phy_tune_params" = "1"
48
Chris Wang1e3e5282020-06-23 21:10:57 +080049 # Controller0 Port0 Default
Felix Held3a7389e2020-07-23 18:22:30 +020050 register "usb_2_port_tune_params[0]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +080051 .com_pds_tune = 0x03,
52 .sq_rx_tune = 0x3,
53 .tx_fsls_tune = 0x3,
54 .tx_pre_emp_amp_tune = 0x03,
55 .tx_pre_emp_pulse_tune = 0x0,
56 .tx_rise_tune = 0x1,
57 .rx_vref_tune = 0x6,
58 .tx_hsxv_tune = 0x3,
59 .tx_res_tune = 0x01,
60 }"
61
62 # Controller0 Port1 Default
Felix Held3a7389e2020-07-23 18:22:30 +020063 register "usb_2_port_tune_params[1]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +080064 .com_pds_tune = 0x03,
65 .sq_rx_tune = 0x3,
66 .tx_fsls_tune = 0x3,
67 .tx_pre_emp_amp_tune = 0x03,
68 .tx_pre_emp_pulse_tune = 0x0,
69 .tx_rise_tune = 0x1,
70 .rx_vref_tune = 0x6,
71 .tx_hsxv_tune = 0x3,
72 .tx_res_tune = 0x01,
73 }"
74
75 # Controller0 Port2 Default
Felix Held3a7389e2020-07-23 18:22:30 +020076 register "usb_2_port_tune_params[2]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +080077 .com_pds_tune = 0x03,
78 .sq_rx_tune = 0x3,
79 .tx_fsls_tune = 0x3,
80 .tx_pre_emp_amp_tune = 0x03,
81 .tx_pre_emp_pulse_tune = 0x0,
82 .tx_rise_tune = 0x1,
83 .rx_vref_tune = 0x6,
84 .tx_hsxv_tune = 0x3,
85 .tx_res_tune = 0x01,
86 }"
87
88 # Controller0 Port3 Default
Felix Held3a7389e2020-07-23 18:22:30 +020089 register "usb_2_port_tune_params[3]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +080090 .com_pds_tune = 0x03,
91 .sq_rx_tune = 0x3,
92 .tx_fsls_tune = 0x3,
93 .tx_pre_emp_amp_tune = 0x03,
94 .tx_pre_emp_pulse_tune = 0x0,
95 .tx_rise_tune = 0x1,
96 .rx_vref_tune = 0x6,
97 .tx_hsxv_tune = 0x3,
98 .tx_res_tune = 0x01,
99 }"
100
101 # Controller1 Port0 Default
Felix Held3a7389e2020-07-23 18:22:30 +0200102 register "usb_2_port_tune_params[4]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +0800103 .com_pds_tune = 0x03,
104 .sq_rx_tune = 0x3,
105 .tx_fsls_tune = 0x3,
106 .tx_pre_emp_amp_tune = 0x02,
107 .tx_pre_emp_pulse_tune = 0x0,
108 .tx_rise_tune = 0x1,
109 .rx_vref_tune = 0x5,
110 .tx_hsxv_tune = 0x3,
111 .tx_res_tune = 0x01,
112 }"
113
114 # Controller1 Port1 Default
Felix Held3a7389e2020-07-23 18:22:30 +0200115 register "usb_2_port_tune_params[5]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +0800116 .com_pds_tune = 0x03,
117 .sq_rx_tune = 0x3,
118 .tx_fsls_tune = 0x3,
119 .tx_pre_emp_amp_tune = 0x02,
120 .tx_pre_emp_pulse_tune = 0x0,
121 .tx_rise_tune = 0x1,
122 .rx_vref_tune = 0x5,
123 .tx_hsxv_tune = 0x3,
124 .tx_res_tune = 0x01,
125 }"
126
Raul E Rangelb3c41322020-05-20 14:07:41 -0600127 # SPI Configuration
128 register "common_config.spi_config" = "{
Rob Barnes13ec6a02020-07-14 13:23:43 -0600129 .normal_speed = SPI_SPEED_33M, /* MHz */
130 .fast_speed = SPI_SPEED_66M, /* MHz */
Raul E Rangelb3c41322020-05-20 14:07:41 -0600131 .altio_speed = SPI_SPEED_66M, /* MHz */
132 .tpm_speed = SPI_SPEED_66M, /* MHz */
Martin Roth637f9412020-07-06 20:02:36 -0600133 .read_mode = SPI_READ_MODE_DUAL122,
Raul E Rangelb3c41322020-05-20 14:07:41 -0600134 }"
135
Felix Held04394d62020-08-06 15:04:15 +0200136 # USB OC pin mapping
137 register "usb_port_overcurrent_pin[0]" = "USB_OC_PIN_0" # USB C0
138 register "usb_port_overcurrent_pin[1]" = "USB_OC_PIN_0" # USB A0
139 register "usb_port_overcurrent_pin[2]" = "USB_OC_PIN_1" # USB A1
140 register "usb_port_overcurrent_pin[3]" = "USB_OC_PIN_1" # USB C1
Felix Helde2379962020-07-29 01:02:38 +0200141 register "usb_port_overcurrent_pin[4]" = "USB_OC_NONE" # Camera or internal hub
142 register "usb_port_overcurrent_pin[5]" = "USB_OC_NONE" # Bluetooth
143
Raul E Rangelb3c41322020-05-20 14:07:41 -0600144 # eSPI Configuration
145 register "common_config.espi_config" = "{
146 .std_io_decode_bitmap = ESPI_DECODE_IO_0x80_EN | ESPI_DECODE_IO_0X60_0X64_EN,
147 .generic_io_range[0] = {
148 .base = 0x62,
149 /*
150 * Only 0x62 and 0x66 are required. But, this is not supported by
151 * standard IO decodes and there are only 4 generic I/O windows
152 * available. Hence, open a window from 0x62-0x67.
153 */
154 .size = 5,
155 },
156 .generic_io_range[1] = {
157 .base = 0x800, /* EC_HOST_CMD_REGION0 */
158 .size = 256, /* EC_HOST_CMD_REGION_SIZE * 2 */
159 },
160 .generic_io_range[2] = {
161 .base = 0x900, /* EC_LPC_ADDR_MEMMAP */
162 .size = 255, /* EC_MEMMAP_SIZE */
163 },
164 .generic_io_range[3] = {
165 .base = 0x200, /* EC_LPC_ADDR_HOST_DATA */
166 .size = 8, /* 0x200 - 0x207 */
167 },
168
169 .io_mode = ESPI_IO_MODE_QUAD,
170 .op_freq_mhz = ESPI_OP_FREQ_33_MHZ,
171 .crc_check_enable = 1,
172 .dedicated_alert_pin = 1,
173 .periph_ch_en = 1,
174 .vw_ch_en = 1,
175 .oob_ch_en = 0,
176 .flash_ch_en = 0,
177
Aaron Durbin76fcf8292020-07-02 11:08:21 -0600178 .vw_irq_polarity = ESPI_VW_IRQ_LEVEL_HIGH(1) | ESPI_VW_IRQ_LEVEL_HIGH(12),
Raul E Rangelb3c41322020-05-20 14:07:41 -0600179 }"
180
181 register "i2c_scl_reset" = "GPIO_I2C2_SCL | GPIO_I2C3_SCL"
182
Felix Held764b9872020-08-28 02:12:06 +0200183 # genral purpose PCIe clock output configuration
184 register "gpp_clk_config[0]" = "GPP_CLK_REQ" # WLAN
185 register "gpp_clk_config[1]" = "GPP_CLK_REQ" # SD Reader
186 register "gpp_clk_config[2]" = "GPP_CLK_OFF"
187 register "gpp_clk_config[3]" = "GPP_CLK_OFF"
188 register "gpp_clk_config[4]" = "GPP_CLK_REQ" # NVME SSD
189 register "gpp_clk_config[5]" = "GPP_CLK_OFF"
190 register "gpp_clk_config[6]" = "GPP_CLK_OFF"
191
Raul E Rangelb3c41322020-05-20 14:07:41 -0600192 device cpu_cluster 0 on
193 device lapic 0 on end
194 end
195
196 # See AMD 55570-B1 Table 13: PCI Device ID Assignments.
197 device domain 0 on
198 subsystemid 0x1022 0x1510 inherit
199 device pci 0.0 on end # Root Complex
200 device pci 0.2 on end # IOMMU
201 device pci 1.0 on end # Dummy Host Bridge, must be enabled
202 device pci 1.1 off end # GPP Bridge 0
203 device pci 1.2 on end # GPP Bridge 1 - Wifi
204 device pci 1.3 on end # GPP Bridge 2 - SD
205 device pci 1.4 off end # GPP Bridge 3
206 device pci 1.5 off end # GPP Bridge 4
Rob Barnes9754f382020-07-13 20:15:39 -0600207 device pci 1.6 off end # GPP Bridge 5
208 device pci 1.7 on end # GPP Bridge 6 - NVME
Raul E Rangelb3c41322020-05-20 14:07:41 -0600209 device pci 8.0 on end # Dummy Host Bridge, must be enabled
210 device pci 8.1 on # Internal GPP Bridge 0 to Bus A
211 device pci 0.0 on end # Internal GPU
212 device pci 0.1 on end # Display HDA
213 device pci 0.2 on end # Crypto Coprocesor
Rob Barnesf0d1c9a2020-06-24 09:42:02 -0600214 device pci 0.3 on # USB 3.1
215 chip drivers/usb/acpi
216 register "desc" = ""Root Hub""
217 register "type" = "UPC_TYPE_HUB"
218 device usb 0.0 on
219 chip drivers/usb/acpi
220 register "desc" = ""Left Type-C Port""
221 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
222 register "group" = "ACPI_PLD_GROUP(1, 1)"
223 device usb 2.0 on end
224 end
225 chip drivers/usb/acpi
226 register "desc" = ""Left Type-A Port""
227 register "type" = "UPC_TYPE_USB3_A"
228 register "group" = "ACPI_PLD_GROUP(1, 2)"
229 device usb 2.1 on end
230 end
231 chip drivers/usb/acpi
232 register "desc" = ""Right Type-A Port""
233 register "type" = "UPC_TYPE_USB3_A"
234 register "group" = "ACPI_PLD_GROUP(2, 1)"
235 device usb 2.2 on end
236 end
237 chip drivers/usb/acpi
238 register "desc" = ""Right Type-C Port""
239 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
240 register "group" = "ACPI_PLD_GROUP(2, 2)"
241 device usb 2.3 on end
242 end
243 chip drivers/usb/acpi
244 register "desc" = ""Left Type-C Port""
245 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
246 register "group" = "ACPI_PLD_GROUP(1, 1)"
247 device usb 3.0 on end
248 end
249 chip drivers/usb/acpi
250 register "desc" = ""Left Type-A Port""
251 register "type" = "UPC_TYPE_USB3_A"
252 register "group" = "ACPI_PLD_GROUP(1, 2)"
253 device usb 3.1 on end
254 end
255 chip drivers/usb/acpi
256 register "desc" = ""Right Type-A Port""
257 register "type" = "UPC_TYPE_USB3_A"
258 register "group" = "ACPI_PLD_GROUP(2, 1)"
259 device usb 3.2 on end
260 end
261 chip drivers/usb/acpi
262 register "desc" = ""Right Type-C Port""
263 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
264 register "group" = "ACPI_PLD_GROUP(2, 2)"
265 device usb 3.3 on end
266 end
267
268 # The following devices are only enabled on Dali SKUs
269 chip drivers/usb/acpi
270 register "desc" = ""User-Facing Camera""
271 register "type" = "UPC_TYPE_INTERNAL"
272 device usb 2.4 on end
273 end
274 chip drivers/usb/acpi
275 register "desc" = ""Bluetooth""
276 register "type" = "UPC_TYPE_INTERNAL"
Rob Barnes56e889c2020-07-23 14:21:23 -0600277 register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_14)"
Rob Barnesf0d1c9a2020-06-24 09:42:02 -0600278 device usb 2.5 on end
279 end
280 end
281 end
282 end
283 device pci 0.4 on # USB 3.1
284 chip drivers/usb/acpi
285 # The following devices are only enabled on Picasso SKUs
286 register "desc" = ""Root Hub""
287 register "type" = "UPC_TYPE_HUB"
288 device usb 0.0 on
289 chip drivers/usb/acpi
290 register "desc" = ""User-Facing Camera""
291 register "type" = "UPC_TYPE_INTERNAL"
292 device usb 2.0 on end
293 end
294 chip drivers/usb/acpi
295 register "desc" = ""Bluetooth""
296 register "type" = "UPC_TYPE_INTERNAL"
Rob Barnes56e889c2020-07-23 14:21:23 -0600297 register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_14)"
Rob Barnesf0d1c9a2020-06-24 09:42:02 -0600298 device usb 2.1 on end
299 end
300 chip drivers/usb/acpi
301 register "desc" = ""World-Facing Camera""
302 register "type" = "UPC_TYPE_INTERNAL"
303 device usb 3.0 on end
304 end
305 end
306 end
307 end
Furquan Shaikh24ec79c2020-07-16 13:40:28 -0700308 device pci 0.5 on
309 chip drivers/amd/i2s_machine_dev
310 register "hid" = ""AMDI5682""
311 # DMIC select GPIO for ACP machine device
312 # This GPIO is used to select DMIC0 or DMIC1 by the
313 # kernel driver. It does not really have a polarity
314 # since low and high control the selection of DMIC and
315 # hence does not have an active polarity.
316 # Kernel driver does not use the polarity field and
317 # instead treats the GPIO selection as follows:
318 # Set low (0) = Select DMIC0
319 # Set high (1) = Select DMIC1
320 register "dmic_select_gpio" = "ACPI_GPIO_OUTPUT(GPIO_67)"
321 device generic 0.0 on end
322 end
323 end # Audio
Felix Held90ca7f42020-08-21 16:17:05 +0200324 device pci 0.6 off end # HDA
Raul E Rangelb3c41322020-05-20 14:07:41 -0600325 device pci 0.7 on end # non-Sensor Fusion Hub device
326 end
Matt Papageorge48b2b2b2020-07-30 15:32:34 -0500327 device pci 8.2 off # Internal GPP Bridge 0 to Bus B
328 device pci 0.0 off end # AHCI
Raul E Rangelb3c41322020-05-20 14:07:41 -0600329 end
330 device pci 14.0 on end # SM
331 device pci 14.3 on # - D14F3 bridge
332 chip ec/google/chromeec
333 device pnp 0c09.0 on
334 chip ec/google/chromeec/i2c_tunnel
335 register "uid" = "1"
336 register "remote_bus" = "8"
337 device generic 0.0 on
338 chip drivers/i2c/generic
339 register "hid" = ""10EC5682""
340 register "name" = ""RT58""
341 register "uid" = "1"
342 register "desc" = ""Realtek RT5682""
Josie Nordrumcc72e152020-08-03 11:39:41 -0600343 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_BOTH(GPIO_29)"
Akshu Agrawalc7d6d7a2020-07-06 19:39:51 +0530344 register "property_count" = "2"
Raul E Rangelb3c41322020-05-20 14:07:41 -0600345 register "property_list[0].type" = "ACPI_DP_TYPE_INTEGER"
346 register "property_list[0].name" = ""realtek,jd-src""
347 register "property_list[0].integer" = "1"
Akshu Agrawalc7d6d7a2020-07-06 19:39:51 +0530348 register "property_list[1].type" = "ACPI_DP_TYPE_STRING"
349 register "property_list[1].name" = ""realtek,mclk-name""
350 register "property_list[1].string" = ""oscout1""
Raul E Rangelb3c41322020-05-20 14:07:41 -0600351 device i2c 1a on end
352 end
353 end
354 end
355 chip ec/google/chromeec/i2c_tunnel
356 register "name" = ""MSTH""
357 register "uid" = "1"
358 register "remote_bus" = "9"
359 device generic 1.0 on end
360 end
Furquan Shaikhe284bff2020-07-02 16:03:06 -0700361 chip ec/google/chromeec/audio_codec
362 register "uid" = "1"
363 device generic 0 on end
364 end
Raul E Rangelb3c41322020-05-20 14:07:41 -0600365 end
366 end
367 end
Rob Barnes9754f382020-07-13 20:15:39 -0600368 device pci 14.6 off end # Non-Functional SDHCI
Raul E Rangelb3c41322020-05-20 14:07:41 -0600369 device pci 18.0 on end # Data fabric [0-7]
370 device pci 18.1 on end
371 device pci 18.2 on end
372 device pci 18.3 on end
373 device pci 18.4 on end
374 device pci 18.5 on end
375 device pci 18.6 on end
376 end # domain
377
378 chip drivers/generic/max98357a
Raul E Rangel19704cd2020-06-02 10:43:20 -0600379 register "hid" = ""MX98357A""
Raul E Rangelb3c41322020-05-20 14:07:41 -0600380 register "sdmode_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_91)"
381 register "sdmode_delay" = "5"
382 device generic 0.1 on end
383 end
384
385 device mmio 0xfedc5000 on
386 chip drivers/i2c/tpm
387 register "hid" = ""GOOG0005""
388 register "desc" = ""Cr50 TPM""
389 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_LOW(GPIO_3)"
390 device i2c 50 on end
391 end
392 end
393
Raul E Rangel5e29c0e2020-06-12 11:41:16 -0600394 device mmio 0xfedca000 off end # UART1
395 device mmio 0xfedce000 off end # UART2
396 device mmio 0xfedcf000 off end # UART3
397
Raul E Rangelb3c41322020-05-20 14:07:41 -0600398end # chip soc/amd/picasso