162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * MPC5121E ADS Device Tree Source
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright 2007-2008 Freescale Semiconductor Inc.
662306a36Sopenharmony_ci */
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci#include "mpc5121.dtsi"
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci/ {
1162306a36Sopenharmony_ci	model = "mpc5121ads";
1262306a36Sopenharmony_ci	compatible = "fsl,mpc5121ads", "fsl,mpc5121";
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci	nfc@40000000 {
1562306a36Sopenharmony_ci		/*
1662306a36Sopenharmony_ci		 * ADS has two Hynix 512MB Nand flash chips in a single
1762306a36Sopenharmony_ci		 * stacked package.
1862306a36Sopenharmony_ci		 */
1962306a36Sopenharmony_ci		chips = <2>;
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci		nand@0 {
2262306a36Sopenharmony_ci			label = "nand";
2362306a36Sopenharmony_ci			reg = <0x00000000 0x40000000>;	/* 512MB + 512MB */
2462306a36Sopenharmony_ci		};
2562306a36Sopenharmony_ci	};
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci	localbus@80000020 {
2862306a36Sopenharmony_ci		ranges = <0x0 0x0 0xfc000000 0x04000000
2962306a36Sopenharmony_ci			  0x2 0x0 0x82000000 0x00008000>;
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci		flash@0,0 {
3262306a36Sopenharmony_ci			compatible = "cfi-flash";
3362306a36Sopenharmony_ci			reg = <0 0x0 0x4000000>;
3462306a36Sopenharmony_ci			#address-cells = <1>;
3562306a36Sopenharmony_ci			#size-cells = <1>;
3662306a36Sopenharmony_ci			bank-width = <4>;
3762306a36Sopenharmony_ci			device-width = <2>;
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci			protected@0 {
4062306a36Sopenharmony_ci				label = "protected";
4162306a36Sopenharmony_ci				reg = <0x00000000 0x00040000>;  // first sector is protected
4262306a36Sopenharmony_ci				read-only;
4362306a36Sopenharmony_ci			};
4462306a36Sopenharmony_ci			filesystem@40000 {
4562306a36Sopenharmony_ci				label = "filesystem";
4662306a36Sopenharmony_ci				reg = <0x00040000 0x03c00000>;  // 60M for filesystem
4762306a36Sopenharmony_ci			};
4862306a36Sopenharmony_ci			kernel@3c40000 {
4962306a36Sopenharmony_ci				label = "kernel";
5062306a36Sopenharmony_ci				reg = <0x03c40000 0x00280000>;  // 2.5M for kernel
5162306a36Sopenharmony_ci			};
5262306a36Sopenharmony_ci			device-tree@3ec0000 {
5362306a36Sopenharmony_ci				label = "device-tree";
5462306a36Sopenharmony_ci				reg = <0x03ec0000 0x00040000>;  // one sector for device tree
5562306a36Sopenharmony_ci			};
5662306a36Sopenharmony_ci			u-boot@3f00000 {
5762306a36Sopenharmony_ci				label = "u-boot";
5862306a36Sopenharmony_ci				reg = <0x03f00000 0x00100000>;  // 1M for u-boot
5962306a36Sopenharmony_ci				read-only;
6062306a36Sopenharmony_ci			};
6162306a36Sopenharmony_ci		};
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ci		board-control@2,0 {
6462306a36Sopenharmony_ci			compatible = "fsl,mpc5121ads-cpld";
6562306a36Sopenharmony_ci			reg = <0x2 0x0 0x8000>;
6662306a36Sopenharmony_ci		};
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ci		cpld_pic: pic@2,a {
6962306a36Sopenharmony_ci			compatible = "fsl,mpc5121ads-cpld-pic";
7062306a36Sopenharmony_ci			interrupt-controller;
7162306a36Sopenharmony_ci			#interrupt-cells = <2>;
7262306a36Sopenharmony_ci			reg = <0x2 0xa 0x5>;
7362306a36Sopenharmony_ci			/* irq routing:
7462306a36Sopenharmony_ci			 * all irqs but touch screen are routed to irq0 (ipic 48)
7562306a36Sopenharmony_ci			 * touch screen is statically routed to irq1 (ipic 17)
7662306a36Sopenharmony_ci			 * so don't use it here
7762306a36Sopenharmony_ci			 */
7862306a36Sopenharmony_ci			interrupts = <48 0x8>;
7962306a36Sopenharmony_ci		};
8062306a36Sopenharmony_ci	};
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ci	soc@80000000 {
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ci		i2c@1700 {
8562306a36Sopenharmony_ci			fsl,preserve-clocking;
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci			hwmon@4a {
8862306a36Sopenharmony_ci				compatible = "adi,ad7414";
8962306a36Sopenharmony_ci				reg = <0x4a>;
9062306a36Sopenharmony_ci			};
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci			eeprom@50 {
9362306a36Sopenharmony_ci				compatible = "atmel,24c32";
9462306a36Sopenharmony_ci				reg = <0x50>;
9562306a36Sopenharmony_ci			};
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ci			rtc@68 {
9862306a36Sopenharmony_ci				compatible = "st,m41t62";
9962306a36Sopenharmony_ci				reg = <0x68>;
10062306a36Sopenharmony_ci			};
10162306a36Sopenharmony_ci		};
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ci		eth0: ethernet@2800 {
10462306a36Sopenharmony_ci			phy-handle = <&phy0>;
10562306a36Sopenharmony_ci		};
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ci		can@2300 {
10862306a36Sopenharmony_ci			status = "disabled";
10962306a36Sopenharmony_ci		};
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_ci		can@2380 {
11262306a36Sopenharmony_ci			status = "disabled";
11362306a36Sopenharmony_ci		};
11462306a36Sopenharmony_ci
11562306a36Sopenharmony_ci		viu@2400 {
11662306a36Sopenharmony_ci			status = "disabled";
11762306a36Sopenharmony_ci		};
11862306a36Sopenharmony_ci
11962306a36Sopenharmony_ci		mdio@2800 {
12062306a36Sopenharmony_ci			phy0: ethernet-phy@0 {
12162306a36Sopenharmony_ci				reg = <1>;
12262306a36Sopenharmony_ci			};
12362306a36Sopenharmony_ci		};
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ci		/* mpc5121ads only uses USB0 */
12662306a36Sopenharmony_ci		usb@3000 {
12762306a36Sopenharmony_ci			status = "disabled";
12862306a36Sopenharmony_ci		};
12962306a36Sopenharmony_ci
13062306a36Sopenharmony_ci		/* USB0 using internal UTMI PHY */
13162306a36Sopenharmony_ci		usb@4000 {
13262306a36Sopenharmony_ci			dr_mode = "host";
13362306a36Sopenharmony_ci			fsl,invert-drvvbus;
13462306a36Sopenharmony_ci			fsl,invert-pwr-fault;
13562306a36Sopenharmony_ci		};
13662306a36Sopenharmony_ci
13762306a36Sopenharmony_ci		/* PSC3 serial port A aka ttyPSC0 */
13862306a36Sopenharmony_ci		psc@11300 {
13962306a36Sopenharmony_ci			compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc";
14062306a36Sopenharmony_ci		};
14162306a36Sopenharmony_ci
14262306a36Sopenharmony_ci		/* PSC4 serial port B aka ttyPSC1 */
14362306a36Sopenharmony_ci		psc@11400 {
14462306a36Sopenharmony_ci			compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc";
14562306a36Sopenharmony_ci		};
14662306a36Sopenharmony_ci
14762306a36Sopenharmony_ci		/* PSC5 in ac97 mode */
14862306a36Sopenharmony_ci		ac97: psc@11500 {
14962306a36Sopenharmony_ci			compatible = "fsl,mpc5121-psc-ac97", "fsl,mpc5121-psc";
15062306a36Sopenharmony_ci			fsl,mode = "ac97-slave";
15162306a36Sopenharmony_ci			fsl,rx-fifo-size = <384>;
15262306a36Sopenharmony_ci			fsl,tx-fifo-size = <384>;
15362306a36Sopenharmony_ci		};
15462306a36Sopenharmony_ci	};
15562306a36Sopenharmony_ci
15662306a36Sopenharmony_ci	pci: pci@80008500 {
15762306a36Sopenharmony_ci		interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
15862306a36Sopenharmony_ci		interrupt-map = <
15962306a36Sopenharmony_ci				/* IDSEL 0x15 - Slot 1 PCI */
16062306a36Sopenharmony_ci				 0xa800 0x0 0x0 0x1 &cpld_pic 0x0 0x8
16162306a36Sopenharmony_ci				 0xa800 0x0 0x0 0x2 &cpld_pic 0x1 0x8
16262306a36Sopenharmony_ci				 0xa800 0x0 0x0 0x3 &cpld_pic 0x2 0x8
16362306a36Sopenharmony_ci				 0xa800 0x0 0x0 0x4 &cpld_pic 0x3 0x8
16462306a36Sopenharmony_ci
16562306a36Sopenharmony_ci				/* IDSEL 0x16 - Slot 2 MiniPCI */
16662306a36Sopenharmony_ci				 0xb000 0x0 0x0 0x1 &cpld_pic 0x4 0x8
16762306a36Sopenharmony_ci				 0xb000 0x0 0x0 0x2 &cpld_pic 0x5 0x8
16862306a36Sopenharmony_ci
16962306a36Sopenharmony_ci				/* IDSEL 0x17 - Slot 3 MiniPCI */
17062306a36Sopenharmony_ci				 0xb800 0x0 0x0 0x1 &cpld_pic 0x6 0x8
17162306a36Sopenharmony_ci				 0xb800 0x0 0x0 0x2 &cpld_pic 0x7 0x8
17262306a36Sopenharmony_ci				>;
17362306a36Sopenharmony_ci	};
17462306a36Sopenharmony_ci};
175