[PATCH v2 1/3] arm: dts: apple: Update Apple M1 device trees

Jaehoon Chung jh80.chung at gmail.com
Mon Dec 27 13:20:34 CET 2021



On 12/24/21 6:34 AM, Mark Kettenis wrote:
> This synchronizes the device trees with those that are in the
> process of being upstreamed into Linux 5.16 or proposed for
> Linux 5.17.  This includes device trees for machines that were
> still missing.
>
> There are still some differences that will hopefully be resolved
> soon.
>
> Signed-off-by: Mark Kettenis <kettenis at openbsd.org>

Reviewed-by: Jaehoon Chung <jh80.chung at samsung.com>

Best Regards,
Jaehoon Chung

> ---
>  arch/arm/dts/Makefile        |    5 +-
>  arch/arm/dts/t8103-j274.dts  |  122 +---
>  arch/arm/dts/t8103-j293.dts  |   92 +--
>  arch/arm/dts/t8103-j313.dts  |   57 ++
>  arch/arm/dts/t8103-j456.dts  |   71 +++
>  arch/arm/dts/t8103-j457.dts  |   59 ++
>  arch/arm/dts/t8103-jxxx.dtsi |  140 +++++
>  arch/arm/dts/t8103-pmgr.dtsi | 1136 ++++++++++++++++++++++++++++++++++
>  arch/arm/dts/t8103.dtsi      |  585 +++++++++--------
>  9 files changed, 1839 insertions(+), 428 deletions(-)
>  create mode 100644 arch/arm/dts/t8103-j313.dts
>  create mode 100644 arch/arm/dts/t8103-j456.dts
>  create mode 100644 arch/arm/dts/t8103-j457.dts
>  create mode 100644 arch/arm/dts/t8103-jxxx.dtsi
>  create mode 100644 arch/arm/dts/t8103-pmgr.dtsi
>
> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
> index 7f622fedbd..35872e1574 100644
> --- a/arch/arm/dts/Makefile
> +++ b/arch/arm/dts/Makefile
> @@ -34,7 +34,10 @@ dtb-$(CONFIG_TARGET_A7Y17LTE) += exynos78x0-axy17lte.dtb
>  
>  dtb-$(CONFIG_ARCH_APPLE) += \
>  	t8103-j274.dtb \
> -	t8103-j293.dtb
> +	t8103-j293.dtb \
> +	t8103-j313.dtb \
> +	t8103-j456.dtb \
> +	t8103-j457.dtb
>  
>  dtb-$(CONFIG_ARCH_DAVINCI) += \
>  	da850-evm.dtb \
> diff --git a/arch/arm/dts/t8103-j274.dts b/arch/arm/dts/t8103-j274.dts
> index aef1ae29b6..2144768147 100644
> --- a/arch/arm/dts/t8103-j274.dts
> +++ b/arch/arm/dts/t8103-j274.dts
> @@ -10,126 +10,48 @@
>  /dts-v1/;
>  
>  #include "t8103.dtsi"
> +#include "t8103-jxxx.dtsi"
>  
>  / {
>  	compatible = "apple,j274", "apple,t8103", "apple,arm-platform";
>  	model = "Apple Mac mini (M1, 2020)";
>  
>  	aliases {
> -		serial0 = &serial0;
> -		ethernet0 = &eth0;
> -		wifi0 = &wifi0;
> -	};
> -
> -	chosen {
> -		#address-cells = <2>;
> -		#size-cells = <2>;
> -		ranges;
> -
> -		stdout-path = "serial0";
> -
> -		framebuffer0: framebuffer at 0 {
> -			compatible = "apple,simple-framebuffer", "simple-framebuffer";
> -			reg = <0 0 0 0>; /* To be filled by loader */
> -			/* Format properties will be added by loader */
> -			status = "disabled";
> -		};
> -	};
> -
> -	memory at 800000000 {
> -		device_type = "memory";
> -		reg = <0x8 0 0x2 0>; /* To be filled by loader */
> +		ethernet0 = &ethernet0;
>  	};
>  };
>  
> -&serial0 {
> -	status = "okay";
> -};
> -
> -&pcie0_dart_0 {
> -	status = "okay";
> -};
> +/*
> + * Provide labels for the USB type C ports.
> + */
>  
> -&pcie0_dart_1 {
> -	status = "okay";
> +&typec0 {
> +	label = "USB-C Back-left";
>  };
>  
> -&pcie0_dart_2 {
> -	status = "okay";
> +&typec1 {
> +	label = "USB-C Back-right";
>  };
>  
> -&pcie0 {
> -	status = "okay";
> -
> -	pci0: pci at 0,0 {
> -		device_type = "pci";
> -		reg = <0x0 0x0 0x0 0x0 0x0>;
> -		pwren-gpios = <&smc 13 0>;
> -		reset-gpios = <&pinctrl_ap 152 0>;
> -		max-link-speed = <2>;
> -
> -		#address-cells = <3>;
> -		#size-cells = <2>;
> -		ranges;
> -	};
> -
> -	pci1: pci at 1,0 {
> -		device_type = "pci";
> -		reg = <0x800 0x0 0x0 0x0 0x0>;
> -		reset-gpios = <&pinctrl_ap 153 0>;
> -		max-link-speed = <2>;
> -
> -		#address-cells = <3>;
> -		#size-cells = <2>;
> -		ranges;
> -	};
> -
> -	pci2: pci at 2,0 {
> -		device_type = "pci";
> -		reg = <0x1000 0x0 0x0 0x0 0x0>;
> -		reset-gpios = <&pinctrl_ap 33 0>;
> -		max-link-speed = <1>;
> +/*
> + * Force the bus number assignments so that we can declare some of the
> + * on-board devices and properties that are populated by the bootloader
> + * (such as MAC addresses).
> + */
>  
> -		#address-cells = <3>;
> -		#size-cells = <2>;
> -		ranges;
> -	};
> +&port01 {
> +	bus-range = <2 2>;
>  };
>  
> -&pci0 {
> -	wifi0: network at 0,0 {
> -		reg = <0x10000 0x0 0x0 0x0 0x0>;
> -		local-mac-address = [00 00 00 00 00 00];
> -	};
> -};
> -
> -&pci2 {
> -	eth0: ethernet at 0,0 {
> +&port02 {
> +	bus-range = <3 3>;
> +	ethernet0: ethernet at 0,0 {
>  		reg = <0x30000 0x0 0x0 0x0 0x0>;
> -		local-mac-address = [00 00 00 00 00 00];
> +		/* To be filled by the loader */
> +		local-mac-address = [00 10 18 00 00 00];
>  	};
>  };
>  
> -&dwc3_0_dart_0 {
> -	status = "okay";
> -};
> -
> -&dwc3_0_dart_1 {
> -	status = "okay";
> -};
> -
> -&dwc3_0 {
> -	status = "okay";
> -};
> -
> -&dwc3_1_dart_0 {
> -	status = "okay";
> -};
> -
> -&dwc3_1_dart_1 {
> -	status = "okay";
> -};
> -
> -&dwc3_1 {
> +&i2c2 {
>  	status = "okay";
>  };
> diff --git a/arch/arm/dts/t8103-j293.dts b/arch/arm/dts/t8103-j293.dts
> index 4a22596cf4..cf92ee53e0 100644
> --- a/arch/arm/dts/t8103-j293.dts
> +++ b/arch/arm/dts/t8103-j293.dts
> @@ -1,6 +1,6 @@
>  // SPDX-License-Identifier: GPL-2.0+ OR MIT
>  /*
> - * Apple Macbook Pro (M1, 2020)
> + * Apple MacBook Pro (13-inch, M1, 2020)
>   *
>   * target-type: J293
>   *
> @@ -10,88 +10,56 @@
>  /dts-v1/;
>  
>  #include "t8103.dtsi"
> +#include "t8103-jxxx.dtsi"
>  
>  / {
>  	compatible = "apple,j293", "apple,t8103", "apple,arm-platform";
> -	model = "Apple Macbook Pro (M1, 2020)";
> -
> -	aliases {
> -		serial0 = &serial0;
> -		wifi0 = &wifi0;
> -	};
> -
> -	chosen {
> -		#address-cells = <2>;
> -		#size-cells = <2>;
> -		ranges;
> -
> -		stdout-path = "serial0";
> -
> -		framebuffer0: framebuffer at 0 {
> -			compatible = "apple,simple-framebuffer", "simple-framebuffer";
> -			reg = <0 0 0 0>; /* To be filled by loader */
> -			/* Format properties will be added by loader */
> -			status = "disabled";
> -		};
> -	};
> -
> -	memory at 800000000 {
> -		device_type = "memory";
> -		reg = <0x8 0 0x2 0>; /* To be filled by loader */
> -	};
> +	model = "Apple MacBook Pro (13-inch, M1, 2020)";
>  };
>  
> -&serial0 {
> -	status = "okay";
> -};
> +/*
> + * Provide labels for the USB type C ports.
> + */
>  
> -&pcie0_dart_0 {
> -	status = "okay";
> +&typec0 {
> +	label = "USB-C Left-back";
>  };
>  
> -&pcie0 {
> -	status = "okay";
> -
> -	pci0: pci at 0,0 {
> -		device_type = "pci";
> -		reg = <0x0 0x0 0x0 0x0 0x0>;
> -		pwren-gpios = <&smc 13 0>;
> -		reset-gpios = <&pinctrl_ap 152 0>;
> -		max-link-speed = <2>;
> -
> -		#address-cells = <3>;
> -		#size-cells = <2>;
> -		ranges;
> -	};
> +&typec1 {
> +	label = "USB-C Left-front";
>  };
>  
> -&pci0 {
> -	wifi0: network at 0,0 {
> -		reg = <0x10000 0x0 0x0 0x0 0x0>;
> -		local-mac-address = [00 00 00 00 00 00];
> -	};
> -};
> +/*
> + * Remove unused PCIe ports and disable the associated DARTs.
> + */
>  
> -&dwc3_0_dart_0 {
> -	status = "okay";
> +&pcie0_dart_1 {
> +	status = "disabled";
>  };
>  
> -&dwc3_0_dart_1 {
> -	status = "okay";
> +&pcie0_dart_2 {
> +	status = "disabled";
>  };
>  
> -&dwc3_0 {
> -	status = "okay";
> -};
> +/delete-node/ &port01;
> +/delete-node/ &port02;
>  
> -&dwc3_1_dart_0 {
> +&i2c2 {
>  	status = "okay";
>  };
>  
> -&dwc3_1_dart_1 {
> +&i2c4 {
>  	status = "okay";
>  };
>  
> -&dwc3_1 {
> +&spi3 {
>  	status = "okay";
> +
> +	keyboard at 0 {
> +		   compatible = "apple,keyboard";
> +		   spi-max-frequency = <2000000>;
> +		   reg = <0>;
> +		   interrupts-extended = <&pinctrl_nub 13 IRQ_TYPE_LEVEL_LOW>;
> +		   spien-gpios = <&pinctrl_ap 195 GPIO_ACTIVE_HIGH>;
> +	};
>  };
> diff --git a/arch/arm/dts/t8103-j313.dts b/arch/arm/dts/t8103-j313.dts
> new file mode 100644
> index 0000000000..c8574d81c8
> --- /dev/null
> +++ b/arch/arm/dts/t8103-j313.dts
> @@ -0,0 +1,57 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR MIT
> +/*
> + * Apple MacBook Air (M1, 2020)
> + *
> + * target-type: J313
> + *
> + * Copyright The Asahi Linux Contributors
> + */
> +
> +/dts-v1/;
> +
> +#include "t8103.dtsi"
> +#include "t8103-jxxx.dtsi"
> +
> +/ {
> +	compatible = "apple,j313", "apple,t8103", "apple,arm-platform";
> +	model = "Apple MacBook Air (M1, 2020)";
> +};
> +
> +/*
> + * Provide labels for the USB type C ports.
> + */
> +
> +&typec0 {
> +	label = "USB-C Left-back";
> +};
> +
> +&typec1 {
> +	label = "USB-C Left-front";
> +};
> +
> +/*
> + * Remove unused PCIe ports and disable the associated DARTs.
> + */
> +
> +&pcie0_dart_1 {
> +	status = "disabled";
> +};
> +
> +&pcie0_dart_2 {
> +	status = "disabled";
> +};
> +
> +/delete-node/ &port01;
> +/delete-node/ &port02;
> +
> +&spi3 {
> +	status = "okay";
> +
> +	keyboard at 0 {
> +		   compatible = "apple,keyboard";
> +		   spi-max-frequency = <2000000>;
> +		   reg = <0>;
> +		   interrupts-extended = <&pinctrl_nub 13 IRQ_TYPE_LEVEL_LOW>;
> +		   spien-gpios = <&pinctrl_ap 195 GPIO_ACTIVE_HIGH>;
> +	};
> +};
> diff --git a/arch/arm/dts/t8103-j456.dts b/arch/arm/dts/t8103-j456.dts
> new file mode 100644
> index 0000000000..9814c97cd9
> --- /dev/null
> +++ b/arch/arm/dts/t8103-j456.dts
> @@ -0,0 +1,71 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR MIT
> +/*
> + * Apple iMac (24-inch, 4x USB-C, M1, 2020)
> + *
> + * target-type: J456
> + *
> + * Copyright The Asahi Linux Contributors
> + */
> +
> +/dts-v1/;
> +
> +#include "t8103.dtsi"
> +#include "t8103-jxxx.dtsi"
> +
> +/ {
> +	compatible = "apple,j456", "apple,t8103", "apple,arm-platform";
> +	model = "Apple iMac (24-inch, 4x USB-C, M1, 2020)";
> +
> +	aliases {
> +		ethernet0 = &ethernet0;
> +	};
> +};
> +
> +&i2c0 {
> +	hpm2: usb-pd at 3b {
> +		compatible = "apple,cd321x";
> +		reg = <0x3b>;
> +		interrupt-parent = <&pinctrl_ap>;
> +		interrupts = <106 IRQ_TYPE_LEVEL_LOW>;
> +		interrupt-names = "irq";
> +	};
> +
> +	hpm3: usb-pd at 3c {
> +		compatible = "apple,cd321x";
> +		reg = <0x3c>;
> +		interrupt-parent = <&pinctrl_ap>;
> +		interrupts = <106 IRQ_TYPE_LEVEL_LOW>;
> +		interrupt-names = "irq";
> +	};
> +};
> +
> +/*
> + * Provide labels for the USB type C ports.
> + */
> +
> +&typec0 {
> +	label = "USB-C Back-right";
> +};
> +
> +&typec1 {
> +	label = "USB-C Back-right-middle";
> +};
> +
> +/*
> + * Force the bus number assignments so that we can declare some of the
> + * on-board devices and properties that are populated by the bootloader
> + * (such as MAC addresses).
> + */
> +
> +&port01 {
> +	bus-range = <2 2>;
> +};
> +
> +&port02 {
> +	bus-range = <3 3>;
> +	ethernet0: ethernet at 0,0 {
> +		reg = <0x30000 0x0 0x0 0x0 0x0>;
> +		/* To be filled by the loader */
> +		local-mac-address = [00 10 18 00 00 00];
> +	};
> +};
> diff --git a/arch/arm/dts/t8103-j457.dts b/arch/arm/dts/t8103-j457.dts
> new file mode 100644
> index 0000000000..0f4cc64374
> --- /dev/null
> +++ b/arch/arm/dts/t8103-j457.dts
> @@ -0,0 +1,59 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR MIT
> +/*
> + * Apple iMac (24-inch, 2x USB-C, M1, 2020)
> + *
> + * target-type: J457
> + *
> + * Copyright The Asahi Linux Contributors
> + */
> +
> +/dts-v1/;
> +
> +#include "t8103.dtsi"
> +#include "t8103-jxxx.dtsi"
> +
> +/ {
> +	compatible = "apple,j457", "apple,t8103", "apple,arm-platform";
> +	model = "Apple iMac (24-inch, 2x USB-C, M1, 2020)";
> +
> +	aliases {
> +		ethernet0 = &ethernet0;
> +	};
> +};
> +
> +/*
> + * Provide labels for the USB type C ports.
> + */
> +
> +&typec0 {
> +	label = "USB-C Back-right";
> +};
> +
> +&typec1 {
> +	label = "USB-C Back-left";
> +};
> +
> +/*
> + * Force the bus number assignments so that we can declare some of the
> + * on-board devices and properties that are populated by the bootloader
> + * (such as MAC addresses).
> + */
> +
> +&port02 {
> +	bus-range = <3 3>;
> +	ethernet0: ethernet at 0,0 {
> +		reg = <0x30000 0x0 0x0 0x0 0x0>;
> +		/* To be filled by the loader */
> +		local-mac-address = [00 10 18 00 00 00];
> +	};
> +};
> +
> +/*
> + * Remove unused PCIe port and disable the associated DART.
> + */
> +
> +&pcie0_dart_1 {
> +	status = "disabled";
> +};
> +
> +/delete-node/ &port01;
> diff --git a/arch/arm/dts/t8103-jxxx.dtsi b/arch/arm/dts/t8103-jxxx.dtsi
> new file mode 100644
> index 0000000000..8478090b34
> --- /dev/null
> +++ b/arch/arm/dts/t8103-jxxx.dtsi
> @@ -0,0 +1,140 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR MIT
> +/*
> + * Apple M1 Mac mini, MacBook Air/Pro, iMac 24" (M1, 2020/2021)
> + *
> + * This file contains parts common to all Apple M1 devices using the t8103.
> + *
> + * target-type: J274, J293, J313, J456, J457
> + *
> + * Copyright The Asahi Linux Contributors
> + */
> +
> +#include <dt-bindings/spmi/spmi.h>
> +
> +/ {
> +	aliases {
> +		serial0 = &serial0;
> +		serial2 = &serial2;
> +		wifi0 = &wifi0;
> +	};
> +
> +	chosen {
> +		#address-cells = <2>;
> +		#size-cells = <2>;
> +		ranges;
> +
> +		stdout-path = "serial0";
> +
> +		framebuffer0: framebuffer at 0 {
> +			compatible = "apple,simple-framebuffer", "simple-framebuffer";
> +			reg = <0 0 0 0>; /* To be filled by loader */
> +			/* Format properties will be added by loader */
> +			status = "disabled";
> +		};
> +	};
> +
> +	memory at 800000000 {
> +		device_type = "memory";
> +		reg = <0x8 0 0x2 0>; /* To be filled by loader */
> +	};
> +};
> +
> +&serial0 {
> +	status = "okay";
> +};
> +
> +&serial2 {
> +	status = "okay";
> +};
> +
> +&i2c0 {
> +	hpm0: usb-pd at 38 {
> +		compatible = "apple,cd321x";
> +		reg = <0x38>;
> +		interrupt-parent = <&pinctrl_ap>;
> +		interrupts = <106 IRQ_TYPE_LEVEL_LOW>;
> +		interrupt-names = "irq";
> +
> +		typec0: connector {
> +			compatible = "usb-c-connector";
> +			power-role = "dual";
> +			data-role = "dual";
> +
> +			ports {
> +				#address-cells = <1>;
> +				#size-cells = <0>;
> +				port at 0 {
> +					reg = <0>;
> +					typec0_con_hs: endpoint {
> +						remote-endpoint = <&typec0_usb_hs>;
> +					};
> +				};
> +			};
> +		};
> +	};
> +
> +	hpm1: usb-pd at 3f {
> +		compatible = "apple,cd321x";
> +		reg = <0x3f>;
> +		interrupt-parent = <&pinctrl_ap>;
> +		interrupts = <106 IRQ_TYPE_LEVEL_LOW>;
> +		interrupt-names = "irq";
> +
> +		typec1: connector {
> +			compatible = "usb-c-connector";
> +			power-role = "dual";
> +			data-role = "dual";
> +
> +			ports {
> +				#address-cells = <1>;
> +				#size-cells = <0>;
> +				port at 0 {
> +					reg = <0>;
> +					typec1_con_hs: endpoint {
> +						remote-endpoint = <&typec1_usb_hs>;
> +					};
> +				};
> +			};
> +		};
> +	};
> +};
> +
> +/* USB controllers */
> +&dwc3_0 {
> +	port {
> +		typec0_usb_hs: endpoint {
> +			remote-endpoint = <&typec0_con_hs>;
> +		};
> +	};
> +};
> +
> +&dwc3_1 {
> +	port {
> +		typec1_usb_hs: endpoint {
> +			remote-endpoint = <&typec1_con_hs>;
> +		};
> +	};
> +};
> +
> +/*
> + * Force the bus number assignments so that we can declare some of the
> + * on-board devices and properties that are populated by the bootloader
> + * (such as MAC addresses).
> + */
> +&port00 {
> +	bus-range = <1 1>;
> +	pwren-gpios = <&smc 13 0>;
> +	wifi0: network at 0,0 {
> +		reg = <0x10000 0x0 0x0 0x0 0x0>;
> +		local-mac-address = [00 00 00 00 00 00];
> +	};
> +};
> +
> +&spmi {
> +	status = "okay";
> +
> +	pmu at f {
> +		compatible = "apple,sera-pmu";
> +		reg = <0xf SPMI_USID>;
> +	};
> +};
> diff --git a/arch/arm/dts/t8103-pmgr.dtsi b/arch/arm/dts/t8103-pmgr.dtsi
> new file mode 100644
> index 0000000000..1310be74df
> --- /dev/null
> +++ b/arch/arm/dts/t8103-pmgr.dtsi
> @@ -0,0 +1,1136 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR MIT
> +/*
> + * PMGR Power domains for the Apple T8103 "M1" SoC
> + *
> + * Copyright The Asahi Linux Contributors
> + */
> +
> +
> +&pmgr {
> +	ps_sbr: power-controller at 100 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x100 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "sbr";
> +		apple,always-on; /* Core device */
> +	};
> +
> +	ps_aic: power-controller at 108 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x108 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "aic";
> +		apple,always-on; /* Core device */
> +	};
> +
> +	ps_dwi: power-controller at 110 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x110 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "dwi";
> +		apple,always-on; /* Core device */
> +	};
> +
> +	ps_soc_spmi0: power-controller at 118 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x118 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "soc_spmi0";
> +	};
> +
> +	ps_soc_spmi1: power-controller at 120 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x120 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "soc_spmi1";
> +	};
> +
> +	ps_soc_spmi2: power-controller at 128 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x128 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "soc_spmi2";
> +	};
> +
> +	ps_gpio: power-controller at 130 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x130 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "gpio";
> +	};
> +
> +	ps_pms_busif: power-controller at 138 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x138 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "pms_busif";
> +		apple,always-on; /* Core device */
> +	};
> +
> +	ps_pms: power-controller at 140 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x140 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "pms";
> +		apple,always-on; /* Core device */
> +	};
> +
> +	ps_pms_fpwm0: power-controller at 148 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x148 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "pms_fpwm0";
> +		power-domains = <&ps_pms>;
> +	};
> +
> +	ps_pms_fpwm1: power-controller at 150 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x150 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "pms_fpwm1";
> +		power-domains = <&ps_pms>;
> +	};
> +
> +	ps_pms_fpwm2: power-controller at 158 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x158 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "pms_fpwm2";
> +		power-domains = <&ps_pms>;
> +	};
> +
> +	ps_pms_fpwm3: power-controller at 160 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x160 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "pms_fpwm3";
> +		power-domains = <&ps_pms>;
> +	};
> +
> +	ps_pms_fpwm4: power-controller at 168 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x168 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "pms_fpwm4";
> +		power-domains = <&ps_pms>;
> +	};
> +
> +	ps_soc_dpe: power-controller at 170 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x170 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "soc_dpe";
> +		apple,always-on; /* Core device */
> +	};
> +
> +	ps_pmgr_soc_ocla: power-controller at 178 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x178 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "pmgr_soc_ocla";
> +	};
> +
> +	ps_ispsens0: power-controller at 180 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x180 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "ispsens0";
> +	};
> +
> +	ps_ispsens1: power-controller at 188 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x188 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "ispsens1";
> +	};
> +
> +	ps_ispsens2: power-controller at 190 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x190 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "ispsens2";
> +	};
> +
> +	ps_ispsens3: power-controller at 198 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x198 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "ispsens3";
> +	};
> +
> +	ps_pcie_ref: power-controller at 1a0 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x1a0 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "pcie_ref";
> +	};
> +
> +	ps_aft0: power-controller at 1a8 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x1a8 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "aft0";
> +	};
> +
> +	ps_devc0_ivdmc: power-controller at 1b0 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x1b0 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "devc0_ivdmc";
> +	};
> +
> +	ps_imx: power-controller at 1b8 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x1b8 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "imx";
> +		apple,always-on; /* Apple fabric, critical block */
> +	};
> +
> +	ps_sio_busif: power-controller at 1c0 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x1c0 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "sio_busif";
> +	};
> +
> +	ps_sio: power-controller at 1c8 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x1c8 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "sio";
> +		power-domains = <&ps_sio_busif>;
> +	};
> +
> +	ps_sio_cpu: power-controller at 1d0 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x1d0 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "sio_cpu";
> +		power-domains = <&ps_sio>;
> +	};
> +
> +	ps_fpwm0: power-controller at 1d8 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x1d8 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "fpwm0";
> +	};
> +
> +	ps_fpwm1: power-controller at 1e0 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x1e0 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "fpwm1";
> +	};
> +
> +	ps_fpwm2: power-controller at 1e8 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x1e8 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "fpwm2";
> +	};
> +
> +	ps_i2c0: power-controller at 1f0 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x1f0 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "i2c0";
> +		power-domains = <&ps_sio>;
> +	};
> +
> +	ps_i2c1: power-controller at 1f8 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x1f8 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "i2c1";
> +		power-domains = <&ps_sio>;
> +	};
> +
> +	ps_i2c2: power-controller at 200 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x200 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "i2c2";
> +		power-domains = <&ps_sio>;
> +	};
> +
> +	ps_i2c3: power-controller at 208 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x208 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "i2c3";
> +		power-domains = <&ps_sio>;
> +	};
> +
> +	ps_i2c4: power-controller at 210 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x210 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "i2c4";
> +		power-domains = <&ps_sio>;
> +	};
> +
> +	ps_spi_p: power-controller at 218 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x218 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "spi_p";
> +		power-domains = <&ps_sio>;
> +	};
> +
> +	ps_uart_p: power-controller at 220 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x220 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "uart_p";
> +		power-domains = <&ps_sio>;
> +	};
> +
> +	ps_audio_p: power-controller at 228 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x228 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "audio_p";
> +		power-domains = <&ps_sio>;
> +	};
> +
> +	ps_sio_adma: power-controller at 230 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x230 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "sio_adma";
> +		power-domains = <&ps_sio>, <&ps_pms>;
> +	};
> +
> +	ps_aes: power-controller at 238 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x238 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "aes";
> +		power-domains = <&ps_sio>;
> +	};
> +
> +	ps_spi0: power-controller at 240 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x240 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "spi0";
> +		power-domains = <&ps_sio>, <&ps_spi_p>;
> +	};
> +
> +	ps_spi1: power-controller at 248 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x248 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "spi1";
> +		power-domains = <&ps_sio>, <&ps_spi_p>;
> +	};
> +
> +	ps_spi2: power-controller at 250 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x250 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "spi2";
> +		power-domains = <&ps_sio>, <&ps_spi_p>;
> +	};
> +
> +	ps_spi3: power-controller at 258 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x258 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "spi3";
> +		power-domains = <&ps_sio>, <&ps_spi_p>;
> +	};
> +
> +	ps_uart_n: power-controller at 268 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x268 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "uart_n";
> +		power-domains = <&ps_uart_p>;
> +	};
> +
> +	ps_uart0: power-controller at 270 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x270 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "uart0";
> +		power-domains = <&ps_uart_p>;
> +	};
> +
> +	ps_uart1: power-controller at 278 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x278 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "uart1";
> +		power-domains = <&ps_uart_p>;
> +	};
> +
> +	ps_uart2: power-controller at 280 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x280 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "uart2";
> +		power-domains = <&ps_uart_p>;
> +	};
> +
> +	ps_uart3: power-controller at 288 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x288 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "uart3";
> +		power-domains = <&ps_uart_p>;
> +	};
> +
> +	ps_uart4: power-controller at 290 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x290 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "uart4";
> +		power-domains = <&ps_uart_p>;
> +	};
> +
> +	ps_uart5: power-controller at 298 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x298 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "uart5";
> +		power-domains = <&ps_uart_p>;
> +	};
> +
> +	ps_uart6: power-controller at 2a0 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x2a0 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "uart6";
> +		power-domains = <&ps_uart_p>;
> +	};
> +
> +	ps_uart7: power-controller at 2a8 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x2a8 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "uart7";
> +		power-domains = <&ps_uart_p>;
> +	};
> +
> +	ps_uart8: power-controller at 2b0 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x2b0 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "uart8";
> +		power-domains = <&ps_uart_p>;
> +	};
> +
> +	ps_mca0: power-controller at 2b8 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x2b8 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "mca0";
> +		power-domains = <&ps_audio_p>, <&ps_sio_adma>;
> +	};
> +
> +	ps_mca1: power-controller at 2c0 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x2c0 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "mca1";
> +		power-domains = <&ps_audio_p>, <&ps_sio_adma>;
> +	};
> +
> +	ps_mca2: power-controller at 2c8 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x2c8 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "mca2";
> +		power-domains = <&ps_audio_p>, <&ps_sio_adma>;
> +	};
> +
> +	ps_mca3: power-controller at 2d0 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x2d0 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "mca3";
> +		power-domains = <&ps_audio_p>, <&ps_sio_adma>;
> +	};
> +
> +	ps_mca4: power-controller at 2d8 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x2d8 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "mca4";
> +		power-domains = <&ps_audio_p>, <&ps_sio_adma>;
> +	};
> +
> +	ps_mca5: power-controller at 2e0 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x2e0 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "mca5";
> +		power-domains = <&ps_audio_p>, <&ps_sio_adma>;
> +	};
> +
> +	ps_dpa0: power-controller at 2e8 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x2e8 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "dpa0";
> +		power-domains = <&ps_audio_p>;
> +	};
> +
> +	ps_dpa1: power-controller at 2f0 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x2f0 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "dpa1";
> +		power-domains = <&ps_audio_p>;
> +	};
> +
> +	ps_mcc: power-controller at 2f8 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x2f8 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "mcc";
> +		apple,always-on; /* Memory controller */
> +	};
> +
> +	ps_spi4: power-controller at 260 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x260 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "spi4";
> +		power-domains = <&ps_sio>, <&ps_spi_p>;
> +	};
> +
> +	ps_dcs0: power-controller at 300 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x300 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "dcs0";
> +		apple,always-on; /* LPDDR4 interface */
> +	};
> +
> +	ps_dcs1: power-controller at 310 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x310 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "dcs1";
> +		apple,always-on; /* LPDDR4 interface */
> +	};
> +
> +	ps_dcs2: power-controller at 308 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x308 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "dcs2";
> +		apple,always-on; /* LPDDR4 interface */
> +	};
> +
> +	ps_dcs3: power-controller at 318 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x318 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "dcs3";
> +		apple,always-on; /* LPDDR4 interface */
> +	};
> +
> +	ps_smx: power-controller at 340 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x340 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "smx";
> +		apple,always-on; /* Apple fabric, critical block */
> +	};
> +
> +	ps_apcie: power-controller at 348 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x348 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "apcie";
> +		power-domains = <&ps_imx>, <&ps_pcie_ref>;
> +	};
> +
> +	ps_rmx: power-controller at 350 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x350 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "rmx";
> +		/* Apple Fabric, display/image stuff: this can power down */
> +	};
> +
> +	ps_mmx: power-controller at 358 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x358 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "mmx";
> +		/* Apple Fabric, media stuff: this can power down */
> +	};
> +
> +	ps_disp0_fe: power-controller at 360 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x360 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "disp0_fe";
> +		power-domains = <&ps_rmx>;
> +		apple,always-on; /* TODO: figure out if we can enable PM here */
> +	};
> +
> +	ps_dispext_fe: power-controller at 368 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x368 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "dispext_fe";
> +		power-domains = <&ps_rmx>;
> +	};
> +
> +	ps_dispext_cpu0: power-controller at 378 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x378 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "dispext_cpu0";
> +		power-domains = <&ps_dispext_fe>;
> +	};
> +
> +	ps_jpg: power-controller at 3c0 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x3c0 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "jpg";
> +		power-domains = <&ps_mmx>;
> +	};
> +
> +	ps_msr: power-controller at 3c8 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x3c8 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "msr";
> +		power-domains = <&ps_mmx>;
> +	};
> +
> +	ps_msr_ase_core: power-controller at 3d0 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x3d0 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "msr_ase_core";
> +	};
> +
> +	ps_pmp: power-controller at 3d8 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x3d8 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "pmp";
> +	};
> +
> +	ps_pms_sram: power-controller at 3e0 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x3e0 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "pms_sram";
> +	};
> +
> +	ps_apcie_gp: power-controller at 3e8 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x3e8 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "apcie_gp";
> +		power-domains = <&ps_apcie>;
> +	};
> +
> +	ps_ans2: power-controller at 3f0 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x3f0 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "ans2";
> +		/*
> +		 * The ADT makes ps_apcie_st depend on ps_ans2 instead, but this
> +		 * doesn't make much sense since ANS2 uses APCIE_ST.
> +		 */
> +		power-domains = <&ps_apcie_st>;
> +	};
> +
> +	ps_gfx: power-controller at 3f8 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x3f8 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "gfx";
> +	};
> +
> +	ps_dcs4: power-controller at 320 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x320 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "dcs4";
> +		apple,always-on; /* LPDDR4 interface */
> +	};
> +
> +	ps_dcs5: power-controller at 330 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x330 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "dcs5";
> +		apple,always-on; /* LPDDR4 interface */
> +	};
> +
> +	ps_dcs6: power-controller at 328 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x328 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "dcs6";
> +		apple,always-on; /* LPDDR4 interface */
> +	};
> +
> +	ps_dcs7: power-controller at 338 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x338 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "dcs7";
> +		apple,always-on; /* LPDDR4 interface */
> +	};
> +
> +	ps_dispdfr_fe: power-controller at 3a8 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x3a8 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "dispdfr_fe";
> +		power-domains = <&ps_rmx>;
> +	};
> +
> +	ps_dispdfr_be: power-controller at 3b0 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x3b0 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "dispdfr_be";
> +		power-domains = <&ps_dispdfr_fe>;
> +	};
> +
> +	ps_mipi_dsi: power-controller at 3b8 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x3b8 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "mipi_dsi";
> +		power-domains = <&ps_dispdfr_be>;
> +	};
> +
> +	ps_isp_sys: power-controller at 400 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x400 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "isp_sys";
> +		power-domains = <&ps_rmx>;
> +	};
> +
> +	ps_venc_sys: power-controller at 408 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x408 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "venc_sys";
> +		power-domains = <&ps_mmx>;
> +	};
> +
> +	ps_avd_sys: power-controller at 410 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x410 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "avd_sys";
> +		power-domains = <&ps_mmx>;
> +	};
> +
> +	ps_apcie_st: power-controller at 418 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x418 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "apcie_st";
> +		power-domains = <&ps_apcie>;
> +	};
> +
> +	ps_ane_sys: power-controller at 470 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x470 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "ane_sys";
> +	};
> +
> +	ps_atc0_common: power-controller at 420 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x420 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "atc0_common";
> +	};
> +
> +	ps_atc0_pcie: power-controller at 428 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x428 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "atc0_pcie";
> +		power-domains = <&ps_atc0_common>;
> +	};
> +
> +	ps_atc0_cio: power-controller at 430 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x430 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "atc0_cio";
> +		power-domains = <&ps_atc0_common>;
> +	};
> +
> +	ps_atc0_cio_pcie: power-controller at 438 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x438 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "atc0_cio_pcie";
> +		power-domains = <&ps_atc0_cio>;
> +	};
> +
> +	ps_atc0_cio_usb: power-controller at 440 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x440 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "atc0_cio_usb";
> +		power-domains = <&ps_atc0_cio>;
> +	};
> +
> +	ps_atc1_common: power-controller at 448 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x448 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "atc1_common";
> +	};
> +
> +	ps_atc1_pcie: power-controller at 450 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x450 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "atc1_pcie";
> +		power-domains = <&ps_atc1_common>;
> +	};
> +
> +	ps_atc1_cio: power-controller at 458 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x458 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "atc1_cio";
> +		power-domains = <&ps_atc1_common>;
> +	};
> +
> +	ps_atc1_cio_pcie: power-controller at 460 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x460 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "atc1_cio_pcie";
> +		power-domains = <&ps_atc1_cio>;
> +	};
> +
> +	ps_atc1_cio_usb: power-controller at 468 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x468 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "atc1_cio_usb";
> +		power-domains = <&ps_atc1_cio>;
> +	};
> +
> +	ps_sep: power-controller at c00 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0xc00 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "sep";
> +		apple,always-on; /* Locked on */
> +	};
> +
> +	ps_venc_dma: power-controller at 8000 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x8000 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "venc_dma";
> +		power-domains = <&ps_venc_sys>;
> +	};
> +
> +	ps_venc_pipe4: power-controller at 8008 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x8008 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "venc_pipe4";
> +		power-domains = <&ps_venc_dma>;
> +	};
> +
> +	ps_venc_pipe5: power-controller at 8010 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x8010 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "venc_pipe5";
> +		power-domains = <&ps_venc_dma>;
> +	};
> +
> +	ps_venc_me0: power-controller at 8018 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x8018 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "venc_me0";
> +		power-domains = <&ps_venc_pipe4>, <&ps_venc_pipe5>;
> +	};
> +
> +	ps_venc_me1: power-controller at 8020 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x8020 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "venc_me1";
> +		power-domains = <&ps_venc_pipe4>, <&ps_venc_pipe5>;
> +	};
> +
> +	ps_ane_sys_cpu: power-controller at c000 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0xc000 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "ane_sys_cpu";
> +		power-domains = <&ps_ane_sys>;
> +	};
> +
> +	ps_disp0_cpu0: power-controller at 10018 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x10018 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "disp0_cpu0";
> +		power-domains = <&ps_disp0_fe>;
> +		apple,always-on; /* TODO: figure out if we can enable PM here */
> +	};
> +};
> +
> +&pmgr_mini {
> +	ps_debug: power-controller at 58 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x58 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "debug";
> +		apple,always-on; /* Core AON device */
> +	};
> +
> +	ps_nub_spmi0: power-controller at 60 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x60 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "nub_spmi0";
> +		apple,always-on; /* Core AON device */
> +	};
> +
> +	ps_nub_aon: power-controller at 70 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x70 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "nub_aon";
> +		apple,always-on; /* Core AON device */
> +	};
> +
> +	ps_nub_gpio: power-controller at 80 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x80 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "nub_gpio";
> +		apple,always-on; /* Core AON device */
> +	};
> +
> +	ps_nub_fabric: power-controller at a8 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0xa8 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "nub_fabric";
> +		apple,always-on; /* Core AON device */
> +	};
> +
> +	ps_nub_sram: power-controller at b0 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0xb0 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "nub_sram";
> +		apple,always-on; /* Core AON device */
> +	};
> +
> +	ps_debug_usb: power-controller at b8 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0xb8 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "debug_usb";
> +		apple,always-on; /* Core AON device */
> +		power-domains = <&ps_debug>;
> +	};
> +
> +	ps_debug_auth: power-controller at c0 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0xc0 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "debug_auth";
> +		apple,always-on; /* Core AON device */
> +		power-domains = <&ps_debug>;
> +	};
> +
> +	ps_nub_spmi1: power-controller at 68 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x68 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "nub_spmi1";
> +		apple,always-on; /* Core AON device */
> +	};
> +
> +	ps_msg: power-controller at 78 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x78 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "msg";
> +	};
> +
> +	ps_atc0_usb_aon: power-controller at 88 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x88 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "atc0_usb_aon";
> +	};
> +
> +	ps_atc1_usb_aon: power-controller at 90 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x90 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "atc1_usb_aon";
> +	};
> +
> +	ps_atc0_usb: power-controller at 98 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0x98 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "atc0_usb";
> +		power-domains = <&ps_atc0_usb_aon>, <&ps_atc0_common>;
> +	};
> +
> +	ps_atc1_usb: power-controller at a0 {
> +		compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
> +		reg = <0xa0 4>;
> +		#power-domain-cells = <0>;
> +		#reset-cells = <0>;
> +		label = "atc1_usb";
> +		power-domains = <&ps_atc1_usb_aon>, <&ps_atc1_common>;
> +	};
> +};
> diff --git a/arch/arm/dts/t8103.dtsi b/arch/arm/dts/t8103.dtsi
> index 03d8436fec..1f029cb8fd 100644
> --- a/arch/arm/dts/t8103.dtsi
> +++ b/arch/arm/dts/t8103.dtsi
> @@ -11,7 +11,6 @@
>  #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";
> @@ -91,11 +90,11 @@
>  	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>;
> +		interrupt-names = "phys", "virt", "hyp-phys", "hyp-virt";
> +		interrupts = <AIC_FIQ AIC_TMR_GUEST_PHYS IRQ_TYPE_LEVEL_HIGH>,
> +			     <AIC_FIQ AIC_TMR_GUEST_VIRT IRQ_TYPE_LEVEL_HIGH>,
> +			     <AIC_FIQ AIC_TMR_HV_PHYS IRQ_TYPE_LEVEL_HIGH>,
> +			     <AIC_FIQ AIC_TMR_HV_VIRT IRQ_TYPE_LEVEL_HIGH>;
>  	};
>  
>  	clkref: clock-ref {
> @@ -111,18 +110,100 @@
>  		#size-cells = <2>;
>  
>  		ranges;
> -		dma-ranges;
> -		dma-coherent;
>  		nonposted-mmio;
>  
> +		i2c0: i2c at 235010000 {
> +			compatible = "apple,t8103-i2c", "apple,i2c";
> +			reg = <0x2 0x35010000 0x0 0x4000>;
> +			clocks = <&clkref>;
> +			interrupt-parent = <&aic>;
> +			interrupts = <AIC_IRQ 627 IRQ_TYPE_LEVEL_HIGH>;
> +			pinctrl-0 = <&i2c0_pins>;
> +			pinctrl-names = "default";
> +			#address-cells = <0x1>;
> +			#size-cells = <0x0>;
> +			power-domains = <&ps_i2c0>;
> +		};
> +
> +		i2c1: i2c at 235014000 {
> +			compatible = "apple,t8103-i2c", "apple,i2c";
> +			reg = <0x2 0x35014000 0x0 0x4000>;
> +			clocks = <&clkref>;
> +			interrupt-parent = <&aic>;
> +			interrupts = <AIC_IRQ 628 IRQ_TYPE_LEVEL_HIGH>;
> +			pinctrl-0 = <&i2c1_pins>;
> +			pinctrl-names = "default";
> +			#address-cells = <0x1>;
> +			#size-cells = <0x0>;
> +			power-domains = <&ps_i2c1>;
> +		};
> +
> +		i2c2: i2c at 235018000 {
> +			compatible = "apple,t8103-i2c", "apple,i2c";
> +			reg = <0x2 0x35018000 0x0 0x4000>;
> +			clocks = <&clkref>;
> +			interrupt-parent = <&aic>;
> +			interrupts = <AIC_IRQ 629 IRQ_TYPE_LEVEL_HIGH>;
> +			pinctrl-0 = <&i2c2_pins>;
> +			pinctrl-names = "default";
> +			#address-cells = <0x1>;
> +			#size-cells = <0x0>;
> +			power-domains = <&ps_i2c2>;
> +			status = "disabled"; /* not used in all devices */
> +		};
> +
> +		i2c3: i2c at 23501c000 {
> +			compatible = "apple,t8103-i2c", "apple,i2c";
> +			reg = <0x2 0x3501c000 0x0 0x4000>;
> +			clocks = <&clkref>;
> +			interrupt-parent = <&aic>;
> +			interrupts = <AIC_IRQ 630 IRQ_TYPE_LEVEL_HIGH>;
> +			pinctrl-0 = <&i2c3_pins>;
> +			pinctrl-names = "default";
> +			#address-cells = <0x1>;
> +			#size-cells = <0x0>;
> +			power-domains = <&ps_i2c3>;
> +		};
> +
> +		i2c4: i2c at 235020000 {
> +			compatible = "apple,t8103-i2c", "apple,i2c";
> +			reg = <0x2 0x35020000 0x0 0x4000>;
> +			clocks = <&clkref>;
> +			interrupt-parent = <&aic>;
> +			interrupts = <AIC_IRQ 631 IRQ_TYPE_LEVEL_HIGH>;
> +			pinctrl-0 = <&i2c4_pins>;
> +			pinctrl-names = "default";
> +			#address-cells = <0x1>;
> +			#size-cells = <0x0>;
> +			power-domains = <&ps_i2c4>;
> +			status = "disabled"; /* only used in J293 */
> +		};
> +
> +		spi3: spi at 23510c000 {
> +			compatible = "apple,t8103-spi", "apple,spi";
> +			reg = <0x2 0x3510c000 0x0 0x4000>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			clocks = <&clkref>;
> +			interrupt-parent = <&aic>;
> +			interrupts = <AIC_IRQ 617 IRQ_TYPE_LEVEL_HIGH>;
> +			power-domains = <&ps_spi3>;
> +			cs-gpios = <&pinctrl_ap 49 GPIO_ACTIVE_LOW>;
> +			status = "disabled";
> +		};
> +
>  		serial0: serial at 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";
> +			/*
> +			 * TODO: figure out the clocking properly, there may
> +			 * be a third selectable clock.
> +			 */
> +			clocks = <&clkref>, <&clkref>;
> +			clock-names = "uart", "clk_uart_baud0";
>  			power-domains = <&ps_uart0>;
>  			status = "disabled";
>  		};
> @@ -133,8 +214,8 @@
>  			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";
> +			clocks = <&clkref>, <&clkref>;
> +			clock-names = "uart", "clk_uart_baud0";
>  			power-domains = <&ps_uart2>;
>  			status = "disabled";
>  		};
> @@ -144,131 +225,28 @@
>  			#interrupt-cells = <3>;
>  			interrupt-controller;
>  			reg = <0x2 0x3b100000 0x0 0x8000>;
> +			power-domains = <&ps_aic>;
>  		};
>  
> -		pmgr: power-controller at 23b700000 {
> +		pmgr: power-management at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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>;
> -			};
> +			#size-cells = <1>;
> +			reg = <0x2 0x3b700000 0 0x14000>;
>  		};
>  
>  		pinctrl_ap: pinctrl at 23c100000 {
>  			compatible = "apple,t8103-pinctrl", "apple,pinctrl";
>  			reg = <0x2 0x3c100000 0x0 0x100000>;
> +			power-domains = <&ps_gpio>;
>  
>  			gpio-controller;
>  			#gpio-cells = <2>;
>  			gpio-ranges = <&pinctrl_ap 0 0 212>;
> +			apple,npins = <212>;
>  
>  			interrupt-controller;
> +			#interrupt-cells = <2>;
>  			interrupt-parent = <&aic>;
>  			interrupts = <AIC_IRQ 190 IRQ_TYPE_LEVEL_HIGH>,
>  				     <AIC_IRQ 191 IRQ_TYPE_LEVEL_HIGH>,
> @@ -278,18 +256,55 @@
>  				     <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)>;
> +			i2c0_pins: i2c0-pins {
> +				pinmux = <APPLE_PINMUX(192, 1)>,
> +					 <APPLE_PINMUX(188, 1)>;
> +			};
> +
> +			i2c1_pins: i2c1-pins {
> +				pinmux = <APPLE_PINMUX(201, 1)>,
> +					 <APPLE_PINMUX(199, 1)>;
> +			};
> +
> +			i2c2_pins: i2c2-pins {
> +				pinmux = <APPLE_PINMUX(163, 1)>,
> +					 <APPLE_PINMUX(162, 1)>;
> +			};
> +
> +			i2c3_pins: i2c3-pins {
> +				pinmux = <APPLE_PINMUX(73, 1)>,
> +					 <APPLE_PINMUX(72, 1)>;
> +			};
> +
> +			i2c4_pins: i2c4-pins {
> +				pinmux = <APPLE_PINMUX(135, 1)>,
> +					 <APPLE_PINMUX(134, 1)>;
>  			};
>  
>  			pcie_pins: pcie-pins {
>  				pinmux = <APPLE_PINMUX(150, 1)>,
> -				         <APPLE_PINMUX(151, 1)>,
> +					 <APPLE_PINMUX(151, 1)>,
>  					 <APPLE_PINMUX(32, 1)>;
>  			};
>  		};
>  
> +		spmi: spmi at 23d0d9300 {
> +			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>;
> +			status = "disabled";
> +		};
> +
> +		pmgr_mini: power-management at 23d280000 {
> +			compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd";
> +			#address-cells = <1>;
> +			#size-cells = <1>;
> +			reg = <0x2 0x3d280000 0 0x4000>;
> +		};
> +
>  		pinctrl_aop: pinctrl at 24a820000 {
>  			compatible = "apple,t8103-pinctrl", "apple,pinctrl";
>  			reg = <0x2 0x4a820000 0x0 0x4000>;
> @@ -297,8 +312,10 @@
>  			gpio-controller;
>  			#gpio-cells = <2>;
>  			gpio-ranges = <&pinctrl_aop 0 0 42>;
> +			apple,npins = <42>;
>  
>  			interrupt-controller;
> +			#interrupt-cells = <2>;
>  			interrupt-parent = <&aic>;
>  			interrupts = <AIC_IRQ 268 IRQ_TYPE_LEVEL_HIGH>,
>  				     <AIC_IRQ 269 IRQ_TYPE_LEVEL_HIGH>,
> @@ -312,12 +329,15 @@
>  		pinctrl_nub: pinctrl at 23d1f0000 {
>  			compatible = "apple,t8103-pinctrl", "apple,pinctrl";
>  			reg = <0x2 0x3d1f0000 0x0 0x4000>;
> +			power-domains = <&ps_nub_gpio>;
>  
>  			gpio-controller;
>  			#gpio-cells = <2>;
>  			gpio-ranges = <&pinctrl_nub 0 0 23>;
> +			apple,npins = <23>;
>  
>  			interrupt-controller;
> +			#interrupt-cells = <2>;
>  			interrupt-parent = <&aic>;
>  			interrupts = <AIC_IRQ 330 IRQ_TYPE_LEVEL_HIGH>,
>  				     <AIC_IRQ 331 IRQ_TYPE_LEVEL_HIGH>,
> @@ -343,8 +363,10 @@
>  			gpio-controller;
>  			#gpio-cells = <2>;
>  			gpio-ranges = <&pinctrl_smc 0 0 16>;
> +			apple,npins = <16>;
>  
>  			interrupt-controller;
> +			#interrupt-cells = <2>;
>  			interrupt-parent = <&aic>;
>  			interrupts = <AIC_IRQ 391 IRQ_TYPE_LEVEL_HIGH>,
>  				     <AIC_IRQ 392 IRQ_TYPE_LEVEL_HIGH>,
> @@ -355,100 +377,124 @@
>  				     <AIC_IRQ 397 IRQ_TYPE_LEVEL_HIGH>;
>  		};
>  
> -		i2c0: i2c at 20a110000 {
> -			compatible = "apple,i2c-v0";
> -			reg = <0x2 0x35010000 0x0 0x4000>;
> +		smc_mbox: mbox at 23e408000 {
> +			compatible = "apple,t8103-asc-mailbox";
> +			reg = <0x2 0x3e408000 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>;
> +			interrupts = <AIC_IRQ 400 IRQ_TYPE_LEVEL_HIGH>,
> +				     <AIC_IRQ 401 IRQ_TYPE_LEVEL_HIGH>,
> +				     <AIC_IRQ 402 IRQ_TYPE_LEVEL_HIGH>,
> +				     <AIC_IRQ 403 IRQ_TYPE_LEVEL_HIGH>;
> +			interrupt-names = "send-empty", "send-not-empty",
> +					  "recv-empty", "recv-not-empty";
> +			#mbox-cells = <0>;
> +		};
>  
> -			hpm0: hpm at 38 {
> -				compatible = "ti,tps6598x";
> -				reg = <0x38>;
> -			};
> +		smc: smc at 23e050000 {
> +			compatible = "apple,smc-m1";
> +			reg = <0x2 0x3e050000 0x0 0x4000>,
> +			      <0x2 0x3e400000 0x0 0x4000>;
> +			reg-names = "smc", "coproc";
> +			mboxes = <&smc_mbox>;
> +			gpio-controller;
> +			#gpio-cells = <2>;
> +			gpio-13 = <0x00800000>;
> +		};
>  
> -			hpm1: hpm at 3f {
> -				compatible = "ti,tps6598x";
> -				reg = <0x3f>;
> -			};
> -                };
> +		dwc3_0_dart_0: iommu at 382f00000 {
> +			compatible = "apple,t8103-dart";
> +			reg = <0x3 0x82f00000 0x0 0x4000>;
> +			interrupt-parent = <&aic>;
> +			interrupts = <AIC_IRQ 781 IRQ_TYPE_LEVEL_HIGH>;
> +			#iommu-cells = <1>;
> +			power-domains = <&ps_atc0_usb>;
> +		};
>  
> -		ans_mbox: mbox at 277400000 {
> -			compatible = "apple,iop-mailbox-m1";
> -			reg = <0x2 0x77400000 0x0 0x20000>;
> +		dwc3_0_dart_1: iommu at 382f80000 {
> +			compatible = "apple,t8103-dart";
> +			reg = <0x3 0x82f80000 0x0 0x4000>;
>  			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>;
> +			interrupts = <AIC_IRQ 781 IRQ_TYPE_LEVEL_HIGH>;
> +			#iommu-cells = <1>;
> +			power-domains = <&ps_atc0_usb>;
>  		};
>  
> -		ans at 27bcc0000 {
> -			compatible = "apple,nvme-m1";
> -			reg = <0x2 0x7bcc0000 0x0 0x40000>,
> -			      <0x2 0x7bc50000 0x0 0x4000>;
> +		dwc3_0: usb at 382280000 {
> +			compatible = "apple,t8103-dwc3", "apple,dwc3", "snps,dwc3";
> +			reg = <0x3 0x82280000 0x0 0x100000>;
>  			interrupt-parent = <&aic>;
> -			interrupts = <AIC_IRQ 590 IRQ_TYPE_LEVEL_HIGH>;
> -			power-domains = <&ps_apcie_st>;
> -			mboxes = <&ans_mbox 32>;
> +			interrupts = <AIC_IRQ 777 IRQ_TYPE_LEVEL_HIGH>;
> +			usb-role-switch;
> +			role-switch-default-mode = "host";
> +			iommus = <&dwc3_0_dart_0 0>, <&dwc3_0_dart_1 1>;
> +			power-domains = <&ps_atc0_usb>;
>  		};
>  
> -		pcie0_dart_0: iommu at 681008000 {
> -			compatible = "apple,t8103-dart", "apple,dart-m1";
> -			reg = <0x6 0x81008000 0x0 0x4000>;
> +		dwc3_1_dart_0: iommu at 502f00000 {
> +			compatible = "apple,t8103-dart";
> +			reg = <0x5 0x02f00000 0x0 0x4000>;
>  			interrupt-parent = <&aic>;
> -			interrupts = <AIC_IRQ 696 IRQ_TYPE_LEVEL_HIGH>;
> +			interrupts = <AIC_IRQ 861 IRQ_TYPE_LEVEL_HIGH>;
>  			#iommu-cells = <1>;
> -			status = "disabled";
> +			power-domains = <&ps_atc1_usb>;
>  		};
>  
> -		pcie0_dart_1: iommu at 682008000 {
> -			compatible = "apple,t8103-dart", "apple,dart-m1";
> -			reg = <0x6 0x82008000 0x0 0x4000>;
> +		dwc3_1_dart_1: iommu at 502f80000 {
> +			compatible = "apple,t8103-dart";
> +			reg = <0x5 0x02f80000 0x0 0x4000>;
>  			interrupt-parent = <&aic>;
> -			interrupts = <AIC_IRQ 699 IRQ_TYPE_LEVEL_HIGH>;
> +			interrupts = <AIC_IRQ 861 IRQ_TYPE_LEVEL_HIGH>;
>  			#iommu-cells = <1>;
> -			status = "disabled";
> +			power-domains = <&ps_atc1_usb>;
>  		};
>  
> -		pcie0_dart_2: iommu at 683008000 {
> -			compatible = "apple,t8103-dart", "apple,dart-m1";
> -			reg = <0x6 0x83008000 0x0 0x4000>;
> +		dwc3_1: usb at b02280000 {
> +			compatible = "apple,t8103-dwc3", "apple,dwc3", "snps,dwc3";
> +			reg = <0x5 0x02280000 0x0 0x100000>;
>  			interrupt-parent = <&aic>;
> -			interrupts = <AIC_IRQ 702 IRQ_TYPE_LEVEL_HIGH>;
> +			interrupts = <AIC_IRQ 857 IRQ_TYPE_LEVEL_HIGH>;
> +			usb-role-switch;
> +			role-switch-default-mode = "host";
> +			iommus = <&dwc3_1_dart_0 0>, <&dwc3_1_dart_1 1>;
> +			power-domains = <&ps_atc1_usb>;
> +		};
> +
> +		pcie0_dart_0: dart at 681008000 {
> +			compatible = "apple,t8103-dart";
> +			reg = <0x6 0x81008000 0x0 0x4000>;
>  			#iommu-cells = <1>;
> -			status = "disabled";
> +			interrupt-parent = <&aic>;
> +			interrupts = <AIC_IRQ 696 IRQ_TYPE_LEVEL_HIGH>;
> +			power-domains = <&ps_apcie_gp>;
>  		};
>  
> -		smc_mbox: mbox at 23e400000 {
> -			compatible = "apple,iop-mailbox-m1";
> -			reg = <0x2 0x3e400000 0x0 0x20000>;
> -			#mbox-cells = <1>;
> -			endpoints = <32>;
> +		pcie0_dart_1: dart at 682008000 {
> +			compatible = "apple,t8103-dart";
> +			reg = <0x6 0x82008000 0x0 0x4000>;
> +			#iommu-cells = <1>;
> +			interrupt-parent = <&aic>;
> +			interrupts = <AIC_IRQ 699 IRQ_TYPE_LEVEL_HIGH>;
> +			power-domains = <&ps_apcie_gp>;
>  		};
>  
> -		smc: smc at 23e050000 {
> -			compatible = "apple,smc-m1";
> -			reg = <0x2 0x3e050000 0x0 0x4000>;
> -			mboxes = <&smc_mbox 32>;
> -			gpio-controller;
> -			#gpio-cells = <2>;
> -			gpio-13 = <0x00800000>;
> +		pcie0_dart_2: dart at 683008000 {
> +			compatible = "apple,t8103-dart";
> +			reg = <0x6 0x83008000 0x0 0x4000>;
> +			#iommu-cells = <1>;
> +			interrupt-parent = <&aic>;
> +			interrupts = <AIC_IRQ 702 IRQ_TYPE_LEVEL_HIGH>;
> +			power-domains = <&ps_apcie_gp>;
>  		};
>  
>  		pcie0: pcie at 690000000 {
>  			compatible = "apple,t8103-pcie", "apple,pcie";
> +			device_type = "pci";
>  
>  			reg = <0x6 0x90000000 0x0 0x1000000>,
> -			      <0x6 0x80000000 0x0 0x4000>,
> -			      <0x6 0x81000000 0x0 0x8000>,
> -			      <0x6 0x82000000 0x0 0x8000>,
> -			      <0x6 0x83000000 0x0 0x8000>;
> +			      <0x6 0x80000000 0x0 0x100000>,
> +			      <0x6 0x81000000 0x0 0x4000>,
> +			      <0x6 0x82000000 0x0 0x4000>,
> +			      <0x6 0x83000000 0x0 0x4000>;
>  			reg-names = "config", "rc", "port0", "port1", "port2";
>  
>  			interrupt-parent = <&aic>;
> @@ -460,6 +506,7 @@
>  			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>;
> @@ -468,96 +515,104 @@
>  			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>;
> +			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>;
> +			power-domains = <&ps_apcie_gp>;
>  			pinctrl-0 = <&pcie_pins>;
>  			pinctrl-names = "default";
>  
> -			device_type = "pci";
> -			status = "disabled";
> -		};
> +			port00: pci at 0,0 {
> +				device_type = "pci";
> +				reg = <0x0 0x0 0x0 0x0 0x0>;
> +				reset-gpios = <&pinctrl_ap 152 GPIO_ACTIVE_LOW>;
> +				max-link-speed = <2>;
>  
> -		dwc3_0_dart_0: iommu at 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";
> -		};
> +				#address-cells = <3>;
> +				#size-cells = <2>;
> +				ranges;
>  
> -		dwc3_0_dart_1: iommu at 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";
> -		};
> +				interrupt-controller;
> +				#interrupt-cells = <1>;
>  
> -		dwc3_0: usb at 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";
> -		};
> +				interrupt-map-mask = <0 0 0 7>;
> +				interrupt-map = <0 0 0 1 &port00 0 0 0 0>,
> +						<0 0 0 2 &port00 0 0 0 1>,
> +						<0 0 0 3 &port00 0 0 0 2>,
> +						<0 0 0 4 &port00 0 0 0 3>;
> +			};
>  
> -		dwc3_1_dart_0: iommu at 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";
> -		};
> +			port01: pci at 1,0 {
> +				device_type = "pci";
> +				reg = <0x800 0x0 0x0 0x0 0x0>;
> +				reset-gpios = <&pinctrl_ap 153 GPIO_ACTIVE_LOW>;
> +				max-link-speed = <2>;
>  
> -		dwc3_1_dart_1: iommu at 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";
> -		};
> +				#address-cells = <3>;
> +				#size-cells = <2>;
> +				ranges;
>  
> -		dwc3_1: usb at 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";
> -		};
> +				interrupt-controller;
> +				#interrupt-cells = <1>;
>  
> -		spi at 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>;
> -		};
> +				interrupt-map-mask = <0 0 0 7>;
> +				interrupt-map = <0 0 0 1 &port01 0 0 0 0>,
> +						<0 0 0 2 &port01 0 0 0 1>,
> +						<0 0 0 3 &port01 0 0 0 2>,
> +						<0 0 0 4 &port01 0 0 0 3>;
> +			};
>  
> -		spmi at 23d0d8000 {
> -			compatible = "apple,t8103-spmi", "apple,spmi";
> -			reg = <0x2 0x3d0d9300 0x0 0x100>;
> -			interrupt-parent = <&aic>;
> -			interrupts = <AIC_IRQ 343 IRQ_TYPE_LEVEL_HIGH>;
> +			port02: pci at 2,0 {
> +				device_type = "pci";
> +				reg = <0x1000 0x0 0x0 0x0 0x0>;
> +				reset-gpios = <&pinctrl_ap 33 GPIO_ACTIVE_LOW>;
> +				max-link-speed = <1>;
>  
> -			#address-cells = <2>;
> -			#size-cells = <0>;
> +				#address-cells = <3>;
> +				#size-cells = <2>;
> +				ranges;
>  
> -			pmu at f {
> -				compatible = "apple,sera-pmu";
> -				reg = <0xf SPMI_USID>;
> +				interrupt-controller;
> +				#interrupt-cells = <1>;
> +
> +				interrupt-map-mask = <0 0 0 7>;
> +				interrupt-map = <0 0 0 1 &port02 0 0 0 0>,
> +						<0 0 0 2 &port02 0 0 0 1>,
> +						<0 0 0 3 &port02 0 0 0 2>,
> +						<0 0 0 4 &port02 0 0 0 3>;
>  			};
>  		};
> +		ans: mbox at 277408000 {
> +			compatible = "apple,t8103-asc-mailbox";
> +			reg = <0x2 0x77408000 0x0 0x4000>;
> +			interrupt-parent = <&aic>;
> +			interrupts = <AIC_IRQ 583 IRQ_TYPE_LEVEL_HIGH>,
> +				<AIC_IRQ 584 IRQ_TYPE_LEVEL_HIGH>,
> +				<AIC_IRQ 585 IRQ_TYPE_LEVEL_HIGH>,
> +				<AIC_IRQ 586 IRQ_TYPE_LEVEL_HIGH>;
> +			interrupt-names = "send-empty", "send-not-empty",
> +				"recv-empty", "recv-not-empty";
> +			#mbox-cells = <0>;
> +			power-domains = <&ps_ans2>;
> +		};
> +
> +		sart: sart at 27bc50000 {
> +			compatible = "apple,t8103-sart";
> +			reg = <0x2 0x7bc50000 0x0 0x10000>;
> +			power-domains = <&ps_ans2>;
> +		};
> +
> +		ans2: nvme at 27bcc0000 {
> +			compatible = "apple,t8103-ans-nvme", "apple,nvme-m1";
> +			reg = <0x2 0x7bcc0000 0x0 0x40000>, <0x2 0x77400000 0x0 0x4000>;
> +			reg-names = "nvme", "coproc";
> +			interrupt-parent = <&aic>;
> +			interrupts = <AIC_IRQ 590 IRQ_TYPE_LEVEL_HIGH>;
> +			mboxes = <&ans>;
> +			apple,sart = <&sart>;
> +			power-domains = <&ps_ans2>;
> +		 };
>  	};
>  };
> +
> +#include "t8103-pmgr.dtsi"



More information about the U-Boot mailing list