blob: 824506437ea7558b8d378f998f433715b98ea0df [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
16 register "acp_pin_cfg" = "I2S_PINS_I2S_TDM"
Furquan Shaikhfd884082020-08-11 17:05:46 -070017 register "acp_i2s_wake_enable" = "0"
Felix Held828a36e2020-09-11 21:45:20 +020018 register "acp_pme_enable" = "0"
Raul E Rangelb3c41322020-05-20 14:07:41 -060019
20 # Start : OPN Performance Configuration
21 # (Configuratin that is common for all variants)
22 # For the below fields, 0 indicates use SOC default
23
24 # PROCHOT_L de-assertion Ramp Time
Zheng Bao795d73c2020-10-27 15:36:55 +080025 register "prochot_l_deassertion_ramp_time_ms" = "20"
Raul E Rangelb3c41322020-05-20 14:07:41 -060026
27 # Lower die temperature limit
Zheng Bao795d73c2020-10-27 15:36:55 +080028 register "thermctl_limit_degreeC" = "100"
Raul E Rangelb3c41322020-05-20 14:07:41 -060029
30 # FP5 Processor Voltage Supply PSI Currents
Zheng Bao795d73c2020-10-27 15:36:55 +080031 register "psi0_current_limit_mA" = "18000"
32 register "psi0_soc_current_limit_mA" = "12000"
33 register "vddcr_soc_voltage_margin_mV" = "0"
34 register "vddcr_vdd_voltage_margin_mV" = "0"
Raul E Rangelb3c41322020-05-20 14:07:41 -060035
36 # VRM Limits
Zheng Bao795d73c2020-10-27 15:36:55 +080037 register "vrm_maximum_current_limit_mA" = "0"
38 register "vrm_soc_maximum_current_limit_mA" = "0"
39 register "vrm_current_limit_mA" = "0"
40 register "vrm_soc_current_limit_mA" = "0"
Raul E Rangelb3c41322020-05-20 14:07:41 -060041
42 # Misc SMU settings
43 register "sb_tsi_alert_comparator_mode_en" = "0"
44 register "core_dldo_bypass" = "1"
45 register "min_soc_vid_offset" = "0"
46 register "aclk_dpm0_freq_400MHz" = "0"
47
48 # End : OPN Performance Configuration
49
Raul E Rangel7c79d832020-09-03 14:30:33 -060050 register "emmc_config" = "{
51 .timing = SD_EMMC_EMMC_HS400,
Raul E Rangel94be1f72020-09-03 15:46:56 -060052 .sdr104_hs400_driver_strength = SD_EMMC_DRIVE_STRENGTH_A,
53 /*
54 * The reference design was missing a pull-up on the CMD line.
55 * This means we can't run at the full 400 kHz. By setting this
56 * to 1 we run at the slowest frequency possible by the
57 * controller (~97 kHz).
58 *
59 * Boards that have the pull-up should correctly set this.
60 */
61 .init_khz_preset = 1,
Raul E Rangel7c79d832020-09-03 14:30:33 -060062 }"
Raul E Rangelb3c41322020-05-20 14:07:41 -060063
Felix Held1d0154c2020-07-23 19:37:42 +020064 register "has_usb2_phy_tune_params" = "1"
65
Chris Wang1e3e5282020-06-23 21:10:57 +080066 # Controller0 Port0 Default
Felix Held3a7389e2020-07-23 18:22:30 +020067 register "usb_2_port_tune_params[0]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +080068 .com_pds_tune = 0x03,
69 .sq_rx_tune = 0x3,
70 .tx_fsls_tune = 0x3,
71 .tx_pre_emp_amp_tune = 0x03,
72 .tx_pre_emp_pulse_tune = 0x0,
73 .tx_rise_tune = 0x1,
Kevin Chiude20b282020-11-19 14:09:47 +080074 .tx_vref_tune = 0x6,
Chris Wang1e3e5282020-06-23 21:10:57 +080075 .tx_hsxv_tune = 0x3,
76 .tx_res_tune = 0x01,
77 }"
78
79 # Controller0 Port1 Default
Felix Held3a7389e2020-07-23 18:22:30 +020080 register "usb_2_port_tune_params[1]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +080081 .com_pds_tune = 0x03,
82 .sq_rx_tune = 0x3,
83 .tx_fsls_tune = 0x3,
84 .tx_pre_emp_amp_tune = 0x03,
85 .tx_pre_emp_pulse_tune = 0x0,
86 .tx_rise_tune = 0x1,
Kevin Chiude20b282020-11-19 14:09:47 +080087 .tx_vref_tune = 0x6,
Chris Wang1e3e5282020-06-23 21:10:57 +080088 .tx_hsxv_tune = 0x3,
89 .tx_res_tune = 0x01,
90 }"
91
92 # Controller0 Port2 Default
Felix Held3a7389e2020-07-23 18:22:30 +020093 register "usb_2_port_tune_params[2]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +080094 .com_pds_tune = 0x03,
95 .sq_rx_tune = 0x3,
96 .tx_fsls_tune = 0x3,
97 .tx_pre_emp_amp_tune = 0x03,
98 .tx_pre_emp_pulse_tune = 0x0,
99 .tx_rise_tune = 0x1,
Kevin Chiude20b282020-11-19 14:09:47 +0800100 .tx_vref_tune = 0x6,
Chris Wang1e3e5282020-06-23 21:10:57 +0800101 .tx_hsxv_tune = 0x3,
102 .tx_res_tune = 0x01,
103 }"
104
105 # Controller0 Port3 Default
Felix Held3a7389e2020-07-23 18:22:30 +0200106 register "usb_2_port_tune_params[3]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +0800107 .com_pds_tune = 0x03,
108 .sq_rx_tune = 0x3,
109 .tx_fsls_tune = 0x3,
110 .tx_pre_emp_amp_tune = 0x03,
111 .tx_pre_emp_pulse_tune = 0x0,
112 .tx_rise_tune = 0x1,
Kevin Chiude20b282020-11-19 14:09:47 +0800113 .tx_vref_tune = 0x6,
Chris Wang1e3e5282020-06-23 21:10:57 +0800114 .tx_hsxv_tune = 0x3,
115 .tx_res_tune = 0x01,
116 }"
117
118 # Controller1 Port0 Default
Felix Held3a7389e2020-07-23 18:22:30 +0200119 register "usb_2_port_tune_params[4]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +0800120 .com_pds_tune = 0x03,
121 .sq_rx_tune = 0x3,
122 .tx_fsls_tune = 0x3,
123 .tx_pre_emp_amp_tune = 0x02,
124 .tx_pre_emp_pulse_tune = 0x0,
125 .tx_rise_tune = 0x1,
Kevin Chiude20b282020-11-19 14:09:47 +0800126 .tx_vref_tune = 0x5,
Chris Wang1e3e5282020-06-23 21:10:57 +0800127 .tx_hsxv_tune = 0x3,
128 .tx_res_tune = 0x01,
129 }"
130
131 # Controller1 Port1 Default
Felix Held3a7389e2020-07-23 18:22:30 +0200132 register "usb_2_port_tune_params[5]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +0800133 .com_pds_tune = 0x03,
134 .sq_rx_tune = 0x3,
135 .tx_fsls_tune = 0x3,
136 .tx_pre_emp_amp_tune = 0x02,
137 .tx_pre_emp_pulse_tune = 0x0,
138 .tx_rise_tune = 0x1,
Kevin Chiude20b282020-11-19 14:09:47 +0800139 .tx_vref_tune = 0x5,
Chris Wang1e3e5282020-06-23 21:10:57 +0800140 .tx_hsxv_tune = 0x3,
141 .tx_res_tune = 0x01,
142 }"
143
Chris Wang68d68f12021-02-03 04:32:06 +0800144 # Start RV2 USB3 PHY Parameters
145 register "usb3_phy_override" = "0"
146
147 # USB3 Port0 Default
148 register "usb3_phy_tune_params[0]" = "{
149 .rx_eq_delta_iq_ovrd_val = 0x0,
150 .rx_eq_delta_iq_ovrd_en = 0x0,
151 }"
152
153 # USB3 Port1 Default
154 register "usb3_phy_tune_params[1]" = "{
155 .rx_eq_delta_iq_ovrd_val = 0x0,
156 .rx_eq_delta_iq_ovrd_en = 0x0,
157 }"
158
159 # USB3 Port2 Default
160 register "usb3_phy_tune_params[2]" = "{
161 .rx_eq_delta_iq_ovrd_val = 0x0,
162 .rx_eq_delta_iq_ovrd_en = 0x0,
163 }"
164
165 # USB3 Port3 Default
166 register "usb3_phy_tune_params[3]" = "{
167 .rx_eq_delta_iq_ovrd_val = 0x0,
168 .rx_eq_delta_iq_ovrd_en = 0x0,
169 }"
170
171 # SUP_DIG_LVL_OVRD_IN Default
172 register "usb3_rx_vref_ctrl" = "0x10"
173 register "usb3_rx_vref_ctrl_en" = "0x00"
174 register "usb_3_tx_vboost_lvl" = "0x07"
175 register "usb_3_tx_vboost_lvl_en" = "0x00"
176
177 # SUPX_DIG_LVL_OVRD_IN Default
178 register "usb_3_rx_vref_ctrl_x" = "0x10"
179 register "usb_3_rx_vref_ctrl_en_x" = "0x00"
180 register "usb_3_tx_vboost_lvl_x" = "0x07"
181 register "usb_3_tx_vboost_lvl_en_x" = "0x00"
182
183 # End RV2 USB3 phy setting
184
Felix Helde2379962020-07-29 01:02:38 +0200185 # USB OC pin mapping
186 register "usb_port_overcurrent_pin[0]" = "USB_OC_PIN_0" # USB C0
187 register "usb_port_overcurrent_pin[1]" = "USB_OC_PIN_1" # USB C1
188 register "usb_port_overcurrent_pin[2]" = "USB_OC_PIN_0" # USB A0
189 register "usb_port_overcurrent_pin[3]" = "USB_OC_PIN_1" # USB A1
190 register "usb_port_overcurrent_pin[4]" = "USB_OC_NONE" # Camera
191 register "usb_port_overcurrent_pin[5]" = "USB_OC_NONE" # Bluetooth
192
Raul E Rangelb3c41322020-05-20 14:07:41 -0600193 # SPI Configuration
194 register "common_config.spi_config" = "{
Rob Barnes13ec6a02020-07-14 13:23:43 -0600195 .normal_speed = SPI_SPEED_33M, /* MHz */
196 .fast_speed = SPI_SPEED_66M, /* MHz */
Raul E Rangelb3c41322020-05-20 14:07:41 -0600197 .altio_speed = SPI_SPEED_66M, /* MHz */
198 .tpm_speed = SPI_SPEED_66M, /* MHz */
Martin Roth637f9412020-07-06 20:02:36 -0600199 .read_mode = SPI_READ_MODE_DUAL122,
Raul E Rangelb3c41322020-05-20 14:07:41 -0600200 }"
201
202 # eSPI Configuration
203 register "common_config.espi_config" = "{
204 .std_io_decode_bitmap = ESPI_DECODE_IO_0x80_EN | ESPI_DECODE_IO_0X60_0X64_EN,
205 .generic_io_range[0] = {
206 .base = 0x62,
207 /*
208 * Only 0x62 and 0x66 are required. But, this is not supported by
209 * standard IO decodes and there are only 4 generic I/O windows
210 * available. Hence, open a window from 0x62-0x67.
211 */
212 .size = 5,
213 },
214 .generic_io_range[1] = {
215 .base = 0x800, /* EC_HOST_CMD_REGION0 */
216 .size = 256, /* EC_HOST_CMD_REGION_SIZE * 2 */
217 },
218 .generic_io_range[2] = {
219 .base = 0x900, /* EC_LPC_ADDR_MEMMAP */
220 .size = 255, /* EC_MEMMAP_SIZE */
221 },
222 .generic_io_range[3] = {
223 .base = 0x200, /* EC_LPC_ADDR_HOST_DATA */
224 .size = 8, /* 0x200 - 0x207 */
225 },
226
227 .io_mode = ESPI_IO_MODE_QUAD,
228 .op_freq_mhz = ESPI_OP_FREQ_33_MHZ,
229 .crc_check_enable = 1,
230 .dedicated_alert_pin = 1,
231 .periph_ch_en = 1,
232 .vw_ch_en = 1,
233 .oob_ch_en = 0,
234 .flash_ch_en = 0,
235
Aaron Durbin76fcf8292020-07-02 11:08:21 -0600236 .vw_irq_polarity = ESPI_VW_IRQ_LEVEL_HIGH(1) | ESPI_VW_IRQ_LEVEL_HIGH(12),
Raul E Rangelb3c41322020-05-20 14:07:41 -0600237 }"
238
239 register "i2c_scl_reset" = "GPIO_I2C2_SCL | GPIO_I2C3_SCL"
240
Felix Heldd555d6a2020-08-28 02:12:52 +0200241 # genral purpose PCIe clock output configuration
242 register "gpp_clk_config[0]" = "GPP_CLK_REQ" # WLAN
243 register "gpp_clk_config[1]" = "GPP_CLK_REQ" # SD Reader
244 register "gpp_clk_config[2]" = "GPP_CLK_REQ" # NVME SSD
245 register "gpp_clk_config[3]" = "GPP_CLK_OFF"
246 register "gpp_clk_config[4]" = "GPP_CLK_OFF"
247 register "gpp_clk_config[5]" = "GPP_CLK_OFF"
248 register "gpp_clk_config[6]" = "GPP_CLK_OFF"
249
Raul E Rangelb3c41322020-05-20 14:07:41 -0600250 device cpu_cluster 0 on
251 device lapic 0 on end
252 end
253
254 # See AMD 55570-B1 Table 13: PCI Device ID Assignments.
255 device domain 0 on
256 subsystemid 0x1022 0x1510 inherit
257 device pci 0.0 on end # Root Complex
258 device pci 0.2 on end # IOMMU
259 device pci 1.0 on end # Dummy Host Bridge, must be enabled
260 device pci 1.1 off end # GPP Bridge 0
Rob Barnesd1095c72020-09-25 14:16:46 -0600261 device pci 1.2 on # GPP Bridge 1 - Wifi
262 chip drivers/wifi/generic
263 register "wake" = "GEVENT_8"
264 device pci 00.0 on end
265 end
266 end
Raul E Rangelb3c41322020-05-20 14:07:41 -0600267 device pci 1.3 on end # GPP Bridge 2 - SD
268 device pci 1.4 off end # GPP Bridge 3
269 device pci 1.5 off end # GPP Bridge 4
270 device pci 8.0 on end # Dummy Host Bridge, must be enabled
271 device pci 8.1 on # Internal GPP Bridge 0 to Bus A
272 device pci 0.0 on end # Internal GPU
273 device pci 0.1 on end # Display HDA
Paul Menzel79cc5e02020-10-19 18:01:35 +0200274 device pci 0.2 on end # Crypto Coprocessor
Rob Barnesf0d1c9a2020-06-24 09:42:02 -0600275 device pci 0.3 on # USB 3.1
276 chip drivers/usb/acpi
277 register "desc" = ""Root Hub""
278 register "type" = "UPC_TYPE_HUB"
279 device usb 0.0 on
280 chip drivers/usb/acpi
281 register "desc" = ""Left Type-C Port""
282 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
283 register "group" = "ACPI_PLD_GROUP(1, 1)"
284 device usb 2.0 on end
285 end
286 chip drivers/usb/acpi
287 register "desc" = ""Right Type-C Port""
288 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
289 register "group" = "ACPI_PLD_GROUP(2, 2)"
290 device usb 2.1 on end
291 end
292 chip drivers/usb/acpi
293 register "desc" = ""Left Type-A Port""
294 register "type" = "UPC_TYPE_USB3_A"
295 register "group" = "ACPI_PLD_GROUP(1, 2)"
296 device usb 2.2 on end
297 end
298 chip drivers/usb/acpi
299 register "desc" = ""Right Type-A Port""
300 register "type" = "UPC_TYPE_USB3_A"
301 register "group" = "ACPI_PLD_GROUP(2, 1)"
302 device usb 2.3 on end
303 end
304 chip drivers/usb/acpi
305 register "desc" = ""User-Facing Camera""
306 register "type" = "UPC_TYPE_INTERNAL"
307 device usb 2.4 on end
308 end
309 chip drivers/usb/acpi
310 register "desc" = ""Bluetooth""
311 register "type" = "UPC_TYPE_INTERNAL"
Rob Barnes56e889c2020-07-23 14:21:23 -0600312 register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_143)"
Rob Barnesf0d1c9a2020-06-24 09:42:02 -0600313 device usb 2.5 on end
314 end
315 chip drivers/usb/acpi
316 register "desc" = ""Left Type-C Port""
317 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
318 register "group" = "ACPI_PLD_GROUP(1, 1)"
319 device usb 3.0 on end
320 end
321 chip drivers/usb/acpi
322 register "desc" = ""Right Type-C Port""
323 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
324 register "group" = "ACPI_PLD_GROUP(2, 2)"
325 device usb 3.1 on end
326 end
327 chip drivers/usb/acpi
328 register "desc" = ""Left Type-A Port""
329 register "type" = "UPC_TYPE_USB3_A"
330 register "group" = "ACPI_PLD_GROUP(1, 2)"
331 device usb 3.2 on end
332 end
333 chip drivers/usb/acpi
334 register "desc" = ""Right Type-A Port""
335 register "type" = "UPC_TYPE_USB3_A"
336 register "group" = "ACPI_PLD_GROUP(2, 1)"
337 device usb 3.3 on end
338 end
339 end
340 end
341 end
Furquan Shaikh24ec79c2020-07-16 13:40:28 -0700342 device pci 0.5 on
343 chip drivers/amd/i2s_machine_dev
344 register "hid" = ""AMDI5682""
345 # DMIC select GPIO for ACP machine device
346 # This GPIO is used to select DMIC0 or DMIC1 by the
347 # kernel driver. It does not really have a polarity
348 # since low and high control the selection of DMIC and
349 # hence does not have an active polarity.
350 # Kernel driver does not use the polarity field and
351 # instead treats the GPIO selection as follows:
352 # Set low (0) = Select DMIC0
353 # Set high (1) = Select DMIC1
354 register "dmic_select_gpio" = "ACPI_GPIO_OUTPUT(GPIO_67)"
355 device generic 0.0 on end
356 end
357 end # Audio
Felix Held90ca7f42020-08-21 16:17:05 +0200358 device pci 0.6 off end # HDA
Raul E Rangelb3c41322020-05-20 14:07:41 -0600359 device pci 0.7 on end # non-Sensor Fusion Hub device
360 end
Matt Papageorge48b2b2b2020-07-30 15:32:34 -0500361 device pci 8.2 off # Internal GPP Bridge 0 to Bus B
362 device pci 0.0 off end # AHCI
Raul E Rangelb3c41322020-05-20 14:07:41 -0600363 end
364 device pci 14.0 on end # SM
365 device pci 14.3 on # - D14F3 bridge
366 chip ec/google/chromeec
367 device pnp 0c09.0 on
368 chip ec/google/chromeec/i2c_tunnel
369 register "uid" = "1"
370 register "remote_bus" = "8"
371 device generic 0.0 on
372 chip drivers/i2c/generic
373 register "hid" = ""10EC5682""
374 register "name" = ""RT58""
375 register "uid" = "1"
376 register "desc" = ""Realtek RT5682""
Josie Nordrumcc72e152020-08-03 11:39:41 -0600377 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_BOTH(GPIO_84)"
Akshu Agrawalc7d6d7a2020-07-06 19:39:51 +0530378 register "property_count" = "2"
Raul E Rangelb3c41322020-05-20 14:07:41 -0600379 register "property_list[0].type" = "ACPI_DP_TYPE_INTEGER"
380 register "property_list[0].name" = ""realtek,jd-src""
381 register "property_list[0].integer" = "1"
Akshu Agrawalc7d6d7a2020-07-06 19:39:51 +0530382 register "property_list[1].type" = "ACPI_DP_TYPE_STRING"
383 register "property_list[1].name" = ""realtek,mclk-name""
384 register "property_list[1].string" = ""oscout1""
Raul E Rangelb3c41322020-05-20 14:07:41 -0600385 device i2c 1a on end
386 end
387 end
388 end
Furquan Shaikhe284bff2020-07-02 16:03:06 -0700389 chip ec/google/chromeec/audio_codec
390 register "uid" = "1"
391 device generic 0 on end
392 end
Raul E Rangelb3c41322020-05-20 14:07:41 -0600393 end
394 end
395 end
396 device pci 18.0 on end # Data fabric [0-7]
397 device pci 18.1 on end
398 device pci 18.2 on end
399 device pci 18.3 on end
400 device pci 18.4 on end
401 device pci 18.5 on end
402 device pci 18.6 on end
403 end # domain
404
405 chip drivers/generic/max98357a
Raul E Rangel19704cd2020-06-02 10:43:20 -0600406 register "hid" = ""MX98357A""
Raul E Rangelb3c41322020-05-20 14:07:41 -0600407 register "sdmode_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_91)"
408 register "sdmode_delay" = "5"
409 device generic 0.1 on end
410 end
411
412 device mmio 0xfedc5000 on
413 chip drivers/i2c/tpm
414 register "hid" = ""GOOG0005""
415 register "desc" = ""Cr50 TPM""
416 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_LOW(GPIO_3)"
417 device i2c 50 on end
418 end
419 end
420
Raul E Rangel5e29c0e2020-06-12 11:41:16 -0600421 device mmio 0xfedca000 off end # UART1
422 device mmio 0xfedce000 off end # UART2
423 device mmio 0xfedcf000 off end # UART3
424
Raul E Rangelb3c41322020-05-20 14:07:41 -0600425end # chip soc/amd/picasso