1 # SPDX-License-Identifier: GPL-2.0
4 $id: http://devicetree.org/schemas/pci/snps,dw-pcie-ep.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Synopsys DesignWare PCIe endpoint interface
10 - Jingoo Han <jingoohan1@gmail.com>
11 - Gustavo Pimentel <gustavo.pimentel@synopsys.com>
14 Synopsys DesignWare PCIe host controller endpoint
16 # Please create a separate DT-schema for your DWC PCIe Endpoint controller
17 # and make sure it's assigned with the vendor-specific compatible string.
21 const: snps,dw-pcie-ep
26 - $ref: /schemas/pci/pci-ep.yaml#
27 - $ref: /schemas/pci/snps,dw-pcie-common.yaml#
32 DBI, DBI2 reg-spaces and outbound memory window are required for the
33 normal controller functioning. iATU memory IO region is also required
34 if the space is unrolled (IP-core version >= 4.80a).
44 Basic DWC PCIe controller configuration-space accessible over
45 the DBI interface. This memory space is either activated with
46 CDM/ELBI = 0 and CS2 = 0 or is a contiguous memory region
47 with all spaces. Note iATU/eDMA CSRs are indirectly accessible
48 via the PL viewports on the DWC PCIe controllers older than
52 Shadow DWC PCIe config-space registers. This space is selected
53 by setting CDM/ELBI = 0 and CS2 = 1. This is an intermix of
54 the PCI-SIG PCIe CFG-space with the shadow registers for some
55 PCI Header space, PCI Standard and Extended Structures. It's
56 mainly relevant for the end-point controller configuration,
57 but still there are some shadow registers available for the
61 External Local Bus registers. It's an application-dependent
62 registers normally defined by the platform engineers. The space
63 can be selected by setting CDM/ELBI = 1 and CS2 = 0 wires or can
64 be accessed over some platform-specific means (for instance
65 as a part of a system controller).
68 iATU/eDMA registers common for all device functions. It's an
69 unrolled memory space with the internal Address Translation
70 Unit and Enhanced DMA, which is selected by setting CDM/ELBI = 1
71 and CS2 = 1. For IP-core releases prior v4.80a, these registers
72 have been programmed via an indirect addressing scheme using a
73 set of viewport CSRs mapped into the PL space. Note iATU is
74 normally mapped to the 0x0 address of this region, while eDMA
75 is available at 0x80000 base address.
78 Platform-specific eDMA registers. Some platforms may have eDMA
79 CSRs mapped in a non-standard base address. The registers offset
80 can be changed or the MS/LS-bits of the address can be attached
81 in an additional RTL block before the MEM-IO transactions reach
82 the DW PCIe slave interface.
85 PHY/PCS configuration registers. Some platforms can have the
86 PCS and PHY CSRs accessible over a dedicated memory mapped
87 region, but mainly these registers are indirectly accessible
88 either by means of the embedded PHY viewport schema or by some
89 platform-specific method.
92 Outbound iATU-capable memory-region which will be used to
93 generate various application-specific traffic on the PCIe bus
94 hierarchy. It's usage scenario depends on the endpoint
95 functionality, for instance it can be used to create MSI(X)
99 Vendor-specific CSR names. Consider using the generic names above
102 - description: See native 'elbi/app' CSR region for details.
103 enum: [ apb, link, appl ]
104 - description: See native 'atu' CSR region for details.
114 There is no mandatory IRQ signals for the normal controller functioning,
115 but in addition to the native set the platforms may have a link- or
116 PM-related IRQs specified.
126 Controller request to read or write virtual product data
127 from/to the VPD capability registers.
130 Link Equalization Request flag is set in the Link Status 2
131 register (applicable if the corresponding IRQ is enabled in
132 the Link Control 3 register).
135 Indicates that the eDMA Tx/Rx transfer is complete or that an
136 error has occurred on the corresponding channel. eDMA can have
137 eight Tx (Write) and Rx (Read) eDMA channels thus supporting up
138 to 16 IRQ signals all together. Write eDMA channels shall go
139 first in the ordered row as per default edma_int[*] bus setup.
140 pattern: '^dma([0-9]|1[0-5])?$'
142 PCIe protocol correctable error or a Data Path protection
143 correctable error is detected by the automotive/safety
147 Indicates that the internal safety mechanism has detected an
151 Application-specific IRQ raised depending on the vendor-specific
155 Interrupts triggered when the controller itself (in Endpoint mode)
156 has sent an Assert_INT{A,B,C,D}/Desassert_INT{A,B,C,D} message to
158 pattern: "^tx_int(a|b|c|d)$"
160 Combined interrupt signal raised when the controller has sent an
161 Assert_INT{A,B,C,D} message. See "^tx_int(a|b|c|d)$" for details.
164 Vendor-specific IRQ names. Consider using the generic names above
167 - description: See native "app" IRQ for details
168 enum: [ intr, sys, pmc, msg, err ]
178 additionalProperties: true
183 compatible = "snps,dw-pcie-ep";
184 reg = <0xdfc00000 0x0001000>, /* IP registers 1 */
185 <0xdfc01000 0x0001000>, /* IP registers 2 */
186 <0xd0000000 0x2000000>; /* Configuration space */
187 reg-names = "dbi", "dbi2", "addr_space";
189 interrupts = <23>, <24>;
190 interrupt-names = "dma0", "dma1";
192 clocks = <&sys_clk 12>, <&sys_clk 24>;
193 clock-names = "dbi", "ref";
195 resets = <&sys_rst 12>, <&sys_rst 24>;
196 reset-names = "dbi", "phy";
198 phys = <&pcie_phy0>, <&pcie_phy1>, <&pcie_phy2>, <&pcie_phy3>;
199 phy-names = "pcie0", "pcie1", "pcie2", "pcie3";
201 max-link-speed = <3>;
202 max-functions = /bits/ 8 <4>;