From patchwork Sun May 30 22:44:00 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Kettenis X-Patchwork-Id: 12288473 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-22.1 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 41358C47092 for ; Sun, 30 May 2021 22:46:19 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id EFF0061205 for ; Sun, 30 May 2021 22:46:18 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EFF0061205 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=xs4all.nl Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=4yd7xsSAZLsxYljTKA2HlyHJFY/H+qBedrvTqdpsQWk=; b=MGHo7OpUh/+FPE fmrGPlkhiqFAbLg169bkf7srX7zCCZi4GwVO4ST5vC0kHawGa/g3hwa+xBbu5bschj63KYMImoFFq cKBuPK294XXNz5C9UNIg8A6z3m3N6pcGjczxAJYhnYz8l3gDljdpBKAzeuMHIhXthm6IxhnH4Vm+8 EElVop3APnO7Ye1if1UELGWXzrrPDSL3NCWN8G1blbG0voQp52wV+sjkqA19jG3klFXs973HMcZkN leEfuj2u4/AeZfKSfpj0YBfNafxz76u2/eRXkeG8B4RSSafmJXUQV/eCwrBB95Lzjj7++fXAv6SKa b5vL5P+N7+grFzb84XFQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1lnUAn-00AFis-4k; Sun, 30 May 2021 22:44:45 +0000 Received: from lb2-smtp-cloud8.xs4all.net ([194.109.24.25]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1lnUAZ-00AFgl-Rr for linux-arm-kernel@lists.infradead.org; Sun, 30 May 2021 22:44:33 +0000 Received: from copland.sibelius.xs4all.nl ([83.163.83.176]) by smtp-cloud8.xs4all.net with ESMTP id nUANlDkLZIpGynUAYlJsI8; Mon, 31 May 2021 00:44:30 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xs4all.nl; s=s2; t=1622414670; bh=v9Q5Kl1IPoPR/CPYbDRNvSRH30D4ErtWXDUou+JHmZA=; h=From:To:Subject:Date:Message-Id:MIME-Version:From:Subject; b=iTlYLvWGzxsgENk59OlIlDeqov8NK7iJNzryvJo23laTHzemX82SBw2LVQHJSSPj6 +uX9W1A+2o4VNawg7yD8e0MJDtO9aT4fSZrGAmAXEkdCT7mtgE6rQkyvBewdiLsAFA jrKpJ4dLru1mr3lykz8rsOfyyBAp9cIdZawpV0mJzWYMmBglFdpiJJhckq4Zon21L2 ijS8TxwsRdlbKC61m0yfKSubDAOkN4OqPxh1m43OK9Zb7tRczIaC7TSmzeAOoF0mxw 4WidljcKdIP0IjpppA1oOPrvyNHj3prAD/jZ/K/uPTpRdcfHDesVUveUZmIIgljG7R Wk0/3PoOmQYtw== From: Mark Kettenis To: devicetree@vger.kernel.org Cc: maz@kernel.org, robin.murphy@arm.com, Mark Kettenis , Hector Martin , Bjorn Helgaas , Rob Herring , linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 1/2] dt-bindings: pci: Add DT bindings for apple,pcie Date: Mon, 31 May 2021 00:44:00 +0200 Message-Id: <20210530224404.95917-2-mark.kettenis@xs4all.nl> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210530224404.95917-1-mark.kettenis@xs4all.nl> References: <20210530224404.95917-1-mark.kettenis@xs4all.nl> MIME-Version: 1.0 X-CMAE-Envelope: MS4xfDlxk29GONAd/wEOZXSyfcsNUDOTD2ItYv+fnlBWfUwrOtd4qdGOpTM7dlDMflBg0S2276Ppb5TcCo/GdAFqipq6vWxG6qrWkkbjnk57XvXcCRFyufi4 0QOdjXUAyu/6LpEkAUvgoXeVHRHUwv1zGk9Y3vLKTvn6aaJYjI3IEHQWT4ub3k/NdS8jNDFj2ZzHgG8HPQv3jgS34o0CfMuGzZPrLBZKo4xP4CnyEVlNB49w oZkEsrfMgOjxhzLTjXCO/TiB2yEu01bo3sYv20zIp5CLiYRnG2+GniXJGC4nlBL0rbJ/vRAjrftrdtS2RF5DxFr+h6Kl2ETodJZGkVz74dJgfSmhBCmS1o4U Maaq4G96fZAHv8D3B53G0daIcmkeWwkHt72nZNT/+mJ0EjKOvjnIZDxakKp35wdbhXfNesyQVrYsZBTZi1TUnAC6U9l036fuXXFfNR6+Nfm7JVrQToufNfSw FuPXVOd/+JbvOcP7CYiXp4jtg3niRj9d/g9FeD9XuaE31W09LmO64K/WOTU= X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210530_154432_091819_58F1B4BA X-CRM114-Status: GOOD ( 16.06 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Mark Kettenis The Apple PCIe host controller is a PCIe host controller with multiple root ports present in Apple ARM SoC platforms, including various iPhone and iPad devices and the "Apple Silicon" Macs. Signed-off-by: Mark Kettenis --- .../devicetree/bindings/pci/apple,pcie.yaml | 167 ++++++++++++++++++ MAINTAINERS | 1 + 2 files changed, 168 insertions(+) create mode 100644 Documentation/devicetree/bindings/pci/apple,pcie.yaml diff --git a/Documentation/devicetree/bindings/pci/apple,pcie.yaml b/Documentation/devicetree/bindings/pci/apple,pcie.yaml new file mode 100644 index 000000000000..62ba3a735140 --- /dev/null +++ b/Documentation/devicetree/bindings/pci/apple,pcie.yaml @@ -0,0 +1,167 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/pci/apple,pcie.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Apple PCIe host controller + +maintainers: + - Mark Kettenis + +description: | + The Apple PCIe host controller is a PCIe host controller with + multiple root ports present in Apple ARM SoC platforms, including + various iPhone and iPad devices and the "Apple Silicon" Macs. + The controller incorporates Synopsys DesigWare PCIe logic to + implements its root ports. But the ATU found on most DesignWare + PCIe host bridges is absent. + All root ports share a single ECAM space, but separate GPIOs are + used to take the PCI devices on those ports out of reset. Therefore + the standard "reset-gpio" and "max-link-speed" properties appear on + the child nodes that represent the PCI bridges that correspond to + the individual root ports. + MSIs are handled by the PCIe controller and translated into regular + interrupts. A range of 32 MSIs is provided. These 32 MSIs can be + distributed over the root ports as the OS sees fit by programming + the PCIe controller's port registers. + +allOf: + - $ref: /schemas/pci/pci-bus.yaml# + +properties: + compatible: + items: + - const: apple,t8103-pcie + - const: apple,pcie + + reg: + minItems: 3 + maxItems: 5 + + reg-names: + minItems: 3 + maxItems: 5 + items: + - const: config + - const: rc + - const: port0 + - const: port1 + - const: port2 + + ranges: + minItems: 2 + maxItems: 2 + + interrupts: + description: + Interrupt specifiers, one for each root port. + minItems: 1 + maxItems: 3 + + msi-controller: true + msi-parent: true + + msi-ranges: + description: + A list of pairs , where "intid" is the first + interrupt number that can be used as an MSI, and "span" the size + of that range. + $ref: /schemas/types.yaml#/definitions/uint32-matrix + items: + minItems: 2 + maxItems: 2 + + iommu-map: true + iommu-map-mask: true + +required: + - compatible + - reg + - reg-names + - bus-range + - interrupts + - msi-controller + - msi-parent + - msi-ranges + +unevaluatedProperties: false + +examples: + - | + #include + #include + + soc { + #address-cells = <2>; + #size-cells = <2>; + + 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>; + reg-names = "config", "rc", "port0", "port1", "port2"; + + interrupt-parent = <&aic>; + interrupts = , + , + ; + + msi-controller; + msi-parent = <&pcie0>; + msi-ranges = <704 32>; + + iommu-map = <0x100 &dart0 1 1>, + <0x200 &dart1 1 1>, + <0x300 &dart2 1 1>; + iommu-map-mask = <0xff00>; + + bus-range = <0 3>; + #address-cells = <3>; + #size-cells = <2>; + ranges = <0x43000000 0x6 0xa0000000 0x6 0xa0000000 0x0 0x20000000>, + <0x02000000 0x0 0xc0000000 0x6 0xc0000000 0x0 0x40000000>; + + clocks = <&pcie_core_clk>, <&pcie_aux_clk>, <&pcie_ref_clk>; + pinctrl-0 = <&pcie_pins>; + pinctrl-names = "default"; + + pci@0,0 { + device_type = "pci"; + reg = <0x0 0x0 0x0 0x0 0x0>; + reset-gpios = <&pinctrl_ap 152 0>; + max-link-speed = <2>; + + #address-cells = <3>; + #size-cells = <2>; + ranges; + }; + + 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; + }; + + pci@2,0 { + device_type = "pci"; + reg = <0x1000 0x0 0x0 0x0 0x0>; + reset-gpios = <&pinctrl_ap 33 0>; + max-link-speed = <1>; + + #address-cells = <3>; + #size-cells = <2>; + ranges; + }; + }; + }; diff --git a/MAINTAINERS b/MAINTAINERS index 7327c9b778f1..789d79315485 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1654,6 +1654,7 @@ C: irc://chat.freenode.net/asahi-dev T: git https://github.com/AsahiLinux/linux.git F: Documentation/devicetree/bindings/arm/apple.yaml F: Documentation/devicetree/bindings/interrupt-controller/apple,aic.yaml +F: Documentation/devicetree/bindings/pci/apple,pcie.yaml F: Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml F: arch/arm64/boot/dts/apple/ F: drivers/irqchip/irq-apple-aic.c From patchwork Sun May 30 22:44:01 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Kettenis X-Patchwork-Id: 12288475 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.1 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 318C5C47093 for ; Sun, 30 May 2021 22:46:21 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id DCF1B6120D for ; Sun, 30 May 2021 22:46:20 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DCF1B6120D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=xs4all.nl Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=STC3ChrlR8NKiqy16HMkVUxYEkzhOjBQr/3zoFAb/F8=; b=NJzlJzH1O+/+d8 5q8kwtav2g1y2VH9Mq0rlHPLghOmXOg2RhbNiLzp1RzFzbaxCue3CZ3ibDc6XlgPn5ocxkTtCxZ3s ZoUgzWPAtXSwYMUNFBxhzYqRBzLTcjI4O6HEQ8bLnvhYZtEXQw0izNunBdJKjb4ZpeKw1loyeCc6I uqmwN2stnR6RhEsY89GQoI6RByjMVJYJY6jcuiIdvuPdcmOzy9gI6jhpN+jW8REtrYjhE91aNmbZp 4X+p74wCQS4ClWM6nQj1JMgxqnn57Vk5in2PHO2FuSpbxCgWSojP+vFZAk8V0XS+Yr6G27wjpg0ck c5yKGFc52Wh26UoE0wqA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1lnUAx-00AFjz-Oe; Sun, 30 May 2021 22:44:55 +0000 Received: from lb2-smtp-cloud8.xs4all.net ([194.109.24.25]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1lnUAe-00AFfk-KX for linux-arm-kernel@lists.infradead.org; Sun, 30 May 2021 22:44:38 +0000 Received: from copland.sibelius.xs4all.nl ([83.163.83.176]) by smtp-cloud8.xs4all.net with ESMTP id nUANlDkLZIpGynUAelJsIg; Mon, 31 May 2021 00:44:36 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xs4all.nl; s=s2; t=1622414676; bh=xS8tcoAoXQ7rfnmN3vR74RBJgyU9e6+aspNVHKO9ktk=; h=From:To:Subject:Date:Message-Id:MIME-Version:From:Subject; b=TkcQU1dgiVvL2un05BM81xNwIiivCiP49ex4xsuUJ5ydyerksfvuUKrqQ7iyrU/gY +8WPNjHukPKXHeArf2BMLE9VPt6lhfrsjmwjhLW8HLIZMHjcwiVL1FPBS/IGnh+1W5 Pg5BaTmQ3WKjplSinW0xd4Hd31mZKO/6w7JipzW/3P2tKJy44zxq7sJBkmAgu7QwWp +pIvqXBadTDmUSKGVooJ1+u9jJSLQDDABuHLc46V03uI4yRlk0z2GPDnXfE5OsHFMg xWCg1kDLfpVMl35TwrB0064zX3Jv7GK3PdnGiDAeEnMH6qzyNRD0z6QELy/GuYaCfl xT/kCI523gvgA== From: Mark Kettenis To: devicetree@vger.kernel.org Cc: maz@kernel.org, robin.murphy@arm.com, Mark Kettenis , Hector Martin , Bjorn Helgaas , Rob Herring , linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 2/2] arm64: apple: Add PCIe node Date: Mon, 31 May 2021 00:44:01 +0200 Message-Id: <20210530224404.95917-3-mark.kettenis@xs4all.nl> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210530224404.95917-1-mark.kettenis@xs4all.nl> References: <20210530224404.95917-1-mark.kettenis@xs4all.nl> MIME-Version: 1.0 X-CMAE-Envelope: MS4xfFmRtx2o8H/8LE3fQg/QQ+gZGAzebIaMe26DrRP04W43Y068UWcZ2PrSxggRBr+OEdBE1iV3d/UB4XZeG0jT+hsZGcDh29DMIWYL2dqYLkYDbJk3yxgV ouFFmRzUCJOtLCSPU6CTF91KLyrtJhPQhM1YDqspf5hHOOritGH6vZ0w0YQfQj06pveeKxYrvA/pGBvVJldazPMUOskmv56/O0o2cim/Bw48KgYKpX4hQVd/ YMoqvCnmesvA7epQoaxptg4i4sKalbH80jRWxaf6nxWkrtg4zCbM3SkCKQhTVs6chock156q5/HuzJ+7Ny1sHJpjI4o6LiQVimswAiN5PTgB1c0Pcw3bjhAS JYEgfmnkV4PIQDkAcCKIZ/LmLQnSabQA+CMc+ytquKue56WResWUUlzY758to6V9O3Kxm3hU+BtjTMJkQzkfEp+Ydd6Bm/oTgDadDngWcm8hqcpK4vNbXzrx TcjtDfz1bd17hBteeYLNWL7xUVQE+6dIJZvwhtKxkOZzNNZav03sVBCwmGo= X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210530_154436_847654_0FA535A3 X-CRM114-Status: UNSURE ( 9.77 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Mark Kettenis Add node corresponding to the apcie,t8103 node in the Apple device tree for the Mac mini (M1, 2020). Clock references and DART (IOMMU) references are left out at the moment and will be added once the appropriate bindings have been settled upon. Signed-off-by: Mark Kettenis --- arch/arm64/boot/dts/apple/t8103.dtsi | 63 ++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/arch/arm64/boot/dts/apple/t8103.dtsi b/arch/arm64/boot/dts/apple/t8103.dtsi index 503a76fc30e6..cd3ebb940e86 100644 --- a/arch/arm64/boot/dts/apple/t8103.dtsi +++ b/arch/arm64/boot/dts/apple/t8103.dtsi @@ -214,5 +214,68 @@ pinctrl_smc: pinctrl@23e820000 { , ; }; + + 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>; + reg-names = "config", "rc", "port0", "port1", "port2"; + + interrupt-parent = <&aic>; + interrupts = , + , + ; + + msi-controller; + msi-parent = <&pcie0>; + msi-ranges = <704 32>; + + 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>; + + pinctrl-0 = <&pcie_pins>; + pinctrl-names = "default"; + + pci@0,0 { + device_type = "pci"; + reg = <0x0 0x0 0x0 0x0 0x0>; + reset-gpios = <&pinctrl_ap 152 0>; + max-link-speed = <2>; + + #address-cells = <3>; + #size-cells = <2>; + ranges; + }; + + 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; + }; + + pci@2,0 { + device_type = "pci"; + reg = <0x1000 0x0 0x0 0x0 0x0>; + reset-gpios = <&pinctrl_ap 33 0>; + max-link-speed = <1>; + + #address-cells = <3>; + #size-cells = <2>; + ranges; + }; + }; }; };