From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 11033C433EF for ; Mon, 27 Dec 2021 12:20:55 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 2541F8382D; Mon, 27 Dec 2021 13:20:53 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="D15xx7Zd"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 13CEE8382F; Mon, 27 Dec 2021 13:20:51 +0100 (CET) Received: from mail-pj1-x1036.google.com (mail-pj1-x1036.google.com [IPv6:2607:f8b0:4864:20::1036]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 68B1683825 for ; Mon, 27 Dec 2021 13:20:41 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jh80.chung@gmail.com Received: by mail-pj1-x1036.google.com with SMTP id y16-20020a17090a6c9000b001b13ffaa625so18341892pjj.2 for ; Mon, 27 Dec 2021 04:20:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=FBReT93jl8NU5UgB/M9n5XOrE7lnaY6ZRN0B0nkxiqQ=; b=D15xx7Zdc/Nh9hdZbH/mtWXQst8KbpWHxC/WulFv9VvAkI+BXp3Z5sTAu2JmblpEq7 +dnBDXAFavA79hTFvoFWXAMszyMjvtj1cV10oFgA1HGGgFntdo3mBfNd2saDChb05b1R ZenYXIuRakM100ifdPoOjDgTNG8dV3TRa4dseiYQ2Ex5RDAJdzRBpHl9suzZOXyyDZpg 6G1eS1O6b/S+yneK0vs7XjwbSBsbZsR9GICvmMHoQAbf5lVsMrT7j6D7KcxWVrwXworJ NnNJxckQWK6xKeRCAsKTmaV0WKfVplhVHLkTpuZI9V32btm3cUnkkXo6KiiLLiaWJKDl vo2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=FBReT93jl8NU5UgB/M9n5XOrE7lnaY6ZRN0B0nkxiqQ=; b=MV5zJKTLI92AmLZOOcMmEWNDUxQBvPUFi8j9S7rCOVuk4xewc2uc9F7chNy/2w3Sii vNK1bH8ICbvKyNkLglv1e/8oGMtnJFgsY3ZkxlFIam+6LjkYyTLgMzZ3j+JICg806W/6 LfIO1plhCPkKJ1TMyTfSAAu8NvXogrwT8YOMgD83dGDSAFriITPGBIWm4qZ7SUfSMH2e hV2ouCIPlCUtNTshoI6ogHB95CJE7BeEANsZQIvNKcruE9Qf5ZbyQcMVoxB0y/YAZCwf 05JSf0KrefbMZQcPumDFb3ulSWRSkocaakr7h+sfOq+J/l0Yg3VmsMGMGvS6ByzbWNn5 xfBA== X-Gm-Message-State: AOAM531sAo8+EX/l2MYeVZ5+SuYwRt5MVU84I2K3GWkBoRCxreF7of2A MvHg7CtBPGwtZjwmP0LINAk= X-Google-Smtp-Source: ABdhPJzXUUu7r3uQAW+XAKXg5Mpuq4/eo52SmMsfKJHDW7e4bsucw6Flo377TFH97/DzFjy2nlv3gA== X-Received: by 2002:a17:90b:38c7:: with SMTP id nn7mr20463868pjb.135.1640607639305; Mon, 27 Dec 2021 04:20:39 -0800 (PST) Received: from [192.168.0.52] ([183.99.112.216]) by smtp.gmail.com with ESMTPSA id u10sm16502867pfm.58.2021.12.27.04.20.36 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 27 Dec 2021 04:20:37 -0800 (PST) Subject: Re: [PATCH v2 1/3] arm: dts: apple: Update Apple M1 device trees To: Mark Kettenis , u-boot@lists.denx.de Cc: sjg@chromium.org, jh80.chung@samsung.com References: <20211223213418.68994-1-kettenis@openbsd.org> <20211223213418.68994-2-kettenis@openbsd.org> From: Jaehoon Chung Message-ID: <63773fb2-f679-53d4-1298-46c5c0aee214@gmail.com> Date: Mon, 27 Dec 2021 21:20:34 +0900 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 MIME-Version: 1.0 In-Reply-To: <20211223213418.68994-2-kettenis@openbsd.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Language: en-US X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.38 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean 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 Reviewed-by: Jaehoon Chung 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 = ð0; > - wifi0 = &wifi0; > - }; > - > - chosen { > - #address-cells = <2>; > - #size-cells = <2>; > - ranges; > - > - stdout-path = "serial0"; > - > - framebuffer0: framebuffer@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@800000000 { > - device_type = "memory"; > - reg = <0x8 0 0x2 0>; /* To be filled by loader */ > + ethernet0 = ðernet0; > }; > }; > > -&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@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@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@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@0,0 { > - reg = <0x10000 0x0 0x0 0x0 0x0>; > - local-mac-address = [00 00 00 00 00 00]; > - }; > -}; > - > -&pci2 { > - eth0: ethernet@0,0 { > +&port02 { > + bus-range = <3 3>; > + ethernet0: ethernet@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@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@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@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@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@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@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 = ðernet0; > + }; > +}; > + > +&i2c0 { > + hpm2: usb-pd@3b { > + compatible = "apple,cd321x"; > + reg = <0x3b>; > + interrupt-parent = <&pinctrl_ap>; > + interrupts = <106 IRQ_TYPE_LEVEL_LOW>; > + interrupt-names = "irq"; > + }; > + > + hpm3: usb-pd@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@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 = ðernet0; > + }; > +}; > + > +/* > + * 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@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 > + > +/ { > + aliases { > + serial0 = &serial0; > + serial2 = &serial2; > + wifi0 = &wifi0; > + }; > + > + chosen { > + #address-cells = <2>; > + #size-cells = <2>; > + ranges; > + > + stdout-path = "serial0"; > + > + framebuffer0: framebuffer@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@800000000 { > + device_type = "memory"; > + reg = <0x8 0 0x2 0>; /* To be filled by loader */ > + }; > +}; > + > +&serial0 { > + status = "okay"; > +}; > + > +&serial2 { > + status = "okay"; > +}; > + > +&i2c0 { > + hpm0: usb-pd@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@0 { > + reg = <0>; > + typec0_con_hs: endpoint { > + remote-endpoint = <&typec0_usb_hs>; > + }; > + }; > + }; > + }; > + }; > + > + hpm1: usb-pd@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@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@0,0 { > + reg = <0x10000 0x0 0x0 0x0 0x0>; > + local-mac-address = [00 00 00 00 00 00]; > + }; > +}; > + > +&spmi { > + status = "okay"; > + > + pmu@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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 > #include > #include > -#include > > / { > 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 = , > - , > - , > - ; > + interrupt-names = "phys", "virt", "hyp-phys", "hyp-virt"; > + interrupts = , > + , > + , > + ; > }; > > clkref: clock-ref { > @@ -111,18 +110,100 @@ > #size-cells = <2>; > > ranges; > - dma-ranges; > - dma-coherent; > nonposted-mmio; > > + i2c0: i2c@235010000 { > + compatible = "apple,t8103-i2c", "apple,i2c"; > + reg = <0x2 0x35010000 0x0 0x4000>; > + clocks = <&clkref>; > + interrupt-parent = <&aic>; > + interrupts = ; > + pinctrl-0 = <&i2c0_pins>; > + pinctrl-names = "default"; > + #address-cells = <0x1>; > + #size-cells = <0x0>; > + power-domains = <&ps_i2c0>; > + }; > + > + i2c1: i2c@235014000 { > + compatible = "apple,t8103-i2c", "apple,i2c"; > + reg = <0x2 0x35014000 0x0 0x4000>; > + clocks = <&clkref>; > + interrupt-parent = <&aic>; > + interrupts = ; > + pinctrl-0 = <&i2c1_pins>; > + pinctrl-names = "default"; > + #address-cells = <0x1>; > + #size-cells = <0x0>; > + power-domains = <&ps_i2c1>; > + }; > + > + i2c2: i2c@235018000 { > + compatible = "apple,t8103-i2c", "apple,i2c"; > + reg = <0x2 0x35018000 0x0 0x4000>; > + clocks = <&clkref>; > + interrupt-parent = <&aic>; > + interrupts = ; > + 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@23501c000 { > + compatible = "apple,t8103-i2c", "apple,i2c"; > + reg = <0x2 0x3501c000 0x0 0x4000>; > + clocks = <&clkref>; > + interrupt-parent = <&aic>; > + interrupts = ; > + pinctrl-0 = <&i2c3_pins>; > + pinctrl-names = "default"; > + #address-cells = <0x1>; > + #size-cells = <0x0>; > + power-domains = <&ps_i2c3>; > + }; > + > + i2c4: i2c@235020000 { > + compatible = "apple,t8103-i2c", "apple,i2c"; > + reg = <0x2 0x35020000 0x0 0x4000>; > + clocks = <&clkref>; > + interrupt-parent = <&aic>; > + interrupts = ; > + 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@23510c000 { > + compatible = "apple,t8103-spi", "apple,spi"; > + reg = <0x2 0x3510c000 0x0 0x4000>; > + #address-cells = <1>; > + #size-cells = <0>; > + clocks = <&clkref>; > + interrupt-parent = <&aic>; > + interrupts = ; > + power-domains = <&ps_spi3>; > + cs-gpios = <&pinctrl_ap 49 GPIO_ACTIVE_LOW>; > + status = "disabled"; > + }; > + > serial0: serial@235200000 { > compatible = "apple,s5l-uart"; > reg = <0x2 0x35200000 0x0 0x1000>; > reg-io-width = <4>; > interrupt-parent = <&aic>; > interrupts = ; > - 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 = ; > - 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@23b700000 { > + pmgr: power-management@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>; > - }; > + #size-cells = <1>; > + reg = <0x2 0x3b700000 0 0x14000>; > }; > > pinctrl_ap: pinctrl@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 = , > , > @@ -278,18 +256,55 @@ > , > ; > > - i2c0_pins: i2c0_pins { > - pinmux = , > - ; > + i2c0_pins: i2c0-pins { > + pinmux = , > + ; > + }; > + > + i2c1_pins: i2c1-pins { > + pinmux = , > + ; > + }; > + > + i2c2_pins: i2c2-pins { > + pinmux = , > + ; > + }; > + > + i2c3_pins: i2c3-pins { > + pinmux = , > + ; > + }; > + > + i2c4_pins: i2c4-pins { > + pinmux = , > + ; > }; > > pcie_pins: pcie-pins { > pinmux = , > - , > + , > ; > }; > }; > > + spmi: spmi@23d0d9300 { > + compatible = "apple,t8103-spmi", "apple,spmi"; > + reg = <0x2 0x3d0d9300 0x0 0x100>; > + interrupt-parent = <&aic>; > + interrupts = ; > + #address-cells = <2>; > + #size-cells = <0>; > + status = "disabled"; > + }; > + > + pmgr_mini: power-management@23d280000 { > + compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd"; > + #address-cells = <1>; > + #size-cells = <1>; > + reg = <0x2 0x3d280000 0 0x4000>; > + }; > + > pinctrl_aop: pinctrl@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 = , > , > @@ -312,12 +329,15 @@ > pinctrl_nub: pinctrl@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 = , > , > @@ -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 = , > , > @@ -355,100 +377,124 @@ > ; > }; > > - i2c0: i2c@20a110000 { > - compatible = "apple,i2c-v0"; > - reg = <0x2 0x35010000 0x0 0x4000>; > + smc_mbox: mbox@23e408000 { > + compatible = "apple,t8103-asc-mailbox"; > + reg = <0x2 0x3e408000 0x0 0x4000>; > interrupt-parent = <&aic>; > - interrupts = ; > - clocks = <&clkref>; > - pinctrl-0 = <&i2c0_pins>; > - pinctrl-names = "default"; > - #address-cells = <0x1>; > - #size-cells = <0x0>; > + interrupts = , > + , > + , > + ; > + interrupt-names = "send-empty", "send-not-empty", > + "recv-empty", "recv-not-empty"; > + #mbox-cells = <0>; > + }; > > - hpm0: hpm@38 { > - compatible = "ti,tps6598x"; > - reg = <0x38>; > - }; > + smc: smc@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@3f { > - compatible = "ti,tps6598x"; > - reg = <0x3f>; > - }; > - }; > + dwc3_0_dart_0: iommu@382f00000 { > + compatible = "apple,t8103-dart"; > + reg = <0x3 0x82f00000 0x0 0x4000>; > + interrupt-parent = <&aic>; > + interrupts = ; > + #iommu-cells = <1>; > + power-domains = <&ps_atc0_usb>; > + }; > > - ans_mbox: mbox@277400000 { > - compatible = "apple,iop-mailbox-m1"; > - reg = <0x2 0x77400000 0x0 0x20000>; > + dwc3_0_dart_1: iommu@382f80000 { > + compatible = "apple,t8103-dart"; > + reg = <0x3 0x82f80000 0x0 0x4000>; > interrupt-parent = <&aic>; > - interrupts = , > - ; > - power-domains = <&ps_ans2>; > - #mbox-cells = <1>; > - endpoints = <32>; > + interrupts = ; > + #iommu-cells = <1>; > + power-domains = <&ps_atc0_usb>; > }; > > - ans@27bcc0000 { > - compatible = "apple,nvme-m1"; > - reg = <0x2 0x7bcc0000 0x0 0x40000>, > - <0x2 0x7bc50000 0x0 0x4000>; > + dwc3_0: usb@382280000 { > + compatible = "apple,t8103-dwc3", "apple,dwc3", "snps,dwc3"; > + reg = <0x3 0x82280000 0x0 0x100000>; > interrupt-parent = <&aic>; > - interrupts = ; > - power-domains = <&ps_apcie_st>; > - mboxes = <&ans_mbox 32>; > + interrupts = ; > + 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@681008000 { > - compatible = "apple,t8103-dart", "apple,dart-m1"; > - reg = <0x6 0x81008000 0x0 0x4000>; > + dwc3_1_dart_0: iommu@502f00000 { > + compatible = "apple,t8103-dart"; > + reg = <0x5 0x02f00000 0x0 0x4000>; > interrupt-parent = <&aic>; > - interrupts = ; > + interrupts = ; > #iommu-cells = <1>; > - status = "disabled"; > + power-domains = <&ps_atc1_usb>; > }; > > - pcie0_dart_1: iommu@682008000 { > - compatible = "apple,t8103-dart", "apple,dart-m1"; > - reg = <0x6 0x82008000 0x0 0x4000>; > + dwc3_1_dart_1: iommu@502f80000 { > + compatible = "apple,t8103-dart"; > + reg = <0x5 0x02f80000 0x0 0x4000>; > interrupt-parent = <&aic>; > - interrupts = ; > + interrupts = ; > #iommu-cells = <1>; > - status = "disabled"; > + power-domains = <&ps_atc1_usb>; > }; > > - pcie0_dart_2: iommu@683008000 { > - compatible = "apple,t8103-dart", "apple,dart-m1"; > - reg = <0x6 0x83008000 0x0 0x4000>; > + dwc3_1: usb@b02280000 { > + compatible = "apple,t8103-dwc3", "apple,dwc3", "snps,dwc3"; > + reg = <0x5 0x02280000 0x0 0x100000>; > interrupt-parent = <&aic>; > - interrupts = ; > + interrupts = ; > + 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@681008000 { > + compatible = "apple,t8103-dart"; > + reg = <0x6 0x81008000 0x0 0x4000>; > #iommu-cells = <1>; > - status = "disabled"; > + interrupt-parent = <&aic>; > + interrupts = ; > + power-domains = <&ps_apcie_gp>; > }; > > - smc_mbox: mbox@23e400000 { > - compatible = "apple,iop-mailbox-m1"; > - reg = <0x2 0x3e400000 0x0 0x20000>; > - #mbox-cells = <1>; > - endpoints = <32>; > + pcie0_dart_1: dart@682008000 { > + compatible = "apple,t8103-dart"; > + reg = <0x6 0x82008000 0x0 0x4000>; > + #iommu-cells = <1>; > + interrupt-parent = <&aic>; > + interrupts = ; > + power-domains = <&ps_apcie_gp>; > }; > > - 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_dart_2: dart@683008000 { > + compatible = "apple,t8103-dart"; > + reg = <0x6 0x83008000 0x0 0x4000>; > + #iommu-cells = <1>; > + interrupt-parent = <&aic>; > + interrupts = ; > + power-domains = <&ps_apcie_gp>; > }; > > pcie0: pcie@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@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@382f00000 { > - compatible = "apple,t8103-dart"; > - reg = <0x3 0x82f00000 0x0 0x4000>; > - interrupt-parent = <&aic>; > - interrupts = ; > - #iommu-cells = <1>; > - status = "disabled"; > - }; > + #address-cells = <3>; > + #size-cells = <2>; > + ranges; > > - dwc3_0_dart_1: iommu@382f80000 { > - compatible = "apple,t8103-dart"; > - reg = <0x3 0x82f80000 0x0 0x4000>; > - interrupt-parent = <&aic>; > - interrupts = ; > - #iommu-cells = <1>; > - status = "disabled"; > - }; > + interrupt-controller; > + #interrupt-cells = <1>; > > - dwc3_0: usb@382280000{ > - compatible = "snps,dwc3"; > - reg = <0x3 0x82280000 0x0 0x100000>; > - interrupt-parent = <&aic>; > - interrupts = ; > - 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@502f00000 { > - compatible = "apple,t8103-dart"; > - reg = <0x5 0x02f00000 0x0 0x4000>; > - interrupt-parent = <&aic>; > - interrupts = ; > - #iommu-cells = <1>; > - status = "disabled"; > - }; > + port01: pci@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@502f80000 { > - compatible = "apple,t8103-dart"; > - reg = <0x5 0x02f80000 0x0 0x4000>; > - interrupt-parent = <&aic>; > - interrupts = ; > - #iommu-cells = <1>; > - status = "disabled"; > - }; > + #address-cells = <3>; > + #size-cells = <2>; > + ranges; > > - dwc3_1: usb@502280000{ > - compatible = "snps,dwc3"; > - reg = <0x5 0x02280000 0x0 0x100000>; > - interrupt-parent = <&aic>; > - interrupts = ; > - dr_mode = "host"; > - iommus = <&dwc3_1_dart_0 0>, <&dwc3_1_dart_1 1>; > - status = "disabled"; > - }; > + interrupt-controller; > + #interrupt-cells = <1>; > > - spi@23510c000 { > - compatible = "apple,t8103-spi", "apple,spi"; > - reg = <0x2 0x3510c000 0x0 0x4000>; > - interrupt-parent = <&aic>; > - interrupts = ; > - 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@23d0d8000 { > - compatible = "apple,t8103-spmi", "apple,spmi"; > - reg = <0x2 0x3d0d9300 0x0 0x100>; > - interrupt-parent = <&aic>; > - interrupts = ; > + port02: pci@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@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@277408000 { > + compatible = "apple,t8103-asc-mailbox"; > + reg = <0x2 0x77408000 0x0 0x4000>; > + interrupt-parent = <&aic>; > + interrupts = , > + , > + , > + ; > + interrupt-names = "send-empty", "send-not-empty", > + "recv-empty", "recv-not-empty"; > + #mbox-cells = <0>; > + power-domains = <&ps_ans2>; > + }; > + > + sart: sart@27bc50000 { > + compatible = "apple,t8103-sart"; > + reg = <0x2 0x7bc50000 0x0 0x10000>; > + power-domains = <&ps_ans2>; > + }; > + > + ans2: nvme@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 = ; > + mboxes = <&ans>; > + apple,sart = <&sart>; > + power-domains = <&ps_ans2>; > + }; > }; > }; > + > +#include "t8103-pmgr.dtsi"