1af7cda83SSimon Xue# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2af7cda83SSimon Xue%YAML 1.2 3af7cda83SSimon Xue--- 4af7cda83SSimon Xue$id: http://devicetree.org/schemas/pci/rockchip-dw-pcie.yaml# 5af7cda83SSimon Xue$schema: http://devicetree.org/meta-schemas/core.yaml# 6af7cda83SSimon Xue 7af7cda83SSimon Xuetitle: DesignWare based PCIe controller on Rockchip SoCs 8af7cda83SSimon Xue 9af7cda83SSimon Xuemaintainers: 10af7cda83SSimon Xue - Shawn Lin <shawn.lin@rock-chips.com> 11af7cda83SSimon Xue - Simon Xue <xxm@rock-chips.com> 12af7cda83SSimon Xue - Heiko Stuebner <heiko@sntech.de> 13af7cda83SSimon Xue 14af7cda83SSimon Xuedescription: |+ 15af7cda83SSimon Xue RK3568 SoC PCIe host controller is based on the Synopsys DesignWare 16af7cda83SSimon Xue PCIe IP and thus inherits all the common properties defined in 1798b59129SSerge Semin snps,dw-pcie.yaml. 18af7cda83SSimon Xue 19af7cda83SSimon XueallOf: 20591d3833SSebastian Reichel - $ref: /schemas/pci/snps,dw-pcie.yaml# 21af7cda83SSimon Xue 22af7cda83SSimon Xueproperties: 23af7cda83SSimon Xue compatible: 2413803c86SLucas Tanure oneOf: 2513803c86SLucas Tanure - const: rockchip,rk3568-pcie 2613803c86SLucas Tanure - items: 2713803c86SLucas Tanure - enum: 2813803c86SLucas Tanure - rockchip,rk3588-pcie 29af7cda83SSimon Xue - const: rockchip,rk3568-pcie 30af7cda83SSimon Xue 31af7cda83SSimon Xue reg: 32af7cda83SSimon Xue items: 33af7cda83SSimon Xue - description: Data Bus Interface (DBI) registers 34af7cda83SSimon Xue - description: Rockchip designed configuration registers 35af7cda83SSimon Xue - description: Config registers 36af7cda83SSimon Xue 37af7cda83SSimon Xue reg-names: 38af7cda83SSimon Xue items: 39af7cda83SSimon Xue - const: dbi 40af7cda83SSimon Xue - const: apb 41af7cda83SSimon Xue - const: config 42af7cda83SSimon Xue 43af7cda83SSimon Xue clocks: 443216ceebSSebastian Reichel minItems: 5 45af7cda83SSimon Xue items: 46af7cda83SSimon Xue - description: AHB clock for PCIe master 47af7cda83SSimon Xue - description: AHB clock for PCIe slave 48af7cda83SSimon Xue - description: AHB clock for PCIe dbi 49af7cda83SSimon Xue - description: APB clock for PCIe 50af7cda83SSimon Xue - description: Auxiliary clock for PCIe 513216ceebSSebastian Reichel - description: PIPE clock 52af7cda83SSimon Xue 53af7cda83SSimon Xue clock-names: 543216ceebSSebastian Reichel minItems: 5 55af7cda83SSimon Xue items: 56af7cda83SSimon Xue - const: aclk_mst 57af7cda83SSimon Xue - const: aclk_slv 58af7cda83SSimon Xue - const: aclk_dbi 59af7cda83SSimon Xue - const: pclk 60af7cda83SSimon Xue - const: aux 613216ceebSSebastian Reichel - const: pipe 62af7cda83SSimon Xue 63ebce9f66SSebastian Reichel interrupts: 64ebce9f66SSebastian Reichel items: 65ebce9f66SSebastian Reichel - description: 66ebce9f66SSebastian Reichel Combined system interrupt, which is used to signal the following 67ebce9f66SSebastian Reichel interrupts - phy_link_up, dll_link_up, link_req_rst_not, hp_pme, 68ebce9f66SSebastian Reichel hp, hp_msi, link_auto_bw, link_auto_bw_msi, bw_mgt, bw_mgt_msi, 69ebce9f66SSebastian Reichel edma_wr, edma_rd, dpa_sub_upd, rbar_update, link_eq_req, ep_elbi_app 70ebce9f66SSebastian Reichel - description: 71ebce9f66SSebastian Reichel Combined PM interrupt, which is used to signal the following 72ebce9f66SSebastian Reichel interrupts - linkst_in_l1sub, linkst_in_l1, linkst_in_l2, 73ebce9f66SSebastian Reichel linkst_in_l0s, linkst_out_l1sub, linkst_out_l1, linkst_out_l2, 74ebce9f66SSebastian Reichel linkst_out_l0s, pm_dstate_update 75ebce9f66SSebastian Reichel - description: 76ebce9f66SSebastian Reichel Combined message interrupt, which is used to signal the following 77ebce9f66SSebastian Reichel interrupts - ven_msg, unlock_msg, ltr_msg, cfg_pme, cfg_pme_msi, 78ebce9f66SSebastian Reichel pm_pme, pm_to_ack, pm_turnoff, obff_idle, obff_obff, obff_cpu_active 79ebce9f66SSebastian Reichel - description: 80ebce9f66SSebastian Reichel Combined legacy interrupt, which is used to signal the following 81ebce9f66SSebastian Reichel interrupts - inta, intb, intc, intd 82ebce9f66SSebastian Reichel - description: 83ebce9f66SSebastian Reichel Combined error interrupt, which is used to signal the following 84ebce9f66SSebastian Reichel interrupts - aer_rc_err, aer_rc_err_msi, rx_cpl_timeout, 85ebce9f66SSebastian Reichel tx_cpl_timeout, cor_err_sent, nf_err_sent, f_err_sent, cor_err_rx, 86ebce9f66SSebastian Reichel nf_err_rx, f_err_rx, radm_qoverflow 87ebce9f66SSebastian Reichel 88ebce9f66SSebastian Reichel interrupt-names: 89ebce9f66SSebastian Reichel items: 90ebce9f66SSebastian Reichel - const: sys 91ebce9f66SSebastian Reichel - const: pmc 92ebce9f66SSebastian Reichel - const: msg 93ebce9f66SSebastian Reichel - const: legacy 94ebce9f66SSebastian Reichel - const: err 95ebce9f66SSebastian Reichel 96*7cd8f2abSSebastian Reichel legacy-interrupt-controller: 97*7cd8f2abSSebastian Reichel description: Interrupt controller node for handling legacy PCI interrupts. 98*7cd8f2abSSebastian Reichel type: object 99*7cd8f2abSSebastian Reichel additionalProperties: false 100*7cd8f2abSSebastian Reichel properties: 101*7cd8f2abSSebastian Reichel "#address-cells": 102*7cd8f2abSSebastian Reichel const: 0 103*7cd8f2abSSebastian Reichel 104*7cd8f2abSSebastian Reichel "#interrupt-cells": 105*7cd8f2abSSebastian Reichel const: 1 106*7cd8f2abSSebastian Reichel 107*7cd8f2abSSebastian Reichel interrupt-controller: true 108*7cd8f2abSSebastian Reichel 109*7cd8f2abSSebastian Reichel interrupts: 110*7cd8f2abSSebastian Reichel items: 111*7cd8f2abSSebastian Reichel - description: combined legacy interrupt 112*7cd8f2abSSebastian Reichel required: 113*7cd8f2abSSebastian Reichel - "#address-cells" 114*7cd8f2abSSebastian Reichel - "#interrupt-cells" 115*7cd8f2abSSebastian Reichel - interrupt-controller 116*7cd8f2abSSebastian Reichel - interrupts 117*7cd8f2abSSebastian Reichel 118af7cda83SSimon Xue msi-map: true 119af7cda83SSimon Xue 120af7cda83SSimon Xue num-lanes: true 121af7cda83SSimon Xue 122af7cda83SSimon Xue phys: 123af7cda83SSimon Xue maxItems: 1 124af7cda83SSimon Xue 125af7cda83SSimon Xue phy-names: 126af7cda83SSimon Xue const: pcie-phy 127af7cda83SSimon Xue 128af7cda83SSimon Xue power-domains: 129af7cda83SSimon Xue maxItems: 1 130af7cda83SSimon Xue 131af7cda83SSimon Xue ranges: 1323216ceebSSebastian Reichel minItems: 2 1333216ceebSSebastian Reichel maxItems: 3 134af7cda83SSimon Xue 135af7cda83SSimon Xue resets: 1363216ceebSSebastian Reichel minItems: 1 1373216ceebSSebastian Reichel maxItems: 2 138af7cda83SSimon Xue 139af7cda83SSimon Xue reset-names: 1403216ceebSSebastian Reichel oneOf: 1413216ceebSSebastian Reichel - const: pipe 1423216ceebSSebastian Reichel - items: 1433216ceebSSebastian Reichel - const: pwr 1443216ceebSSebastian Reichel - const: pipe 145af7cda83SSimon Xue 146af7cda83SSimon Xue vpcie3v3-supply: true 147af7cda83SSimon Xue 148af7cda83SSimon Xuerequired: 149af7cda83SSimon Xue - compatible 150af7cda83SSimon Xue - reg 151af7cda83SSimon Xue - reg-names 152af7cda83SSimon Xue - clocks 153af7cda83SSimon Xue - clock-names 154af7cda83SSimon Xue - msi-map 155af7cda83SSimon Xue - num-lanes 156af7cda83SSimon Xue - phys 157af7cda83SSimon Xue - phy-names 158af7cda83SSimon Xue - power-domains 159af7cda83SSimon Xue - resets 160af7cda83SSimon Xue - reset-names 161af7cda83SSimon Xue 162af7cda83SSimon XueunevaluatedProperties: false 163af7cda83SSimon Xue 164af7cda83SSimon Xueexamples: 165af7cda83SSimon Xue - | 166ebce9f66SSebastian Reichel #include <dt-bindings/interrupt-controller/arm-gic.h> 167af7cda83SSimon Xue 168af7cda83SSimon Xue bus { 169af7cda83SSimon Xue #address-cells = <2>; 170af7cda83SSimon Xue #size-cells = <2>; 171af7cda83SSimon Xue 172af7cda83SSimon Xue pcie3x2: pcie@fe280000 { 173931262e6SPeter Geis compatible = "rockchip,rk3568-pcie"; 174af7cda83SSimon Xue reg = <0x3 0xc0800000 0x0 0x390000>, 175af7cda83SSimon Xue <0x0 0xfe280000 0x0 0x10000>, 176af7cda83SSimon Xue <0x3 0x80000000 0x0 0x100000>; 177af7cda83SSimon Xue reg-names = "dbi", "apb", "config"; 178af7cda83SSimon Xue bus-range = <0x20 0x2f>; 179af7cda83SSimon Xue clocks = <&cru 143>, <&cru 144>, 180af7cda83SSimon Xue <&cru 145>, <&cru 146>, 181af7cda83SSimon Xue <&cru 147>; 182af7cda83SSimon Xue clock-names = "aclk_mst", "aclk_slv", 183af7cda83SSimon Xue "aclk_dbi", "pclk", 184af7cda83SSimon Xue "aux"; 185af7cda83SSimon Xue device_type = "pci"; 186ebce9f66SSebastian Reichel interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, 187ebce9f66SSebastian Reichel <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>, 188ebce9f66SSebastian Reichel <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>, 189ebce9f66SSebastian Reichel <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>, 190ebce9f66SSebastian Reichel <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>; 191ebce9f66SSebastian Reichel interrupt-names = "sys", "pmc", "msg", "legacy", "err"; 192af7cda83SSimon Xue linux,pci-domain = <2>; 193af7cda83SSimon Xue max-link-speed = <2>; 194af7cda83SSimon Xue msi-map = <0x2000 &its 0x2000 0x1000>; 195af7cda83SSimon Xue num-lanes = <2>; 196af7cda83SSimon Xue phys = <&pcie30phy>; 197af7cda83SSimon Xue phy-names = "pcie-phy"; 198af7cda83SSimon Xue power-domains = <&power 15>; 199af7cda83SSimon Xue ranges = <0x81000000 0x0 0x80800000 0x3 0x80800000 0x0 0x100000>, 200af7cda83SSimon Xue <0x83000000 0x0 0x80900000 0x3 0x80900000 0x0 0x3f700000>; 201af7cda83SSimon Xue resets = <&cru 193>; 202af7cda83SSimon Xue reset-names = "pipe"; 203af7cda83SSimon Xue #address-cells = <3>; 204af7cda83SSimon Xue #size-cells = <2>; 205*7cd8f2abSSebastian Reichel 206*7cd8f2abSSebastian Reichel legacy-interrupt-controller { 207*7cd8f2abSSebastian Reichel interrupt-controller; 208*7cd8f2abSSebastian Reichel #address-cells = <0>; 209*7cd8f2abSSebastian Reichel #interrupt-cells = <1>; 210*7cd8f2abSSebastian Reichel interrupt-parent = <&gic>; 211*7cd8f2abSSebastian Reichel interrupts = <GIC_SPI 72 IRQ_TYPE_EDGE_RISING>; 212*7cd8f2abSSebastian Reichel }; 213af7cda83SSimon Xue }; 214af7cda83SSimon Xue }; 215af7cda83SSimon Xue... 216