// 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>;
		};

		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";
		};

		reboot@23d2b0000 {
			compatible = "apple,reboot-v0";
			reg = <0x2 0x3d2b0000 0x0 0x4000>;
		};

		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>;
			};
		};
	};
};
