# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/pci/pci-ep.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: PCI Endpoint Controller

description: |
  Common properties for PCI Endpoint Controller Nodes.

maintainers:
  - Kishon Vijay Abraham I <kishon@kernel.org>
  - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>

properties:
  $nodename:
    pattern: "^pcie-ep@"

  max-functions:
    description: Maximum number of functions that can be configured
    $ref: /schemas/types.yaml#/definitions/uint8
    minimum: 1
    default: 1
    maximum: 255

  max-virtual-functions:
    description: Array representing the number of virtual functions corresponding to each physical
      function
    $ref: /schemas/types.yaml#/definitions/uint8-array
    minItems: 1
    maxItems: 255

  max-link-speed:
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [ 1, 2, 3, 4 ]

  num-lanes:
    description: maximum number of lanes
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 1
    default: 1
    maximum: 16

  linux,pci-domain:
    description:
      If present this property assigns a fixed PCI domain number to a PCI
      Endpoint Controller, otherwise an unstable (across boots) unique number
      will be assigned. It is required to either not set this property at all
      or set it for all PCI endpoint controllers in the system, otherwise
      potentially conflicting domain numbers may be assigned to endpoint
      controllers. The domain number for each endpoint controller in the system
      must be unique.
    $ref: /schemas/types.yaml#/definitions/uint32

required:
  - compatible

additionalProperties: true
