/*
 * Copyright (c) 2019 Lexmark International, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include <mem.h>
#include <arm/armv7-r.dtsi>
#include <dt-bindings/interrupt-controller/arm-gic.h>

/ {
	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		cpu@0 {
			device_type = "cpu";
			compatible = "arm,cortex-r4";
			reg = <0>;
		};
	};

	soc {
		interrupt-parent = <&gic>;

		gic: interrupt-controller@f9010000  {
			compatible = "arm,gic";
			reg = <0xf9010000 0x1000>,
					<0xf9020000 0x100>;
			interrupt-controller;
			#interrupt-cells = <3>;
			label = "GIC";
			status = "okay";
		};

		flash0: flash@c0000000 {
			compatible = "soc-nv-flash";
			reg = <0xc0000000 DT_SIZE_K(64)>;
		};

		sram0: memory@0 {
			compatible = "mmio-sram";
			reg = <0 DT_SIZE_K(256)>;
		};

		uart0: uart@ff000000 {
			compatible = "xlnx,xuartps";
			reg = <0xff000000 0x4c>;
			status = "disabled";
			interrupts = <21 0 IRQ_TYPE_LEVEL>;
			interrupt-names = "irq_0";
			label = "UART_0";
		};

		ttc0: timer@ff110000 {
			compatible = "cdns,ttc";
			status = "disabled";
			interrupts = <36 IRQ_DEFAULT_PRIORITY IRQ_TYPE_LEVEL>,
						<37 IRQ_DEFAULT_PRIORITY IRQ_TYPE_LEVEL>,
						<38 IRQ_DEFAULT_PRIORITY IRQ_TYPE_LEVEL>;
			interrupt-names = "irq_0", "irq_1", "irq_2";
			reg = <0xff110000 0x1000>;
			label = "ttc0";
		};

		ttc1: timer@ff120000 {
			compatible = "cdns,ttc";
			status = "disabled";
			interrupts = <39 IRQ_DEFAULT_PRIORITY IRQ_TYPE_LEVEL>,
						<40 IRQ_DEFAULT_PRIORITY IRQ_TYPE_LEVEL>,
						<41 IRQ_DEFAULT_PRIORITY IRQ_TYPE_LEVEL>;
			interrupt-names = "irq_0", "irq_1", "irq_2";
			reg = <0xff120000 0x1000>;
			label = "ttc1";
		};

		ttc2: timer@ff130000 {
			compatible = "cdns,ttc";
			status = "disabled";
			interrupts = <42 IRQ_DEFAULT_PRIORITY IRQ_TYPE_LEVEL>,
						<43 IRQ_DEFAULT_PRIORITY IRQ_TYPE_LEVEL>,
						<44 IRQ_DEFAULT_PRIORITY IRQ_TYPE_LEVEL>;
			interrupt-names = "irq_0", "irq_1", "irq_2";
			reg = <0xff130000 0x1000>;
			label = "ttc2";
		};

		ttc3: timer@ff140000 {
			compatible = "cdns,ttc";
			status = "disabled";
			interrupts = <45 IRQ_DEFAULT_PRIORITY IRQ_TYPE_LEVEL>,
						<46 IRQ_DEFAULT_PRIORITY IRQ_TYPE_LEVEL>,
						<47 IRQ_DEFAULT_PRIORITY IRQ_TYPE_LEVEL>;
			interrupt-names = "irq_0", "irq_1", "irq_2";
			reg = <0xff140000 0x1000>;
			label = "ttc3";
		};
	};
};
