1a9b6aae4SMatteo Facchinetti/*
2a9b6aae4SMatteo Facchinetti * STx/Freescale ADS5125 MPC5125 silicon
3a9b6aae4SMatteo Facchinetti *
4a9b6aae4SMatteo Facchinetti * Copyright (C) 2009 Freescale Semiconductor Inc. All rights reserved.
5a9b6aae4SMatteo Facchinetti *
6a9b6aae4SMatteo Facchinetti * Reworked by Matteo Facchinetti (engineering@sirius-es.it)
7a9b6aae4SMatteo Facchinetti * Copyright (C) 2013 Sirius Electronic Systems
8a9b6aae4SMatteo Facchinetti *
9a9b6aae4SMatteo Facchinetti * This program is free software; you can redistribute  it and/or modify it
10a9b6aae4SMatteo Facchinetti * under  the terms of  the GNU General  Public License as published by the
11a9b6aae4SMatteo Facchinetti * Free Software Foundation;  either version 2 of the  License, or (at your
12a9b6aae4SMatteo Facchinetti * option) any later version.
13a9b6aae4SMatteo Facchinetti */
14a9b6aae4SMatteo Facchinetti
15a9b6aae4SMatteo Facchinetti/dts-v1/;
16a9b6aae4SMatteo Facchinetti
17a9b6aae4SMatteo Facchinetti/ {
18a9b6aae4SMatteo Facchinetti	model = "mpc5125twr"; // In BSP "mpc5125ads"
19a9b6aae4SMatteo Facchinetti	compatible = "fsl,mpc5125ads", "fsl,mpc5125";
20a9b6aae4SMatteo Facchinetti	#address-cells = <1>;
21a9b6aae4SMatteo Facchinetti	#size-cells = <1>;
22a9b6aae4SMatteo Facchinetti	interrupt-parent = <&ipic>;
23a9b6aae4SMatteo Facchinetti
24a9b6aae4SMatteo Facchinetti	aliases {
25a9b6aae4SMatteo Facchinetti		gpio0 = &gpio0;
26a9b6aae4SMatteo Facchinetti		gpio1 = &gpio1;
27a9b6aae4SMatteo Facchinetti		ethernet0 = &eth0;
28a9b6aae4SMatteo Facchinetti	};
29a9b6aae4SMatteo Facchinetti
30a9b6aae4SMatteo Facchinetti	cpus {
31a9b6aae4SMatteo Facchinetti		#address-cells = <1>;
32a9b6aae4SMatteo Facchinetti		#size-cells = <0>;
33a9b6aae4SMatteo Facchinetti
34a9b6aae4SMatteo Facchinetti		PowerPC,5125@0 {
35a9b6aae4SMatteo Facchinetti			device_type = "cpu";
36a9b6aae4SMatteo Facchinetti			reg = <0>;
37a9b6aae4SMatteo Facchinetti			d-cache-line-size = <0x20>;	// 32 bytes
38a9b6aae4SMatteo Facchinetti			i-cache-line-size = <0x20>;	// 32 bytes
39a9b6aae4SMatteo Facchinetti			d-cache-size = <0x8000>;	// L1, 32K
40a9b6aae4SMatteo Facchinetti			i-cache-size = <0x8000>;	// L1, 32K
41a9b6aae4SMatteo Facchinetti			timebase-frequency = <49500000>;// 49.5 MHz (csb/4)
42a9b6aae4SMatteo Facchinetti			bus-frequency = <198000000>;	// 198 MHz csb bus
43a9b6aae4SMatteo Facchinetti			clock-frequency = <396000000>;	// 396 MHz ppc core
44a9b6aae4SMatteo Facchinetti		};
45a9b6aae4SMatteo Facchinetti	};
46a9b6aae4SMatteo Facchinetti
47a9b6aae4SMatteo Facchinetti	memory {
48a9b6aae4SMatteo Facchinetti		device_type = "memory";
49a9b6aae4SMatteo Facchinetti		reg = <0x00000000 0x10000000>;	// 256MB at 0
50a9b6aae4SMatteo Facchinetti	};
51a9b6aae4SMatteo Facchinetti
52a9b6aae4SMatteo Facchinetti	sram@30000000 {
53a9b6aae4SMatteo Facchinetti		compatible = "fsl,mpc5121-sram";
54a9b6aae4SMatteo Facchinetti		reg = <0x30000000 0x08000>;		// 32K at 0x30000000
55a9b6aae4SMatteo Facchinetti	};
56a9b6aae4SMatteo Facchinetti
57a9b6aae4SMatteo Facchinetti	soc@80000000 {
58a9b6aae4SMatteo Facchinetti		compatible = "fsl,mpc5121-immr";
59a9b6aae4SMatteo Facchinetti		#address-cells = <1>;
60a9b6aae4SMatteo Facchinetti		#size-cells = <1>;
61a9b6aae4SMatteo Facchinetti		ranges = <0x0 0x80000000 0x400000>;
62a9b6aae4SMatteo Facchinetti		reg = <0x80000000 0x400000>;
63a9b6aae4SMatteo Facchinetti		bus-frequency = <66000000>;	// 66 MHz ips bus
64a9b6aae4SMatteo Facchinetti
65a9b6aae4SMatteo Facchinetti		// IPIC
66a9b6aae4SMatteo Facchinetti		// interrupts cell = <intr #, sense>
67a9b6aae4SMatteo Facchinetti		// sense values match linux IORESOURCE_IRQ_* defines:
68a9b6aae4SMatteo Facchinetti		// sense == 8: Level, low assertion
69a9b6aae4SMatteo Facchinetti		// sense == 2: Edge, high-to-low change
70a9b6aae4SMatteo Facchinetti		//
71a9b6aae4SMatteo Facchinetti		ipic: interrupt-controller@c00 {
72a9b6aae4SMatteo Facchinetti			compatible = "fsl,mpc5121-ipic", "fsl,ipic";
73a9b6aae4SMatteo Facchinetti			interrupt-controller;
74a9b6aae4SMatteo Facchinetti			#address-cells = <0>;
75a9b6aae4SMatteo Facchinetti			#interrupt-cells = <2>;
76a9b6aae4SMatteo Facchinetti			reg = <0xc00 0x100>;
77a9b6aae4SMatteo Facchinetti		};
78a9b6aae4SMatteo Facchinetti
79a9b6aae4SMatteo Facchinetti		rtc@a00 {	// Real time clock
80a9b6aae4SMatteo Facchinetti			compatible = "fsl,mpc5121-rtc";
81a9b6aae4SMatteo Facchinetti			reg = <0xa00 0x100>;
82a9b6aae4SMatteo Facchinetti			interrupts = <79 0x8 80 0x8>;
83a9b6aae4SMatteo Facchinetti		};
84a9b6aae4SMatteo Facchinetti
85a9b6aae4SMatteo Facchinetti		reset@e00 {	// Reset module
86a9b6aae4SMatteo Facchinetti			compatible = "fsl,mpc5125-reset";
87a9b6aae4SMatteo Facchinetti			reg = <0xe00 0x100>;
88a9b6aae4SMatteo Facchinetti		};
89a9b6aae4SMatteo Facchinetti
90a9b6aae4SMatteo Facchinetti		clock@f00 {	// Clock control
91a9b6aae4SMatteo Facchinetti			compatible = "fsl,mpc5121-clock";
92a9b6aae4SMatteo Facchinetti			reg = <0xf00 0x100>;
93a9b6aae4SMatteo Facchinetti		};
94a9b6aae4SMatteo Facchinetti
95a9b6aae4SMatteo Facchinetti		pmc@1000{  // Power Management Controller
96a9b6aae4SMatteo Facchinetti			compatible = "fsl,mpc5121-pmc";
97a9b6aae4SMatteo Facchinetti			reg = <0x1000 0x100>;
98a9b6aae4SMatteo Facchinetti			interrupts = <83 0x2>;
99a9b6aae4SMatteo Facchinetti		};
100a9b6aae4SMatteo Facchinetti
101a9b6aae4SMatteo Facchinetti		gpio0: gpio@1100 {
102a9b6aae4SMatteo Facchinetti			compatible = "fsl,mpc5125-gpio";
103a9b6aae4SMatteo Facchinetti			reg = <0x1100 0x080>;
104a9b6aae4SMatteo Facchinetti			interrupts = <78 0x8>;
105a9b6aae4SMatteo Facchinetti		};
106a9b6aae4SMatteo Facchinetti
107a9b6aae4SMatteo Facchinetti		gpio1: gpio@1180 {
108a9b6aae4SMatteo Facchinetti			compatible = "fsl,mpc5125-gpio";
109a9b6aae4SMatteo Facchinetti			reg = <0x1180 0x080>;
110a9b6aae4SMatteo Facchinetti			interrupts = <86 0x8>;
111a9b6aae4SMatteo Facchinetti		};
112a9b6aae4SMatteo Facchinetti
113a9b6aae4SMatteo Facchinetti		can@1300 { // CAN rev.2
114a9b6aae4SMatteo Facchinetti			compatible = "fsl,mpc5121-mscan";
115a9b6aae4SMatteo Facchinetti			interrupts = <12 0x8>;
116a9b6aae4SMatteo Facchinetti			reg = <0x1300 0x80>;
117a9b6aae4SMatteo Facchinetti		};
118a9b6aae4SMatteo Facchinetti
119a9b6aae4SMatteo Facchinetti		can@1380 {
120a9b6aae4SMatteo Facchinetti			compatible = "fsl,mpc5121-mscan";
121a9b6aae4SMatteo Facchinetti			interrupts = <13 0x8>;
122a9b6aae4SMatteo Facchinetti			reg = <0x1380 0x80>;
123a9b6aae4SMatteo Facchinetti		};
124a9b6aae4SMatteo Facchinetti
125a9b6aae4SMatteo Facchinetti		sdhc@1500 {
126a9b6aae4SMatteo Facchinetti			compatible = "fsl,mpc5121-sdhc";
127a9b6aae4SMatteo Facchinetti			interrupts = <8 0x8>;
128a9b6aae4SMatteo Facchinetti			reg = <0x1500 0x100>;
129a9b6aae4SMatteo Facchinetti		};
130a9b6aae4SMatteo Facchinetti
131a9b6aae4SMatteo Facchinetti		i2c@1700 {
132a9b6aae4SMatteo Facchinetti			#address-cells = <1>;
133a9b6aae4SMatteo Facchinetti			#size-cells = <0>;
134a9b6aae4SMatteo Facchinetti			compatible = "fsl,mpc5121-i2c", "fsl-i2c";
135a9b6aae4SMatteo Facchinetti			reg = <0x1700 0x20>;
136a9b6aae4SMatteo Facchinetti			interrupts = <0x9 0x8>;
137a9b6aae4SMatteo Facchinetti		};
138a9b6aae4SMatteo Facchinetti
139a9b6aae4SMatteo Facchinetti		i2c@1720 {
140a9b6aae4SMatteo Facchinetti			#address-cells = <1>;
141a9b6aae4SMatteo Facchinetti			#size-cells = <0>;
142a9b6aae4SMatteo Facchinetti			compatible = "fsl,mpc5121-i2c", "fsl-i2c";
143a9b6aae4SMatteo Facchinetti			reg = <0x1720 0x20>;
144a9b6aae4SMatteo Facchinetti			interrupts = <0xa 0x8>;
145a9b6aae4SMatteo Facchinetti		};
146a9b6aae4SMatteo Facchinetti
147a9b6aae4SMatteo Facchinetti		i2c@1740 {
148a9b6aae4SMatteo Facchinetti			#address-cells = <1>;
149a9b6aae4SMatteo Facchinetti			#size-cells = <0>;
150a9b6aae4SMatteo Facchinetti			compatible = "fsl,mpc5121-i2c", "fsl-i2c";
151a9b6aae4SMatteo Facchinetti			reg = <0x1740 0x20>;
152a9b6aae4SMatteo Facchinetti			interrupts = <0xb 0x8>;
153a9b6aae4SMatteo Facchinetti		};
154a9b6aae4SMatteo Facchinetti
155a9b6aae4SMatteo Facchinetti		i2ccontrol@1760 {
156a9b6aae4SMatteo Facchinetti			compatible = "fsl,mpc5121-i2c-ctrl";
157a9b6aae4SMatteo Facchinetti			reg = <0x1760 0x8>;
158a9b6aae4SMatteo Facchinetti		};
159a9b6aae4SMatteo Facchinetti
160a9b6aae4SMatteo Facchinetti		diu@2100 {
161a9b6aae4SMatteo Facchinetti			compatible = "fsl,mpc5121-diu";
162a9b6aae4SMatteo Facchinetti			reg = <0x2100 0x100>;
163a9b6aae4SMatteo Facchinetti			interrupts = <64 0x8>;
164a9b6aae4SMatteo Facchinetti		};
165a9b6aae4SMatteo Facchinetti
166a9b6aae4SMatteo Facchinetti		mdio@2800 {
167a9b6aae4SMatteo Facchinetti			compatible = "fsl,mpc5121-fec-mdio";
168a9b6aae4SMatteo Facchinetti			reg = <0x2800 0x800>;
169a9b6aae4SMatteo Facchinetti			#address-cells = <1>;
170a9b6aae4SMatteo Facchinetti			#size-cells = <0>;
171a9b6aae4SMatteo Facchinetti			phy0: ethernet-phy@0 {
172a9b6aae4SMatteo Facchinetti				reg = <1>;
173a9b6aae4SMatteo Facchinetti			};
174a9b6aae4SMatteo Facchinetti		};
175a9b6aae4SMatteo Facchinetti
176a9b6aae4SMatteo Facchinetti		eth0: ethernet@2800 {
177a9b6aae4SMatteo Facchinetti			compatible = "fsl,mpc5125-fec";
178a9b6aae4SMatteo Facchinetti			reg = <0x2800 0x800>;
179a9b6aae4SMatteo Facchinetti			local-mac-address = [ 00 00 00 00 00 00 ];
180a9b6aae4SMatteo Facchinetti			interrupts = <4 0x8>;
181a9b6aae4SMatteo Facchinetti			phy-handle = < &phy0 >;
182a9b6aae4SMatteo Facchinetti			phy-connection-type = "rmii";
183a9b6aae4SMatteo Facchinetti		};
184a9b6aae4SMatteo Facchinetti
185a9b6aae4SMatteo Facchinetti		// IO control
186a9b6aae4SMatteo Facchinetti		ioctl@a000 {
187a9b6aae4SMatteo Facchinetti			compatible = "fsl,mpc5125-ioctl";
188a9b6aae4SMatteo Facchinetti			reg = <0xA000 0x1000>;
189a9b6aae4SMatteo Facchinetti		};
190a9b6aae4SMatteo Facchinetti
19111daf32bSMatteo Facchinetti		// disable USB1 port
19211daf32bSMatteo Facchinetti		// TODO:
19311daf32bSMatteo Facchinetti		// correct pinmux config and fix USB3320 ulpi dependency
19411daf32bSMatteo Facchinetti		// before re-enabling it
195a9b6aae4SMatteo Facchinetti		usb@3000 {
196a9b6aae4SMatteo Facchinetti			compatible = "fsl,mpc5121-usb2-dr";
197a9b6aae4SMatteo Facchinetti			reg = <0x3000 0x400>;
198a9b6aae4SMatteo Facchinetti			#address-cells = <1>;
199a9b6aae4SMatteo Facchinetti			#size-cells = <0>;
200a9b6aae4SMatteo Facchinetti			interrupts = <43 0x8>;
201a9b6aae4SMatteo Facchinetti			dr_mode = "host";
202a9b6aae4SMatteo Facchinetti			phy_type = "ulpi";
20311daf32bSMatteo Facchinetti			status = "disabled";
204a9b6aae4SMatteo Facchinetti		};
205a9b6aae4SMatteo Facchinetti
206a9b6aae4SMatteo Facchinetti		// 5125 PSCs are not 52xx or 5121 PSC compatible
207a9b6aae4SMatteo Facchinetti		// PSC1 uart0 aka ttyPSC0
208a9b6aae4SMatteo Facchinetti		serial@11100 {
209a9b6aae4SMatteo Facchinetti			compatible = "fsl,mpc5125-psc-uart", "fsl,mpc5125-psc";
210a9b6aae4SMatteo Facchinetti			reg = <0x11100 0x100>;
211a9b6aae4SMatteo Facchinetti			interrupts = <40 0x8>;
212a9b6aae4SMatteo Facchinetti			fsl,rx-fifo-size = <16>;
213a9b6aae4SMatteo Facchinetti			fsl,tx-fifo-size = <16>;
214a9b6aae4SMatteo Facchinetti		};
215a9b6aae4SMatteo Facchinetti
216a9b6aae4SMatteo Facchinetti		// PSC9 uart1 aka ttyPSC1
217a9b6aae4SMatteo Facchinetti		serial@11900 {
218a9b6aae4SMatteo Facchinetti			compatible = "fsl,mpc5125-psc-uart", "fsl,mpc5125-psc";
219a9b6aae4SMatteo Facchinetti			reg = <0x11900 0x100>;
220a9b6aae4SMatteo Facchinetti			interrupts = <40 0x8>;
221a9b6aae4SMatteo Facchinetti			fsl,rx-fifo-size = <16>;
222a9b6aae4SMatteo Facchinetti			fsl,tx-fifo-size = <16>;
223a9b6aae4SMatteo Facchinetti		};
224a9b6aae4SMatteo Facchinetti
225a9b6aae4SMatteo Facchinetti		pscfifo@11f00 {
226a9b6aae4SMatteo Facchinetti			compatible = "fsl,mpc5121-psc-fifo";
227a9b6aae4SMatteo Facchinetti			reg = <0x11f00 0x100>;
228a9b6aae4SMatteo Facchinetti			interrupts = <40 0x8>;
229a9b6aae4SMatteo Facchinetti		};
230a9b6aae4SMatteo Facchinetti
231a9b6aae4SMatteo Facchinetti		dma@14000 {
232a9b6aae4SMatteo Facchinetti			compatible = "fsl,mpc5121-dma"; // BSP name: "mpc512x-dma2"
233a9b6aae4SMatteo Facchinetti			reg = <0x14000 0x1800>;
234a9b6aae4SMatteo Facchinetti			interrupts = <65 0x8>;
235a9b6aae4SMatteo Facchinetti		};
236a9b6aae4SMatteo Facchinetti	};
237a9b6aae4SMatteo Facchinetti};
238