blob: a7abea792d52b67d4d9d3f92193bb351cc7d7bc0 [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
5 register "fadt_pm_profile" = "PM_MOBILE"
6 register "fadt_boot_arch" = "ACPI_FADT_LEGACY_DEVICES | ACPI_FADT_8042"
7 register "fadt_flags" = "ACPI_FADT_WBINVD | /* See table 5-34 ACPI 6.3 spec */
8 ACPI_FADT_C1_SUPPORTED |
9 ACPI_FADT_SLEEP_BUTTON |
10 ACPI_FADT_S4_RTC_WAKE |
11 ACPI_FADT_32BIT_TIMER |
12 ACPI_FADT_RESET_REGISTER |
13 ACPI_FADT_SEALED_CASE |
14 ACPI_FADT_PCI_EXPRESS_WAKE |
15 ACPI_FADT_REMOTE_POWER_ON"
16
17 register "acp_pin_cfg" = "I2S_PINS_I2S_TDM"
18
Furquan Shaikhaee3b148b2020-06-18 22:25:12 -070019 # DMIC select GPIO for ACP machine device
20 # This GPIO is used to select DMIC0 or DMIC1 by the kernel driver. It does not
21 # really have a polarity since low and high control the selection of DMIC and
22 # hence does not have an active polarity.
23 # Kernel driver does not use the polarity field and instead treats the GPIO
24 # selection as follows:
25 # Set low (0) = Select DMIC0
26 # Set high (1) = Select DMIC1
27 register "dmic_select_gpio" = "ACPI_GPIO_OUTPUT(GPIO_67)"
28
Raul E Rangelb3c41322020-05-20 14:07:41 -060029 # Start : OPN Performance Configuration
30 # (Configuratin that is common for all variants)
31 # For the below fields, 0 indicates use SOC default
32
33 # PROCHOT_L de-assertion Ramp Time
34 register "prochot_l_deassertion_ramp_time" = "20" #mS
35
36 # Lower die temperature limit
37 register "thermctl_limit" = "100" #degrees C
38
39 # FP5 Processor Voltage Supply PSI Currents
40 register "psi0_current_limit" = "18000" #mA
41 register "psi0_soc_current_limit" = "12000" #mA
42 register "vddcr_soc_voltage_margin" = "0" #mV
43 register "vddcr_vdd_voltage_margin" = "0" #mV
44
45 # VRM Limits
46 register "vrm_maximum_current_limit" = "0" #mA
47 register "vrm_soc_maximum_current_limit" = "0" #mA
48 register "vrm_current_limit" = "0" #mA
49 register "vrm_soc_current_limit" = "0" #mA
50
51 # Misc SMU settings
52 register "sb_tsi_alert_comparator_mode_en" = "0"
53 register "core_dldo_bypass" = "1"
54 register "min_soc_vid_offset" = "0"
55 register "aclk_dpm0_freq_400MHz" = "0"
56
57 # End : OPN Performance Configuration
58
59 register "sd_emmc_config" = "SD_EMMC_EMMC_HS400"
60
Lucas Chenc1bb32f2020-05-26 19:31:48 +080061 register "xhci0_force_gen1" = "0"
62
Chris Wang1e3e5282020-06-23 21:10:57 +080063 # Controller0 Port0 Default
64 register "usb_2_port_0_tune_params" = "{
65 .com_pds_tune = 0x03,
66 .sq_rx_tune = 0x3,
67 .tx_fsls_tune = 0x3,
68 .tx_pre_emp_amp_tune = 0x03,
69 .tx_pre_emp_pulse_tune = 0x0,
70 .tx_rise_tune = 0x1,
71 .rx_vref_tune = 0x6,
72 .tx_hsxv_tune = 0x3,
73 .tx_res_tune = 0x01,
74 }"
75
76 # Controller0 Port1 Default
77 register "usb_2_port_1_tune_params" = "{
78 .com_pds_tune = 0x03,
79 .sq_rx_tune = 0x3,
80 .tx_fsls_tune = 0x3,
81 .tx_pre_emp_amp_tune = 0x03,
82 .tx_pre_emp_pulse_tune = 0x0,
83 .tx_rise_tune = 0x1,
84 .rx_vref_tune = 0x6,
85 .tx_hsxv_tune = 0x3,
86 .tx_res_tune = 0x01,
87 }"
88
89 # Controller0 Port2 Default
90 register "usb_2_port_2_tune_params" = "{
91 .com_pds_tune = 0x03,
92 .sq_rx_tune = 0x3,
93 .tx_fsls_tune = 0x3,
94 .tx_pre_emp_amp_tune = 0x03,
95 .tx_pre_emp_pulse_tune = 0x0,
96 .tx_rise_tune = 0x1,
97 .rx_vref_tune = 0x6,
98 .tx_hsxv_tune = 0x3,
99 .tx_res_tune = 0x01,
100 }"
101
102 # Controller0 Port3 Default
103 register "usb_2_port_3_tune_params" = "{
104 .com_pds_tune = 0x03,
105 .sq_rx_tune = 0x3,
106 .tx_fsls_tune = 0x3,
107 .tx_pre_emp_amp_tune = 0x03,
108 .tx_pre_emp_pulse_tune = 0x0,
109 .tx_rise_tune = 0x1,
110 .rx_vref_tune = 0x6,
111 .tx_hsxv_tune = 0x3,
112 .tx_res_tune = 0x01,
113 }"
114
115 # Controller1 Port0 Default
116 register "usb_2_port_4_tune_params" = "{
117 .com_pds_tune = 0x03,
118 .sq_rx_tune = 0x3,
119 .tx_fsls_tune = 0x3,
120 .tx_pre_emp_amp_tune = 0x02,
121 .tx_pre_emp_pulse_tune = 0x0,
122 .tx_rise_tune = 0x1,
123 .rx_vref_tune = 0x5,
124 .tx_hsxv_tune = 0x3,
125 .tx_res_tune = 0x01,
126 }"
127
128 # Controller1 Port1 Default
129 register "usb_2_port_5_tune_params" = "{
130 .com_pds_tune = 0x03,
131 .sq_rx_tune = 0x3,
132 .tx_fsls_tune = 0x3,
133 .tx_pre_emp_amp_tune = 0x02,
134 .tx_pre_emp_pulse_tune = 0x0,
135 .tx_rise_tune = 0x1,
136 .rx_vref_tune = 0x5,
137 .tx_hsxv_tune = 0x3,
138 .tx_res_tune = 0x01,
139 }"
140
Raul E Rangelb3c41322020-05-20 14:07:41 -0600141 # SPI Configuration
142 register "common_config.spi_config" = "{
Martin Roth637f9412020-07-06 20:02:36 -0600143 .normal_speed = SPI_SPEED_100M, /* MHz */
144 .fast_speed = SPI_SPEED_100M, /* MHz */
Raul E Rangelb3c41322020-05-20 14:07:41 -0600145 .altio_speed = SPI_SPEED_66M, /* MHz */
146 .tpm_speed = SPI_SPEED_66M, /* MHz */
Martin Roth637f9412020-07-06 20:02:36 -0600147 .read_mode = SPI_READ_MODE_DUAL122,
Raul E Rangelb3c41322020-05-20 14:07:41 -0600148 }"
149
150 # eSPI Configuration
151 register "common_config.espi_config" = "{
152 .std_io_decode_bitmap = ESPI_DECODE_IO_0x80_EN | ESPI_DECODE_IO_0X60_0X64_EN,
153 .generic_io_range[0] = {
154 .base = 0x62,
155 /*
156 * Only 0x62 and 0x66 are required. But, this is not supported by
157 * standard IO decodes and there are only 4 generic I/O windows
158 * available. Hence, open a window from 0x62-0x67.
159 */
160 .size = 5,
161 },
162 .generic_io_range[1] = {
163 .base = 0x800, /* EC_HOST_CMD_REGION0 */
164 .size = 256, /* EC_HOST_CMD_REGION_SIZE * 2 */
165 },
166 .generic_io_range[2] = {
167 .base = 0x900, /* EC_LPC_ADDR_MEMMAP */
168 .size = 255, /* EC_MEMMAP_SIZE */
169 },
170 .generic_io_range[3] = {
171 .base = 0x200, /* EC_LPC_ADDR_HOST_DATA */
172 .size = 8, /* 0x200 - 0x207 */
173 },
174
175 .io_mode = ESPI_IO_MODE_QUAD,
176 .op_freq_mhz = ESPI_OP_FREQ_33_MHZ,
177 .crc_check_enable = 1,
178 .dedicated_alert_pin = 1,
179 .periph_ch_en = 1,
180 .vw_ch_en = 1,
181 .oob_ch_en = 0,
182 .flash_ch_en = 0,
183
Aaron Durbin76fcf8292020-07-02 11:08:21 -0600184 .vw_irq_polarity = ESPI_VW_IRQ_LEVEL_HIGH(1) | ESPI_VW_IRQ_LEVEL_HIGH(12),
Raul E Rangelb3c41322020-05-20 14:07:41 -0600185 }"
186
187 register "i2c_scl_reset" = "GPIO_I2C2_SCL | GPIO_I2C3_SCL"
188
Raul E Rangelb3c41322020-05-20 14:07:41 -0600189 device cpu_cluster 0 on
190 device lapic 0 on end
191 end
192
193 # See AMD 55570-B1 Table 13: PCI Device ID Assignments.
194 device domain 0 on
195 subsystemid 0x1022 0x1510 inherit
196 device pci 0.0 on end # Root Complex
197 device pci 0.2 on end # IOMMU
198 device pci 1.0 on end # Dummy Host Bridge, must be enabled
199 device pci 1.1 off end # GPP Bridge 0
200 device pci 1.2 on end # GPP Bridge 1 - Wifi
201 device pci 1.3 on end # GPP Bridge 2 - SD
202 device pci 1.4 off end # GPP Bridge 3
203 device pci 1.5 off end # GPP Bridge 4
204 device pci 8.0 on end # Dummy Host Bridge, must be enabled
205 device pci 8.1 on # Internal GPP Bridge 0 to Bus A
206 device pci 0.0 on end # Internal GPU
207 device pci 0.1 on end # Display HDA
208 device pci 0.2 on end # Crypto Coprocesor
Rob Barnesf0d1c9a2020-06-24 09:42:02 -0600209 device pci 0.3 on # USB 3.1
210 chip drivers/usb/acpi
211 register "desc" = ""Root Hub""
212 register "type" = "UPC_TYPE_HUB"
213 device usb 0.0 on
214 chip drivers/usb/acpi
215 register "desc" = ""Left Type-C Port""
216 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
217 register "group" = "ACPI_PLD_GROUP(1, 1)"
218 device usb 2.0 on end
219 end
220 chip drivers/usb/acpi
221 register "desc" = ""Left Type-A Port""
222 register "type" = "UPC_TYPE_USB3_A"
223 register "group" = "ACPI_PLD_GROUP(1, 2)"
224 device usb 2.1 on end
225 end
226 chip drivers/usb/acpi
227 register "desc" = ""Right Type-A Port""
228 register "type" = "UPC_TYPE_USB3_A"
229 register "group" = "ACPI_PLD_GROUP(2, 1)"
230 device usb 2.2 on end
231 end
232 chip drivers/usb/acpi
233 register "desc" = ""Right Type-C Port""
234 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
235 register "group" = "ACPI_PLD_GROUP(2, 2)"
236 device usb 2.3 on end
237 end
238 chip drivers/usb/acpi
239 register "desc" = ""Left Type-C Port""
240 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
241 register "group" = "ACPI_PLD_GROUP(1, 1)"
242 device usb 3.0 on end
243 end
244 chip drivers/usb/acpi
245 register "desc" = ""Left Type-A Port""
246 register "type" = "UPC_TYPE_USB3_A"
247 register "group" = "ACPI_PLD_GROUP(1, 2)"
248 device usb 3.1 on end
249 end
250 chip drivers/usb/acpi
251 register "desc" = ""Right Type-A Port""
252 register "type" = "UPC_TYPE_USB3_A"
253 register "group" = "ACPI_PLD_GROUP(2, 1)"
254 device usb 3.2 on end
255 end
256 chip drivers/usb/acpi
257 register "desc" = ""Right Type-C Port""
258 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
259 register "group" = "ACPI_PLD_GROUP(2, 2)"
260 device usb 3.3 on end
261 end
262
263 # The following devices are only enabled on Dali SKUs
264 chip drivers/usb/acpi
265 register "desc" = ""User-Facing Camera""
266 register "type" = "UPC_TYPE_INTERNAL"
267 device usb 2.4 on end
268 end
269 chip drivers/usb/acpi
270 register "desc" = ""Bluetooth""
271 register "type" = "UPC_TYPE_INTERNAL"
272 device usb 2.5 on end
273 end
274 end
275 end
276 end
277 device pci 0.4 on # USB 3.1
278 chip drivers/usb/acpi
279 # The following devices are only enabled on Picasso SKUs
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" = ""User-Facing Camera""
285 register "type" = "UPC_TYPE_INTERNAL"
286 device usb 2.0 on end
287 end
288 chip drivers/usb/acpi
289 register "desc" = ""Bluetooth""
290 register "type" = "UPC_TYPE_INTERNAL"
291 device usb 2.1 on end
292 end
293 chip drivers/usb/acpi
294 register "desc" = ""World-Facing Camera""
295 register "type" = "UPC_TYPE_INTERNAL"
296 device usb 3.0 on end
297 end
298 end
299 end
300 end
Raul E Rangelb3c41322020-05-20 14:07:41 -0600301 device pci 0.5 on end # Audio
302 device pci 0.6 on end # HDA
303 device pci 0.7 on end # non-Sensor Fusion Hub device
304 end
305 device pci 8.2 on # Internal GPP Bridge 0 to Bus B
306 device pci 0.0 on end # AHCI
307 end
308 device pci 14.0 on end # SM
309 device pci 14.3 on # - D14F3 bridge
310 chip ec/google/chromeec
311 device pnp 0c09.0 on
312 chip ec/google/chromeec/i2c_tunnel
313 register "uid" = "1"
314 register "remote_bus" = "8"
315 device generic 0.0 on
316 chip drivers/i2c/generic
317 register "hid" = ""10EC5682""
318 register "name" = ""RT58""
319 register "uid" = "1"
320 register "desc" = ""Realtek RT5682""
321 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_BOTH(62)"
322 register "property_count" = "1"
323 register "property_list[0].type" = "ACPI_DP_TYPE_INTEGER"
324 register "property_list[0].name" = ""realtek,jd-src""
325 register "property_list[0].integer" = "1"
326 device i2c 1a on end
327 end
328 end
329 end
330 chip ec/google/chromeec/i2c_tunnel
331 register "name" = ""MSTH""
332 register "uid" = "1"
333 register "remote_bus" = "9"
334 device generic 1.0 on end
335 end
Furquan Shaikhe284bff2020-07-02 16:03:06 -0700336 chip ec/google/chromeec/audio_codec
337 register "uid" = "1"
338 device generic 0 on end
339 end
Raul E Rangelb3c41322020-05-20 14:07:41 -0600340 end
341 end
342 end
343 device pci 18.0 on end # Data fabric [0-7]
344 device pci 18.1 on end
345 device pci 18.2 on end
346 device pci 18.3 on end
347 device pci 18.4 on end
348 device pci 18.5 on end
349 device pci 18.6 on end
350 end # domain
351
352 chip drivers/generic/max98357a
Raul E Rangel19704cd2020-06-02 10:43:20 -0600353 register "hid" = ""MX98357A""
Raul E Rangelb3c41322020-05-20 14:07:41 -0600354 register "sdmode_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_91)"
355 register "sdmode_delay" = "5"
356 device generic 0.1 on end
357 end
358
359 device mmio 0xfedc5000 on
360 chip drivers/i2c/tpm
361 register "hid" = ""GOOG0005""
362 register "desc" = ""Cr50 TPM""
363 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_LOW(GPIO_3)"
364 device i2c 50 on end
365 end
366 end
367
Raul E Rangel5e29c0e2020-06-12 11:41:16 -0600368 device mmio 0xfedca000 off end # UART1
369 device mmio 0xfedce000 off end # UART2
370 device mmio 0xfedcf000 off end # UART3
371
Raul E Rangelb3c41322020-05-20 14:07:41 -0600372end # chip soc/amd/picasso