blob: 40042436d3b2fcee57bd41f37fb30ff860fb5a1f [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
Felix Helde2379962020-07-29 01:02:38 +0200129 # USB OC pin mapping
130 register "usb_port_overcurrent_pin[0]" = "USB_OC_PIN_0" # USB C0
131 register "usb_port_overcurrent_pin[1]" = "USB_OC_PIN_1" # USB C1
132 register "usb_port_overcurrent_pin[2]" = "USB_OC_PIN_0" # USB A0
133 register "usb_port_overcurrent_pin[3]" = "USB_OC_PIN_1" # USB A1
134 register "usb_port_overcurrent_pin[4]" = "USB_OC_NONE" # Camera
135 register "usb_port_overcurrent_pin[5]" = "USB_OC_NONE" # Bluetooth
136
Raul E Rangelb3c41322020-05-20 14:07:41 -0600137 # SPI Configuration
138 register "common_config.spi_config" = "{
Rob Barnes13ec6a02020-07-14 13:23:43 -0600139 .normal_speed = SPI_SPEED_33M, /* MHz */
140 .fast_speed = SPI_SPEED_66M, /* MHz */
Raul E Rangelb3c41322020-05-20 14:07:41 -0600141 .altio_speed = SPI_SPEED_66M, /* MHz */
142 .tpm_speed = SPI_SPEED_66M, /* MHz */
Martin Roth637f9412020-07-06 20:02:36 -0600143 .read_mode = SPI_READ_MODE_DUAL122,
Raul E Rangelb3c41322020-05-20 14:07:41 -0600144 }"
145
146 # 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 Heldd555d6a2020-08-28 02:12:52 +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_REQ" # NVME SSD
189 register "gpp_clk_config[3]" = "GPP_CLK_OFF"
190 register "gpp_clk_config[4]" = "GPP_CLK_OFF"
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
209 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" = ""Right Type-C Port""
227 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
228 register "group" = "ACPI_PLD_GROUP(2, 2)"
229 device usb 2.1 on end
230 end
231 chip drivers/usb/acpi
232 register "desc" = ""Left Type-A Port""
233 register "type" = "UPC_TYPE_USB3_A"
234 register "group" = "ACPI_PLD_GROUP(1, 2)"
235 device usb 2.2 on end
236 end
237 chip drivers/usb/acpi
238 register "desc" = ""Right Type-A Port""
239 register "type" = "UPC_TYPE_USB3_A"
240 register "group" = "ACPI_PLD_GROUP(2, 1)"
241 device usb 2.3 on end
242 end
243 chip drivers/usb/acpi
244 register "desc" = ""User-Facing Camera""
245 register "type" = "UPC_TYPE_INTERNAL"
246 device usb 2.4 on end
247 end
248 chip drivers/usb/acpi
249 register "desc" = ""Bluetooth""
250 register "type" = "UPC_TYPE_INTERNAL"
Rob Barnes56e889c2020-07-23 14:21:23 -0600251 register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_143)"
Rob Barnesf0d1c9a2020-06-24 09:42:02 -0600252 device usb 2.5 on end
253 end
254 chip drivers/usb/acpi
255 register "desc" = ""Left Type-C Port""
256 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
257 register "group" = "ACPI_PLD_GROUP(1, 1)"
258 device usb 3.0 on end
259 end
260 chip drivers/usb/acpi
261 register "desc" = ""Right Type-C Port""
262 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
263 register "group" = "ACPI_PLD_GROUP(2, 2)"
264 device usb 3.1 on end
265 end
266 chip drivers/usb/acpi
267 register "desc" = ""Left Type-A Port""
268 register "type" = "UPC_TYPE_USB3_A"
269 register "group" = "ACPI_PLD_GROUP(1, 2)"
270 device usb 3.2 on end
271 end
272 chip drivers/usb/acpi
273 register "desc" = ""Right Type-A Port""
274 register "type" = "UPC_TYPE_USB3_A"
275 register "group" = "ACPI_PLD_GROUP(2, 1)"
276 device usb 3.3 on end
277 end
278 end
279 end
280 end
Furquan Shaikh24ec79c2020-07-16 13:40:28 -0700281 device pci 0.5 on
282 chip drivers/amd/i2s_machine_dev
283 register "hid" = ""AMDI5682""
284 # DMIC select GPIO for ACP machine device
285 # This GPIO is used to select DMIC0 or DMIC1 by the
286 # kernel driver. It does not really have a polarity
287 # since low and high control the selection of DMIC and
288 # hence does not have an active polarity.
289 # Kernel driver does not use the polarity field and
290 # instead treats the GPIO selection as follows:
291 # Set low (0) = Select DMIC0
292 # Set high (1) = Select DMIC1
293 register "dmic_select_gpio" = "ACPI_GPIO_OUTPUT(GPIO_67)"
294 device generic 0.0 on end
295 end
296 end # Audio
Felix Held90ca7f42020-08-21 16:17:05 +0200297 device pci 0.6 off end # HDA
Raul E Rangelb3c41322020-05-20 14:07:41 -0600298 device pci 0.7 on end # non-Sensor Fusion Hub device
299 end
Matt Papageorge48b2b2b2020-07-30 15:32:34 -0500300 device pci 8.2 off # Internal GPP Bridge 0 to Bus B
301 device pci 0.0 off end # AHCI
Raul E Rangelb3c41322020-05-20 14:07:41 -0600302 end
303 device pci 14.0 on end # SM
304 device pci 14.3 on # - D14F3 bridge
305 chip ec/google/chromeec
306 device pnp 0c09.0 on
307 chip ec/google/chromeec/i2c_tunnel
308 register "uid" = "1"
309 register "remote_bus" = "8"
310 device generic 0.0 on
311 chip drivers/i2c/generic
312 register "hid" = ""10EC5682""
313 register "name" = ""RT58""
314 register "uid" = "1"
315 register "desc" = ""Realtek RT5682""
Josie Nordrumcc72e152020-08-03 11:39:41 -0600316 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_BOTH(GPIO_84)"
Akshu Agrawalc7d6d7a2020-07-06 19:39:51 +0530317 register "property_count" = "2"
Raul E Rangelb3c41322020-05-20 14:07:41 -0600318 register "property_list[0].type" = "ACPI_DP_TYPE_INTEGER"
319 register "property_list[0].name" = ""realtek,jd-src""
320 register "property_list[0].integer" = "1"
Akshu Agrawalc7d6d7a2020-07-06 19:39:51 +0530321 register "property_list[1].type" = "ACPI_DP_TYPE_STRING"
322 register "property_list[1].name" = ""realtek,mclk-name""
323 register "property_list[1].string" = ""oscout1""
Raul E Rangelb3c41322020-05-20 14:07:41 -0600324 device i2c 1a on end
325 end
326 end
327 end
328 chip ec/google/chromeec/i2c_tunnel
329 register "name" = ""MSTH""
330 register "uid" = "1"
331 register "remote_bus" = "9"
332 device generic 1.0 on end
333 end
Furquan Shaikhe284bff2020-07-02 16:03:06 -0700334 chip ec/google/chromeec/audio_codec
335 register "uid" = "1"
336 device generic 0 on end
337 end
Raul E Rangelb3c41322020-05-20 14:07:41 -0600338 end
339 end
340 end
341 device pci 18.0 on end # Data fabric [0-7]
342 device pci 18.1 on end
343 device pci 18.2 on end
344 device pci 18.3 on end
345 device pci 18.4 on end
346 device pci 18.5 on end
347 device pci 18.6 on end
348 end # domain
349
350 chip drivers/generic/max98357a
Raul E Rangel19704cd2020-06-02 10:43:20 -0600351 register "hid" = ""MX98357A""
Raul E Rangelb3c41322020-05-20 14:07:41 -0600352 register "sdmode_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_91)"
353 register "sdmode_delay" = "5"
354 device generic 0.1 on end
355 end
356
357 device mmio 0xfedc5000 on
358 chip drivers/i2c/tpm
359 register "hid" = ""GOOG0005""
360 register "desc" = ""Cr50 TPM""
361 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_LOW(GPIO_3)"
362 device i2c 50 on end
363 end
364 end
365
Raul E Rangel5e29c0e2020-06-12 11:41:16 -0600366 device mmio 0xfedca000 off end # UART1
367 device mmio 0xfedce000 off end # UART2
368 device mmio 0xfedcf000 off end # UART3
369
Raul E Rangelb3c41322020-05-20 14:07:41 -0600370end # chip soc/amd/picasso