/*
 * Copyright (C) 2012 Imagination Technologies Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */

#include "skeleton.dtsi"

#include <dt-bindings/interrupt-controller/irq.h>

/ {
	compatible = "toumaz,tz1090", "img,meta";

	interrupt-parent = <&intc>;

	intc: interrupt-controller {
		compatible = "img,meta-intc";
		interrupt-controller;
		#interrupt-cells = <2>;
		num-banks = <2>;
	};

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

		pdc: pdc@0x02006000 {
			interrupt-controller;
			#interrupt-cells = <2>;

			reg = <0x02006000 0x1000>;
			compatible = "img,pdc-intc";

			num-perips = <3>;
			num-syswakes = <3>;

			interrupts = <18 IRQ_TYPE_LEVEL_HIGH>, /* Syswakes */
			             <30 IRQ_TYPE_LEVEL_HIGH>, /* Perip 0 (RTC) */
			             <29 IRQ_TYPE_LEVEL_HIGH>, /* Perip 1 (IR) */
			             <31 IRQ_TYPE_LEVEL_HIGH>; /* Perip 2 (WDT) */
		};

		pinctrl: pinctrl@02005800 {
			#gpio-range-cells = <3>;
			compatible = "img,tz1090-pinctrl";
			reg = <0x02005800 0xe4>;
		};

		pdc_pinctrl: pinctrl@02006500 {
			#gpio-range-cells = <3>;
			compatible = "img,tz1090-pdc-pinctrl";
			reg = <0x02006500 0x100>;
		};

		gpios: gpios@02005800 {
			#address-cells = <1>;
			#size-cells = <0>;
			compatible = "img,tz1090-gpio";
			reg = <0x02005800 0x90>;

			gpios0: bank@0 {
				gpio-controller;
				interrupt-controller;
				#gpio-cells = <2>;
				#interrupt-cells = <2>;
				reg = <0>;
				interrupts = <13 IRQ_TYPE_LEVEL_HIGH>;
				gpio-ranges = <&pinctrl 0 0 30>;
			};
			gpios1: bank@1 {
				gpio-controller;
				interrupt-controller;
				#gpio-cells = <2>;
				#interrupt-cells = <2>;
				reg = <1>;
				interrupts = <14 IRQ_TYPE_LEVEL_HIGH>;
				gpio-ranges = <&pinctrl 0 30 30>;
			};
			gpios2: bank@2 {
				gpio-controller;
				interrupt-controller;
				#gpio-cells = <2>;
				#interrupt-cells = <2>;
				reg = <2>;
				interrupts = <15 IRQ_TYPE_LEVEL_HIGH>;
				gpio-ranges = <&pinctrl 0 60 30>;
			};
		};

		pdc_gpios: gpios@02006500 {
			gpio-controller;
			#gpio-cells = <2>;

			compatible = "img,tz1090-pdc-gpio";
			reg = <0x02006500 0x100>;

			interrupt-parent = <&pdc>;
			interrupts =	<8  IRQ_TYPE_NONE>,
					<9  IRQ_TYPE_NONE>,
					<10 IRQ_TYPE_NONE>;
			gpio-ranges = <&pdc_pinctrl 0 0 7>;
		};
	};
};
