1// SPDX-License-Identifier: GPL-2.0+
2/dts-v1/;
3#include "aspeed-g5.dtsi"
4#include <dt-bindings/gpio/aspeed-gpio.h>
5#include <dt-bindings/leds/leds-pca955x.h>
6
7/ {
8	model = "Mowgli BMC";
9	compatible = "ibm,mowgli-bmc", "aspeed,ast2500";
10
11
12	chosen {
13		stdout-path = &uart5;
14		bootargs = "console=ttyS4,115200 earlyprintk";
15	};
16
17	memory@80000000 {
18		reg = <0x80000000 0x20000000>;
19	};
20
21	reserved-memory {
22		#address-cells = <1>;
23		#size-cells = <1>;
24		ranges;
25
26		flash_memory: region@98000000 {
27			no-map;
28			reg = <0x98000000 0x04000000>; /* 64M */
29		};
30
31		gfx_memory: framebuffer {
32			size = <0x01000000>;
33			alignment = <0x01000000>;
34			compatible = "shared-dma-pool";
35			reusable;
36		};
37
38		video_engine_memory: jpegbuffer {
39			size = <0x02000000>;
40			alignment = <0x01000000>;
41			compatible = "shared-dma-pool";
42			reusable;
43		};
44	};
45
46	gpio-keys {
47		compatible = "gpio-keys";
48
49		air-water {
50			label = "air-water";
51			gpios = <&gpio ASPEED_GPIO(F, 6) GPIO_ACTIVE_LOW>;
52			linux,code = <ASPEED_GPIO(F, 6)>;
53		};
54
55		checkstop {
56			label = "checkstop";
57			gpios = <&gpio ASPEED_GPIO(J, 2) GPIO_ACTIVE_LOW>;
58			linux,code = <ASPEED_GPIO(J, 2)>;
59		};
60
61		ps0-presence {
62			label = "ps0-presence";
63			gpios = <&gpio ASPEED_GPIO(Z, 2) GPIO_ACTIVE_LOW>;
64			linux,code = <ASPEED_GPIO(Z, 2)>;
65		};
66
67		ps1-presence {
68			label = "ps1-presence";
69			gpios = <&gpio ASPEED_GPIO(Z, 0) GPIO_ACTIVE_LOW>;
70			linux,code = <ASPEED_GPIO(Z, 0)>;
71		};
72
73		id-button {
74			label = "id-button";
75			gpios = <&gpio ASPEED_GPIO(F, 1) GPIO_ACTIVE_LOW>;
76			linux,code = <ASPEED_GPIO(F, 1)>;
77		};
78	};
79
80	gpio-keys-polled {
81		compatible = "gpio-keys-polled";
82		poll-interval = <1000>;
83
84		fan0-presence {
85			label = "fan0-presence";
86			gpios = <&pca9552 9 GPIO_ACTIVE_LOW>;
87			linux,code = <9>;
88		};
89
90		fan1-presence {
91			label = "fan1-presence";
92			gpios = <&pca9552 10 GPIO_ACTIVE_LOW>;
93			linux,code = <10>;
94		};
95
96		fan2-presence {
97			label = "fan2-presence";
98			gpios = <&pca9552 11 GPIO_ACTIVE_LOW>;
99			linux,code = <11>;
100		};
101
102		fan3-presence {
103			label = "fan3-presence";
104			gpios = <&pca9552 12 GPIO_ACTIVE_LOW>;
105			linux,code = <12>;
106		};
107
108		fan4-presence {
109			label = "fan4-presence";
110			gpios = <&pca9552 13 GPIO_ACTIVE_LOW>;
111			linux,code = <13>;
112		};
113	};
114
115	leds {
116		compatible = "gpio-leds";
117
118		front-fault {
119			retain-state-shutdown;
120			default-state = "keep";
121			gpios = <&gpio ASPEED_GPIO(AA, 0) GPIO_ACTIVE_LOW>;
122		};
123
124		power-button {
125			retain-state-shutdown;
126			default-state = "keep";
127			gpios = <&gpio ASPEED_GPIO(AA, 1) GPIO_ACTIVE_LOW>;
128		};
129
130		front-id {
131			retain-state-shutdown;
132			default-state = "keep";
133			gpios = <&gpio ASPEED_GPIO(AA, 2) GPIO_ACTIVE_LOW>;
134		};
135
136		fan0 {
137			retain-state-shutdown;
138			default-state = "keep";
139			gpios = <&pca9552 0 GPIO_ACTIVE_LOW>;
140		};
141
142		fan1 {
143			retain-state-shutdown;
144			default-state = "keep";
145			gpios = <&pca9552 1 GPIO_ACTIVE_LOW>;
146		};
147
148		fan2 {
149			retain-state-shutdown;
150			default-state = "keep";
151			gpios = <&pca9552 2 GPIO_ACTIVE_LOW>;
152		};
153
154		fan3 {
155			retain-state-shutdown;
156			default-state = "keep";
157			gpios = <&pca9552 3 GPIO_ACTIVE_LOW>;
158		};
159
160		fan4 {
161			retain-state-shutdown;
162			default-state = "keep";
163			gpios = <&pca9552 4 GPIO_ACTIVE_LOW>;
164		};
165	};
166
167	fsi: gpio-fsi {
168		compatible = "fsi-master-gpio", "fsi-master";
169		#address-cells = <2>;
170		#size-cells = <0>;
171		no-gpio-delays;
172
173		clock-gpios = <&gpio ASPEED_GPIO(E, 6) GPIO_ACTIVE_HIGH>;
174		data-gpios = <&gpio ASPEED_GPIO(E, 7) GPIO_ACTIVE_HIGH>;
175		mux-gpios = <&gpio ASPEED_GPIO(R, 2) GPIO_ACTIVE_HIGH>;
176		enable-gpios = <&gpio ASPEED_GPIO(D, 0) GPIO_ACTIVE_HIGH>;
177		trans-gpios = <&gpio ASPEED_GPIO(E, 5) GPIO_ACTIVE_HIGH>;
178	};
179
180	iio-hwmon-12v {
181		compatible = "iio-hwmon";
182		io-channels = <&adc 0>;
183	};
184
185	iio-hwmon-5v {
186		compatible = "iio-hwmon";
187		io-channels = <&adc 1>;
188	};
189
190	iio-hwmon-3v {
191		compatible = "iio-hwmon";
192		io-channels = <&adc 2>;
193	};
194
195	iio-hwmon-vdd {
196		compatible = "iio-hwmon";
197		io-channels = <&adc 3>;
198	};
199
200	iio-hwmon-vcs {
201		compatible = "iio-hwmon";
202		io-channels = <&adc 5>;
203	};
204
205	iio-hwmon-vdn {
206		compatible = "iio-hwmon";
207		io-channels = <&adc 7>;
208	};
209
210	iio-hwmon-vio {
211		compatible = "iio-hwmon";
212		io-channels = <&adc 9>;
213	};
214
215	iio-hwmon-vddra {
216		compatible = "iio-hwmon";
217		io-channels = <&adc 11>;
218	};
219
220	iio-hwmon-battery {
221		compatible = "iio-hwmon";
222		io-channels = <&adc 12>;
223	};
224
225	iio-hwmon-vddrb {
226		compatible = "iio-hwmon";
227		io-channels = <&adc 13>;
228	};
229};
230
231&pwm_tacho {
232	status = "okay";
233	pinctrl-names = "default";
234	pinctrl-0 = <&pinctrl_pwm0_default &pinctrl_pwm1_default
235		&pinctrl_pwm2_default &pinctrl_pwm3_default
236		&pinctrl_pwm4_default>;
237
238	fan@0 {
239		reg = <0x00>;
240		aspeed,fan-tach-ch = /bits/ 8 <0x00>;
241	};
242
243	fan@1 {
244		reg = <0x01>;
245		aspeed,fan-tach-ch = /bits/ 8 <0x01>;
246	};
247
248	fan@2 {
249		reg = <0x02>;
250		aspeed,fan-tach-ch = /bits/ 8 <0x02>;
251	};
252
253	fan@3 {
254		reg = <0x03>;
255		aspeed,fan-tach-ch = /bits/ 8 <0x03>;
256	};
257
258	fan@4 {
259		reg = <0x04>;
260		aspeed,fan-tach-ch = /bits/ 8 <0x04>;
261	};
262
263	fan@5 {
264		reg = <0x00>;
265		aspeed,fan-tach-ch = /bits/ 8 <0x05>;
266	};
267
268	fan@6 {
269		reg = <0x01>;
270		aspeed,fan-tach-ch = /bits/ 8 <0x06>;
271	};
272
273	fan@7 {
274		reg = <0x02>;
275		aspeed,fan-tach-ch = /bits/ 8 <0x07>;
276	};
277
278	fan@8 {
279		reg = <0x03>;
280		aspeed,fan-tach-ch = /bits/ 8 <0x08>;
281	};
282
283	fan@9 {
284		reg = <0x04>;
285		aspeed,fan-tach-ch = /bits/ 8 <0x09>;
286	};
287};
288
289&fmc {
290	status = "okay";
291	flash@0 {
292		status = "okay";
293		label = "bmc";
294		m25p,fast-read;
295		spi-max-frequency = <50000000>;
296		partitions {
297			#address-cells = < 1 >;
298			#size-cells = < 1 >;
299			compatible = "fixed-partitions";
300			u-boot@0 {
301				reg = < 0 0x60000 >;
302				label = "u-boot";
303			};
304			u-boot-env@60000 {
305				reg = < 0x60000 0x20000 >;
306				label = "u-boot-env";
307			};
308			obmc-ubi@80000 {
309				reg = < 0x80000 0x1F80000 >;
310				label = "obmc-ubi";
311			};
312		};
313	};
314	flash@1 {
315		status = "okay";
316		label = "alt-bmc";
317		m25p,fast-read;
318		spi-max-frequency = <50000000>;
319		partitions {
320			#address-cells = < 1 >;
321			#size-cells = < 1 >;
322			compatible = "fixed-partitions";
323			u-boot@0 {
324				reg = < 0 0x60000 >;
325				label = "alt-u-boot";
326			};
327			u-boot-env@60000 {
328				reg = < 0x60000 0x20000 >;
329				label = "alt-u-boot-env";
330			};
331			obmc-ubi@80000 {
332				reg = < 0x80000 0x1F80000 >;
333				label = "alt-obmc-ubi";
334			};
335		};
336	};
337};
338
339&spi1 {
340	status = "okay";
341	pinctrl-names = "default";
342	pinctrl-0 = <&pinctrl_spi1_default>;
343
344	flash@0 {
345		status = "okay";
346		label = "pnor";
347		m25p,fast-read;
348		spi-max-frequency = <100000000>;
349	};
350};
351
352&lpc_ctrl {
353	status = "okay";
354	memory-region = <&flash_memory>;
355	flash = <&spi1>;
356};
357
358&uart1 {
359	/* Rear RS-232 connector */
360	status = "okay";
361
362	pinctrl-names = "default";
363	pinctrl-0 = <&pinctrl_txd1_default
364			&pinctrl_rxd1_default
365			&pinctrl_nrts1_default
366			&pinctrl_ndtr1_default
367			&pinctrl_ndsr1_default
368			&pinctrl_ncts1_default
369			&pinctrl_ndcd1_default
370			&pinctrl_nri1_default>;
371};
372
373&uart2 {
374	/* APSS */
375	status = "okay";
376
377	pinctrl-names = "default";
378	pinctrl-0 = <&pinctrl_txd2_default &pinctrl_rxd2_default>;
379};
380
381&uart5 {
382	status = "okay";
383};
384
385&mac0 {
386	status = "okay";
387
388	pinctrl-names = "default";
389	pinctrl-0 = <&pinctrl_rmii1_default>;
390	clocks = <&syscon ASPEED_CLK_GATE_MAC1CLK>,
391		 <&syscon ASPEED_CLK_MAC1RCLK>;
392	clock-names = "MACCLK", "RCLK";
393	use-ncsi;
394};
395
396&mac1 {
397	status = "okay";
398
399	pinctrl-names = "default";
400	pinctrl-0 = <&pinctrl_rgmii2_default &pinctrl_mdio2_default>;
401};
402
403&i2c0 {
404	status = "okay";
405
406	tmp275@48 {
407		compatible = "ti,tmp275";
408		reg = <0x48>;
409	};
410};
411
412&i2c1 {
413	status = "disabled";
414};
415
416&i2c2 {
417	status = "okay";
418
419	/* CPU MFG CONN */
420
421};
422
423&i2c3 {
424	status = "okay";
425
426	/* APSS */
427	/* CPLD */
428
429	/* PCA9516 (repeater) ->
430	 *    CLK Buffer 9FGS9092
431	 *    Power Supply 0
432	 *    Power Supply 1
433	 *    PCA 9552 LED
434	 */
435
436	pca9552: pca9552@60 {
437		compatible = "nxp,pca9552";
438		reg = <0x60>;
439		#address-cells = <1>;
440		#size-cells = <0>;
441		gpio-controller;
442		#gpio-cells = <2>;
443
444		gpio@0 {
445			reg = <0>;
446			type = <PCA955X_TYPE_GPIO>;
447		};
448		gpio@1 {
449			reg = <1>;
450			type = <PCA955X_TYPE_GPIO>;
451		};
452		gpio@2 {
453			reg = <2>;
454			type = <PCA955X_TYPE_GPIO>;
455		};
456		gpio@3 {
457			reg = <3>;
458			type = <PCA955X_TYPE_GPIO>;
459		};
460		gpio@4 {
461			reg = <4>;
462			type = <PCA955X_TYPE_GPIO>;
463		};
464		gpio@5 {
465			reg = <5>;
466			type = <PCA955X_TYPE_GPIO>;
467		};
468		gpio@6 {
469			reg = <6>;
470			type = <PCA955X_TYPE_GPIO>;
471		};
472		gpio@7 {
473			reg = <7>;
474			type = <PCA955X_TYPE_GPIO>;
475		};
476		gpio@8 {
477			reg = <8>;
478			type = <PCA955X_TYPE_GPIO>;
479		};
480		gpio@9 {
481			reg = <9>;
482			type = <PCA955X_TYPE_GPIO>;
483		};
484		gpio@10 {
485			reg = <10>;
486			type = <PCA955X_TYPE_GPIO>;
487		};
488		gpio@11 {
489			reg = <11>;
490			type = <PCA955X_TYPE_GPIO>;
491		};
492		gpio@12 {
493			reg = <12>;
494			type = <PCA955X_TYPE_GPIO>;
495		};
496		gpio@13 {
497			reg = <13>;
498			type = <PCA955X_TYPE_GPIO>;
499		};
500		gpio@14 {
501			reg = <14>;
502			type = <PCA955X_TYPE_GPIO>;
503		};
504		gpio@15 {
505			reg = <15>;
506			type = <PCA955X_TYPE_GPIO>;
507		};
508	};
509
510	power-supply@68 {
511		compatible = "ibm,cffps1";
512		reg = <0x68>;
513	};
514
515	power-supply@69 {
516		compatible = "ibm,cffps1";
517		reg = <0x69>;
518	};
519};
520
521&i2c4 {
522	status = "okay";
523
524	/* CP0 VDD & VCS : IR35221 */
525	/* CP0 VDN & VIO : IR35221 */
526	/* CP0 VDDR : IR35221 */
527
528	ir35221@28 {
529		compatible = "infineon,ir35221";
530		reg = <0x28>;
531	};
532
533	ir35221@29 {
534		compatible = "infineon,ir35221";
535		reg = <0x29>;
536	};
537
538	ir35221@2d {
539		compatible = "infineon,ir35221";
540		reg = <0x2d>;
541	};
542
543};
544
545&i2c5 {
546	status = "disabled";
547};
548
549&i2c6 {
550	status = "disabled";
551};
552
553&i2c7 {
554	status = "disabled";
555};
556
557&i2c8 {
558	status = "okay";
559
560	eeprom@50 {
561		compatible = "atmel,24c64";
562		reg = <0x50>;
563	};
564};
565
566&i2c9 {
567	status = "okay";
568
569	/* PCIe G3 x16 slot */
570};
571
572&i2c10 {
573	status = "disabled";
574};
575
576&i2c11 {
577	status = "okay";
578
579	/* CPLD */
580	/* TPM */
581	/* RTC RX8900CE */
582	/* TMP275A */
583	/* TMP275A */
584
585	tmp275@48 {
586		compatible = "ti,tmp275";
587		reg = <0x48>;
588	};
589
590	tmp275@49 {
591		compatible = "ti,tmp275";
592		reg = <0x49>;
593	};
594
595};
596
597&i2c12 {
598	status = "disabled";
599};
600
601&i2c13 {
602	status = "disabled";
603};
604
605&vuart {
606	status = "okay";
607};
608
609&gfx {
610	status = "okay";
611	memory-region = <&gfx_memory>;
612};
613
614&adc {
615	status = "okay";
616	pinctrl-names = "default";
617	pinctrl-0 = <&pinctrl_adc0_default
618			&pinctrl_adc1_default
619			&pinctrl_adc2_default
620			&pinctrl_adc3_default
621			&pinctrl_adc4_default
622			&pinctrl_adc5_default
623			&pinctrl_adc6_default
624			&pinctrl_adc7_default
625			&pinctrl_adc8_default
626			&pinctrl_adc9_default
627			&pinctrl_adc10_default
628			&pinctrl_adc11_default
629			&pinctrl_adc12_default
630			&pinctrl_adc13_default
631			&pinctrl_adc14_default
632			&pinctrl_adc15_default>;
633};
634
635&wdt1 {
636	aspeed,reset-type = "none";
637	aspeed,external-signal;
638	aspeed,ext-push-pull;
639	aspeed,ext-active-high;
640
641	pinctrl-names = "default";
642	pinctrl-0 = <&pinctrl_wdtrst1_default>;
643};
644
645&wdt2 {
646	aspeed,alt-boot;
647};
648
649&ibt {
650	status = "okay";
651};
652
653&vhub {
654	status = "okay";
655};
656
657&video {
658	status = "okay";
659	memory-region = <&video_engine_memory>;
660};
661
662#include "ibm-power9-dual.dtsi"
663