xref: /freebsd-src/sys/contrib/device-tree/Bindings/pci/intel-gw-pcie.yaml (revision 354d7675fe12ace9cde344cb79c7ded792802f88)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/pci/intel-gw-pcie.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadottitle: PCIe RC controller on Intel Gateway SoCs
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10*354d7675SEmmanuel Vadot  - Rahul Tanwar <rtanwar@maxlinear.com>
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel Vadotselect:
13c66ec88fSEmmanuel Vadot  properties:
14c66ec88fSEmmanuel Vadot    compatible:
15c66ec88fSEmmanuel Vadot      contains:
16c66ec88fSEmmanuel Vadot        const: intel,lgm-pcie
17c66ec88fSEmmanuel Vadot  required:
18c66ec88fSEmmanuel Vadot    - compatible
19c66ec88fSEmmanuel Vadot
20*354d7675SEmmanuel VadotallOf:
21*354d7675SEmmanuel Vadot  - $ref: /schemas/pci/snps,dw-pcie.yaml#
22*354d7675SEmmanuel Vadot
23c66ec88fSEmmanuel Vadotproperties:
24c66ec88fSEmmanuel Vadot  compatible:
25c66ec88fSEmmanuel Vadot    items:
26c66ec88fSEmmanuel Vadot      - const: intel,lgm-pcie
27c66ec88fSEmmanuel Vadot      - const: snps,dw-pcie
28c66ec88fSEmmanuel Vadot
29c66ec88fSEmmanuel Vadot  reg:
30c66ec88fSEmmanuel Vadot    items:
31c66ec88fSEmmanuel Vadot      - description: Controller control and status registers.
32c66ec88fSEmmanuel Vadot      - description: PCIe configuration registers.
33c66ec88fSEmmanuel Vadot      - description: Controller application registers.
34c66ec88fSEmmanuel Vadot
35c66ec88fSEmmanuel Vadot  reg-names:
36c66ec88fSEmmanuel Vadot    items:
37c66ec88fSEmmanuel Vadot      - const: dbi
38c66ec88fSEmmanuel Vadot      - const: config
39c66ec88fSEmmanuel Vadot      - const: app
40c66ec88fSEmmanuel Vadot
41c66ec88fSEmmanuel Vadot  ranges:
42c66ec88fSEmmanuel Vadot    maxItems: 1
43c66ec88fSEmmanuel Vadot
44c66ec88fSEmmanuel Vadot  resets:
45c66ec88fSEmmanuel Vadot    maxItems: 1
46c66ec88fSEmmanuel Vadot
47c66ec88fSEmmanuel Vadot  clocks:
48c66ec88fSEmmanuel Vadot    maxItems: 1
49c66ec88fSEmmanuel Vadot
50c66ec88fSEmmanuel Vadot  phys:
51c66ec88fSEmmanuel Vadot    maxItems: 1
52c66ec88fSEmmanuel Vadot
53c66ec88fSEmmanuel Vadot  phy-names:
54c66ec88fSEmmanuel Vadot    const: pcie
55c66ec88fSEmmanuel Vadot
56c66ec88fSEmmanuel Vadot  reset-gpios:
57c66ec88fSEmmanuel Vadot    maxItems: 1
58c66ec88fSEmmanuel Vadot
59c66ec88fSEmmanuel Vadot  num-lanes:
60c66ec88fSEmmanuel Vadot    maximum: 2
61c66ec88fSEmmanuel Vadot
62c66ec88fSEmmanuel Vadot  max-link-speed:
63c66ec88fSEmmanuel Vadot    enum: [1, 2, 3, 4]
64c66ec88fSEmmanuel Vadot    default: 1
65c66ec88fSEmmanuel Vadot
66c66ec88fSEmmanuel Vadot  reset-assert-ms:
67c66ec88fSEmmanuel Vadot    description: |
68c66ec88fSEmmanuel Vadot      Delay after asserting reset to the PCIe device.
69c66ec88fSEmmanuel Vadot    maximum: 500
70c66ec88fSEmmanuel Vadot    default: 100
71c66ec88fSEmmanuel Vadot
72c66ec88fSEmmanuel Vadotrequired:
73c66ec88fSEmmanuel Vadot  - compatible
74c66ec88fSEmmanuel Vadot  - reg
75c66ec88fSEmmanuel Vadot  - reg-names
76c66ec88fSEmmanuel Vadot  - ranges
77c66ec88fSEmmanuel Vadot  - resets
78c66ec88fSEmmanuel Vadot  - clocks
79c66ec88fSEmmanuel Vadot  - phys
80c66ec88fSEmmanuel Vadot  - phy-names
81c66ec88fSEmmanuel Vadot  - reset-gpios
82c66ec88fSEmmanuel Vadot  - '#interrupt-cells'
83c66ec88fSEmmanuel Vadot  - interrupt-map
84c66ec88fSEmmanuel Vadot  - interrupt-map-mask
85c66ec88fSEmmanuel Vadot
86*354d7675SEmmanuel VadotunevaluatedProperties: false
87c66ec88fSEmmanuel Vadot
88c66ec88fSEmmanuel Vadotexamples:
89c66ec88fSEmmanuel Vadot  - |
90c66ec88fSEmmanuel Vadot    #include <dt-bindings/gpio/gpio.h>
91c66ec88fSEmmanuel Vadot    pcie10: pcie@d0e00000 {
92c66ec88fSEmmanuel Vadot      compatible = "intel,lgm-pcie", "snps,dw-pcie";
93c66ec88fSEmmanuel Vadot      device_type = "pci";
94c66ec88fSEmmanuel Vadot      #address-cells = <3>;
95c66ec88fSEmmanuel Vadot      #size-cells = <2>;
96c66ec88fSEmmanuel Vadot      reg = <0xd0e00000 0x1000>,
97c66ec88fSEmmanuel Vadot            <0xd2000000 0x800000>,
98c66ec88fSEmmanuel Vadot            <0xd0a41000 0x1000>;
99c66ec88fSEmmanuel Vadot      reg-names = "dbi", "config", "app";
100c66ec88fSEmmanuel Vadot      linux,pci-domain = <0>;
101c66ec88fSEmmanuel Vadot      max-link-speed = <4>;
102c66ec88fSEmmanuel Vadot      bus-range = <0x00 0x08>;
103c66ec88fSEmmanuel Vadot      #interrupt-cells = <1>;
104c66ec88fSEmmanuel Vadot      interrupt-map-mask = <0 0 0 0x7>;
105c66ec88fSEmmanuel Vadot      interrupt-map = <0 0 0 1 &ioapic1 27 1>,
106c66ec88fSEmmanuel Vadot                      <0 0 0 2 &ioapic1 28 1>,
107c66ec88fSEmmanuel Vadot                      <0 0 0 3 &ioapic1 29 1>,
108c66ec88fSEmmanuel Vadot                      <0 0 0 4 &ioapic1 30 1>;
109c66ec88fSEmmanuel Vadot      ranges = <0x02000000 0 0xd4000000 0xd4000000 0 0x04000000>;
110c66ec88fSEmmanuel Vadot      resets = <&rcu0 0x50 0>;
111c66ec88fSEmmanuel Vadot      clocks = <&cgu0 120>;
112c66ec88fSEmmanuel Vadot      phys = <&cb0phy0>;
113c66ec88fSEmmanuel Vadot      phy-names = "pcie";
114c66ec88fSEmmanuel Vadot      reset-assert-ms = <500>;
115c66ec88fSEmmanuel Vadot      reset-gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
116c66ec88fSEmmanuel Vadot      num-lanes = <2>;
117c66ec88fSEmmanuel Vadot    };
118