xref: /linux/Documentation/devicetree/bindings/pci/mediatek-pcie.yaml (revision 84318277d6334c6981ab326d4acc87c6a6ddc9b8)
199f98895SChristian Marangi# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
299f98895SChristian Marangi%YAML 1.2
399f98895SChristian Marangi---
499f98895SChristian Marangi$id: http://devicetree.org/schemas/pci/mediatek-pcie.yaml#
599f98895SChristian Marangi$schema: http://devicetree.org/meta-schemas/core.yaml#
699f98895SChristian Marangi
799f98895SChristian Marangititle: PCIe controller on MediaTek SoCs
899f98895SChristian Marangi
999f98895SChristian Marangimaintainers:
1099f98895SChristian Marangi  - Christian Marangi <ansuelsmth@gmail.com>
1199f98895SChristian Marangi
1299f98895SChristian Marangiproperties:
1399f98895SChristian Marangi  compatible:
1499f98895SChristian Marangi    oneOf:
1599f98895SChristian Marangi      - enum:
16*6d55d5a7SChristian Marangi          - airoha,an7583-pcie
1799f98895SChristian Marangi          - mediatek,mt2712-pcie
1899f98895SChristian Marangi          - mediatek,mt7622-pcie
1999f98895SChristian Marangi          - mediatek,mt7629-pcie
2099f98895SChristian Marangi      - items:
2199f98895SChristian Marangi          - const: airoha,en7523-pcie
2299f98895SChristian Marangi          - const: mediatek,mt7622-pcie
2399f98895SChristian Marangi
2499f98895SChristian Marangi  reg:
2599f98895SChristian Marangi    maxItems: 1
2699f98895SChristian Marangi
2799f98895SChristian Marangi  reg-names:
2899f98895SChristian Marangi    enum: [ port0, port1 ]
2999f98895SChristian Marangi
3099f98895SChristian Marangi  clocks:
3199f98895SChristian Marangi    minItems: 1
3299f98895SChristian Marangi    maxItems: 6
3399f98895SChristian Marangi
3499f98895SChristian Marangi  clock-names:
3599f98895SChristian Marangi    minItems: 1
3699f98895SChristian Marangi    items:
3799f98895SChristian Marangi      - enum: [ sys_ck0, sys_ck1 ]
3899f98895SChristian Marangi      - enum: [ ahb_ck0, ahb_ck1 ]
3999f98895SChristian Marangi      - enum: [ aux_ck0, aux_ck1 ]
4099f98895SChristian Marangi      - enum: [ axi_ck0, axi_ck1 ]
4199f98895SChristian Marangi      - enum: [ obff_ck0, obff_ck1 ]
4299f98895SChristian Marangi      - enum: [ pipe_ck0, pipe_ck1 ]
4399f98895SChristian Marangi
44*6d55d5a7SChristian Marangi  resets:
45*6d55d5a7SChristian Marangi    maxItems: 1
46*6d55d5a7SChristian Marangi
47*6d55d5a7SChristian Marangi  reset-names:
48*6d55d5a7SChristian Marangi    const: pcie-rst1
49*6d55d5a7SChristian Marangi
5099f98895SChristian Marangi  interrupts:
5199f98895SChristian Marangi    maxItems: 1
5299f98895SChristian Marangi
5399f98895SChristian Marangi  interrupt-names:
5499f98895SChristian Marangi    const: pcie_irq
5599f98895SChristian Marangi
5699f98895SChristian Marangi  phys:
5799f98895SChristian Marangi    maxItems: 1
5899f98895SChristian Marangi
5999f98895SChristian Marangi  phy-names:
6099f98895SChristian Marangi    enum: [ pcie-phy0, pcie-phy1 ]
6199f98895SChristian Marangi
6299f98895SChristian Marangi  power-domains:
6399f98895SChristian Marangi    maxItems: 1
6499f98895SChristian Marangi
65*6d55d5a7SChristian Marangi  mediatek,pbus-csr:
66*6d55d5a7SChristian Marangi    $ref: /schemas/types.yaml#/definitions/phandle-array
67*6d55d5a7SChristian Marangi    items:
68*6d55d5a7SChristian Marangi      - items:
69*6d55d5a7SChristian Marangi          - description: phandle to pbus-csr syscon
70*6d55d5a7SChristian Marangi          - description: offset of pbus-csr base address register
71*6d55d5a7SChristian Marangi          - description: offset of pbus-csr base address mask register
72*6d55d5a7SChristian Marangi    description:
73*6d55d5a7SChristian Marangi      Phandle with two arguments to the syscon node used to detect if
74*6d55d5a7SChristian Marangi      a given address is accessible on PCIe controller.
75*6d55d5a7SChristian Marangi
7699f98895SChristian Marangi  '#interrupt-cells':
7799f98895SChristian Marangi    const: 1
7899f98895SChristian Marangi
7999f98895SChristian Marangi  interrupt-controller:
8099f98895SChristian Marangi    description: Interrupt controller node for handling legacy PCI interrupts.
8199f98895SChristian Marangi    type: object
8299f98895SChristian Marangi    properties:
8399f98895SChristian Marangi      '#address-cells':
8499f98895SChristian Marangi        const: 0
8599f98895SChristian Marangi      '#interrupt-cells':
8699f98895SChristian Marangi        const: 1
8799f98895SChristian Marangi      interrupt-controller: true
8899f98895SChristian Marangi
8999f98895SChristian Marangi    required:
9099f98895SChristian Marangi      - '#address-cells'
9199f98895SChristian Marangi      - '#interrupt-cells'
9299f98895SChristian Marangi      - interrupt-controller
9399f98895SChristian Marangi
9499f98895SChristian Marangi    additionalProperties: false
9599f98895SChristian Marangi
9699f98895SChristian Marangirequired:
9799f98895SChristian Marangi  - compatible
9899f98895SChristian Marangi  - reg
9999f98895SChristian Marangi  - reg-names
10099f98895SChristian Marangi  - ranges
10199f98895SChristian Marangi  - clocks
10299f98895SChristian Marangi  - clock-names
10399f98895SChristian Marangi  - '#interrupt-cells'
10499f98895SChristian Marangi  - interrupts
10599f98895SChristian Marangi  - interrupt-names
10699f98895SChristian Marangi  - interrupt-controller
10799f98895SChristian Marangi
10899f98895SChristian MarangiallOf:
10999f98895SChristian Marangi  - $ref: /schemas/pci/pci-host-bridge.yaml#
11099f98895SChristian Marangi
11199f98895SChristian Marangi  - if:
11299f98895SChristian Marangi      properties:
11399f98895SChristian Marangi        compatible:
114*6d55d5a7SChristian Marangi          const: airoha,an7583-pcie
115*6d55d5a7SChristian Marangi    then:
116*6d55d5a7SChristian Marangi      properties:
117*6d55d5a7SChristian Marangi        reg-names:
118*6d55d5a7SChristian Marangi          const: port1
119*6d55d5a7SChristian Marangi
120*6d55d5a7SChristian Marangi        clocks:
121*6d55d5a7SChristian Marangi          maxItems: 1
122*6d55d5a7SChristian Marangi
123*6d55d5a7SChristian Marangi        clock-names:
124*6d55d5a7SChristian Marangi          const: sys_ck1
125*6d55d5a7SChristian Marangi
126*6d55d5a7SChristian Marangi        phy-names:
127*6d55d5a7SChristian Marangi          const: pcie-phy1
128*6d55d5a7SChristian Marangi
129*6d55d5a7SChristian Marangi        power-domain: false
130*6d55d5a7SChristian Marangi
131*6d55d5a7SChristian Marangi      required:
132*6d55d5a7SChristian Marangi        - resets
133*6d55d5a7SChristian Marangi        - reset-names
134*6d55d5a7SChristian Marangi        - phys
135*6d55d5a7SChristian Marangi        - phy-names
136*6d55d5a7SChristian Marangi        - mediatek,pbus-csr
137*6d55d5a7SChristian Marangi
138*6d55d5a7SChristian Marangi  - if:
139*6d55d5a7SChristian Marangi      properties:
140*6d55d5a7SChristian Marangi        compatible:
14199f98895SChristian Marangi          const: mediatek,mt2712-pcie
14299f98895SChristian Marangi    then:
14399f98895SChristian Marangi      properties:
14499f98895SChristian Marangi        clocks:
14599f98895SChristian Marangi          minItems: 2
14699f98895SChristian Marangi          maxItems: 2
14799f98895SChristian Marangi
14899f98895SChristian Marangi        clock-names:
14999f98895SChristian Marangi          minItems: 2
15099f98895SChristian Marangi          maxItems: 2
15199f98895SChristian Marangi
152*6d55d5a7SChristian Marangi        reset: false
153*6d55d5a7SChristian Marangi
154*6d55d5a7SChristian Marangi        reset-names: false
155*6d55d5a7SChristian Marangi
15699f98895SChristian Marangi        power-domains: false
15799f98895SChristian Marangi
158*6d55d5a7SChristian Marangi        mediatek,pbus-csr: false
159*6d55d5a7SChristian Marangi
16099f98895SChristian Marangi      required:
16199f98895SChristian Marangi        - phys
16299f98895SChristian Marangi        - phy-names
16399f98895SChristian Marangi
16499f98895SChristian Marangi  - if:
16599f98895SChristian Marangi      properties:
16699f98895SChristian Marangi        compatible:
16799f98895SChristian Marangi          const: mediatek,mt7622-pcie
16899f98895SChristian Marangi    then:
16999f98895SChristian Marangi      properties:
17099f98895SChristian Marangi        clocks:
17199f98895SChristian Marangi          minItems: 6
17299f98895SChristian Marangi
173*6d55d5a7SChristian Marangi        reset: false
174*6d55d5a7SChristian Marangi
175*6d55d5a7SChristian Marangi        reset-names: false
176*6d55d5a7SChristian Marangi
17799f98895SChristian Marangi        phys: false
17899f98895SChristian Marangi
17999f98895SChristian Marangi        phy-names: false
18099f98895SChristian Marangi
181*6d55d5a7SChristian Marangi        mediatek,pbus-csr: false
182*6d55d5a7SChristian Marangi
18399f98895SChristian Marangi      required:
18499f98895SChristian Marangi        - power-domains
18599f98895SChristian Marangi
18699f98895SChristian Marangi  - if:
18799f98895SChristian Marangi      properties:
18899f98895SChristian Marangi        compatible:
18999f98895SChristian Marangi          const: mediatek,mt7629-pcie
19099f98895SChristian Marangi    then:
19199f98895SChristian Marangi      properties:
19299f98895SChristian Marangi        clocks:
19399f98895SChristian Marangi          minItems: 6
19499f98895SChristian Marangi
195*6d55d5a7SChristian Marangi        reset: false
196*6d55d5a7SChristian Marangi
197*6d55d5a7SChristian Marangi        reset-names: false
198*6d55d5a7SChristian Marangi
199*6d55d5a7SChristian Marangi        mediatek,pbus-csr: false
200*6d55d5a7SChristian Marangi
20199f98895SChristian Marangi      required:
20299f98895SChristian Marangi        - power-domains
20399f98895SChristian Marangi
20499f98895SChristian Marangi  - if:
20599f98895SChristian Marangi      properties:
20699f98895SChristian Marangi        compatible:
20799f98895SChristian Marangi          contains:
20899f98895SChristian Marangi            const: airoha,en7523-pcie
20999f98895SChristian Marangi    then:
21099f98895SChristian Marangi      properties:
21199f98895SChristian Marangi        clocks:
21299f98895SChristian Marangi          maxItems: 1
21399f98895SChristian Marangi
21499f98895SChristian Marangi        clock-names:
21599f98895SChristian Marangi          maxItems: 1
21699f98895SChristian Marangi
217*6d55d5a7SChristian Marangi        reset: false
218*6d55d5a7SChristian Marangi
219*6d55d5a7SChristian Marangi        reset-names: false
220*6d55d5a7SChristian Marangi
22199f98895SChristian Marangi        phys: false
22299f98895SChristian Marangi
22399f98895SChristian Marangi        phy-names: false
22499f98895SChristian Marangi
22599f98895SChristian Marangi        power-domain: false
22699f98895SChristian Marangi
227*6d55d5a7SChristian Marangi        mediatek,pbus-csr: false
228*6d55d5a7SChristian Marangi
22999f98895SChristian MarangiunevaluatedProperties: false
23099f98895SChristian Marangi
23199f98895SChristian Marangiexamples:
23299f98895SChristian Marangi  # MT2712
23399f98895SChristian Marangi  - |
23499f98895SChristian Marangi    #include <dt-bindings/interrupt-controller/arm-gic.h>
23599f98895SChristian Marangi    #include <dt-bindings/interrupt-controller/irq.h>
23699f98895SChristian Marangi    #include <dt-bindings/phy/phy.h>
23799f98895SChristian Marangi
23899f98895SChristian Marangi    soc_1 {
23999f98895SChristian Marangi        #address-cells = <2>;
24099f98895SChristian Marangi        #size-cells = <2>;
24199f98895SChristian Marangi
24299f98895SChristian Marangi        pcie@112ff000 {
24399f98895SChristian Marangi            compatible = "mediatek,mt2712-pcie";
24499f98895SChristian Marangi            device_type = "pci";
24599f98895SChristian Marangi            reg = <0 0x112ff000 0 0x1000>;
24699f98895SChristian Marangi            reg-names = "port1";
24799f98895SChristian Marangi            linux,pci-domain = <1>;
24899f98895SChristian Marangi            #address-cells = <3>;
24999f98895SChristian Marangi            #size-cells = <2>;
25099f98895SChristian Marangi            interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
25199f98895SChristian Marangi            interrupt-names = "pcie_irq";
25299f98895SChristian Marangi            clocks = <&topckgen>, /* CLK_TOP_PE2_MAC_P1_SEL */
25399f98895SChristian Marangi                     <&pericfg>; /* CLK_PERI_PCIE1 */
25499f98895SChristian Marangi            clock-names = "sys_ck1", "ahb_ck1";
25599f98895SChristian Marangi            phys = <&u3port1 PHY_TYPE_PCIE>;
25699f98895SChristian Marangi            phy-names = "pcie-phy1";
25799f98895SChristian Marangi            bus-range = <0x00 0xff>;
25899f98895SChristian Marangi            ranges = <0x82000000 0 0x11400000  0x0 0x11400000  0 0x300000>;
25999f98895SChristian Marangi
26099f98895SChristian Marangi            #interrupt-cells = <1>;
26199f98895SChristian Marangi            interrupt-map-mask = <0 0 0 7>;
26299f98895SChristian Marangi            interrupt-map = <0 0 0 1 &pcie_intc1 0>,
26399f98895SChristian Marangi                            <0 0 0 2 &pcie_intc1 1>,
26499f98895SChristian Marangi                            <0 0 0 3 &pcie_intc1 2>,
26599f98895SChristian Marangi                            <0 0 0 4 &pcie_intc1 3>;
26699f98895SChristian Marangi            pcie_intc1: interrupt-controller {
26799f98895SChristian Marangi                interrupt-controller;
26899f98895SChristian Marangi                #address-cells = <0>;
26999f98895SChristian Marangi                #interrupt-cells = <1>;
27099f98895SChristian Marangi            };
27199f98895SChristian Marangi        };
27299f98895SChristian Marangi
27399f98895SChristian Marangi        pcie@11700000 {
27499f98895SChristian Marangi            compatible = "mediatek,mt2712-pcie";
27599f98895SChristian Marangi            device_type = "pci";
27699f98895SChristian Marangi            reg = <0 0x11700000 0 0x1000>;
27799f98895SChristian Marangi            reg-names = "port0";
27899f98895SChristian Marangi            linux,pci-domain = <0>;
27999f98895SChristian Marangi            #address-cells = <3>;
28099f98895SChristian Marangi            #size-cells = <2>;
28199f98895SChristian Marangi            interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
28299f98895SChristian Marangi            interrupt-names = "pcie_irq";
28399f98895SChristian Marangi            clocks = <&topckgen>, /* CLK_TOP_PE2_MAC_P0_SEL */
28499f98895SChristian Marangi                     <&pericfg>; /* CLK_PERI_PCIE0 */
28599f98895SChristian Marangi            clock-names = "sys_ck0", "ahb_ck0";
28699f98895SChristian Marangi            phys = <&u3port0 PHY_TYPE_PCIE>;
28799f98895SChristian Marangi            phy-names = "pcie-phy0";
28899f98895SChristian Marangi            bus-range = <0x00 0xff>;
28999f98895SChristian Marangi            ranges = <0x82000000 0 0x20000000 0x0 0x20000000 0 0x10000000>;
29099f98895SChristian Marangi
29199f98895SChristian Marangi            #interrupt-cells = <1>;
29299f98895SChristian Marangi            interrupt-map-mask = <0 0 0 7>;
29399f98895SChristian Marangi            interrupt-map = <0 0 0 1 &pcie_intc0 0>,
29499f98895SChristian Marangi                            <0 0 0 2 &pcie_intc0 1>,
29599f98895SChristian Marangi                            <0 0 0 3 &pcie_intc0 2>,
29699f98895SChristian Marangi                            <0 0 0 4 &pcie_intc0 3>;
29799f98895SChristian Marangi            pcie_intc0: interrupt-controller {
29899f98895SChristian Marangi                interrupt-controller;
29999f98895SChristian Marangi                #address-cells = <0>;
30099f98895SChristian Marangi                #interrupt-cells = <1>;
30199f98895SChristian Marangi            };
30299f98895SChristian Marangi        };
30399f98895SChristian Marangi    };
30499f98895SChristian Marangi
30599f98895SChristian Marangi  # MT7622
30699f98895SChristian Marangi  - |
30799f98895SChristian Marangi    #include <dt-bindings/interrupt-controller/arm-gic.h>
30899f98895SChristian Marangi    #include <dt-bindings/interrupt-controller/irq.h>
30999f98895SChristian Marangi    #include <dt-bindings/power/mt7622-power.h>
31099f98895SChristian Marangi
31199f98895SChristian Marangi    soc_2 {
31299f98895SChristian Marangi        #address-cells = <2>;
31399f98895SChristian Marangi        #size-cells = <2>;
31499f98895SChristian Marangi
31599f98895SChristian Marangi        pcie@1a143000 {
31699f98895SChristian Marangi            compatible = "mediatek,mt7622-pcie";
31799f98895SChristian Marangi            device_type = "pci";
31899f98895SChristian Marangi            reg = <0 0x1a143000 0 0x1000>;
31999f98895SChristian Marangi            reg-names = "port0";
32099f98895SChristian Marangi            linux,pci-domain = <0>;
32199f98895SChristian Marangi            #address-cells = <3>;
32299f98895SChristian Marangi            #size-cells = <2>;
32399f98895SChristian Marangi            interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_LOW>;
32499f98895SChristian Marangi            interrupt-names = "pcie_irq";
32599f98895SChristian Marangi            clocks = <&pciesys>, /* CLK_PCIE_P0_MAC_EN */
32699f98895SChristian Marangi                     <&pciesys>, /* CLK_PCIE_P0_AHB_EN */
32799f98895SChristian Marangi                     <&pciesys>, /* CLK_PCIE_P0_AUX_EN */
32899f98895SChristian Marangi                     <&pciesys>, /* CLK_PCIE_P0_AXI_EN */
32999f98895SChristian Marangi                     <&pciesys>, /* CLK_PCIE_P0_OBFF_EN */
33099f98895SChristian Marangi                     <&pciesys>; /* CLK_PCIE_P0_PIPE_EN */
33199f98895SChristian Marangi            clock-names = "sys_ck0", "ahb_ck0", "aux_ck0",
33299f98895SChristian Marangi                          "axi_ck0", "obff_ck0", "pipe_ck0";
33399f98895SChristian Marangi
33499f98895SChristian Marangi            power-domains = <&scpsys MT7622_POWER_DOMAIN_HIF0>;
33599f98895SChristian Marangi            bus-range = <0x00 0xff>;
33699f98895SChristian Marangi            ranges = <0x82000000 0 0x20000000  0x0 0x20000000  0 0x8000000>;
33799f98895SChristian Marangi
33899f98895SChristian Marangi            #interrupt-cells = <1>;
33999f98895SChristian Marangi            interrupt-map-mask = <0 0 0 7>;
34099f98895SChristian Marangi            interrupt-map = <0 0 0 1 &pcie_intc0_1 0>,
34199f98895SChristian Marangi                            <0 0 0 2 &pcie_intc0_1 1>,
34299f98895SChristian Marangi                            <0 0 0 3 &pcie_intc0_1 2>,
34399f98895SChristian Marangi                            <0 0 0 4 &pcie_intc0_1 3>;
34499f98895SChristian Marangi            pcie_intc0_1: interrupt-controller {
34599f98895SChristian Marangi                interrupt-controller;
34699f98895SChristian Marangi                #address-cells = <0>;
34799f98895SChristian Marangi                #interrupt-cells = <1>;
34899f98895SChristian Marangi            };
34999f98895SChristian Marangi        };
35099f98895SChristian Marangi
35199f98895SChristian Marangi        pcie@1a145000 {
35299f98895SChristian Marangi            compatible = "mediatek,mt7622-pcie";
35399f98895SChristian Marangi            device_type = "pci";
35499f98895SChristian Marangi            reg = <0 0x1a145000 0 0x1000>;
35599f98895SChristian Marangi            reg-names = "port1";
35699f98895SChristian Marangi            linux,pci-domain = <1>;
35799f98895SChristian Marangi            #address-cells = <3>;
35899f98895SChristian Marangi            #size-cells = <2>;
35999f98895SChristian Marangi            interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_LOW>;
36099f98895SChristian Marangi            interrupt-names = "pcie_irq";
36199f98895SChristian Marangi            clocks = <&pciesys>, /* CLK_PCIE_P1_MAC_EN */
36299f98895SChristian Marangi                     /* designer has connect RC1 with p0_ahb clock */
36399f98895SChristian Marangi                     <&pciesys>, /* CLK_PCIE_P0_AHB_EN */
36499f98895SChristian Marangi                     <&pciesys>, /* CLK_PCIE_P1_AUX_EN */
36599f98895SChristian Marangi                     <&pciesys>, /* CLK_PCIE_P1_AXI_EN */
36699f98895SChristian Marangi                     <&pciesys>, /* CLK_PCIE_P1_OBFF_EN */
36799f98895SChristian Marangi                     <&pciesys>; /* CLK_PCIE_P1_PIPE_EN */
36899f98895SChristian Marangi            clock-names = "sys_ck1", "ahb_ck1", "aux_ck1",
36999f98895SChristian Marangi                          "axi_ck1", "obff_ck1", "pipe_ck1";
37099f98895SChristian Marangi
37199f98895SChristian Marangi            power-domains = <&scpsys MT7622_POWER_DOMAIN_HIF0>;
37299f98895SChristian Marangi            bus-range = <0x00 0xff>;
37399f98895SChristian Marangi            ranges = <0x82000000 0 0x28000000  0x0 0x28000000  0 0x8000000>;
37499f98895SChristian Marangi
37599f98895SChristian Marangi            #interrupt-cells = <1>;
37699f98895SChristian Marangi            interrupt-map-mask = <0 0 0 7>;
37799f98895SChristian Marangi            interrupt-map = <0 0 0 1 &pcie_intc1_1 0>,
37899f98895SChristian Marangi                            <0 0 0 2 &pcie_intc1_1 1>,
37999f98895SChristian Marangi                            <0 0 0 3 &pcie_intc1_1 2>,
38099f98895SChristian Marangi                            <0 0 0 4 &pcie_intc1_1 3>;
38199f98895SChristian Marangi            pcie_intc1_1: interrupt-controller {
38299f98895SChristian Marangi                interrupt-controller;
38399f98895SChristian Marangi                #address-cells = <0>;
38499f98895SChristian Marangi                #interrupt-cells = <1>;
38599f98895SChristian Marangi            };
38699f98895SChristian Marangi        };
38799f98895SChristian Marangi    };
388*6d55d5a7SChristian Marangi
389*6d55d5a7SChristian Marangi  # AN7583
390*6d55d5a7SChristian Marangi  - |
391*6d55d5a7SChristian Marangi    #include <dt-bindings/interrupt-controller/irq.h>
392*6d55d5a7SChristian Marangi    #include <dt-bindings/interrupt-controller/arm-gic.h>
393*6d55d5a7SChristian Marangi    #include <dt-bindings/clock/en7523-clk.h>
394*6d55d5a7SChristian Marangi
395*6d55d5a7SChristian Marangi    soc_3 {
396*6d55d5a7SChristian Marangi        #address-cells = <2>;
397*6d55d5a7SChristian Marangi        #size-cells = <2>;
398*6d55d5a7SChristian Marangi
399*6d55d5a7SChristian Marangi        pcie@1fa92000 {
400*6d55d5a7SChristian Marangi            compatible = "airoha,an7583-pcie";
401*6d55d5a7SChristian Marangi            device_type = "pci";
402*6d55d5a7SChristian Marangi            linux,pci-domain = <1>;
403*6d55d5a7SChristian Marangi            #address-cells = <3>;
404*6d55d5a7SChristian Marangi            #size-cells = <2>;
405*6d55d5a7SChristian Marangi
406*6d55d5a7SChristian Marangi            reg = <0x0 0x1fa92000 0x0 0x1670>;
407*6d55d5a7SChristian Marangi            reg-names = "port1";
408*6d55d5a7SChristian Marangi
409*6d55d5a7SChristian Marangi            clocks = <&scuclk EN7523_CLK_PCIE>;
410*6d55d5a7SChristian Marangi            clock-names = "sys_ck1";
411*6d55d5a7SChristian Marangi
412*6d55d5a7SChristian Marangi            phys = <&pciephy>;
413*6d55d5a7SChristian Marangi            phy-names = "pcie-phy1";
414*6d55d5a7SChristian Marangi
415*6d55d5a7SChristian Marangi            ranges = <0x02000000 0 0x24000000 0x0 0x24000000 0 0x4000000>;
416*6d55d5a7SChristian Marangi
417*6d55d5a7SChristian Marangi            resets = <&scuclk>; /* AN7583_PCIE1_RST */
418*6d55d5a7SChristian Marangi            reset-names = "pcie-rst1";
419*6d55d5a7SChristian Marangi
420*6d55d5a7SChristian Marangi            mediatek,pbus-csr = <&pbus_csr 0x8 0xc>;
421*6d55d5a7SChristian Marangi
422*6d55d5a7SChristian Marangi            interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
423*6d55d5a7SChristian Marangi            interrupt-names = "pcie_irq";
424*6d55d5a7SChristian Marangi            bus-range = <0x00 0xff>;
425*6d55d5a7SChristian Marangi            #interrupt-cells = <1>;
426*6d55d5a7SChristian Marangi            interrupt-map-mask = <0 0 0 7>;
427*6d55d5a7SChristian Marangi            interrupt-map = <0 0 0 1 &pcie_intc1 0>,
428*6d55d5a7SChristian Marangi                            <0 0 0 2 &pcie_intc1 1>,
429*6d55d5a7SChristian Marangi                            <0 0 0 3 &pcie_intc1 2>,
430*6d55d5a7SChristian Marangi                            <0 0 0 4 &pcie_intc1 3>;
431*6d55d5a7SChristian Marangi
432*6d55d5a7SChristian Marangi            pcie_intc1_4: interrupt-controller {
433*6d55d5a7SChristian Marangi                interrupt-controller;
434*6d55d5a7SChristian Marangi                #address-cells = <0>;
435*6d55d5a7SChristian Marangi                #interrupt-cells = <1>;
436*6d55d5a7SChristian Marangi            };
437*6d55d5a7SChristian Marangi        };
438*6d55d5a7SChristian Marangi    };
439