5 compatible = "sifive,hifive1-revb";
6 model = "sifive,hifive1-revb";
10 compatible = "sifive,fe310-g000";
13 compatible = "sifive,rocket0", "riscv";
15 i-cache-block-size = <64>;
17 i-cache-size = <16384>;
18 next-level-cache = <&spi0>;
20 riscv,isa = "rv32imac";
21 riscv,pmpregions = <8>;
22 sifive,itim = <&itim>;
23 sifive,dtim = <&dtim>;
25 timebase-frequency = <16000000>;
26 hardware-exec-breakpoint-count = <4>;
27 hlic: interrupt-controller {
28 #interrupt-cells = <1>;
29 compatible = "riscv,cpu-intc";
38 compatible = "sifive,hifive1";
42 compatible = "fixed-clock";
43 clock-frequency = <16000000>;
46 compatible = "sifive,fe310-g000,hfxosc";
53 compatible = "fixed-clock";
54 clock-frequency = <72000000>;
57 compatible = "sifive,fe310-g000,hfrosc";
63 compatible = "sifive,fe310-g000,pll";
64 clocks = <&hfxoscout &hfroscout>;
65 clock-names = "pllref", "pllsel0";
66 reg = <&prci 0x8 &prci 0xc>;
67 reg-names = "config", "divider";
68 clock-frequency = <16000000>;
72 compatible = "fixed-clock";
73 clock-frequency = <32768>;
75 psdlfaltclk: clock@6 {
77 compatible = "fixed-clock";
78 clock-frequency = <32768>;
81 compatible = "sifive,fe310-g000,lfrosc";
82 clocks = <&lfrosc &psdlfaltclk>;
83 clock-names = "lfrosc", "psdlfaltclk";
84 reg = <&aon 0x70 &aon 0x7C>;
85 reg-names = "config", "mux";
88 compatible = "sifive,debug-011", "riscv,debug-011";
89 interrupts-extended = <&hlic 65535>;
91 reg-names = "control";
93 /* Missing: Error device */
95 reg = <0x1000 0x2000>;
99 reg = <0x20000 0x2000 0x10010000 0x1000>;
100 reg-names = "mem", "control";
102 clint: clint@2000000 {
103 compatible = "riscv,clint0";
104 interrupts-extended = <&hlic 3 &hlic 7>;
105 reg = <0x2000000 0x10000>;
106 reg-names = "control";
109 compatible = "sifive,itim0";
110 reg = <0x8000000 0x2000>;
113 plic: interrupt-controller@c000000 {
114 #interrupt-cells = <1>;
115 compatible = "riscv,plic0";
116 interrupt-controller;
117 interrupts-extended = <&hlic 11>;
118 reg = <0xc000000 0x4000000>;
119 reg-names = "control";
120 riscv,max-priority = <7>;
124 compatible = "sifive,aon0";
125 reg = <0x10000000 0x8000>;
127 interrupt-parent = <&plic>;
131 prci: prci@10008000 {
132 compatible = "sifive,fe310-g000,prci";
133 reg = <0x10008000 0x8000>;
136 gpio0: gpio@10012000 {
137 compatible = "sifive,gpio0";
138 interrupt-parent = <&plic>;
139 interrupts = <8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
140 23 24 25 26 27 28 29 30 31 32 33 34 35 36
142 reg = <0x10012000 0x1000>;
143 reg-names = "control";
146 compatible = "sifive,gpio-leds";
149 linux,default-trigger = "none";
152 compatible = "sifive,gpio-leds";
155 linux,default-trigger = "none";
158 compatible = "sifive,gpio-leds";
161 linux,default-trigger = "none";
163 uart0: serial@10013000 {
164 compatible = "sifive,uart0";
165 interrupt-parent = <&plic>;
167 reg = <0x10013000 0x1000>;
168 reg-names = "control";
170 pinmux = <&gpio0 0x0 0x30000>;
173 compatible = "sifive,spi0";
174 interrupt-parent = <&plic>;
176 reg = <0x10014000 0x1000 0x20000000 0x7A120>;
177 reg-names = "control", "mem";
179 pinmux = <&gpio0 0x0 0x0>;
180 #address-cells = <1>;
183 compatible = "jedec,spi-nor";
184 reg = <0x20000000 0x424000>;
188 compatible = "sifive,pwm0";
189 sifive,comparator-widthbits = <8>;
190 sifive,ncomparators = <4>;
191 interrupt-parent = <&plic>;
192 interrupts = <40 41 42 43>;
193 reg = <0x10015000 0x1000>;
194 reg-names = "control";
196 pinmux = <&gpio0 0x0F 0x0F>;
199 compatible = "sifive,i2c0";
200 interrupt-parent = <&plic>;
202 reg = <0x10016000 0x1000>;
203 reg-names = "control";
205 pinmux = <&gpio0 0x0 0x3000>;
207 uart1: serial@10023000 {
208 compatible = "sifive,uart0";
209 interrupt-parent = <&plic>;
211 reg = <0x10023000 0x1000>;
212 reg-names = "control";
214 pinmux = <&gpio0 0x0 0x840000>;
217 compatible = "sifive,spi0";
218 interrupt-parent = <&plic>;
220 reg = <0x10024000 0x1000>;
221 reg-names = "control";
223 pinmux = <&gpio0 0x0 0x0003C>;
226 compatible = "sifive,pwm0";
227 sifive,comparator-widthbits = <16>;
228 sifive,ncomparators = <4>;
229 interrupt-parent = <&plic>;
230 interrupts = <44 45 46 47>;
231 reg = <0x10025000 0x1000>;
232 reg-names = "control";
234 pinmux = <&gpio0 0x780000 0x780000>;
237 compatible = "sifive,spi0";
238 interrupt-parent = <&plic>;
240 reg = <0x10034000 0x1000>;
241 reg-names = "control";
243 pinmux = <&gpio0 0x0 0xFC000000>;
246 compatible = "sifive,pwm0";
247 sifive,comparator-widthbits = <16>;
248 sifive,ncomparators = <4>;
249 interrupt-parent = <&plic>;
250 interrupts = <48 49 50 51>;
251 reg = <0x10035000 0x1000>;
252 reg-names = "control";
254 pinmux = <&gpio0 0x3C00 0x3C00>;
256 dtim: dtim@80000000 {
257 compatible = "sifive,dtim0";
258 reg = <0x80000000 0x4000>;