From: Rob Herring <robh@kernel.org>
To: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Cc: "Jingoo Han" <jingoohan1@gmail.com>,
"Gustavo Pimentel" <gustavo.pimentel@synopsys.com>,
"Bjorn Helgaas" <bhelgaas@google.com>,
"Serge Semin" <fancer.lancer@gmail.com>,
"Alexey Malahov" <Alexey.Malahov@baikalelectronics.ru>,
"Pavel Parkhomenko" <Pavel.Parkhomenko@baikalelectronics.ru>,
"Lorenzo Pieralisi" <lorenzo.pieralisi@arm.com>,
"Krzysztof Wilczyński" <kw@linux.com>,
"Frank Li" <Frank.Li@nxp.com>,
"Manivannan Sadhasivam" <manivannan.sadhasivam@linaro.org>,
linux-pci@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 02/16] dt-bindings: PCI: dwc: Add Baikal-T1 PCIe Root Port bindings
Date: Mon, 28 Mar 2022 18:20:03 -0500 [thread overview]
Message-ID: <YkJCo1PrdKlHYt8D@robh.at.kernel.org> (raw)
In-Reply-To: <20220324013734.18234-3-Sergey.Semin@baikalelectronics.ru>
On Thu, Mar 24, 2022 at 04:37:20AM +0300, Serge Semin wrote:
> Baikal-T1 SoC is equipped with DWC PCIe v4.60a Root Port controller, which
> link can be trained to work on up to Gen.3 speed over up to x4 lanes. The
> controller is supposed to be fed up with four clock sources: DBI
> peripheral clock, AXI application Tx/Rx clocks and external PHY/core
> reference clock generating the 100MHz signal. In addition to that the
> platform provide a way to reset each part of the controller:
> sticky/non-sticky bits, host controller core, PIPE interface, PCS/PHY and
> Hot/Power reset signal. The Root Port controller is equipped with multiple
> IRQ lines like MSI, system AER, PME, HP, Bandwidth change, Link
> equalization request and eDMA ones. The registers space is accessed over
> the DBI interface. There can be no more than four inbound or outbound iATU
> windows configured.
>
> Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
>
> ---
>
> Rob, this DT-bindings most likely will fail the dt_bindings_check
> evaluations with the "'*' is not of type 'array'" errors for the same
> reason described in the previous patch. Let's discuss the problem there.
> ---
> .../bindings/pci/baikal,bt1-pcie.yaml | 148 ++++++++++++++++++
> 1 file changed, 148 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/pci/baikal,bt1-pcie.yaml
>
> diff --git a/Documentation/devicetree/bindings/pci/baikal,bt1-pcie.yaml b/Documentation/devicetree/bindings/pci/baikal,bt1-pcie.yaml
> new file mode 100644
> index 000000000000..f34438330a86
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/pci/baikal,bt1-pcie.yaml
> @@ -0,0 +1,148 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/pci/baikal,bt1-pcie.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Baikal-T1 PCIe Root Port Controller
> +
> +maintainers:
> + - Serge Semin <fancer.lancer@gmail.com>
> +
> +description: |
> + Embedded into Baikal-T1 SoC Root Complex controller. It's based on the
> + DWC RC PCIe v4.60a IP-core, which is configured to have just a single Root
> + Port function and is capable of establishing the link up to Gen.3 speed
> + on x4 lanes. It doesn't have embedded clock and reset control module, so
> + the proper interface initialization is supposed to be performed by software.
> +
> +allOf:
> + - $ref: /schemas/pci/pci-bus.yaml#
> + - $ref: snps,dw-pcie.yaml#
> +
> +properties:
> + compatible:
> + contains:
> + const: baikal,bt1-pcie
> +
> + reg:
> + description:
> + DBI, DBI2 and at least 4KB outbound iATU-capable region are available.
outbound iATU-capable region? While configured with iATU, it's just
config space from a binding standpoint.
It's a bit more precise to do this:
items:
- description: DBI...
- description: DBI2...
- ...
> + maxItems: 3
And then drop this.
> +
> + reg-names:
> + minItems: 3
> + maxItems: 3
> + items:
> + enum: [ dbi, dbi2, config ]
To enforce the order:
items:
- const: dbi
- const: dbi2
- const: config
> +
> + interrupts:
> + description:
> + MSI, AER, PME, Hot-plug, Link Bandwidth Management, Link Equalization
> + request and eight Read/Write eDMA IRQ lines are available.
> + maxItems: 14
> +
> + interrupt-names:
> + minItems: 14
> + maxItems: 14
> + items:
> + oneOf:
> + - pattern: '^dma[0-7]$'
> + - enum: [ msi, aer, pme, hp, bw_mg, l_eq ]
Can't you define the order?
> +
> + clocks:
> + description:
> + DBI (attached to the APB bus), AXI-bus master and slave interfaces
> + are fed up by the dedicated application clocks. A common reference
> + clock signal is supposed to be attached to the corresponding Ref-pad
> + of the SoC. It will be redistributed amongst the controller core
> + sub-modules (pipe, core, aux, etc).
> + minItems: 4
> + maxItems: 4
> +
> + clock-names:
> + minItems: 4
> + maxItems: 4
> + items:
> + enum: [ dbi, mstr, slv, ref ]
> +
> + resets:
> + description:
> + A comprehensive controller reset logic is supposed to be implemented
> + by software, so almost all the possible application and core reset
> + signals are exposed via the system CCU module.
> + minItems: 9
> + maxItems: 9
> +
> + reset-names:
> + minItems: 9
> + maxItems: 9
> + items:
> + enum: [ mstr, slv, pwr, hot, phy, core, pipe, sticky, non-sticky ]
Again, define the order.
> +
> + syscon:
Needs a vendor prefix.
> + $ref: /schemas/types.yaml#/definitions/phandle
> + description:
> + Phandle to the Baikal-T1 System Controller DT node. It's required to
> + access some additional PM, Reset-related and LTSSM signals.
> +
> + num-lanes:
> + maximum: 4
> +
> + max-link-speed:
> + maximum: 3
> +
> + num-ob-windows:
> + const: 4
> +
> + num-ib-windows:
> + const: 4
These are deprecated. The driver probes for how many now.
> +
> +required:
> + - compatible
> + - reg
> + - reg-names
> + - interrupts
> + - interrupt-names
> + - clocks
> + - clock-names
> + - resets
> + - reset-names
> +
> +unevaluatedProperties: false
> +
> +examples:
> + - |
> + pcie@1f052000 {
> + compatible = "baikal,bt1-pcie", "snps,dw-pcie-4.60a", "snps,dw-pcie";
> + device_type = "pci";
> + reg = <0x1f052000 0x1000>, <0x1f053000 0x1000>, <0x1bdbf000 0x1000>;
> + reg-names = "dbi", "dbi2", "config";
> + #address-cells = <3>;
> + #size-cells = <2>;
> + ranges = <0x81000000 0 0x00000000 0x1bdb0000 0 0x00008000>,
> + <0x82000000 0 0x20000000 0x08000000 0 0x13db0000>;
> + bus-range = <0x0 0xff>;
> +
> + interrupts = <0 80 4>, <0 81 4>, <0 82 4>, <0 83 4>,
> + <0 84 4>, <0 85 4>, <0 86 4>, <0 87 4>,
> + <0 88 4>, <0 89 4>, <0 90 4>, <0 91 4>,
> + <0 92 4>, <0 93 4>;
> + interrupt-names = "dma0", "dma1", "dma2", "dma3", "dma4", "dma5", "dma6",
> + "dma7", "msi", "aer", "pme", "hp", "bw_mg", "l_eq";
> +
> + clocks = <&ccu_sys 1>, <&ccu_axi 6>, <&ccu_axi 7>, <&clk_pcie>;
> + clock-names = "dbi", "mstr", "slv", "ref";
> +
> + resets = <&ccu_axi 6>, <&ccu_axi 7>, <&ccu_sys 7>, <&ccu_sys 10>,
> + <&ccu_sys 4>, <&ccu_sys 6>, <&ccu_sys 5>, <&ccu_sys 8>,
> + <&ccu_sys 9>;
> + reset-names = "mstr", "slv", "pwr", "hot", "phy", "core", "pipe",
> + "sticky", "non-sticky";
> +
> + reset-gpios = <&port0 0 1>;
> +
> + num-lanes = <4>;
> + max-link-speed = <3>;
> + };
> +...
> --
> 2.35.1
>
>
next prev parent reply other threads:[~2022-03-28 23:20 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-24 1:37 [PATCH 00/16] PCI: dwc: Add dma-ranges/YAML-schema/Baikal-T1 support Serge Semin
2022-03-24 1:37 ` [PATCH 01/16] dt-bindings: PCI: dwc: Define generic and native DT bindings Serge Semin
2022-03-24 1:37 ` Serge Semin
2022-03-24 1:37 ` Serge Semin
2022-03-28 20:46 ` Rob Herring
2022-03-28 20:46 ` Rob Herring
2022-03-28 20:46 ` Rob Herring
2022-04-15 16:14 ` Serge Semin
2022-04-15 16:14 ` Serge Semin
2022-04-15 16:14 ` Serge Semin
2022-03-24 1:37 ` [PATCH 02/16] dt-bindings: PCI: dwc: Add Baikal-T1 PCIe Root Port bindings Serge Semin
2022-03-28 23:20 ` Rob Herring [this message]
2022-04-15 20:22 ` Serge Semin
2022-03-24 1:37 ` [PATCH 03/16] PCI: dwc: Add more verbose link-up message Serge Semin
2022-03-28 23:31 ` Joe Perches
2022-04-16 8:01 ` Serge Semin
2022-03-29 14:47 ` Rob Herring
2022-04-17 10:10 ` Serge Semin
2022-03-24 1:37 ` [PATCH 04/16] PCI: dwc: Convert to using native IP-core versions representation Serge Semin
2022-03-29 15:00 ` Rob Herring
2022-04-17 14:42 ` Serge Semin
2022-03-24 1:37 ` [PATCH 05/16] PCI: dwc: Add IP-core version detection procedure Serge Semin
2022-03-29 15:08 ` Rob Herring
2022-04-17 15:13 ` Serge Semin
2022-03-24 1:37 ` [PATCH 06/16] PCI: dwc: Introduce Synopsys IP-core versions/types interface Serge Semin
2022-03-24 1:37 ` [PATCH 07/16] PCI: dwc: Add host de-initialization callback Serge Semin
2022-03-24 1:37 ` [PATCH 08/16] PCI: dwc: Drop inbound iATU types enumeration - dw_pcie_as_type Serge Semin
2022-03-29 15:16 ` Rob Herring
2022-03-24 1:37 ` [PATCH 09/16] PCI: dwc: Simplify in/outbound iATU setup methods Serge Semin
2022-03-29 15:28 ` Rob Herring
2022-04-17 20:08 ` Serge Semin
2022-03-24 1:37 ` [PATCH 10/16] PCI: dwc: Drop iATU regions enumeration - dw_pcie_region_type Serge Semin
2022-03-29 15:31 ` Rob Herring
2022-04-17 17:52 ` Serge Semin
2022-03-24 1:37 ` [PATCH 11/16] PCI: dwc: Add iATU regions size detection procedure Serge Semin
2022-03-24 1:37 ` [PATCH 12/16] PCI: dwc: Verify in/out regions against iATU constraints Serge Semin
2022-03-24 1:37 ` [PATCH 13/16] PCI: dwc: Check iATU in/outbound ranges setup methods status Serge Semin
2022-03-24 1:37 ` [PATCH 14/16] PCI: dwc: Introduce dma-ranges property support for RC-host Serge Semin
2022-03-24 1:37 ` [PATCH 15/16] PCI: dwc: Introduce generic platform clocks and resets sets Serge Semin
2022-03-24 1:37 ` [PATCH 16/16] PCI: dwc: Add Baikal-T1 PCIe controller support Serge Semin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YkJCo1PrdKlHYt8D@robh.at.kernel.org \
--to=robh@kernel.org \
--cc=Alexey.Malahov@baikalelectronics.ru \
--cc=Frank.Li@nxp.com \
--cc=Pavel.Parkhomenko@baikalelectronics.ru \
--cc=Sergey.Semin@baikalelectronics.ru \
--cc=bhelgaas@google.com \
--cc=devicetree@vger.kernel.org \
--cc=fancer.lancer@gmail.com \
--cc=gustavo.pimentel@synopsys.com \
--cc=jingoohan1@gmail.com \
--cc=kw@linux.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lorenzo.pieralisi@arm.com \
--cc=manivannan.sadhasivam@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.