// SPDX-License-Identifier: GPL-2.0
/*
 * Based on Mans Rullgard's Tango3 DT
 * https://github.com/mansr/linux-tangox
 */

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

#define  CPU_CLK	0
#define  SYS_CLK	1
#define  USB_CLK	2
#define SDIO_CLK	3

/ {
	interrupt-parent = <&gic>;
	#address-cells = <1>;
	#size-cells = <1>;

	periph_clk: periph_clk {
		compatible = "fixed-factor-clock";
		clocks = <&clkgen CPU_CLK>;
		clock-mult = <1>;
		clock-div  = <2>;
		#clock-cells = <0>;
	};

	mpcore {
		compatible = "simple-bus";
		ranges = <0x00000000 0x20000000 0x2000>;
		#address-cells = <1>;
		#size-cells = <1>;

		scu@0 {
			compatible = "arm,cortex-a9-scu";
			reg = <0x0 0x100>;
		};

		twd@600 {
			compatible = "arm,cortex-a9-twd-timer";
			reg = <0x600 0x10>;
			interrupts = <GIC_PPI 13 IRQ_TYPE_EDGE_RISING>;
			clocks = <&periph_clk>;
			always-on;
		};

		gic: interrupt-controller@1000 {
			compatible = "arm,cortex-a9-gic";
			#interrupt-cells = <3>;
			interrupt-controller;
			reg = <0x1000 0x1000>, <0x100 0x100>;
		};
	};

	l2cc: l2-cache-controller@20100000 {
		compatible = "arm,pl310-cache";
		reg = <0x20100000 0x1000>;
		cache-level = <2>;
		cache-unified;
	};

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

		xtal: xtal {
			compatible = "fixed-clock";
			clock-frequency = <27000000>;
			#clock-cells = <0>;
		};

		clkgen: clkgen@10000 {
			compatible = "sigma,tango4-clkgen";
			reg = <0x10000 0x100>;
			clocks = <&xtal>;
			#clock-cells = <1>;
		};

		tick-counter@10048 {
			compatible = "sigma,tick-counter";
			reg = <0x10048 0x4>;
			clocks = <&xtal>;
		};

		uart: serial@10700 {
			compatible = "ralink,rt2880-uart";
			reg = <0x10700 0x30>;
			interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
			clock-frequency = <7372800>;
			reg-shift = <2>;
		};

		watchdog@1fd00 {
			compatible = "sigma,smp8759-wdt";
			reg = <0x1fd00 8>;
			clocks = <&xtal>;
		};

		mmc0: mmc@21000 {
			compatible = "arasan,sdhci-8.9a";
			reg = <0x21000 0x200>;
			clock-names = "clk_xin", "clk_ahb";
			clocks = <&clkgen SDIO_CLK>, <&clkgen SYS_CLK>;
			interrupts = <60 IRQ_TYPE_LEVEL_HIGH>;
		};

		mmc1: mmc@21200 {
			compatible = "arasan,sdhci-8.9a";
			reg = <0x21200 0x200>;
			clock-names = "clk_xin", "clk_ahb";
			clocks = <&clkgen SDIO_CLK>, <&clkgen SYS_CLK>;
			interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
		};

		usb0: usb@21400 {
			compatible = "chipidea,usb2";
			reg = <0x21400 0x200>;
			interrupts = <40 IRQ_TYPE_LEVEL_HIGH>;
			phys = <&usb0_phy>;
			phy-names = "usb-phy";
		};

		usb0_phy: phy@21700 {
			compatible = "sigma,smp8642-usb-phy";
			reg = <0x21700 0x100>;
			#phy-cells = <0>;
			clocks = <&clkgen USB_CLK>;
		};

		usb1: usb@25400 {
			compatible = "chipidea,usb2";
			reg = <0x25400 0x200>;
			interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
			phys = <&usb1_phy>;
			phy-names = "usb-phy";
		};

		usb1_phy: phy@25700 {
			compatible = "sigma,smp8642-usb-phy";
			reg = <0x25700 0x100>;
			#phy-cells = <0>;
			clocks = <&clkgen USB_CLK>;
		};

		eth0: ethernet@26000 {
			compatible = "sigma,smp8734-ethernet";
			reg = <0x26000 0x800>;
			interrupts = <38 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clkgen SYS_CLK>;
		};

		intc: interrupt-controller@6e000 {
			compatible = "sigma,smp8642-intc";
			reg = <0x6e000 0x400>;
			ranges = <0 0x6e000 0x400>;
			interrupt-parent = <&gic>;
			interrupt-controller;
			#address-cells = <1>;
			#size-cells = <1>;

			irq0: irq0@000 {
				reg = <0x000 0x100>;
				interrupt-controller;
				#interrupt-cells = <2>;
				interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
			};

			irq1: irq1@100 {
				reg = <0x100 0x100>;
				interrupt-controller;
				#interrupt-cells = <2>;
				interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
			};

			irq2: irq2@300 {
				reg = <0x300 0x100>;
				interrupt-controller;
				#interrupt-cells = <2>;
				interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
			};
		};
	};
};
