blob: 252540093c805a5def6e15af83bf4603d3a78c7c [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,
Raul E Rangel8317e722021-05-05 13:38:27 -0600233 .alert_pin = ESPI_ALERT_PIN_PUSH_PULL,
Raul E Rangelb3c41322020-05-20 14:07:41 -0600234 .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
Felix Held0fec8672021-05-25 21:07:23 +0200253 register "pspp_policy" = "DXIO_PSPP_POWERSAVE"
254
Raul E Rangelb3c41322020-05-20 14:07:41 -0600255 device cpu_cluster 0 on
256 device lapic 0 on end
257 end
258
259 # See AMD 55570-B1 Table 13: PCI Device ID Assignments.
260 device domain 0 on
261 subsystemid 0x1022 0x1510 inherit
262 device pci 0.0 on end # Root Complex
263 device pci 0.2 on end # IOMMU
264 device pci 1.0 on end # Dummy Host Bridge, must be enabled
265 device pci 1.1 off end # GPP Bridge 0
Rob Barnesd1095c72020-09-25 14:16:46 -0600266 device pci 1.2 on # GPP Bridge 1 - Wifi
267 chip drivers/wifi/generic
268 register "wake" = "GEVENT_8"
269 device pci 00.0 on end
270 end
271 end
Raul E Rangelb3c41322020-05-20 14:07:41 -0600272 device pci 1.3 on end # GPP Bridge 2 - SD
273 device pci 1.4 off end # GPP Bridge 3
274 device pci 1.5 off end # GPP Bridge 4
275 device pci 8.0 on end # Dummy Host Bridge, must be enabled
276 device pci 8.1 on # Internal GPP Bridge 0 to Bus A
277 device pci 0.0 on end # Internal GPU
278 device pci 0.1 on end # Display HDA
Paul Menzel79cc5e02020-10-19 18:01:35 +0200279 device pci 0.2 on end # Crypto Coprocessor
Rob Barnesf0d1c9a2020-06-24 09:42:02 -0600280 device pci 0.3 on # USB 3.1
281 chip drivers/usb/acpi
282 register "desc" = ""Root Hub""
283 register "type" = "UPC_TYPE_HUB"
284 device usb 0.0 on
285 chip drivers/usb/acpi
286 register "desc" = ""Left Type-C Port""
287 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
288 register "group" = "ACPI_PLD_GROUP(1, 1)"
289 device usb 2.0 on end
290 end
291 chip drivers/usb/acpi
292 register "desc" = ""Right Type-C Port""
293 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
294 register "group" = "ACPI_PLD_GROUP(2, 2)"
295 device usb 2.1 on end
296 end
297 chip drivers/usb/acpi
298 register "desc" = ""Left Type-A Port""
299 register "type" = "UPC_TYPE_USB3_A"
300 register "group" = "ACPI_PLD_GROUP(1, 2)"
301 device usb 2.2 on end
302 end
303 chip drivers/usb/acpi
304 register "desc" = ""Right Type-A Port""
305 register "type" = "UPC_TYPE_USB3_A"
306 register "group" = "ACPI_PLD_GROUP(2, 1)"
307 device usb 2.3 on end
308 end
309 chip drivers/usb/acpi
310 register "desc" = ""User-Facing Camera""
311 register "type" = "UPC_TYPE_INTERNAL"
312 device usb 2.4 on end
313 end
314 chip drivers/usb/acpi
315 register "desc" = ""Bluetooth""
316 register "type" = "UPC_TYPE_INTERNAL"
Rob Barnes56e889c2020-07-23 14:21:23 -0600317 register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_143)"
Rob Barnesf0d1c9a2020-06-24 09:42:02 -0600318 device usb 2.5 on end
319 end
320 chip drivers/usb/acpi
321 register "desc" = ""Left Type-C Port""
322 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
323 register "group" = "ACPI_PLD_GROUP(1, 1)"
324 device usb 3.0 on end
325 end
326 chip drivers/usb/acpi
327 register "desc" = ""Right Type-C Port""
328 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
329 register "group" = "ACPI_PLD_GROUP(2, 2)"
330 device usb 3.1 on end
331 end
332 chip drivers/usb/acpi
333 register "desc" = ""Left Type-A Port""
334 register "type" = "UPC_TYPE_USB3_A"
335 register "group" = "ACPI_PLD_GROUP(1, 2)"
336 device usb 3.2 on end
337 end
338 chip drivers/usb/acpi
339 register "desc" = ""Right Type-A Port""
340 register "type" = "UPC_TYPE_USB3_A"
341 register "group" = "ACPI_PLD_GROUP(2, 1)"
342 device usb 3.3 on end
343 end
344 end
345 end
346 end
Furquan Shaikh24ec79c2020-07-16 13:40:28 -0700347 device pci 0.5 on
348 chip drivers/amd/i2s_machine_dev
349 register "hid" = ""AMDI5682""
350 # DMIC select GPIO for ACP machine device
351 # This GPIO is used to select DMIC0 or DMIC1 by the
352 # kernel driver. It does not really have a polarity
353 # since low and high control the selection of DMIC and
354 # hence does not have an active polarity.
355 # Kernel driver does not use the polarity field and
356 # instead treats the GPIO selection as follows:
357 # Set low (0) = Select DMIC0
358 # Set high (1) = Select DMIC1
359 register "dmic_select_gpio" = "ACPI_GPIO_OUTPUT(GPIO_67)"
360 device generic 0.0 on end
361 end
362 end # Audio
Felix Held90ca7f42020-08-21 16:17:05 +0200363 device pci 0.6 off end # HDA
Raul E Rangelb3c41322020-05-20 14:07:41 -0600364 device pci 0.7 on end # non-Sensor Fusion Hub device
365 end
Matt Papageorge48b2b2b2020-07-30 15:32:34 -0500366 device pci 8.2 off # Internal GPP Bridge 0 to Bus B
367 device pci 0.0 off end # AHCI
Raul E Rangelb3c41322020-05-20 14:07:41 -0600368 end
369 device pci 14.0 on end # SM
370 device pci 14.3 on # - D14F3 bridge
371 chip ec/google/chromeec
372 device pnp 0c09.0 on
373 chip ec/google/chromeec/i2c_tunnel
374 register "uid" = "1"
375 register "remote_bus" = "8"
376 device generic 0.0 on
377 chip drivers/i2c/generic
378 register "hid" = ""10EC5682""
379 register "name" = ""RT58""
380 register "uid" = "1"
381 register "desc" = ""Realtek RT5682""
Josie Nordrumcc72e152020-08-03 11:39:41 -0600382 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_BOTH(GPIO_84)"
Akshu Agrawalc7d6d7a2020-07-06 19:39:51 +0530383 register "property_count" = "2"
Raul E Rangelb3c41322020-05-20 14:07:41 -0600384 register "property_list[0].type" = "ACPI_DP_TYPE_INTEGER"
385 register "property_list[0].name" = ""realtek,jd-src""
386 register "property_list[0].integer" = "1"
Akshu Agrawalc7d6d7a2020-07-06 19:39:51 +0530387 register "property_list[1].type" = "ACPI_DP_TYPE_STRING"
388 register "property_list[1].name" = ""realtek,mclk-name""
389 register "property_list[1].string" = ""oscout1""
Raul E Rangelb3c41322020-05-20 14:07:41 -0600390 device i2c 1a on end
391 end
392 end
393 end
Furquan Shaikhe284bff2020-07-02 16:03:06 -0700394 chip ec/google/chromeec/audio_codec
395 register "uid" = "1"
396 device generic 0 on end
397 end
Raul E Rangelb3c41322020-05-20 14:07:41 -0600398 end
399 end
400 end
401 device pci 18.0 on end # Data fabric [0-7]
402 device pci 18.1 on end
403 device pci 18.2 on end
404 device pci 18.3 on end
405 device pci 18.4 on end
406 device pci 18.5 on end
407 device pci 18.6 on end
408 end # domain
409
Raul E Rangelb3c41322020-05-20 14:07:41 -0600410 device mmio 0xfedc5000 on
411 chip drivers/i2c/tpm
412 register "hid" = ""GOOG0005""
413 register "desc" = ""Cr50 TPM""
414 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_LOW(GPIO_3)"
415 device i2c 50 on end
416 end
417 end
418
Raul E Rangel5e29c0e2020-06-12 11:41:16 -0600419 device mmio 0xfedca000 off end # UART1
420 device mmio 0xfedce000 off end # UART2
421 device mmio 0xfedcf000 off end # UART3
422
Raul E Rangelb3c41322020-05-20 14:07:41 -0600423end # chip soc/amd/picasso