blob: 40e2ed5223cd8c7220440a54949e134fe80061ec [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
Zheng Bao795d73c2020-10-27 15:36:55 +080018 register "prochot_l_deassertion_ramp_time_ms" = "20"
Raul E Rangelb3c41322020-05-20 14:07:41 -060019
20 # Lower die temperature limit
Zheng Bao795d73c2020-10-27 15:36:55 +080021 register "thermctl_limit_degreeC" = "100"
Raul E Rangelb3c41322020-05-20 14:07:41 -060022
23 # FP5 Processor Voltage Supply PSI Currents
Zheng Bao795d73c2020-10-27 15:36:55 +080024 register "psi0_current_limit_mA" = "18000"
25 register "psi0_soc_current_limit_mA" = "12000"
26 register "vddcr_soc_voltage_margin_mV" = "0"
27 register "vddcr_vdd_voltage_margin_mV" = "0"
Raul E Rangelb3c41322020-05-20 14:07:41 -060028
29 # VRM Limits
Zheng Bao795d73c2020-10-27 15:36:55 +080030 register "vrm_maximum_current_limit_mA" = "0"
31 register "vrm_soc_maximum_current_limit_mA" = "0"
32 register "vrm_current_limit_mA" = "0"
33 register "vrm_soc_current_limit_mA" = "0"
Raul E Rangelb3c41322020-05-20 14:07:41 -060034
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
Felix Held1d0154c2020-07-23 19:37:42 +020057 register "has_usb2_phy_tune_params" = "1"
58
Chris Wang1e3e5282020-06-23 21:10:57 +080059 # Controller0 Port0 Default
Felix Held3a7389e2020-07-23 18:22:30 +020060 register "usb_2_port_tune_params[0]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +080061 .com_pds_tune = 0x03,
62 .sq_rx_tune = 0x3,
63 .tx_fsls_tune = 0x3,
64 .tx_pre_emp_amp_tune = 0x03,
65 .tx_pre_emp_pulse_tune = 0x0,
66 .tx_rise_tune = 0x1,
Kevin Chiude20b282020-11-19 14:09:47 +080067 .tx_vref_tune = 0x6,
Chris Wang1e3e5282020-06-23 21:10:57 +080068 .tx_hsxv_tune = 0x3,
69 .tx_res_tune = 0x01,
70 }"
71
72 # Controller0 Port1 Default
Felix Held3a7389e2020-07-23 18:22:30 +020073 register "usb_2_port_tune_params[1]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +080074 .com_pds_tune = 0x03,
75 .sq_rx_tune = 0x3,
76 .tx_fsls_tune = 0x3,
77 .tx_pre_emp_amp_tune = 0x03,
78 .tx_pre_emp_pulse_tune = 0x0,
79 .tx_rise_tune = 0x1,
Kevin Chiude20b282020-11-19 14:09:47 +080080 .tx_vref_tune = 0x6,
Chris Wang1e3e5282020-06-23 21:10:57 +080081 .tx_hsxv_tune = 0x3,
82 .tx_res_tune = 0x01,
83 }"
84
85 # Controller0 Port2 Default
Felix Held3a7389e2020-07-23 18:22:30 +020086 register "usb_2_port_tune_params[2]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +080087 .com_pds_tune = 0x03,
88 .sq_rx_tune = 0x3,
89 .tx_fsls_tune = 0x3,
90 .tx_pre_emp_amp_tune = 0x03,
91 .tx_pre_emp_pulse_tune = 0x0,
92 .tx_rise_tune = 0x1,
Kevin Chiude20b282020-11-19 14:09:47 +080093 .tx_vref_tune = 0x6,
Chris Wang1e3e5282020-06-23 21:10:57 +080094 .tx_hsxv_tune = 0x3,
95 .tx_res_tune = 0x01,
96 }"
97
98 # Controller0 Port3 Default
Felix Held3a7389e2020-07-23 18:22:30 +020099 register "usb_2_port_tune_params[3]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +0800100 .com_pds_tune = 0x03,
101 .sq_rx_tune = 0x3,
102 .tx_fsls_tune = 0x3,
103 .tx_pre_emp_amp_tune = 0x03,
104 .tx_pre_emp_pulse_tune = 0x0,
105 .tx_rise_tune = 0x1,
Kevin Chiude20b282020-11-19 14:09:47 +0800106 .tx_vref_tune = 0x6,
Chris Wang1e3e5282020-06-23 21:10:57 +0800107 .tx_hsxv_tune = 0x3,
108 .tx_res_tune = 0x01,
109 }"
110
111 # Controller1 Port0 Default
Felix Held3a7389e2020-07-23 18:22:30 +0200112 register "usb_2_port_tune_params[4]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +0800113 .com_pds_tune = 0x03,
114 .sq_rx_tune = 0x3,
115 .tx_fsls_tune = 0x3,
116 .tx_pre_emp_amp_tune = 0x02,
117 .tx_pre_emp_pulse_tune = 0x0,
118 .tx_rise_tune = 0x1,
Kevin Chiude20b282020-11-19 14:09:47 +0800119 .tx_vref_tune = 0x5,
Chris Wang1e3e5282020-06-23 21:10:57 +0800120 .tx_hsxv_tune = 0x3,
121 .tx_res_tune = 0x01,
122 }"
123
124 # Controller1 Port1 Default
Felix Held3a7389e2020-07-23 18:22:30 +0200125 register "usb_2_port_tune_params[5]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +0800126 .com_pds_tune = 0x03,
127 .sq_rx_tune = 0x3,
128 .tx_fsls_tune = 0x3,
129 .tx_pre_emp_amp_tune = 0x02,
130 .tx_pre_emp_pulse_tune = 0x0,
131 .tx_rise_tune = 0x1,
Kevin Chiude20b282020-11-19 14:09:47 +0800132 .tx_vref_tune = 0x5,
Chris Wang1e3e5282020-06-23 21:10:57 +0800133 .tx_hsxv_tune = 0x3,
134 .tx_res_tune = 0x01,
135 }"
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
Felix Held04394d62020-08-06 15:04:15 +0200146 # USB OC pin mapping
147 register "usb_port_overcurrent_pin[0]" = "USB_OC_PIN_0" # USB C0
148 register "usb_port_overcurrent_pin[1]" = "USB_OC_PIN_0" # USB A0
149 register "usb_port_overcurrent_pin[2]" = "USB_OC_PIN_1" # USB A1
150 register "usb_port_overcurrent_pin[3]" = "USB_OC_PIN_1" # USB C1
Felix Helde2379962020-07-29 01:02:38 +0200151 register "usb_port_overcurrent_pin[4]" = "USB_OC_NONE" # Camera or internal hub
152 register "usb_port_overcurrent_pin[5]" = "USB_OC_NONE" # Bluetooth
153
Raul E Rangelb3c41322020-05-20 14:07:41 -0600154 # eSPI Configuration
155 register "common_config.espi_config" = "{
156 .std_io_decode_bitmap = ESPI_DECODE_IO_0x80_EN | ESPI_DECODE_IO_0X60_0X64_EN,
157 .generic_io_range[0] = {
158 .base = 0x62,
159 /*
160 * Only 0x62 and 0x66 are required. But, this is not supported by
161 * standard IO decodes and there are only 4 generic I/O windows
162 * available. Hence, open a window from 0x62-0x67.
163 */
164 .size = 5,
165 },
166 .generic_io_range[1] = {
167 .base = 0x800, /* EC_HOST_CMD_REGION0 */
168 .size = 256, /* EC_HOST_CMD_REGION_SIZE * 2 */
169 },
170 .generic_io_range[2] = {
171 .base = 0x900, /* EC_LPC_ADDR_MEMMAP */
172 .size = 255, /* EC_MEMMAP_SIZE */
173 },
174 .generic_io_range[3] = {
175 .base = 0x200, /* EC_LPC_ADDR_HOST_DATA */
176 .size = 8, /* 0x200 - 0x207 */
177 },
178
179 .io_mode = ESPI_IO_MODE_QUAD,
180 .op_freq_mhz = ESPI_OP_FREQ_33_MHZ,
181 .crc_check_enable = 1,
182 .dedicated_alert_pin = 1,
183 .periph_ch_en = 1,
184 .vw_ch_en = 1,
185 .oob_ch_en = 0,
186 .flash_ch_en = 0,
187
Aaron Durbin76fcf8292020-07-02 11:08:21 -0600188 .vw_irq_polarity = ESPI_VW_IRQ_LEVEL_HIGH(1) | ESPI_VW_IRQ_LEVEL_HIGH(12),
Raul E Rangelb3c41322020-05-20 14:07:41 -0600189 }"
190
191 register "i2c_scl_reset" = "GPIO_I2C2_SCL | GPIO_I2C3_SCL"
192
Felix Held764b9872020-08-28 02:12:06 +0200193 # genral purpose PCIe clock output configuration
194 register "gpp_clk_config[0]" = "GPP_CLK_REQ" # WLAN
195 register "gpp_clk_config[1]" = "GPP_CLK_REQ" # SD Reader
196 register "gpp_clk_config[2]" = "GPP_CLK_OFF"
197 register "gpp_clk_config[3]" = "GPP_CLK_OFF"
198 register "gpp_clk_config[4]" = "GPP_CLK_REQ" # NVME SSD
199 register "gpp_clk_config[5]" = "GPP_CLK_OFF"
200 register "gpp_clk_config[6]" = "GPP_CLK_OFF"
201
Raul E Rangelb3c41322020-05-20 14:07:41 -0600202 device cpu_cluster 0 on
203 device lapic 0 on end
204 end
205
206 # See AMD 55570-B1 Table 13: PCI Device ID Assignments.
207 device domain 0 on
208 subsystemid 0x1022 0x1510 inherit
209 device pci 0.0 on end # Root Complex
210 device pci 0.2 on end # IOMMU
211 device pci 1.0 on end # Dummy Host Bridge, must be enabled
212 device pci 1.1 off end # GPP Bridge 0
Rob Barnesd1095c72020-09-25 14:16:46 -0600213 device pci 1.2 on # GPP Bridge 1 - Wifi
214 chip drivers/wifi/generic
215 register "wake" = "GEVENT_8"
216 device pci 00.0 on end
217 end
218 end
Raul E Rangelb3c41322020-05-20 14:07:41 -0600219 device pci 1.3 on end # GPP Bridge 2 - SD
220 device pci 1.4 off end # GPP Bridge 3
221 device pci 1.5 off end # GPP Bridge 4
Rob Barnes9754f382020-07-13 20:15:39 -0600222 device pci 1.6 off end # GPP Bridge 5
223 device pci 1.7 on end # GPP Bridge 6 - NVME
Raul E Rangelb3c41322020-05-20 14:07:41 -0600224 device pci 8.0 on end # Dummy Host Bridge, must be enabled
225 device pci 8.1 on # Internal GPP Bridge 0 to Bus A
226 device pci 0.0 on end # Internal GPU
227 device pci 0.1 on end # Display HDA
228 device pci 0.2 on end # Crypto Coprocesor
Rob Barnesf0d1c9a2020-06-24 09:42:02 -0600229 device pci 0.3 on # USB 3.1
230 chip drivers/usb/acpi
231 register "desc" = ""Root Hub""
232 register "type" = "UPC_TYPE_HUB"
233 device usb 0.0 on
234 chip drivers/usb/acpi
235 register "desc" = ""Left Type-C Port""
236 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
237 register "group" = "ACPI_PLD_GROUP(1, 1)"
238 device usb 2.0 on end
239 end
240 chip drivers/usb/acpi
241 register "desc" = ""Left Type-A Port""
242 register "type" = "UPC_TYPE_USB3_A"
243 register "group" = "ACPI_PLD_GROUP(1, 2)"
244 device usb 2.1 on end
245 end
246 chip drivers/usb/acpi
247 register "desc" = ""Right Type-A Port""
248 register "type" = "UPC_TYPE_USB3_A"
249 register "group" = "ACPI_PLD_GROUP(2, 1)"
250 device usb 2.2 on end
251 end
252 chip drivers/usb/acpi
253 register "desc" = ""Right Type-C Port""
254 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
255 register "group" = "ACPI_PLD_GROUP(2, 2)"
256 device usb 2.3 on end
257 end
258 chip drivers/usb/acpi
259 register "desc" = ""Left Type-C Port""
260 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
261 register "group" = "ACPI_PLD_GROUP(1, 1)"
262 device usb 3.0 on end
263 end
264 chip drivers/usb/acpi
265 register "desc" = ""Left Type-A Port""
266 register "type" = "UPC_TYPE_USB3_A"
267 register "group" = "ACPI_PLD_GROUP(1, 2)"
268 device usb 3.1 on end
269 end
270 chip drivers/usb/acpi
271 register "desc" = ""Right Type-A Port""
272 register "type" = "UPC_TYPE_USB3_A"
273 register "group" = "ACPI_PLD_GROUP(2, 1)"
274 device usb 3.2 on end
275 end
276 chip drivers/usb/acpi
277 register "desc" = ""Right Type-C Port""
278 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
279 register "group" = "ACPI_PLD_GROUP(2, 2)"
280 device usb 3.3 on end
281 end
282
283 # The following devices are only enabled on Dali SKUs
284 chip drivers/usb/acpi
285 register "desc" = ""User-Facing Camera""
286 register "type" = "UPC_TYPE_INTERNAL"
287 device usb 2.4 on end
288 end
289 chip drivers/usb/acpi
290 register "desc" = ""Bluetooth""
291 register "type" = "UPC_TYPE_INTERNAL"
Rob Barnes56e889c2020-07-23 14:21:23 -0600292 register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_14)"
Rob Barnesf0d1c9a2020-06-24 09:42:02 -0600293 device usb 2.5 on end
294 end
295 end
296 end
297 end
298 device pci 0.4 on # USB 3.1
299 chip drivers/usb/acpi
300 # The following devices are only enabled on Picasso SKUs
301 register "desc" = ""Root Hub""
302 register "type" = "UPC_TYPE_HUB"
303 device usb 0.0 on
304 chip drivers/usb/acpi
305 register "desc" = ""User-Facing Camera""
306 register "type" = "UPC_TYPE_INTERNAL"
307 device usb 2.0 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_14)"
Rob Barnesf0d1c9a2020-06-24 09:42:02 -0600313 device usb 2.1 on end
314 end
315 chip drivers/usb/acpi
316 register "desc" = ""World-Facing Camera""
317 register "type" = "UPC_TYPE_INTERNAL"
318 device usb 3.0 on end
319 end
320 end
321 end
322 end
Furquan Shaikh24ec79c2020-07-16 13:40:28 -0700323 device pci 0.5 on
324 chip drivers/amd/i2s_machine_dev
325 register "hid" = ""AMDI5682""
326 # DMIC select GPIO for ACP machine device
327 # This GPIO is used to select DMIC0 or DMIC1 by the
328 # kernel driver. It does not really have a polarity
329 # since low and high control the selection of DMIC and
330 # hence does not have an active polarity.
331 # Kernel driver does not use the polarity field and
332 # instead treats the GPIO selection as follows:
333 # Set low (0) = Select DMIC0
334 # Set high (1) = Select DMIC1
335 register "dmic_select_gpio" = "ACPI_GPIO_OUTPUT(GPIO_67)"
336 device generic 0.0 on end
337 end
338 end # Audio
Felix Held90ca7f42020-08-21 16:17:05 +0200339 device pci 0.6 off end # HDA
Raul E Rangelb3c41322020-05-20 14:07:41 -0600340 device pci 0.7 on end # non-Sensor Fusion Hub device
341 end
Matt Papageorge48b2b2b2020-07-30 15:32:34 -0500342 device pci 8.2 off # Internal GPP Bridge 0 to Bus B
343 device pci 0.0 off end # AHCI
Raul E Rangelb3c41322020-05-20 14:07:41 -0600344 end
345 device pci 14.0 on end # SM
346 device pci 14.3 on # - D14F3 bridge
347 chip ec/google/chromeec
348 device pnp 0c09.0 on
349 chip ec/google/chromeec/i2c_tunnel
Raul E Rangelf38dc8b2021-01-21 13:52:01 -0700350 register "uid" = "0"
Raul E Rangelb3c41322020-05-20 14:07:41 -0600351 register "remote_bus" = "8"
352 device generic 0.0 on
353 chip drivers/i2c/generic
354 register "hid" = ""10EC5682""
355 register "name" = ""RT58""
356 register "uid" = "1"
357 register "desc" = ""Realtek RT5682""
Josie Nordrumcc72e152020-08-03 11:39:41 -0600358 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_BOTH(GPIO_29)"
Akshu Agrawalc7d6d7a2020-07-06 19:39:51 +0530359 register "property_count" = "2"
Raul E Rangelb3c41322020-05-20 14:07:41 -0600360 register "property_list[0].type" = "ACPI_DP_TYPE_INTEGER"
361 register "property_list[0].name" = ""realtek,jd-src""
362 register "property_list[0].integer" = "1"
Akshu Agrawalc7d6d7a2020-07-06 19:39:51 +0530363 register "property_list[1].type" = "ACPI_DP_TYPE_STRING"
364 register "property_list[1].name" = ""realtek,mclk-name""
365 register "property_list[1].string" = ""oscout1""
Raul E Rangelb3c41322020-05-20 14:07:41 -0600366 device i2c 1a on end
367 end
368 end
369 end
370 chip ec/google/chromeec/i2c_tunnel
371 register "name" = ""MSTH""
372 register "uid" = "1"
373 register "remote_bus" = "9"
374 device generic 1.0 on end
375 end
Furquan Shaikhe284bff2020-07-02 16:03:06 -0700376 chip ec/google/chromeec/audio_codec
377 register "uid" = "1"
378 device generic 0 on end
379 end
Raul E Rangelb3c41322020-05-20 14:07:41 -0600380 end
381 end
382 end
Rob Barnes9754f382020-07-13 20:15:39 -0600383 device pci 14.6 off end # Non-Functional SDHCI
Raul E Rangelb3c41322020-05-20 14:07:41 -0600384 device pci 18.0 on end # Data fabric [0-7]
385 device pci 18.1 on end
386 device pci 18.2 on end
387 device pci 18.3 on end
388 device pci 18.4 on end
389 device pci 18.5 on end
390 device pci 18.6 on end
391 end # domain
392
393 chip drivers/generic/max98357a
Raul E Rangel19704cd2020-06-02 10:43:20 -0600394 register "hid" = ""MX98357A""
Raul E Rangelb3c41322020-05-20 14:07:41 -0600395 register "sdmode_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_91)"
396 register "sdmode_delay" = "5"
397 device generic 0.1 on end
398 end
399
400 device mmio 0xfedc5000 on
401 chip drivers/i2c/tpm
402 register "hid" = ""GOOG0005""
403 register "desc" = ""Cr50 TPM""
404 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_LOW(GPIO_3)"
405 device i2c 50 on end
406 end
407 end
408
Raul E Rangel5e29c0e2020-06-12 11:41:16 -0600409 device mmio 0xfedca000 off end # UART1
410 device mmio 0xfedce000 off end # UART2
411 device mmio 0xfedcf000 off end # UART3
412
Raul E Rangelb3c41322020-05-20 14:07:41 -0600413end # chip soc/amd/picasso