1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-only
2c66ec88fSEmmanuel Vadot/*
3c66ec88fSEmmanuel Vadot * Copyright (C) 2015 Altera Corporation. All rights reserved.
4c66ec88fSEmmanuel Vadot */
5c66ec88fSEmmanuel Vadot
6c66ec88fSEmmanuel Vadot/dts-v1/;
7c66ec88fSEmmanuel Vadot
8c66ec88fSEmmanuel Vadot/ {
9c66ec88fSEmmanuel Vadot	model = "Altera NiosII Max10";
10c66ec88fSEmmanuel Vadot	compatible = "altr,niosii-max10";
11c66ec88fSEmmanuel Vadot	#address-cells = <1>;
12c66ec88fSEmmanuel Vadot	#size-cells = <1>;
13c66ec88fSEmmanuel Vadot
14c66ec88fSEmmanuel Vadot	cpus {
15c66ec88fSEmmanuel Vadot		#address-cells = <1>;
16c66ec88fSEmmanuel Vadot		#size-cells = <0>;
17c66ec88fSEmmanuel Vadot
18c66ec88fSEmmanuel Vadot		cpu: cpu@0 {
19c66ec88fSEmmanuel Vadot			device_type = "cpu";
20c66ec88fSEmmanuel Vadot			compatible = "altr,nios2-1.1";
21c66ec88fSEmmanuel Vadot			reg = <0x00000000>;
22c66ec88fSEmmanuel Vadot			interrupt-controller;
23c66ec88fSEmmanuel Vadot			#interrupt-cells = <1>;
24c66ec88fSEmmanuel Vadot			altr,exception-addr = <0xc8000120>;
25c66ec88fSEmmanuel Vadot			altr,fast-tlb-miss-addr = <0xc0000100>;
26c66ec88fSEmmanuel Vadot			altr,has-div = <1>;
27c66ec88fSEmmanuel Vadot			altr,has-initda = <1>;
28c66ec88fSEmmanuel Vadot			altr,has-mmu = <1>;
29c66ec88fSEmmanuel Vadot			altr,has-mul = <1>;
30c66ec88fSEmmanuel Vadot			altr,implementation = "fast";
31c66ec88fSEmmanuel Vadot			altr,pid-num-bits = <8>;
32c66ec88fSEmmanuel Vadot			altr,reset-addr = <0xd4000000>;
33c66ec88fSEmmanuel Vadot			altr,tlb-num-entries = <256>;
34c66ec88fSEmmanuel Vadot			altr,tlb-num-ways = <16>;
35c66ec88fSEmmanuel Vadot			altr,tlb-ptr-sz = <8>;
36c66ec88fSEmmanuel Vadot			clock-frequency = <75000000>;
37c66ec88fSEmmanuel Vadot			dcache-line-size = <32>;
38c66ec88fSEmmanuel Vadot			dcache-size = <32768>;
39c66ec88fSEmmanuel Vadot			icache-line-size = <32>;
40c66ec88fSEmmanuel Vadot			icache-size = <32768>;
41c66ec88fSEmmanuel Vadot		};
42c66ec88fSEmmanuel Vadot	};
43c66ec88fSEmmanuel Vadot
44c66ec88fSEmmanuel Vadot	memory {
45c66ec88fSEmmanuel Vadot		device_type = "memory";
46c66ec88fSEmmanuel Vadot		reg = <0x08000000 0x08000000>,
47c66ec88fSEmmanuel Vadot			<0x00000000 0x00000400>;
48c66ec88fSEmmanuel Vadot	};
49c66ec88fSEmmanuel Vadot
50c66ec88fSEmmanuel Vadot	sopc0: sopc@0 {
51c66ec88fSEmmanuel Vadot		device_type = "soc";
52c66ec88fSEmmanuel Vadot		ranges;
53c66ec88fSEmmanuel Vadot		#address-cells = <1>;
54c66ec88fSEmmanuel Vadot		#size-cells = <1>;
55c66ec88fSEmmanuel Vadot		compatible = "altr,avalon", "simple-bus";
56c66ec88fSEmmanuel Vadot		bus-frequency = <75000000>;
57c66ec88fSEmmanuel Vadot
58c66ec88fSEmmanuel Vadot		jtag_uart: serial@18001530 {
59c66ec88fSEmmanuel Vadot			compatible = "altr,juart-1.0";
60c66ec88fSEmmanuel Vadot			reg = <0x18001530 0x00000008>;
61c66ec88fSEmmanuel Vadot			interrupt-parent = <&cpu>;
62c66ec88fSEmmanuel Vadot			interrupts = <7>;
63c66ec88fSEmmanuel Vadot		};
64c66ec88fSEmmanuel Vadot
65c66ec88fSEmmanuel Vadot		a_16550_uart_0: serial@18001600 {
66c66ec88fSEmmanuel Vadot			compatible = "altr,16550-FIFO32", "ns16550a";
67c66ec88fSEmmanuel Vadot			reg = <0x18001600 0x00000200>;
68c66ec88fSEmmanuel Vadot			interrupt-parent = <&cpu>;
69c66ec88fSEmmanuel Vadot			interrupts = <1>;
70c66ec88fSEmmanuel Vadot			auto-flow-control = <1>;
71c66ec88fSEmmanuel Vadot			clock-frequency = <50000000>;
72c66ec88fSEmmanuel Vadot			fifo-size = <32>;
73c66ec88fSEmmanuel Vadot			reg-io-width = <4>;
74c66ec88fSEmmanuel Vadot			reg-shift = <2>;
75c66ec88fSEmmanuel Vadot			tx-threshold = <16>;
76c66ec88fSEmmanuel Vadot		};
77c66ec88fSEmmanuel Vadot
78c66ec88fSEmmanuel Vadot		sysid: sysid@18001528 {
79c66ec88fSEmmanuel Vadot			compatible = "altr,sysid-1.0";
80c66ec88fSEmmanuel Vadot			reg = <0x18001528 0x00000008>;
81c66ec88fSEmmanuel Vadot			id = <4207856382>;
82c66ec88fSEmmanuel Vadot			timestamp = <1431309290>;
83c66ec88fSEmmanuel Vadot		};
84c66ec88fSEmmanuel Vadot
85c66ec88fSEmmanuel Vadot		rgmii_0_eth_tse_0: ethernet@400 {
86c66ec88fSEmmanuel Vadot			compatible = "altr,tse-msgdma-1.0", "altr,tse-1.0";
87c66ec88fSEmmanuel Vadot			reg = <0x00000400 0x00000400>,
88c66ec88fSEmmanuel Vadot				<0x00000820 0x00000020>,
89c66ec88fSEmmanuel Vadot				<0x00000800 0x00000020>,
90c66ec88fSEmmanuel Vadot				<0x000008c0 0x00000008>,
91c66ec88fSEmmanuel Vadot				<0x00000840 0x00000020>,
92c66ec88fSEmmanuel Vadot				<0x00000860 0x00000020>;
93c66ec88fSEmmanuel Vadot			reg-names = "control_port", "rx_csr", "rx_desc", "rx_resp", "tx_csr", "tx_desc";
94c66ec88fSEmmanuel Vadot			interrupt-parent = <&cpu>;
95c66ec88fSEmmanuel Vadot			interrupts = <2 3>;
96c66ec88fSEmmanuel Vadot			interrupt-names = "rx_irq", "tx_irq";
97c66ec88fSEmmanuel Vadot			rx-fifo-depth = <8192>;
98c66ec88fSEmmanuel Vadot			tx-fifo-depth = <8192>;
99c66ec88fSEmmanuel Vadot			address-bits = <48>;
100*fac71e4eSEmmanuel Vadot			max-frame-size = <1500>;
101c66ec88fSEmmanuel Vadot			local-mac-address = [00 00 00 00 00 00];
102c66ec88fSEmmanuel Vadot			altr,has-supplementary-unicast;
103c66ec88fSEmmanuel Vadot			altr,enable-sup-addr = <1>;
104c66ec88fSEmmanuel Vadot			altr,has-hash-multicast-filter;
105c66ec88fSEmmanuel Vadot			altr,enable-hash = <1>;
106c66ec88fSEmmanuel Vadot			phy-mode = "rgmii-id";
107c66ec88fSEmmanuel Vadot			phy-handle = <&phy0>;
108c66ec88fSEmmanuel Vadot			rgmii_0_eth_tse_0_mdio: mdio {
109c66ec88fSEmmanuel Vadot				compatible = "altr,tse-mdio";
110c66ec88fSEmmanuel Vadot				#address-cells = <1>;
111c66ec88fSEmmanuel Vadot				#size-cells = <0>;
112c66ec88fSEmmanuel Vadot				phy0: ethernet-phy@0 {
113c66ec88fSEmmanuel Vadot					reg = <0>;
114c66ec88fSEmmanuel Vadot					device_type = "ethernet-phy";
115c66ec88fSEmmanuel Vadot				};
116c66ec88fSEmmanuel Vadot			};
117c66ec88fSEmmanuel Vadot		};
118c66ec88fSEmmanuel Vadot
119c66ec88fSEmmanuel Vadot		enet_pll: clock@0 {
120c66ec88fSEmmanuel Vadot			compatible = "altr,pll-1.0";
121c66ec88fSEmmanuel Vadot			#clock-cells = <1>;
122c66ec88fSEmmanuel Vadot
123c66ec88fSEmmanuel Vadot			enet_pll_c0: enet_pll_c0 {
124c66ec88fSEmmanuel Vadot				compatible = "fixed-clock";
125c66ec88fSEmmanuel Vadot				#clock-cells = <0>;
126c66ec88fSEmmanuel Vadot				clock-frequency = <125000000>;
127c66ec88fSEmmanuel Vadot				clock-output-names = "enet_pll-c0";
128c66ec88fSEmmanuel Vadot			};
129c66ec88fSEmmanuel Vadot
130c66ec88fSEmmanuel Vadot			enet_pll_c1: enet_pll_c1 {
131c66ec88fSEmmanuel Vadot				compatible = "fixed-clock";
132c66ec88fSEmmanuel Vadot				#clock-cells = <0>;
133c66ec88fSEmmanuel Vadot				clock-frequency = <25000000>;
134c66ec88fSEmmanuel Vadot				clock-output-names = "enet_pll-c1";
135c66ec88fSEmmanuel Vadot			};
136c66ec88fSEmmanuel Vadot
137c66ec88fSEmmanuel Vadot			enet_pll_c2: enet_pll_c2 {
138c66ec88fSEmmanuel Vadot				compatible = "fixed-clock";
139c66ec88fSEmmanuel Vadot				#clock-cells = <0>;
140c66ec88fSEmmanuel Vadot				clock-frequency = <2500000>;
141c66ec88fSEmmanuel Vadot				clock-output-names = "enet_pll-c2";
142c66ec88fSEmmanuel Vadot			};
143c66ec88fSEmmanuel Vadot		};
144c66ec88fSEmmanuel Vadot
145c66ec88fSEmmanuel Vadot		sys_pll: clock@1 {
146c66ec88fSEmmanuel Vadot			compatible = "altr,pll-1.0";
147c66ec88fSEmmanuel Vadot			#clock-cells = <1>;
148c66ec88fSEmmanuel Vadot
149c66ec88fSEmmanuel Vadot			sys_pll_c0: sys_pll_c0 {
150c66ec88fSEmmanuel Vadot				compatible = "fixed-clock";
151c66ec88fSEmmanuel Vadot				#clock-cells = <0>;
152c66ec88fSEmmanuel Vadot				clock-frequency = <100000000>;
153c66ec88fSEmmanuel Vadot				clock-output-names = "sys_pll-c0";
154c66ec88fSEmmanuel Vadot			};
155c66ec88fSEmmanuel Vadot
156c66ec88fSEmmanuel Vadot			sys_pll_c1: sys_pll_c1 {
157c66ec88fSEmmanuel Vadot				compatible = "fixed-clock";
158c66ec88fSEmmanuel Vadot				#clock-cells = <0>;
159c66ec88fSEmmanuel Vadot				clock-frequency = <50000000>;
160c66ec88fSEmmanuel Vadot				clock-output-names = "sys_pll-c1";
161c66ec88fSEmmanuel Vadot			};
162c66ec88fSEmmanuel Vadot
163c66ec88fSEmmanuel Vadot			sys_pll_c2: sys_pll_c2 {
164c66ec88fSEmmanuel Vadot				compatible = "fixed-clock";
165c66ec88fSEmmanuel Vadot				#clock-cells = <0>;
166c66ec88fSEmmanuel Vadot				clock-frequency = <75000000>;
167c66ec88fSEmmanuel Vadot				clock-output-names = "sys_pll-c2";
168c66ec88fSEmmanuel Vadot			};
169c66ec88fSEmmanuel Vadot		};
170c66ec88fSEmmanuel Vadot
171c66ec88fSEmmanuel Vadot		sys_clk_timer: timer@18001440 {
172c66ec88fSEmmanuel Vadot			compatible = "altr,timer-1.0";
173c66ec88fSEmmanuel Vadot			reg = <0x18001440 0x00000020>;
174c66ec88fSEmmanuel Vadot			interrupt-parent = <&cpu>;
175c66ec88fSEmmanuel Vadot			interrupts = <0>;
176c66ec88fSEmmanuel Vadot			clock-frequency = <75000000>;
177c66ec88fSEmmanuel Vadot		};
178c66ec88fSEmmanuel Vadot
179c66ec88fSEmmanuel Vadot		led_pio: gpio@180014d0 {
180c66ec88fSEmmanuel Vadot			compatible = "altr,pio-1.0";
181c66ec88fSEmmanuel Vadot			reg = <0x180014d0 0x00000010>;
182c66ec88fSEmmanuel Vadot			altr,ngpio = <4>;
183c66ec88fSEmmanuel Vadot			#gpio-cells = <2>;
184c66ec88fSEmmanuel Vadot			gpio-controller;
185c66ec88fSEmmanuel Vadot		};
186c66ec88fSEmmanuel Vadot
187c66ec88fSEmmanuel Vadot		button_pio: gpio@180014c0 {
188c66ec88fSEmmanuel Vadot			compatible = "altr,pio-1.0";
189c66ec88fSEmmanuel Vadot			reg = <0x180014c0 0x00000010>;
190c66ec88fSEmmanuel Vadot			interrupt-parent = <&cpu>;
191c66ec88fSEmmanuel Vadot			interrupts = <6>;
192c66ec88fSEmmanuel Vadot			altr,ngpio = <3>;
193c66ec88fSEmmanuel Vadot			altr,interrupt-type = <2>;
194c66ec88fSEmmanuel Vadot			edge_type = <1>;
195c66ec88fSEmmanuel Vadot			level_trigger = <0>;
196c66ec88fSEmmanuel Vadot			#gpio-cells = <2>;
197c66ec88fSEmmanuel Vadot			gpio-controller;
198c66ec88fSEmmanuel Vadot		};
199c66ec88fSEmmanuel Vadot
200c66ec88fSEmmanuel Vadot		sys_clk_timer_1: timer@880 {
201c66ec88fSEmmanuel Vadot			compatible = "altr,timer-1.0";
202c66ec88fSEmmanuel Vadot			reg = <0x00000880 0x00000020>;
203c66ec88fSEmmanuel Vadot			interrupt-parent = <&cpu>;
204c66ec88fSEmmanuel Vadot			interrupts = <5>;
205c66ec88fSEmmanuel Vadot			clock-frequency = <75000000>;
206c66ec88fSEmmanuel Vadot		};
207c66ec88fSEmmanuel Vadot
208c66ec88fSEmmanuel Vadot		fpga_leds: leds {
209c66ec88fSEmmanuel Vadot			compatible = "gpio-leds";
210c66ec88fSEmmanuel Vadot
211c66ec88fSEmmanuel Vadot			led_fpga0: fpga0 {
212c66ec88fSEmmanuel Vadot				label = "fpga_led0";
213c66ec88fSEmmanuel Vadot				gpios = <&led_pio 0 1>;
214c66ec88fSEmmanuel Vadot			};
215c66ec88fSEmmanuel Vadot
216c66ec88fSEmmanuel Vadot			led_fpga1: fpga1 {
217c66ec88fSEmmanuel Vadot				label = "fpga_led1";
218c66ec88fSEmmanuel Vadot				gpios = <&led_pio 1 1>;
219c66ec88fSEmmanuel Vadot			};
220c66ec88fSEmmanuel Vadot
221c66ec88fSEmmanuel Vadot			led_fpga2: fpga2 {
222c66ec88fSEmmanuel Vadot				label = "fpga_led2";
223c66ec88fSEmmanuel Vadot				gpios = <&led_pio 2 1>;
224c66ec88fSEmmanuel Vadot			};
225c66ec88fSEmmanuel Vadot
226c66ec88fSEmmanuel Vadot			led_fpga3: fpga3 {
227c66ec88fSEmmanuel Vadot				label = "fpga_led3";
228c66ec88fSEmmanuel Vadot				gpios = <&led_pio 3 1>;
229c66ec88fSEmmanuel Vadot			};
230c66ec88fSEmmanuel Vadot		};
231c66ec88fSEmmanuel Vadot	};
232c66ec88fSEmmanuel Vadot
233c66ec88fSEmmanuel Vadot	chosen {
234c66ec88fSEmmanuel Vadot		bootargs = "debug earlycon console=ttyS0,115200";
235c66ec88fSEmmanuel Vadot		stdout-path = &a_16550_uart_0;
236c66ec88fSEmmanuel Vadot	};
237c66ec88fSEmmanuel Vadot};
238