From: Rob Herring <robh@kernel.org>
To: Claudiu <claudiu.beznea@tuxon.dev>
Cc: bhelgaas@google.com, lpieralisi@kernel.org, kw@linux.com,
manivannan.sadhasivam@linaro.org, krzk+dt@kernel.org,
conor+dt@kernel.org, geert+renesas@glider.be,
magnus.damm@gmail.com, mturquette@baylibre.com, sboyd@kernel.org,
saravanak@google.com, p.zabel@pengutronix.de,
linux-pci@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org,
Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Subject: Re: [PATCH 4/8] dt-bindings: PCI: renesas,r9a08g045s33-pcie: Add documentation for the PCIe IP on Renesas RZ/G3S
Date: Fri, 9 May 2025 16:08:00 -0500 [thread overview]
Message-ID: <20250509210800.GB4080349-robh@kernel.org> (raw)
In-Reply-To: <20250430103236.3511989-5-claudiu.beznea.uj@bp.renesas.com>
On Wed, Apr 30, 2025 at 01:32:32PM +0300, Claudiu wrote:
> From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
>
> The PCIe IP available on the Renesas RZ/G3S complies with the PCI Express
> Base Specification 4.0. It is designed for root complex applications and
> features a single-lane (x1) implementation. Add documentation for it.
> The interrupts, interrupt-names, resets, reset-names, clocks, clock-names
> description were obtained from the hardware manual.
>
> Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
> ---
> .../pci/renesas,r9a08g045s33-pcie.yaml | 242 ++++++++++++++++++
> 1 file changed, 242 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/pci/renesas,r9a08g045s33-pcie.yaml
>
> diff --git a/Documentation/devicetree/bindings/pci/renesas,r9a08g045s33-pcie.yaml b/Documentation/devicetree/bindings/pci/renesas,r9a08g045s33-pcie.yaml
> new file mode 100644
> index 000000000000..354f9c3be139
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/pci/renesas,r9a08g045s33-pcie.yaml
> @@ -0,0 +1,242 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/pci/renesas,r9a08g045s33-pcie.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Renesas RZ/G3S PCIe host controller
> +
> +maintainers:
> + - Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
> +
> +description:
> + Renesas RZ/G3S PCIe host controller complies with PCIe Base Specification
> + 4.0 and supports up to 5 GT/s (Gen2).
> +
> +properties:
> + compatible:
> + const: renesas,r9a08g045s33-pcie # RZ/G3S
> +
> + reg:
> + maxItems: 1
> +
> + interrupts:
> + items:
> + - description: System error interrupt
> + - description: System error on correctable error interrupt
> + - description: System error on non-fatal error interrupt
> + - description: System error on fatal error interrupt
> + - description: AXI error interrupt
> + - description: INTA interrupt
> + - description: INTB interrupt
> + - description: INTC interrupt
> + - description: INTD interrupt
> + - description: MSI interrupt
> + - description: Link bandwidth interrupt
> + - description: PME interrupt
> + - description: DMA interrupt
> + - description: PCIe event interrupt
> + - description: Message interrupt
> + - description: All interrupts
> +
> + interrupt-names:
> + items:
> + - description: int_serr
> + - description: int_ser_cor
> + - description: int_serr_nonfatal
> + - description: int_serr_fatal
> + - description: axi_err_int
> + - description: inta_rc
> + - description: intb_rc
> + - description: intc_rc
> + - description: intd_rc
> + - description: intmsi_rc
Isn't every interrupt for the root complex?
> + - description: int_link_bandwidth
> + - description: int_pm_pme
> + - description: dma_int
> + - description: pcie_evt_int
> + - description: msg_int
> + - description: int_all
'int_' or '_int' is redundant (and inconsistent). Drop.
> +
> + clocks:
> + items:
> + - description: System clock
> + - description: PM control clock
> +
> + clock-names:
> + items:
> + - description: aclk
> + - description: clkl1pm
'l1pm' or 'pm'
> +
> + resets:
> + items:
> + - description: AXI2PCIe Bridge reset
> + - description: Data link layer/transaction layer reset
> + - description: Transaction layer (ACLK domain) reset
> + - description: Transaction layer (PCLK domain) reset
> + - description: Physical layer reset
> + - description: Configuration register reset
> + - description: Configuration register reset
> +
> + reset-names:
> + items:
> + - description: aresetn
> + - description: rst_b
> + - description: rst_gp_b
> + - description: rst_ps_b
> + - description: rst_rsm_b
> + - description: rst_cfg_b
> + - description: rst_load_b
> +
> + power-domains:
> + maxItems: 1
> +
> + dma-ranges:
> + description:
> + A single range for the inbound memory region.
> + maxItems: 1
> +
> + renesas,sysc:
> + description: System controller phandle
> + $ref: /schemas/types.yaml#/definitions/phandle
> +
> + vendor-id:
> + const: 0x1912
> +
> + device-id:
> + const: 0x0033
> +
> + legacy-interrupt-controller:
> + description: Interrupt controller node for handling legacy PCI interrupts
> + type: object
> +
> + properties:
> + "#address-cells":
> + const: 0
> +
> + "#interrupt-cells":
> + const: 1
> +
> + interrupt-controller: true
> +
> + interrupts:
> + items:
> + - description: INTA interrupt
> + - description: INTB interrupt
> + - description: INTC interrupt
> + - description: INTD interrupt
> +
> + required:
> + - "#address-cells"
> + - "#interrupt-cells"
> + - interrupt-controller
> + - interrupts
> +
> + additionalProperties: false
> +
> +required:
> + - compatible
> + - reg
> + - clocks
> + - resets
> + - reset-names
> + - interrupts
> + - interrupt-names
> + - interrupt-map
> + - interrupt-map-mask
> + - power-domains
> + - "#address-cells"
> + - "#size-cells"
> + - "#interrupt-cells"
> + - renesas,sysc
> + - vendor-id
> + - device-id
> +
> +allOf:
> + - $ref: /schemas/pci/pci-host-bridge.yaml#
> +
> +unevaluatedProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/clock/r9a08g045-cpg.h>
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> +
> + bus {
> + #address-cells = <2>;
> + #size-cells = <2>;
> +
> + gic: interrupt-controller {
> + interrupt-controller;
> + #interrupt-cells = <3>;
> + };
Drop. Don't need to show provider nodes for the example.
> +
> + pcie@11e40000 {
> + compatible = "renesas,r9a08g045s33-pcie";
> + reg = <0 0x11e40000 0 0x10000>;
> + ranges = <0x03000000 0 0x30000000 0 0x30000000 0 0x8000000>;
> + dma-ranges = <0x42000000 0 0x48000000 0 0x48000000 0 0x8000000>;
> + bus-range = <0x0 0xff>;
> + clocks = <&cpg CPG_MOD R9A08G045_PCI_ACLK>,
> + <&cpg CPG_MOD R9A08G045_PCI_CLKL1PM>;
> + clock-names = "aclk", "clkl1pm";
> + resets = <&cpg R9A08G045_PCI_ARESETN>,
> + <&cpg R9A08G045_PCI_RST_B>,
> + <&cpg R9A08G045_PCI_RST_GP_B>,
> + <&cpg R9A08G045_PCI_RST_PS_B>,
> + <&cpg R9A08G045_PCI_RST_RSM_B>,
> + <&cpg R9A08G045_PCI_RST_CFG_B>,
> + <&cpg R9A08G045_PCI_RST_LOAD_B>;
> + reset-names = "aresetn", "rst_b", "rst_gp_b", "rst_ps_b",
> + "rst_rsm_b", "rst_cfg_b", "rst_load_b";
> + interrupts = <GIC_SPI 395 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 398 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 399 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 400 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 401 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 402 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 403 IRQ_TYPE_LEVEL_HIGH>,
It is very odd that you have the INTx interrupts here and below.
As I mentioned in the driver, you don't need the legacy node any more.
Just add 'interrupt-controller' to this node and point interrupt-map to
this node.
> + <GIC_SPI 404 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 406 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 407 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 408 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 409 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 410 IRQ_TYPE_LEVEL_HIGH>;
> + interrupt-names = "int_serr", "int_serr_cor", "int_serr_nonfatal",
> + "int_serr_fatal", "axi_err_int", "inta_rc",
> + "intb_rc", "intc_rc", "intd_rc",
> + "intmsi_rc", "int_link_bandwidth", "int_pm_pme",
> + "dma_int", "pcie_evt_int", "msg_int",
> + "int_all";
> + #interrupt-cells = <1>;
> + interrupt-map-mask = <0 0 0 7>;
> + interrupt-map = <0 0 0 1 &pcie_intx 0>, /* INT A */
> + <0 0 0 2 &pcie_intx 1>, /* INT B */
> + <0 0 0 3 &pcie_intx 2>, /* INT C */
> + <0 0 0 4 &pcie_intx 3>; /* INT D */
> + device_type = "pci";
> + num-lanes = <1>;
> + #address-cells = <3>;
> + #size-cells = <2>;
> + power-domains = <&cpg>;
> + renesas,sysc = <&sysc>;
> + vendor-id = <0x1912>;
> + device-id = <0x0033>;
> +
> + pcie_intx: legacy-interrupt-controller {
> + interrupt-controller;
> + #interrupt-cells = <1>;
> + #address-cells = <0>;
> + interrupt-parent = <&gic>;
> + interrupts = <GIC_SPI 400 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 401 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 402 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 403 IRQ_TYPE_LEVEL_HIGH>;
> + };
> + };
> + };
> +
> +...
> --
> 2.43.0
>
next prev parent reply other threads:[~2025-05-09 21:11 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-30 10:32 [PATCH 0/8] PCI: rzg3s-host: Add PCIe driver for Renesas RZ/G3S SoC Claudiu
2025-04-30 10:32 ` [PATCH 1/8] soc: renesas: r9a08g045-sysc: Add max reg offset Claudiu
2025-05-01 9:26 ` kernel test robot
2025-05-01 10:32 ` kernel test robot
2025-05-01 16:12 ` kernel test robot
2025-04-30 10:32 ` [PATCH 2/8] clk: renesas: r9a08g045: Add clocks, resets and power domain support for the PCIe Claudiu
2025-04-30 10:32 ` [PATCH 3/8] of/irq: Export of_irq_count() Claudiu
2025-05-09 19:36 ` Rob Herring
2025-04-30 10:32 ` [PATCH 4/8] dt-bindings: PCI: renesas,r9a08g045s33-pcie: Add documentation for the PCIe IP on Renesas RZ/G3S Claudiu
2025-05-01 20:16 ` Bjorn Helgaas
2025-05-05 11:28 ` Claudiu Beznea
2025-05-09 21:08 ` Rob Herring [this message]
2025-05-14 11:41 ` Claudiu Beznea
2025-04-30 10:32 ` [PATCH 5/8] PCI: rzg3s-host: Add Initial PCIe Host Driver for Renesas RZ/G3S SoC Claudiu
2025-05-01 20:12 ` Bjorn Helgaas
2025-05-05 11:26 ` Claudiu Beznea
2025-05-09 10:29 ` Claudiu Beznea
2025-05-12 20:38 ` Bjorn Helgaas
2025-05-14 10:29 ` Claudiu Beznea
2025-05-12 20:25 ` Bjorn Helgaas
2025-05-14 9:37 ` Claudiu Beznea
2025-05-09 10:51 ` Philipp Zabel
2025-05-09 11:41 ` Claudiu Beznea
2025-05-09 20:49 ` Rob Herring
2025-05-14 11:39 ` Claudiu Beznea
2025-04-30 10:32 ` [PATCH 6/8] arm64: dts: renesas: r9a08g045s33: Add PCIe node Claudiu
2025-04-30 10:32 ` [PATCH 7/8] arm64: dts: renesas: rzg3s-smarc: Enable PCIe Claudiu
2025-04-30 10:32 ` [PATCH 8/8] arm64: defconfig: Enable PCIe for the Renesas RZ/G3S SoC Claudiu
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=20250509210800.GB4080349-robh@kernel.org \
--to=robh@kernel.org \
--cc=bhelgaas@google.com \
--cc=claudiu.beznea.uj@bp.renesas.com \
--cc=claudiu.beznea@tuxon.dev \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=geert+renesas@glider.be \
--cc=krzk+dt@kernel.org \
--cc=kw@linux.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=lpieralisi@kernel.org \
--cc=magnus.damm@gmail.com \
--cc=manivannan.sadhasivam@linaro.org \
--cc=mturquette@baylibre.com \
--cc=p.zabel@pengutronix.de \
--cc=saravanak@google.com \
--cc=sboyd@kernel.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.