1*a202f09eSInochi Amaoto# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*a202f09eSInochi Amaoto%YAML 1.2 3*a202f09eSInochi Amaoto--- 4*a202f09eSInochi Amaoto$id: http://devicetree.org/schemas/pci/sophgo,sg2044-pcie.yaml# 5*a202f09eSInochi Amaoto$schema: http://devicetree.org/meta-schemas/core.yaml# 6*a202f09eSInochi Amaoto 7*a202f09eSInochi Amaototitle: DesignWare based PCIe Root Complex controller on Sophgo SoCs 8*a202f09eSInochi Amaoto 9*a202f09eSInochi Amaotomaintainers: 10*a202f09eSInochi Amaoto - Inochi Amaoto <inochiama@gmail.com> 11*a202f09eSInochi Amaoto 12*a202f09eSInochi Amaotodescription: 13*a202f09eSInochi Amaoto SG2044 SoC PCIe Root Complex controller is based on the Synopsys DesignWare 14*a202f09eSInochi Amaoto PCIe IP and thus inherits all the common properties defined in 15*a202f09eSInochi Amaoto snps,dw-pcie.yaml. 16*a202f09eSInochi Amaoto 17*a202f09eSInochi AmaotoallOf: 18*a202f09eSInochi Amaoto - $ref: /schemas/pci/pci-host-bridge.yaml# 19*a202f09eSInochi Amaoto - $ref: /schemas/pci/snps,dw-pcie.yaml# 20*a202f09eSInochi Amaoto 21*a202f09eSInochi Amaotoproperties: 22*a202f09eSInochi Amaoto compatible: 23*a202f09eSInochi Amaoto const: sophgo,sg2044-pcie 24*a202f09eSInochi Amaoto 25*a202f09eSInochi Amaoto reg: 26*a202f09eSInochi Amaoto items: 27*a202f09eSInochi Amaoto - description: Data Bus Interface (DBI) registers 28*a202f09eSInochi Amaoto - description: iATU registers 29*a202f09eSInochi Amaoto - description: Config registers 30*a202f09eSInochi Amaoto - description: Sophgo designed configuration registers 31*a202f09eSInochi Amaoto 32*a202f09eSInochi Amaoto reg-names: 33*a202f09eSInochi Amaoto items: 34*a202f09eSInochi Amaoto - const: dbi 35*a202f09eSInochi Amaoto - const: atu 36*a202f09eSInochi Amaoto - const: config 37*a202f09eSInochi Amaoto - const: app 38*a202f09eSInochi Amaoto 39*a202f09eSInochi Amaoto clocks: 40*a202f09eSInochi Amaoto items: 41*a202f09eSInochi Amaoto - description: core clk 42*a202f09eSInochi Amaoto 43*a202f09eSInochi Amaoto clock-names: 44*a202f09eSInochi Amaoto items: 45*a202f09eSInochi Amaoto - const: core 46*a202f09eSInochi Amaoto 47*a202f09eSInochi Amaoto interrupt-controller: 48*a202f09eSInochi Amaoto description: Interrupt controller node for handling legacy PCI interrupts. 49*a202f09eSInochi Amaoto type: object 50*a202f09eSInochi Amaoto 51*a202f09eSInochi Amaoto properties: 52*a202f09eSInochi Amaoto "#address-cells": 53*a202f09eSInochi Amaoto const: 0 54*a202f09eSInochi Amaoto 55*a202f09eSInochi Amaoto "#interrupt-cells": 56*a202f09eSInochi Amaoto const: 1 57*a202f09eSInochi Amaoto 58*a202f09eSInochi Amaoto interrupt-controller: true 59*a202f09eSInochi Amaoto 60*a202f09eSInochi Amaoto interrupts: 61*a202f09eSInochi Amaoto items: 62*a202f09eSInochi Amaoto - description: combined legacy interrupt 63*a202f09eSInochi Amaoto 64*a202f09eSInochi Amaoto required: 65*a202f09eSInochi Amaoto - "#address-cells" 66*a202f09eSInochi Amaoto - "#interrupt-cells" 67*a202f09eSInochi Amaoto - interrupt-controller 68*a202f09eSInochi Amaoto - interrupts 69*a202f09eSInochi Amaoto 70*a202f09eSInochi Amaoto additionalProperties: false 71*a202f09eSInochi Amaoto 72*a202f09eSInochi Amaoto msi-parent: true 73*a202f09eSInochi Amaoto 74*a202f09eSInochi Amaoto ranges: 75*a202f09eSInochi Amaoto maxItems: 5 76*a202f09eSInochi Amaoto 77*a202f09eSInochi Amaotorequired: 78*a202f09eSInochi Amaoto - compatible 79*a202f09eSInochi Amaoto - reg 80*a202f09eSInochi Amaoto - clocks 81*a202f09eSInochi Amaoto 82*a202f09eSInochi AmaotounevaluatedProperties: false 83*a202f09eSInochi Amaoto 84*a202f09eSInochi Amaotoexamples: 85*a202f09eSInochi Amaoto - | 86*a202f09eSInochi Amaoto #include <dt-bindings/interrupt-controller/irq.h> 87*a202f09eSInochi Amaoto 88*a202f09eSInochi Amaoto soc { 89*a202f09eSInochi Amaoto #address-cells = <2>; 90*a202f09eSInochi Amaoto #size-cells = <2>; 91*a202f09eSInochi Amaoto 92*a202f09eSInochi Amaoto pcie@6c00400000 { 93*a202f09eSInochi Amaoto compatible = "sophgo,sg2044-pcie"; 94*a202f09eSInochi Amaoto reg = <0x6c 0x00400000 0x0 0x00001000>, 95*a202f09eSInochi Amaoto <0x6c 0x00700000 0x0 0x00004000>, 96*a202f09eSInochi Amaoto <0x40 0x00000000 0x0 0x00001000>, 97*a202f09eSInochi Amaoto <0x6c 0x00780c00 0x0 0x00000400>; 98*a202f09eSInochi Amaoto reg-names = "dbi", "atu", "config", "app"; 99*a202f09eSInochi Amaoto #address-cells = <3>; 100*a202f09eSInochi Amaoto #size-cells = <2>; 101*a202f09eSInochi Amaoto bus-range = <0x00 0xff>; 102*a202f09eSInochi Amaoto clocks = <&clk 0>; 103*a202f09eSInochi Amaoto clock-names = "core"; 104*a202f09eSInochi Amaoto device_type = "pci"; 105*a202f09eSInochi Amaoto linux,pci-domain = <0>; 106*a202f09eSInochi Amaoto msi-parent = <&msi>; 107*a202f09eSInochi Amaoto ranges = <0x01000000 0x0 0x00000000 0x40 0x10000000 0x0 0x00200000>, 108*a202f09eSInochi Amaoto <0x42000000 0x0 0x00000000 0x0 0x00000000 0x0 0x04000000>, 109*a202f09eSInochi Amaoto <0x02000000 0x0 0x04000000 0x0 0x04000000 0x0 0x04000000>, 110*a202f09eSInochi Amaoto <0x43000000 0x42 0x00000000 0x42 0x00000000 0x2 0x00000000>, 111*a202f09eSInochi Amaoto <0x03000000 0x41 0x00000000 0x41 0x00000000 0x1 0x00000000>; 112*a202f09eSInochi Amaoto 113*a202f09eSInochi Amaoto interrupt-controller { 114*a202f09eSInochi Amaoto #address-cells = <0>; 115*a202f09eSInochi Amaoto #interrupt-cells = <1>; 116*a202f09eSInochi Amaoto interrupt-controller; 117*a202f09eSInochi Amaoto interrupt-parent = <&intc>; 118*a202f09eSInochi Amaoto interrupts = <64 IRQ_TYPE_LEVEL_HIGH>; 119*a202f09eSInochi Amaoto }; 120*a202f09eSInochi Amaoto }; 121*a202f09eSInochi Amaoto }; 122*a202f09eSInochi Amaoto... 123