1*497e6b37SConor Dooley// SPDX-License-Identifier: GPL-2.0
2*497e6b37SConor Dooley/*
3*497e6b37SConor Dooley * Original all-in-one devicetree:
4*497e6b37SConor Dooley * Copyright (C) 2020-2022 - Aldec
5*497e6b37SConor Dooley * Rewritten to use includes:
6*497e6b37SConor Dooley * Copyright (C) 2022 - Conor Dooley <conor.dooley@microchip.com>
7*497e6b37SConor Dooley */
8*497e6b37SConor Dooley
9*497e6b37SConor Dooley/dts-v1/;
10*497e6b37SConor Dooley
11*497e6b37SConor Dooley#include "mpfs.dtsi"
12*497e6b37SConor Dooley#include "mpfs-tysom-m-fabric.dtsi"
13*497e6b37SConor Dooley
14*497e6b37SConor Dooley/* Clock frequency (in Hz) of the rtcclk */
15*497e6b37SConor Dooley#define MTIMER_FREQ		1000000
16*497e6b37SConor Dooley
17*497e6b37SConor Dooley/ {
18*497e6b37SConor Dooley	model = "Aldec TySOM-M-MPFS250T-REV2";
19*497e6b37SConor Dooley	compatible = "aldec,tysom-m-mpfs250t-rev2", "microchip,mpfs";
20*497e6b37SConor Dooley
21*497e6b37SConor Dooley	aliases {
22*497e6b37SConor Dooley		ethernet0 = &mac0;
23*497e6b37SConor Dooley		ethernet1 = &mac1;
24*497e6b37SConor Dooley		serial0 = &mmuart0;
25*497e6b37SConor Dooley		serial1 = &mmuart1;
26*497e6b37SConor Dooley		serial2 = &mmuart2;
27*497e6b37SConor Dooley		serial3 = &mmuart3;
28*497e6b37SConor Dooley		serial4 = &mmuart4;
29*497e6b37SConor Dooley		gpio0 = &gpio0;
30*497e6b37SConor Dooley		gpio1 = &gpio2;
31*497e6b37SConor Dooley	};
32*497e6b37SConor Dooley
33*497e6b37SConor Dooley	chosen {
34*497e6b37SConor Dooley		stdout-path = "serial1:115200n8";
35*497e6b37SConor Dooley	};
36*497e6b37SConor Dooley
37*497e6b37SConor Dooley	cpus {
38*497e6b37SConor Dooley		timebase-frequency = <MTIMER_FREQ>;
39*497e6b37SConor Dooley	};
40*497e6b37SConor Dooley
41*497e6b37SConor Dooley	ddrc_cache_lo: memory@80000000 {
42*497e6b37SConor Dooley		device_type = "memory";
43*497e6b37SConor Dooley		reg = <0x0 0x80000000 0x0 0x30000000>;
44*497e6b37SConor Dooley		status = "okay";
45*497e6b37SConor Dooley	};
46*497e6b37SConor Dooley
47*497e6b37SConor Dooley	ddrc_cache_hi: memory@1000000000 {
48*497e6b37SConor Dooley		device_type = "memory";
49*497e6b37SConor Dooley		reg = <0x10 0x00000000 0x0 0x40000000>;
50*497e6b37SConor Dooley		status = "okay";
51*497e6b37SConor Dooley	};
52*497e6b37SConor Dooley
53*497e6b37SConor Dooley	leds {
54*497e6b37SConor Dooley		compatible = "gpio-leds";
55*497e6b37SConor Dooley		status = "okay";
56*497e6b37SConor Dooley
57*497e6b37SConor Dooley		led0 {
58*497e6b37SConor Dooley			gpios = <&gpio1 23 1>;
59*497e6b37SConor Dooley			default-state = "on";
60*497e6b37SConor Dooley			linux,default-trigger = "heartbeat";
61*497e6b37SConor Dooley		};
62*497e6b37SConor Dooley	};
63*497e6b37SConor Dooley};
64*497e6b37SConor Dooley
65*497e6b37SConor Dooley&i2c0 {
66*497e6b37SConor Dooley	status = "okay";
67*497e6b37SConor Dooley};
68*497e6b37SConor Dooley
69*497e6b37SConor Dooley&i2c1 {
70*497e6b37SConor Dooley	status = "okay";
71*497e6b37SConor Dooley	hwmon: hwmon@45 {
72*497e6b37SConor Dooley		status = "okay";
73*497e6b37SConor Dooley		compatible = "ti,ina219";
74*497e6b37SConor Dooley		reg = <0x45>;
75*497e6b37SConor Dooley		shunt-resistor = <2000>;
76*497e6b37SConor Dooley	};
77*497e6b37SConor Dooley};
78*497e6b37SConor Dooley
79*497e6b37SConor Dooley&gpio1 {
80*497e6b37SConor Dooley	interrupts = <27>, <28>, <29>, <30>,
81*497e6b37SConor Dooley		     <31>, <32>, <33>, <47>,
82*497e6b37SConor Dooley		     <35>, <36>, <37>, <38>,
83*497e6b37SConor Dooley		     <39>, <40>, <41>, <42>,
84*497e6b37SConor Dooley		     <43>, <44>, <45>, <46>,
85*497e6b37SConor Dooley		     <47>, <48>, <49>, <50>;
86*497e6b37SConor Dooley	status = "okay";
87*497e6b37SConor Dooley};
88*497e6b37SConor Dooley
89*497e6b37SConor Dooley&mac0 {
90*497e6b37SConor Dooley	status = "okay";
91*497e6b37SConor Dooley	phy-mode = "gmii";
92*497e6b37SConor Dooley	phy-handle = <&phy0>;
93*497e6b37SConor Dooley
94*497e6b37SConor Dooley};
95*497e6b37SConor Dooley
96*497e6b37SConor Dooley&mac1 {
97*497e6b37SConor Dooley	status = "okay";
98*497e6b37SConor Dooley	phy-mode = "gmii";
99*497e6b37SConor Dooley	phy-handle = <&phy1>;
100*497e6b37SConor Dooley	phy1: ethernet-phy@1 {
101*497e6b37SConor Dooley		reg = <1>;
102*497e6b37SConor Dooley	};
103*497e6b37SConor Dooley	phy0: ethernet-phy@0 {
104*497e6b37SConor Dooley		reg = <0>;
105*497e6b37SConor Dooley	};
106*497e6b37SConor Dooley};
107*497e6b37SConor Dooley
108*497e6b37SConor Dooley&mbox {
109*497e6b37SConor Dooley	status = "okay";
110*497e6b37SConor Dooley};
111*497e6b37SConor Dooley
112*497e6b37SConor Dooley&mmc {
113*497e6b37SConor Dooley	max-frequency = <200000000>;
114*497e6b37SConor Dooley	cap-mmc-highspeed;
115*497e6b37SConor Dooley	cap-sd-highspeed;
116*497e6b37SConor Dooley	no-1-8-v;
117*497e6b37SConor Dooley	disable-wp;
118*497e6b37SConor Dooley	status = "okay";
119*497e6b37SConor Dooley};
120*497e6b37SConor Dooley
121*497e6b37SConor Dooley&mmuart1 {
122*497e6b37SConor Dooley	status = "okay";
123*497e6b37SConor Dooley};
124*497e6b37SConor Dooley
125*497e6b37SConor Dooley&mmuart2 {
126*497e6b37SConor Dooley	status = "okay";
127*497e6b37SConor Dooley};
128*497e6b37SConor Dooley
129*497e6b37SConor Dooley&mmuart3 {
130*497e6b37SConor Dooley	status = "okay";
131*497e6b37SConor Dooley};
132*497e6b37SConor Dooley
133*497e6b37SConor Dooley&mmuart4 {
134*497e6b37SConor Dooley	status = "okay";
135*497e6b37SConor Dooley};
136*497e6b37SConor Dooley
137*497e6b37SConor Dooley&refclk {
138*497e6b37SConor Dooley	clock-frequency = <125000000>;
139*497e6b37SConor Dooley};
140*497e6b37SConor Dooley
141*497e6b37SConor Dooley&rtc {
142*497e6b37SConor Dooley	status = "okay";
143*497e6b37SConor Dooley};
144*497e6b37SConor Dooley
145*497e6b37SConor Dooley&spi0 {
146*497e6b37SConor Dooley	status = "okay";
147*497e6b37SConor Dooley};
148*497e6b37SConor Dooley
149*497e6b37SConor Dooley&spi1 {
150*497e6b37SConor Dooley	status = "okay";
151*497e6b37SConor Dooley	flash@0 {
152*497e6b37SConor Dooley		compatible = "micron,n25q128a11", "jedec,spi-nor";
153*497e6b37SConor Dooley		reg = <0x0>;
154*497e6b37SConor Dooley		spi-max-frequency = <10000000>;
155*497e6b37SConor Dooley	};
156*497e6b37SConor Dooley};
157*497e6b37SConor Dooley
158*497e6b37SConor Dooley&syscontroller {
159*497e6b37SConor Dooley	status = "okay";
160*497e6b37SConor Dooley};
161*497e6b37SConor Dooley
162*497e6b37SConor Dooley&usb {
163*497e6b37SConor Dooley	status = "okay";
164*497e6b37SConor Dooley	dr_mode = "host";
165*497e6b37SConor Dooley};
166