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 17f435ce7eSRafał 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 22*145790e5SJim Quinlan - brcm,bcm7425-pcie # Broadcom 7425 MIPs 23*145790e5SJim Quinlan - brcm,bcm7435-pcie # Broadcom 7435 MIPs 240956dcb8SJim Quinlan 250956dcb8SJim Quinlan reg: 260956dcb8SJim Quinlan maxItems: 1 270956dcb8SJim Quinlan 280956dcb8SJim Quinlan interrupts: 290956dcb8SJim Quinlan minItems: 1 300956dcb8SJim Quinlan items: 310956dcb8SJim Quinlan - description: PCIe host controller 320956dcb8SJim Quinlan - description: builtin MSI controller 330956dcb8SJim Quinlan 340956dcb8SJim Quinlan interrupt-names: 350956dcb8SJim Quinlan minItems: 1 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# 932e8b4b6eSMark Kettenis - $ref: /schemas/interrupt-controller/msi-controller.yaml# 94e6f98b29SJim Quinlan - if: 95e6f98b29SJim Quinlan properties: 96e6f98b29SJim Quinlan compatible: 97e6f98b29SJim Quinlan contains: 98f435ce7eSRafał Miłecki const: brcm,bcm4908-pcie 99f435ce7eSRafał Miłecki then: 100f435ce7eSRafał Miłecki properties: 101f435ce7eSRafał Miłecki resets: 102f435ce7eSRafał Miłecki items: 103f435ce7eSRafał Miłecki - description: reset controller handling the PERST# signal 104f435ce7eSRafał Miłecki 105f435ce7eSRafał Miłecki reset-names: 106f435ce7eSRafał Miłecki items: 107f435ce7eSRafał Miłecki - const: perst 108f435ce7eSRafał Miłecki 109f435ce7eSRafał Miłecki required: 110f435ce7eSRafał Miłecki - resets 111f435ce7eSRafał Miłecki - reset-names 112f435ce7eSRafał Miłecki - if: 113f435ce7eSRafał Miłecki properties: 114f435ce7eSRafał Miłecki compatible: 115f435ce7eSRafał Miłecki contains: 116e6f98b29SJim Quinlan const: brcm,bcm7216-pcie 117e6f98b29SJim Quinlan then: 118f435ce7eSRafał Miłecki properties: 119f435ce7eSRafał Miłecki resets: 120f435ce7eSRafał Miłecki items: 121f435ce7eSRafał Miłecki - description: phandle pointing to the RESCAL reset controller 122f435ce7eSRafał Miłecki 123f435ce7eSRafał Miłecki reset-names: 124f435ce7eSRafał Miłecki items: 125f435ce7eSRafał Miłecki - const: rescal 126f435ce7eSRafał Miłecki 127e6f98b29SJim Quinlan required: 128e6f98b29SJim Quinlan - resets 129e6f98b29SJim Quinlan - reset-names 130e6f98b29SJim Quinlan 1310956dcb8SJim QuinlanunevaluatedProperties: false 1320956dcb8SJim Quinlan 1330956dcb8SJim Quinlanexamples: 1340956dcb8SJim Quinlan - | 1350956dcb8SJim Quinlan #include <dt-bindings/interrupt-controller/irq.h> 1360956dcb8SJim Quinlan #include <dt-bindings/interrupt-controller/arm-gic.h> 1370956dcb8SJim Quinlan 1380956dcb8SJim Quinlan scb { 1390956dcb8SJim Quinlan #address-cells = <2>; 1400956dcb8SJim Quinlan #size-cells = <1>; 1410956dcb8SJim Quinlan pcie0: pcie@7d500000 { 1420956dcb8SJim Quinlan compatible = "brcm,bcm2711-pcie"; 1430956dcb8SJim Quinlan reg = <0x0 0x7d500000 0x9310>; 1440956dcb8SJim Quinlan device_type = "pci"; 1450956dcb8SJim Quinlan #address-cells = <3>; 1460956dcb8SJim Quinlan #size-cells = <2>; 1470956dcb8SJim Quinlan #interrupt-cells = <1>; 1480956dcb8SJim Quinlan interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>, 1490956dcb8SJim Quinlan <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>; 1500956dcb8SJim Quinlan interrupt-names = "pcie", "msi"; 1510956dcb8SJim Quinlan interrupt-map-mask = <0x0 0x0 0x0 0x7>; 1520956dcb8SJim Quinlan interrupt-map = <0 0 0 1 &gicv2 GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>; 1530956dcb8SJim Quinlan msi-parent = <&pcie0>; 1540956dcb8SJim Quinlan msi-controller; 1550956dcb8SJim Quinlan ranges = <0x02000000 0x0 0xf8000000 0x6 0x00000000 0x0 0x04000000>; 156e6f98b29SJim Quinlan dma-ranges = <0x42000000 0x1 0x00000000 0x0 0x40000000 0x0 0x80000000>, 157e6f98b29SJim Quinlan <0x42000000 0x1 0x80000000 0x3 0x00000000 0x0 0x80000000>; 1580956dcb8SJim Quinlan brcm,enable-ssc; 159e6f98b29SJim Quinlan brcm,scb-sizes = <0x0000000080000000 0x0000000080000000>; 1600956dcb8SJim Quinlan }; 1610956dcb8SJim Quinlan }; 162