1*5ffa3d2fSChristian Bruel# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2*5ffa3d2fSChristian Bruel%YAML 1.2 3*5ffa3d2fSChristian Bruel--- 4*5ffa3d2fSChristian Bruel$id: http://devicetree.org/schemas/pci/st,stm32-pcie-host.yaml# 5*5ffa3d2fSChristian Bruel$schema: http://devicetree.org/meta-schemas/core.yaml# 6*5ffa3d2fSChristian Bruel 7*5ffa3d2fSChristian Brueltitle: STMicroelectronics STM32MP25 PCIe Root Complex 8*5ffa3d2fSChristian Bruel 9*5ffa3d2fSChristian Bruelmaintainers: 10*5ffa3d2fSChristian Bruel - Christian Bruel <christian.bruel@foss.st.com> 11*5ffa3d2fSChristian Bruel 12*5ffa3d2fSChristian Brueldescription: 13*5ffa3d2fSChristian Bruel PCIe root complex controller based on the Synopsys DesignWare PCIe core. 14*5ffa3d2fSChristian Bruel 15*5ffa3d2fSChristian BruelallOf: 16*5ffa3d2fSChristian Bruel - $ref: /schemas/pci/snps,dw-pcie.yaml# 17*5ffa3d2fSChristian Bruel - $ref: /schemas/pci/st,stm32-pcie-common.yaml# 18*5ffa3d2fSChristian Bruel 19*5ffa3d2fSChristian Bruelproperties: 20*5ffa3d2fSChristian Bruel compatible: 21*5ffa3d2fSChristian Bruel const: st,stm32mp25-pcie-rc 22*5ffa3d2fSChristian Bruel 23*5ffa3d2fSChristian Bruel reg: 24*5ffa3d2fSChristian Bruel items: 25*5ffa3d2fSChristian Bruel - description: Data Bus Interface (DBI) registers. 26*5ffa3d2fSChristian Bruel - description: PCIe configuration registers. 27*5ffa3d2fSChristian Bruel 28*5ffa3d2fSChristian Bruel reg-names: 29*5ffa3d2fSChristian Bruel items: 30*5ffa3d2fSChristian Bruel - const: dbi 31*5ffa3d2fSChristian Bruel - const: config 32*5ffa3d2fSChristian Bruel 33*5ffa3d2fSChristian Bruel msi-parent: 34*5ffa3d2fSChristian Bruel maxItems: 1 35*5ffa3d2fSChristian Bruel 36*5ffa3d2fSChristian BruelpatternProperties: 37*5ffa3d2fSChristian Bruel '^pcie@[0-2],0$': 38*5ffa3d2fSChristian Bruel type: object 39*5ffa3d2fSChristian Bruel $ref: /schemas/pci/pci-pci-bridge.yaml# 40*5ffa3d2fSChristian Bruel 41*5ffa3d2fSChristian Bruel properties: 42*5ffa3d2fSChristian Bruel reg: 43*5ffa3d2fSChristian Bruel maxItems: 1 44*5ffa3d2fSChristian Bruel 45*5ffa3d2fSChristian Bruel phys: 46*5ffa3d2fSChristian Bruel maxItems: 1 47*5ffa3d2fSChristian Bruel 48*5ffa3d2fSChristian Bruel reset-gpios: 49*5ffa3d2fSChristian Bruel description: GPIO controlled connection to PERST# signal 50*5ffa3d2fSChristian Bruel maxItems: 1 51*5ffa3d2fSChristian Bruel 52*5ffa3d2fSChristian Bruel wake-gpios: 53*5ffa3d2fSChristian Bruel description: GPIO used as WAKE# input signal 54*5ffa3d2fSChristian Bruel maxItems: 1 55*5ffa3d2fSChristian Bruel 56*5ffa3d2fSChristian Bruel required: 57*5ffa3d2fSChristian Bruel - phys 58*5ffa3d2fSChristian Bruel - ranges 59*5ffa3d2fSChristian Bruel 60*5ffa3d2fSChristian Bruel unevaluatedProperties: false 61*5ffa3d2fSChristian Bruel 62*5ffa3d2fSChristian Bruelrequired: 63*5ffa3d2fSChristian Bruel - interrupt-map 64*5ffa3d2fSChristian Bruel - interrupt-map-mask 65*5ffa3d2fSChristian Bruel - ranges 66*5ffa3d2fSChristian Bruel - dma-ranges 67*5ffa3d2fSChristian Bruel 68*5ffa3d2fSChristian BruelunevaluatedProperties: false 69*5ffa3d2fSChristian Bruel 70*5ffa3d2fSChristian Bruelexamples: 71*5ffa3d2fSChristian Bruel - | 72*5ffa3d2fSChristian Bruel #include <dt-bindings/clock/st,stm32mp25-rcc.h> 73*5ffa3d2fSChristian Bruel #include <dt-bindings/gpio/gpio.h> 74*5ffa3d2fSChristian Bruel #include <dt-bindings/interrupt-controller/arm-gic.h> 75*5ffa3d2fSChristian Bruel #include <dt-bindings/phy/phy.h> 76*5ffa3d2fSChristian Bruel #include <dt-bindings/reset/st,stm32mp25-rcc.h> 77*5ffa3d2fSChristian Bruel 78*5ffa3d2fSChristian Bruel pcie@48400000 { 79*5ffa3d2fSChristian Bruel compatible = "st,stm32mp25-pcie-rc"; 80*5ffa3d2fSChristian Bruel device_type = "pci"; 81*5ffa3d2fSChristian Bruel reg = <0x48400000 0x400000>, 82*5ffa3d2fSChristian Bruel <0x10000000 0x10000>; 83*5ffa3d2fSChristian Bruel reg-names = "dbi", "config"; 84*5ffa3d2fSChristian Bruel #interrupt-cells = <1>; 85*5ffa3d2fSChristian Bruel interrupt-map-mask = <0 0 0 7>; 86*5ffa3d2fSChristian Bruel interrupt-map = <0 0 0 1 &intc 0 0 GIC_SPI 264 IRQ_TYPE_LEVEL_HIGH>, 87*5ffa3d2fSChristian Bruel <0 0 0 2 &intc 0 0 GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>, 88*5ffa3d2fSChristian Bruel <0 0 0 3 &intc 0 0 GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>, 89*5ffa3d2fSChristian Bruel <0 0 0 4 &intc 0 0 GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>; 90*5ffa3d2fSChristian Bruel #address-cells = <3>; 91*5ffa3d2fSChristian Bruel #size-cells = <2>; 92*5ffa3d2fSChristian Bruel ranges = <0x01000000 0x0 0x00000000 0x10010000 0x0 0x10000>, 93*5ffa3d2fSChristian Bruel <0x02000000 0x0 0x10020000 0x10020000 0x0 0x7fe0000>, 94*5ffa3d2fSChristian Bruel <0x42000000 0x0 0x18000000 0x18000000 0x0 0x8000000>; 95*5ffa3d2fSChristian Bruel dma-ranges = <0x42000000 0x0 0x80000000 0x80000000 0x0 0x80000000>; 96*5ffa3d2fSChristian Bruel clocks = <&rcc CK_BUS_PCIE>; 97*5ffa3d2fSChristian Bruel resets = <&rcc PCIE_R>; 98*5ffa3d2fSChristian Bruel msi-parent = <&v2m0>; 99*5ffa3d2fSChristian Bruel access-controllers = <&rifsc 68>; 100*5ffa3d2fSChristian Bruel power-domains = <&CLUSTER_PD>; 101*5ffa3d2fSChristian Bruel 102*5ffa3d2fSChristian Bruel pcie@0,0 { 103*5ffa3d2fSChristian Bruel device_type = "pci"; 104*5ffa3d2fSChristian Bruel reg = <0x0 0x0 0x0 0x0 0x0>; 105*5ffa3d2fSChristian Bruel phys = <&combophy PHY_TYPE_PCIE>; 106*5ffa3d2fSChristian Bruel wake-gpios = <&gpioh 5 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; 107*5ffa3d2fSChristian Bruel reset-gpios = <&gpioj 8 GPIO_ACTIVE_LOW>; 108*5ffa3d2fSChristian Bruel #address-cells = <3>; 109*5ffa3d2fSChristian Bruel #size-cells = <2>; 110*5ffa3d2fSChristian Bruel ranges; 111*5ffa3d2fSChristian Bruel }; 112*5ffa3d2fSChristian Bruel }; 113