summaryrefslogtreecommitdiffstats
path: root/dts/Bindings/pci/socionext,uniphier-pcie-ep.yaml
blob: f0d8e486a07da7bcedc2f431e236a5a6c8217146 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/pci/socionext,uniphier-pcie-ep.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Socionext UniPhier PCIe endpoint controller

description: |
  UniPhier PCIe endpoint controller is based on the Synopsys DesignWare
  PCI core. It shares common features with the PCIe DesignWare core and
  inherits common properties defined in
  Documentation/devicetree/bindings/pci/snps,dw-pcie-ep.yaml.

maintainers:
  - Kunihiko Hayashi <hayashi.kunihiko@socionext.com>

properties:
  compatible:
    enum:
      - socionext,uniphier-pro5-pcie-ep
      - socionext,uniphier-nx1-pcie-ep

  reg:
    minItems: 4
    maxItems: 5

  reg-names:
    minItems: 4
    items:
      - const: dbi
      - const: dbi2
      - const: link
      - const: addr_space
      - const: atu

  clocks:
    minItems: 1
    maxItems: 2

  clock-names: true

  resets:
    minItems: 1
    maxItems: 2

  reset-names: true

  num-ib-windows:
    const: 16

  num-ob-windows:
    const: 16

  num-lanes: true

  phys:
    maxItems: 1

  phy-names:
    const: pcie-phy

allOf:
  - $ref: /schemas/pci/snps,dw-pcie-ep.yaml#
  - if:
      properties:
        compatible:
          contains:
            const: socionext,uniphier-pro5-pcie-ep
    then:
      properties:
        reg:
          maxItems: 4
        reg-names:
          maxItems: 4
        clocks:
          minItems: 2
        clock-names:
          items:
            - const: gio
            - const: link
        resets:
          minItems: 2
        reset-names:
          items:
            - const: gio
            - const: link
    else:
      properties:
        reg:
          minItems: 5
        reg-names:
          minItems: 5
        clocks:
          maxItems: 1
        clock-names:
          const: link
        resets:
          maxItems: 1
        reset-names:
          const: link

required:
  - compatible
  - reg
  - reg-names
  - clocks
  - clock-names
  - resets
  - reset-names

unevaluatedProperties: false

examples:
  - |
    pcie_ep: pcie-ep@66000000 {
        compatible = "socionext,uniphier-pro5-pcie-ep";
        reg-names = "dbi", "dbi2", "link", "addr_space";
        reg = <0x66000000 0x1000>, <0x66001000 0x1000>,
              <0x66010000 0x10000>, <0x67000000 0x400000>;
        clock-names = "gio", "link";
        clocks = <&sys_clk 12>, <&sys_clk 24>;
        reset-names = "gio", "link";
        resets = <&sys_rst 12>, <&sys_rst 24>;
        num-ib-windows = <16>;
        num-ob-windows = <16>;
        num-lanes = <4>;
        phy-names = "pcie-phy";
        phys = <&pcie_phy>;
    };