# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/pci/rockchip-dw-pcie.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: DesignWare based PCIe controller on Rockchip SoCs maintainers: - Shawn Lin - Simon Xue - Heiko Stuebner description: |+ RK3568 SoC PCIe host controller is based on the Synopsys DesignWare PCIe IP and thus inherits all the common properties defined in snps,dw-pcie.yaml. allOf: - $ref: /schemas/pci/snps,dw-pcie.yaml# properties: compatible: oneOf: - const: rockchip,rk3568-pcie - items: - enum: - rockchip,rk3588-pcie - const: rockchip,rk3568-pcie reg: items: - description: Data Bus Interface (DBI) registers - description: Rockchip designed configuration registers - description: Config registers reg-names: items: - const: dbi - const: apb - const: config clocks: minItems: 5 items: - description: AHB clock for PCIe master - description: AHB clock for PCIe slave - description: AHB clock for PCIe dbi - description: APB clock for PCIe - description: Auxiliary clock for PCIe - description: PIPE clock - description: Reference clock for PCIe clock-names: minItems: 5 items: - const: aclk_mst - const: aclk_slv - const: aclk_dbi - const: pclk - const: aux - const: pipe - const: ref interrupts: items: - description: Combined system interrupt, which is used to signal the following interrupts - phy_link_up, dll_link_up, link_req_rst_not, hp_pme, hp, hp_msi, link_auto_bw, link_auto_bw_msi, bw_mgt, bw_mgt_msi, edma_wr, edma_rd, dpa_sub_upd, rbar_update, link_eq_req, ep_elbi_app - description: Combined PM interrupt, which is used to signal the following interrupts - linkst_in_l1sub, linkst_in_l1, linkst_in_l2, linkst_in_l0s, linkst_out_l1sub, linkst_out_l1, linkst_out_l2, linkst_out_l0s, pm_dstate_update - description: Combined message interrupt, which is used to signal the following interrupts - ven_msg, unlock_msg, ltr_msg, cfg_pme, cfg_pme_msi, pm_pme, pm_to_ack, pm_turnoff, obff_idle, obff_obff, obff_cpu_active - description: Combined legacy interrupt, which is used to signal the following interrupts - inta, intb, intc, intd - description: Combined error interrupt, which is used to signal the following interrupts - aer_rc_err, aer_rc_err_msi, rx_cpl_timeout, tx_cpl_timeout, cor_err_sent, nf_err_sent, f_err_sent, cor_err_rx, nf_err_rx, f_err_rx, radm_qoverflow interrupt-names: items: - const: sys - const: pmc - const: msg - const: legacy - const: err legacy-interrupt-controller: description: Interrupt controller node for handling legacy PCI interrupts. type: object additionalProperties: false properties: "#address-cells": const: 0 "#interrupt-cells": const: 1 interrupt-controller: true interrupts: items: - description: combined legacy interrupt required: - "#address-cells" - "#interrupt-cells" - interrupt-controller - interrupts msi-map: true num-lanes: true phys: maxItems: 1 phy-names: const: pcie-phy power-domains: maxItems: 1 ranges: minItems: 2 maxItems: 3 resets: minItems: 1 maxItems: 2 reset-names: oneOf: - const: pipe - items: - const: pwr - const: pipe vpcie3v3-supply: true required: - compatible - reg - reg-names - clocks - clock-names - msi-map - num-lanes - phys - phy-names - power-domains - resets - reset-names unevaluatedProperties: false examples: - | #include bus { #address-cells = <2>; #size-cells = <2>; pcie3x2: pcie@fe280000 { compatible = "rockchip,rk3568-pcie"; reg = <0x3 0xc0800000 0x0 0x390000>, <0x0 0xfe280000 0x0 0x10000>, <0x3 0x80000000 0x0 0x100000>; reg-names = "dbi", "apb", "config"; bus-range = <0x20 0x2f>; clocks = <&cru 143>, <&cru 144>, <&cru 145>, <&cru 146>, <&cru 147>; clock-names = "aclk_mst", "aclk_slv", "aclk_dbi", "pclk", "aux"; device_type = "pci"; interrupts = , , , , ; interrupt-names = "sys", "pmc", "msg", "legacy", "err"; linux,pci-domain = <2>; max-link-speed = <2>; msi-map = <0x2000 &its 0x2000 0x1000>; num-lanes = <2>; phys = <&pcie30phy>; phy-names = "pcie-phy"; power-domains = <&power 15>; ranges = <0x81000000 0x0 0x80800000 0x3 0x80800000 0x0 0x100000>, <0x83000000 0x0 0x80900000 0x3 0x80900000 0x0 0x3f700000>; resets = <&cru 193>; reset-names = "pipe"; #address-cells = <3>; #size-cells = <2>; legacy-interrupt-controller { interrupt-controller; #address-cells = <0>; #interrupt-cells = <1>; interrupt-parent = <&gic>; interrupts = ; }; }; }; ...