summaryrefslogtreecommitdiff
path: root/src/mainboard/protectli/vault_adl_p/devicetree.cb
blob: f11dc6aba202e3ff9c0ce8751879654d788010b2 (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
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
chip soc/intel/alderlake
	# FSP configuration

	register "eist_enable" = "1"

	# Sagv Configuration
	register "sagv" = "SaGv_Enabled"
	register "RMT" = "0"
	register "enable_c6dram" = "1"

	register "common_soc_config" = "{
		// Type-C PD I2C bus
		.i2c[1] = {
			.speed = I2C_SPEED_FAST,
			.rise_time_ns = 80,
			.fall_time_ns = 110,
		},
	}"

	register "tcc_offset" = "20" # TCC of 80C

	device domain 0 on
		subsystemid 0x8086 0x7270 inherit

		device ref pcie4_0 on
			register "cpu_pcie_rp[CPU_RP(1)]" = "{
				.flags = PCIE_RP_LTR | PCIE_RP_AER | PCIE_RP_CLK_REQ_UNUSED,
				.pcie_rp_aspm = ASPM_L0S_L1,
				.PcieRpL1Substates = L1_SS_DISABLED,
				.clk_src = 3,
			}"
			smbios_slot_desc "SlotTypeM2Socket3" "SlotLengthOther"
					 "M.2/M 2280 (M2_SSD1)" "SlotDataBusWidth4X"
		end
		device ref igpu on
			subsystemid 0x8086 0x2212
			register "ddi_portA_config" = "1" # HDMI on port A
			register "ddi_portB_config" = "1" # DP on port B
			register "ddi_ports_config" = "{
				[DDI_PORT_A] = DDI_ENABLE_HPD | DDI_ENABLE_DDC,
				[DDI_PORT_B] = DDI_ENABLE_HPD | DDI_ENABLE_DDC,
				[DDI_PORT_3] = DDI_ENABLE_HPD,
			}"
		end
		device ref tcss_xhci on
			register "tcss_ports" = "{
				[0] = TCSS_PORT_DEFAULT(OC_SKIP), // 5G module
				[1] = TCSS_PORT_DEFAULT(OC_SKIP), // USB2.0 + USB 3.0 column with RJ45
				[2] = TCSS_PORT_DEFAULT(OC_SKIP), // USB Type-C no TBT
				[3] = TCSS_PORT_DEFAULT(OC_SKIP), // USB-A 3.0
			}"

			# SOC Aux orientation override:
			# This is a bitfield that corresponds to up to 4 TCSS ports.
			# Bits (0,1) allocated for TCSS Port1 configuration and Bits (2,3)for TCSS Port2.
			# Bits (4,5) allocated for TCSS Port3 configuration and Bits (6,7)for TCSS Port4.
			# Bit0,Bit2,Bit4,Bit6 set to "1" indicates no retimer on USBC Ports
			# Bit1,Bit3,Bit5,Bit7 set to "0" indicates Aux lines are not swapped on the
			# motherboard to USBC connector
			register "tcss_aux_ori" = "0x10"
			register "typec_aux_bias_pads[2]" = "{.pad_auxp_dc = GPP_A21, .pad_auxn_dc = GPP_A22}"

			chip drivers/usb/acpi
				device ref tcss_root_hub on
					chip drivers/usb/acpi
						register "desc" = ""USB3 5G (MKB_4G1)""
						register "type" = "UPC_TYPE_INTERNAL"
						device ref tcss_usb3_port1 on end
					end
					chip drivers/usb/acpi
						register "desc" = ""USB3 Type-A Port 1 (USB1)""
						register "type" = "UPC_TYPE_USB3_A"
						register "use_custom_pld" = "true"
						register "custom_pld" = "ACPI_PLD_TYPE_A(FRONT, RIGHT, ACPI_PLD_GROUP(1, 2))"
						register "custom_pld.vertical_position" = "PLD_VERTICAL_POSITION_UPPER"
						device ref tcss_usb3_port2 on end
					end
					chip drivers/usb/acpi
						register "desc" = ""USB3 TBT Type-C""
						register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
						register "use_custom_pld" = "true"
						register "custom_pld" = "ACPI_PLD_TYPE_C(FRONT, RIGHT, ACPI_PLD_GROUP(2, 1))"
						device ref tcss_usb3_port3 on end
					end
					chip drivers/usb/acpi
						register "desc" = ""USB3 Type-A Internal""
						register "type" = "UPC_TYPE_INTERNAL"
						device ref tcss_usb3_port4 on end
					end
				end
			end
		end
		device ref xhci on
			register "usb2_ports" = "{
				[0] = USB2_PORT_SHORT(OC_SKIP),  // USB-A 2.0 USB1
				[1] = USB2_PORT_SHORT(OC_SKIP),  // USB-A 3.0 USB1
				[2] = USB2_PORT_SHORT(OC_SKIP),  // 5G
				[3] = USB2_PORT_SHORT(OC_SKIP),  // USB-A 3.0 internal
				[5] = USB2_PORT_SHORT(OC_SKIP),  // USB-A 2.0 USB2
				[7] = USB2_PORT_TYPE_C(OC_SKIP), // USB Type-C no TBT
				[8] = USB2_PORT_SHORT(OC_SKIP),  // USB-A 2.0 USB2
				[9] = USB2_PORT_SHORT(OC_SKIP),  // WiFi slot
			}"

			# PCH USB3.x ports not used

			chip drivers/usb/acpi
				device ref xhci_root_hub on
					chip drivers/usb/acpi
						register "desc" = ""USB2 Type-A Port 2 (USB1)""
						register "type" = "UPC_TYPE_A"
						register "use_custom_pld" = "true"
						register "custom_pld" = "ACPI_PLD_TYPE_A(FRONT, RIGHT, ACPI_PLD_GROUP(1, 1))"
						register "custom_pld.vertical_position" = "PLD_VERTICAL_POSITION_LOWER"
						device ref usb2_port1 on end
					end
					chip drivers/usb/acpi
						register "desc" = ""USB3 Type-A Port 1 (USB1)""
						register "type" = "UPC_TYPE_USB3_A"
						register "use_custom_pld" = "true"
						register "custom_pld" = "ACPI_PLD_TYPE_A(FRONT, RIGHT, ACPI_PLD_GROUP(1, 2))"
						register "custom_pld.vertical_position" = "PLD_VERTICAL_POSITION_UPPER"
						device ref usb2_port2 on end
					end
					chip drivers/usb/acpi
						register "desc" = ""USB2 5G (MKB_4G1)""
						register "type" = "UPC_TYPE_INTERNAL"
						device ref usb2_port3 on end
					end
					chip drivers/usb/acpi
						register "desc" = ""USB3 Type-A Internal""
						register "type" = "UPC_TYPE_INTERNAL"
						device ref usb2_port4 on end
					end
					chip drivers/usb/acpi
						register "desc" = ""USB2 Type-A Port 4 (USB2)""
						register "type" = "UPC_TYPE_A"
						register "use_custom_pld" = "true"
						register "custom_pld" = "ACPI_PLD_TYPE_A(FRONT, LEFT, ACPI_PLD_GROUP(3, 1))"
						register "custom_pld.vertical_position" = "PLD_VERTICAL_POSITION_LOWER"
						device ref usb2_port6 on end
					end
					chip drivers/usb/acpi
						register "desc" = ""USB2 Type-C Port""
						register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
						register "use_custom_pld" = "true"
						register "custom_pld" = "ACPI_PLD_TYPE_C(FRONT, RIGHT, ACPI_PLD_GROUP(2, 1))"
						device ref usb2_port8 on end
					end
					chip drivers/usb/acpi
						register "desc" = ""USB2 Type-A Port 3 (USB2)""
						register "type" = "UPC_TYPE_A"
						register "use_custom_pld" = "true"
						register "custom_pld" = "ACPI_PLD_TYPE_A(FRONT, LEFT, ACPI_PLD_GROUP(3, 2))"
						register "custom_pld.vertical_position" = "PLD_VERTICAL_POSITION_UPPER"
						device ref usb2_port9 on end
					end
					chip drivers/usb/acpi
						register "desc" = ""USB2 WiFi/Bluetooth""
						register "type" = "UPC_TYPE_INTERNAL"
						device ref usb2_port10 on end
					end
				end
			end
		end
		device ref i2c1 on
			register "serial_io_i2c_mode[PchSerialIoIndexI2C1]" = "PchSerialIoPci"
			chip drivers/i2c/generic
				register "hid" = ""INT3515""
				register "uid" = "1"
				register "name" = ""PD01""
				register "desc" = ""TPS65994 USB-C PD Controller""
				register "irq_gpio" = "ACPI_GPIO_IRQ_LEVEL_LOW(GPP_E2)"
				device i2c 23 on end
			end
		end
		device ref sata on
			register "sata_salp_support" = "1"

			register "sata_ports_enable" = "{
				[0] = 1,
				[1] = 1,
			}"
		end
		# x4 link to Intel XL710 2xSFP
		device ref pcie_rp1 on
			register "pch_pcie_rp[PCH_RP(1)]" = "{
				.flags = PCIE_RP_LTR | PCIE_RP_AER | PCIE_RP_CLK_REQ_UNUSED,
				.pcie_rp_aspm = ASPM_L0S_L1,
				.PcieRpL1Substates = L1_SS_DISABLED,
				.clk_src = 1,
			}"
		end
		# RP5-RP8 i226 LAN
		device ref pcie_rp5 on
			register "pch_pcie_rp[PCH_RP(5)]" = "{
				.flags = PCIE_RP_LTR | PCIE_RP_AER,
				.pcie_rp_aspm = ASPM_L0S_L1,
				.PcieRpL1Substates = L1_SS_DISABLED,
				.clk_src = 2,
				.clk_req = 2,
			}"
		end
		device ref pcie_rp6 on
			register "pch_pcie_rp[PCH_RP(6)]" = "{
				.flags = PCIE_RP_LTR | PCIE_RP_AER,
				.pcie_rp_aspm = ASPM_L0S_L1,
				.PcieRpL1Substates = L1_SS_DISABLED,
				.clk_src = 0,
				.clk_req = 0,
			}"
		end
		device ref pcie_rp7 on
			register "pch_pcie_rp[PCH_RP(7)]" = "{
				.flags = PCIE_RP_LTR | PCIE_RP_AER | PCIE_RP_CLK_REQ_UNUSED,
				.pcie_rp_aspm = ASPM_L0S_L1,
				.PcieRpL1Substates = L1_SS_DISABLED,
				.clk_src = 6,
			}"
		end
		device ref pcie_rp8 on
			register "pch_pcie_rp[PCH_RP(8)]" = "{
				.flags = PCIE_RP_LTR | PCIE_RP_AER | PCIE_RP_CLK_REQ_UNUSED,
				.pcie_rp_aspm = ASPM_L0S_L1,
				.PcieRpL1Substates = L1_SS_DISABLED,
				.clk_src = 5,
			}"
		end
		device ref pcie_rp10 on
			register "pch_pcie_rp[PCH_RP(10)]" = "{
				.flags = PCIE_RP_LTR | PCIE_RP_CLK_REQ_UNUSED,
				.pcie_rp_aspm = ASPM_L0S_L1,
				.PcieRpL1Substates = L1_SS_DISABLED,
				.clk_src = 4,
			}"
			chip drivers/wifi/generic
				register "wake" = "GPE0_PME_B0"
				device pci 00.0 on end
			end
			smbios_slot_desc "SlotTypeM2Socket1_SD" "SlotLengthOther"
					 "M.2/E 2230 (M2_WIFI1)" "SlotDataBusWidth1X"
		end
		device ref pch_espi on
			# LPC generic I/O ranges
			register "gen1_dec" = "0x00fc0201"
			register "gen2_dec" = "0x003c0a01"
			register "gen3_dec" = "0x000c0081"

			chip superio/ite/it8659e
				register "TMPIN1.mode"    = "THERMAL_PECI"
				register "TMPIN1.offset"  = "0x56"
				register "ec.vin_mask"    = "VIN0 | VIN2 | VIN3 | VIN7"

				# FAN1 is CPU fan (connector on board)
				register "FAN1.mode" = "FAN_SMART_AUTOMATIC"
				register "FAN1.smart.tmpin"     = " 1"
				register "FAN1.smart.tmp_off"   = "40"
				register "FAN1.smart.tmp_start" = "50"
				register "FAN1.smart.tmp_full"  = "85"
				register "FAN1.smart.pwm_start" = "20"
				register "FAN1.smart.slope"     = "32"
				# FAN2 is CPU fan (connector on board)
				register "FAN2.mode" = "FAN_SMART_AUTOMATIC"
				register "FAN2.smart.tmpin"     = " 1"
				register "FAN2.smart.tmp_off"   = "40"
				register "FAN2.smart.tmp_start" = "50"
				register "FAN2.smart.tmp_full"  = "85"
				register "FAN2.smart.pwm_start" = "20"
				register "FAN2.smart.slope"     = "32"

				device pnp 2e.1 on	# COM 1
					io 0x60 = 0x3f8
					irq 0x70 = 4
					irq 0xf1 = 0x52 # IRQ low level
				end
				device pnp 2e.2 on	# COM 2
					io 0x60 = 0x2f8
					irq 0x70 = 3
					irq 0xf1 = 0x52 # IRQ low level
				end
				device pnp 2e.4 on	# Environment Controller
					io 0x60 = 0xa20
					io 0x62 = 0xa10
					irq 0x70 = 0	# Don't use IRQ
					irq 0xf4 = 0x20 # PSON_N is inverted SUSB_N
					irq 0xfa = 0x20 # Enable WDT output through PWRGD
				end
				device pnp 2e.5 off end	# Keyboard
				device pnp 2e.6 off end	# Mouse
				device pnp 2e.7 on	# GPIO
					io 0x60 = 0xa08
					io 0x62 = 0xa00
				end
				device pnp 2e.a off end	# CIR
			end
			chip drivers/pc80/tpm
				device pnp 0.0 on end
			end

		end
		device ref pmc hidden
			register "pmc_gpe0_dw0" = "PMC_GPP_A"
			register "pmc_gpe0_dw1" = "PMC_GPP_R"
			register "pmc_gpe0_dw2" = "PMC_GPD"

			chip drivers/intel/pmc_mux
				device generic 0 on
					chip drivers/intel/pmc_mux/conn
						use usb2_port8 as usb2_port
						use tcss_usb3_port3 as usb3_port
						device generic 0 alias conn0 on end
					end
				end
			end
		end
		device ref hda on
			register "pch_hda_audio_link_hda_enable" = "1"
			register "pch_hda_idisp_link_tmode" = "HDA_TMODE_8T"
			register "pch_hda_idisp_link_frequency" = "HDA_LINKFREQ_96MHZ"
			register "pch_hda_idisp_codec_enable" = "true"
		end
		device ref smbus on end
	end
end