1// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2/* Copyright (c) 2020 SiFive, Inc */
3
4#include "fu740-c000.dtsi"
5#include <dt-bindings/gpio/gpio.h>
6#include <dt-bindings/interrupt-controller/irq.h>
7
8/* Clock frequency (in Hz) of the PCB crystal for rtcclk */
9#define RTCCLK_FREQ		1000000
10
11/ {
12	model = "SiFive HiFive Unmatched A00";
13	compatible = "sifive,hifive-unmatched-a00", "sifive,fu740-c000",
14		     "sifive,fu740";
15
16	chosen {
17		stdout-path = "serial0";
18	};
19
20	cpus {
21		timebase-frequency = <RTCCLK_FREQ>;
22	};
23
24	memory@80000000 {
25		device_type = "memory";
26		reg = <0x0 0x80000000 0x4 0x00000000>;
27	};
28
29	hfclk: hfclk {
30		#clock-cells = <0>;
31		compatible = "fixed-clock";
32		clock-frequency = <26000000>;
33		clock-output-names = "hfclk";
34	};
35
36	rtcclk: rtcclk {
37		#clock-cells = <0>;
38		compatible = "fixed-clock";
39		clock-frequency = <RTCCLK_FREQ>;
40		clock-output-names = "rtcclk";
41	};
42};
43
44&uart0 {
45	status = "okay";
46};
47
48&uart1 {
49	status = "okay";
50};
51
52&i2c0 {
53	status = "okay";
54
55	temperature-sensor@4c {
56		compatible = "ti,tmp451";
57		reg = <0x4c>;
58		vcc-supply = <&vdd_bpro>;
59		interrupt-parent = <&gpio>;
60		interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
61	};
62
63	eeprom@54 {
64		compatible = "microchip,24c02", "atmel,24c02";
65		reg = <0x54>;
66		vcc-supply = <&vdd_bpro>;
67		label = "board-id";
68		pagesize = <16>;
69		read-only;
70		size = <256>;
71	};
72
73	pmic@58 {
74		compatible = "dlg,da9063";
75		reg = <0x58>;
76		interrupt-parent = <&gpio>;
77		interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
78		interrupt-controller;
79
80		onkey {
81			compatible = "dlg,da9063-onkey";
82		};
83
84		rtc {
85			compatible = "dlg,da9063-rtc";
86		};
87
88		wdt {
89			compatible = "dlg,da9063-watchdog";
90		};
91
92		regulators {
93			vdd_bcore: bcores-merged {
94				regulator-min-microvolt = <1050000>;
95				regulator-max-microvolt = <1050000>;
96				regulator-min-microamp = <4800000>;
97				regulator-max-microamp = <4800000>;
98				regulator-always-on;
99			};
100
101			vdd_bpro: bpro {
102				regulator-min-microvolt = <1800000>;
103				regulator-max-microvolt = <1800000>;
104				regulator-min-microamp = <2400000>;
105				regulator-max-microamp = <2400000>;
106				regulator-always-on;
107			};
108
109			vdd_bperi: bperi {
110				regulator-min-microvolt = <1060000>;
111				regulator-max-microvolt = <1060000>;
112				regulator-min-microamp = <1500000>;
113				regulator-max-microamp = <1500000>;
114				regulator-always-on;
115			};
116
117			vdd_bmem_bio: bmem-bio-merged {
118				regulator-min-microvolt = <1200000>;
119				regulator-max-microvolt = <1200000>;
120				regulator-min-microamp = <3000000>;
121				regulator-max-microamp = <3000000>;
122				regulator-always-on;
123			};
124
125			vdd_ldo1: ldo1 {
126				regulator-min-microvolt = <1800000>;
127				regulator-max-microvolt = <1800000>;
128				regulator-always-on;
129			};
130
131			vdd_ldo2: ldo2 {
132				regulator-min-microvolt = <1800000>;
133				regulator-max-microvolt = <1800000>;
134				regulator-always-on;
135			};
136
137			vdd_ldo3: ldo3 {
138				regulator-min-microvolt = <3300000>;
139				regulator-max-microvolt = <3300000>;
140				regulator-always-on;
141			};
142
143			vdd_ldo4: ldo4 {
144				regulator-min-microvolt = <2500000>;
145				regulator-max-microvolt = <2500000>;
146				regulator-always-on;
147			};
148
149			vdd_ldo5: ldo5 {
150				regulator-min-microvolt = <3300000>;
151				regulator-max-microvolt = <3300000>;
152				regulator-always-on;
153			};
154
155			vdd_ldo6: ldo6 {
156				regulator-min-microvolt = <1800000>;
157				regulator-max-microvolt = <1800000>;
158				regulator-always-on;
159			};
160
161			vdd_ldo7: ldo7 {
162				regulator-min-microvolt = <3300000>;
163				regulator-max-microvolt = <3300000>;
164				regulator-always-on;
165			};
166
167			vdd_ldo8: ldo8 {
168				regulator-min-microvolt = <3300000>;
169				regulator-max-microvolt = <3300000>;
170				regulator-always-on;
171			};
172
173			vdd_ld09: ldo9 {
174				regulator-min-microvolt = <1050000>;
175				regulator-max-microvolt = <1050000>;
176				regulator-always-on;
177			};
178
179			vdd_ldo10: ldo10 {
180				regulator-min-microvolt = <1000000>;
181				regulator-max-microvolt = <1000000>;
182				regulator-always-on;
183			};
184
185			vdd_ldo11: ldo11 {
186				regulator-min-microvolt = <2500000>;
187				regulator-max-microvolt = <2500000>;
188				regulator-always-on;
189			};
190		};
191	};
192};
193
194&qspi0 {
195	status = "okay";
196	flash@0 {
197		compatible = "jedec,spi-nor";
198		reg = <0>;
199		spi-max-frequency = <50000000>;
200		m25p,fast-read;
201		spi-tx-bus-width = <4>;
202		spi-rx-bus-width = <4>;
203	};
204};
205
206&spi0 {
207	status = "okay";
208	mmc@0 {
209		compatible = "mmc-spi-slot";
210		reg = <0>;
211		spi-max-frequency = <20000000>;
212		voltage-ranges = <3300 3300>;
213		disable-wp;
214		gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
215	};
216};
217
218&eth0 {
219	status = "okay";
220	phy-mode = "gmii";
221	phy-handle = <&phy0>;
222	phy0: ethernet-phy@0 {
223		reg = <0>;
224	};
225};
226
227&pwm0 {
228	status = "okay";
229};
230
231&pwm1 {
232	status = "okay";
233};
234
235&gpio {
236	status = "okay";
237	gpio-line-names = "J29.1", "PMICNTB", "PMICSHDN", "J8.1", "J8.3",
238		"PCIe_PWREN", "THERM", "UBRDG_RSTN", "PCIe_PERSTN",
239		"ULPI_RSTN", "J8.2", "UHUB_RSTN", "GEMGXL_RST", "J8.4",
240		"EN_VDD_SD", "SD_CD";
241};
242