12874c5fdSThomas Gleixner// SPDX-License-Identifier: GPL-2.0-or-later
2bd05f91fSJohn Rigby/*
34df64c3eSJohn Rigby * MPC5121E ADS Device Tree Source
4bd05f91fSJohn Rigby *
581c6fdb6SAnatolij Gustschin * Copyright 2007-2008 Freescale Semiconductor Inc.
6bd05f91fSJohn Rigby */
7bd05f91fSJohn Rigby
85405c92bSMasahiro Yamada#include "mpc5121.dtsi"
9bd05f91fSJohn Rigby
10bd05f91fSJohn Rigby/ {
11bd05f91fSJohn Rigby	model = "mpc5121ads";
12a9b6aae4SMatteo Facchinetti	compatible = "fsl,mpc5121ads", "fsl,mpc5121";
134df64c3eSJohn Rigby
144df64c3eSJohn Rigby	nfc@40000000 {
1581c6fdb6SAnatolij Gustschin		/*
1681c6fdb6SAnatolij Gustschin		 * ADS has two Hynix 512MB Nand flash chips in a single
1781c6fdb6SAnatolij Gustschin		 * stacked package.
1881c6fdb6SAnatolij Gustschin		 */
194df64c3eSJohn Rigby		chips = <2>;
2081c6fdb6SAnatolij Gustschin
21dcc79d78SAnatolij Gustschin		nand@0 {
22dcc79d78SAnatolij Gustschin			label = "nand";
2381c6fdb6SAnatolij Gustschin			reg = <0x00000000 0x40000000>;	/* 512MB + 512MB */
244df64c3eSJohn Rigby		};
254df64c3eSJohn Rigby	};
264df64c3eSJohn Rigby
27bd05f91fSJohn Rigby	localbus@80000020 {
28bd05f91fSJohn Rigby		ranges = <0x0 0x0 0xfc000000 0x04000000
29bd05f91fSJohn Rigby			  0x2 0x0 0x82000000 0x00008000>;
30bd05f91fSJohn Rigby
31bd05f91fSJohn Rigby		flash@0,0 {
32bd05f91fSJohn Rigby			compatible = "cfi-flash";
33bd05f91fSJohn Rigby			reg = <0 0x0 0x4000000>;
344df64c3eSJohn Rigby			#address-cells = <1>;
354df64c3eSJohn Rigby			#size-cells = <1>;
36bd05f91fSJohn Rigby			bank-width = <4>;
374df64c3eSJohn Rigby			device-width = <2>;
3881c6fdb6SAnatolij Gustschin
394df64c3eSJohn Rigby			protected@0 {
404df64c3eSJohn Rigby				label = "protected";
414df64c3eSJohn Rigby				reg = <0x00000000 0x00040000>;  // first sector is protected
424df64c3eSJohn Rigby				read-only;
434df64c3eSJohn Rigby			};
444df64c3eSJohn Rigby			filesystem@40000 {
454df64c3eSJohn Rigby				label = "filesystem";
464df64c3eSJohn Rigby				reg = <0x00040000 0x03c00000>;  // 60M for filesystem
474df64c3eSJohn Rigby			};
484df64c3eSJohn Rigby			kernel@3c40000 {
494df64c3eSJohn Rigby				label = "kernel";
504df64c3eSJohn Rigby				reg = <0x03c40000 0x00280000>;  // 2.5M for kernel
514df64c3eSJohn Rigby			};
524df64c3eSJohn Rigby			device-tree@3ec0000 {
534df64c3eSJohn Rigby				label = "device-tree";
544df64c3eSJohn Rigby				reg = <0x03ec0000 0x00040000>;  // one sector for device tree
554df64c3eSJohn Rigby			};
564df64c3eSJohn Rigby			u-boot@3f00000 {
574df64c3eSJohn Rigby				label = "u-boot";
584df64c3eSJohn Rigby				reg = <0x03f00000 0x00100000>;  // 1M for u-boot
594df64c3eSJohn Rigby				read-only;
604df64c3eSJohn Rigby			};
61bd05f91fSJohn Rigby		};
62bd05f91fSJohn Rigby
63bd05f91fSJohn Rigby		board-control@2,0 {
64bd05f91fSJohn Rigby			compatible = "fsl,mpc5121ads-cpld";
65bd05f91fSJohn Rigby			reg = <0x2 0x0 0x8000>;
66bd05f91fSJohn Rigby		};
674df64c3eSJohn Rigby
684df64c3eSJohn Rigby		cpld_pic: pic@2,a {
694df64c3eSJohn Rigby			compatible = "fsl,mpc5121ads-cpld-pic";
704df64c3eSJohn Rigby			interrupt-controller;
714df64c3eSJohn Rigby			#interrupt-cells = <2>;
724df64c3eSJohn Rigby			reg = <0x2 0xa 0x5>;
7381c6fdb6SAnatolij Gustschin			/* irq routing:
7481c6fdb6SAnatolij Gustschin			 * all irqs but touch screen are routed to irq0 (ipic 48)
7581c6fdb6SAnatolij Gustschin			 * touch screen is statically routed to irq1 (ipic 17)
7681c6fdb6SAnatolij Gustschin			 * so don't use it here
7781c6fdb6SAnatolij Gustschin			 */
784df64c3eSJohn Rigby			interrupts = <48 0x8>;
794df64c3eSJohn Rigby		};
80bd05f91fSJohn Rigby	};
81bd05f91fSJohn Rigby
82bd05f91fSJohn Rigby	soc@80000000 {
834df64c3eSJohn Rigby
844df64c3eSJohn Rigby		i2c@1700 {
85dcc79d78SAnatolij Gustschin			fsl,preserve-clocking;
86dcc79d78SAnatolij Gustschin
87dcc79d78SAnatolij Gustschin			hwmon@4a {
88dcc79d78SAnatolij Gustschin				compatible = "adi,ad7414";
89dcc79d78SAnatolij Gustschin				reg = <0x4a>;
90dcc79d78SAnatolij Gustschin			};
91dcc79d78SAnatolij Gustschin
92dcc79d78SAnatolij Gustschin			eeprom@50 {
939b409168SJavier Martinez Canillas				compatible = "atmel,24c32";
94dcc79d78SAnatolij Gustschin				reg = <0x50>;
95dcc79d78SAnatolij Gustschin			};
96dcc79d78SAnatolij Gustschin
97dcc79d78SAnatolij Gustschin			rtc@68 {
985edc2aaeSStefan Agner				compatible = "st,m41t62";
99dcc79d78SAnatolij Gustschin				reg = <0x68>;
100dcc79d78SAnatolij Gustschin			};
1014df64c3eSJohn Rigby		};
1024df64c3eSJohn Rigby
10381c6fdb6SAnatolij Gustschin		eth0: ethernet@2800 {
10481c6fdb6SAnatolij Gustschin			phy-handle = <&phy0>;
1054df64c3eSJohn Rigby		};
1064df64c3eSJohn Rigby
10781c6fdb6SAnatolij Gustschin		can@2300 {
10881c6fdb6SAnatolij Gustschin			status = "disabled";
1094df64c3eSJohn Rigby		};
1104df64c3eSJohn Rigby
11181c6fdb6SAnatolij Gustschin		can@2380 {
11281c6fdb6SAnatolij Gustschin			status = "disabled";
1134df64c3eSJohn Rigby		};
1144df64c3eSJohn Rigby
11581c6fdb6SAnatolij Gustschin		viu@2400 {
11681c6fdb6SAnatolij Gustschin			status = "disabled";
1174df64c3eSJohn Rigby		};
1184df64c3eSJohn Rigby
1194df64c3eSJohn Rigby		mdio@2800 {
12081c6fdb6SAnatolij Gustschin			phy0: ethernet-phy@0 {
1214df64c3eSJohn Rigby				reg = <1>;
1224df64c3eSJohn Rigby			};
1234df64c3eSJohn Rigby		};
1244df64c3eSJohn Rigby
12581c6fdb6SAnatolij Gustschin		/* mpc5121ads only uses USB0 */
12681c6fdb6SAnatolij Gustschin		usb@3000 {
12781c6fdb6SAnatolij Gustschin			status = "disabled";
1284df64c3eSJohn Rigby		};
1294df64c3eSJohn Rigby
13081c6fdb6SAnatolij Gustschin		/* USB0 using internal UTMI PHY */
1314df64c3eSJohn Rigby		usb@4000 {
13281c6fdb6SAnatolij Gustschin			dr_mode = "host";
133dcc79d78SAnatolij Gustschin			fsl,invert-drvvbus;
134dcc79d78SAnatolij Gustschin			fsl,invert-pwr-fault;
1354df64c3eSJohn Rigby		};
1364df64c3eSJohn Rigby
13781c6fdb6SAnatolij Gustschin		/* PSC3 serial port A aka ttyPSC0 */
13881c6fdb6SAnatolij Gustschin		psc@11300 {
1394df64c3eSJohn Rigby			compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc";
140bd05f91fSJohn Rigby		};
141bd05f91fSJohn Rigby
14281c6fdb6SAnatolij Gustschin		/* PSC4 serial port B aka ttyPSC1 */
14381c6fdb6SAnatolij Gustschin		psc@11400 {
1444df64c3eSJohn Rigby			compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc";
1454df64c3eSJohn Rigby		};
1464df64c3eSJohn Rigby
14781c6fdb6SAnatolij Gustschin		/* PSC5 in ac97 mode */
14881c6fdb6SAnatolij Gustschin		ac97: psc@11500 {
1494df64c3eSJohn Rigby			compatible = "fsl,mpc5121-psc-ac97", "fsl,mpc5121-psc";
1504df64c3eSJohn Rigby			fsl,mode = "ac97-slave";
15181c6fdb6SAnatolij Gustschin			fsl,rx-fifo-size = <384>;
15281c6fdb6SAnatolij Gustschin			fsl,tx-fifo-size = <384>;
1534df64c3eSJohn Rigby		};
1544df64c3eSJohn Rigby	};
1554df64c3eSJohn Rigby
1564df64c3eSJohn Rigby	pci: pci@80008500 {
1574df64c3eSJohn Rigby		interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
1584df64c3eSJohn Rigby		interrupt-map = <
15981c6fdb6SAnatolij Gustschin				/* IDSEL 0x15 - Slot 1 PCI */
1604df64c3eSJohn Rigby				 0xa800 0x0 0x0 0x1 &cpld_pic 0x0 0x8
1614df64c3eSJohn Rigby				 0xa800 0x0 0x0 0x2 &cpld_pic 0x1 0x8
1624df64c3eSJohn Rigby				 0xa800 0x0 0x0 0x3 &cpld_pic 0x2 0x8
1634df64c3eSJohn Rigby				 0xa800 0x0 0x0 0x4 &cpld_pic 0x3 0x8
1644df64c3eSJohn Rigby
16581c6fdb6SAnatolij Gustschin				/* IDSEL 0x16 - Slot 2 MiniPCI */
1664df64c3eSJohn Rigby				 0xb000 0x0 0x0 0x1 &cpld_pic 0x4 0x8
1674df64c3eSJohn Rigby				 0xb000 0x0 0x0 0x2 &cpld_pic 0x5 0x8
1684df64c3eSJohn Rigby
16981c6fdb6SAnatolij Gustschin				/* IDSEL 0x17 - Slot 3 MiniPCI */
1704df64c3eSJohn Rigby				 0xb800 0x0 0x0 0x1 &cpld_pic 0x6 0x8
1714df64c3eSJohn Rigby				 0xb800 0x0 0x0 0x2 &cpld_pic 0x7 0x8
1724df64c3eSJohn Rigby				>;
173bd05f91fSJohn Rigby	};
174bd05f91fSJohn Rigby};
175