# Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # # This program is free software; you can redistribute it and/or modify it # under the terms and conditions of the GNU General Public License, # version 2, as published by the Free Software Foundation. # # This program is distributed in the hope it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # more details. %YAML 1.2 --- $id: http://devicetree.org/schemas/pcie@a8b0000000/pci-host-ecam-generic.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: FIXME -- add title maintainers: - FIXME -- add maintainers description: | the compatability = pci-host-ecam-generic is mentioned in the following drivers - /kernel/kernel-oot/drivers/pci/controller/pci-host-generic.c The following nodes use this compatibility - /bus@0/pcie@a8b0000000 - /bus@0/pcie@b0b0000000 - /bus@0/pcie@b8b0000000 - /bus@0/pcie@c0b0000000 - /bus@0/pcie@c8b0000000 - /bus@0/pcie@d0b0000000 select: properties: compatible: minItems: 1 maxItems: 1 items: enum: - pci-host-ecam-generic required: - compatible properties: reg: $ref: "/schemas/types.yaml#/definitions/uint32-matrix" description: | Registers are given by a tuple of two values: - register address: - register block size. items: minItems: 4 maxItems: 4 items: - $ref: "/schemas/types.yaml#/definitions/uint32" minimum: 0xa8 maximum: 0xd0 - $ref: "/schemas/types.yaml#/definitions/uint32" minimum: 0x8520000 maximum: 0xb0000000 - $ref: "/schemas/types.yaml#/definitions/uint32" minimum: 0x0 maximum: 0x0 - $ref: "/schemas/types.yaml#/definitions/uint32" minimum: 0x10000 maximum: 0x10000000 reg-names: $ref: "/schemas/types.yaml#/definitions/string-array" items: enum: - ecam - xdma '#address-cells': $ref: "/schemas/types.yaml#/definitions/uint32" minimum: 0x3 maximum: 0x3 '#size-cells': $ref: "/schemas/types.yaml#/definitions/uint32" minimum: 0x2 maximum: 0x2 device_type: $ref: "/schemas/types.yaml#/definitions/string-array" items: enum: - pci linux,pci-domain: $ref: "/schemas/types.yaml#/definitions/uint32" minimum: 0x0 maximum: 0x5 '#interrupt-cells': $ref: "/schemas/types.yaml#/definitions/uint32" minimum: 0x1 maximum: 0x1 interrupt-map-mask: $ref: "/schemas/types.yaml#/definitions/uint32-matrix" items: minItems: 4 maxItems: 4 items: - $ref: "/schemas/types.yaml#/definitions/uint32" minimum: 0x0 maximum: 0x0 - $ref: "/schemas/types.yaml#/definitions/uint32" minimum: 0x0 maximum: 0x0 - $ref: "/schemas/types.yaml#/definitions/uint32" minimum: 0x0 maximum: 0x0 - $ref: "/schemas/types.yaml#/definitions/uint32" minimum: 0x7 maximum: 0x7 iommu-map: $ref: "/schemas/types.yaml#/definitions/uint32-matrix" items: minItems: 4 maxItems: 4 items: - $ref: "/schemas/types.yaml#/definitions/uint32" minimum: 0x0 maximum: 0x0 - $ref: "/schemas/types.yaml#/definitions/uint32" - $ref: "/schemas/types.yaml#/definitions/uint32" minimum: 0x10000 maximum: 0x50000 - $ref: "/schemas/types.yaml#/definitions/uint32" minimum: 0x10000 maximum: 0x10000 dma-coherent: $ref: "/schemas/types.yaml#/definitions/flag" msi-map: $ref: "/schemas/types.yaml#/definitions/uint32-matrix" items: minItems: 4 maxItems: 4 items: - $ref: "/schemas/types.yaml#/definitions/uint32" minimum: 0x0 maximum: 0x0 - $ref: "/schemas/types.yaml#/definitions/uint32" - $ref: "/schemas/types.yaml#/definitions/uint32" minimum: 0x110000 maximum: 0x210000 - $ref: "/schemas/types.yaml#/definitions/uint32" minimum: 0x10000 maximum: 0x10000 bus-range: $ref: "/schemas/types.yaml#/definitions/uint32-matrix" items: minItems: 2 maxItems: 2 items: - $ref: "/schemas/types.yaml#/definitions/uint32" minimum: 0x0 maximum: 0x0 - $ref: "/schemas/types.yaml#/definitions/uint32" minimum: 0xff maximum: 0xff numa-node-id: $ref: "/schemas/types.yaml#/definitions/uint32" minimum: 0x0 maximum: 0x0 ats-supported: $ref: "/schemas/types.yaml#/definitions/flag" required: - compatible - reg examples: - | pcie@a8b0000000 { status = "disabled"; compatible = "pci-host-ecam-generic"; reg = <0xa8 0xb0000000 0x0 0x10000000>; reg-names = "ecam"; #address-cells = <0x3>; #size-cells = <0x2>; device_type = "pci"; linux,pci-domain = <0x1>; #interrupt-cells = <0x1>; interrupt-map-mask = <0x0 0x0 0x0 0x7>; interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0x0 GIC_SPI 0x38c IRQ_TYPE_LEVEL_HIGH0x0 0x0 0x0 0x2 &gic 0x0 0x0 GIC_SPI 0x38d IRQ_TYPE_LEVEL_HIGH0x0 0x0 0x0 0x3 &gic 0x0 0x0 GIC_SPI 0x38e IRQ_TYPE_LEVEL_HIGH0x0 0x0 0x0 0x4 &gic 0x0 0x0 GIC_SPI 0x38f IRQ_TYPE_LEVEL_HIGH>; iommu-map = <0x0 &smmu1_mmu 0x10000 0x10000>; dma-coherent; msi-map = <0x0 &its 0x110000 0x10000>; bus-range = <0x0 0xff>; ranges = <0x82000000 0x00 0x28000000 0x00 0x28000000 0x0 0x080000000xc3000000 0xa8 0xc0000000 0xa8 0xc0000000 0x7 0xc00000000x81000000 0xa8 0x82000000 0xa8 0x82000000 0x0 0x00200000>; numa-node-id = <0x0>; };