xref: /openbmc/linux/arch/riscv/boot/dts/microchip/mpfs-m100pfsevp.dts (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
1*d4916664SConor Dooley// SPDX-License-Identifier: GPL-2.0
2*d4916664SConor Dooley/*
3*d4916664SConor Dooley * Original all-in-one devicetree:
4*d4916664SConor Dooley * Copyright (C) 2021-2022 - Wolfgang Grandegger <wg@aries-embedded.de>
5*d4916664SConor Dooley * Rewritten to use includes:
6*d4916664SConor Dooley * Copyright (C) 2022 - Conor Dooley <conor.dooley@microchip.com>
7*d4916664SConor Dooley */
8*d4916664SConor Dooley/dts-v1/;
9*d4916664SConor Dooley
10*d4916664SConor Dooley#include "mpfs.dtsi"
11*d4916664SConor Dooley#include "mpfs-m100pfs-fabric.dtsi"
12*d4916664SConor Dooley
13*d4916664SConor Dooley/* Clock frequency (in Hz) of the rtcclk */
14*d4916664SConor Dooley#define MTIMER_FREQ	1000000
15*d4916664SConor Dooley
16*d4916664SConor Dooley/ {
17*d4916664SConor Dooley	model = "Aries Embedded M100PFEVPS";
18*d4916664SConor Dooley	compatible = "aries,m100pfsevp", "microchip,mpfs";
19*d4916664SConor Dooley
20*d4916664SConor Dooley	aliases {
21*d4916664SConor Dooley		ethernet0 = &mac0;
22*d4916664SConor Dooley		ethernet1 = &mac1;
23*d4916664SConor Dooley		serial0 = &mmuart0;
24*d4916664SConor Dooley		serial1 = &mmuart1;
25*d4916664SConor Dooley		serial2 = &mmuart2;
26*d4916664SConor Dooley		serial3 = &mmuart3;
27*d4916664SConor Dooley		serial4 = &mmuart4;
28*d4916664SConor Dooley		gpio0 = &gpio0;
29*d4916664SConor Dooley		gpio1 = &gpio2;
30*d4916664SConor Dooley	};
31*d4916664SConor Dooley
32*d4916664SConor Dooley	chosen {
33*d4916664SConor Dooley		stdout-path = "serial1:115200n8";
34*d4916664SConor Dooley	};
35*d4916664SConor Dooley
36*d4916664SConor Dooley	cpus {
37*d4916664SConor Dooley		timebase-frequency = <MTIMER_FREQ>;
38*d4916664SConor Dooley	};
39*d4916664SConor Dooley
40*d4916664SConor Dooley	ddrc_cache_lo: memory@80000000 {
41*d4916664SConor Dooley		device_type = "memory";
42*d4916664SConor Dooley		reg = <0x0 0x80000000 0x0 0x40000000>;
43*d4916664SConor Dooley	};
44*d4916664SConor Dooley	ddrc_cache_hi: memory@1040000000 {
45*d4916664SConor Dooley		device_type = "memory";
46*d4916664SConor Dooley		reg = <0x10 0x40000000 0x0 0x40000000>;
47*d4916664SConor Dooley	};
48*d4916664SConor Dooley};
49*d4916664SConor Dooley
50*d4916664SConor Dooley&can0 {
51*d4916664SConor Dooley	status = "okay";
52*d4916664SConor Dooley};
53*d4916664SConor Dooley
54*d4916664SConor Dooley&i2c0 {
55*d4916664SConor Dooley	status = "okay";
56*d4916664SConor Dooley};
57*d4916664SConor Dooley
58*d4916664SConor Dooley&i2c1 {
59*d4916664SConor Dooley	status = "okay";
60*d4916664SConor Dooley};
61*d4916664SConor Dooley
62*d4916664SConor Dooley&gpio0 {
63*d4916664SConor Dooley	interrupts = <13>, <14>, <15>, <16>,
64*d4916664SConor Dooley		     <17>, <18>, <19>, <20>,
65*d4916664SConor Dooley		     <21>, <22>, <23>, <24>,
66*d4916664SConor Dooley		     <25>, <26>;
67*d4916664SConor Dooley	ngpios = <14>;
68*d4916664SConor Dooley	status = "okay";
69*d4916664SConor Dooley
70*d4916664SConor Dooley	pmic-irq-hog {
71*d4916664SConor Dooley		gpio-hog;
72*d4916664SConor Dooley		gpios = <13 0>;
73*d4916664SConor Dooley		input;
74*d4916664SConor Dooley	};
75*d4916664SConor Dooley
76*d4916664SConor Dooley	/* Set to low for eMMC, high for SD-card */
77*d4916664SConor Dooley	mmc-sel-hog {
78*d4916664SConor Dooley		gpio-hog;
79*d4916664SConor Dooley		gpios = <12 0>;
80*d4916664SConor Dooley		output-high;
81*d4916664SConor Dooley	};
82*d4916664SConor Dooley};
83*d4916664SConor Dooley
84*d4916664SConor Dooley&gpio2 {
85*d4916664SConor Dooley	interrupts = <13>, <14>, <15>, <16>,
86*d4916664SConor Dooley		     <17>, <18>, <19>, <20>,
87*d4916664SConor Dooley		     <21>, <22>, <23>, <24>,
88*d4916664SConor Dooley		     <25>, <26>, <27>, <28>,
89*d4916664SConor Dooley		     <29>, <30>, <31>, <32>,
90*d4916664SConor Dooley		     <33>, <34>, <35>, <36>,
91*d4916664SConor Dooley		     <37>, <38>, <39>, <40>,
92*d4916664SConor Dooley		     <41>, <42>, <43>, <44>;
93*d4916664SConor Dooley	status = "okay";
94*d4916664SConor Dooley};
95*d4916664SConor Dooley
96*d4916664SConor Dooley&mac0 {
97*d4916664SConor Dooley	status = "okay";
98*d4916664SConor Dooley	phy-mode = "gmii";
99*d4916664SConor Dooley	phy-handle = <&phy0>;
100*d4916664SConor Dooley	phy0: ethernet-phy@0 {
101*d4916664SConor Dooley		reg = <0>;
102*d4916664SConor Dooley	};
103*d4916664SConor Dooley};
104*d4916664SConor Dooley
105*d4916664SConor Dooley&mac1 {
106*d4916664SConor Dooley	status = "okay";
107*d4916664SConor Dooley	phy-mode = "gmii";
108*d4916664SConor Dooley	phy-handle = <&phy1>;
109*d4916664SConor Dooley	phy1: ethernet-phy@0 {
110*d4916664SConor Dooley		reg = <0>;
111*d4916664SConor Dooley	};
112*d4916664SConor Dooley};
113*d4916664SConor Dooley
114*d4916664SConor Dooley&mbox {
115*d4916664SConor Dooley	status = "okay";
116*d4916664SConor Dooley};
117*d4916664SConor Dooley
118*d4916664SConor Dooley&mmc {
119*d4916664SConor Dooley	max-frequency = <50000000>;
120*d4916664SConor Dooley	bus-width = <4>;
121*d4916664SConor Dooley	cap-mmc-highspeed;
122*d4916664SConor Dooley	cap-sd-highspeed;
123*d4916664SConor Dooley	no-1-8-v;
124*d4916664SConor Dooley	sd-uhs-sdr12;
125*d4916664SConor Dooley	sd-uhs-sdr25;
126*d4916664SConor Dooley	sd-uhs-sdr50;
127*d4916664SConor Dooley	sd-uhs-sdr104;
128*d4916664SConor Dooley	disable-wp;
129*d4916664SConor Dooley	status = "okay";
130*d4916664SConor Dooley};
131*d4916664SConor Dooley
132*d4916664SConor Dooley&mmuart1 {
133*d4916664SConor Dooley	status = "okay";
134*d4916664SConor Dooley};
135*d4916664SConor Dooley
136*d4916664SConor Dooley&mmuart2 {
137*d4916664SConor Dooley	status = "okay";
138*d4916664SConor Dooley};
139*d4916664SConor Dooley
140*d4916664SConor Dooley&mmuart3 {
141*d4916664SConor Dooley	status = "okay";
142*d4916664SConor Dooley};
143*d4916664SConor Dooley
144*d4916664SConor Dooley&mmuart4 {
145*d4916664SConor Dooley	status = "okay";
146*d4916664SConor Dooley};
147*d4916664SConor Dooley
148*d4916664SConor Dooley&pcie {
149*d4916664SConor Dooley	status = "okay";
150*d4916664SConor Dooley};
151*d4916664SConor Dooley
152*d4916664SConor Dooley&qspi {
153*d4916664SConor Dooley	status = "okay";
154*d4916664SConor Dooley};
155*d4916664SConor Dooley
156*d4916664SConor Dooley&refclk {
157*d4916664SConor Dooley	clock-frequency = <125000000>;
158*d4916664SConor Dooley};
159*d4916664SConor Dooley
160*d4916664SConor Dooley&rtc {
161*d4916664SConor Dooley	status = "okay";
162*d4916664SConor Dooley};
163*d4916664SConor Dooley
164*d4916664SConor Dooley&spi0 {
165*d4916664SConor Dooley	status = "okay";
166*d4916664SConor Dooley};
167*d4916664SConor Dooley
168*d4916664SConor Dooley&spi1 {
169*d4916664SConor Dooley	status = "okay";
170*d4916664SConor Dooley};
171*d4916664SConor Dooley
172*d4916664SConor Dooley&syscontroller {
173*d4916664SConor Dooley	status = "okay";
174*d4916664SConor Dooley};
175*d4916664SConor Dooley
176*d4916664SConor Dooley&usb {
177*d4916664SConor Dooley	status = "okay";
178*d4916664SConor Dooley	dr_mode = "host";
179*d4916664SConor Dooley};
180