1*b02cfbd9SFrank Li# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*b02cfbd9SFrank Li%YAML 1.2 3*b02cfbd9SFrank Li--- 4*b02cfbd9SFrank Li$id: http://devicetree.org/schemas/pci/mbvl,gpex40-pcie.yaml# 5*b02cfbd9SFrank Li$schema: http://devicetree.org/meta-schemas/core.yaml# 6*b02cfbd9SFrank Li 7*b02cfbd9SFrank Lititle: Mobiveil AXI PCIe Host Bridge 8*b02cfbd9SFrank Li 9*b02cfbd9SFrank Limaintainers: 10*b02cfbd9SFrank Li - Frank Li <Frank Li@nxp.com> 11*b02cfbd9SFrank Li 12*b02cfbd9SFrank Lidescription: 13*b02cfbd9SFrank Li Mobiveil's GPEX 4.0 is a PCIe Gen4 host bridge IP. This configurable IP 14*b02cfbd9SFrank Li has up to 8 outbound and inbound windows for address translation. 15*b02cfbd9SFrank Li 16*b02cfbd9SFrank Li NXP Layerscape PCIe Gen4 controller (Deprecated) base on Mobiveil's GPEX 4.0. 17*b02cfbd9SFrank Li 18*b02cfbd9SFrank Liproperties: 19*b02cfbd9SFrank Li compatible: 20*b02cfbd9SFrank Li enum: 21*b02cfbd9SFrank Li - fsl,lx2160a-pcie 22*b02cfbd9SFrank Li - mbvl,gpex40-pcie 23*b02cfbd9SFrank Li 24*b02cfbd9SFrank Li reg: 25*b02cfbd9SFrank Li items: 26*b02cfbd9SFrank Li - description: PCIe controller registers 27*b02cfbd9SFrank Li - description: Bridge config registers 28*b02cfbd9SFrank Li - description: GPIO registers to control slot power 29*b02cfbd9SFrank Li - description: MSI registers 30*b02cfbd9SFrank Li minItems: 2 31*b02cfbd9SFrank Li 32*b02cfbd9SFrank Li reg-names: 33*b02cfbd9SFrank Li items: 34*b02cfbd9SFrank Li - const: csr_axi_slave 35*b02cfbd9SFrank Li - const: config_axi_slave 36*b02cfbd9SFrank Li - const: gpio_slave 37*b02cfbd9SFrank Li - const: apb_csr 38*b02cfbd9SFrank Li minItems: 2 39*b02cfbd9SFrank Li 40*b02cfbd9SFrank Li apio-wins: 41*b02cfbd9SFrank Li $ref: /schemas/types.yaml#/definitions/uint32 42*b02cfbd9SFrank Li description: | 43*b02cfbd9SFrank Li number of requested APIO outbound windows 44*b02cfbd9SFrank Li 1. Config window 45*b02cfbd9SFrank Li 2. Memory window 46*b02cfbd9SFrank Li default: 2 47*b02cfbd9SFrank Li maximum: 256 48*b02cfbd9SFrank Li 49*b02cfbd9SFrank Li ppio-wins: 50*b02cfbd9SFrank Li $ref: /schemas/types.yaml#/definitions/uint32 51*b02cfbd9SFrank Li description: number of requested PPIO inbound windows 52*b02cfbd9SFrank Li default: 1 53*b02cfbd9SFrank Li maximum: 256 54*b02cfbd9SFrank Li 55*b02cfbd9SFrank Li interrupt-controller: true 56*b02cfbd9SFrank Li 57*b02cfbd9SFrank Li "#interrupt-cells": 58*b02cfbd9SFrank Li const: 1 59*b02cfbd9SFrank Li 60*b02cfbd9SFrank Li interrupts: 61*b02cfbd9SFrank Li minItems: 1 62*b02cfbd9SFrank Li maxItems: 3 63*b02cfbd9SFrank Li 64*b02cfbd9SFrank Li interrupt-names: 65*b02cfbd9SFrank Li minItems: 1 66*b02cfbd9SFrank Li maxItems: 3 67*b02cfbd9SFrank Li 68*b02cfbd9SFrank Li dma-coherent: true 69*b02cfbd9SFrank Li 70*b02cfbd9SFrank Li msi-parent: true 71*b02cfbd9SFrank Li 72*b02cfbd9SFrank Lirequired: 73*b02cfbd9SFrank Li - compatible 74*b02cfbd9SFrank Li - reg 75*b02cfbd9SFrank Li - reg-names 76*b02cfbd9SFrank Li 77*b02cfbd9SFrank LiallOf: 78*b02cfbd9SFrank Li - $ref: /schemas/pci/pci-host-bridge.yaml# 79*b02cfbd9SFrank Li - if: 80*b02cfbd9SFrank Li properties: 81*b02cfbd9SFrank Li compatible: 82*b02cfbd9SFrank Li enum: 83*b02cfbd9SFrank Li - fsl,lx2160a-pcie 84*b02cfbd9SFrank Li then: 85*b02cfbd9SFrank Li properties: 86*b02cfbd9SFrank Li reg: 87*b02cfbd9SFrank Li maxItems: 2 88*b02cfbd9SFrank Li 89*b02cfbd9SFrank Li reg-names: 90*b02cfbd9SFrank Li maxItems: 2 91*b02cfbd9SFrank Li 92*b02cfbd9SFrank Li interrupts: 93*b02cfbd9SFrank Li minItems: 3 94*b02cfbd9SFrank Li 95*b02cfbd9SFrank Li interrupt-names: 96*b02cfbd9SFrank Li items: 97*b02cfbd9SFrank Li - const: aer 98*b02cfbd9SFrank Li - const: pme 99*b02cfbd9SFrank Li - const: intr 100*b02cfbd9SFrank Li else: 101*b02cfbd9SFrank Li properties: 102*b02cfbd9SFrank Li dma-coherent: false 103*b02cfbd9SFrank Li msi-parent: false 104*b02cfbd9SFrank Li interrupts: 105*b02cfbd9SFrank Li maxItems: 1 106*b02cfbd9SFrank Li interrupt-names: false 107*b02cfbd9SFrank Li 108*b02cfbd9SFrank LiunevaluatedProperties: false 109*b02cfbd9SFrank Li 110*b02cfbd9SFrank Liexamples: 111*b02cfbd9SFrank Li - | 112*b02cfbd9SFrank Li #include <dt-bindings/interrupt-controller/arm-gic.h> 113*b02cfbd9SFrank Li 114*b02cfbd9SFrank Li pcie@b0000000 { 115*b02cfbd9SFrank Li compatible = "mbvl,gpex40-pcie"; 116*b02cfbd9SFrank Li reg = <0xb0000000 0x00010000>, 117*b02cfbd9SFrank Li <0xa0000000 0x00001000>, 118*b02cfbd9SFrank Li <0xff000000 0x00200000>, 119*b02cfbd9SFrank Li <0xb0010000 0x00001000>; 120*b02cfbd9SFrank Li reg-names = "csr_axi_slave", 121*b02cfbd9SFrank Li "config_axi_slave", 122*b02cfbd9SFrank Li "gpio_slave", 123*b02cfbd9SFrank Li "apb_csr"; 124*b02cfbd9SFrank Li ranges = <0x83000000 0 0x00000000 0xa8000000 0 0x8000000>; 125*b02cfbd9SFrank Li #address-cells = <3>; 126*b02cfbd9SFrank Li #size-cells = <2>; 127*b02cfbd9SFrank Li device_type = "pci"; 128*b02cfbd9SFrank Li apio-wins = <2>; 129*b02cfbd9SFrank Li ppio-wins = <1>; 130*b02cfbd9SFrank Li bus-range = <0x00 0xff>; 131*b02cfbd9SFrank Li interrupt-controller; 132*b02cfbd9SFrank Li #interrupt-cells = <1>; 133*b02cfbd9SFrank Li interrupt-parent = <&gic>; 134*b02cfbd9SFrank Li interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>; 135*b02cfbd9SFrank Li interrupt-map-mask = <0 0 0 7>; 136*b02cfbd9SFrank Li interrupt-map = <0 0 0 0 &pci_express 0>, 137*b02cfbd9SFrank Li <0 0 0 1 &pci_express 1>, 138*b02cfbd9SFrank Li <0 0 0 2 &pci_express 2>, 139*b02cfbd9SFrank Li <0 0 0 3 &pci_express 3>; 140*b02cfbd9SFrank Li }; 141*b02cfbd9SFrank Li 142*b02cfbd9SFrank Li - | 143*b02cfbd9SFrank Li #include <dt-bindings/interrupt-controller/arm-gic.h> 144*b02cfbd9SFrank Li 145*b02cfbd9SFrank Li soc { 146*b02cfbd9SFrank Li #address-cells = <2>; 147*b02cfbd9SFrank Li #size-cells = <2>; 148*b02cfbd9SFrank Li pcie@3400000 { 149*b02cfbd9SFrank Li compatible = "fsl,lx2160a-pcie"; 150*b02cfbd9SFrank Li reg = <0x00 0x03400000 0x0 0x00100000 /* controller registers */ 151*b02cfbd9SFrank Li 0x80 0x00000000 0x0 0x00001000>; /* configuration space */ 152*b02cfbd9SFrank Li reg-names = "csr_axi_slave", "config_axi_slave"; 153*b02cfbd9SFrank Li ranges = <0x82000000 0x0 0x40000000 0x80 0x40000000 0x0 0x40000000>; 154*b02cfbd9SFrank Li interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>, /* AER interrupt */ 155*b02cfbd9SFrank Li <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>, /* PME interrupt */ 156*b02cfbd9SFrank Li <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; /* controller interrupt */ 157*b02cfbd9SFrank Li interrupt-names = "aer", "pme", "intr"; 158*b02cfbd9SFrank Li #address-cells = <3>; 159*b02cfbd9SFrank Li #size-cells = <2>; 160*b02cfbd9SFrank Li device_type = "pci"; 161*b02cfbd9SFrank Li apio-wins = <8>; 162*b02cfbd9SFrank Li ppio-wins = <8>; 163*b02cfbd9SFrank Li dma-coherent; 164*b02cfbd9SFrank Li bus-range = <0x00 0xff>; 165*b02cfbd9SFrank Li msi-parent = <&its>; 166*b02cfbd9SFrank Li #interrupt-cells = <1>; 167*b02cfbd9SFrank Li interrupt-map-mask = <0 0 0 7>; 168*b02cfbd9SFrank Li interrupt-map = <0000 0 0 1 &gic 0 0 GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>, 169*b02cfbd9SFrank Li <0000 0 0 2 &gic 0 0 GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>, 170*b02cfbd9SFrank Li <0000 0 0 3 &gic 0 0 GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>, 171*b02cfbd9SFrank Li <0000 0 0 4 &gic 0 0 GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; 172*b02cfbd9SFrank Li }; 173*b02cfbd9SFrank Li }; 174