summaryrefslogtreecommitdiffstats
path: root/arch/xtensa/boot/dts/xtfpga.dtsi
blob: ded56984dd238e96d49b98920e7657f53461e29c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
/ {
	compatible = "cdns,xtensa-xtfpga";
	#address-cells = <1>;
	#size-cells = <1>;
	interrupt-parent = <&pic>;

	chosen {
		bootargs = "earlycon=uart8250,mmio32native,0xfd050020,115200n8 console=ttyS0,115200n8 ip=dhcp root=/dev/nfs rw debug";
	};

	memory@0 {
		device_type = "memory";
		reg = <0x00000000 0x06000000>;
	};

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;
		cpu@0 {
			compatible = "cdns,xtensa-cpu";
			reg = <0>;
			/* Filled in by platform_setup from FPGA register
			 * clock-frequency = <100000000>;
			 */
		};
	};

	pic: pic {
		compatible = "cdns,xtensa-pic";
		/* one cell: internal irq number,
		 * two cells: second cell == 0: internal irq number
		 *            second cell == 1: external irq number
		 */
		#interrupt-cells = <2>;
		interrupt-controller;
	};

	clocks {
		clk54: clk54 {
			#clock-cells = <0>;
			compatible = "fixed-clock";
			clock-frequency = <54000000>;
		};
	};

	soc {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "simple-bus";
		ranges = <0x00000000 0xf0000000 0x10000000>;

		osc: main-oscillator {
			#clock-cells = <0>;
			compatible = "cdns,xtfpga-clock";
			reg = <0x0d020004 0x4>;
		};

		serial0: serial@0d050020 {
			device_type = "serial";
			compatible = "ns16550a";
			no-loopback-test;
			reg = <0x0d050020 0x20>;
			reg-shift = <2>;
			reg-io-width = <4>;
			native-endian;
			interrupts = <0 1>; /* external irq 0 */
			clocks = <&osc>;
		};

		enet0: ethoc@0d030000 {
			compatible = "opencores,ethoc";
			reg = <0x0d030000 0x4000 0x0d800000 0x4000>;
			native-endian;
			interrupts = <1 1>; /* external irq 1 */
			local-mac-address = [00 50 c2 13 6f 00];
			clocks = <&osc>;
		};

		i2s0: xtfpga-i2s@0d080000 {
			#sound-dai-cells = <0>;
			compatible = "cdns,xtfpga-i2s";
			reg = <0x0d080000 0x40>;
			interrupts = <2 1>; /* external irq 2 */
			clocks = <&cdce706 4>;
		};

		i2c0: i2c-master@0d090000 {
			compatible = "opencores,i2c-ocores";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x0d090000 0x20>;
			reg-shift = <2>;
			reg-io-width = <4>;
			native-endian;
			interrupts = <4 1>;
			clocks = <&osc>;

			cdce706: clock-synth@69 {
				compatible = "ti,cdce706";
				#clock-cells = <1>;
				reg = <0x69>;
				clocks = <&clk54>;
				clock-names = "clk_in0";
			};
		};

		spi0: spi-master@0d0a0000 {
			compatible = "cdns,xtfpga-spi";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x0d0a0000 0xc>;

			tlv320aic23: sound-codec@0 {
				#sound-dai-cells = <0>;
				compatible = "tlv320aic23";
				reg = <0>;
				spi-max-frequency = <12500000>;
			};
		};
	};

	sound {
		compatible = "simple-audio-card";
		simple-audio-card,format = "i2s";
		simple-audio-card,mclk-fs = <256>;

		simple-audio-card,cpu {
			sound-dai = <&i2s0>;
		};

		simple-audio-card,codec {
			sound-dai = <&tlv320aic23>;
			simple-audio-card,bitclock-master = <0>;
			simple-audio-card,frame-master = <0>;
			clocks = <&cdce706 4>;
		};
	};
};
OpenPOWER on IntegriCloud