# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/pci/renesas,r9a08g045-pcie.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Renesas RZ/G3S PCIe host controller maintainers: - Claudiu Beznea 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,r9a08g045-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: serr - description: ser_cor - description: serr_nonfatal - description: serr_fatal - description: axi_err - description: inta - description: intb - description: intc - description: intd - description: msi - description: link_bandwidth - description: pm_pme - description: dma - description: pcie_evt - description: msg - description: all interrupt-controller: true clocks: items: - description: System clock - description: PM control clock clock-names: items: - description: aclk - description: 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 registers control and monitor various PCIe functionalities. Control: - transition to L1 state - receiver termination settings - RST_RSM_B signal Monitor: - clkl1pm clock request state - power off information in L2 state - errors (fatal, non-fatal, correctable) $ref: /schemas/types.yaml#/definitions/phandle patternProperties: "^pcie@0,[0-0]$": type: object allOf: - $ref: /schemas/pci/pci-pci-bridge.yaml# properties: reg: maxItems: 1 vendor-id: const: 0x1912 device-id: const: 0x0033 clocks: items: - description: Reference clock clock-names: items: - const: ref required: - device_type - vendor-id - device-id - clocks - clock-names unevaluatedProperties: false required: - compatible - reg - clocks - clock-names - resets - reset-names - interrupts - interrupt-names - interrupt-map - interrupt-map-mask - interrupt-controller - power-domains - "#address-cells" - "#size-cells" - "#interrupt-cells" - renesas,sysc allOf: - $ref: /schemas/pci/pci-host-bridge.yaml# unevaluatedProperties: false examples: - | #include #include bus { #address-cells = <2>; #size-cells = <2>; pcie@11e40000 { compatible = "renesas,r9a08g045-pcie"; reg = <0 0x11e40000 0 0x10000>; ranges = <0x02000000 0 0x30000000 0 0x30000000 0 0x08000000>; /* Map all possible DRAM ranges (4 GB). */ dma-ranges = <0x42000000 0 0x40000000 0 0x40000000 1 0x00000000>; bus-range = <0x0 0xff>; interrupts = , , , , , , , , , , , , , , , ; interrupt-names = "serr", "serr_cor", "serr_nonfatal", "serr_fatal", "axi_err", "inta", "intb", "intc", "intd", "msi", "link_bandwidth", "pm_pme", "dma", "pcie_evt", "msg", "all"; #interrupt-cells = <1>; interrupt-controller; interrupt-map-mask = <0 0 0 7>; interrupt-map = <0 0 0 1 &pcie 0 0 0 0>, /* INTA */ <0 0 0 2 &pcie 0 0 0 1>, /* INTB */ <0 0 0 3 &pcie 0 0 0 2>, /* INTC */ <0 0 0 4 &pcie 0 0 0 3>; /* INTD */ clocks = <&cpg CPG_MOD R9A08G045_PCI_ACLK>, <&cpg CPG_MOD R9A08G045_PCI_CLKL1PM>; clock-names = "aclk", "pm"; 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"; power-domains = <&cpg>; device_type = "pci"; #address-cells = <3>; #size-cells = <2>; renesas,sysc = <&sysc>; pcie@0,0 { reg = <0x0 0x0 0x0 0x0 0x0>; ranges; clocks = <&versa3 5>; clock-names = "ref"; device_type = "pci"; vendor-id = <0x1912>; device-id = <0x0033>; #address-cells = <3>; #size-cells = <2>; }; }; }; ...