// SPDX-License-Identifier: GPL-2.0-only
/*
 * Unisoc Sharkl3 platform DTS file
 *
 * Copyright (C) 2019, Unisoc Inc.
 */

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

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

		ap_ahb_regs: syscon@20e00000 {
			compatible = "sprd,sc9863a-glbregs", "syscon",
				     "simple-mfd";
			reg = <0 0x20e00000 0 0x4000>;
			#address-cells = <1>;
			#size-cells = <1>;
			ranges = <0 0 0x20e00000 0x4000>;

			apahb_gate: apahb-gate {
				compatible = "sprd,sc9863a-apahb-gate";
				reg = <0x0 0x1020>;
				#clock-cells = <1>;
			};
		};

		pmu_regs: syscon@402b0000 {
			compatible = "sprd,sc9863a-glbregs", "syscon",
				     "simple-mfd";
			reg = <0 0x402b0000 0 0x4000>;
			#address-cells = <1>;
			#size-cells = <1>;
			ranges = <0 0 0x402b0000 0x4000>;

			pmu_gate: pmu-gate {
				compatible = "sprd,sc9863a-pmu-gate";
				reg = <0 0x1200>;
				clocks = <&ext_26m>;
				clock-names = "ext-26m";
				#clock-cells = <1>;
			};
		};

		aon_apb_regs: syscon@402e0000 {
			compatible = "sprd,sc9863a-glbregs", "syscon",
				     "simple-mfd";
			reg = <0 0x402e0000 0 0x4000>;
			#address-cells = <1>;
			#size-cells = <1>;
			ranges = <0 0 0x402e0000 0x4000>;

			aonapb_gate: aonapb-gate {
				compatible = "sprd,sc9863a-aonapb-gate";
				reg = <0 0x1100>;
				#clock-cells = <1>;
			};
		};

		anlg_phy_g2_regs: syscon@40353000 {
			compatible = "sprd,sc9863a-glbregs", "syscon",
				     "simple-mfd";
			reg = <0 0x40353000 0 0x3000>;
			#address-cells = <1>;
			#size-cells = <1>;
			ranges = <0 0 0x40353000 0x3000>;

			pll: pll {
				compatible = "sprd,sc9863a-pll";
				reg = <0 0x100>;
				clocks = <&ext_26m>;
				clock-names = "ext-26m";
				#clock-cells = <1>;
			};
		};

		anlg_phy_g4_regs: syscon@40359000 {
			compatible = "sprd,sc9863a-glbregs", "syscon",
				     "simple-mfd";
			reg = <0 0x40359000 0 0x3000>;
			#address-cells = <1>;
			#size-cells = <1>;
			ranges = <0 0 0x40359000 0x3000>;

			mpll: mpll {
				compatible = "sprd,sc9863a-mpll";
				reg = <0 0x100>;
				#clock-cells = <1>;
			};
		};

		anlg_phy_g5_regs: syscon@4035c000 {
			compatible = "sprd,sc9863a-glbregs", "syscon",
				     "simple-mfd";
			reg = <0 0x4035c000 0 0x3000>;
			#address-cells = <1>;
			#size-cells = <1>;
			ranges = <0 0 0x4035c000 0x3000>;

			rpll: rpll {
				compatible = "sprd,sc9863a-rpll";
				reg = <0 0x100>;
				clocks = <&ext_26m>;
				clock-names = "ext-26m";
				#clock-cells = <1>;
			};
		};

		anlg_phy_g7_regs: syscon@40363000 {
			compatible = "sprd,sc9863a-glbregs", "syscon",
				     "simple-mfd";
			reg = <0 0x40363000 0 0x3000>;
			#address-cells = <1>;
			#size-cells = <1>;
			ranges = <0 0 0x40363000 0x3000>;

			dpll: dpll {
				compatible = "sprd,sc9863a-dpll";
				reg = <0 0x100>;
				#clock-cells = <1>;
			};
		};

		mm_ahb_regs: syscon@60800000 {
			compatible = "sprd,sc9863a-glbregs", "syscon",
				     "simple-mfd";
			reg = <0 0x60800000 0 0x1000>;
			#address-cells = <1>;
			#size-cells = <1>;
			ranges = <0 0 0x60800000 0x3000>;

			mm_gate: mm-gate {
				compatible = "sprd,sc9863a-mm-gate";
				reg = <0 0x1100>;
				#clock-cells = <1>;
			};
		};

		ap_apb_regs: syscon@71300000 {
			compatible = "sprd,sc9863a-glbregs", "syscon",
				     "simple-mfd";
			reg = <0 0x71300000 0 0x4000>;
			#address-cells = <1>;
			#size-cells = <1>;
			ranges = <0 0 0x71300000 0x4000>;

			apapb_gate: apapb-gate {
				compatible = "sprd,sc9863a-apapb-gate";
				reg = <0 0x1000>;
				clocks = <&ext_26m>;
				clock-names = "ext-26m";
				#clock-cells = <1>;
			};
		};

		apb@70000000 {
			compatible = "simple-bus";
			#address-cells = <1>;
			#size-cells = <1>;
			ranges = <0 0x0 0x70000000 0x10000000>;

			uart0: serial@0 {
				compatible = "sprd,sc9863a-uart",
					     "sprd,sc9836-uart";
				reg = <0x0 0x100>;
				interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
				clocks = <&ext_26m>;
				status = "disabled";
			};

			uart1: serial@100000 {
				compatible = "sprd,sc9863a-uart",
					     "sprd,sc9836-uart";
				reg = <0x100000 0x100>;
				interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
				clocks = <&ext_26m>;
				status = "disabled";
			};

			uart2: serial@200000 {
				compatible = "sprd,sc9863a-uart",
					     "sprd,sc9836-uart";
				reg = <0x200000 0x100>;
				interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
				clocks = <&ext_26m>;
				status = "disabled";
			};

			uart3: serial@300000 {
				compatible = "sprd,sc9863a-uart",
					     "sprd,sc9836-uart";
				reg = <0x300000 0x100>;
				interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
				clocks = <&ext_26m>;
				status = "disabled";
			};

			uart4: serial@400000 {
				compatible = "sprd,sc9863a-uart",
					     "sprd,sc9836-uart";
				reg = <0x400000 0x100>;
				interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
				clocks = <&ext_26m>;
				status = "disabled";
			};
		};
	};

	ext_26m: ext-26m {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <26000000>;
		clock-output-names = "ext-26m";
	};

	ext_32k: ext-32k {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <32768>;
		clock-output-names = "ext-32k";
	};

	ext_4m: ext-4m {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <4000000>;
		clock-output-names = "ext-4m";
	};

	rco_100m: rco-100m {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <100000000>;
		clock-output-names = "rco-100m";
	};
};
