# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/pci/nxp,s32g-pcie.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: NXP S32G2xxx/S32G3xxx PCIe Root Complex controller maintainers: - Bogdan Hamciuc - Ionut Vicovan description: This PCIe controller is based on the Synopsys DesignWare PCIe IP. The S32G SoC family has two PCIe controllers, which can be configured as either Root Complex or Endpoint. properties: compatible: oneOf: - enum: - nxp,s32g2-pcie - items: - const: nxp,s32g3-pcie - const: nxp,s32g2-pcie reg: maxItems: 6 reg-names: items: - const: dbi - const: dbi2 - const: atu - const: dma - const: ctrl - const: config interrupts: minItems: 1 maxItems: 2 interrupt-names: items: - const: msi - const: dma minItems: 1 pcie@0: description: Describe the S32G Root Port. type: object $ref: /schemas/pci/pci-pci-bridge.yaml# properties: reg: maxItems: 1 phys: maxItems: 1 required: - reg - phys unevaluatedProperties: false required: - compatible - reg - reg-names - interrupts - interrupt-names - ranges - pcie@0 allOf: - $ref: /schemas/pci/snps,dw-pcie.yaml# unevaluatedProperties: false examples: - | #include #include bus { #address-cells = <2>; #size-cells = <2>; pcie@40400000 { compatible = "nxp,s32g3-pcie", "nxp,s32g2-pcie"; reg = <0x00 0x40400000 0x0 0x00001000>, /* dbi registers */ <0x00 0x40420000 0x0 0x00001000>, /* dbi2 registers */ <0x00 0x40460000 0x0 0x00001000>, /* atu registers */ <0x00 0x40470000 0x0 0x00001000>, /* dma registers */ <0x00 0x40481000 0x0 0x000000f8>, /* ctrl registers */ <0x5f 0xffffe000 0x0 0x00002000>; /* config space */ reg-names = "dbi", "dbi2", "atu", "dma", "ctrl", "config"; dma-coherent; #address-cells = <3>; #size-cells = <2>; device_type = "pci"; ranges = <0x01000000 0x0 0x00000000 0x5f 0xfffe0000 0x0 0x00010000>, <0x02000000 0x0 0x00000000 0x58 0x00000000 0x0 0x80000000>, <0x02000000 0x1 0x00000000 0x59 0x00000000 0x6 0xfffe0000>; bus-range = <0x0 0xff>; interrupts = , ; interrupt-names = "msi", "dma"; #interrupt-cells = <1>; interrupt-map-mask = <0 0 0 0x7>; interrupt-map = <0 0 0 1 &gic 0 0 GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>, <0 0 0 2 &gic 0 0 GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>, <0 0 0 3 &gic 0 0 GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>, <0 0 0 4 &gic 0 0 GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>; pcie@0 { reg = <0x0 0x0 0x0 0x0 0x0>; #address-cells = <3>; #size-cells = <2>; ranges; device_type = "pci"; phys = <&serdes0 PHY_TYPE_PCIE 0 0>; }; }; };