/*
 * 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 = <8>, <9>, <10>;
			interrupt-names = "gpio0", "gpio1", "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";
		};
	};
};
