1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/pci/rockchip-dw-pcie.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: DesignWare based PCIe Root Complex controller on Rockchip SoCs 8 9maintainers: 10 - Shawn Lin <shawn.lin@rock-chips.com> 11 - Simon Xue <xxm@rock-chips.com> 12 - Heiko Stuebner <heiko@sntech.de> 13 14description: |+ 15 RK3568 SoC PCIe Root Complex controller is based on the Synopsys DesignWare 16 PCIe IP and thus inherits all the common properties defined in 17 snps,dw-pcie.yaml. 18 19properties: 20 compatible: 21 oneOf: 22 - const: rockchip,rk3568-pcie 23 - items: 24 - enum: 25 - rockchip,rk3562-pcie 26 - rockchip,rk3576-pcie 27 - rockchip,rk3588-pcie 28 - const: rockchip,rk3568-pcie 29 30 reg: 31 items: 32 - description: Data Bus Interface (DBI) registers 33 - description: Rockchip designed configuration registers 34 - description: Config registers 35 36 reg-names: 37 items: 38 - const: dbi 39 - const: apb 40 - const: config 41 42 legacy-interrupt-controller: 43 description: Interrupt controller node for handling legacy PCI interrupts. 44 type: object 45 additionalProperties: false 46 properties: 47 "#address-cells": 48 const: 0 49 50 "#interrupt-cells": 51 const: 1 52 53 interrupt-controller: true 54 55 interrupts: 56 items: 57 - description: combined legacy interrupt 58 required: 59 - "#address-cells" 60 - "#interrupt-cells" 61 - interrupt-controller 62 - interrupts 63 64 msi-map: true 65 66 ranges: 67 minItems: 2 68 maxItems: 3 69 70 vpcie3v3-supply: true 71 72allOf: 73 - $ref: /schemas/pci/snps,dw-pcie.yaml# 74 - $ref: /schemas/pci/rockchip-dw-pcie-common.yaml# 75 - if: 76 not: 77 properties: 78 compatible: 79 contains: 80 enum: 81 - rockchip,rk3562-pcie 82 - rockchip,rk3576-pcie 83 then: 84 required: 85 - msi-map 86 87 - if: 88 properties: 89 compatible: 90 contains: 91 enum: 92 - rockchip,rk3562-pcie 93 - rockchip,rk3576-pcie 94 then: 95 properties: 96 interrupts: 97 minItems: 6 98 maxItems: 6 99 interrupt-names: 100 items: 101 - const: sys 102 - const: pmc 103 - const: msg 104 - const: legacy 105 - const: err 106 - const: msi 107 else: 108 properties: 109 interrupts: 110 minItems: 5 111 interrupt-names: 112 minItems: 5 113 items: 114 - const: sys 115 - const: pmc 116 - const: msg 117 - const: legacy 118 - const: err 119 - const: dma0 120 - const: dma1 121 - const: dma2 122 - const: dma3 123 124 125unevaluatedProperties: false 126 127examples: 128 - | 129 #include <dt-bindings/interrupt-controller/arm-gic.h> 130 131 bus { 132 #address-cells = <2>; 133 #size-cells = <2>; 134 135 pcie3x2: pcie@fe280000 { 136 compatible = "rockchip,rk3568-pcie"; 137 reg = <0x3 0xc0800000 0x0 0x390000>, 138 <0x0 0xfe280000 0x0 0x10000>, 139 <0x3 0x80000000 0x0 0x100000>; 140 reg-names = "dbi", "apb", "config"; 141 bus-range = <0x20 0x2f>; 142 clocks = <&cru 143>, <&cru 144>, 143 <&cru 145>, <&cru 146>, 144 <&cru 147>; 145 clock-names = "aclk_mst", "aclk_slv", 146 "aclk_dbi", "pclk", 147 "aux"; 148 device_type = "pci"; 149 interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, 150 <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>, 151 <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>, 152 <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>, 153 <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>; 154 interrupt-names = "sys", "pmc", "msg", "legacy", "err"; 155 linux,pci-domain = <2>; 156 max-link-speed = <2>; 157 msi-map = <0x2000 &its 0x2000 0x1000>; 158 num-lanes = <2>; 159 phys = <&pcie30phy>; 160 phy-names = "pcie-phy"; 161 power-domains = <&power 15>; 162 ranges = <0x81000000 0x0 0x80800000 0x3 0x80800000 0x0 0x100000>, 163 <0x83000000 0x0 0x80900000 0x3 0x80900000 0x0 0x3f700000>; 164 resets = <&cru 193>; 165 reset-names = "pipe"; 166 #address-cells = <3>; 167 #size-cells = <2>; 168 169 legacy-interrupt-controller { 170 interrupt-controller; 171 #address-cells = <0>; 172 #interrupt-cells = <1>; 173 interrupt-parent = <&gic>; 174 interrupts = <GIC_SPI 72 IRQ_TYPE_EDGE_RISING>; 175 }; 176 }; 177 }; 178... 179