1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/pci/intel-gw-pcie.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: PCIe RC controller on Intel Gateway SoCs
8
9maintainers:
10  - Dilip Kota <eswara.kota@linux.intel.com>
11
12select:
13  properties:
14    compatible:
15      contains:
16        const: intel,lgm-pcie
17  required:
18    - compatible
19
20properties:
21  compatible:
22    items:
23      - const: intel,lgm-pcie
24      - const: snps,dw-pcie
25
26  device_type:
27    const: pci
28
29  "#address-cells":
30    const: 3
31
32  "#size-cells":
33    const: 2
34
35  reg:
36    items:
37      - description: Controller control and status registers.
38      - description: PCIe configuration registers.
39      - description: Controller application registers.
40
41  reg-names:
42    items:
43      - const: dbi
44      - const: config
45      - const: app
46
47  ranges:
48    maxItems: 1
49
50  resets:
51    maxItems: 1
52
53  clocks:
54    maxItems: 1
55
56  phys:
57    maxItems: 1
58
59  phy-names:
60    const: pcie
61
62  reset-gpios:
63    maxItems: 1
64
65  linux,pci-domain: true
66
67  num-lanes:
68    maximum: 2
69    description: Number of lanes to use for this port.
70
71  '#interrupt-cells':
72    const: 1
73
74  interrupt-map-mask:
75    description: Standard PCI IRQ mapping properties.
76
77  interrupt-map:
78    description: Standard PCI IRQ mapping properties.
79
80  max-link-speed:
81    description: Specify PCI Gen for link capability.
82    $ref: /schemas/types.yaml#/definitions/uint32
83    enum: [1, 2, 3, 4]
84    default: 1
85
86  bus-range:
87    description: Range of bus numbers associated with this controller.
88
89  reset-assert-ms:
90    description: |
91      Delay after asserting reset to the PCIe device.
92    maximum: 500
93    default: 100
94
95required:
96  - compatible
97  - device_type
98  - "#address-cells"
99  - "#size-cells"
100  - reg
101  - reg-names
102  - ranges
103  - resets
104  - clocks
105  - phys
106  - phy-names
107  - reset-gpios
108  - '#interrupt-cells'
109  - interrupt-map
110  - interrupt-map-mask
111
112additionalProperties: false
113
114examples:
115  - |
116    #include <dt-bindings/gpio/gpio.h>
117    pcie10: pcie@d0e00000 {
118      compatible = "intel,lgm-pcie", "snps,dw-pcie";
119      device_type = "pci";
120      #address-cells = <3>;
121      #size-cells = <2>;
122      reg = <0xd0e00000 0x1000>,
123            <0xd2000000 0x800000>,
124            <0xd0a41000 0x1000>;
125      reg-names = "dbi", "config", "app";
126      linux,pci-domain = <0>;
127      max-link-speed = <4>;
128      bus-range = <0x00 0x08>;
129      #interrupt-cells = <1>;
130      interrupt-map-mask = <0 0 0 0x7>;
131      interrupt-map = <0 0 0 1 &ioapic1 27 1>,
132                      <0 0 0 2 &ioapic1 28 1>,
133                      <0 0 0 3 &ioapic1 29 1>,
134                      <0 0 0 4 &ioapic1 30 1>;
135      ranges = <0x02000000 0 0xd4000000 0xd4000000 0 0x04000000>;
136      resets = <&rcu0 0x50 0>;
137      clocks = <&cgu0 120>;
138      phys = <&cb0phy0>;
139      phy-names = "pcie";
140      reset-assert-ms = <500>;
141      reset-gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
142      num-lanes = <2>;
143    };
144