// SPDX-License-Identifier: GPL-2.0+ OR MIT
/*
 * Apple T8103 "M1" SoC
 *
 * Other names: H13G, "Tonga"
 *
 * Copyright The Asahi Linux Contributors
 */

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/apple-aic.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/pinctrl/apple.h>
#include <dt-bindings/spmi/spmi.h>

/ {
	compatible = "apple,t8103", "apple,arm-platform";

	#address-cells = <2>;
	#size-cells = <2>;

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

		cpu0: cpu@0 {
			compatible = "apple,icestorm";
			device_type = "cpu";
			reg = <0x0 0x0>;
			enable-method = "spin-table";
			cpu-release-addr = <0 0>; /* To be filled by loader */
		};

		cpu1: cpu@1 {
			compatible = "apple,icestorm";
			device_type = "cpu";
			reg = <0x0 0x1>;
			enable-method = "spin-table";
			cpu-release-addr = <0 0>; /* To be filled by loader */
		};

		cpu2: cpu@2 {
			compatible = "apple,icestorm";
			device_type = "cpu";
			reg = <0x0 0x2>;
			enable-method = "spin-table";
			cpu-release-addr = <0 0>; /* To be filled by loader */
		};

		cpu3: cpu@3 {
			compatible = "apple,icestorm";
			device_type = "cpu";
			reg = <0x0 0x3>;
			enable-method = "spin-table";
			cpu-release-addr = <0 0>; /* To be filled by loader */
		};

		cpu4: cpu@10100 {
			compatible = "apple,firestorm";
			device_type = "cpu";
			reg = <0x0 0x10100>;
			enable-method = "spin-table";
			cpu-release-addr = <0 0>; /* To be filled by loader */
		};

		cpu5: cpu@10101 {
			compatible = "apple,firestorm";
			device_type = "cpu";
			reg = <0x0 0x10101>;
			enable-method = "spin-table";
			cpu-release-addr = <0 0>; /* To be filled by loader */
		};

		cpu6: cpu@10102 {
			compatible = "apple,firestorm";
			device_type = "cpu";
			reg = <0x0 0x10102>;
			enable-method = "spin-table";
			cpu-release-addr = <0 0>; /* To be filled by loader */
		};

		cpu7: cpu@10103 {
			compatible = "apple,firestorm";
			device_type = "cpu";
			reg = <0x0 0x10103>;
			enable-method = "spin-table";
			cpu-release-addr = <0 0>; /* To be filled by loader */
		};
	};

	timer {
		compatible = "arm,armv8-timer";
		interrupt-parent = <&aic>;
		interrupt-names = "hyp-phys", "hyp-virt", "phys", "virt";
		interrupts = <AIC_FIQ AIC_TMR_HV_PHYS IRQ_TYPE_LEVEL_HIGH>,
			     <AIC_FIQ AIC_TMR_HV_VIRT IRQ_TYPE_LEVEL_HIGH>,
			     <AIC_FIQ AIC_TMR_GUEST_PHYS IRQ_TYPE_LEVEL_HIGH>,
			     <AIC_FIQ AIC_TMR_GUEST_VIRT IRQ_TYPE_LEVEL_HIGH>;
	};

	clkref: clock-ref {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <24000000>;
		clock-output-names = "clkref";
	};

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

		ranges;
		dma-ranges;
		dma-coherent;
		nonposted-mmio;

		serial0: serial@235200000 {
			compatible = "apple,s5l-uart";
			reg = <0x2 0x35200000 0x0 0x1000>;
			reg-io-width = <4>;
			interrupt-parent = <&aic>;
			interrupts = <AIC_IRQ 605 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clkref>, <&clkref>, <&clkref>;
			clock-names = "uart", "clk_uart_baud0", "clk_uart_baud1";
			power-domains = <&ps_uart0>;
			status = "disabled";
		};

		serial2: serial@235208000 {
			compatible = "apple,s5l-uart";
			reg = <0x2 0x35208000 0x0 0x1000>;
			reg-io-width = <4>;
			interrupt-parent = <&aic>;
			interrupts = <AIC_IRQ 607 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clkref>, <&clkref>, <&clkref>;
			clock-names = "uart", "clk_uart_baud0", "clk_uart_baud1";
			power-domains = <&ps_uart2>;
			status = "disabled";
		};

		aic: interrupt-controller@23b100000 {
			compatible = "apple,t8103-aic", "apple,aic";
			#interrupt-cells = <3>;
			interrupt-controller;
			reg = <0x2 0x3b100000 0x0 0x8000>;
		};

		pmgr: power-controller@23b700000 {
			compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd";
			#address-cells = <1>;
			#size-cells = <0>;

			reg = <0x2 0x3b700000 0x0 0x14000>;

			ps_pcie_ref: power-controller@1a0 {
				compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
				reg = <0x1a0>;
				#power-domain-cells = <0>;
				#reset-cells = <0>;
				apple,domain-name = "pcie_ref";
			};

			ps_imx: power-controller@1b8 {
				compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
				reg = <0x1b8>;
				#power-domain-cells = <0>;
				#reset-cells = <0>;
				apple,domain-name = "imx";
				apple,always-on;
			};

			ps_sio: power-controller@1c0 {
				compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
				reg = <0x1c0>;
				#power-domain-cells = <0>;
				#reset-cells = <0>;
				apple,domain-name = "sio";
			};

			ps_uart_p: power-controller@220 {
				compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
				reg = <0x220>;
				#power-domain-cells = <0>;
				#reset-cells = <0>;
				power-domains = <&ps_sio>;
				apple,domain-name = "uart_p";
			};

			ps_uart0: power-controller@270 {
				compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
				reg = <0x270>;
				#power-domain-cells = <0>;
				#reset-cells = <0>;
				power-domains = <&ps_uart_p>;
				apple,domain-name = "uart0";
			};

			ps_uart1: power-controller@278 {
				compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
				reg = <0x278>;
				#power-domain-cells = <0>;
				#reset-cells = <0>;
				apple,domain-name = "uart1";
				power-domains = <&ps_uart_p>;
			};

			ps_uart2: power-controller@280 {
				compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
				reg = <0x280>;
				#power-domain-cells = <0>;
				#reset-cells = <0>;
				apple,domain-name = "uart2";
				power-domains = <&ps_uart_p>;
			};

			ps_uart3: power-controller@288 {
				compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
				reg = <0x288>;
				#power-domain-cells = <0>;
				#reset-cells = <0>;
				apple,domain-name = "uart3";
				power-domains = <&ps_uart_p>;
			};

			ps_apcie: power-controller@348 {
				compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
				reg = <0x348>;
				#power-domain-cells = <0>;
				#reset-cells = <0>;
				apple,domain-name = "apcie";
				power-domains = <&ps_imx>;
			};

			ps_apcie_gp: power-controller@3e8 {
				compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
				reg = <0x3e8>;
				#power-domain-cells = <0>;
				#reset-cells = <0>;
				apple,domain-name = "apcie_gp";
				power-domains = <&ps_apcie>;
			};

			ps_ans2: power-controller@3f0 {
				compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
				reg = <0x3f0>;
				#power-domain-cells = <0>;
				#reset-cells = <0>;
				apple,domain-name = "ans2";
				power-domains = <&ps_apcie_st>;
			};

			ps_apcie_st: power-controller@418 {
				compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
				reg = <0x418>;
				#power-domain-cells = <0>;
				#reset-cells = <0>;
				apple,domain-name = "apcie_st";
				power-domains = <&ps_apcie>;
			};
		};

		pinctrl_ap: pinctrl@23c100000 {
			compatible = "apple,t8103-pinctrl", "apple,pinctrl";
			reg = <0x2 0x3c100000 0x0 0x100000>;

			gpio-controller;
			#gpio-cells = <2>;
			gpio-ranges = <&pinctrl_ap 0 0 212>;

			interrupt-controller;
			interrupt-parent = <&aic>;
			interrupts = <AIC_IRQ 190 IRQ_TYPE_LEVEL_HIGH>,
				     <AIC_IRQ 191 IRQ_TYPE_LEVEL_HIGH>,
				     <AIC_IRQ 192 IRQ_TYPE_LEVEL_HIGH>,
				     <AIC_IRQ 193 IRQ_TYPE_LEVEL_HIGH>,
				     <AIC_IRQ 194 IRQ_TYPE_LEVEL_HIGH>,
				     <AIC_IRQ 195 IRQ_TYPE_LEVEL_HIGH>,
				     <AIC_IRQ 196 IRQ_TYPE_LEVEL_HIGH>;

			i2c0_pins: i2c0_pins {
				pinmux = <APPLE_PINMUX(188, 1)>,
					 <APPLE_PINMUX(192, 1)>;
			};

			pcie_pins: pcie-pins {
				pinmux = <APPLE_PINMUX(150, 1)>,
				         <APPLE_PINMUX(151, 1)>,
					 <APPLE_PINMUX(32, 1)>;
			};
		};

		pinctrl_aop: pinctrl@24a820000 {
			compatible = "apple,t8103-pinctrl", "apple,pinctrl";
			reg = <0x2 0x4a820000 0x0 0x4000>;

			gpio-controller;
			#gpio-cells = <2>;
			gpio-ranges = <&pinctrl_aop 0 0 42>;

			interrupt-controller;
			interrupt-parent = <&aic>;
			interrupts = <AIC_IRQ 268 IRQ_TYPE_LEVEL_HIGH>,
				     <AIC_IRQ 269 IRQ_TYPE_LEVEL_HIGH>,
				     <AIC_IRQ 270 IRQ_TYPE_LEVEL_HIGH>,
				     <AIC_IRQ 271 IRQ_TYPE_LEVEL_HIGH>,
				     <AIC_IRQ 272 IRQ_TYPE_LEVEL_HIGH>,
				     <AIC_IRQ 273 IRQ_TYPE_LEVEL_HIGH>,
				     <AIC_IRQ 274 IRQ_TYPE_LEVEL_HIGH>;
		};

		pinctrl_nub: pinctrl@23d1f0000 {
			compatible = "apple,t8103-pinctrl", "apple,pinctrl";
			reg = <0x2 0x3d1f0000 0x0 0x4000>;

			gpio-controller;
			#gpio-cells = <2>;
			gpio-ranges = <&pinctrl_nub 0 0 23>;

			interrupt-controller;
			interrupt-parent = <&aic>;
			interrupts = <AIC_IRQ 330 IRQ_TYPE_LEVEL_HIGH>,
				     <AIC_IRQ 331 IRQ_TYPE_LEVEL_HIGH>,
				     <AIC_IRQ 332 IRQ_TYPE_LEVEL_HIGH>,
				     <AIC_IRQ 333 IRQ_TYPE_LEVEL_HIGH>,
				     <AIC_IRQ 334 IRQ_TYPE_LEVEL_HIGH>,
				     <AIC_IRQ 335 IRQ_TYPE_LEVEL_HIGH>,
				     <AIC_IRQ 336 IRQ_TYPE_LEVEL_HIGH>;
		};

		wdt: watchdog@23d2b0000 {
			compatible = "apple,t8103-wdt", "apple,wdt";
			reg = <0x2 0x3d2b0000 0x0 0x4000>;
			clocks = <&clkref>;
			interrupt-parent = <&aic>;
			interrupts = <AIC_IRQ 338 IRQ_TYPE_LEVEL_HIGH>;
		};

		pinctrl_smc: pinctrl@23e820000 {
			compatible = "apple,t8103-pinctrl", "apple,pinctrl";
			reg = <0x2 0x3e820000 0x0 0x4000>;

			gpio-controller;
			#gpio-cells = <2>;
			gpio-ranges = <&pinctrl_smc 0 0 16>;

			interrupt-controller;
			interrupt-parent = <&aic>;
			interrupts = <AIC_IRQ 391 IRQ_TYPE_LEVEL_HIGH>,
				     <AIC_IRQ 392 IRQ_TYPE_LEVEL_HIGH>,
				     <AIC_IRQ 393 IRQ_TYPE_LEVEL_HIGH>,
				     <AIC_IRQ 394 IRQ_TYPE_LEVEL_HIGH>,
				     <AIC_IRQ 395 IRQ_TYPE_LEVEL_HIGH>,
				     <AIC_IRQ 396 IRQ_TYPE_LEVEL_HIGH>,
				     <AIC_IRQ 397 IRQ_TYPE_LEVEL_HIGH>;
		};

		i2c0: i2c@20a110000 {
			compatible = "apple,i2c-v0";
			reg = <0x2 0x35010000 0x0 0x4000>;
			interrupt-parent = <&aic>;
			interrupts = <AIC_IRQ 627 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clkref>;
			pinctrl-0 = <&i2c0_pins>;
			pinctrl-names = "default";
			#address-cells = <0x1>;
			#size-cells = <0x0>;

			hpm0: hpm@38 {
				compatible = "ti,tps6598x";
				reg = <0x38>;
			};

			hpm1: hpm@3f {
				compatible = "ti,tps6598x";
				reg = <0x3f>;
			};
                };

		ans_mbox: mbox@277400000 {
			compatible = "apple,iop-mailbox-m1";
			reg = <0x2 0x77400000 0x0 0x20000>;
			interrupt-parent = <&aic>;
			interrupts = <AIC_IRQ 583 IRQ_TYPE_LEVEL_HIGH>,
				     <AIC_IRQ 586 IRQ_TYPE_LEVEL_HIGH>;
			power-domains = <&ps_ans2>;
			#mbox-cells = <1>;
			endpoints = <32>;
		};

		ans@27bcc0000 {
			compatible = "apple,nvme-m1";
			reg = <0x2 0x7bcc0000 0x0 0x40000>,
			      <0x2 0x7bc50000 0x0 0x4000>;
			interrupt-parent = <&aic>;
			interrupts = <AIC_IRQ 590 IRQ_TYPE_LEVEL_HIGH>;
			power-domains = <&ps_apcie_st>;
			mboxes = <&ans_mbox 32>;
		};

		pcie0_dart_0: iommu@681008000 {
			compatible = "apple,t8103-dart", "apple,dart-m1";
			reg = <0x6 0x81008000 0x0 0x4000>;
			interrupt-parent = <&aic>;
			interrupts = <AIC_IRQ 696 IRQ_TYPE_LEVEL_HIGH>;
			#iommu-cells = <1>;
			status = "disabled";
		};

		pcie0_dart_1: iommu@682008000 {
			compatible = "apple,t8103-dart", "apple,dart-m1";
			reg = <0x6 0x82008000 0x0 0x4000>;
			interrupt-parent = <&aic>;
			interrupts = <AIC_IRQ 699 IRQ_TYPE_LEVEL_HIGH>;
			#iommu-cells = <1>;
			status = "disabled";
		};

		pcie0_dart_2: iommu@683008000 {
			compatible = "apple,t8103-dart", "apple,dart-m1";
			reg = <0x6 0x83008000 0x0 0x4000>;
			interrupt-parent = <&aic>;
			interrupts = <AIC_IRQ 702 IRQ_TYPE_LEVEL_HIGH>;
			#iommu-cells = <1>;
			status = "disabled";
		};

		smc_mbox: mbox@23e400000 {
			compatible = "apple,iop-mailbox-m1";
			reg = <0x2 0x3e400000 0x0 0x20000>;
			#mbox-cells = <1>;
			endpoints = <32>;
		};

		smc: smc@23e050000 {
			compatible = "apple,smc-m1";
			reg = <0x2 0x3e050000 0x0 0x4000>;
			mboxes = <&smc_mbox 32>;
			gpio-controller;
			#gpio-cells = <2>;
			gpio-13 = <0x00800000>;
		};

		pcie0: pcie@690000000 {
			compatible = "apple,t8103-pcie", "apple,pcie";

			reg = <0x6 0x90000000 0x0 0x1000000>,
			      <0x6 0x80000000 0x0 0x4000>,
			      <0x6 0x81000000 0x0 0x8000>,
			      <0x6 0x82000000 0x0 0x8000>,
			      <0x6 0x83000000 0x0 0x8000>;
			reg-names = "config", "rc", "port0", "port1", "port2";

			interrupt-parent = <&aic>;
			interrupts = <AIC_IRQ 695 IRQ_TYPE_LEVEL_HIGH>,
				     <AIC_IRQ 698 IRQ_TYPE_LEVEL_HIGH>,
				     <AIC_IRQ 701 IRQ_TYPE_LEVEL_HIGH>;

			msi-controller;
			msi-parent = <&pcie0>;
			msi-ranges = <&aic AIC_IRQ 704 IRQ_TYPE_EDGE_RISING 32>;

			iommu-map = <0x100 &pcie0_dart_0 1 1>,
				    <0x200 &pcie0_dart_1 1 1>,
				    <0x300 &pcie0_dart_2 1 1>;
			iommu-map-mask = <0xff00>;

			bus-range = <0 3>;
			#address-cells = <3>;
			#size-cells = <2>;
			ranges = <0x43000000 0x6 0xa0000000 0x6 0xa0000000
			          0x0 0x20000000>,
				 <0x02000000 0x0 0xc0000000 0x6 0xc0000000
				  0x0 0x40000000>;

			power-domains = <&ps_apcie>, <&ps_apcie_gp>, <&ps_pcie_ref>;
			pinctrl-0 = <&pcie_pins>;
			pinctrl-names = "default";

			device_type = "pci";
			status = "disabled";
		};

		dwc3_0_dart_0: iommu@382f00000 {
			compatible = "apple,t8103-dart";
			reg = <0x3 0x82f00000 0x0 0x4000>;
			interrupt-parent = <&aic>;
			interrupts = <AIC_IRQ 781 IRQ_TYPE_LEVEL_HIGH>;
			#iommu-cells = <1>;
			status = "disabled";
		};

		dwc3_0_dart_1: iommu@382f80000 {
			compatible = "apple,t8103-dart";
			reg = <0x3 0x82f80000 0x0 0x4000>;
			interrupt-parent = <&aic>;
			interrupts = <AIC_IRQ 781 IRQ_TYPE_LEVEL_HIGH>;
			#iommu-cells = <1>;
			status = "disabled";
		};

		dwc3_0: usb@382280000{
			compatible = "snps,dwc3";
			reg = <0x3 0x82280000 0x0 0x100000>;
			interrupt-parent = <&aic>;
			interrupts = <AIC_IRQ 777 IRQ_TYPE_LEVEL_HIGH>;
			dr_mode = "host";
			iommus = <&dwc3_0_dart_0 0>, <&dwc3_0_dart_1 1>;
			status = "disabled";
		};

		dwc3_1_dart_0: iommu@502f00000 {
			compatible = "apple,t8103-dart";
			reg = <0x5 0x02f00000 0x0 0x4000>;
			interrupt-parent = <&aic>;
			interrupts = <AIC_IRQ 861 IRQ_TYPE_LEVEL_HIGH>;
			#iommu-cells = <1>;
			status = "disabled";
		};

		dwc3_1_dart_1: iommu@502f80000 {
			compatible = "apple,t8103-dart";
			reg = <0x5 0x02f80000 0x0 0x4000>;
			interrupt-parent = <&aic>;
			interrupts = <AIC_IRQ 861 IRQ_TYPE_LEVEL_HIGH>;
			#iommu-cells = <1>;
			status = "disabled";
		};

		dwc3_1: usb@502280000{
			compatible = "snps,dwc3";
			reg = <0x5 0x02280000 0x0 0x100000>;
			interrupt-parent = <&aic>;
			interrupts = <AIC_IRQ 857 IRQ_TYPE_LEVEL_HIGH>;
			dr_mode = "host";
			iommus = <&dwc3_1_dart_0 0>, <&dwc3_1_dart_1 1>;
			status = "disabled";
		};

		spi@23510c000 {
			compatible = "apple,t8103-spi", "apple,spi";
			reg = <0x2 0x3510c000 0x0 0x4000>;
			interrupt-parent = <&aic>;
			interrupts = <AIC_IRQ 617 IRQ_TYPE_LEVEL_HIGH>;
			cs-gpios = <&pinctrl_ap 49 GPIO_ACTIVE_HIGH>;
		};

		spmi@23d0d8000 {
			compatible = "apple,t8103-spmi", "apple,spmi";
			reg = <0x2 0x3d0d9300 0x0 0x100>;
			interrupt-parent = <&aic>;
			interrupts = <AIC_IRQ 343 IRQ_TYPE_LEVEL_HIGH>;

			#address-cells = <2>;
			#size-cells = <0>;

			pmu@f {
				compatible = "apple,sera-pmu";
				reg = <0xf SPMI_USID>;
			};
		};
	};
};
