113 lines
3.0 KiB
YAML
113 lines
3.0 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/pci/st,stm32-pcie-host.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: STMicroelectronics STM32MP25 PCIe Root Complex
|
|
|
|
maintainers:
|
|
- Christian Bruel <christian.bruel@foss.st.com>
|
|
|
|
description:
|
|
PCIe root complex controller based on the Synopsys DesignWare PCIe core.
|
|
|
|
allOf:
|
|
- $ref: /schemas/pci/snps,dw-pcie.yaml#
|
|
- $ref: /schemas/pci/st,stm32-pcie-common.yaml#
|
|
|
|
properties:
|
|
compatible:
|
|
const: st,stm32mp25-pcie-rc
|
|
|
|
reg:
|
|
items:
|
|
- description: Data Bus Interface (DBI) registers.
|
|
- description: PCIe configuration registers.
|
|
|
|
reg-names:
|
|
items:
|
|
- const: dbi
|
|
- const: config
|
|
|
|
msi-parent:
|
|
maxItems: 1
|
|
|
|
patternProperties:
|
|
'^pcie@[0-2],0$':
|
|
type: object
|
|
$ref: /schemas/pci/pci-pci-bridge.yaml#
|
|
|
|
properties:
|
|
reg:
|
|
maxItems: 1
|
|
|
|
phys:
|
|
maxItems: 1
|
|
|
|
reset-gpios:
|
|
description: GPIO controlled connection to PERST# signal
|
|
maxItems: 1
|
|
|
|
wake-gpios:
|
|
description: GPIO used as WAKE# input signal
|
|
maxItems: 1
|
|
|
|
required:
|
|
- phys
|
|
- ranges
|
|
|
|
unevaluatedProperties: false
|
|
|
|
required:
|
|
- interrupt-map
|
|
- interrupt-map-mask
|
|
- ranges
|
|
- dma-ranges
|
|
|
|
unevaluatedProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/clock/st,stm32mp25-rcc.h>
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
#include <dt-bindings/phy/phy.h>
|
|
#include <dt-bindings/reset/st,stm32mp25-rcc.h>
|
|
|
|
pcie@48400000 {
|
|
compatible = "st,stm32mp25-pcie-rc";
|
|
device_type = "pci";
|
|
reg = <0x48400000 0x400000>,
|
|
<0x10000000 0x10000>;
|
|
reg-names = "dbi", "config";
|
|
#interrupt-cells = <1>;
|
|
interrupt-map-mask = <0 0 0 7>;
|
|
interrupt-map = <0 0 0 1 &intc 0 0 GIC_SPI 264 IRQ_TYPE_LEVEL_HIGH>,
|
|
<0 0 0 2 &intc 0 0 GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>,
|
|
<0 0 0 3 &intc 0 0 GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>,
|
|
<0 0 0 4 &intc 0 0 GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>;
|
|
#address-cells = <3>;
|
|
#size-cells = <2>;
|
|
ranges = <0x01000000 0x0 0x00000000 0x10010000 0x0 0x10000>,
|
|
<0x02000000 0x0 0x10020000 0x10020000 0x0 0x7fe0000>,
|
|
<0x42000000 0x0 0x18000000 0x18000000 0x0 0x8000000>;
|
|
dma-ranges = <0x42000000 0x0 0x80000000 0x80000000 0x0 0x80000000>;
|
|
clocks = <&rcc CK_BUS_PCIE>;
|
|
resets = <&rcc PCIE_R>;
|
|
msi-parent = <&v2m0>;
|
|
access-controllers = <&rifsc 68>;
|
|
power-domains = <&CLUSTER_PD>;
|
|
|
|
pcie@0,0 {
|
|
device_type = "pci";
|
|
reg = <0x0 0x0 0x0 0x0 0x0>;
|
|
phys = <&combophy PHY_TYPE_PCIE>;
|
|
wake-gpios = <&gpioh 5 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
|
|
reset-gpios = <&gpioj 8 GPIO_ACTIVE_LOW>;
|
|
#address-cells = <3>;
|
|
#size-cells = <2>;
|
|
ranges;
|
|
};
|
|
};
|