1// SPDX-License-Identifier: GPL-2.0-or-later
2
3/dts-v1/;
4
5#include <dt-bindings/clock/clps711x-clock.h>
6
7/ {
8	#address-cells = <1>;
9	#size-cells = <1>;
10	model = "Cirrus Logic EP7209";
11	compatible = "cirrus,ep7209";
12
13	chosen { };
14
15	aliases {
16		gpio0 = &porta;
17		gpio1 = &portb;
18		gpio3 = &portd;
19		gpio4 = &porte;
20		serial0 = &uart1;
21		serial1 = &uart2;
22		spi0 = &spi;
23		timer0 = &timer1;
24		timer1 = &timer2;
25	};
26
27	cpus {
28		#address-cells = <0>;
29		#size-cells = <0>;
30
31		cpu {
32			device_type = "cpu";
33			compatible = "arm,arm720t";
34		};
35	};
36
37	soc {
38		#address-cells = <1>;
39		#size-cells = <1>;
40		compatible = "simple-bus";
41		interrupt-parent = <&intc>;
42		ranges;
43
44		clks: clks@80000000 {
45			#clock-cells = <1>;
46			compatible = "cirrus,ep7209-clk";
47			reg = <0x80000000 0xc000>;
48			startup-frequency = <73728000>;
49		};
50
51		intc: intc@80000000 {
52			compatible = "cirrus,ep7209-intc";
53			reg = <0x80000000 0x4000>;
54			interrupt-controller;
55			#interrupt-cells = <1>;
56		};
57
58		porta: gpio@80000000 {
59			compatible = "cirrus,ep7209-gpio";
60			reg = <0x80000000 0x1 0x80000040 0x1>;
61			gpio-controller;
62			#gpio-cells = <2>;
63		};
64
65		portb: gpio@80000001 {
66			compatible = "cirrus,ep7209-gpio";
67			reg = <0x80000001 0x1 0x80000041 0x1>;
68			gpio-controller;
69			#gpio-cells = <2>;
70		};
71
72		portd: gpio@80000003 {
73			compatible = "cirrus,ep7209-gpio";
74			reg = <0x80000003 0x1 0x80000043 0x1>;
75			gpio-controller;
76			#gpio-cells = <2>;
77		};
78
79		porte: gpio@80000083 {
80			compatible = "cirrus,ep7209-gpio";
81			reg = <0x80000083 0x1 0x800000c3 0x1>;
82			gpio-controller;
83			#gpio-cells = <2>;
84		};
85
86		syscon1: syscon@80000100 {
87			compatible = "cirrus,ep7209-syscon1", "syscon";
88			reg = <0x80000100 0x80>;
89		};
90
91		bus: bus@80000180 {
92			#address-cells = <2>;
93			#size-cells = <1>;
94			compatible = "cirrus,ep7209-bus", "simple-bus";
95			clocks = <&clks CLPS711X_CLK_BUS>;
96			reg = <0x80000180 0x80>;
97			ranges = <
98				0 0 0x00000000 0x10000000
99				1 0 0x10000000 0x10000000
100				2 0 0x20000000 0x10000000
101				3 0 0x30000000 0x10000000
102				4 0 0x40000000 0x10000000
103				5 0 0x50000000 0x10000000
104				6 0 0x60000000 0x0000c000
105				7 0 0x70000000 0x00000080
106			>;
107		};
108
109		fb: fb@800002c0 {
110			compatible = "cirrus,ep7209-fb";
111			reg = <0x800002c0 0xd44>, <0x60000000 0xc000>;
112			clocks = <&clks CLPS711X_CLK_BUS>;
113			syscon = <&syscon1>;
114			status = "disabled";
115		};
116
117		timer1: timer@80000300 {
118			compatible = "cirrus,ep7209-timer";
119			reg = <0x80000300 0x4>;
120			clocks = <&clks CLPS711X_CLK_TIMER1>;
121			interrupts = <8>;
122		};
123
124		timer2: timer@80000340 {
125			compatible = "cirrus,ep7209-timer";
126			reg = <0x80000340 0x4>;
127			clocks = <&clks CLPS711X_CLK_TIMER2>;
128			interrupts = <9>;
129		};
130
131		pwm: pwm@80000400 {
132			compatible = "cirrus,ep7209-pwm";
133			reg = <0x80000400 0x4>;
134			clocks = <&clks CLPS711X_CLK_PWM>;
135			#pwm-cells = <1>;
136		};
137
138		uart1: serial@80000480 {
139			compatible = "cirrus,ep7209-uart";
140			reg = <0x80000480 0x80>;
141			interrupts = <12 13>;
142			clocks = <&clks CLPS711X_CLK_UART>;
143			syscon = <&syscon1>;
144		};
145
146		spi: spi@80000500 {
147			#address-cells = <1>;
148			#size-cells = <0>;
149			compatible = "cirrus,ep7209-spi";
150			reg = <0x80000500 0x4>;
151			interrupts = <15>;
152			clocks = <&clks CLPS711X_CLK_SPI>;
153			syscon = <&syscon3>;
154			status = "disabled";
155		};
156
157		syscon2: syscon@80001100 {
158			compatible = "cirrus,ep7209-syscon2", "syscon";
159			reg = <0x80001100 0x80>;
160		};
161
162		uart2: serial@80001480 {
163			compatible = "cirrus,ep7209-uart";
164			reg = <0x80001480 0x80>;
165			interrupts = <28 29>;
166			clocks = <&clks CLPS711X_CLK_UART>;
167			syscon = <&syscon2>;
168		};
169
170		dai: dai@80002000 {
171			#sound-dai-cells = <0>;
172			compatible = "cirrus,ep7209-dai";
173			reg = <0x80002000 0x604>;
174			clocks = <&clks CLPS711X_CLK_PLL>;
175			clock-names = "pll";
176			interrupts = <32>;
177			syscon = <&syscon3>;
178			status = "disabled";
179		};
180
181		syscon3: syscon@80002200 {
182			compatible = "cirrus,ep7209-syscon3", "syscon";
183			reg = <0x80002200 0x40>;
184		};
185	};
186
187	keypad: keypad {
188		compatible = "cirrus,ep7209-keypad";
189		interrupt-parent = <&intc>;
190		interrupts = <16>;
191		syscon = <&syscon1>;
192		status = "disabled";
193	};
194
195	mctrl: mctrl {
196		compatible = "cirrus,ep7209-mctrl-gpio";
197		gpio,syscon-dev = <&syscon1 0 0>;
198		gpio-controller;
199		#gpio-cells = <2>;
200	};
201};
202