• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// SPDX-License-Identifier: GPL-2.0+
2// Copyright (c) 2018 Facebook Inc.
3// Author: Vijay Khemka <vijaykhemka@fb.com>
4/dts-v1/;
5
6#include "aspeed-g5.dtsi"
7#include <dt-bindings/gpio/aspeed-gpio.h>
8#include <dt-bindings/i2c/i2c.h>
9
10/ {
11	model = "Facebook TiogaPass BMC";
12	compatible = "facebook,tiogapass-bmc", "aspeed,ast2500";
13	aliases {
14		serial0 = &uart1;
15		serial4 = &uart5;
16
17		/*
18		 * Hardcode the bus number of i2c switches' channels to
19		 * avoid breaking the legacy applications.
20		 */
21		i2c16 = &imux16;
22		i2c17 = &imux17;
23		i2c18 = &imux18;
24		i2c19 = &imux19;
25		i2c20 = &imux20;
26		i2c21 = &imux21;
27		i2c22 = &imux22;
28		i2c23 = &imux23;
29		i2c24 = &imux24;
30		i2c25 = &imux25;
31		i2c26 = &imux26;
32		i2c27 = &imux27;
33		i2c28 = &imux28;
34		i2c29 = &imux29;
35		i2c30 = &imux30;
36		i2c31 = &imux31;
37	};
38	chosen {
39		stdout-path = &uart5;
40		bootargs = "console=ttyS4,115200 earlyprintk";
41	};
42
43	memory@80000000 {
44		reg = <0x80000000 0x20000000>;
45	};
46
47	iio-hwmon {
48		compatible = "iio-hwmon";
49		io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>,
50			      <&adc 4>, <&adc 5>, <&adc 6>, <&adc 7>;
51	};
52
53};
54
55&fmc {
56	status = "okay";
57	flash@0 {
58		status = "okay";
59		m25p,fast-read;
60#include "openbmc-flash-layout.dtsi"
61	};
62};
63
64&spi1 {
65	status = "okay";
66	pinctrl-names = "default";
67	pinctrl-0 = <&pinctrl_spi1_default>;
68	flash@0 {
69		status = "okay";
70		m25p,fast-read;
71		label = "pnor";
72	};
73};
74
75&lpc_snoop {
76	status = "okay";
77	snoop-ports = <0x80>;
78};
79
80&lpc_ctrl {
81	// Enable lpc clock
82	status = "okay";
83};
84
85&uart1 {
86	// Host Console
87	status = "okay";
88	pinctrl-names = "default";
89	pinctrl-0 = <&pinctrl_txd1_default
90		     &pinctrl_rxd1_default>;
91};
92
93&uart2 {
94	// SoL Host Console
95	status = "okay";
96};
97
98&uart3 {
99	// SoL BMC Console
100	status = "okay";
101};
102
103&uart5 {
104	// BMC Console
105	status = "okay";
106};
107
108&kcs2 {
109	// BMC KCS channel 2
110	status = "okay";
111	aspeed,lpc-io-reg = <0xca8>;
112};
113
114&kcs3 {
115	// BMC KCS channel 3
116	status = "okay";
117	aspeed,lpc-io-reg = <0xca2>;
118};
119
120&gpio {
121	status = "okay";
122	gpio-line-names =
123	/*A0-A7*/	"BMC_CPLD_FPGA_SEL","","","","","","","",
124	/*B0-B7*/	"","BMC_DEBUG_EN","","","","BMC_PPIN","PS_PWROK",
125			"IRQ_PVDDQ_GHJ_VRHOT_LVT3",
126	/*C0-C7*/	"","","","","","","","",
127	/*D0-D7*/	"BIOS_MRC_DEBUG_MSG_DIS","BOARD_REV_ID0","",
128			"BOARD_REV_ID1","IRQ_DIMM_SAVE_LVT3","BOARD_REV_ID2",
129			"CPU_ERR0_LVT3_BMC","CPU_ERR1_LVT3_BMC",
130	/*E0-E7*/	"RESET_BUTTON","RESET_OUT","POWER_BUTTON",
131			"POWER_OUT","NMI_BUTTON","","CPU0_PROCHOT_LVT3_ BMC",
132			"CPU1_PROCHOT_LVT3_ BMC",
133	/*F0-F7*/	"IRQ_PVDDQ_ABC_VRHOT_LVT3","",
134			"IRQ_PVCCIN_CPU0_VRHOT_LVC3",
135			"IRQ_PVCCIN_CPU1_VRHOT_LVC3",
136			"IRQ_PVDDQ_KLM_VRHOT_LVT3","","P3VBAT_BRIDGE_EN","",
137	/*G0-G7*/	"CPU_ERR2_LVT3","CPU_CATERR_LVT3","PCH_BMC_THERMTRIP",
138			"CPU0_SKTOCC_LVT3","","","","BIOS_SMI_ACTIVE",
139	/*H0-H7*/	"LED_POST_CODE_0","LED_POST_CODE_1","LED_POST_CODE_2",
140			"LED_POST_CODE_3","LED_POST_CODE_4","LED_POST_CODE_5",
141			"LED_POST_CODE_6","LED_POST_CODE_7",
142	/*I0-I7*/	"CPU0_FIVR_FAULT_LVT3","CPU1_FIVR_FAULT_LVT3",
143			"FORCE_ADR","UV_ADR_TRIGGER_EN","","","","",
144	/*J0-J7*/	"","","","","","","","",
145	/*K0-K7*/	"","","","","","","","",
146	/*L0-L7*/	"IRQ_UV_DETECT","IRQ_OC_DETECT","HSC_TIMER_EXP","",
147			"MEM_THERM_EVENT_PCH","PMBUS_ALERT_BUF_EN","","",
148	/*M0-M7*/	"CPU0_RC_ERROR","CPU1_RC_ERROR","","OC_DETECT_EN",
149			"CPU0_THERMTRIP_LATCH_LVT3",
150			"CPU1_THERMTRIP_LATCH_LVT3","","",
151	/*N0-N7*/	"","","","CPU_MSMI_LVT3","","BIOS_SPI_BMC_CTRL","","",
152	/*O0-O7*/	"","","","","","","","",
153	/*P0-P7*/	"BOARD_SKU_ID0","BOARD_SKU_ID1","BOARD_SKU_ID2",
154			"BOARD_SKU_ID3","BOARD_SKU_ID4","BMC_PREQ",
155			"BMC_PWR_DEBUG","RST_RSMRST",
156	/*Q0-Q7*/	"","","","","UARTSW_LSB","UARTSW_MSB",
157			"POST_CARD_PRES_BMC","PE_BMC_WAKE",
158	/*R0-R7*/	"","","BMC_TCK_MUX_SEL","BMC_PRDY",
159			"BMC_XDP_PRSNT_IN","RST_BMC_PLTRST_BUF","SLT_CFG0",
160			"SLT_CFG1",
161	/*S0-S7*/	"THROTTLE","BMC_READY","","HSC_SMBUS_SWITCH_EN","",
162			"","","",
163	/*T0-T7*/	"","","","","","","","",
164	/*U0-U7*/	"","","","","","BMC_FAULT","","",
165	/*V0-V7*/	"","","","FAST_PROCHOT_EN","","","","",
166	/*W0-W7*/	"","","","","","","","",
167	/*X0-X7*/	"","","","GLOBAL_RST_WARN",
168			"CPU0_MEMABC_MEMHOT_LVT3_BMC",
169			"CPU0_MEMDEF_MEMHOT_LVT3_BMC",
170			"CPU1_MEMGHJ_MEMHOT_LVT3_BMC",
171			"CPU1_MEMKLM_MEMHOT_LVT3_BMC",
172	/*Y0-Y7*/	"SIO_S3","SIO_S5","BMC_JTAG_SEL","SIO_ONCONTROL","",
173			"","","",
174	/*Z0-Z7*/	"","SIO_POWER_GOOD","IRQ_PVDDQ_DEF_VRHOT_LVT3","",
175			"","","","",
176	/*AA0-AA7*/	"CPU1_SKTOCC_LVT3","IRQ_SML1_PMBUS_ALERT",
177			"SERVER_POWER_LED","","PECI_MUX_SELECT","UV_HIGH_SET",
178			"","POST_COMPLETE",
179	/*AB0-AB7*/	"IRQ_HSC_FAULT","OCP_MEZZA_PRES","","","","","","",
180	/*AC0-AC7*/	"","","","","","","","";
181};
182
183&mac0 {
184	status = "okay";
185
186	pinctrl-names = "default";
187	pinctrl-0 = <&pinctrl_rmii1_default>;
188	clocks = <&syscon ASPEED_CLK_GATE_MAC1CLK>,
189		 <&syscon ASPEED_CLK_MAC1RCLK>;
190	clock-names = "MACCLK", "RCLK";
191	use-ncsi;
192};
193
194&adc {
195	status = "okay";
196};
197
198&i2c0 {
199	status = "okay";
200	//Airmax Conn B, CPU0 PIROM, CPU1 PIROM
201};
202
203&i2c1 {
204	status = "okay";
205	//X24 Riser
206	i2c-switch@71 {
207		compatible = "nxp,pca9544";
208		#address-cells = <1>;
209		#size-cells = <0>;
210		reg = <0x71>;
211
212		imux16: i2c@0 {
213			#address-cells = <1>;
214			#size-cells = <0>;
215			reg = <0>;
216
217			ina230@45 {
218				compatible = "ti,ina230";
219				reg = <0x45>;
220			};
221
222			tmp75@48 {
223				compatible = "ti,tmp75";
224				reg = <0x48>;
225			};
226
227			tmp421@49 {
228				compatible = "ti,tmp75";
229				reg = <0x49>;
230			};
231
232			eeprom@50 {
233				compatible = "atmel,24c64";
234				reg = <0x50>;
235				pagesize = <32>;
236			};
237
238			i2c-switch@73 {
239				compatible = "nxp,pca9546";
240				#address-cells = <1>;
241				#size-cells = <0>;
242				reg = <0x73>;
243
244				imux20: i2c@0 {
245					#address-cells = <1>;
246					#size-cells = <0>;
247					reg = <0>;
248				};
249
250				imux21: i2c@1 {
251					#address-cells = <1>;
252					#size-cells = <0>;
253					reg = <1>;
254				};
255
256				imux22: i2c@2 {
257					#address-cells = <1>;
258					#size-cells = <0>;
259					reg = <2>;
260				};
261
262				imux23: i2c@3 {
263					#address-cells = <1>;
264					#size-cells = <0>;
265					reg = <3>;
266				};
267
268			};
269
270		};
271
272		imux17: i2c@1 {
273			#address-cells = <1>;
274			#size-cells = <0>;
275			reg = <1>;
276
277			ina230@45 {
278				compatible = "ti,ina230";
279				reg = <0x45>;
280			};
281
282			tmp421@48 {
283				compatible = "ti,tmp75";
284				reg = <0x48>;
285			};
286
287			tmp421@49 {
288				compatible = "ti,tmp75";
289				reg = <0x49>;
290			};
291
292			eeprom@50 {
293				compatible = "atmel,24c64";
294				reg = <0x50>;
295				pagesize = <32>;
296			};
297
298			i2c-switch@73 {
299				compatible = "nxp,pca9546";
300				#address-cells = <1>;
301				#size-cells = <0>;
302				reg = <0x73>;
303
304				imux24: i2c@0 {
305					#address-cells = <1>;
306					#size-cells = <0>;
307					reg = <0>;
308				};
309
310				imux25: i2c@1 {
311					#address-cells = <1>;
312					#size-cells = <0>;
313					reg = <1>;
314				};
315
316				imux26: i2c@2 {
317					#address-cells = <1>;
318					#size-cells = <0>;
319					reg = <2>;
320				};
321
322				imux27: i2c@3 {
323					#address-cells = <1>;
324					#size-cells = <0>;
325					reg = <3>;
326				};
327
328			};
329
330		};
331
332		imux18: i2c@2 {
333			#address-cells = <1>;
334			#size-cells = <0>;
335			reg = <2>;
336
337			ina230@45 {
338				compatible = "ti,ina230";
339				reg = <0x45>;
340			};
341
342			tmp421@48 {
343				compatible = "ti,tmp75";
344				reg = <0x48>;
345			};
346
347			tmp421@49 {
348				compatible = "ti,tmp75";
349				reg = <0x49>;
350			};
351
352			eeprom@50 {
353				compatible = "atmel,24c64";
354				reg = <0x50>;
355				pagesize = <32>;
356			};
357
358			i2c-switch@73 {
359				compatible = "nxp,pca9546";
360				#address-cells = <1>;
361				#size-cells = <0>;
362				reg = <0x73>;
363
364				imux28: i2c@0 {
365					#address-cells = <1>;
366					#size-cells = <0>;
367					reg = <0>;
368				};
369
370				imux29: i2c@1 {
371					#address-cells = <1>;
372					#size-cells = <0>;
373					reg = <1>;
374				};
375
376				imux30: i2c@2 {
377					#address-cells = <1>;
378					#size-cells = <0>;
379					reg = <2>;
380				};
381
382				imux31: i2c@3 {
383					#address-cells = <1>;
384					#size-cells = <0>;
385					reg = <3>;
386				};
387
388			};
389
390		};
391
392		imux19: i2c@3 {
393			#address-cells = <1>;
394			#size-cells = <0>;
395			reg = <3>;
396
397			i2c-switch@40 {
398				compatible = "ti,ina230";
399				reg = <0x40>;
400			};
401
402			i2c-switch@41 {
403				compatible = "ti,ina230";
404				reg = <0x41>;
405			};
406
407			i2c-switch@45 {
408				compatible = "ti,ina230";
409				reg = <0x45>;
410			};
411
412		};
413
414	};
415};
416
417&i2c2 {
418	status = "okay";
419	// Mezz Management SMBus
420};
421
422&i2c3 {
423	status = "okay";
424	// SMBus to Board ID EEPROM
425};
426
427&i2c4 {
428	status = "okay";
429	// BMC Debug Header
430	ipmb0@10 {
431		compatible = "ipmb-dev";
432		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
433		i2c-protocol;
434	};
435};
436
437&i2c5 {
438	status = "okay";
439	// CPU Voltage regulators
440	regulator@48 {
441		compatible = "infineon,pxe1610";
442		reg = <0x48>;
443	};
444	regulator@4a {
445		compatible = "infineon,pxe1610";
446		reg = <0x4a>;
447	};
448	regulator@50 {
449		compatible = "infineon,pxe1610";
450		reg = <0x50>;
451	};
452	regulator@52 {
453		compatible = "infineon,pxe1610";
454		reg = <0x52>;
455	};
456	regulator@58 {
457		compatible = "infineon,pxe1610";
458		reg = <0x58>;
459	};
460	regulator@5a {
461		compatible = "infineon,pxe1610";
462		reg = <0x5a>;
463	};
464	regulator@68 {
465		compatible = "infineon,pxe1610";
466		reg = <0x68>;
467	};
468	regulator@70 {
469		compatible = "infineon,pxe1610";
470		reg = <0x70>;
471	};
472	regulator@72 {
473		compatible = "infineon,pxe1610";
474		reg = <0x72>;
475	};
476};
477
478&i2c6 {
479	status = "okay";
480	tpm@20 {
481		compatible = "infineon,slb9645tt";
482		reg = <0x20>;
483	};
484	tmp421@4e {
485		compatible = "ti,tmp421";
486		reg = <0x4e>;
487	};
488	tmp421@4f {
489		compatible = "ti,tmp421";
490		reg = <0x4f>;
491	};
492	eeprom@54 {
493		compatible = "atmel,24c64";
494		reg = <0x54>;
495		pagesize = <32>;
496	};
497};
498
499&i2c7 {
500	status = "okay";
501	//HSC, AirMax Conn A
502};
503
504&i2c8 {
505	status = "okay";
506	tmp421@1f {
507		compatible = "ti,tmp421";
508		reg = <0x1f>;
509	};
510	//Mezz Sensor SMBus
511};
512
513&i2c9 {
514	status = "okay";
515	//USB Debug Connector
516	ipmb0@10 {
517		compatible = "ipmb-dev";
518		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
519		i2c-protocol;
520	};
521};
522
523&pwm_tacho {
524	status = "okay";
525	pinctrl-names = "default";
526	pinctrl-0 = <&pinctrl_pwm0_default &pinctrl_pwm1_default>;
527	fan@0 {
528		reg = <0x00>;
529		aspeed,fan-tach-ch = /bits/ 8 <0x00>;
530	};
531
532	fan@1 {
533		reg = <0x01>;
534		aspeed,fan-tach-ch = /bits/ 8 <0x02>;
535	};
536};
537