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