The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/Bindings/pci/brcm,stb-pcie.yaml

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
    2 %YAML 1.2
    3 ---
    4 $id: http://devicetree.org/schemas/pci/brcm,stb-pcie.yaml#
    5 $schema: http://devicetree.org/meta-schemas/core.yaml#
    6 
    7 title: Brcmstb PCIe Host Controller Device Tree Bindings
    8 
    9 maintainers:
   10   - Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
   11 
   12 properties:
   13   compatible:
   14     items:
   15       - enum:
   16           - brcm,bcm2711-pcie # The Raspberry Pi 4
   17           - brcm,bcm4908-pcie
   18           - brcm,bcm7211-pcie # Broadcom STB version of RPi4
   19           - brcm,bcm7278-pcie # Broadcom 7278 Arm
   20           - brcm,bcm7216-pcie # Broadcom 7216 Arm
   21           - brcm,bcm7445-pcie # Broadcom 7445 Arm
   22           - brcm,bcm7425-pcie # Broadcom 7425 MIPs
   23           - brcm,bcm7435-pcie # Broadcom 7435 MIPs
   24 
   25   reg:
   26     maxItems: 1
   27 
   28   interrupts:
   29     minItems: 1
   30     items:
   31       - description: PCIe host controller
   32       - description: builtin MSI controller
   33 
   34   interrupt-names:
   35     minItems: 1
   36     items:
   37       - const: pcie
   38       - const: msi
   39 
   40   ranges:
   41     minItems: 1
   42     maxItems: 4
   43 
   44   dma-ranges:
   45     minItems: 1
   46     maxItems: 6
   47 
   48   clocks:
   49     maxItems: 1
   50 
   51   clock-names:
   52     items:
   53       - const: sw_pcie
   54 
   55   msi-controller:
   56     description: Identifies the node as an MSI controller.
   57 
   58   msi-parent:
   59     description: MSI controller the device is capable of using.
   60 
   61   brcm,enable-ssc:
   62     description: Indicates usage of spread-spectrum clocking.
   63     type: boolean
   64 
   65   aspm-no-l0s: true
   66 
   67   brcm,scb-sizes:
   68     description: u64 giving the 64bit PCIe memory
   69       viewport size of a memory controller.  There may be up to
   70       three controllers, and each size must be a power of two
   71       with a size greater or equal to the amount of memory the
   72       controller supports.  Note that each memory controller
   73       may have two component regions -- base and extended -- so
   74       this information cannot be deduced from the dma-ranges.
   75     $ref: /schemas/types.yaml#/definitions/uint64-array
   76     items:
   77       minItems: 1
   78       maxItems: 3
   79 
   80 required:
   81   - compatible
   82   - reg
   83   - ranges
   84   - dma-ranges
   85   - "#interrupt-cells"
   86   - interrupts
   87   - interrupt-names
   88   - interrupt-map-mask
   89   - interrupt-map
   90   - msi-controller
   91 
   92 allOf:
   93   - $ref: /schemas/pci/pci-bus.yaml#
   94   - $ref: /schemas/interrupt-controller/msi-controller.yaml#
   95   - if:
   96       properties:
   97         compatible:
   98           contains:
   99             const: brcm,bcm4908-pcie
  100     then:
  101       properties:
  102         resets:
  103           items:
  104             - description: reset controller handling the PERST# signal
  105 
  106         reset-names:
  107           items:
  108             - const: perst
  109 
  110       required:
  111         - resets
  112         - reset-names
  113   - if:
  114       properties:
  115         compatible:
  116           contains:
  117             const: brcm,bcm7216-pcie
  118     then:
  119       properties:
  120         resets:
  121           items:
  122             - description: phandle pointing to the RESCAL reset controller
  123 
  124         reset-names:
  125           items:
  126             - const: rescal
  127 
  128       required:
  129         - resets
  130         - reset-names
  131 
  132 unevaluatedProperties: false
  133 
  134 examples:
  135   - |
  136     #include <dt-bindings/interrupt-controller/irq.h>
  137     #include <dt-bindings/interrupt-controller/arm-gic.h>
  138 
  139     scb {
  140             #address-cells = <2>;
  141             #size-cells = <1>;
  142             pcie0: pcie@7d500000 {
  143                     compatible = "brcm,bcm2711-pcie";
  144                     reg = <0x0 0x7d500000 0x9310>;
  145                     device_type = "pci";
  146                     #address-cells = <3>;
  147                     #size-cells = <2>;
  148                     #interrupt-cells = <1>;
  149                     interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
  150                                  <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
  151                     interrupt-names = "pcie", "msi";
  152                     interrupt-map-mask = <0x0 0x0 0x0 0x7>;
  153                     interrupt-map = <0 0 0 1 &gicv2 GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH
  154                                      0 0 0 2 &gicv2 GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH
  155                                      0 0 0 3 &gicv2 GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH
  156                                      0 0 0 4 &gicv2 GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
  157 
  158                     msi-parent = <&pcie0>;
  159                     msi-controller;
  160                     ranges = <0x02000000 0x0 0xf8000000 0x6 0x00000000 0x0 0x04000000>;
  161                     dma-ranges = <0x42000000 0x1 0x00000000 0x0 0x40000000 0x0 0x80000000>,
  162                                  <0x42000000 0x1 0x80000000 0x3 0x00000000 0x0 0x80000000>;
  163                     brcm,enable-ssc;
  164                     brcm,scb-sizes =  <0x0000000080000000 0x0000000080000000>;
  165 
  166                     /* PCIe bridge, Root Port */
  167                     pci@0,0 {
  168                             #address-cells = <3>;
  169                             #size-cells = <2>;
  170                             reg = <0x0 0x0 0x0 0x0 0x0>;
  171                             compatible = "pciclass,0604";
  172                             device_type = "pci";
  173                             vpcie3v3-supply = <&vreg7>;
  174                             ranges;
  175 
  176                             /* PCIe endpoint */
  177                             pci-ep@0,0 {
  178                                     assigned-addresses =
  179                                         <0x82010000 0x0 0xf8000000 0x6 0x00000000 0x0 0x2000>;
  180                                     reg = <0x0 0x0 0x0 0x0 0x0>;
  181                                     compatible = "pci14e4,1688";
  182                             };
  183                     };
  184             };
  185     };

Cache object: b900bf8e7c96f86488f676c4e06e6802


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.