summaryrefslogtreecommitdiff
path: root/src/mainboard/amd/bilby/devicetree.cb
blob: 932d280b808113abc57b0f8d156a9af1a1d83dba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
# SPDX-License-Identifier: GPL-2.0-only

chip soc/amd/picasso
	# ACP Configuration
	register "common_config.acp_config.acp_pin_cfg" = "I2S_PINS_MAX_HDA"

	# Set FADT Configuration
	register "common_config.fadt_boot_arch" = "ACPI_FADT_LEGACY_DEVICES | ACPI_FADT_8042"
	register "common_config.fadt_flags" = "ACPI_FADT_SLEEP_BUTTON" # See table 5-34 ACPI 6.3 spec

	register "emmc_config" = "{
		.timing = SD_EMMC_DISABLE,
	}"

	register "has_usb2_phy_tune_params" = "1"

	# Controller0 Port0 Default
	register "usb_2_port_tune_params[0]" = "{
		.com_pds_tune = 0x03,
		.sq_rx_tune = 0x3,
		.tx_fsls_tune = 0x3,
		.tx_pre_emp_amp_tune = 0x03,
		.tx_pre_emp_pulse_tune = 0x0,
		.tx_rise_tune = 0x1,
		.tx_vref_tune = 0x6,
		.tx_hsxv_tune = 0x3,
		.tx_res_tune = 0x01,
	}"

	# Controller0 Port1 Default
	register "usb_2_port_tune_params[1]" = "{
		.com_pds_tune = 0x03,
		.sq_rx_tune = 0x3,
		.tx_fsls_tune = 0x3,
		.tx_pre_emp_amp_tune = 0x03,
		.tx_pre_emp_pulse_tune = 0x0,
		.tx_rise_tune = 0x1,
		.tx_vref_tune = 0x6,
		.tx_hsxv_tune = 0x3,
		.tx_res_tune = 0x01,
	}"

	# Controller0 Port2 Default
	register "usb_2_port_tune_params[2]" = "{
		.com_pds_tune = 0x03,
		.sq_rx_tune = 0x3,
		.tx_fsls_tune = 0x3,
		.tx_pre_emp_amp_tune = 0x03,
		.tx_pre_emp_pulse_tune = 0x0,
		.tx_rise_tune = 0x1,
		.tx_vref_tune = 0x6,
		.tx_hsxv_tune = 0x3,
		.tx_res_tune = 0x01,
	}"

	# Controller0 Port3 Default
	register "usb_2_port_tune_params[3]" = "{
		.com_pds_tune = 0x03,
		.sq_rx_tune = 0x3,
		.tx_fsls_tune = 0x3,
		.tx_pre_emp_amp_tune = 0x03,
		.tx_pre_emp_pulse_tune = 0x0,
		.tx_rise_tune = 0x1,
		.tx_vref_tune = 0x6,
		.tx_hsxv_tune = 0x3,
		.tx_res_tune = 0x01,
	}"

	# Controller0 Port4 Default
	register "usb_2_port_tune_params[4]" = "{
		.com_pds_tune = 0x03,
		.sq_rx_tune = 0x3,
		.tx_fsls_tune = 0x3,
		.tx_pre_emp_amp_tune = 0x02,
		.tx_pre_emp_pulse_tune = 0x0,
		.tx_rise_tune = 0x1,
		.tx_vref_tune = 0x5,
		.tx_hsxv_tune = 0x3,
		.tx_res_tune = 0x01,
	}"

	# Controller0 Port5 Default
	register "usb_2_port_tune_params[5]" = "{
		.com_pds_tune = 0x03,
		.sq_rx_tune = 0x3,
		.tx_fsls_tune = 0x3,
		.tx_pre_emp_amp_tune = 0x02,
		.tx_pre_emp_pulse_tune = 0x0,
		.tx_rise_tune = 0x1,
		.tx_vref_tune = 0x5,
		.tx_hsxv_tune = 0x3,
		.tx_res_tune = 0x01,
	}"

	# USB OC pin mapping; all ports share one OC pin
	register "usb_port_overcurrent_pin[0]" = "USB_OC_PIN_0"
	register "usb_port_overcurrent_pin[1]" = "USB_OC_PIN_0"
	register "usb_port_overcurrent_pin[2]" = "USB_OC_PIN_0"
	register "usb_port_overcurrent_pin[3]" = "USB_OC_PIN_0"
	register "usb_port_overcurrent_pin[4]" = "USB_OC_PIN_0"
	register "usb_port_overcurrent_pin[5]" = "USB_OC_PIN_0"

	# SPI Configuration
	register "common_config.spi_config" = "{
		.normal_speed = SPI_SPEED_33M, /* MHz */
		.fast_speed = SPI_SPEED_66M, /* MHz */
		.altio_speed = SPI_SPEED_33M, /* MHz */
		.tpm_speed = SPI_SPEED_33M, /* MHz */
		.read_mode = SPI_READ_MODE_QUAD114,
	}"

	# eSPI Configuration
	register "common_config.espi_config" = "{
		.std_io_decode_bitmap = ESPI_DECODE_IO_0X60_0X64_EN,
		.generic_io_range[0] = {
			.base = 0x662,
			.size = 8,
		},

		.io_mode = ESPI_IO_MODE_SINGLE,
		.op_freq_mhz = ESPI_OP_FREQ_33_MHZ,
		.crc_check_enable = 1,
		.alert_pin = ESPI_ALERT_PIN_PUSH_PULL,
		.periph_ch_en = 0,
		.vw_ch_en = 0,
		.oob_ch_en = 0,
		.flash_ch_en = 0,
	}"

	# genral purpose PCIe clock output configuration
	register "gpp_clk_config[0]" = "GPP_CLK_REQ"
	register "gpp_clk_config[1]" = "GPP_CLK_REQ"
	register "gpp_clk_config[2]" = "GPP_CLK_REQ"
	register "gpp_clk_config[3]" = "GPP_CLK_REQ"
	register "gpp_clk_config[4]" = "GPP_CLK_REQ"
	register "gpp_clk_config[5]" = "GPP_CLK_REQ"
	register "gpp_clk_config[6]" = "GPP_CLK_REQ"

	register "pspp_policy" = "DXIO_PSPP_BALANCED"

	device domain 0 on
		subsystemid 0x1022 0x1510 inherit
		device ref iommu on end
		device ref gpp_bridge_0 on end
		device ref gpp_bridge_1 on end
		device ref gpp_bridge_4 on end # NVMe
		device ref internal_bridge_a on
			device ref gfx on end # Internal GPU
			device ref gfx_hda on end # Display HDA
			device ref crypto on end # Crypto Coprocessor
			device ref xhci_0 on end # USB 3.1
			device ref xhci_1 off end # USB 3.1
			device ref acp on end # Audio
			device ref hda on end # HDA
			device ref mp2 on end # non-Sensor Fusion Hub device
		end
		device ref internal_bridge_b on
			device ref sata off end # AHCI
			device ref xgbe_0 off end # integrated Ethernet MAC
			device ref xgbe_1 off end # integrated Ethernet MAC
		end
		device ref lpc_bridge on
			chip superio/smsc/sio1036 # optional debug card
			end
		end
	end # domain

	device mmio 0xfedc9000 on  end # UART0
	device mmio 0xfedca000 on  end # UART1
	device mmio 0xfedce000 off end # UART2
	device mmio 0xfedcf000 off end # UART3

end	# chip soc/amd/picasso