// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
/*
 * Realtek RTD1293/RTD1295/RTD1296 SoC
 *
 * Copyright (c) 2016-2019 Andreas Färber
 */

/memreserve/	0x0000000000000000 0x000000000001f000;
/memreserve/	0x000000000001f000 0x00000000000e1000;
/memreserve/	0x0000000001b00000 0x00000000004be000;

#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/reset/realtek,rtd1295.h>

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

	reserved-memory {
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;

		rpc_comm: rpc@1f000 {
			reg = <0x1f000 0x1000>;
		};

		rpc_ringbuf: rpc@1ffe000 {
			reg = <0x1ffe000 0x4000>;
		};

		tee: tee@10100000 {
			reg = <0x10100000 0xf00000>;
			no-map;
		};
	};

	arm_pmu: arm-pmu {
		compatible = "arm,cortex-a53-pmu";
		interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
	};

	osc27M: osc {
		compatible = "fixed-clock";
		clock-frequency = <27000000>;
		#clock-cells = <0>;
		clock-output-names = "osc27M";
	};

	soc {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <1>;
		ranges = <0x00000000 0x00000000 0x0001f000>, /* boot ROM */
			 /* Exclude up to 2 GiB of RAM */
			 <0x80000000 0x80000000 0x80000000>;

		rbus: bus@98000000 {
			compatible = "simple-bus";
			reg = <0x98000000 0x200000>;
			#address-cells = <1>;
			#size-cells = <1>;
			ranges = <0x0 0x98000000 0x200000>;

			crt: syscon@0 {
				compatible = "syscon", "simple-mfd";
				reg = <0x0 0x1800>;
				reg-io-width = <4>;
				#address-cells = <1>;
				#size-cells = <1>;
				ranges = <0x0 0x0 0x1800>;
			};

			iso: syscon@7000 {
				compatible = "syscon", "simple-mfd";
				reg = <0x7000 0x1000>;
				reg-io-width = <4>;
				#address-cells = <1>;
				#size-cells = <1>;
				ranges = <0x0 0x7000 0x1000>;
			};

			sb2: syscon@1a000 {
				compatible = "syscon", "simple-mfd";
				reg = <0x1a000 0x1000>;
				reg-io-width = <4>;
				#address-cells = <1>;
				#size-cells = <1>;
				ranges = <0x0 0x1a000 0x1000>;
			};

			misc: syscon@1b000 {
				compatible = "syscon", "simple-mfd";
				reg = <0x1b000 0x1000>;
				reg-io-width = <4>;
				#address-cells = <1>;
				#size-cells = <1>;
				ranges = <0x0 0x1b000 0x1000>;
			};

			scpu_wrapper: syscon@1d000 {
				compatible = "syscon", "simple-mfd";
				reg = <0x1d000 0x2000>;
				reg-io-width = <4>;
				#address-cells = <1>;
				#size-cells = <1>;
				ranges = <0x0 0x1d000 0x2000>;
			};
		};

		gic: interrupt-controller@ff011000 {
			compatible = "arm,gic-400";
			reg = <0xff011000 0x1000>,
			      <0xff012000 0x2000>,
			      <0xff014000 0x2000>,
			      <0xff016000 0x2000>;
			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
			interrupt-controller;
			#interrupt-cells = <3>;
		};
	};
};

&crt {
	reset1: reset-controller@0 {
		compatible = "snps,dw-low-reset";
		reg = <0x0 0x4>;
		#reset-cells = <1>;
	};

	reset2: reset-controller@4 {
		compatible = "snps,dw-low-reset";
		reg = <0x4 0x4>;
		#reset-cells = <1>;
	};

	reset3: reset-controller@8 {
		compatible = "snps,dw-low-reset";
		reg = <0x8 0x4>;
		#reset-cells = <1>;
	};

	reset4: reset-controller@50 {
		compatible = "snps,dw-low-reset";
		reg = <0x50 0x4>;
		#reset-cells = <1>;
	};
};

&iso {
	iso_reset: reset-controller@88 {
		compatible = "snps,dw-low-reset";
		reg = <0x88 0x4>;
		#reset-cells = <1>;
	};

	wdt: watchdog@680 {
		compatible = "realtek,rtd1295-watchdog";
		reg = <0x680 0x100>;
		clocks = <&osc27M>;
	};

	uart0: serial@800 {
		compatible = "snps,dw-apb-uart";
		reg = <0x800 0x400>;
		reg-shift = <2>;
		reg-io-width = <4>;
		clock-frequency = <27000000>;
		resets = <&iso_reset RTD1295_ISO_RSTN_UR0>;
		status = "disabled";
	};
};

&misc {
	uart1: serial@200 {
		compatible = "snps,dw-apb-uart";
		reg = <0x200 0x100>;
		reg-shift = <2>;
		reg-io-width = <4>;
		clock-frequency = <432000000>;
		resets = <&reset2 RTD1295_RSTN_UR1>;
		status = "disabled";
	};

	uart2: serial@400 {
		compatible = "snps,dw-apb-uart";
		reg = <0x400 0x100>;
		reg-shift = <2>;
		reg-io-width = <4>;
		clock-frequency = <432000000>;
		resets = <&reset2 RTD1295_RSTN_UR2>;
		status = "disabled";
	};
};
