/*
 * Copyright (c) 2023 Enphase Energy
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include <mem.h>
#include <freq.h>
#include <arm64/armv8-a.dtsi>
#include <zephyr/dt-bindings/interrupt-controller/arm-gic.h>
#include <zephyr/dt-bindings/pinctrl/ti-k3-pinctrl.h>

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

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

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

	oc_sram: memory@70000000 {
		reg = <0x70000000 DT_SIZE_K(64)>;
	};

	arch_timer: timer {
		compatible = "arm,armv8-timer";
		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL
				  IRQ_DEFAULT_PRIORITY>,
				 <GIC_PPI 14 IRQ_TYPE_LEVEL
				  IRQ_DEFAULT_PRIORITY>,
				 <GIC_PPI 11 IRQ_TYPE_LEVEL
				  IRQ_DEFAULT_PRIORITY>,
				 <GIC_PPI 10 IRQ_TYPE_LEVEL
				  IRQ_DEFAULT_PRIORITY>;
		interrupt-parent = <&gic>;
	};

	gic: interrupt-controller@1800000 {
		compatible = "arm,gic-v3", "arm,gic";
		reg = <0x01800000 0x10000>, /* GICD */
			  <0x01880000 0xc0000>; /* GICR */
		interrupt-controller;
		#interrupt-cells = <4>;
		status = "okay";
	};

	pinctrl: pinctrl@f4000 {
		compatible = "ti,k3-pinctrl";
		reg = <0x000f4000 0x2ac>;
		status = "okay";
	};

	uart0: serial@2800000 {
		compatible = "ns16550";
		reg = <0x02800000 0x100>;
		interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
		interrupt-parent = <&gic>;
		clock-frequency = <48000000>;
		current-speed = <115200>;
		reg-shift = <2>;
		status = "disabled";
	};

	uart1: serial@2810000 {
		compatible = "ns16550";
		reg = <0x02810000 0x100>;
		interrupts = <GIC_SPI 179 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
		interrupt-parent = <&gic>;
		clock-frequency = <48000000>;
		current-speed = <115200>;
		reg-shift = <2>;
		status = "disabled";
	};

	uart2: serial@2820000 {
		compatible = "ns16550";
		reg = <0x02820000 0x100>;
		interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
		interrupt-parent = <&gic>;
		clock-frequency = <48000000>;
		current-speed = <115200>;
		reg-shift = <2>;
		status = "disabled";
	};

	uart3: serial@2830000 {
		compatible = "ns16550";
		reg = <0x02830000 0x100>;
		interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
		interrupt-parent = <&gic>;
		clock-frequency = <48000000>;
		current-speed = <115200>;
		reg-shift = <2>;
		status = "disabled";
	};

	uart4: serial@2840000 {
		compatible = "ns16550";
		reg = <0x02840000 0x100>;
		interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
		interrupt-parent = <&gic>;
		clock-frequency = <48000000>;
		current-speed = <115200>;
		reg-shift = <2>;
		status = "disabled";
	};

	uart5: serial@2850000 {
		compatible = "ns16550";
		reg = <0x02850000 0x100>;
		interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
		interrupt-parent = <&gic>;
		clock-frequency = <48000000>;
		current-speed = <115200>;
		reg-shift = <2>;
		status = "disabled";
	};

	uart6: serial@2860000 {
		compatible = "ns16550";
		reg = <0x02860000 0x100>;
		interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
		interrupt-parent = <&gic>;
		clock-frequency = <48000000>;
		current-speed = <115200>;
		reg-shift = <2>;
		status = "disabled";
	};
};
