Commit 057646a5 authored by Serge Semin's avatar Serge Semin Committed by Lorenzo Pieralisi
Browse files

dt-bindings: PCI: dwc: Detach common RP/EP DT bindings

Currently both DW PCIe Root Port and End-point DT bindings are defined as
separate schemas. Carefully looking at them, at the hardware reference
manuals and seeing there is a generic part of the driver used by the both
RP and EP drivers we can greatly simplify the DW PCIe controller bindings
by moving some of the properties into the common DT schema. It concerns
the PERST GPIO control, number of lanes, number of iATU windows and CDM
check properties. They will be defined in the snps,dw-pcie-common.yaml
schema which will be referenced in the DW PCIe Root Port and End-point DT
bindings in order to evaluate the common for both of these controllers
properties. The rest of properties like reg{,-names}, clock{s,-names},
reset{s,-names}, etc will be consolidate there in one of the next commits.

Link: https://lore.kernel.org/r/20221113191301.5526-4-Sergey.Semin@baikalelectronics.ru


Signed-off-by: default avatarSerge Semin <Sergey.Semin@baikalelectronics.ru>
Signed-off-by: default avatarLorenzo Pieralisi <lpieralisi@kernel.org>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
parent 4cf4b9b7
Loading
Loading
Loading
Loading
+76 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/pci/snps,dw-pcie-common.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Synopsys DWC PCIe RP/EP controller

maintainers:
  - Jingoo Han <jingoohan1@gmail.com>
  - Gustavo Pimentel <gustavo.pimentel@synopsys.com>

description:
  Generic Synopsys DesignWare PCIe Root Port and Endpoint controller
  properties.

select: false

properties:
  reset-gpio:
    deprecated: true
    description:
      Reference to the GPIO-controlled PERST# signal. It is used to reset all
      the peripheral devices available on the PCIe bus.
    maxItems: 1

  reset-gpios:
    description:
      Reference to the GPIO-controlled PERST# signal. It is used to reset all
      the peripheral devices available on the PCIe bus.
    maxItems: 1

  num-lanes:
    description:
      Number of PCIe link lanes to use. Can be omitted if the already brought
      up link is supposed to be preserved.
    maximum: 16

  num-ob-windows:
    $ref: /schemas/types.yaml#/definitions/uint32
    deprecated: true
    description:
      Number of outbound address translation windows. This parameter can be
      auto-detected based on the iATU memory writability. So there is no
      point in having a dedicated DT-property for it.
    maximum: 256

  num-ib-windows:
    $ref: /schemas/types.yaml#/definitions/uint32
    deprecated: true
    description:
      Number of inbound address translation windows. In the same way as
      for the outbound AT windows, this parameter can be auto-detected based
      on the iATU memory writability. There is no point having a dedicated
      DT-property for it either.
    maximum: 256

  num-viewport:
    $ref: /schemas/types.yaml#/definitions/uint32
    deprecated: true
    description:
      Number of outbound view ports configured in hardware. It's the same as
      the number of outbound AT windows.
    maximum: 256

  snps,enable-cdm-check:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      Enable automatic checking of CDM (Configuration Dependent Module)
      registers for data corruption. CDM registers include standard PCIe
      configuration space registers, Port Logic registers, DMA and iATU
      registers. This feature has been available since DWC PCIe v4.80a.

additionalProperties: true

...
+1 −30
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@ description: |

allOf:
  - $ref: /schemas/pci/pci-ep.yaml#
  - $ref: /schemas/pci/snps,dw-pcie-common.yaml#

properties:
  compatible:
@@ -36,36 +37,6 @@ properties:
    items:
      enum: [dbi, dbi2, config, atu, addr_space, link, atu_dma, appl]

  reset-gpio:
    description: GPIO pin number of PERST# signal
    maxItems: 1
    deprecated: true

  reset-gpios:
    description: GPIO controlled connection to PERST# signal
    maxItems: 1

  snps,enable-cdm-check:
    type: boolean
    description: |
      This is a boolean property and if present enables
      automatic checking of CDM (Configuration Dependent Module) registers
      for data corruption. CDM registers include standard PCIe configuration
      space registers, Port Logic registers, DMA and iATU (internal Address
      Translation Unit) registers.

  num-ib-windows:
    $ref: /schemas/types.yaml#/definitions/uint32
    maximum: 256
    description: number of inbound address translation windows
    deprecated: true

  num-ob-windows:
    $ref: /schemas/types.yaml#/definitions/uint32
    maximum: 256
    description: number of outbound address translation windows
    deprecated: true

required:
  - reg
  - reg-names
+1 −32
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@ description: |

allOf:
  - $ref: /schemas/pci/pci-bus.yaml#
  - $ref: /schemas/pci/snps,dw-pcie-common.yaml#

properties:
  compatible:
@@ -37,44 +38,12 @@ properties:
      enum: [ dbi, dbi2, config, atu, atu_dma, app, appl, elbi, mgmt, ctrl,
              parf, cfg, link, ulreg, smu, mpu, apb, phy ]

  num-lanes:
    description: |
      number of lanes to use (this property should be specified unless
      the link is brought already up in firmware)
    maximum: 16

  reset-gpio:
    description: GPIO pin number of PERST# signal
    maxItems: 1
    deprecated: true

  reset-gpios:
    description: GPIO controlled connection to PERST# signal
    maxItems: 1

  interrupts: true

  interrupt-names: true

  clocks: true

  snps,enable-cdm-check:
    type: boolean
    description: |
      This is a boolean property and if present enables
      automatic checking of CDM (Configuration Dependent Module) registers
      for data corruption. CDM registers include standard PCIe configuration
      space registers, Port Logic registers, DMA and iATU (internal Address
      Translation Unit) registers.

  num-viewport:
    $ref: /schemas/types.yaml#/definitions/uint32
    maximum: 256
    description: |
      number of view ports configured in hardware. If a platform
      does not specify it, the driver autodetects it.
    deprecated: true

additionalProperties: true

required: