Received: by 2002:a05:7412:8d09:b0:fa:4c10:6cad with SMTP id bj9csp488116rdb; Tue, 16 Jan 2024 06:44:36 -0800 (PST) X-Google-Smtp-Source: AGHT+IFI4oXKiHSKPWCFMtFYaTvIZ4FlJN+DC6iSpmUtUILNeY5qYGjYu/7Ve6Ad/4yRcdRVm+SU X-Received: by 2002:a2e:8511:0:b0:2cd:3300:bdf1 with SMTP id j17-20020a2e8511000000b002cd3300bdf1mr3279214lji.87.1705416276415; Tue, 16 Jan 2024 06:44:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1705416276; cv=none; d=google.com; s=arc-20160816; b=qqBIbf63F2of/k00rFDiyTPeeeVBaZD2/jamki9wIoAI24+U5kTjRYaCsxFjrFjBbK 9nTgS4gQh7aOp+oIEs7LcaMz2dZgnrzMbxdeadPXzdY3aQplINrf/XiYjuuuNq05+yR8 2Q394Tie+qR5Ul3w+YfW1LgkGlvP6BdWWiFeXLtXn9wxhIBy+tQZkafvLvQWjx0amicJ py7ySa9IzyH5+Ic1st0lBi4sr1rwinhrzd9TFDJH3O65vWeg0Cc/sztGOIzwWDdGsLxD 4Vv5TPgDtblMix9gg1bfk53U0ReI1cfnHA+5f65oo8XT7bGnfRmg1ob9KdSitrZhlyFI V1iQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=in-reply-to:content-disposition:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:message-id:subject:cc :to:from:date:dkim-signature; bh=PDOJ6jVF0WUeru7/N8I3mblxhnDGkaGdfIpWbweV+4M=; fh=K3Rc3+v9HQXlO0gDmcETqS8dDgQAd1VXz0Z84/E67Vo=; b=LR3Ng5/QDjCBNiLfl4s+zzEifdwj0EcmIVG9Zx3QCri3ihyGMupMDxQW3GSkRkuhfF esa+Oyx+g9WzrHddaNYaBOj6aDCJGkIiCW0vNUe9ELJHcbUaPZQQMPcyXBY4T+oKodb8 lgr2E8iHpUZFJ/Ycst6yfrcJz36IFf/RDVZR35AL5KCnFzySg1oVNyrVcq4zA3bQBGgw KJwzZ3cPP7bN0+5kBlln2mJfvXjA4NNsEizLxCZKC24KUrKQRhM/TZL/MwZ+VPmW7mH+ 9u+/kaSXXFzXqYTq1PCb1v7ra1LMVckt1BCuCBFyZaWqkLQUl18vbs3143UHDhJBQjgE p0Qw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ZFUYMXcf; spf=pass (google.com: domain of linux-kernel+bounces-27472-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-27472-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id fk7-20020a056402398700b00555cd8593a2si4948580edb.286.2024.01.16.06.44.36 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Jan 2024 06:44:36 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-27472-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ZFUYMXcf; spf=pass (google.com: domain of linux-kernel+bounces-27472-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-27472-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id F045F1F23FA2 for ; Tue, 16 Jan 2024 14:44:35 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 35EF01BF3A; Tue, 16 Jan 2024 14:44:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ZFUYMXcf" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4B646EADF; Tue, 16 Jan 2024 14:44:21 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8AEA1C433C7; Tue, 16 Jan 2024 14:44:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1705416261; bh=+IrwKlp6UAiY/ETGopdBM6vfi4zQT9+TOVEU95jc+QM=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=ZFUYMXcfrcBlgMFmeOBG6QK4FPWpIj83Hl7iJD0gWIrgeXnRuvx/EFQ5Bir99Xz2O NlURbUxSzquu2iuaKBp4bgh0i5O4MRaSh2nUrLJlzqqM7EMHqZZTwcZ0KqEmSITu1G TJEH8sexIdawv5r1pF6yuifT/uLlkXjuszqmEPVyFiJasMWpFnmn06zgGyXprZJAQ7 C6U2nIBTB+RWBh70+rKtDKE1rCaHduyAjpluD78FIJWCq7Xh80FJvVcVSBqm0vX6tO PiWlcaU3zYVKaNOya3HugBr7Es7jjmKT/IpncFTxda0NAQqQFMNBPxEpiTTbyOb3kh RysVJs8CatXXQ== Date: Tue, 16 Jan 2024 08:44:19 -0600 From: Rob Herring To: Krzysztof Kozlowski Cc: Bjorn Andersson , Konrad Dybcio , Lorenzo Pieralisi , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , Bjorn Helgaas , Krzysztof Kozlowski , Conor Dooley , Manivannan Sadhasivam , linux-arm-msm@vger.kernel.org, linux-pci@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/6] dt-bindings: PCI: qcom,pcie-sm8550: move SM8550 to dedicated schema Message-ID: <20240116144419.GA3856889-robh@kernel.org> References: <20240108-dt-bindings-pci-qcom-split-v1-0-d541f05f4de0@linaro.org> <20240108-dt-bindings-pci-qcom-split-v1-1-d541f05f4de0@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240108-dt-bindings-pci-qcom-split-v1-1-d541f05f4de0@linaro.org> On Mon, Jan 08, 2024 at 03:19:14PM +0100, Krzysztof Kozlowski wrote: > The qcom,pcie.yaml binding file containing all possible Qualcomm SoC > PCIe root complexes gets quite complicated with numerous if:then: > conditions customizing clocks, interrupts, regs and resets. Adding and > reviewing new devices is difficult, so simplify it by having shared > common binding and file with only one group of compatible devices: > > 1. Copy all common qcom,pcie.yaml properties (so everything except > supplies) to a new shared qcom,pcie-common.yaml schema. > 2. Move SM8550 PCIe compatible devices to dedicated binding file. > > This creates equivalent SM8550 schema file, except missing required > compatible which is actually redundant. > > Signed-off-by: Krzysztof Kozlowski > --- > .../devicetree/bindings/pci/qcom,pcie-common.yaml | 98 ++++++++++++ > .../devicetree/bindings/pci/qcom,pcie-sm8550.yaml | 171 +++++++++++++++++++++ > .../devicetree/bindings/pci/qcom,pcie.yaml | 38 ----- > 3 files changed, 269 insertions(+), 38 deletions(-) > > diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie-common.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie-common.yaml > new file mode 100644 > index 000000000000..125136176f93 > --- /dev/null > +++ b/Documentation/devicetree/bindings/pci/qcom,pcie-common.yaml > @@ -0,0 +1,98 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/pci/qcom,pcie-common.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Qualcomm PCI Express Root Complex Common Properties > + > +maintainers: > + - Bjorn Andersson > + - Manivannan Sadhasivam > + > +properties: > + reg: > + minItems: 4 > + maxItems: 6 > + > + reg-names: > + minItems: 4 > + maxItems: 6 > + > + interrupts: > + minItems: 1 > + maxItems: 8 > + > + interrupt-names: > + minItems: 1 > + maxItems: 8 > + > + iommu-map: > + minItems: 1 > + maxItems: 16 > + > + clocks: > + minItems: 3 > + maxItems: 13 > + > + clock-names: > + minItems: 3 > + maxItems: 13 > + > + dma-coherent: true > + > + interconnects: > + maxItems: 2 > + > + interconnect-names: > + items: > + - const: pcie-mem > + - const: cpu-pcie > + > + phys: > + maxItems: 1 > + > + phy-names: > + items: > + - const: pciephy > + > + power-domains: > + maxItems: 1 > + > + resets: > + minItems: 1 > + maxItems: 12 > + > + reset-names: > + minItems: 1 > + maxItems: 12 > + > + perst-gpios: > + description: GPIO controlled connection to PERST# signal > + maxItems: 1 > + > + wake-gpios: > + description: GPIO controlled connection to WAKE# signal > + maxItems: 1 > + > +required: > + - reg > + - reg-names > + - interrupt-map-mask > + - interrupt-map > + - clocks > + - clock-names > + > +anyOf: > + - required: > + - interrupts > + - interrupt-names > + - "#interrupt-cells" > + - required: > + - msi-map > + - msi-map-mask > + > +allOf: > + - $ref: /schemas/pci/pci-bus.yaml# > + > +additionalProperties: true > diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie-sm8550.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie-sm8550.yaml > new file mode 100644 > index 000000000000..b6d025f153bc > --- /dev/null > +++ b/Documentation/devicetree/bindings/pci/qcom,pcie-sm8550.yaml > @@ -0,0 +1,171 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/pci/qcom,pcie-sm8550.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Qualcomm SM8550 PCI Express Root Complex > + > +maintainers: > + - Bjorn Andersson > + - Manivannan Sadhasivam > + > +description: > + Qualcomm SM8550 SoC (and compatible) PCIe root complex controller is based on > + the Synopsys DesignWare PCIe IP. > + > +properties: > + compatible: > + oneOf: > + - const: qcom,pcie-sm8550 > + - items: > + - enum: > + - qcom,pcie-sm8650 > + - const: qcom,pcie-sm8550 > + > + reg: > + minItems: 5 > + maxItems: 6 > + > + reg-names: > + minItems: 5 > + items: > + - const: parf # Qualcomm specific registers > + - const: dbi # DesignWare PCIe registers > + - const: elbi # External local bus interface registers > + - const: atu # ATU address space > + - const: config # PCIe configuration space > + - const: mhi # MHI registers > + > + clocks: > + minItems: 7 > + maxItems: 8 > + > + clock-names: > + minItems: 7 > + items: > + - const: aux # Auxiliary clock > + - const: cfg # Configuration clock > + - const: bus_master # Master AXI clock > + - const: bus_slave # Slave AXI clock > + - const: slave_q2a # Slave Q2A clock > + - const: ddrss_sf_tbu # PCIe SF TBU clock > + - const: noc_aggr # Aggre NoC PCIe AXI clock > + - const: cnoc_sf_axi # Config NoC PCIe1 AXI clock > + > + resets: > + minItems: 1 > + maxItems: 2 > + > + reset-names: > + minItems: 1 > + items: > + - const: pci # PCIe core reset > + - const: link_down # PCIe link down reset > + > +oneOf: > + - properties: > + interrupts: > + maxItems: 1 > + interrupt-names: > + items: > + - const: msi > + > + - properties: > + interrupts: > + minItems: 8 > + interrupt-names: > + items: > + - const: msi0 > + - const: msi1 > + - const: msi2 > + - const: msi3 > + - const: msi4 > + - const: msi5 > + - const: msi6 > + - const: msi7 How does a given SoC have 1 or 8 interrupts? I guess it is possible. A comment here would be helpful. Reviewed-by: Rob Herring