10956dcb8SJim Quinlan# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 20956dcb8SJim Quinlan%YAML 1.2 30956dcb8SJim Quinlan--- 40956dcb8SJim Quinlan$id: http://devicetree.org/schemas/pci/brcm,stb-pcie.yaml# 50956dcb8SJim Quinlan$schema: http://devicetree.org/meta-schemas/core.yaml# 60956dcb8SJim Quinlan 70956dcb8SJim Quinlantitle: Brcmstb PCIe Host Controller Device Tree Bindings 80956dcb8SJim Quinlan 90956dcb8SJim Quinlanmaintainers: 100956dcb8SJim Quinlan - Nicolas Saenz Julienne <nsaenzjulienne@suse.de> 110956dcb8SJim Quinlan 120956dcb8SJim Quinlanproperties: 130956dcb8SJim Quinlan compatible: 14e6f98b29SJim Quinlan items: 15e6f98b29SJim Quinlan - enum: 16e6f98b29SJim Quinlan - brcm,bcm2711-pcie # The Raspberry Pi 4 17*f435ce7eSRafał Miłecki - brcm,bcm4908-pcie 18e6f98b29SJim Quinlan - brcm,bcm7211-pcie # Broadcom STB version of RPi4 19e6f98b29SJim Quinlan - brcm,bcm7278-pcie # Broadcom 7278 Arm 20e6f98b29SJim Quinlan - brcm,bcm7216-pcie # Broadcom 7216 Arm 21e6f98b29SJim Quinlan - brcm,bcm7445-pcie # Broadcom 7445 Arm 220956dcb8SJim Quinlan 230956dcb8SJim Quinlan reg: 240956dcb8SJim Quinlan maxItems: 1 250956dcb8SJim Quinlan 260956dcb8SJim Quinlan interrupts: 270956dcb8SJim Quinlan minItems: 1 280956dcb8SJim Quinlan maxItems: 2 290956dcb8SJim Quinlan items: 300956dcb8SJim Quinlan - description: PCIe host controller 310956dcb8SJim Quinlan - description: builtin MSI controller 320956dcb8SJim Quinlan 330956dcb8SJim Quinlan interrupt-names: 340956dcb8SJim Quinlan minItems: 1 350956dcb8SJim Quinlan maxItems: 2 360956dcb8SJim Quinlan items: 370956dcb8SJim Quinlan - const: pcie 380956dcb8SJim Quinlan - const: msi 390956dcb8SJim Quinlan 400956dcb8SJim Quinlan ranges: 41e6f98b29SJim Quinlan minItems: 1 42e6f98b29SJim Quinlan maxItems: 4 430956dcb8SJim Quinlan 440956dcb8SJim Quinlan dma-ranges: 45e6f98b29SJim Quinlan minItems: 1 46e6f98b29SJim Quinlan maxItems: 6 470956dcb8SJim Quinlan 480956dcb8SJim Quinlan clocks: 490956dcb8SJim Quinlan maxItems: 1 500956dcb8SJim Quinlan 510956dcb8SJim Quinlan clock-names: 520956dcb8SJim Quinlan items: 530956dcb8SJim Quinlan - const: sw_pcie 540956dcb8SJim Quinlan 550956dcb8SJim Quinlan msi-controller: 560956dcb8SJim Quinlan description: Identifies the node as an MSI controller. 570956dcb8SJim Quinlan 580956dcb8SJim Quinlan msi-parent: 590956dcb8SJim Quinlan description: MSI controller the device is capable of using. 600956dcb8SJim Quinlan 610956dcb8SJim Quinlan brcm,enable-ssc: 620956dcb8SJim Quinlan description: Indicates usage of spread-spectrum clocking. 630956dcb8SJim Quinlan type: boolean 640956dcb8SJim Quinlan 65420c517bSJim Quinlan aspm-no-l0s: true 66420c517bSJim Quinlan 67e6f98b29SJim Quinlan brcm,scb-sizes: 68e6f98b29SJim Quinlan description: u64 giving the 64bit PCIe memory 69e6f98b29SJim Quinlan viewport size of a memory controller. There may be up to 70e6f98b29SJim Quinlan three controllers, and each size must be a power of two 71e6f98b29SJim Quinlan with a size greater or equal to the amount of memory the 72e6f98b29SJim Quinlan controller supports. Note that each memory controller 73e6f98b29SJim Quinlan may have two component regions -- base and extended -- so 74e6f98b29SJim Quinlan this information cannot be deduced from the dma-ranges. 75e6f98b29SJim Quinlan $ref: /schemas/types.yaml#/definitions/uint64-array 76e6f98b29SJim Quinlan items: 77e6f98b29SJim Quinlan minItems: 1 78e6f98b29SJim Quinlan maxItems: 3 79e6f98b29SJim Quinlan 800956dcb8SJim Quinlanrequired: 810956dcb8SJim Quinlan - reg 82e6f98b29SJim Quinlan - ranges 830956dcb8SJim Quinlan - dma-ranges 840956dcb8SJim Quinlan - "#interrupt-cells" 850956dcb8SJim Quinlan - interrupts 860956dcb8SJim Quinlan - interrupt-names 870956dcb8SJim Quinlan - interrupt-map-mask 880956dcb8SJim Quinlan - interrupt-map 890956dcb8SJim Quinlan - msi-controller 900956dcb8SJim Quinlan 91e6f98b29SJim QuinlanallOf: 92e6f98b29SJim Quinlan - $ref: /schemas/pci/pci-bus.yaml# 93e6f98b29SJim Quinlan - if: 94e6f98b29SJim Quinlan properties: 95e6f98b29SJim Quinlan compatible: 96e6f98b29SJim Quinlan contains: 97*f435ce7eSRafał Miłecki const: brcm,bcm4908-pcie 98*f435ce7eSRafał Miłecki then: 99*f435ce7eSRafał Miłecki properties: 100*f435ce7eSRafał Miłecki resets: 101*f435ce7eSRafał Miłecki items: 102*f435ce7eSRafał Miłecki - description: reset controller handling the PERST# signal 103*f435ce7eSRafał Miłecki 104*f435ce7eSRafał Miłecki reset-names: 105*f435ce7eSRafał Miłecki items: 106*f435ce7eSRafał Miłecki - const: perst 107*f435ce7eSRafał Miłecki 108*f435ce7eSRafał Miłecki required: 109*f435ce7eSRafał Miłecki - resets 110*f435ce7eSRafał Miłecki - reset-names 111*f435ce7eSRafał Miłecki - if: 112*f435ce7eSRafał Miłecki properties: 113*f435ce7eSRafał Miłecki compatible: 114*f435ce7eSRafał Miłecki contains: 115e6f98b29SJim Quinlan const: brcm,bcm7216-pcie 116e6f98b29SJim Quinlan then: 117*f435ce7eSRafał Miłecki properties: 118*f435ce7eSRafał Miłecki resets: 119*f435ce7eSRafał Miłecki items: 120*f435ce7eSRafał Miłecki - description: phandle pointing to the RESCAL reset controller 121*f435ce7eSRafał Miłecki 122*f435ce7eSRafał Miłecki reset-names: 123*f435ce7eSRafał Miłecki items: 124*f435ce7eSRafał Miłecki - const: rescal 125*f435ce7eSRafał Miłecki 126e6f98b29SJim Quinlan required: 127e6f98b29SJim Quinlan - resets 128e6f98b29SJim Quinlan - reset-names 129e6f98b29SJim Quinlan 1300956dcb8SJim QuinlanunevaluatedProperties: false 1310956dcb8SJim Quinlan 1320956dcb8SJim Quinlanexamples: 1330956dcb8SJim Quinlan - | 1340956dcb8SJim Quinlan #include <dt-bindings/interrupt-controller/irq.h> 1350956dcb8SJim Quinlan #include <dt-bindings/interrupt-controller/arm-gic.h> 1360956dcb8SJim Quinlan 1370956dcb8SJim Quinlan scb { 1380956dcb8SJim Quinlan #address-cells = <2>; 1390956dcb8SJim Quinlan #size-cells = <1>; 1400956dcb8SJim Quinlan pcie0: pcie@7d500000 { 1410956dcb8SJim Quinlan compatible = "brcm,bcm2711-pcie"; 1420956dcb8SJim Quinlan reg = <0x0 0x7d500000 0x9310>; 1430956dcb8SJim Quinlan device_type = "pci"; 1440956dcb8SJim Quinlan #address-cells = <3>; 1450956dcb8SJim Quinlan #size-cells = <2>; 1460956dcb8SJim Quinlan #interrupt-cells = <1>; 1470956dcb8SJim Quinlan interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>, 1480956dcb8SJim Quinlan <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>; 1490956dcb8SJim Quinlan interrupt-names = "pcie", "msi"; 1500956dcb8SJim Quinlan interrupt-map-mask = <0x0 0x0 0x0 0x7>; 1510956dcb8SJim Quinlan interrupt-map = <0 0 0 1 &gicv2 GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>; 1520956dcb8SJim Quinlan msi-parent = <&pcie0>; 1530956dcb8SJim Quinlan msi-controller; 1540956dcb8SJim Quinlan ranges = <0x02000000 0x0 0xf8000000 0x6 0x00000000 0x0 0x04000000>; 155e6f98b29SJim Quinlan dma-ranges = <0x42000000 0x1 0x00000000 0x0 0x40000000 0x0 0x80000000>, 156e6f98b29SJim Quinlan <0x42000000 0x1 0x80000000 0x3 0x00000000 0x0 0x80000000>; 1570956dcb8SJim Quinlan brcm,enable-ssc; 158e6f98b29SJim Quinlan brcm,scb-sizes = <0x0000000080000000 0x0000000080000000>; 1590956dcb8SJim Quinlan }; 1600956dcb8SJim Quinlan }; 161