/*
 * pxa2xx.dtsi - Device Tree Include file for Marvell PXA2xx family SoC
 *
 * Copyright (C) 2011 Marek Vasut <marek.vasut@gmail.com>
 *
 * Licensed under GPLv2 or later.
 */

#include "skeleton.dtsi"
#include "dt-bindings/clock/pxa-clock.h"

/ {
	model = "Marvell PXA2xx family SoC";
	compatible = "marvell,pxa2xx";
	interrupt-parent = <&pxairq>;

	aliases {
		serial0 = &ffuart;
		serial1 = &btuart;
		serial2 = &stuart;
		serial3 = &hwuart;
		i2c0 = &pwri2c;
		i2c1 = &pxai2c1;
	};

	cpus {
		#address-cells = <0>;
		#size-cells = <0>;
		cpu {
			compatible = "marvell,xscale";
			device_type = "cpu";
		};
	};

	pxabus {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;

		pxairq: interrupt-controller@40d00000 {
			#interrupt-cells = <1>;
			compatible = "marvell,pxa-intc";
			interrupt-controller;
			interrupt-parent;
			marvell,intc-nr-irqs = <32>;
			reg = <0x40d00000 0xd0>;
		};

		gpio: gpio@40e00000 {
			compatible = "mrvl,pxa-gpio";
			#address-cells = <0x1>;
			#size-cells = <0x1>;
			reg = <0x40e00000 0x10000>;
			gpio-controller;
			#gpio-cells = <0x2>;
			interrupts = <10>;
			interrupt-names = "gpio_mux";
			interrupt-controller;
			#interrupt-cells = <0x2>;
			ranges;

			gcb0: gpio@40e00000 {
				reg = <0x40e00000 0x4>;
			};

			gcb1: gpio@40e00004 {
				reg = <0x40e00004 0x4>;
			};

			gcb2: gpio@40e00008 {
				reg = <0x40e00008 0x4>;
			};
			gcb3: gpio@40e0000c {
				reg = <0x40e0000c 0x4>;
			};
		};

		ffuart: uart@40100000 {
			compatible = "mrvl,pxa-uart";
			reg = <0x40100000 0x30>;
			interrupts = <22>;
			clocks = <&clks CLK_FFUART>;
			status = "disabled";
		};

		btuart: uart@40200000 {
			compatible = "mrvl,pxa-uart";
			reg = <0x40200000 0x30>;
			interrupts = <21>;
			clocks = <&clks CLK_BTUART>;
			status = "disabled";
		};

		stuart: uart@40700000 {
			compatible = "mrvl,pxa-uart";
			reg = <0x40700000 0x30>;
			interrupts = <20>;
			clocks = <&clks CLK_STUART>;
			status = "disabled";
		};

		hwuart: uart@41100000 {
			compatible = "mrvl,pxa-uart";
			reg = <0x41100000 0x30>;
			interrupts = <7>;
			status = "disabled";
		};

		pxai2c1: i2c@40301680 {
			compatible = "mrvl,pxa-i2c";
			reg = <0x40301680 0x30>;
			interrupts = <18>;
			clocks = <&clks CLK_I2C>;
			#address-cells = <0x1>;
			#size-cells = <0>;
			status = "disabled";
		};

		usb0: ohci@4c000000 {
			compatible = "marvell,pxa-ohci";
			reg = <0x4c000000 0x10000>;
			interrupts = <3>;
			status = "disabled";
		};

		mmc0: mmc@41100000 {
			compatible = "marvell,pxa-mmc";
			reg = <0x41100000 0x1000>;
			interrupts = <23>;
			clocks = <&clks CLK_MMC>;
			dmas = <&pdma 21 3
				&pdma 22 3>;
			dma-names = "rx", "tx";
			status = "disabled";
		};

		rtc@40900000 {
			compatible = "marvell,pxa-rtc";
			reg = <0x40900000 0x3c>;
			interrupts = <30 31>;
		};

		lcd-controller@40500000 {
			compatible = "marvell,pxa2xx-lcdc";
			reg = <0x44000000 0x10000>;
			interrupts = <17>;
			clocks = <&clks CLK_LCD>;
			status = "disabled";
		};
	};
};
