blob: ae712ee2bee40e19b211c1bcb82cecef4d04815c [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,
Raul E Rangel94be1f72020-09-03 15:46:56 -060045 .sdr104_hs400_driver_strength = SD_EMMC_DRIVE_STRENGTH_A,
46 /*
47 * The reference design was missing a pull-up on the CMD line.
48 * This means we can't run at the full 400 kHz. By setting this
49 * to 1 we run at the slowest frequency possible by the
50 * controller (~97 kHz).
51 *
52 * Boards that have the pull-up should correctly set this.
53 */
54 .init_khz_preset = 1,
Raul E Rangel7c79d832020-09-03 14:30:33 -060055 }"
Raul E Rangelb3c41322020-05-20 14:07:41 -060056
Lucas Chenc1bb32f2020-05-26 19:31:48 +080057 register "xhci0_force_gen1" = "0"
58
Felix Held1d0154c2020-07-23 19:37:42 +020059 register "has_usb2_phy_tune_params" = "1"
60
Chris Wang1e3e5282020-06-23 21:10:57 +080061 # Controller0 Port0 Default
Felix Held3a7389e2020-07-23 18:22:30 +020062 register "usb_2_port_tune_params[0]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +080063 .com_pds_tune = 0x03,
64 .sq_rx_tune = 0x3,
65 .tx_fsls_tune = 0x3,
66 .tx_pre_emp_amp_tune = 0x03,
67 .tx_pre_emp_pulse_tune = 0x0,
68 .tx_rise_tune = 0x1,
69 .rx_vref_tune = 0x6,
70 .tx_hsxv_tune = 0x3,
71 .tx_res_tune = 0x01,
72 }"
73
74 # Controller0 Port1 Default
Felix Held3a7389e2020-07-23 18:22:30 +020075 register "usb_2_port_tune_params[1]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +080076 .com_pds_tune = 0x03,
77 .sq_rx_tune = 0x3,
78 .tx_fsls_tune = 0x3,
79 .tx_pre_emp_amp_tune = 0x03,
80 .tx_pre_emp_pulse_tune = 0x0,
81 .tx_rise_tune = 0x1,
82 .rx_vref_tune = 0x6,
83 .tx_hsxv_tune = 0x3,
84 .tx_res_tune = 0x01,
85 }"
86
87 # Controller0 Port2 Default
Felix Held3a7389e2020-07-23 18:22:30 +020088 register "usb_2_port_tune_params[2]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +080089 .com_pds_tune = 0x03,
90 .sq_rx_tune = 0x3,
91 .tx_fsls_tune = 0x3,
92 .tx_pre_emp_amp_tune = 0x03,
93 .tx_pre_emp_pulse_tune = 0x0,
94 .tx_rise_tune = 0x1,
95 .rx_vref_tune = 0x6,
96 .tx_hsxv_tune = 0x3,
97 .tx_res_tune = 0x01,
98 }"
99
100 # Controller0 Port3 Default
Felix Held3a7389e2020-07-23 18:22:30 +0200101 register "usb_2_port_tune_params[3]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +0800102 .com_pds_tune = 0x03,
103 .sq_rx_tune = 0x3,
104 .tx_fsls_tune = 0x3,
105 .tx_pre_emp_amp_tune = 0x03,
106 .tx_pre_emp_pulse_tune = 0x0,
107 .tx_rise_tune = 0x1,
108 .rx_vref_tune = 0x6,
109 .tx_hsxv_tune = 0x3,
110 .tx_res_tune = 0x01,
111 }"
112
113 # Controller1 Port0 Default
Felix Held3a7389e2020-07-23 18:22:30 +0200114 register "usb_2_port_tune_params[4]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +0800115 .com_pds_tune = 0x03,
116 .sq_rx_tune = 0x3,
117 .tx_fsls_tune = 0x3,
118 .tx_pre_emp_amp_tune = 0x02,
119 .tx_pre_emp_pulse_tune = 0x0,
120 .tx_rise_tune = 0x1,
121 .rx_vref_tune = 0x5,
122 .tx_hsxv_tune = 0x3,
123 .tx_res_tune = 0x01,
124 }"
125
126 # Controller1 Port1 Default
Felix Held3a7389e2020-07-23 18:22:30 +0200127 register "usb_2_port_tune_params[5]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +0800128 .com_pds_tune = 0x03,
129 .sq_rx_tune = 0x3,
130 .tx_fsls_tune = 0x3,
131 .tx_pre_emp_amp_tune = 0x02,
132 .tx_pre_emp_pulse_tune = 0x0,
133 .tx_rise_tune = 0x1,
134 .rx_vref_tune = 0x5,
135 .tx_hsxv_tune = 0x3,
136 .tx_res_tune = 0x01,
137 }"
138
Felix Helde2379962020-07-29 01:02:38 +0200139 # USB OC pin mapping
140 register "usb_port_overcurrent_pin[0]" = "USB_OC_PIN_0" # USB C0
141 register "usb_port_overcurrent_pin[1]" = "USB_OC_PIN_1" # USB C1
142 register "usb_port_overcurrent_pin[2]" = "USB_OC_PIN_0" # USB A0
143 register "usb_port_overcurrent_pin[3]" = "USB_OC_PIN_1" # USB A1
144 register "usb_port_overcurrent_pin[4]" = "USB_OC_NONE" # Camera
145 register "usb_port_overcurrent_pin[5]" = "USB_OC_NONE" # Bluetooth
146
Raul E Rangelb3c41322020-05-20 14:07:41 -0600147 # SPI Configuration
148 register "common_config.spi_config" = "{
Rob Barnes13ec6a02020-07-14 13:23:43 -0600149 .normal_speed = SPI_SPEED_33M, /* MHz */
150 .fast_speed = SPI_SPEED_66M, /* MHz */
Raul E Rangelb3c41322020-05-20 14:07:41 -0600151 .altio_speed = SPI_SPEED_66M, /* MHz */
152 .tpm_speed = SPI_SPEED_66M, /* MHz */
Martin Roth637f9412020-07-06 20:02:36 -0600153 .read_mode = SPI_READ_MODE_DUAL122,
Raul E Rangelb3c41322020-05-20 14:07:41 -0600154 }"
155
156 # eSPI Configuration
157 register "common_config.espi_config" = "{
158 .std_io_decode_bitmap = ESPI_DECODE_IO_0x80_EN | ESPI_DECODE_IO_0X60_0X64_EN,
159 .generic_io_range[0] = {
160 .base = 0x62,
161 /*
162 * Only 0x62 and 0x66 are required. But, this is not supported by
163 * standard IO decodes and there are only 4 generic I/O windows
164 * available. Hence, open a window from 0x62-0x67.
165 */
166 .size = 5,
167 },
168 .generic_io_range[1] = {
169 .base = 0x800, /* EC_HOST_CMD_REGION0 */
170 .size = 256, /* EC_HOST_CMD_REGION_SIZE * 2 */
171 },
172 .generic_io_range[2] = {
173 .base = 0x900, /* EC_LPC_ADDR_MEMMAP */
174 .size = 255, /* EC_MEMMAP_SIZE */
175 },
176 .generic_io_range[3] = {
177 .base = 0x200, /* EC_LPC_ADDR_HOST_DATA */
178 .size = 8, /* 0x200 - 0x207 */
179 },
180
181 .io_mode = ESPI_IO_MODE_QUAD,
182 .op_freq_mhz = ESPI_OP_FREQ_33_MHZ,
183 .crc_check_enable = 1,
184 .dedicated_alert_pin = 1,
185 .periph_ch_en = 1,
186 .vw_ch_en = 1,
187 .oob_ch_en = 0,
188 .flash_ch_en = 0,
189
Aaron Durbin76fcf8292020-07-02 11:08:21 -0600190 .vw_irq_polarity = ESPI_VW_IRQ_LEVEL_HIGH(1) | ESPI_VW_IRQ_LEVEL_HIGH(12),
Raul E Rangelb3c41322020-05-20 14:07:41 -0600191 }"
192
193 register "i2c_scl_reset" = "GPIO_I2C2_SCL | GPIO_I2C3_SCL"
194
Felix Heldd555d6a2020-08-28 02:12:52 +0200195 # genral purpose PCIe clock output configuration
196 register "gpp_clk_config[0]" = "GPP_CLK_REQ" # WLAN
197 register "gpp_clk_config[1]" = "GPP_CLK_REQ" # SD Reader
198 register "gpp_clk_config[2]" = "GPP_CLK_REQ" # NVME SSD
199 register "gpp_clk_config[3]" = "GPP_CLK_OFF"
200 register "gpp_clk_config[4]" = "GPP_CLK_OFF"
201 register "gpp_clk_config[5]" = "GPP_CLK_OFF"
202 register "gpp_clk_config[6]" = "GPP_CLK_OFF"
203
Raul E Rangelb3c41322020-05-20 14:07:41 -0600204 device cpu_cluster 0 on
205 device lapic 0 on end
206 end
207
208 # See AMD 55570-B1 Table 13: PCI Device ID Assignments.
209 device domain 0 on
210 subsystemid 0x1022 0x1510 inherit
211 device pci 0.0 on end # Root Complex
212 device pci 0.2 on end # IOMMU
213 device pci 1.0 on end # Dummy Host Bridge, must be enabled
214 device pci 1.1 off end # GPP Bridge 0
215 device pci 1.2 on end # GPP Bridge 1 - Wifi
216 device pci 1.3 on end # GPP Bridge 2 - SD
217 device pci 1.4 off end # GPP Bridge 3
218 device pci 1.5 off end # GPP Bridge 4
219 device pci 8.0 on end # Dummy Host Bridge, must be enabled
220 device pci 8.1 on # Internal GPP Bridge 0 to Bus A
221 device pci 0.0 on end # Internal GPU
222 device pci 0.1 on end # Display HDA
223 device pci 0.2 on end # Crypto Coprocesor
Rob Barnesf0d1c9a2020-06-24 09:42:02 -0600224 device pci 0.3 on # USB 3.1
225 chip drivers/usb/acpi
226 register "desc" = ""Root Hub""
227 register "type" = "UPC_TYPE_HUB"
228 device usb 0.0 on
229 chip drivers/usb/acpi
230 register "desc" = ""Left Type-C Port""
231 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
232 register "group" = "ACPI_PLD_GROUP(1, 1)"
233 device usb 2.0 on end
234 end
235 chip drivers/usb/acpi
236 register "desc" = ""Right Type-C Port""
237 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
238 register "group" = "ACPI_PLD_GROUP(2, 2)"
239 device usb 2.1 on end
240 end
241 chip drivers/usb/acpi
242 register "desc" = ""Left Type-A Port""
243 register "type" = "UPC_TYPE_USB3_A"
244 register "group" = "ACPI_PLD_GROUP(1, 2)"
245 device usb 2.2 on end
246 end
247 chip drivers/usb/acpi
248 register "desc" = ""Right Type-A Port""
249 register "type" = "UPC_TYPE_USB3_A"
250 register "group" = "ACPI_PLD_GROUP(2, 1)"
251 device usb 2.3 on end
252 end
253 chip drivers/usb/acpi
254 register "desc" = ""User-Facing Camera""
255 register "type" = "UPC_TYPE_INTERNAL"
256 device usb 2.4 on end
257 end
258 chip drivers/usb/acpi
259 register "desc" = ""Bluetooth""
260 register "type" = "UPC_TYPE_INTERNAL"
Rob Barnes56e889c2020-07-23 14:21:23 -0600261 register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_143)"
Rob Barnesf0d1c9a2020-06-24 09:42:02 -0600262 device usb 2.5 on end
263 end
264 chip drivers/usb/acpi
265 register "desc" = ""Left Type-C Port""
266 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
267 register "group" = "ACPI_PLD_GROUP(1, 1)"
268 device usb 3.0 on end
269 end
270 chip drivers/usb/acpi
271 register "desc" = ""Right Type-C Port""
272 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
273 register "group" = "ACPI_PLD_GROUP(2, 2)"
274 device usb 3.1 on end
275 end
276 chip drivers/usb/acpi
277 register "desc" = ""Left Type-A Port""
278 register "type" = "UPC_TYPE_USB3_A"
279 register "group" = "ACPI_PLD_GROUP(1, 2)"
280 device usb 3.2 on end
281 end
282 chip drivers/usb/acpi
283 register "desc" = ""Right Type-A Port""
284 register "type" = "UPC_TYPE_USB3_A"
285 register "group" = "ACPI_PLD_GROUP(2, 1)"
286 device usb 3.3 on end
287 end
288 end
289 end
290 end
Furquan Shaikh24ec79c2020-07-16 13:40:28 -0700291 device pci 0.5 on
292 chip drivers/amd/i2s_machine_dev
293 register "hid" = ""AMDI5682""
294 # DMIC select GPIO for ACP machine device
295 # This GPIO is used to select DMIC0 or DMIC1 by the
296 # kernel driver. It does not really have a polarity
297 # since low and high control the selection of DMIC and
298 # hence does not have an active polarity.
299 # Kernel driver does not use the polarity field and
300 # instead treats the GPIO selection as follows:
301 # Set low (0) = Select DMIC0
302 # Set high (1) = Select DMIC1
303 register "dmic_select_gpio" = "ACPI_GPIO_OUTPUT(GPIO_67)"
304 device generic 0.0 on end
305 end
306 end # Audio
Felix Held90ca7f42020-08-21 16:17:05 +0200307 device pci 0.6 off end # HDA
Raul E Rangelb3c41322020-05-20 14:07:41 -0600308 device pci 0.7 on end # non-Sensor Fusion Hub device
309 end
Matt Papageorge48b2b2b2020-07-30 15:32:34 -0500310 device pci 8.2 off # Internal GPP Bridge 0 to Bus B
311 device pci 0.0 off end # AHCI
Raul E Rangelb3c41322020-05-20 14:07:41 -0600312 end
313 device pci 14.0 on end # SM
314 device pci 14.3 on # - D14F3 bridge
315 chip ec/google/chromeec
316 device pnp 0c09.0 on
317 chip ec/google/chromeec/i2c_tunnel
318 register "uid" = "1"
319 register "remote_bus" = "8"
320 device generic 0.0 on
321 chip drivers/i2c/generic
322 register "hid" = ""10EC5682""
323 register "name" = ""RT58""
324 register "uid" = "1"
325 register "desc" = ""Realtek RT5682""
Josie Nordrumcc72e152020-08-03 11:39:41 -0600326 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_BOTH(GPIO_84)"
Akshu Agrawalc7d6d7a2020-07-06 19:39:51 +0530327 register "property_count" = "2"
Raul E Rangelb3c41322020-05-20 14:07:41 -0600328 register "property_list[0].type" = "ACPI_DP_TYPE_INTEGER"
329 register "property_list[0].name" = ""realtek,jd-src""
330 register "property_list[0].integer" = "1"
Akshu Agrawalc7d6d7a2020-07-06 19:39:51 +0530331 register "property_list[1].type" = "ACPI_DP_TYPE_STRING"
332 register "property_list[1].name" = ""realtek,mclk-name""
333 register "property_list[1].string" = ""oscout1""
Raul E Rangelb3c41322020-05-20 14:07:41 -0600334 device i2c 1a on end
335 end
336 end
337 end
338 chip ec/google/chromeec/i2c_tunnel
339 register "name" = ""MSTH""
340 register "uid" = "1"
341 register "remote_bus" = "9"
342 device generic 1.0 on end
343 end
Furquan Shaikhe284bff2020-07-02 16:03:06 -0700344 chip ec/google/chromeec/audio_codec
345 register "uid" = "1"
346 device generic 0 on end
347 end
Raul E Rangelb3c41322020-05-20 14:07:41 -0600348 end
349 end
350 end
351 device pci 18.0 on end # Data fabric [0-7]
352 device pci 18.1 on end
353 device pci 18.2 on end
354 device pci 18.3 on end
355 device pci 18.4 on end
356 device pci 18.5 on end
357 device pci 18.6 on end
358 end # domain
359
360 chip drivers/generic/max98357a
Raul E Rangel19704cd2020-06-02 10:43:20 -0600361 register "hid" = ""MX98357A""
Raul E Rangelb3c41322020-05-20 14:07:41 -0600362 register "sdmode_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_91)"
363 register "sdmode_delay" = "5"
364 device generic 0.1 on end
365 end
366
367 device mmio 0xfedc5000 on
368 chip drivers/i2c/tpm
369 register "hid" = ""GOOG0005""
370 register "desc" = ""Cr50 TPM""
371 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_LOW(GPIO_3)"
372 device i2c 50 on end
373 end
374 end
375
Raul E Rangel5e29c0e2020-06-12 11:41:16 -0600376 device mmio 0xfedca000 off end # UART1
377 device mmio 0xfedce000 off end # UART2
378 device mmio 0xfedcf000 off end # UART3
379
Raul E Rangelb3c41322020-05-20 14:07:41 -0600380end # chip soc/amd/picasso