blob: 42219d7a16a99de4d2f57125eec74eb48aa55030 [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"
11 register "acpi_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
18 register "prochot_l_deassertion_ramp_time" = "20" #mS
19
20 # Lower die temperature limit
21 register "thermctl_limit" = "100" #degrees C
22
23 # FP5 Processor Voltage Supply PSI Currents
24 register "psi0_current_limit" = "18000" #mA
25 register "psi0_soc_current_limit" = "12000" #mA
26 register "vddcr_soc_voltage_margin" = "0" #mV
27 register "vddcr_vdd_voltage_margin" = "0" #mV
28
29 # VRM Limits
30 register "vrm_maximum_current_limit" = "0" #mA
31 register "vrm_soc_maximum_current_limit" = "0" #mA
32 register "vrm_current_limit" = "0" #mA
33 register "vrm_soc_current_limit" = "0" #mA
34
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
43 register "sd_emmc_config" = "SD_EMMC_EMMC_HS400"
44
Lucas Chenc1bb32f2020-05-26 19:31:48 +080045 register "xhci0_force_gen1" = "0"
46
Felix Held1d0154c2020-07-23 19:37:42 +020047 register "has_usb2_phy_tune_params" = "1"
48
Chris Wang1e3e5282020-06-23 21:10:57 +080049 # Controller0 Port0 Default
Felix Held3a7389e2020-07-23 18:22:30 +020050 register "usb_2_port_tune_params[0]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +080051 .com_pds_tune = 0x03,
52 .sq_rx_tune = 0x3,
53 .tx_fsls_tune = 0x3,
54 .tx_pre_emp_amp_tune = 0x03,
55 .tx_pre_emp_pulse_tune = 0x0,
56 .tx_rise_tune = 0x1,
57 .rx_vref_tune = 0x6,
58 .tx_hsxv_tune = 0x3,
59 .tx_res_tune = 0x01,
60 }"
61
62 # Controller0 Port1 Default
Felix Held3a7389e2020-07-23 18:22:30 +020063 register "usb_2_port_tune_params[1]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +080064 .com_pds_tune = 0x03,
65 .sq_rx_tune = 0x3,
66 .tx_fsls_tune = 0x3,
67 .tx_pre_emp_amp_tune = 0x03,
68 .tx_pre_emp_pulse_tune = 0x0,
69 .tx_rise_tune = 0x1,
70 .rx_vref_tune = 0x6,
71 .tx_hsxv_tune = 0x3,
72 .tx_res_tune = 0x01,
73 }"
74
75 # Controller0 Port2 Default
Felix Held3a7389e2020-07-23 18:22:30 +020076 register "usb_2_port_tune_params[2]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +080077 .com_pds_tune = 0x03,
78 .sq_rx_tune = 0x3,
79 .tx_fsls_tune = 0x3,
80 .tx_pre_emp_amp_tune = 0x03,
81 .tx_pre_emp_pulse_tune = 0x0,
82 .tx_rise_tune = 0x1,
83 .rx_vref_tune = 0x6,
84 .tx_hsxv_tune = 0x3,
85 .tx_res_tune = 0x01,
86 }"
87
88 # Controller0 Port3 Default
Felix Held3a7389e2020-07-23 18:22:30 +020089 register "usb_2_port_tune_params[3]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +080090 .com_pds_tune = 0x03,
91 .sq_rx_tune = 0x3,
92 .tx_fsls_tune = 0x3,
93 .tx_pre_emp_amp_tune = 0x03,
94 .tx_pre_emp_pulse_tune = 0x0,
95 .tx_rise_tune = 0x1,
96 .rx_vref_tune = 0x6,
97 .tx_hsxv_tune = 0x3,
98 .tx_res_tune = 0x01,
99 }"
100
101 # Controller1 Port0 Default
Felix Held3a7389e2020-07-23 18:22:30 +0200102 register "usb_2_port_tune_params[4]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +0800103 .com_pds_tune = 0x03,
104 .sq_rx_tune = 0x3,
105 .tx_fsls_tune = 0x3,
106 .tx_pre_emp_amp_tune = 0x02,
107 .tx_pre_emp_pulse_tune = 0x0,
108 .tx_rise_tune = 0x1,
109 .rx_vref_tune = 0x5,
110 .tx_hsxv_tune = 0x3,
111 .tx_res_tune = 0x01,
112 }"
113
114 # Controller1 Port1 Default
Felix Held3a7389e2020-07-23 18:22:30 +0200115 register "usb_2_port_tune_params[5]" = "{
Chris Wang1e3e5282020-06-23 21:10:57 +0800116 .com_pds_tune = 0x03,
117 .sq_rx_tune = 0x3,
118 .tx_fsls_tune = 0x3,
119 .tx_pre_emp_amp_tune = 0x02,
120 .tx_pre_emp_pulse_tune = 0x0,
121 .tx_rise_tune = 0x1,
122 .rx_vref_tune = 0x5,
123 .tx_hsxv_tune = 0x3,
124 .tx_res_tune = 0x01,
125 }"
126
Felix Helde2379962020-07-29 01:02:38 +0200127 # USB OC pin mapping
128 register "usb_port_overcurrent_pin[0]" = "USB_OC_PIN_0" # USB C0
129 register "usb_port_overcurrent_pin[1]" = "USB_OC_PIN_1" # USB C1
130 register "usb_port_overcurrent_pin[2]" = "USB_OC_PIN_0" # USB A0
131 register "usb_port_overcurrent_pin[3]" = "USB_OC_PIN_1" # USB A1
132 register "usb_port_overcurrent_pin[4]" = "USB_OC_NONE" # Camera
133 register "usb_port_overcurrent_pin[5]" = "USB_OC_NONE" # Bluetooth
134
Raul E Rangelb3c41322020-05-20 14:07:41 -0600135 # SPI Configuration
136 register "common_config.spi_config" = "{
Rob Barnes13ec6a02020-07-14 13:23:43 -0600137 .normal_speed = SPI_SPEED_33M, /* MHz */
138 .fast_speed = SPI_SPEED_66M, /* MHz */
Raul E Rangelb3c41322020-05-20 14:07:41 -0600139 .altio_speed = SPI_SPEED_66M, /* MHz */
140 .tpm_speed = SPI_SPEED_66M, /* MHz */
Martin Roth637f9412020-07-06 20:02:36 -0600141 .read_mode = SPI_READ_MODE_DUAL122,
Raul E Rangelb3c41322020-05-20 14:07:41 -0600142 }"
143
144 # eSPI Configuration
145 register "common_config.espi_config" = "{
146 .std_io_decode_bitmap = ESPI_DECODE_IO_0x80_EN | ESPI_DECODE_IO_0X60_0X64_EN,
147 .generic_io_range[0] = {
148 .base = 0x62,
149 /*
150 * Only 0x62 and 0x66 are required. But, this is not supported by
151 * standard IO decodes and there are only 4 generic I/O windows
152 * available. Hence, open a window from 0x62-0x67.
153 */
154 .size = 5,
155 },
156 .generic_io_range[1] = {
157 .base = 0x800, /* EC_HOST_CMD_REGION0 */
158 .size = 256, /* EC_HOST_CMD_REGION_SIZE * 2 */
159 },
160 .generic_io_range[2] = {
161 .base = 0x900, /* EC_LPC_ADDR_MEMMAP */
162 .size = 255, /* EC_MEMMAP_SIZE */
163 },
164 .generic_io_range[3] = {
165 .base = 0x200, /* EC_LPC_ADDR_HOST_DATA */
166 .size = 8, /* 0x200 - 0x207 */
167 },
168
169 .io_mode = ESPI_IO_MODE_QUAD,
170 .op_freq_mhz = ESPI_OP_FREQ_33_MHZ,
171 .crc_check_enable = 1,
172 .dedicated_alert_pin = 1,
173 .periph_ch_en = 1,
174 .vw_ch_en = 1,
175 .oob_ch_en = 0,
176 .flash_ch_en = 0,
177
Aaron Durbin76fcf8292020-07-02 11:08:21 -0600178 .vw_irq_polarity = ESPI_VW_IRQ_LEVEL_HIGH(1) | ESPI_VW_IRQ_LEVEL_HIGH(12),
Raul E Rangelb3c41322020-05-20 14:07:41 -0600179 }"
180
181 register "i2c_scl_reset" = "GPIO_I2C2_SCL | GPIO_I2C3_SCL"
182
Felix Heldd555d6a2020-08-28 02:12:52 +0200183 # genral purpose PCIe clock output configuration
184 register "gpp_clk_config[0]" = "GPP_CLK_REQ" # WLAN
185 register "gpp_clk_config[1]" = "GPP_CLK_REQ" # SD Reader
186 register "gpp_clk_config[2]" = "GPP_CLK_REQ" # NVME SSD
187 register "gpp_clk_config[3]" = "GPP_CLK_OFF"
188 register "gpp_clk_config[4]" = "GPP_CLK_OFF"
189 register "gpp_clk_config[5]" = "GPP_CLK_OFF"
190 register "gpp_clk_config[6]" = "GPP_CLK_OFF"
191
Raul E Rangelb3c41322020-05-20 14:07:41 -0600192 device cpu_cluster 0 on
193 device lapic 0 on end
194 end
195
196 # See AMD 55570-B1 Table 13: PCI Device ID Assignments.
197 device domain 0 on
198 subsystemid 0x1022 0x1510 inherit
199 device pci 0.0 on end # Root Complex
200 device pci 0.2 on end # IOMMU
201 device pci 1.0 on end # Dummy Host Bridge, must be enabled
202 device pci 1.1 off end # GPP Bridge 0
203 device pci 1.2 on end # GPP Bridge 1 - Wifi
204 device pci 1.3 on end # GPP Bridge 2 - SD
205 device pci 1.4 off end # GPP Bridge 3
206 device pci 1.5 off end # GPP Bridge 4
207 device pci 8.0 on end # Dummy Host Bridge, must be enabled
208 device pci 8.1 on # Internal GPP Bridge 0 to Bus A
209 device pci 0.0 on end # Internal GPU
210 device pci 0.1 on end # Display HDA
211 device pci 0.2 on end # Crypto Coprocesor
Rob Barnesf0d1c9a2020-06-24 09:42:02 -0600212 device pci 0.3 on # USB 3.1
213 chip drivers/usb/acpi
214 register "desc" = ""Root Hub""
215 register "type" = "UPC_TYPE_HUB"
216 device usb 0.0 on
217 chip drivers/usb/acpi
218 register "desc" = ""Left Type-C Port""
219 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
220 register "group" = "ACPI_PLD_GROUP(1, 1)"
221 device usb 2.0 on end
222 end
223 chip drivers/usb/acpi
224 register "desc" = ""Right Type-C Port""
225 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
226 register "group" = "ACPI_PLD_GROUP(2, 2)"
227 device usb 2.1 on end
228 end
229 chip drivers/usb/acpi
230 register "desc" = ""Left Type-A Port""
231 register "type" = "UPC_TYPE_USB3_A"
232 register "group" = "ACPI_PLD_GROUP(1, 2)"
233 device usb 2.2 on end
234 end
235 chip drivers/usb/acpi
236 register "desc" = ""Right Type-A Port""
237 register "type" = "UPC_TYPE_USB3_A"
238 register "group" = "ACPI_PLD_GROUP(2, 1)"
239 device usb 2.3 on end
240 end
241 chip drivers/usb/acpi
242 register "desc" = ""User-Facing Camera""
243 register "type" = "UPC_TYPE_INTERNAL"
244 device usb 2.4 on end
245 end
246 chip drivers/usb/acpi
247 register "desc" = ""Bluetooth""
248 register "type" = "UPC_TYPE_INTERNAL"
Rob Barnes56e889c2020-07-23 14:21:23 -0600249 register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_143)"
Rob Barnesf0d1c9a2020-06-24 09:42:02 -0600250 device usb 2.5 on end
251 end
252 chip drivers/usb/acpi
253 register "desc" = ""Left Type-C Port""
254 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
255 register "group" = "ACPI_PLD_GROUP(1, 1)"
256 device usb 3.0 on end
257 end
258 chip drivers/usb/acpi
259 register "desc" = ""Right Type-C Port""
260 register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
261 register "group" = "ACPI_PLD_GROUP(2, 2)"
262 device usb 3.1 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.2 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.3 on end
275 end
276 end
277 end
278 end
Furquan Shaikh24ec79c2020-07-16 13:40:28 -0700279 device pci 0.5 on
280 chip drivers/amd/i2s_machine_dev
281 register "hid" = ""AMDI5682""
282 # DMIC select GPIO for ACP machine device
283 # This GPIO is used to select DMIC0 or DMIC1 by the
284 # kernel driver. It does not really have a polarity
285 # since low and high control the selection of DMIC and
286 # hence does not have an active polarity.
287 # Kernel driver does not use the polarity field and
288 # instead treats the GPIO selection as follows:
289 # Set low (0) = Select DMIC0
290 # Set high (1) = Select DMIC1
291 register "dmic_select_gpio" = "ACPI_GPIO_OUTPUT(GPIO_67)"
292 device generic 0.0 on end
293 end
294 end # Audio
Felix Held90ca7f42020-08-21 16:17:05 +0200295 device pci 0.6 off end # HDA
Raul E Rangelb3c41322020-05-20 14:07:41 -0600296 device pci 0.7 on end # non-Sensor Fusion Hub device
297 end
Matt Papageorge48b2b2b2020-07-30 15:32:34 -0500298 device pci 8.2 off # Internal GPP Bridge 0 to Bus B
299 device pci 0.0 off end # AHCI
Raul E Rangelb3c41322020-05-20 14:07:41 -0600300 end
301 device pci 14.0 on end # SM
302 device pci 14.3 on # - D14F3 bridge
303 chip ec/google/chromeec
304 device pnp 0c09.0 on
305 chip ec/google/chromeec/i2c_tunnel
306 register "uid" = "1"
307 register "remote_bus" = "8"
308 device generic 0.0 on
309 chip drivers/i2c/generic
310 register "hid" = ""10EC5682""
311 register "name" = ""RT58""
312 register "uid" = "1"
313 register "desc" = ""Realtek RT5682""
Josie Nordrumcc72e152020-08-03 11:39:41 -0600314 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_BOTH(GPIO_84)"
Akshu Agrawalc7d6d7a2020-07-06 19:39:51 +0530315 register "property_count" = "2"
Raul E Rangelb3c41322020-05-20 14:07:41 -0600316 register "property_list[0].type" = "ACPI_DP_TYPE_INTEGER"
317 register "property_list[0].name" = ""realtek,jd-src""
318 register "property_list[0].integer" = "1"
Akshu Agrawalc7d6d7a2020-07-06 19:39:51 +0530319 register "property_list[1].type" = "ACPI_DP_TYPE_STRING"
320 register "property_list[1].name" = ""realtek,mclk-name""
321 register "property_list[1].string" = ""oscout1""
Raul E Rangelb3c41322020-05-20 14:07:41 -0600322 device i2c 1a on end
323 end
324 end
325 end
326 chip ec/google/chromeec/i2c_tunnel
327 register "name" = ""MSTH""
328 register "uid" = "1"
329 register "remote_bus" = "9"
330 device generic 1.0 on end
331 end
Furquan Shaikhe284bff2020-07-02 16:03:06 -0700332 chip ec/google/chromeec/audio_codec
333 register "uid" = "1"
334 device generic 0 on end
335 end
Raul E Rangelb3c41322020-05-20 14:07:41 -0600336 end
337 end
338 end
339 device pci 18.0 on end # Data fabric [0-7]
340 device pci 18.1 on end
341 device pci 18.2 on end
342 device pci 18.3 on end
343 device pci 18.4 on end
344 device pci 18.5 on end
345 device pci 18.6 on end
346 end # domain
347
348 chip drivers/generic/max98357a
Raul E Rangel19704cd2020-06-02 10:43:20 -0600349 register "hid" = ""MX98357A""
Raul E Rangelb3c41322020-05-20 14:07:41 -0600350 register "sdmode_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_91)"
351 register "sdmode_delay" = "5"
352 device generic 0.1 on end
353 end
354
355 device mmio 0xfedc5000 on
356 chip drivers/i2c/tpm
357 register "hid" = ""GOOG0005""
358 register "desc" = ""Cr50 TPM""
359 register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_LOW(GPIO_3)"
360 device i2c 50 on end
361 end
362 end
363
Raul E Rangel5e29c0e2020-06-12 11:41:16 -0600364 device mmio 0xfedca000 off end # UART1
365 device mmio 0xfedce000 off end # UART2
366 device mmio 0xfedcf000 off end # UART3
367
Raul E Rangelb3c41322020-05-20 14:07:41 -0600368end # chip soc/amd/picasso