1*b80b848bSNeil Armstrong# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*b80b848bSNeil Armstrong%YAML 1.2 3*b80b848bSNeil Armstrong--- 4*b80b848bSNeil Armstrong$id: http://devicetree.org/schemas/pci/amlogic,axg-pcie.yaml# 5*b80b848bSNeil Armstrong$schema: http://devicetree.org/meta-schemas/core.yaml# 6*b80b848bSNeil Armstrong 7*b80b848bSNeil Armstrongtitle: Amlogic Meson AXG DWC PCIe SoC controller 8*b80b848bSNeil Armstrong 9*b80b848bSNeil Armstrongmaintainers: 10*b80b848bSNeil Armstrong - Neil Armstrong <neil.armstrong@linaro.org> 11*b80b848bSNeil Armstrong 12*b80b848bSNeil Armstrongdescription: 13*b80b848bSNeil Armstrong Amlogic Meson PCIe host controller is based on the Synopsys DesignWare PCI core. 14*b80b848bSNeil Armstrong 15*b80b848bSNeil ArmstrongallOf: 16*b80b848bSNeil Armstrong - $ref: /schemas/pci/pci-bus.yaml# 17*b80b848bSNeil Armstrong - $ref: /schemas/pci/snps,dw-pcie-common.yaml# 18*b80b848bSNeil Armstrong 19*b80b848bSNeil Armstrong# We need a select here so we don't match all nodes with 'snps,dw-pcie' 20*b80b848bSNeil Armstrongselect: 21*b80b848bSNeil Armstrong properties: 22*b80b848bSNeil Armstrong compatible: 23*b80b848bSNeil Armstrong enum: 24*b80b848bSNeil Armstrong - amlogic,axg-pcie 25*b80b848bSNeil Armstrong - amlogic,g12a-pcie 26*b80b848bSNeil Armstrong required: 27*b80b848bSNeil Armstrong - compatible 28*b80b848bSNeil Armstrong 29*b80b848bSNeil Armstrongproperties: 30*b80b848bSNeil Armstrong compatible: 31*b80b848bSNeil Armstrong items: 32*b80b848bSNeil Armstrong - enum: 33*b80b848bSNeil Armstrong - amlogic,axg-pcie 34*b80b848bSNeil Armstrong - amlogic,g12a-pcie 35*b80b848bSNeil Armstrong - const: snps,dw-pcie 36*b80b848bSNeil Armstrong 37*b80b848bSNeil Armstrong reg: 38*b80b848bSNeil Armstrong items: 39*b80b848bSNeil Armstrong - description: External local bus interface registers 40*b80b848bSNeil Armstrong - description: Meson designed configuration registers 41*b80b848bSNeil Armstrong - description: PCIe configuration space 42*b80b848bSNeil Armstrong 43*b80b848bSNeil Armstrong reg-names: 44*b80b848bSNeil Armstrong items: 45*b80b848bSNeil Armstrong - const: elbi 46*b80b848bSNeil Armstrong - const: cfg 47*b80b848bSNeil Armstrong - const: config 48*b80b848bSNeil Armstrong 49*b80b848bSNeil Armstrong interrupts: 50*b80b848bSNeil Armstrong maxItems: 1 51*b80b848bSNeil Armstrong 52*b80b848bSNeil Armstrong clocks: 53*b80b848bSNeil Armstrong items: 54*b80b848bSNeil Armstrong - description: PCIe GEN 100M PLL clock 55*b80b848bSNeil Armstrong - description: PCIe RC clock gate 56*b80b848bSNeil Armstrong - description: PCIe PHY clock 57*b80b848bSNeil Armstrong 58*b80b848bSNeil Armstrong clock-names: 59*b80b848bSNeil Armstrong items: 60*b80b848bSNeil Armstrong - const: pclk 61*b80b848bSNeil Armstrong - const: port 62*b80b848bSNeil Armstrong - const: general 63*b80b848bSNeil Armstrong 64*b80b848bSNeil Armstrong phys: 65*b80b848bSNeil Armstrong maxItems: 1 66*b80b848bSNeil Armstrong 67*b80b848bSNeil Armstrong phy-names: 68*b80b848bSNeil Armstrong const: pcie 69*b80b848bSNeil Armstrong 70*b80b848bSNeil Armstrong resets: 71*b80b848bSNeil Armstrong items: 72*b80b848bSNeil Armstrong - description: Port Reset 73*b80b848bSNeil Armstrong - description: Shared APB reset 74*b80b848bSNeil Armstrong 75*b80b848bSNeil Armstrong reset-names: 76*b80b848bSNeil Armstrong items: 77*b80b848bSNeil Armstrong - const: port 78*b80b848bSNeil Armstrong - const: apb 79*b80b848bSNeil Armstrong 80*b80b848bSNeil Armstrong num-lanes: 81*b80b848bSNeil Armstrong const: 1 82*b80b848bSNeil Armstrong 83*b80b848bSNeil Armstrong power-domains: 84*b80b848bSNeil Armstrong maxItems: 1 85*b80b848bSNeil Armstrong 86*b80b848bSNeil Armstrongrequired: 87*b80b848bSNeil Armstrong - compatible 88*b80b848bSNeil Armstrong - reg 89*b80b848bSNeil Armstrong - reg-names 90*b80b848bSNeil Armstrong - interrupts 91*b80b848bSNeil Armstrong - clock 92*b80b848bSNeil Armstrong - clock-names 93*b80b848bSNeil Armstrong - "#address-cells" 94*b80b848bSNeil Armstrong - "#size-cells" 95*b80b848bSNeil Armstrong - "#interrupt-cells" 96*b80b848bSNeil Armstrong - interrupt-map 97*b80b848bSNeil Armstrong - interrupt-map-mask 98*b80b848bSNeil Armstrong - ranges 99*b80b848bSNeil Armstrong - bus-range 100*b80b848bSNeil Armstrong - device_type 101*b80b848bSNeil Armstrong - num-lanes 102*b80b848bSNeil Armstrong - phys 103*b80b848bSNeil Armstrong - phy-names 104*b80b848bSNeil Armstrong - resets 105*b80b848bSNeil Armstrong - reset-names 106*b80b848bSNeil Armstrong 107*b80b848bSNeil ArmstrongunevaluatedProperties: false 108*b80b848bSNeil Armstrong 109*b80b848bSNeil Armstrongexamples: 110*b80b848bSNeil Armstrong - | 111*b80b848bSNeil Armstrong #include <dt-bindings/interrupt-controller/irq.h> 112*b80b848bSNeil Armstrong #include <dt-bindings/interrupt-controller/arm-gic.h> 113*b80b848bSNeil Armstrong pcie: pcie@f9800000 { 114*b80b848bSNeil Armstrong compatible = "amlogic,axg-pcie", "snps,dw-pcie"; 115*b80b848bSNeil Armstrong reg = <0xf9800000 0x400000>, <0xff646000 0x2000>, <0xf9f00000 0x100000>; 116*b80b848bSNeil Armstrong reg-names = "elbi", "cfg", "config"; 117*b80b848bSNeil Armstrong interrupts = <GIC_SPI 177 IRQ_TYPE_EDGE_RISING>; 118*b80b848bSNeil Armstrong clocks = <&pclk>, <&clk_port>, <&clk_phy>; 119*b80b848bSNeil Armstrong clock-names = "pclk", "port", "general"; 120*b80b848bSNeil Armstrong resets = <&reset_pcie_port>, <&reset_pcie_apb>; 121*b80b848bSNeil Armstrong reset-names = "port", "apb"; 122*b80b848bSNeil Armstrong phys = <&pcie_phy>; 123*b80b848bSNeil Armstrong phy-names = "pcie"; 124*b80b848bSNeil Armstrong #interrupt-cells = <1>; 125*b80b848bSNeil Armstrong interrupt-map-mask = <0 0 0 0>; 126*b80b848bSNeil Armstrong interrupt-map = <0 0 0 0 &gic GIC_SPI 179 IRQ_TYPE_EDGE_RISING>; 127*b80b848bSNeil Armstrong bus-range = <0x0 0xff>; 128*b80b848bSNeil Armstrong #address-cells = <3>; 129*b80b848bSNeil Armstrong #size-cells = <2>; 130*b80b848bSNeil Armstrong device_type = "pci"; 131*b80b848bSNeil Armstrong num-lanes = <1>; 132*b80b848bSNeil Armstrong ranges = <0x82000000 0 0 0xf9c00000 0 0x00300000>; 133*b80b848bSNeil Armstrong }; 134*b80b848bSNeil Armstrong... 135