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/mediatek-pcie-gen3.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 OR BSD-2-Clause)
    2 %YAML 1.2
    3 ---
    4 $id: http://devicetree.org/schemas/pci/mediatek-pcie-gen3.yaml#
    5 $schema: http://devicetree.org/meta-schemas/core.yaml#
    6 
    7 title: Gen3 PCIe controller on MediaTek SoCs
    8 
    9 maintainers:
   10   - Jianjun Wang <jianjun.wang@mediatek.com>
   11 
   12 description: |+
   13   PCIe Gen3 MAC controller for MediaTek SoCs, it supports Gen3 speed
   14   and compatible with Gen2, Gen1 speed.
   15 
   16   This PCIe controller supports up to 256 MSI vectors, the MSI hardware
   17   block diagram is as follows:
   18 
   19                     +-----+
   20                     | GIC |
   21                     +-----+
   22                        ^
   23                        |
   24                    port->irq
   25                        |
   26                +-+-+-+-+-+-+-+-+
   27                |0|1|2|3|4|5|6|7| (PCIe intc)
   28                +-+-+-+-+-+-+-+-+
   29                 ^ ^           ^
   30                 | |    ...    |
   31         +-------+ +------+    +-----------+
   32         |                |                |
   33   +-+-+---+--+--+  +-+-+---+--+--+  +-+-+---+--+--+
   34   |0|1|...|30|31|  |0|1|...|30|31|  |0|1|...|30|31| (MSI sets)
   35   +-+-+---+--+--+  +-+-+---+--+--+  +-+-+---+--+--+
   36    ^ ^      ^  ^    ^ ^      ^  ^    ^ ^      ^  ^
   37    | |      |  |    | |      |  |    | |      |  |  (MSI vectors)
   38    | |      |  |    | |      |  |    | |      |  |
   39 
   40     (MSI SET0)       (MSI SET1)  ...   (MSI SET7)
   41 
   42   With 256 MSI vectors supported, the MSI vectors are composed of 8 sets,
   43   each set has its own address for MSI message, and supports 32 MSI vectors
   44   to generate interrupt.
   45 
   46 allOf:
   47   - $ref: /schemas/pci/pci-bus.yaml#
   48 
   49 properties:
   50   compatible:
   51     const: mediatek,mt8192-pcie
   52 
   53   reg:
   54     maxItems: 1
   55 
   56   reg-names:
   57     items:
   58       - const: pcie-mac
   59 
   60   interrupts:
   61     maxItems: 1
   62 
   63   ranges:
   64     minItems: 1
   65     maxItems: 8
   66 
   67   resets:
   68     minItems: 1
   69     maxItems: 2
   70 
   71   reset-names:
   72     minItems: 1
   73     items:
   74       - const: phy
   75       - const: mac
   76 
   77   clocks:
   78     maxItems: 6
   79 
   80   clock-names:
   81     items:
   82       - const: pl_250m
   83       - const: tl_26m
   84       - const: tl_96m
   85       - const: tl_32k
   86       - const: peri_26m
   87       - const: top_133m
   88 
   89   assigned-clocks:
   90     maxItems: 1
   91 
   92   assigned-clock-parents:
   93     maxItems: 1
   94 
   95   phys:
   96     maxItems: 1
   97 
   98   phy-names:
   99     items:
  100       - const: pcie-phy
  101 
  102   '#interrupt-cells':
  103     const: 1
  104 
  105   interrupt-controller:
  106     description: Interrupt controller node for handling legacy PCI interrupts.
  107     type: object
  108     properties:
  109       '#address-cells':
  110         const: 0
  111       '#interrupt-cells':
  112         const: 1
  113       interrupt-controller: true
  114 
  115     required:
  116       - '#address-cells'
  117       - '#interrupt-cells'
  118       - interrupt-controller
  119 
  120     additionalProperties: false
  121 
  122 required:
  123   - compatible
  124   - reg
  125   - reg-names
  126   - interrupts
  127   - ranges
  128   - clocks
  129   - '#interrupt-cells'
  130   - interrupt-controller
  131 
  132 unevaluatedProperties: false
  133 
  134 examples:
  135   - |
  136     #include <dt-bindings/interrupt-controller/arm-gic.h>
  137     #include <dt-bindings/interrupt-controller/irq.h>
  138 
  139     bus {
  140         #address-cells = <2>;
  141         #size-cells = <2>;
  142 
  143         pcie: pcie@11230000 {
  144             compatible = "mediatek,mt8192-pcie";
  145             device_type = "pci";
  146             #address-cells = <3>;
  147             #size-cells = <2>;
  148             reg = <0x00 0x11230000 0x00 0x4000>;
  149             reg-names = "pcie-mac";
  150             interrupts = <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH 0>;
  151             bus-range = <0x00 0xff>;
  152             ranges = <0x82000000 0x00 0x12000000 0x00
  153                       0x12000000 0x00 0x1000000>;
  154             clocks = <&infracfg 44>,
  155                      <&infracfg 40>,
  156                      <&infracfg 43>,
  157                      <&infracfg 97>,
  158                      <&infracfg 99>,
  159                      <&infracfg 111>;
  160             clock-names = "pl_250m", "tl_26m", "tl_96m",
  161                           "tl_32k", "peri_26m", "top_133m";
  162             assigned-clocks = <&topckgen 50>;
  163             assigned-clock-parents = <&topckgen 91>;
  164 
  165             phys = <&pciephy>;
  166             phy-names = "pcie-phy";
  167 
  168             resets = <&infracfg_rst 2>,
  169                      <&infracfg_rst 3>;
  170             reset-names = "phy", "mac";
  171 
  172             #interrupt-cells = <1>;
  173             interrupt-map-mask = <0 0 0 0x7>;
  174             interrupt-map = <0 0 0 1 &pcie_intc 0>,
  175                             <0 0 0 2 &pcie_intc 1>,
  176                             <0 0 0 3 &pcie_intc 2>,
  177                             <0 0 0 4 &pcie_intc 3>;
  178             pcie_intc: interrupt-controller {
  179                       #address-cells = <0>;
  180                       #interrupt-cells = <1>;
  181                       interrupt-controller;
  182             };
  183         };
  184     };

Cache object: 9dbcc33a2d6a90f08772e864c2117951


[ 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.