File Index
Files and directories
Sign in
FILE

mediatek,mt7621-pcie.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/pci/mediatek,mt7621-pcie.yaml YAML
  1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2%YAML 1.2
  3---
  4$id: http://devicetree.org/schemas/pci/mediatek,mt7621-pcie.yaml#
  5$schema: http://devicetree.org/meta-schemas/core.yaml#
  6
  7title: MediaTek MT7621 PCIe controller
  8
  9maintainers:
 10  - Sergio Paracuellos <sergio.paracuellos@gmail.com>
 11
 12description: |+
 13  MediaTek MT7621 PCIe subsys supports a single Root Complex (RC)
 14  with 3 Root Ports. Each Root Port supports a Gen1 1-lane Link
 15
 16                          MT7621 PCIe HOST Topology
 17
 18                                   .-------.
 19                                   |       |
 20                                   |  CPU  |
 21                                   |       |
 22                                   '-------'
 23                                       |
 24                                       |
 25                                       |
 26                                       v
 27                              .------------------.
 28                  .-----------|  HOST/PCI Bridge |------------.
 29                  |           '------------------'            | Type1
 30             BUS0 |                     |                     | Access
 31                  v                     v                     v On Bus0
 32          .-------------.        .-------------.       .-------------.
 33          | VIRTUAL P2P |        | VIRTUAL P2P |       | VIRTUAL P2P |
 34          |    BUS0     |        |    BUS0     |       |    BUS0     |
 35          |    DEV0     |        |    DEV1     |       |    DEV2     |
 36          '-------------'        '-------------'       '-------------'
 37    Type0        |          Type0       |         Type0       |
 38   Access   BUS1 |         Access   BUS2|        Access   BUS3|
 39   On Bus1       v         On Bus2      v        On Bus3      v
 40           .----------.           .----------.          .----------.
 41           | Device 0 |           | Device 0 |          | Device 0 |
 42           |  Func 0  |           |  Func 0  |          |  Func 0  |
 43           '----------'           '----------'          '----------'
 44
 45allOf:
 46  - $ref: /schemas/pci/pci-host-bridge.yaml#
 47
 48properties:
 49  compatible:
 50    const: mediatek,mt7621-pci
 51
 52  reg:
 53    items:
 54      - description: host-pci bridge registers
 55      - description: pcie port 0 RC control registers
 56      - description: pcie port 1 RC control registers
 57      - description: pcie port 2 RC control registers
 58
 59  ranges:
 60    maxItems: 2
 61
 62patternProperties:
 63  '^pcie@[0-2],0$':
 64    type: object
 65    $ref: /schemas/pci/pci-pci-bridge.yaml#
 66
 67    properties:
 68      reg:
 69        maxItems: 1
 70
 71      resets:
 72        maxItems: 1
 73
 74      clocks:
 75        maxItems: 1
 76
 77      phys:
 78        maxItems: 1
 79
 80      phy-names:
 81        pattern: '^pcie-phy[0-2]$'
 82
 83    required:
 84      - "#interrupt-cells"
 85      - interrupt-map-mask
 86      - interrupt-map
 87      - resets
 88      - clocks
 89      - phys
 90      - phy-names
 91      - ranges
 92
 93    unevaluatedProperties: false
 94
 95required:
 96  - compatible
 97  - reg
 98  - ranges
 99  - "#interrupt-cells"
100  - interrupt-map-mask
101  - interrupt-map
102  - reset-gpios
103
104unevaluatedProperties: false
105
106examples:
107  - |
108    #include <dt-bindings/gpio/gpio.h>
109    #include <dt-bindings/interrupt-controller/mips-gic.h>
110
111    pcie: pcie@1e140000 {
112        compatible = "mediatek,mt7621-pci";
113        reg = <0x1e140000 0x100>,
114              <0x1e142000 0x100>,
115              <0x1e143000 0x100>,
116              <0x1e144000 0x100>;
117
118        #address-cells = <3>;
119        #size-cells = <2>;
120        pinctrl-names = "default";
121        pinctrl-0 = <&pcie_pins>;
122        device_type = "pci";
123        ranges = <0x02000000 0 0x60000000 0x60000000 0 0x10000000>,  /* pci memory */
124                 <0x01000000 0 0x1e160000 0x1e160000 0 0x00010000>;  /* io space */
125        #interrupt-cells = <1>;
126        interrupt-map-mask = <0xF800 0 0 0>;
127        interrupt-map = <0x0000 0 0 0 &gic GIC_SHARED 4 IRQ_TYPE_LEVEL_HIGH>,
128                        <0x0800 0 0 0 &gic GIC_SHARED 24 IRQ_TYPE_LEVEL_HIGH>,
129                        <0x1000 0 0 0 &gic GIC_SHARED 25 IRQ_TYPE_LEVEL_HIGH>;
130        reset-gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
131
132        pcie@0,0 {
133            reg = <0x0000 0 0 0 0>;
134            #address-cells = <3>;
135            #size-cells = <2>;
136            device_type = "pci";
137            #interrupt-cells = <1>;
138            interrupt-map-mask = <0 0 0 0>;
139            interrupt-map = <0 0 0 0 &gic GIC_SHARED 4 IRQ_TYPE_LEVEL_HIGH>;
140            resets = <&rstctrl 24>;
141            clocks = <&clkctrl 24>;
142            phys = <&pcie0_phy 1>;
143            phy-names = "pcie-phy0";
144            ranges;
145        };
146
147        pcie@1,0 {
148            reg = <0x0800 0 0 0 0>;
149            #address-cells = <3>;
150            #size-cells = <2>;
151            device_type = "pci";
152            #interrupt-cells = <1>;
153            interrupt-map-mask = <0 0 0 0>;
154            interrupt-map = <0 0 0 0 &gic GIC_SHARED 24 IRQ_TYPE_LEVEL_HIGH>;
155            resets = <&rstctrl 25>;
156            clocks = <&clkctrl 25>;
157            phys = <&pcie0_phy 1>;
158            phy-names = "pcie-phy1";
159            ranges;
160        };
161
162        pcie@2,0 {
163            reg = <0x1000 0 0 0 0>;
164            #address-cells = <3>;
165            #size-cells = <2>;
166            device_type = "pci";
167            #interrupt-cells = <1>;
168            interrupt-map-mask = <0 0 0 0>;
169            interrupt-map = <0 0 0 0 &gic GIC_SHARED 25 IRQ_TYPE_LEVEL_HIGH>;
170            resets = <&rstctrl 26>;
171            clocks = <&clkctrl 26>;
172            phys = <&pcie2_phy 0>;
173            phy-names = "pcie-phy2";
174            ranges;
175        };
176    };
177...
~/ Read-only file preview.