1*8ccc0d23SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*8ccc0d23SEmmanuel Vadot%YAML 1.2 3*8ccc0d23SEmmanuel Vadot--- 4*8ccc0d23SEmmanuel Vadot 5*8ccc0d23SEmmanuel Vadot$id: http://devicetree.org/schemas/pci/fsl,mpc8xxx-pci.yaml# 6*8ccc0d23SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 7*8ccc0d23SEmmanuel Vadot 8*8ccc0d23SEmmanuel Vadottitle: Freescale MPC83xx PCI/PCI-X/PCIe controllers 9*8ccc0d23SEmmanuel Vadot 10*8ccc0d23SEmmanuel Vadotdescription: 11*8ccc0d23SEmmanuel Vadot Binding for the PCI/PCI-X/PCIe host bridges on MPC8xxx SoCs 12*8ccc0d23SEmmanuel Vadot 13*8ccc0d23SEmmanuel Vadotmaintainers: 14*8ccc0d23SEmmanuel Vadot - J. Neuschäfer <j.neuschaefer@gmx.net> 15*8ccc0d23SEmmanuel Vadot 16*8ccc0d23SEmmanuel VadotallOf: 17*8ccc0d23SEmmanuel Vadot - $ref: /schemas/pci/pci-host-bridge.yaml# 18*8ccc0d23SEmmanuel Vadot 19*8ccc0d23SEmmanuel Vadotproperties: 20*8ccc0d23SEmmanuel Vadot compatible: 21*8ccc0d23SEmmanuel Vadot oneOf: 22*8ccc0d23SEmmanuel Vadot - enum: 23*8ccc0d23SEmmanuel Vadot - fsl,mpc8314-pcie 24*8ccc0d23SEmmanuel Vadot - fsl,mpc8349-pci 25*8ccc0d23SEmmanuel Vadot - fsl,mpc8540-pci 26*8ccc0d23SEmmanuel Vadot - fsl,mpc8548-pcie 27*8ccc0d23SEmmanuel Vadot - fsl,mpc8641-pcie 28*8ccc0d23SEmmanuel Vadot - items: 29*8ccc0d23SEmmanuel Vadot - enum: 30*8ccc0d23SEmmanuel Vadot - fsl,mpc8308-pcie 31*8ccc0d23SEmmanuel Vadot - fsl,mpc8315-pcie 32*8ccc0d23SEmmanuel Vadot - fsl,mpc8377-pcie 33*8ccc0d23SEmmanuel Vadot - fsl,mpc8378-pcie 34*8ccc0d23SEmmanuel Vadot - const: fsl,mpc8314-pcie 35*8ccc0d23SEmmanuel Vadot - items: 36*8ccc0d23SEmmanuel Vadot - const: fsl,mpc8360-pci 37*8ccc0d23SEmmanuel Vadot - const: fsl,mpc8349-pci 38*8ccc0d23SEmmanuel Vadot - items: 39*8ccc0d23SEmmanuel Vadot - const: fsl,mpc8540-pcix 40*8ccc0d23SEmmanuel Vadot - const: fsl,mpc8540-pci 41*8ccc0d23SEmmanuel Vadot 42*8ccc0d23SEmmanuel Vadot reg: 43*8ccc0d23SEmmanuel Vadot minItems: 1 44*8ccc0d23SEmmanuel Vadot items: 45*8ccc0d23SEmmanuel Vadot - description: internal registers 46*8ccc0d23SEmmanuel Vadot - description: config space access registers 47*8ccc0d23SEmmanuel Vadot 48*8ccc0d23SEmmanuel Vadot clock-frequency: true 49*8ccc0d23SEmmanuel Vadot 50*8ccc0d23SEmmanuel Vadot interrupts: 51*8ccc0d23SEmmanuel Vadot items: 52*8ccc0d23SEmmanuel Vadot - description: Consolidated PCI interrupt 53*8ccc0d23SEmmanuel Vadot 54*8ccc0d23SEmmanuel Vadot fsl,pci-agent-force-enum: 55*8ccc0d23SEmmanuel Vadot type: boolean 56*8ccc0d23SEmmanuel Vadot description: 57*8ccc0d23SEmmanuel Vadot Typically any Freescale PCI-X bridge hardware strapped into Agent mode is 58*8ccc0d23SEmmanuel Vadot prevented from enumerating the bus. The PrPMC form-factor requires all 59*8ccc0d23SEmmanuel Vadot mezzanines to be PCI-X Agents, but one per system may still enumerate the 60*8ccc0d23SEmmanuel Vadot bus. 61*8ccc0d23SEmmanuel Vadot 62*8ccc0d23SEmmanuel Vadot This property allows a PCI-X bridge to be used for bus enumeration 63*8ccc0d23SEmmanuel Vadot despite being strapped into Agent mode. 64*8ccc0d23SEmmanuel Vadot 65*8ccc0d23SEmmanuel Vadotrequired: 66*8ccc0d23SEmmanuel Vadot - reg 67*8ccc0d23SEmmanuel Vadot - compatible 68*8ccc0d23SEmmanuel Vadot 69*8ccc0d23SEmmanuel VadotunevaluatedProperties: false 70*8ccc0d23SEmmanuel Vadot 71*8ccc0d23SEmmanuel Vadotexamples: 72*8ccc0d23SEmmanuel Vadot - | 73*8ccc0d23SEmmanuel Vadot #include <dt-bindings/interrupt-controller/irq.h> 74*8ccc0d23SEmmanuel Vadot 75*8ccc0d23SEmmanuel Vadot pcie@e0009000 { 76*8ccc0d23SEmmanuel Vadot compatible = "fsl,mpc8315-pcie", "fsl,mpc8314-pcie"; 77*8ccc0d23SEmmanuel Vadot reg = <0xe0009000 0x00001000>; 78*8ccc0d23SEmmanuel Vadot ranges = <0x02000000 0 0xa0000000 0xa0000000 0 0x10000000 79*8ccc0d23SEmmanuel Vadot 0x01000000 0 0x00000000 0xb1000000 0 0x00800000>; 80*8ccc0d23SEmmanuel Vadot #address-cells = <3>; 81*8ccc0d23SEmmanuel Vadot #size-cells = <2>; 82*8ccc0d23SEmmanuel Vadot #interrupt-cells = <1>; 83*8ccc0d23SEmmanuel Vadot device_type = "pci"; 84*8ccc0d23SEmmanuel Vadot bus-range = <0 255>; 85*8ccc0d23SEmmanuel Vadot interrupt-map-mask = <0xf800 0 0 7>; 86*8ccc0d23SEmmanuel Vadot interrupt-map = <0 0 0 1 &ipic 1 IRQ_TYPE_LEVEL_LOW 87*8ccc0d23SEmmanuel Vadot 0 0 0 2 &ipic 1 IRQ_TYPE_LEVEL_LOW 88*8ccc0d23SEmmanuel Vadot 0 0 0 3 &ipic 1 IRQ_TYPE_LEVEL_LOW 89*8ccc0d23SEmmanuel Vadot 0 0 0 4 &ipic 1 IRQ_TYPE_LEVEL_LOW>; 90*8ccc0d23SEmmanuel Vadot clock-frequency = <0>; 91*8ccc0d23SEmmanuel Vadot }; 92*8ccc0d23SEmmanuel Vadot 93*8ccc0d23SEmmanuel Vadot - | 94*8ccc0d23SEmmanuel Vadot pci@ef008000 { 95*8ccc0d23SEmmanuel Vadot compatible = "fsl,mpc8540-pcix", "fsl,mpc8540-pci"; 96*8ccc0d23SEmmanuel Vadot reg = <0xef008000 0x1000>; 97*8ccc0d23SEmmanuel Vadot ranges = <0x02000000 0 0x80000000 0x80000000 0 0x20000000 98*8ccc0d23SEmmanuel Vadot 0x01000000 0 0x00000000 0xd0000000 0 0x01000000>; 99*8ccc0d23SEmmanuel Vadot #interrupt-cells = <1>; 100*8ccc0d23SEmmanuel Vadot #size-cells = <2>; 101*8ccc0d23SEmmanuel Vadot #address-cells = <3>; 102*8ccc0d23SEmmanuel Vadot device_type = "pci"; 103*8ccc0d23SEmmanuel Vadot clock-frequency = <33333333>; 104*8ccc0d23SEmmanuel Vadot interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 105*8ccc0d23SEmmanuel Vadot interrupt-map = </* IDSEL */ 106*8ccc0d23SEmmanuel Vadot 0xe000 0 0 1 &mpic 2 1 107*8ccc0d23SEmmanuel Vadot 0xe000 0 0 2 &mpic 3 1>; 108*8ccc0d23SEmmanuel Vadot interrupts-extended = <&mpic 24 2>; 109*8ccc0d23SEmmanuel Vadot bus-range = <0 0>; 110*8ccc0d23SEmmanuel Vadot fsl,pci-agent-force-enum; 111*8ccc0d23SEmmanuel Vadot }; 112*8ccc0d23SEmmanuel Vadot 113*8ccc0d23SEmmanuel Vadot... 114