1b2441318SGreg Kroah-Hartman// SPDX-License-Identifier: GPL-2.0
25584b4daSMax Filippov/ {
342beb762SBaruch Siach	compatible = "cdns,xtensa-xtfpga";
45584b4daSMax Filippov	#address-cells = <1>;
55584b4daSMax Filippov	#size-cells = <1>;
65584b4daSMax Filippov	interrupt-parent = <&pic>;
75584b4daSMax Filippov
85584b4daSMax Filippov	chosen {
956b9f9d6SMax Filippov		bootargs = "earlycon=uart8250,mmio32native,0xfd050020,115200n8 console=ttyS0,115200n8 ip=dhcp root=/dev/nfs rw debug";
105584b4daSMax Filippov	};
115584b4daSMax Filippov
125584b4daSMax Filippov	memory@0 {
135584b4daSMax Filippov		device_type = "memory";
145584b4daSMax Filippov		reg = <0x00000000 0x06000000>;
155584b4daSMax Filippov	};
165584b4daSMax Filippov
175584b4daSMax Filippov	cpus {
185584b4daSMax Filippov		#address-cells = <1>;
195584b4daSMax Filippov		#size-cells = <0>;
205584b4daSMax Filippov		cpu@0 {
2142beb762SBaruch Siach			compatible = "cdns,xtensa-cpu";
225584b4daSMax Filippov			reg = <0>;
23205ad548SMax Filippov			clocks = <&osc>;
245584b4daSMax Filippov		};
255584b4daSMax Filippov	};
265584b4daSMax Filippov
275584b4daSMax Filippov	pic: pic {
28cbd1de2eSMax Filippov		compatible = "cdns,xtensa-pic";
295584b4daSMax Filippov		/* one cell: internal irq number,
305584b4daSMax Filippov		 * two cells: second cell == 0: internal irq number
315584b4daSMax Filippov		 *            second cell == 1: external irq number
325584b4daSMax Filippov		 */
335584b4daSMax Filippov		#interrupt-cells = <2>;
345584b4daSMax Filippov		interrupt-controller;
355584b4daSMax Filippov	};
365584b4daSMax Filippov
37cdc9af7cSMax Filippov	clocks {
38c2c62e61SMax Filippov		clk54: clk54 {
39c2c62e61SMax Filippov			#clock-cells = <0>;
40c2c62e61SMax Filippov			compatible = "fixed-clock";
41c2c62e61SMax Filippov			clock-frequency = <54000000>;
42c2c62e61SMax Filippov		};
43cdc9af7cSMax Filippov	};
44cdc9af7cSMax Filippov
4508a7bbf6SMax Filippov	soc {
4608a7bbf6SMax Filippov		#address-cells = <1>;
4708a7bbf6SMax Filippov		#size-cells = <1>;
4808a7bbf6SMax Filippov		compatible = "simple-bus";
4908a7bbf6SMax Filippov		ranges = <0x00000000 0xf0000000 0x10000000>;
5008a7bbf6SMax Filippov
5158c3e3acSMax Filippov		osc: main-oscillator {
5258c3e3acSMax Filippov			#clock-cells = <0>;
5358c3e3acSMax Filippov			compatible = "cdns,xtfpga-clock";
5458c3e3acSMax Filippov			reg = <0x0d020004 0x4>;
5558c3e3acSMax Filippov		};
5658c3e3acSMax Filippov
5708a7bbf6SMax Filippov		serial0: serial@0d050020 {
585584b4daSMax Filippov			device_type = "serial";
595584b4daSMax Filippov			compatible = "ns16550a";
605584b4daSMax Filippov			no-loopback-test;
6108a7bbf6SMax Filippov			reg = <0x0d050020 0x20>;
625584b4daSMax Filippov			reg-shift = <2>;
63abfbd895SMax Filippov			reg-io-width = <4>;
64abfbd895SMax Filippov			native-endian;
655584b4daSMax Filippov			interrupts = <0 1>; /* external irq 0 */
66cdc9af7cSMax Filippov			clocks = <&osc>;
675584b4daSMax Filippov		};
685584b4daSMax Filippov
6908a7bbf6SMax Filippov		enet0: ethoc@0d030000 {
705584b4daSMax Filippov			compatible = "opencores,ethoc";
7108a7bbf6SMax Filippov			reg = <0x0d030000 0x4000 0x0d800000 0x4000>;
72d99434e1SMax Filippov			native-endian;
735584b4daSMax Filippov			interrupts = <1 1>; /* external irq 1 */
745584b4daSMax Filippov			local-mac-address = [00 50 c2 13 6f 00];
752bc2fde6SMax Filippov			clocks = <&osc>;
765584b4daSMax Filippov		};
77c2c62e61SMax Filippov
78c2c62e61SMax Filippov		i2s0: xtfpga-i2s@0d080000 {
79c2c62e61SMax Filippov			#sound-dai-cells = <0>;
80c2c62e61SMax Filippov			compatible = "cdns,xtfpga-i2s";
81c2c62e61SMax Filippov			reg = <0x0d080000 0x40>;
82c2c62e61SMax Filippov			interrupts = <2 1>; /* external irq 2 */
83c2c62e61SMax Filippov			clocks = <&cdce706 4>;
84c2c62e61SMax Filippov		};
85c2c62e61SMax Filippov
86c2c62e61SMax Filippov		i2c0: i2c-master@0d090000 {
87c2c62e61SMax Filippov			compatible = "opencores,i2c-ocores";
88c2c62e61SMax Filippov			#address-cells = <1>;
89c2c62e61SMax Filippov			#size-cells = <0>;
90c2c62e61SMax Filippov			reg = <0x0d090000 0x20>;
91c2c62e61SMax Filippov			reg-shift = <2>;
92bce299caSMax Filippov			reg-io-width = <4>;
93bce299caSMax Filippov			native-endian;
94c2c62e61SMax Filippov			interrupts = <4 1>;
95c2c62e61SMax Filippov			clocks = <&osc>;
96c2c62e61SMax Filippov
97c2c62e61SMax Filippov			cdce706: clock-synth@69 {
98c2c62e61SMax Filippov				compatible = "ti,cdce706";
99c2c62e61SMax Filippov				#clock-cells = <1>;
100c2c62e61SMax Filippov				reg = <0x69>;
101c2c62e61SMax Filippov				clocks = <&clk54>;
102c2c62e61SMax Filippov				clock-names = "clk_in0";
103c2c62e61SMax Filippov			};
104c2c62e61SMax Filippov		};
105c2c62e61SMax Filippov
106f37598beSMax Filippov		spi0: spi@0d0a0000 {
107c2c62e61SMax Filippov			compatible = "cdns,xtfpga-spi";
108c2c62e61SMax Filippov			#address-cells = <1>;
109c2c62e61SMax Filippov			#size-cells = <0>;
110c2c62e61SMax Filippov			reg = <0x0d0a0000 0xc>;
111c2c62e61SMax Filippov
112c2c62e61SMax Filippov			tlv320aic23: sound-codec@0 {
113c2c62e61SMax Filippov				#sound-dai-cells = <0>;
114c2c62e61SMax Filippov				compatible = "tlv320aic23";
115c2c62e61SMax Filippov				reg = <0>;
116c2c62e61SMax Filippov				spi-max-frequency = <12500000>;
117c2c62e61SMax Filippov			};
118c2c62e61SMax Filippov		};
119c2c62e61SMax Filippov	};
120c2c62e61SMax Filippov
121c2c62e61SMax Filippov	sound {
122c2c62e61SMax Filippov		compatible = "simple-audio-card";
123c2c62e61SMax Filippov		simple-audio-card,format = "i2s";
124c2c62e61SMax Filippov		simple-audio-card,mclk-fs = <256>;
125c2c62e61SMax Filippov
126c2c62e61SMax Filippov		simple-audio-card,cpu {
127c2c62e61SMax Filippov			sound-dai = <&i2s0>;
128c2c62e61SMax Filippov		};
129c2c62e61SMax Filippov
130c2c62e61SMax Filippov		simple-audio-card,codec {
131c2c62e61SMax Filippov			sound-dai = <&tlv320aic23>;
132c2c62e61SMax Filippov			simple-audio-card,bitclock-master = <0>;
133c2c62e61SMax Filippov			simple-audio-card,frame-master = <0>;
134c2c62e61SMax Filippov			clocks = <&cdce706 4>;
135c2c62e61SMax Filippov		};
1365584b4daSMax Filippov	};
13708a7bbf6SMax Filippov};
138