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