blob: f0fcf37c26cefdb8f49746581ec8c42eaab4fe4c [file] [log] [blame]
Raul E Rangelb3c41322020-05-20 14:07:41 -06001# SPDX-License-Identifier: GPL-2.0-or-later
Kane Chen807ce622021-03-05 17:57:21 +08002fw_config
3 field TOUCHPAD 26
4 option REGULAR_TOUCHPAD 1
5 option NUMPAD_TOUCHPAD 0
6 end
7end
8
Raul E Rangelb3c41322020-05-20 14:07:41 -06009chip soc/amd/picasso
10
11 # Set FADT Configuration
Raul E Rangel1c88b102021-02-11 10:35:32 -070012 register "common_config.fadt_boot_arch" = "ACPI_FADT_LEGACY_DEVICES | ACPI_FADT_8042"
Felix Held5ad4dcb2020-08-13 01:27:39 +020013 # See table 5-34 ACPI 6.3 spec
Raul E Rangel1c88b102021-02-11 10:35:32 -070014 register "common_config.fadt_flags" = "ACPI_FADT_SLEEP_BUTTON | ACPI_FADT_SEALED_CASE"
Raul E Rangelb3c41322020-05-20 14:07:41 -060015
Karthikeyan Ramasubramanian4520aa22021-04-23 11:42:19 -060016 # ACP Configuration
17 register "common_config.acp_config" = "{
18 .acp_pin_cfg = I2S_PINS_I2S_TDM,
19 .acp_i2s_wake_enable = 0,
20 .acp_pme_enable = 0,
21 }"
Raul E Rangelb3c41322020-05-20 14:07:41 -060022
23 # Start : OPN Performance Configuration
24 # (Configuratin that is common for all variants)
25 # For the below fields, 0 indicates use SOC default
26
27 # PROCHOT_L de-assertion Ramp Time
Zheng Bao795d73c2020-10-27 15:36:55 +080028 register "prochot_l_deassertion_ramp_time_ms" = "20"
Raul E Rangelb3c41322020-05-20 14:07:41 -060029
30 # Lower die temperature limit
Zheng Bao795d73c2020-10-27 15:36:55 +080031 register "thermctl_limit_degreeC" = "100"
Raul E Rangelb3c41322020-05-20 14:07:41 -060032
33 # FP5 Processor Voltage Supply PSI Currents
Zheng Bao795d73c2020-10-27 15:36:55 +080034 register "psi0_current_limit_mA" = "18000"
35 register "psi0_soc_current_limit_mA" = "12000"
36 register "vddcr_soc_voltage_margin_mV" = "0"
37 register "vddcr_vdd_voltage_margin_mV" = "0"
Raul E Rangelb3c41322020-05-20 14:07:41 -060038
39 # VRM Limits
Zheng Bao795d73c2020-10-27 15:36:55 +080040 register "vrm_maximum_current_limit_mA" = "0"
41 register "vrm_soc_maximum_current_limit_mA" = "0"
42 register "vrm_current_limit_mA" = "0"
43 register "vrm_soc_current_limit_mA" = "0"
Raul E Rangelb3c41322020-05-20 14:07:41 -060044
45 # Misc SMU settings
46 register "sb_tsi_alert_comparator_mode_en" = "0"
47 register "core_dldo_bypass" = "1"
48 register "min_soc_vid_offset" = "0"
49 register "aclk_dpm0_freq_400MHz" = "0"
50
51 # End : OPN Performance Configuration
52
Raul E Rangel7c79d832020-09-03 14:30:33 -060053 register "emmc_config" = "{
54 .timing = SD_EMMC_EMMC_HS400,
Raul E Rangel94be1f72020-09-03 15:46:56 -060055 .sdr104_hs400_driver_strength = SD_EMMC_DRIVE_STRENGTH_A,
56 /*
57 * The reference design was missing a pull-up on the CMD line.
58 * This means we can't run at the full 400 kHz. By setting this
59 * to 1 we run at the slowest frequency possible by the
60 * controller (~97 kHz).
61 *
62 * Boards that have the pull-up should correctly set this.
63 */
64 .init_khz_preset = 1,
Raul E Rangel7c79d832020-09-03 14:30:33 -060065 }"
Raul E Rangelb3c41322020-05-20 14:07:41 -060066
Felix Held1d0154c2020-07-23 19:37:42 +020067 register "has_usb2_phy_tune_params" = "1"
68
Chris Wang1e3e5282020-06-23 21:10:57 +080069 # Controller0 Port0 Default
Felix Held3a7389e2020-07-23 18:22:30 +020070 register "usb_2_port_tune_params[0]" = "{
Julian Schroedere286ef92021-03-04 15:50:41 -060071 .com_pds_tune = 0x07,
Chris Wang1e3e5282020-06-23 21:10:57 +080072 .sq_rx_tune = 0x3,
73 .tx_fsls_tune = 0x3,
74 .tx_pre_emp_amp_tune = 0x03,
75 .tx_pre_emp_pulse_tune = 0x0,
76 .tx_rise_tune = 0x1,
Kevin Chiude20b282020-11-19 14:09:47 +080077 .tx_vref_tune = 0x6,
Chris Wang1e3e5282020-06-23 21:10:57 +080078 .tx_hsxv_tune = 0x3,
79 .tx_res_tune = 0x01,
80 }"
81
82 # Controller0 Port1 Default
Felix Held3a7389e2020-07-23 18:22:30 +020083 register "usb_2_port_tune_params[1]" = "{
Julian Schroedere286ef92021-03-04 15:50:41 -060084 .com_pds_tune = 0x07,
Chris Wang1e3e5282020-06-23 21:10:57 +080085 .sq_rx_tune = 0x3,
86 .tx_fsls_tune = 0x3,
87 .tx_pre_emp_amp_tune = 0x03,
88 .tx_pre_emp_pulse_tune = 0x0,
89 .tx_rise_tune = 0x1,
Kevin Chiude20b282020-11-19 14:09:47 +080090 .tx_vref_tune = 0x6,
Chris Wang1e3e5282020-06-23 21:10:57 +080091 .tx_hsxv_tune = 0x3,
92 .tx_res_tune = 0x01,
93 }"
94
95 # Controller0 Port2 Default
Felix Held3a7389e2020-07-23 18:22:30 +020096 register "usb_2_port_tune_params[2]" = "{
Julian Schroedere286ef92021-03-04 15:50:41 -060097 .com_pds_tune = 0x07,
Chris Wang1e3e5282020-06-23 21:10:57 +080098 .sq_rx_tune = 0x3,
99 .tx_fsls_tune = 0x3,
100 .tx_pre_emp_amp_tune = 0x03,
101 .tx_pre_emp_pulse_tune = 0x0,
102 .tx_rise_tune = 0x1,
Kevin Chiude20b282020-11-19 14:09:47 +0800103 .tx_vref_tune = 0x6,
Chris Wang1e3e5282020-06-23 21:10:57 +0800104 .tx_hsxv_tune = 0x3,
105 .tx_res_tune = 0x01,
106 }"
107
108 # Controller0 Port3 Default
Felix Held3a7389e2020-07-23 18:22:30 +0200109 register "usb_2_port_tune_params[3]" = "{
Julian Schroedere286ef92021-03-04 15:50:41 -0600110 .com_pds_tune = 0x07,
Chris Wang1e3e5282020-06-23 21:10:57 +0800111 .sq_rx_tune = 0x3,
112 .tx_fsls_tune = 0x3,
113 .tx_pre_emp_amp_tune = 0x03,
114 .tx_pre_emp_pulse_tune = 0x0,
115 .tx_rise_tune = 0x1,
Kevin Chiude20b282020-11-19 14:09:47 +0800116 .tx_vref_tune = 0x6,
Chris Wang1e3e5282020-06-23 21:10:57 +0800117 .tx_hsxv_tune = 0x3,
118 .tx_res_tune = 0x01,
119 }"
120
121 # Controller1 Port0 Default
Felix Held3a7389e2020-07-23 18:22:30 +0200122 register "usb_2_port_tune_params[4]" = "{
Julian Schroedere286ef92021-03-04 15:50:41 -0600123 .com_pds_tune = 0x07,
Chris Wang1e3e5282020-06-23 21:10:57 +0800124 .sq_rx_tune = 0x3,
125 .tx_fsls_tune = 0x3,
126 .tx_pre_emp_amp_tune = 0x02,
127 .tx_pre_emp_pulse_tune = 0x0,
128 .tx_rise_tune = 0x1,
Kevin Chiude20b282020-11-19 14:09:47 +0800129 .tx_vref_tune = 0x5,
Chris Wang1e3e5282020-06-23 21:10:57 +0800130 .tx_hsxv_tune = 0x3,
131 .tx_res_tune = 0x01,
132 }"
133
134 # Controller1 Port1 Default
Felix Held3a7389e2020-07-23 18:22:30 +0200135 register "usb_2_port_tune_params[5]" = "{
Julian Schroedere286ef92021-03-04 15:50:41 -0600136 .com_pds_tune = 0x07,
Chris Wang1e3e5282020-06-23 21:10:57 +0800137 .sq_rx_tune = 0x3,
138 .tx_fsls_tune = 0x3,
139 .tx_pre_emp_amp_tune = 0x02,
140 .tx_pre_emp_pulse_tune = 0x0,
141 .tx_rise_tune = 0x1,
Kevin Chiude20b282020-11-19 14:09:47 +0800142 .tx_vref_tune = 0x5,
Chris Wang1e3e5282020-06-23 21:10:57 +0800143 .tx_hsxv_tune = 0x3,
144 .tx_res_tune = 0x01,
145 }"
146
Chris Wang68d68f12021-02-03 04:32:06 +0800147 # Start RV2 USB3 PHY Parameters
148 register "usb3_phy_override" = "0"
149
150 # USB3 Port0 Default
151 register "usb3_phy_tune_params[0]" = "{
152 .rx_eq_delta_iq_ovrd_val = 0x0,
153 .rx_eq_delta_iq_ovrd_en = 0x0,
154 }"
155
156 # USB3 Port1 Default
157 register "usb3_phy_tune_params[1]" = "{
158 .rx_eq_delta_iq_ovrd_val = 0x0,
159 .rx_eq_delta_iq_ovrd_en = 0x0,
160 }"
161
162 # USB3 Port2 Default
163 register "usb3_phy_tune_params[2]" = "{
164 .rx_eq_delta_iq_ovrd_val = 0x0,
165 .rx_eq_delta_iq_ovrd_en = 0x0,
166 }"
167
168 # USB3 Port3 Default
169 register "usb3_phy_tune_params[3]" = "{
170 .rx_eq_delta_iq_ovrd_val = 0x0,
171 .rx_eq_delta_iq_ovrd_en = 0x0,
172 }"
173
174 # SUP_DIG_LVL_OVRD_IN Default
175 register "usb3_rx_vref_ctrl" = "0x10"
176 register "usb3_rx_vref_ctrl_en" = "0x00"
177 register "usb_3_tx_vboost_lvl" = "0x07"
178 register "usb_3_tx_vboost_lvl_en" = "0x00"
179
180 # SUPX_DIG_LVL_OVRD_IN Default
181 register "usb_3_rx_vref_ctrl_x" = "0x10"
182 register "usb_3_rx_vref_ctrl_en_x" = "0x00"
183 register "usb_3_tx_vboost_lvl_x" = "0x07"
184 register "usb_3_tx_vboost_lvl_en_x" = "0x00"
185
186 # End RV2 USB3 phy setting
187
Felix Helde2379962020-07-29 01:02:38 +0200188 # USB OC pin mapping
189 register "usb_port_overcurrent_pin[0]" = "USB_OC_PIN_0" # USB C0
190 register "usb_port_overcurrent_pin[1]" = "USB_OC_PIN_1" # USB C1
191 register "usb_port_overcurrent_pin[2]" = "USB_OC_PIN_0" # USB A0
192 register "usb_port_overcurrent_pin[3]" = "USB_OC_PIN_1" # USB A1
193 register "usb_port_overcurrent_pin[4]" = "USB_OC_NONE" # Camera
194 register "usb_port_overcurrent_pin[5]" = "USB_OC_NONE" # Bluetooth
195
Raul E Rangelb3c41322020-05-20 14:07:41 -0600196 # SPI Configuration
197 register "common_config.spi_config" = "{
Rob Barnes13ec6a02020-07-14 13:23:43 -0600198 .normal_speed = SPI_SPEED_33M, /* MHz */
199 .fast_speed = SPI_SPEED_66M, /* MHz */
Raul E Rangelb3c41322020-05-20 14:07:41 -0600200 .altio_speed = SPI_SPEED_66M, /* MHz */
201 .tpm_speed = SPI_SPEED_66M, /* MHz */
Martin Roth637f9412020-07-06 20:02:36 -0600202 .read_mode = SPI_READ_MODE_DUAL122,
Raul E Rangelb3c41322020-05-20 14:07:41 -0600203 }"
204
205 # eSPI Configuration
206 register "common_config.espi_config" = "{
207 .std_io_decode_bitmap = ESPI_DECODE_IO_0x80_EN | ESPI_DECODE_IO_0X60_0X64_EN,
208 .generic_io_range[0] = {
209 .base = 0x62,
210 /*
211 * Only 0x62 and 0x66 are required. But, this is not supported by
212 * standard IO decodes and there are only 4 generic I/O windows
213 * available. Hence, open a window from 0x62-0x67.
214 */
215 .size = 5,
216 },
217 .generic_io_range[1] = {
218 .base = 0x800, /* EC_HOST_CMD_REGION0 */
219 .size = 256, /* EC_HOST_CMD_REGION_SIZE * 2 */
220 },
221 .generic_io_range[2] = {
222 .base = 0x900, /* EC_LPC_ADDR_MEMMAP */
223 .size = 255, /* EC_MEMMAP_SIZE */
224 },
225 .generic_io_range[3] = {
226 .base = 0x200, /* EC_LPC_ADDR_HOST_DATA */
227 .size = 8, /* 0x200 - 0x207 */
228 },
229
230 .io_mode = ESPI_IO_MODE_QUAD,
231 .op_freq_mhz = ESPI_OP_FREQ_33_MHZ,
232 .crc_check_enable = 1,
233 .dedicated_alert_pin = 1,
234 .periph_ch_en = 1,
235 .vw_ch_en = 1,
236 .oob_ch_en = 0,
237 .flash_ch_en = 0,
238
Aaron Durbin76fcf8292020-07-02 11:08:21 -0600239 .vw_irq_polarity = ESPI_VW_IRQ_LEVEL_HIGH(1) | ESPI_VW_IRQ_LEVEL_HIGH(12),
Raul E Rangelb3c41322020-05-20 14:07:41 -0600240 }"
241
242 register "i2c_scl_reset" = "GPIO_I2C2_SCL | GPIO_I2C3_SCL"
243
Felix Heldd555d6a2020-08-28 02:12:52 +0200244 # genral purpose PCIe clock output configuration
245 register "gpp_clk_config[0]" = "GPP_CLK_REQ" # WLAN
246 register "gpp_clk_config[1]" = "GPP_CLK_REQ" # SD Reader
247 register "gpp_clk_config[2]" = "GPP_CLK_REQ" # NVME SSD
248 register "gpp_clk_config[3]" = "GPP_CLK_OFF"
249 register "gpp_clk_config[4]" = "GPP_CLK_OFF"
250 register "gpp_clk_config[5]" = "GPP_CLK_OFF"
251 register "gpp_clk_config[6]" = "GPP_CLK_OFF"
252
Raul E Rangelb3c41322020-05-20 14:07:41 -0600253 device cpu_cluster 0 on
254 device lapic 0 on end
255 end
256
257 # See AMD 55570-B1 Table 13: PCI Device ID Assignments.
258 device domain 0 on
259 subsystemid 0x1022 0x1510 inherit
260 device pci 0.0 on end # Root Complex
261 device pci 0.2 on end # IOMMU
262 device pci 1.0 on end # Dummy Host Bridge, must be enabled
263 device pci 1.1 off end # GPP Bridge 0
Rob Barnesd1095c72020-09-25 14:16:46 -0600264 device pci 1.2 on # GPP Bridge 1 - Wifi
265 chip drivers/wifi/generic
266 register "wake" = "GEVENT_8"
267 device pci 00.0 on end
268 end
269 end
Raul E Rangelb3c41322020-05-20 14:07:41 -0600270 device pci 1.3 on end # GPP Bridge 2 - SD
271 device pci 1.4 off end # GPP Bridge 3
272 device pci 1.5 off end # GPP Bridge 4
273 device pci 8.0 on end # Dummy Host Bridge, must be enabled
274 device pci 8.1 on # Internal GPP Bridge 0 to Bus A
275 device pci 0.0 on end # Internal GPU
276 device pci 0.1 on end # Display HDA
Paul Menzel79cc5e02020-10-19 18:01:35 +0200277 device pci 0.2 on end # Crypto Coprocessor
Rob Barnesf0d1c9a2020-06-24 09:42:02 -0600278 device pci 0.3 on # USB 3.1
279 chip drivers/usb/acpi
280 register "desc" = ""Root Hub""
281 register "type" = "UPC_TYPE_HUB"
282 device usb 0.0 on
283 chip drivers/usb/acpi
284 register "desc" = ""Left Type-C Port""
285 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
286 register "group" = "ACPI_PLD_GROUP(1, 1)"
287 device usb 2.0 on end
288 end
289 chip drivers/usb/acpi
290 register "desc" = ""Right Type-C Port""
291 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
292 register "group" = "ACPI_PLD_GROUP(2, 2)"
293 device usb 2.1 on end
294 end
295 chip drivers/usb/acpi
296 register "desc" = ""Left Type-A Port""
297 register "type" = "UPC_TYPE_USB3_A"
298 register "group" = "ACPI_PLD_GROUP(1, 2)"
299 device usb 2.2 on end
300 end
301 chip drivers/usb/acpi
302 register "desc" = ""Right Type-A Port""
303 register "type" = "UPC_TYPE_USB3_A"
304 register "group" = "ACPI_PLD_GROUP(2, 1)"
305 device usb 2.3 on end
306 end
307 chip drivers/usb/acpi
308 register "desc" = ""User-Facing Camera""
309 register "type" = "UPC_TYPE_INTERNAL"
310 device usb 2.4 on end
311 end
312 chip drivers/usb/acpi
313 register "desc" = ""Bluetooth""
314 register "type" = "UPC_TYPE_INTERNAL"
Rob Barnes56e889c2020-07-23 14:21:23 -0600315 register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_143)"
Rob Barnesf0d1c9a2020-06-24 09:42:02 -0600316 device usb 2.5 on end
317 end
318 chip drivers/usb/acpi
319 register "desc" = ""Left Type-C Port""
320 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
321 register "group" = "ACPI_PLD_GROUP(1, 1)"
322 device usb 3.0 on end
323 end
324 chip drivers/usb/acpi
325 register "desc" = ""Right Type-C Port""
326 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
327 register "group" = "ACPI_PLD_GROUP(2, 2)"
328 device usb 3.1 on end
329 end
330 chip drivers/usb/acpi
331 register "desc" = ""Left Type-A Port""
332 register "type" = "UPC_TYPE_USB3_A"
333 register "group" = "ACPI_PLD_GROUP(1, 2)"
334 device usb 3.2 on end
335 end
336 chip drivers/usb/acpi
337 register "desc" = ""Right Type-A Port""
338 register "type" = "UPC_TYPE_USB3_A"
339 register "group" = "ACPI_PLD_GROUP(2, 1)"
340 device usb 3.3 on end
341 end
342 end
343 end
344 end
Furquan Shaikh24ec79c2020-07-16 13:40:28 -0700345 device pci 0.5 on
346 chip drivers/amd/i2s_machine_dev
347 register "hid" = ""AMDI5682""
348 # DMIC select GPIO for ACP machine device
349 # This GPIO is used to select DMIC0 or DMIC1 by the
350 # kernel driver. It does not really have a polarity
351 # since low and high control the selection of DMIC and
352 # hence does not have an active polarity.
353 # Kernel driver does not use the polarity field and
354 # instead treats the GPIO selection as follows:
355 # Set low (0) = Select DMIC0
356 # Set high (1) = Select DMIC1
357 register "dmic_select_gpio" = "ACPI_GPIO_OUTPUT(GPIO_67)"
358 device generic 0.0 on end
359 end
360 end # Audio
Felix Held90ca7f42020-08-21 16:17:05 +0200361 device pci 0.6 off end # HDA
Raul E Rangelb3c41322020-05-20 14:07:41 -0600362 device pci 0.7 on end # non-Sensor Fusion Hub device
363 end
Matt Papageorge48b2b2b2020-07-30 15:32:34 -0500364 device pci 8.2 off # Internal GPP Bridge 0 to Bus B
365 device pci 0.0 off end # AHCI
Raul E Rangelb3c41322020-05-20 14:07:41 -0600366 end
367 device pci 14.0 on end # SM
368 device pci 14.3 on # - D14F3 bridge
369 chip ec/google/chromeec
370 device pnp 0c09.0 on
371 chip ec/google/chromeec/i2c_tunnel
372 register "uid" = "1"
373 register "remote_bus" = "8"
374 device generic 0.0 on
375 chip drivers/i2c/generic
376 register "hid" = ""10EC5682""
377 register "name" = ""RT58""
378 register "uid" = "1"
379 register "desc" = ""Realtek RT5682""
Josie Nordrumcc72e152020-08-03 11:39:41 -0600380 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_BOTH(GPIO_84)"
Akshu Agrawalc7d6d7a2020-07-06 19:39:51 +0530381 register "property_count" = "2"
Raul E Rangelb3c41322020-05-20 14:07:41 -0600382 register "property_list[0].type" = "ACPI_DP_TYPE_INTEGER"
383 register "property_list[0].name" = ""realtek,jd-src""
384 register "property_list[0].integer" = "1"
Akshu Agrawalc7d6d7a2020-07-06 19:39:51 +0530385 register "property_list[1].type" = "ACPI_DP_TYPE_STRING"
386 register "property_list[1].name" = ""realtek,mclk-name""
387 register "property_list[1].string" = ""oscout1""
Raul E Rangelb3c41322020-05-20 14:07:41 -0600388 device i2c 1a on end
389 end
390 end
391 end
Furquan Shaikhe284bff2020-07-02 16:03:06 -0700392 chip ec/google/chromeec/audio_codec
393 register "uid" = "1"
394 device generic 0 on end
395 end
Raul E Rangelb3c41322020-05-20 14:07:41 -0600396 end
397 end
398 end
399 device pci 18.0 on end # Data fabric [0-7]
400 device pci 18.1 on end
401 device pci 18.2 on end
402 device pci 18.3 on end
403 device pci 18.4 on end
404 device pci 18.5 on end
405 device pci 18.6 on end
406 end # domain
407
Raul E Rangelb3c41322020-05-20 14:07:41 -0600408 device mmio 0xfedc5000 on
409 chip drivers/i2c/tpm
410 register "hid" = ""GOOG0005""
411 register "desc" = ""Cr50 TPM""
412 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_LOW(GPIO_3)"
413 device i2c 50 on end
414 end
415 end
416
Raul E Rangel5e29c0e2020-06-12 11:41:16 -0600417 device mmio 0xfedca000 off end # UART1
418 device mmio 0xfedce000 off end # UART2
419 device mmio 0xfedcf000 off end # UART3
420
Raul E Rangelb3c41322020-05-20 14:07:41 -0600421end # chip soc/amd/picasso