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 X-Spam-Level: X-Spam-Status: No, score=-19.4 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham 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 83319C433B4 for ; Mon, 17 May 2021 14:19:30 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 0FF8B61959 for ; Mon, 17 May 2021 14:19:30 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0FF8B61959 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org 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=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Cc:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=ianwGKLBelalB5RbVntiW0AUc2W8sra9BEksz/h/jaY=; b=KWb2uO9aggkCvEs6TTlEtNtDX EaGfrieDPkg6KhNNCcsfM9eSGGX6DYAkMfsIwUxgWJykWL09Su87AFy6HEe4dy8diQNKmYwFmgSbD a2ZzDlohVVZCOneR7LyMCCIHSOx11f5PG0IsaHqDT+gpthetU/zK/kwq5psZ9jFB8VM8m6JlY9+H0 NusXPWaePeTQVGmH2l9gXro3XcxcOQlf80Q5DXO7iqpkEKf34X0tCJCrbcNAVQy6qdTcQuQfKLHB/ nbil8uO7zOecL1MBBstZNsywagySyb5SGxLlIsI3nhV4S6Wlptb9FWvhk18d3PwTjpITS2csvJn45 sGW6LXIdg==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lie3b-00FDQN-Fe; Mon, 17 May 2021 14:17:24 +0000 Received: from bombadil.infradead.org ([198.137.202.133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lie3R-00FDO1-B4 for linux-arm-kernel@desiato.infradead.org; Mon, 17 May 2021 14:17:11 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Type:Cc:To:Subject:Message-ID :Date:From:In-Reply-To:References:MIME-Version:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=EBUBGAOJwHz9+UV6gD0eNk/7LLBGzsX3MShS8uNrRsY=; b=nHcjDt4WzXY1mhDqNqQTDSK+VZ 4hIkSVYXTV19fMFkZkARD213/jCbmz5pAs4gXeTsw6KACl5135GNASF6XvlSX+UusvbhcSME9r1hT Abmn759DA3rh00JWDOYH0PUWu/esW+LzVU4Z2gBfngMKBLQIYnhURT79nxXQLgitzh06NlgEAk96Z 9Sm8RUUwUm3owH/Ib9dn/U4ucUTeFDb8gouvuEztS6tmAn7yeQwJR6P7Bc4QAFXXWjKKfvKj8U0Hr b1l7UPAcvMbEgDwaAGqVWHKc+++D9qqxyfknZMuDgao4MNY5HdHzrP6dG+XJRHfgciI8zo41M+SKH dsDDlRKQ==; Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lie3L-00DqVJ-Q2 for linux-arm-kernel@lists.infradead.org; Mon, 17 May 2021 14:17:08 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id DB6E261926 for ; Mon, 17 May 2021 14:17:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1621261022; bh=/Fke8gIzwbqA8x/UokWi0atigFQr973AI+PeWKSYjRU=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=BeaLSFHQfi15pHfrMGDLpuWdRqDvAR1c9giqM4dSlKUZ5OoC8IdiBZpm1aNOPi00K HJU8xzNw3IYmXG8IxXj54pY8Dk9y0lO8gHoLDggd6Rf1ArRIM8VH5SjCY7L2bhfP78 QZlB+XcSC4Kg1izBNIVFq53DOEb5Gl1nYQshz2dITi9Pcd0GWiwRWsok1/A+p/qx5d mPYOsDbn3DXvQE7WRcKGQS1yMQ0B37vFvSmleE91B5JhmRAvatZq9Y+zKcAdg2Vgjm /siFBYzWTbTjHIG8HiupLnzhMu0Ng7jQ+Pw5q6S9N88JrEkAoFtNoXlwxgFaj8N1D4 ZLOPAghxHrA7A== Received: by mail-ed1-f48.google.com with SMTP id n25so7111394edr.5 for ; Mon, 17 May 2021 07:17:02 -0700 (PDT) X-Gm-Message-State: AOAM532cOeSK9nHJuBs+xPtKauVVjkFSiT2auZ6Y+UNXnJE30m9ItX9G bZ/fpgxdqJ70nD4yS4cBjoEDW+YabtKsWKZZRQ== X-Google-Smtp-Source: ABdhPJxDHyxbIZt279+m6/FlAXXLWN1Rl7kcX6dLAQjtZ8ouXZ0JBZhiFEebN8nnhBCaqIyvmA4grUT0xvv4rmv4zHI= X-Received: by 2002:aa7:d893:: with SMTP id u19mr301411edq.258.1621261021464; Mon, 17 May 2021 07:17:01 -0700 (PDT) MIME-Version: 1.0 References: <20210516211851.74921-1-mark.kettenis@xs4all.nl> <20210516211851.74921-2-mark.kettenis@xs4all.nl> In-Reply-To: <20210516211851.74921-2-mark.kettenis@xs4all.nl> From: Rob Herring Date: Mon, 17 May 2021 09:16:49 -0500 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 1/2] dt-bindings: pci: Add DT bindings for apple,pcie To: Mark Kettenis Cc: devicetree@vger.kernel.org, Marc Zyngier , Arnd Bergmann , Mark Kettenis , Hector Martin , Bjorn Helgaas , linux-arm-kernel , PCI , "linux-kernel@vger.kernel.org" X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210517_071703_909988_94ABA51C X-CRM114-Status: GOOD ( 28.93 ) 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: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Sun, May 16, 2021 at 4:19 PM Mark Kettenis wrote: > > 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. All the cover letter will be lost in the git history. Please mention some details like this is a DWC controller here. I disagree that you can't use the DWC binding. You can use it and extend it with what's needed here. And that way, we could move from generic ECAM to an actual driver in the OS if needed (hopefully not). More below. > Signed-off-by: Mark Kettenis > --- > .../devicetree/bindings/pci/apple,pcie.yaml | 150 ++++++++++++++++++ > MAINTAINERS | 1 + > 2 files changed, 151 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..af3c9f64e380 > --- /dev/null > +++ b/Documentation/devicetree/bindings/pci/apple,pcie.yaml > @@ -0,0 +1,150 @@ > +# 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. > + > +allOf: > + - $ref: /schemas/pci/pci-bus.yaml# > + > +properties: > + compatible: > + items: > + - const: apple,t8103-pcie > + - const: apple,pcie > + > + reg: > + minItems: 4 > + maxItems: 6 6 or... > + reg-names: > + minItems: 4 > + maxItems: 7 7? > + items: > + - const: ecam 'config' The difference between ECAM or not in existing devices is really just the size. If you look at the addresses on other DWC bindings, the config region is just an iATU window within the host's PCI address range. > + - const: rc This would be 'dbi'? Also check if we need 'atu' (only if it's not at the default offset)? > + - const: phy Should there be a separate phy node? > + - const: port0 > + - const: port1 > + - const: port2 What's in these registers? > + > + ranges: > + minItems: 2 > + maxItems: 2 > + > + interrupts: > + minItems: 3 > + maxItems: 3 Need to define what each one is. > + > + 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. Hopefully, Marc Z will comment on the MSI bits. msi-map doesn't work here? If we need something else, then it should be added to pci-msi.txt. One problem with this is it assumes 'intid' is one cell. It's really 2 for the AIC if we ignore flags (which would be another assumption that we can ignore the last cell). Or maybe this belongs in the AIC binding? > + $ref: /schemas/types.yaml#/definitions/uint32-matrix > + items: > + minItems: 2 > + maxItems: 2 > + > +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 0x8c000000 0x0 0x4000>, > + <0x6 0x81000000 0x0 0x8000>, > + <0x6 0x82000000 0x0 0x8000>, > + <0x6 0x83000000 0x0 0x8000>; > + reg-names = "ecam", "rc", "phy", "port0", "port1", "port2"; > + > + interrupt-parent = <&aic>; > + interrupts = , > + , > + ; > + > + msi-controller; > + msi-parent = <&pcie0>; > + msi-ranges = <704 32>; > + > + iommu-map = <0x0 &dart0 0x8000 0x100>, > + <0x100 &dart0 0x100 0x100>, > + <0x200 &dart1 0x200 0x100>, > + <0x300 &dart2 0x300 0x100>; > + iommu-map-mask = <0xff00>; These need to be documented. You can assume they have a type already, so just 'true' or any constraints. > + > + bus-range = <0 7>; > + #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 > -- > 2.31.1 > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel