1266943Sbr/*-
2266943Sbr * Copyright (c) 2013-2014 Ruslan Bukin <br@bsdpad.com>
3266943Sbr * All rights reserved.
4266943Sbr *
5266943Sbr * Redistribution and use in source and binary forms, with or without
6266943Sbr * modification, are permitted provided that the following conditions
7266943Sbr * are met:
8266943Sbr * 1. Redistributions of source code must retain the above copyright
9266943Sbr *    notice, this list of conditions and the following disclaimer.
10266943Sbr * 2. Redistributions in binary form must reproduce the above copyright
11266943Sbr *    notice, this list of conditions and the following disclaimer in the
12266943Sbr *    documentation and/or other materials provided with the distribution.
13266943Sbr *
14266943Sbr * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15266943Sbr * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16266943Sbr * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17266943Sbr * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18266943Sbr * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19266943Sbr * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20266943Sbr * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21266943Sbr * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22266943Sbr * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23266943Sbr * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24266943Sbr * SUCH DAMAGE.
25266943Sbr *
26266943Sbr * $FreeBSD: releng/10.2/sys/boot/fdt/dts/arm/exynos5.dtsi 278599 2015-02-11 22:35:32Z ian $
27266943Sbr */
28266943Sbr
29266943Sbr/ {
30266943Sbr	compatible = "samsung,exynos5";
31266943Sbr	#address-cells = <1>;
32266943Sbr	#size-cells = <1>;
33266943Sbr	interrupt-parent = <&GIC>;
34266943Sbr
35266943Sbr	aliases {
36266943Sbr		soc = &SOC;
37266943Sbr		serial0 = &serial0;
38266943Sbr		serial1 = &serial1;
39266943Sbr		serial2 = &serial2;
40266943Sbr		serial3 = &serial3;
41266943Sbr		clk0 = &clk0;
42266943Sbr		dp0 = &dp0;
43266943Sbr		fimd0 = &fimd0;
44266943Sbr	};
45266943Sbr
46266943Sbr	SOC: Exynos5@0 {
47266943Sbr		#address-cells = <1>;
48266943Sbr		#size-cells = <1>;
49266943Sbr		compatible = "simple-bus";
50266943Sbr		ranges;
51266943Sbr		bus-frequency = <0>;
52266943Sbr
53266943Sbr		GIC: interrupt-controller@10481000 {
54266943Sbr			compatible = "arm,gic";
55266943Sbr			reg =	< 0x10481000 0x1000 >,	/* Distributor Registers */
56266943Sbr				< 0x10482000 0x2000 >;	/* CPU Interface Registers */
57266943Sbr			interrupt-controller;
58266943Sbr			#address-cells = <0>;
59266943Sbr			#interrupt-cells = <1>;
60266943Sbr		};
61266943Sbr
62266943Sbr		combiner: interrupt-controller@10440000 {
63266943Sbr			compatible = "exynos,combiner";
64266943Sbr			reg = <0x10440000 0x1000>;
65266943Sbr			interrupts = < 32 33 34 35 36 37 38 39
66266943Sbr				       40 41 42 43 44 45 46 47
67266943Sbr				       48 49 50 51 52 53 54 55
68266943Sbr				       56 57 58 59 60 61 62 63 >;
69266943Sbr			interrupt-parent = <&GIC>;
70266943Sbr		};
71266943Sbr
72266943Sbr		clk0: clk@10010000 {
73266943Sbr			compatible = "exynos,clk";
74266943Sbr			reg = < 0x10020000 0x20000 >;
75266943Sbr		};
76266943Sbr
77266943Sbr		mct {
78266943Sbr			compatible = "exynos,mct";
79266943Sbr			reg = < 0x101C0000 0x1000 >;
80266943Sbr			clock-frequency = <24000000>;
81266943Sbr		};
82266943Sbr
83266943Sbr		generic_timer {
84266943Sbr			compatible = "arm,armv7-timer";
85266943Sbr			clock-frequency = <24000000>;
86266943Sbr			interrupts = < 29 30 27 26 >;
87266943Sbr			interrupt-parent = <&GIC>;
88266943Sbr		};
89266943Sbr
90266943Sbr		pwm {
91266943Sbr			compatible = "samsung,s3c24x0-timer";
92266943Sbr			reg = <0x12DD0000 0x1000>;
93266943Sbr			interrupts = < 71 >;
94266943Sbr			interrupt-parent = <&GIC>;
95266943Sbr			clock-frequency = <24000000>;
96266943Sbr		};
97266943Sbr
98266943Sbr		pad0: pad@11400000 {
99266943Sbr			compatible = "exynos,pad";
100266943Sbr			status = "disabled";
101266943Sbr			reg = <0x11400000 0x1000>, /* gpio left */
102266943Sbr			      <0x13400000 0x1000>, /* gpio right */
103266943Sbr			      <0x10D10000 0x1000>, /* gpio c2c */
104266943Sbr			      <0x03860000 0x1000>;
105266943Sbr			interrupts = < 78 77 82 79 >;
106266943Sbr			interrupt-parent = <&GIC>;
107266943Sbr		};
108266943Sbr
109266943Sbr		usb@12110000 {
110266943Sbr			compatible = "exynos,usb-ehci", "usb-ehci";
111266943Sbr			reg = <0x12110000 0x1000>, /* EHCI */
112266943Sbr			      <0x12130000 0x1000>, /* EHCI host ctrl */
113266943Sbr			      <0x10040000 0x1000>, /* Power */
114266943Sbr			      <0x10050230 0x10>; /* Sysreg */
115266943Sbr			interrupts = < 103 >;
116266943Sbr			interrupt-parent = <&GIC>;
117266943Sbr		};
118266943Sbr
119266943Sbr		usb@12120000 {
120266943Sbr			compatible = "exynos,usb-ohci", "usb-ohci";
121266943Sbr			status = "disabled";
122266943Sbr			reg = <0x12120000 0x10000>;
123266943Sbr			interrupts = < 103 >;
124266943Sbr			interrupt-parent = <&GIC>;
125266943Sbr		};
126266943Sbr
127266943Sbr		sdhci@12200000 {
128266943Sbr			compatible = "sdhci_generic";
129266943Sbr			status = "disabled";
130266943Sbr			reg = <0x12200000 0x1000>;
131266943Sbr			interrupts = <107>;
132266943Sbr			interrupt-parent = <&GIC>;
133266943Sbr			max-frequency = <24000000>; /* TODO: verify freq */
134266943Sbr		};
135266943Sbr
136266943Sbr		sdhci@12210000 {
137266943Sbr			compatible = "sdhci_generic";
138266943Sbr			status = "disabled";
139266943Sbr			reg = <0x12210000 0x1000>;
140266943Sbr			interrupts = <108>;
141266943Sbr			interrupt-parent = <&GIC>;
142266943Sbr			max-frequency = <24000000>;
143266943Sbr		};
144266943Sbr
145266943Sbr		sdhci@12220000 {
146266943Sbr			compatible = "sdhci_generic";
147266943Sbr			status = "disabled";
148266943Sbr			reg = <0x12220000 0x1000>;
149266943Sbr			interrupts = <109>;
150266943Sbr			interrupt-parent = <&GIC>;
151266943Sbr			max-frequency = <24000000>;
152266943Sbr		};
153266943Sbr
154266943Sbr		sdhci@12230000 {
155266943Sbr			compatible = "sdhci_generic";
156266943Sbr			status = "disabled";
157266943Sbr			reg = <0x12230000 0x1000>;
158266943Sbr			interrupts = <110>;
159266943Sbr			interrupt-parent = <&GIC>;
160266943Sbr			max-frequency = <24000000>;
161266943Sbr		};
162266943Sbr
163266943Sbr		serial0: serial@12C00000 {
164266943Sbr			compatible = "exynos";
165266943Sbr			status = "disabled";
166266943Sbr			reg = <0x12C00000 0x100>;
167266943Sbr			interrupts = < 83 >;
168266943Sbr			interrupt-parent = <&GIC>;
169266943Sbr			clock-frequency = < 100000000 >;
170266943Sbr			current-speed = <115200>;
171266943Sbr		};
172266943Sbr
173266943Sbr		serial1: serial@12C10000 {
174266943Sbr			compatible = "exynos";
175266943Sbr			status = "disabled";
176266943Sbr			reg = <0x12C10000 0x100>;
177266943Sbr			interrupts = < 84 >;
178266943Sbr			interrupt-parent = <&GIC>;
179266943Sbr			clock-frequency = < 100000000 >;
180266943Sbr			current-speed = <115200>;
181266943Sbr		};
182266943Sbr
183266943Sbr		serial2: serial@12C20000 {
184266943Sbr			compatible = "exynos";
185266943Sbr			status = "disabled";
186266943Sbr			reg = <0x12C20000 0x100>;
187266943Sbr			interrupts = < 85 >;
188266943Sbr			interrupt-parent = <&GIC>;
189266943Sbr			clock-frequency = < 100000000 >;
190266943Sbr			current-speed = <115200>;
191266943Sbr		};
192266943Sbr
193266943Sbr		serial3: serial@12C30000 {
194266943Sbr			compatible = "exynos";
195266943Sbr			status = "disabled";
196266943Sbr			reg = <0x12C30000 0x100>;
197266943Sbr			interrupts = < 86 >;
198266943Sbr			interrupt-parent = <&GIC>;
199266943Sbr			clock-frequency = < 100000000 >;
200266943Sbr			current-speed = <115200>;
201266943Sbr		};
202266943Sbr
203266943Sbr		i2c0: i2c@12C60000 {
204266943Sbr			compatible = "exynos,i2c";
205266943Sbr			status = "disabled";
206266943Sbr			reg = <0x12C60000 0x10000>;
207266943Sbr			interrupts = < 88 >;
208266943Sbr			interrupt-parent = <&GIC>;
209266943Sbr		};
210266943Sbr
211266943Sbr		i2c1: i2c@12C70000 {
212266943Sbr			compatible = "exynos,i2c";
213266943Sbr			status = "disabled";
214266943Sbr			reg = <0x12C70000 0x10000>;
215266943Sbr			interrupts = < 89 >;
216266943Sbr			interrupt-parent = <&GIC>;
217266943Sbr		};
218266943Sbr
219266943Sbr		i2c2: i2c@12C80000 {
220266943Sbr			compatible = "exynos,i2c";
221266943Sbr			status = "disabled";
222266943Sbr			reg = <0x12C80000 0x10000>;
223266943Sbr			interrupts = < 90 >;
224266943Sbr			interrupt-parent = <&GIC>;
225266943Sbr		};
226266943Sbr
227266943Sbr		i2c3: i2c@12C90000 {
228266943Sbr			compatible = "exynos,i2c";
229266943Sbr			status = "disabled";
230266943Sbr			reg = <0x12C90000 0x10000>;
231266943Sbr			interrupts = < 91 >;
232266943Sbr			interrupt-parent = <&GIC>;
233266943Sbr		};
234266943Sbr
235266943Sbr		i2c4: i2c@12CA0000 {
236266943Sbr			compatible = "exynos,i2c";
237266943Sbr			status = "disabled";
238266943Sbr			reg = <0x12CA0000 0x10000>;
239266943Sbr			interrupts = < 92 >;
240266943Sbr			interrupt-parent = <&GIC>;
241266943Sbr		};
242266943Sbr
243266943Sbr		i2c5: i2c@12CB0000 {
244266943Sbr			compatible = "exynos,i2c";
245266943Sbr			status = "disabled";
246266943Sbr			reg = <0x12CB0000 0x10000>;
247266943Sbr			interrupts = < 93 >;
248266943Sbr			interrupt-parent = <&GIC>;
249266943Sbr		};
250266943Sbr
251266943Sbr		i2c6: i2c@12CC0000 {
252266943Sbr			compatible = "exynos,i2c";
253266943Sbr			status = "disabled";
254266943Sbr			reg = <0x12CC0000 0x10000>;
255266943Sbr			interrupts = < 94 >;
256266943Sbr			interrupt-parent = <&GIC>;
257266943Sbr		};
258266943Sbr
259266943Sbr		i2c7: i2c@12CD0000 {
260266943Sbr			compatible = "exynos,i2c";
261266943Sbr			status = "disabled";
262266943Sbr			reg = <0x12CD0000 0x10000>;
263266943Sbr			interrupts = < 95 >;
264266943Sbr			interrupt-parent = <&GIC>;
265266943Sbr		};
266266943Sbr
267266943Sbr		fimd0: fimd@14400000 {
268266943Sbr			compatible = "exynos,fimd";
269266943Sbr			status = "disabled";
270266943Sbr			reg = < 0x14400000 0x10000 >, /* fimd */
271266943Sbr			      < 0x14420000 0x10000 >, /* disp */
272266943Sbr			      < 0x10050000 0x220 >; /* sysreg */
273266943Sbr			interrupt-parent = <&GIC>;
274266943Sbr		};
275266943Sbr
276266943Sbr		dp0: dp@145B0000 {
277266943Sbr			compatible = "exynos,dp";
278266943Sbr			status = "disabled";
279266943Sbr			reg = < 0x145B0000 0x10000 >,
280266943Sbr			      < 0x10040720 0x10 >; /* PHY */
281266943Sbr			interrupt-parent = <&GIC>;
282266943Sbr		};
283266943Sbr	};
284266943Sbr};
285