xref: /OK3568_Linux_fs/kernel/arch/xtensa/boot/dts/xtfpga.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun/ {
3*4882a593Smuzhiyun	compatible = "cdns,xtensa-xtfpga";
4*4882a593Smuzhiyun	#address-cells = <1>;
5*4882a593Smuzhiyun	#size-cells = <1>;
6*4882a593Smuzhiyun	interrupt-parent = <&pic>;
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun	chosen {
9*4882a593Smuzhiyun		bootargs = "earlycon=uart8250,mmio32native,0xfd050020,115200n8 console=ttyS0,115200n8 ip=dhcp root=/dev/nfs rw debug";
10*4882a593Smuzhiyun	};
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun	memory@0 {
13*4882a593Smuzhiyun		device_type = "memory";
14*4882a593Smuzhiyun		reg = <0x00000000 0x06000000>;
15*4882a593Smuzhiyun	};
16*4882a593Smuzhiyun
17*4882a593Smuzhiyun	cpus {
18*4882a593Smuzhiyun		#address-cells = <1>;
19*4882a593Smuzhiyun		#size-cells = <0>;
20*4882a593Smuzhiyun		cpu@0 {
21*4882a593Smuzhiyun			compatible = "cdns,xtensa-cpu";
22*4882a593Smuzhiyun			reg = <0>;
23*4882a593Smuzhiyun			clocks = <&osc>;
24*4882a593Smuzhiyun		};
25*4882a593Smuzhiyun	};
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun	pic: pic {
28*4882a593Smuzhiyun		compatible = "cdns,xtensa-pic";
29*4882a593Smuzhiyun		/* one cell: internal irq number,
30*4882a593Smuzhiyun		 * two cells: second cell == 0: internal irq number
31*4882a593Smuzhiyun		 *            second cell == 1: external irq number
32*4882a593Smuzhiyun		 */
33*4882a593Smuzhiyun		#interrupt-cells = <2>;
34*4882a593Smuzhiyun		interrupt-controller;
35*4882a593Smuzhiyun	};
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun	clocks {
38*4882a593Smuzhiyun		clk54: clk54 {
39*4882a593Smuzhiyun			#clock-cells = <0>;
40*4882a593Smuzhiyun			compatible = "fixed-clock";
41*4882a593Smuzhiyun			clock-frequency = <54000000>;
42*4882a593Smuzhiyun		};
43*4882a593Smuzhiyun	};
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun	soc {
46*4882a593Smuzhiyun		#address-cells = <1>;
47*4882a593Smuzhiyun		#size-cells = <1>;
48*4882a593Smuzhiyun		compatible = "simple-bus";
49*4882a593Smuzhiyun		ranges = <0x00000000 0xf0000000 0x10000000>;
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun		osc: main-oscillator {
52*4882a593Smuzhiyun			#clock-cells = <0>;
53*4882a593Smuzhiyun			compatible = "cdns,xtfpga-clock";
54*4882a593Smuzhiyun			reg = <0x0d020004 0x4>;
55*4882a593Smuzhiyun		};
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun		serial0: serial@0d050020 {
58*4882a593Smuzhiyun			device_type = "serial";
59*4882a593Smuzhiyun			compatible = "ns16550a";
60*4882a593Smuzhiyun			no-loopback-test;
61*4882a593Smuzhiyun			reg = <0x0d050020 0x20>;
62*4882a593Smuzhiyun			reg-shift = <2>;
63*4882a593Smuzhiyun			reg-io-width = <4>;
64*4882a593Smuzhiyun			native-endian;
65*4882a593Smuzhiyun			interrupts = <0 1>; /* external irq 0 */
66*4882a593Smuzhiyun			clocks = <&osc>;
67*4882a593Smuzhiyun		};
68*4882a593Smuzhiyun
69*4882a593Smuzhiyun		enet0: ethoc@0d030000 {
70*4882a593Smuzhiyun			compatible = "opencores,ethoc";
71*4882a593Smuzhiyun			reg = <0x0d030000 0x4000 0x0d800000 0x4000>;
72*4882a593Smuzhiyun			native-endian;
73*4882a593Smuzhiyun			interrupts = <1 1>; /* external irq 1 */
74*4882a593Smuzhiyun			local-mac-address = [00 50 c2 13 6f 00];
75*4882a593Smuzhiyun			clocks = <&osc>;
76*4882a593Smuzhiyun		};
77*4882a593Smuzhiyun
78*4882a593Smuzhiyun		i2s0: xtfpga-i2s@0d080000 {
79*4882a593Smuzhiyun			#sound-dai-cells = <0>;
80*4882a593Smuzhiyun			compatible = "cdns,xtfpga-i2s";
81*4882a593Smuzhiyun			reg = <0x0d080000 0x40>;
82*4882a593Smuzhiyun			interrupts = <2 1>; /* external irq 2 */
83*4882a593Smuzhiyun			clocks = <&cdce706 4>;
84*4882a593Smuzhiyun		};
85*4882a593Smuzhiyun
86*4882a593Smuzhiyun		i2c0: i2c-master@0d090000 {
87*4882a593Smuzhiyun			compatible = "opencores,i2c-ocores";
88*4882a593Smuzhiyun			#address-cells = <1>;
89*4882a593Smuzhiyun			#size-cells = <0>;
90*4882a593Smuzhiyun			reg = <0x0d090000 0x20>;
91*4882a593Smuzhiyun			reg-shift = <2>;
92*4882a593Smuzhiyun			reg-io-width = <4>;
93*4882a593Smuzhiyun			native-endian;
94*4882a593Smuzhiyun			interrupts = <4 1>;
95*4882a593Smuzhiyun			clocks = <&osc>;
96*4882a593Smuzhiyun
97*4882a593Smuzhiyun			cdce706: clock-synth@69 {
98*4882a593Smuzhiyun				compatible = "ti,cdce706";
99*4882a593Smuzhiyun				#clock-cells = <1>;
100*4882a593Smuzhiyun				reg = <0x69>;
101*4882a593Smuzhiyun				clocks = <&clk54>;
102*4882a593Smuzhiyun				clock-names = "clk_in0";
103*4882a593Smuzhiyun			};
104*4882a593Smuzhiyun		};
105*4882a593Smuzhiyun
106*4882a593Smuzhiyun		spi0: spi@0d0a0000 {
107*4882a593Smuzhiyun			compatible = "cdns,xtfpga-spi";
108*4882a593Smuzhiyun			#address-cells = <1>;
109*4882a593Smuzhiyun			#size-cells = <0>;
110*4882a593Smuzhiyun			reg = <0x0d0a0000 0xc>;
111*4882a593Smuzhiyun
112*4882a593Smuzhiyun			tlv320aic23: sound-codec@0 {
113*4882a593Smuzhiyun				#sound-dai-cells = <0>;
114*4882a593Smuzhiyun				compatible = "tlv320aic23";
115*4882a593Smuzhiyun				reg = <0>;
116*4882a593Smuzhiyun				spi-max-frequency = <12500000>;
117*4882a593Smuzhiyun			};
118*4882a593Smuzhiyun		};
119*4882a593Smuzhiyun	};
120*4882a593Smuzhiyun
121*4882a593Smuzhiyun	sound {
122*4882a593Smuzhiyun		compatible = "simple-audio-card";
123*4882a593Smuzhiyun		simple-audio-card,format = "i2s";
124*4882a593Smuzhiyun		simple-audio-card,mclk-fs = <256>;
125*4882a593Smuzhiyun
126*4882a593Smuzhiyun		simple-audio-card,cpu {
127*4882a593Smuzhiyun			sound-dai = <&i2s0>;
128*4882a593Smuzhiyun		};
129*4882a593Smuzhiyun
130*4882a593Smuzhiyun		simple-audio-card,codec {
131*4882a593Smuzhiyun			sound-dai = <&tlv320aic23>;
132*4882a593Smuzhiyun			simple-audio-card,bitclock-master = <0>;
133*4882a593Smuzhiyun			simple-audio-card,frame-master = <0>;
134*4882a593Smuzhiyun			clocks = <&cdce706 4>;
135*4882a593Smuzhiyun		};
136*4882a593Smuzhiyun	};
137*4882a593Smuzhiyun};
138