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