xref: /linux/scripts/dtc/include-prefixes/riscv/sifive/hifive-unmatched-a00.dts (revision ea81b91e4e256b0bb75d47ad3a5c230b2171a005)
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		interrupt-parent = <&gpio>;
59		interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
60	};
61
62	pmic@58 {
63		compatible = "dlg,da9063";
64		reg = <0x58>;
65		interrupt-parent = <&gpio>;
66		interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
67		interrupt-controller;
68
69		regulators {
70			vdd_bcore1: bcore1 {
71				regulator-min-microvolt = <900000>;
72				regulator-max-microvolt = <900000>;
73				regulator-min-microamp = <5000000>;
74				regulator-max-microamp = <5000000>;
75				regulator-always-on;
76			};
77
78			vdd_bcore2: bcore2 {
79				regulator-min-microvolt = <900000>;
80				regulator-max-microvolt = <900000>;
81				regulator-min-microamp = <5000000>;
82				regulator-max-microamp = <5000000>;
83				regulator-always-on;
84			};
85
86			vdd_bpro: bpro {
87				regulator-min-microvolt = <1800000>;
88				regulator-max-microvolt = <1800000>;
89				regulator-min-microamp = <2500000>;
90				regulator-max-microamp = <2500000>;
91				regulator-always-on;
92			};
93
94			vdd_bperi: bperi {
95				regulator-min-microvolt = <1050000>;
96				regulator-max-microvolt = <1050000>;
97				regulator-min-microamp = <1500000>;
98				regulator-max-microamp = <1500000>;
99				regulator-always-on;
100			};
101
102			vdd_bmem: bmem {
103				regulator-min-microvolt = <1200000>;
104				regulator-max-microvolt = <1200000>;
105				regulator-min-microamp = <3000000>;
106				regulator-max-microamp = <3000000>;
107				regulator-always-on;
108			};
109
110			vdd_bio: bio {
111				regulator-min-microvolt = <1200000>;
112				regulator-max-microvolt = <1200000>;
113				regulator-min-microamp = <3000000>;
114				regulator-max-microamp = <3000000>;
115				regulator-always-on;
116			};
117
118			vdd_ldo1: ldo1 {
119				regulator-min-microvolt = <1800000>;
120				regulator-max-microvolt = <1800000>;
121				regulator-min-microamp = <100000>;
122				regulator-max-microamp = <100000>;
123				regulator-always-on;
124			};
125
126			vdd_ldo2: ldo2 {
127				regulator-min-microvolt = <1800000>;
128				regulator-max-microvolt = <1800000>;
129				regulator-min-microamp = <200000>;
130				regulator-max-microamp = <200000>;
131				regulator-always-on;
132			};
133
134			vdd_ldo3: ldo3 {
135				regulator-min-microvolt = <1800000>;
136				regulator-max-microvolt = <1800000>;
137				regulator-min-microamp = <200000>;
138				regulator-max-microamp = <200000>;
139				regulator-always-on;
140			};
141
142			vdd_ldo4: ldo4 {
143				regulator-min-microvolt = <1800000>;
144				regulator-max-microvolt = <1800000>;
145				regulator-min-microamp = <200000>;
146				regulator-max-microamp = <200000>;
147				regulator-always-on;
148			};
149
150			vdd_ldo5: ldo5 {
151				regulator-min-microvolt = <1800000>;
152				regulator-max-microvolt = <1800000>;
153				regulator-min-microamp = <100000>;
154				regulator-max-microamp = <100000>;
155				regulator-always-on;
156			};
157
158			vdd_ldo6: ldo6 {
159				regulator-min-microvolt = <3300000>;
160				regulator-max-microvolt = <3300000>;
161				regulator-min-microamp = <200000>;
162				regulator-max-microamp = <200000>;
163				regulator-always-on;
164			};
165
166			vdd_ldo7: ldo7 {
167				regulator-min-microvolt = <1800000>;
168				regulator-max-microvolt = <1800000>;
169				regulator-min-microamp = <200000>;
170				regulator-max-microamp = <200000>;
171				regulator-always-on;
172			};
173
174			vdd_ldo8: ldo8 {
175				regulator-min-microvolt = <1800000>;
176				regulator-max-microvolt = <1800000>;
177				regulator-min-microamp = <200000>;
178				regulator-max-microamp = <200000>;
179				regulator-always-on;
180			};
181
182			vdd_ld09: ldo9 {
183				regulator-min-microvolt = <1050000>;
184				regulator-max-microvolt = <1050000>;
185				regulator-min-microamp = <200000>;
186				regulator-max-microamp = <200000>;
187			};
188
189			vdd_ldo10: ldo10 {
190				regulator-min-microvolt = <1000000>;
191				regulator-max-microvolt = <1000000>;
192				regulator-min-microamp = <300000>;
193				regulator-max-microamp = <300000>;
194			};
195
196			vdd_ldo11: ldo11 {
197				regulator-min-microvolt = <2500000>;
198				regulator-max-microvolt = <2500000>;
199				regulator-min-microamp = <300000>;
200				regulator-max-microamp = <300000>;
201				regulator-always-on;
202			};
203		};
204	};
205};
206
207&qspi0 {
208	status = "okay";
209	flash@0 {
210		compatible = "jedec,spi-nor";
211		reg = <0>;
212		spi-max-frequency = <50000000>;
213		m25p,fast-read;
214		spi-tx-bus-width = <4>;
215		spi-rx-bus-width = <4>;
216	};
217};
218
219&spi0 {
220	status = "okay";
221	mmc@0 {
222		compatible = "mmc-spi-slot";
223		reg = <0>;
224		spi-max-frequency = <20000000>;
225		voltage-ranges = <3300 3300>;
226		disable-wp;
227		gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
228	};
229};
230
231&eth0 {
232	status = "okay";
233	phy-mode = "gmii";
234	phy-handle = <&phy0>;
235	phy0: ethernet-phy@0 {
236		reg = <0>;
237	};
238};
239
240&pwm0 {
241	status = "okay";
242};
243
244&pwm1 {
245	status = "okay";
246};
247
248&gpio {
249	status = "okay";
250	gpio-line-names = "J29.1", "PMICNTB", "PMICSHDN", "J8.1", "J8.3",
251		"PCIe_PWREN", "THERM", "UBRDG_RSTN", "PCIe_PERSTN",
252		"ULPI_RSTN", "J8.2", "UHUB_RSTN", "GEMGXL_RST", "J8.4",
253		"EN_VDD_SD", "SD_CD";
254};
255