1bd05f91fSJohn Rigby/*
24df64c3eSJohn Rigby * MPC5121E ADS Device Tree Source
3bd05f91fSJohn Rigby *
481c6fdb6SAnatolij Gustschin * Copyright 2007-2008 Freescale Semiconductor Inc.
5bd05f91fSJohn Rigby *
6bd05f91fSJohn Rigby * This program is free software; you can redistribute  it and/or modify it
7bd05f91fSJohn Rigby * under  the terms of  the GNU General  Public License as published by the
8bd05f91fSJohn Rigby * Free Software Foundation;  either version 2 of the  License, or (at your
9bd05f91fSJohn Rigby * option) any later version.
10bd05f91fSJohn Rigby */
11bd05f91fSJohn Rigby
1281c6fdb6SAnatolij Gustschin/include/ "mpc5121.dtsi"
13bd05f91fSJohn Rigby
14bd05f91fSJohn Rigby/ {
15bd05f91fSJohn Rigby	model = "mpc5121ads";
16bd05f91fSJohn Rigby	compatible = "fsl,mpc5121ads";
174df64c3eSJohn Rigby
184df64c3eSJohn Rigby	nfc@40000000 {
1981c6fdb6SAnatolij Gustschin		/*
2081c6fdb6SAnatolij Gustschin		 * ADS has two Hynix 512MB Nand flash chips in a single
2181c6fdb6SAnatolij Gustschin		 * stacked package.
2281c6fdb6SAnatolij Gustschin		 */
234df64c3eSJohn Rigby		chips = <2>;
2481c6fdb6SAnatolij Gustschin
25dcc79d78SAnatolij Gustschin		nand@0 {
26dcc79d78SAnatolij Gustschin			label = "nand";
2781c6fdb6SAnatolij Gustschin			reg = <0x00000000 0x40000000>;	/* 512MB + 512MB */
284df64c3eSJohn Rigby		};
294df64c3eSJohn Rigby	};
304df64c3eSJohn Rigby
31bd05f91fSJohn Rigby	localbus@80000020 {
32bd05f91fSJohn Rigby		ranges = <0x0 0x0 0xfc000000 0x04000000
33bd05f91fSJohn Rigby			  0x2 0x0 0x82000000 0x00008000>;
34bd05f91fSJohn Rigby
35bd05f91fSJohn Rigby		flash@0,0 {
36bd05f91fSJohn Rigby			compatible = "cfi-flash";
37bd05f91fSJohn Rigby			reg = <0 0x0 0x4000000>;
384df64c3eSJohn Rigby			#address-cells = <1>;
394df64c3eSJohn Rigby			#size-cells = <1>;
40bd05f91fSJohn Rigby			bank-width = <4>;
414df64c3eSJohn Rigby			device-width = <2>;
4281c6fdb6SAnatolij Gustschin
434df64c3eSJohn Rigby			protected@0 {
444df64c3eSJohn Rigby				label = "protected";
454df64c3eSJohn Rigby				reg = <0x00000000 0x00040000>;  // first sector is protected
464df64c3eSJohn Rigby				read-only;
474df64c3eSJohn Rigby			};
484df64c3eSJohn Rigby			filesystem@40000 {
494df64c3eSJohn Rigby				label = "filesystem";
504df64c3eSJohn Rigby				reg = <0x00040000 0x03c00000>;  // 60M for filesystem
514df64c3eSJohn Rigby			};
524df64c3eSJohn Rigby			kernel@3c40000 {
534df64c3eSJohn Rigby				label = "kernel";
544df64c3eSJohn Rigby				reg = <0x03c40000 0x00280000>;  // 2.5M for kernel
554df64c3eSJohn Rigby			};
564df64c3eSJohn Rigby			device-tree@3ec0000 {
574df64c3eSJohn Rigby				label = "device-tree";
584df64c3eSJohn Rigby				reg = <0x03ec0000 0x00040000>;  // one sector for device tree
594df64c3eSJohn Rigby			};
604df64c3eSJohn Rigby			u-boot@3f00000 {
614df64c3eSJohn Rigby				label = "u-boot";
624df64c3eSJohn Rigby				reg = <0x03f00000 0x00100000>;  // 1M for u-boot
634df64c3eSJohn Rigby				read-only;
644df64c3eSJohn Rigby			};
65bd05f91fSJohn Rigby		};
66bd05f91fSJohn Rigby
67bd05f91fSJohn Rigby		board-control@2,0 {
68bd05f91fSJohn Rigby			compatible = "fsl,mpc5121ads-cpld";
69bd05f91fSJohn Rigby			reg = <0x2 0x0 0x8000>;
70bd05f91fSJohn Rigby		};
714df64c3eSJohn Rigby
724df64c3eSJohn Rigby		cpld_pic: pic@2,a {
734df64c3eSJohn Rigby			compatible = "fsl,mpc5121ads-cpld-pic";
744df64c3eSJohn Rigby			interrupt-controller;
754df64c3eSJohn Rigby			#interrupt-cells = <2>;
764df64c3eSJohn Rigby			reg = <0x2 0xa 0x5>;
7781c6fdb6SAnatolij Gustschin			/* irq routing:
7881c6fdb6SAnatolij Gustschin			 * all irqs but touch screen are routed to irq0 (ipic 48)
7981c6fdb6SAnatolij Gustschin			 * touch screen is statically routed to irq1 (ipic 17)
8081c6fdb6SAnatolij Gustschin			 * so don't use it here
8181c6fdb6SAnatolij Gustschin			 */
824df64c3eSJohn Rigby			interrupts = <48 0x8>;
834df64c3eSJohn Rigby		};
84bd05f91fSJohn Rigby	};
85bd05f91fSJohn Rigby
86bd05f91fSJohn Rigby	soc@80000000 {
874df64c3eSJohn Rigby
884df64c3eSJohn Rigby		i2c@1700 {
89dcc79d78SAnatolij Gustschin			fsl,preserve-clocking;
90dcc79d78SAnatolij Gustschin
91dcc79d78SAnatolij Gustschin			hwmon@4a {
92dcc79d78SAnatolij Gustschin				compatible = "adi,ad7414";
93dcc79d78SAnatolij Gustschin				reg = <0x4a>;
94dcc79d78SAnatolij Gustschin			};
95dcc79d78SAnatolij Gustschin
96dcc79d78SAnatolij Gustschin			eeprom@50 {
97dcc79d78SAnatolij Gustschin				compatible = "at,24c32";
98dcc79d78SAnatolij Gustschin				reg = <0x50>;
99dcc79d78SAnatolij Gustschin			};
100dcc79d78SAnatolij Gustschin
101dcc79d78SAnatolij Gustschin			rtc@68 {
102dcc79d78SAnatolij Gustschin				compatible = "stm,m41t62";
103dcc79d78SAnatolij Gustschin				reg = <0x68>;
104dcc79d78SAnatolij Gustschin			};
1054df64c3eSJohn Rigby		};
1064df64c3eSJohn Rigby
10781c6fdb6SAnatolij Gustschin		eth0: ethernet@2800 {
10881c6fdb6SAnatolij Gustschin			phy-handle = <&phy0>;
1094df64c3eSJohn Rigby		};
1104df64c3eSJohn Rigby
11181c6fdb6SAnatolij Gustschin		can@2300 {
11281c6fdb6SAnatolij Gustschin			status = "disabled";
1134df64c3eSJohn Rigby		};
1144df64c3eSJohn Rigby
11581c6fdb6SAnatolij Gustschin		can@2380 {
11681c6fdb6SAnatolij Gustschin			status = "disabled";
1174df64c3eSJohn Rigby		};
1184df64c3eSJohn Rigby
11981c6fdb6SAnatolij Gustschin		viu@2400 {
12081c6fdb6SAnatolij Gustschin			status = "disabled";
1214df64c3eSJohn Rigby		};
1224df64c3eSJohn Rigby
1234df64c3eSJohn Rigby		mdio@2800 {
12481c6fdb6SAnatolij Gustschin			phy0: ethernet-phy@0 {
1254df64c3eSJohn Rigby				reg = <1>;
1264df64c3eSJohn Rigby			};
1274df64c3eSJohn Rigby		};
1284df64c3eSJohn Rigby
12981c6fdb6SAnatolij Gustschin		/* mpc5121ads only uses USB0 */
13081c6fdb6SAnatolij Gustschin		usb@3000 {
13181c6fdb6SAnatolij Gustschin			status = "disabled";
1324df64c3eSJohn Rigby		};
1334df64c3eSJohn Rigby
13481c6fdb6SAnatolij Gustschin		/* USB0 using internal UTMI PHY */
1354df64c3eSJohn Rigby		usb@4000 {
13681c6fdb6SAnatolij Gustschin			dr_mode = "host";
137dcc79d78SAnatolij Gustschin			fsl,invert-drvvbus;
138dcc79d78SAnatolij Gustschin			fsl,invert-pwr-fault;
1394df64c3eSJohn Rigby		};
1404df64c3eSJohn Rigby
14181c6fdb6SAnatolij Gustschin		/* PSC3 serial port A aka ttyPSC0 */
14281c6fdb6SAnatolij Gustschin		psc@11300 {
1434df64c3eSJohn Rigby			compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc";
144bd05f91fSJohn Rigby		};
145bd05f91fSJohn Rigby
14681c6fdb6SAnatolij Gustschin		/* PSC4 serial port B aka ttyPSC1 */
14781c6fdb6SAnatolij Gustschin		psc@11400 {
1484df64c3eSJohn Rigby			compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc";
1494df64c3eSJohn Rigby		};
1504df64c3eSJohn Rigby
15181c6fdb6SAnatolij Gustschin		/* PSC5 in ac97 mode */
15281c6fdb6SAnatolij Gustschin		ac97: psc@11500 {
1534df64c3eSJohn Rigby			compatible = "fsl,mpc5121-psc-ac97", "fsl,mpc5121-psc";
1544df64c3eSJohn Rigby			fsl,mode = "ac97-slave";
15581c6fdb6SAnatolij Gustschin			fsl,rx-fifo-size = <384>;
15681c6fdb6SAnatolij Gustschin			fsl,tx-fifo-size = <384>;
1574df64c3eSJohn Rigby		};
1584df64c3eSJohn Rigby	};
1594df64c3eSJohn Rigby
1604df64c3eSJohn Rigby	pci: pci@80008500 {
1614df64c3eSJohn Rigby		interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
1624df64c3eSJohn Rigby		interrupt-map = <
16381c6fdb6SAnatolij Gustschin				/* IDSEL 0x15 - Slot 1 PCI */
1644df64c3eSJohn Rigby				 0xa800 0x0 0x0 0x1 &cpld_pic 0x0 0x8
1654df64c3eSJohn Rigby				 0xa800 0x0 0x0 0x2 &cpld_pic 0x1 0x8
1664df64c3eSJohn Rigby				 0xa800 0x0 0x0 0x3 &cpld_pic 0x2 0x8
1674df64c3eSJohn Rigby				 0xa800 0x0 0x0 0x4 &cpld_pic 0x3 0x8
1684df64c3eSJohn Rigby
16981c6fdb6SAnatolij Gustschin				/* IDSEL 0x16 - Slot 2 MiniPCI */
1704df64c3eSJohn Rigby				 0xb000 0x0 0x0 0x1 &cpld_pic 0x4 0x8
1714df64c3eSJohn Rigby				 0xb000 0x0 0x0 0x2 &cpld_pic 0x5 0x8
1724df64c3eSJohn Rigby
17381c6fdb6SAnatolij Gustschin				/* IDSEL 0x17 - Slot 3 MiniPCI */
1744df64c3eSJohn Rigby				 0xb800 0x0 0x0 0x1 &cpld_pic 0x6 0x8
1754df64c3eSJohn Rigby				 0xb800 0x0 0x0 0x2 &cpld_pic 0x7 0x8
1764df64c3eSJohn Rigby				>;
177bd05f91fSJohn Rigby	};
178bd05f91fSJohn Rigby};
179