xref: /freebsd-src/sys/contrib/device-tree/src/arm/nxp/imx/imx1.dtsi (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
1f126890aSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0+
2f126890aSEmmanuel Vadot//
3f126890aSEmmanuel Vadot// Copyright (C) 2014 Alexander Shiyan <shc_work@mail.ru>
4f126890aSEmmanuel Vadot
5f126890aSEmmanuel Vadot#include "imx1-pinfunc.h"
6f126890aSEmmanuel Vadot
7f126890aSEmmanuel Vadot#include <dt-bindings/clock/imx1-clock.h>
8f126890aSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
9f126890aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h>
10f126890aSEmmanuel Vadot
11f126890aSEmmanuel Vadot/ {
12f126890aSEmmanuel Vadot	#address-cells = <1>;
13f126890aSEmmanuel Vadot	#size-cells = <1>;
14f126890aSEmmanuel Vadot	/*
15f126890aSEmmanuel Vadot	 * The decompressor and also some bootloaders rely on a
16f126890aSEmmanuel Vadot	 * pre-existing /chosen node to be available to insert the
17f126890aSEmmanuel Vadot	 * command line and merge other ATAGS info.
18f126890aSEmmanuel Vadot	 */
19f126890aSEmmanuel Vadot	chosen {};
20f126890aSEmmanuel Vadot
21f126890aSEmmanuel Vadot	aliases {
22f126890aSEmmanuel Vadot		gpio0 = &gpio1;
23f126890aSEmmanuel Vadot		gpio1 = &gpio2;
24f126890aSEmmanuel Vadot		gpio2 = &gpio3;
25f126890aSEmmanuel Vadot		gpio3 = &gpio4;
26f126890aSEmmanuel Vadot		i2c0 = &i2c;
27f126890aSEmmanuel Vadot		serial0 = &uart1;
28f126890aSEmmanuel Vadot		serial1 = &uart2;
29f126890aSEmmanuel Vadot		serial2 = &uart3;
30f126890aSEmmanuel Vadot		spi0 = &cspi1;
31f126890aSEmmanuel Vadot		spi1 = &cspi2;
32f126890aSEmmanuel Vadot	};
33f126890aSEmmanuel Vadot
34f126890aSEmmanuel Vadot	aitc: aitc-interrupt-controller@223000 {
35f126890aSEmmanuel Vadot		compatible = "fsl,imx1-aitc", "fsl,avic";
36f126890aSEmmanuel Vadot		interrupt-controller;
37f126890aSEmmanuel Vadot		#interrupt-cells = <1>;
38f126890aSEmmanuel Vadot		reg = <0x00223000 0x1000>;
39f126890aSEmmanuel Vadot	};
40f126890aSEmmanuel Vadot
41f126890aSEmmanuel Vadot	cpus {
42f126890aSEmmanuel Vadot		#size-cells = <0>;
43f126890aSEmmanuel Vadot		#address-cells = <1>;
44f126890aSEmmanuel Vadot
45f126890aSEmmanuel Vadot		cpu@0 {
46f126890aSEmmanuel Vadot			device_type = "cpu";
47f126890aSEmmanuel Vadot			reg = <0>;
48f126890aSEmmanuel Vadot			compatible = "arm,arm920t";
49f126890aSEmmanuel Vadot			operating-points = <200000 1900000>;
50f126890aSEmmanuel Vadot			clock-latency = <62500>;
51f126890aSEmmanuel Vadot			clocks = <&clks IMX1_CLK_MCU>;
52f126890aSEmmanuel Vadot			voltage-tolerance = <5>;
53f126890aSEmmanuel Vadot		};
54f126890aSEmmanuel Vadot	};
55f126890aSEmmanuel Vadot
56f126890aSEmmanuel Vadot	clocks {
57f126890aSEmmanuel Vadot		clk32 {
58f126890aSEmmanuel Vadot			compatible = "fixed-clock";
59f126890aSEmmanuel Vadot			#clock-cells = <0>;
60f126890aSEmmanuel Vadot			clock-frequency = <32000>;
61f126890aSEmmanuel Vadot		};
62f126890aSEmmanuel Vadot	};
63f126890aSEmmanuel Vadot
64f126890aSEmmanuel Vadot	soc {
65f126890aSEmmanuel Vadot		#address-cells = <1>;
66f126890aSEmmanuel Vadot		#size-cells = <1>;
67f126890aSEmmanuel Vadot		compatible = "simple-bus";
68f126890aSEmmanuel Vadot		interrupt-parent = <&aitc>;
69f126890aSEmmanuel Vadot		ranges;
70f126890aSEmmanuel Vadot
718d13bc63SEmmanuel Vadot		bus@200000 {
72f126890aSEmmanuel Vadot			compatible = "fsl,aipi-bus", "simple-bus";
73f126890aSEmmanuel Vadot			#address-cells = <1>;
74f126890aSEmmanuel Vadot			#size-cells = <1>;
75f126890aSEmmanuel Vadot			reg = <0x00200000 0x10000>;
76f126890aSEmmanuel Vadot			ranges;
77f126890aSEmmanuel Vadot
78f126890aSEmmanuel Vadot			gpt1: timer@202000 {
79f126890aSEmmanuel Vadot				compatible = "fsl,imx1-gpt";
80f126890aSEmmanuel Vadot				reg = <0x00202000 0x1000>;
81f126890aSEmmanuel Vadot				interrupts = <59>;
82f126890aSEmmanuel Vadot				clocks = <&clks IMX1_CLK_HCLK>,
83f126890aSEmmanuel Vadot					 <&clks IMX1_CLK_PER1>;
84f126890aSEmmanuel Vadot				clock-names = "ipg", "per";
85f126890aSEmmanuel Vadot			};
86f126890aSEmmanuel Vadot
87f126890aSEmmanuel Vadot			gpt2: timer@203000 {
88f126890aSEmmanuel Vadot				compatible = "fsl,imx1-gpt";
89f126890aSEmmanuel Vadot				reg = <0x00203000 0x1000>;
90f126890aSEmmanuel Vadot				interrupts = <58>;
91f126890aSEmmanuel Vadot				clocks = <&clks IMX1_CLK_HCLK>,
92f126890aSEmmanuel Vadot					 <&clks IMX1_CLK_PER1>;
93f126890aSEmmanuel Vadot				clock-names = "ipg", "per";
94f126890aSEmmanuel Vadot			};
95f126890aSEmmanuel Vadot
96f126890aSEmmanuel Vadot			fb: fb@205000 {
97f126890aSEmmanuel Vadot				compatible = "fsl,imx1-fb";
98f126890aSEmmanuel Vadot				reg = <0x00205000 0x1000>;
99f126890aSEmmanuel Vadot				interrupts = <14>;
100f126890aSEmmanuel Vadot				clocks = <&clks IMX1_CLK_DUMMY>,
101f126890aSEmmanuel Vadot					 <&clks IMX1_CLK_DUMMY>,
102f126890aSEmmanuel Vadot					 <&clks IMX1_CLK_PER2>;
103f126890aSEmmanuel Vadot				clock-names = "ipg", "ahb", "per";
104f126890aSEmmanuel Vadot				status = "disabled";
105f126890aSEmmanuel Vadot			};
106f126890aSEmmanuel Vadot
107f126890aSEmmanuel Vadot			uart1: serial@206000 {
108f126890aSEmmanuel Vadot				compatible = "fsl,imx1-uart";
109f126890aSEmmanuel Vadot				reg = <0x00206000 0x1000>;
110f126890aSEmmanuel Vadot				interrupts = <30 29 26>;
111f126890aSEmmanuel Vadot				clocks = <&clks IMX1_CLK_HCLK>,
112f126890aSEmmanuel Vadot					 <&clks IMX1_CLK_PER1>;
113f126890aSEmmanuel Vadot				clock-names = "ipg", "per";
114f126890aSEmmanuel Vadot				status = "disabled";
115f126890aSEmmanuel Vadot			};
116f126890aSEmmanuel Vadot
117f126890aSEmmanuel Vadot			uart2: serial@207000 {
118f126890aSEmmanuel Vadot				compatible = "fsl,imx1-uart";
119f126890aSEmmanuel Vadot				reg = <0x00207000 0x1000>;
120f126890aSEmmanuel Vadot				interrupts = <24 23 20>;
121f126890aSEmmanuel Vadot				clocks = <&clks IMX1_CLK_HCLK>,
122f126890aSEmmanuel Vadot					 <&clks IMX1_CLK_PER1>;
123f126890aSEmmanuel Vadot				clock-names = "ipg", "per";
124f126890aSEmmanuel Vadot				status = "disabled";
125f126890aSEmmanuel Vadot			};
126f126890aSEmmanuel Vadot
127f126890aSEmmanuel Vadot			pwm: pwm@208000 {
128f126890aSEmmanuel Vadot				#pwm-cells = <3>;
129f126890aSEmmanuel Vadot				compatible = "fsl,imx1-pwm";
130f126890aSEmmanuel Vadot				reg = <0x00208000 0x1000>;
131f126890aSEmmanuel Vadot				interrupts = <34>;
132f126890aSEmmanuel Vadot				clocks = <&clks IMX1_CLK_DUMMY>,
133f126890aSEmmanuel Vadot					 <&clks IMX1_CLK_PER1>;
134f126890aSEmmanuel Vadot				clock-names = "ipg", "per";
135f126890aSEmmanuel Vadot			};
136f126890aSEmmanuel Vadot
137*b2d2a78aSEmmanuel Vadot			dma: dma-controller@209000 {
138f126890aSEmmanuel Vadot				compatible = "fsl,imx1-dma";
139f126890aSEmmanuel Vadot				reg = <0x00209000 0x1000>;
140f126890aSEmmanuel Vadot				interrupts = <61 60>;
141f126890aSEmmanuel Vadot				clocks = <&clks IMX1_CLK_HCLK>,
142f126890aSEmmanuel Vadot					 <&clks IMX1_CLK_DMA_GATE>;
143f126890aSEmmanuel Vadot				clock-names = "ipg", "ahb";
144f126890aSEmmanuel Vadot				#dma-cells = <1>;
145f126890aSEmmanuel Vadot			};
146f126890aSEmmanuel Vadot
147f126890aSEmmanuel Vadot			uart3: serial@20a000 {
148f126890aSEmmanuel Vadot				compatible = "fsl,imx1-uart";
149f126890aSEmmanuel Vadot				reg = <0x0020a000 0x1000>;
150f126890aSEmmanuel Vadot				interrupts = <54 4 1>;
151f126890aSEmmanuel Vadot				clocks = <&clks IMX1_CLK_UART3_GATE>,
152f126890aSEmmanuel Vadot					 <&clks IMX1_CLK_PER1>;
153f126890aSEmmanuel Vadot				clock-names = "ipg", "per";
154f126890aSEmmanuel Vadot				status = "disabled";
155f126890aSEmmanuel Vadot			};
156f126890aSEmmanuel Vadot		};
157f126890aSEmmanuel Vadot
1588d13bc63SEmmanuel Vadot		bus@210000 {
159f126890aSEmmanuel Vadot			compatible = "fsl,aipi-bus", "simple-bus";
160f126890aSEmmanuel Vadot			#address-cells = <1>;
161f126890aSEmmanuel Vadot			#size-cells = <1>;
162f126890aSEmmanuel Vadot			reg = <0x00210000 0x10000>;
163f126890aSEmmanuel Vadot			ranges;
164f126890aSEmmanuel Vadot
165f126890aSEmmanuel Vadot			cspi1: spi@213000 {
166f126890aSEmmanuel Vadot				#address-cells = <1>;
167f126890aSEmmanuel Vadot				#size-cells = <0>;
168f126890aSEmmanuel Vadot				compatible = "fsl,imx1-cspi";
169f126890aSEmmanuel Vadot				reg = <0x00213000 0x1000>;
170f126890aSEmmanuel Vadot				interrupts = <41>;
171f126890aSEmmanuel Vadot				clocks = <&clks IMX1_CLK_DUMMY>,
172f126890aSEmmanuel Vadot					 <&clks IMX1_CLK_PER1>;
173f126890aSEmmanuel Vadot				clock-names = "ipg", "per";
174f126890aSEmmanuel Vadot				status = "disabled";
175f126890aSEmmanuel Vadot			};
176f126890aSEmmanuel Vadot
177f126890aSEmmanuel Vadot			i2c: i2c@217000 {
178f126890aSEmmanuel Vadot				#address-cells = <1>;
179f126890aSEmmanuel Vadot				#size-cells = <0>;
180f126890aSEmmanuel Vadot				compatible = "fsl,imx1-i2c";
181f126890aSEmmanuel Vadot				reg = <0x00217000 0x1000>;
182f126890aSEmmanuel Vadot				interrupts = <39>;
183f126890aSEmmanuel Vadot				clocks = <&clks IMX1_CLK_HCLK>;
184f126890aSEmmanuel Vadot				status = "disabled";
185f126890aSEmmanuel Vadot			};
186f126890aSEmmanuel Vadot
187f126890aSEmmanuel Vadot			cspi2: spi@219000 {
188f126890aSEmmanuel Vadot				#address-cells = <1>;
189f126890aSEmmanuel Vadot				#size-cells = <0>;
190f126890aSEmmanuel Vadot				compatible = "fsl,imx1-cspi";
191f126890aSEmmanuel Vadot				reg = <0x00219000 0x1000>;
192f126890aSEmmanuel Vadot				interrupts = <40>;
193f126890aSEmmanuel Vadot				clocks = <&clks IMX1_CLK_DUMMY>,
194f126890aSEmmanuel Vadot					 <&clks IMX1_CLK_PER1>;
195f126890aSEmmanuel Vadot				clock-names = "ipg", "per";
196f126890aSEmmanuel Vadot				status = "disabled";
197f126890aSEmmanuel Vadot			};
198f126890aSEmmanuel Vadot
199f126890aSEmmanuel Vadot			clks: ccm@21b000 {
200f126890aSEmmanuel Vadot				compatible = "fsl,imx1-ccm";
201f126890aSEmmanuel Vadot				reg = <0x0021b000 0x1000>;
202f126890aSEmmanuel Vadot				#clock-cells = <1>;
203f126890aSEmmanuel Vadot			};
204f126890aSEmmanuel Vadot
205f126890aSEmmanuel Vadot			iomuxc: iomuxc@21c000 {
206f126890aSEmmanuel Vadot				compatible = "fsl,imx1-iomuxc";
207f126890aSEmmanuel Vadot				reg = <0x0021c000 0x1000>;
208f126890aSEmmanuel Vadot				#address-cells = <1>;
209f126890aSEmmanuel Vadot				#size-cells = <1>;
210f126890aSEmmanuel Vadot				ranges;
211f126890aSEmmanuel Vadot
212f126890aSEmmanuel Vadot				gpio1: gpio@21c000 {
213f126890aSEmmanuel Vadot					compatible = "fsl,imx1-gpio";
214f126890aSEmmanuel Vadot					reg = <0x0021c000 0x100>;
215f126890aSEmmanuel Vadot					interrupts = <11>;
216f126890aSEmmanuel Vadot					gpio-controller;
217f126890aSEmmanuel Vadot					#gpio-cells = <2>;
218f126890aSEmmanuel Vadot					interrupt-controller;
219f126890aSEmmanuel Vadot					#interrupt-cells = <2>;
220f126890aSEmmanuel Vadot				};
221f126890aSEmmanuel Vadot
222f126890aSEmmanuel Vadot				gpio2: gpio@21c100 {
223f126890aSEmmanuel Vadot					compatible = "fsl,imx1-gpio";
224f126890aSEmmanuel Vadot					reg = <0x0021c100 0x100>;
225f126890aSEmmanuel Vadot					interrupts = <12>;
226f126890aSEmmanuel Vadot					gpio-controller;
227f126890aSEmmanuel Vadot					#gpio-cells = <2>;
228f126890aSEmmanuel Vadot					interrupt-controller;
229f126890aSEmmanuel Vadot					#interrupt-cells = <2>;
230f126890aSEmmanuel Vadot				};
231f126890aSEmmanuel Vadot
232f126890aSEmmanuel Vadot				gpio3: gpio@21c200 {
233f126890aSEmmanuel Vadot					compatible = "fsl,imx1-gpio";
234f126890aSEmmanuel Vadot					reg = <0x0021c200 0x100>;
235f126890aSEmmanuel Vadot					interrupts = <13>;
236f126890aSEmmanuel Vadot					gpio-controller;
237f126890aSEmmanuel Vadot					#gpio-cells = <2>;
238f126890aSEmmanuel Vadot					interrupt-controller;
239f126890aSEmmanuel Vadot					#interrupt-cells = <2>;
240f126890aSEmmanuel Vadot				};
241f126890aSEmmanuel Vadot
242f126890aSEmmanuel Vadot				gpio4: gpio@21c300 {
243f126890aSEmmanuel Vadot					compatible = "fsl,imx1-gpio";
244f126890aSEmmanuel Vadot					reg = <0x0021c300 0x100>;
245f126890aSEmmanuel Vadot					interrupts = <62>;
246f126890aSEmmanuel Vadot					gpio-controller;
247f126890aSEmmanuel Vadot					#gpio-cells = <2>;
248f126890aSEmmanuel Vadot					interrupt-controller;
249f126890aSEmmanuel Vadot					#interrupt-cells = <2>;
250f126890aSEmmanuel Vadot				};
251f126890aSEmmanuel Vadot			};
252f126890aSEmmanuel Vadot		};
253f126890aSEmmanuel Vadot
25401950c46SEmmanuel Vadot		weim: memory-controller@220000 {
255f126890aSEmmanuel Vadot			#address-cells = <2>;
256f126890aSEmmanuel Vadot			#size-cells = <1>;
257f126890aSEmmanuel Vadot			compatible = "fsl,imx1-weim";
258f126890aSEmmanuel Vadot			reg = <0x00220000 0x1000>;
259f126890aSEmmanuel Vadot			clocks = <&clks IMX1_CLK_DUMMY>;
260f126890aSEmmanuel Vadot			ranges = <
261f126890aSEmmanuel Vadot				0 0 0x10000000 0x02000000
262f126890aSEmmanuel Vadot				1 0 0x12000000 0x01000000
263f126890aSEmmanuel Vadot				2 0 0x13000000 0x01000000
264f126890aSEmmanuel Vadot				3 0 0x14000000 0x01000000
265f126890aSEmmanuel Vadot				4 0 0x15000000 0x01000000
266f126890aSEmmanuel Vadot				5 0 0x16000000 0x01000000
267f126890aSEmmanuel Vadot			>;
268f126890aSEmmanuel Vadot			status = "disabled";
269f126890aSEmmanuel Vadot		};
270f126890aSEmmanuel Vadot
2718d13bc63SEmmanuel Vadot		esram: sram@300000 {
272f126890aSEmmanuel Vadot			compatible = "mmio-sram";
273f126890aSEmmanuel Vadot			reg = <0x00300000 0x20000>;
2748d13bc63SEmmanuel Vadot			ranges = <0 0x00300000 0x20000>;
2758d13bc63SEmmanuel Vadot			#address-cells = <1>;
2768d13bc63SEmmanuel Vadot			#size-cells = <1>;
277f126890aSEmmanuel Vadot		};
278f126890aSEmmanuel Vadot	};
279f126890aSEmmanuel Vadot};
280