1*d5b0e70fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*d5b0e70fSEmmanuel Vadot%YAML 1.2 3*d5b0e70fSEmmanuel Vadot--- 4*d5b0e70fSEmmanuel Vadot$id: http://devicetree.org/schemas/pci/socionext,uniphier-pcie.yaml# 5*d5b0e70fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*d5b0e70fSEmmanuel Vadot 7*d5b0e70fSEmmanuel Vadottitle: Socionext UniPhier PCIe host controller 8*d5b0e70fSEmmanuel Vadot 9*d5b0e70fSEmmanuel Vadotdescription: | 10*d5b0e70fSEmmanuel Vadot UniPhier PCIe host controller is based on the Synopsys DesignWare 11*d5b0e70fSEmmanuel Vadot PCI core. It shares common features with the PCIe DesignWare core and 12*d5b0e70fSEmmanuel Vadot inherits common properties defined in 13*d5b0e70fSEmmanuel Vadot Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml. 14*d5b0e70fSEmmanuel Vadot 15*d5b0e70fSEmmanuel Vadotmaintainers: 16*d5b0e70fSEmmanuel Vadot - Kunihiko Hayashi <hayashi.kunihiko@socionext.com> 17*d5b0e70fSEmmanuel Vadot 18*d5b0e70fSEmmanuel VadotallOf: 19*d5b0e70fSEmmanuel Vadot - $ref: /schemas/pci/snps,dw-pcie.yaml# 20*d5b0e70fSEmmanuel Vadot 21*d5b0e70fSEmmanuel Vadotproperties: 22*d5b0e70fSEmmanuel Vadot compatible: 23*d5b0e70fSEmmanuel Vadot enum: 24*d5b0e70fSEmmanuel Vadot - socionext,uniphier-pcie 25*d5b0e70fSEmmanuel Vadot 26*d5b0e70fSEmmanuel Vadot reg: 27*d5b0e70fSEmmanuel Vadot minItems: 3 28*d5b0e70fSEmmanuel Vadot maxItems: 4 29*d5b0e70fSEmmanuel Vadot 30*d5b0e70fSEmmanuel Vadot reg-names: 31*d5b0e70fSEmmanuel Vadot minItems: 3 32*d5b0e70fSEmmanuel Vadot items: 33*d5b0e70fSEmmanuel Vadot - const: dbi 34*d5b0e70fSEmmanuel Vadot - const: link 35*d5b0e70fSEmmanuel Vadot - const: config 36*d5b0e70fSEmmanuel Vadot - const: atu 37*d5b0e70fSEmmanuel Vadot 38*d5b0e70fSEmmanuel Vadot clocks: 39*d5b0e70fSEmmanuel Vadot maxItems: 1 40*d5b0e70fSEmmanuel Vadot 41*d5b0e70fSEmmanuel Vadot resets: 42*d5b0e70fSEmmanuel Vadot maxItems: 1 43*d5b0e70fSEmmanuel Vadot 44*d5b0e70fSEmmanuel Vadot num-viewport: true 45*d5b0e70fSEmmanuel Vadot 46*d5b0e70fSEmmanuel Vadot num-lanes: true 47*d5b0e70fSEmmanuel Vadot 48*d5b0e70fSEmmanuel Vadot phys: 49*d5b0e70fSEmmanuel Vadot maxItems: 1 50*d5b0e70fSEmmanuel Vadot 51*d5b0e70fSEmmanuel Vadot phy-names: 52*d5b0e70fSEmmanuel Vadot const: pcie-phy 53*d5b0e70fSEmmanuel Vadot 54*d5b0e70fSEmmanuel Vadot interrupt-controller: 55*d5b0e70fSEmmanuel Vadot type: object 56*d5b0e70fSEmmanuel Vadot additionalProperties: false 57*d5b0e70fSEmmanuel Vadot 58*d5b0e70fSEmmanuel Vadot properties: 59*d5b0e70fSEmmanuel Vadot interrupt-controller: true 60*d5b0e70fSEmmanuel Vadot 61*d5b0e70fSEmmanuel Vadot '#interrupt-cells': 62*d5b0e70fSEmmanuel Vadot const: 1 63*d5b0e70fSEmmanuel Vadot 64*d5b0e70fSEmmanuel Vadot interrupts: 65*d5b0e70fSEmmanuel Vadot maxItems: 1 66*d5b0e70fSEmmanuel Vadot 67*d5b0e70fSEmmanuel Vadotrequired: 68*d5b0e70fSEmmanuel Vadot - compatible 69*d5b0e70fSEmmanuel Vadot - reg 70*d5b0e70fSEmmanuel Vadot - reg-names 71*d5b0e70fSEmmanuel Vadot - clocks 72*d5b0e70fSEmmanuel Vadot - resets 73*d5b0e70fSEmmanuel Vadot 74*d5b0e70fSEmmanuel VadotunevaluatedProperties: false 75*d5b0e70fSEmmanuel Vadot 76*d5b0e70fSEmmanuel Vadotexamples: 77*d5b0e70fSEmmanuel Vadot - | 78*d5b0e70fSEmmanuel Vadot bus { 79*d5b0e70fSEmmanuel Vadot gic: interrupt-controller { 80*d5b0e70fSEmmanuel Vadot interrupt-controller; 81*d5b0e70fSEmmanuel Vadot #interrupt-cells = <3>; 82*d5b0e70fSEmmanuel Vadot }; 83*d5b0e70fSEmmanuel Vadot }; 84*d5b0e70fSEmmanuel Vadot 85*d5b0e70fSEmmanuel Vadot pcie: pcie@66000000 { 86*d5b0e70fSEmmanuel Vadot compatible = "socionext,uniphier-pcie"; 87*d5b0e70fSEmmanuel Vadot reg-names = "dbi", "link", "config"; 88*d5b0e70fSEmmanuel Vadot reg = <0x66000000 0x1000>, <0x66010000 0x10000>, <0x2fff0000 0x10000>; 89*d5b0e70fSEmmanuel Vadot #address-cells = <3>; 90*d5b0e70fSEmmanuel Vadot #size-cells = <2>; 91*d5b0e70fSEmmanuel Vadot clocks = <&sys_clk 24>; 92*d5b0e70fSEmmanuel Vadot resets = <&sys_rst 24>; 93*d5b0e70fSEmmanuel Vadot num-lanes = <1>; 94*d5b0e70fSEmmanuel Vadot num-viewport = <1>; 95*d5b0e70fSEmmanuel Vadot bus-range = <0x0 0xff>; 96*d5b0e70fSEmmanuel Vadot device_type = "pci"; 97*d5b0e70fSEmmanuel Vadot ranges = <0x81000000 0 0x00000000 0x2ffe0000 0 0x00010000>, 98*d5b0e70fSEmmanuel Vadot <0x82000000 0 0x00000000 0x20000000 0 0x0ffe0000>; 99*d5b0e70fSEmmanuel Vadot phy-names = "pcie-phy"; 100*d5b0e70fSEmmanuel Vadot phys = <&pcie_phy>; 101*d5b0e70fSEmmanuel Vadot #interrupt-cells = <1>; 102*d5b0e70fSEmmanuel Vadot interrupt-names = "dma", "msi"; 103*d5b0e70fSEmmanuel Vadot interrupt-parent = <&gic>; 104*d5b0e70fSEmmanuel Vadot interrupts = <0 224 4>, <0 225 4>; 105*d5b0e70fSEmmanuel Vadot interrupt-map-mask = <0 0 0 7>; 106*d5b0e70fSEmmanuel Vadot interrupt-map = <0 0 0 1 &pcie_intc 0>, 107*d5b0e70fSEmmanuel Vadot <0 0 0 2 &pcie_intc 1>, 108*d5b0e70fSEmmanuel Vadot <0 0 0 3 &pcie_intc 2>, 109*d5b0e70fSEmmanuel Vadot <0 0 0 4 &pcie_intc 3>; 110*d5b0e70fSEmmanuel Vadot 111*d5b0e70fSEmmanuel Vadot pcie_intc: interrupt-controller { 112*d5b0e70fSEmmanuel Vadot interrupt-controller; 113*d5b0e70fSEmmanuel Vadot #interrupt-cells = <1>; 114*d5b0e70fSEmmanuel Vadot interrupt-parent = <&gic>; 115*d5b0e70fSEmmanuel Vadot interrupts = <0 226 4>; 116*d5b0e70fSEmmanuel Vadot }; 117*d5b0e70fSEmmanuel Vadot }; 118