1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/reset/socionext,uniphier-glue-reset.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Socionext UniPhier peripheral core reset in glue layer
8
9description: |
10  Some peripheral core reset belongs to its own glue layer. Before using
11  this core reset, it is necessary to control the clocks and resets to
12  enable this layer. These clocks and resets should be described in each
13  property.
14
15maintainers:
16  - Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
17
18properties:
19  compatible:
20    enum:
21      - socionext,uniphier-pro4-usb3-reset
22      - socionext,uniphier-pro5-usb3-reset
23      - socionext,uniphier-pxs2-usb3-reset
24      - socionext,uniphier-ld20-usb3-reset
25      - socionext,uniphier-pxs3-usb3-reset
26      - socionext,uniphier-nx1-usb3-reset
27      - socionext,uniphier-pro4-ahci-reset
28      - socionext,uniphier-pxs2-ahci-reset
29      - socionext,uniphier-pxs3-ahci-reset
30
31  reg:
32    maxItems: 1
33
34  "#reset-cells":
35    const: 1
36
37  clocks:
38    minItems: 1
39    maxItems: 2
40
41  clock-names:
42    minItems: 1
43    maxItems: 2
44
45  resets:
46    minItems: 1
47    maxItems: 2
48
49  reset-names:
50    minItems: 1
51    maxItems: 2
52
53allOf:
54  - if:
55      properties:
56        compatible:
57          contains:
58            enum:
59              - socionext,uniphier-pro4-usb3-reset
60              - socionext,uniphier-pro5-usb3-reset
61              - socionext,uniphier-pro4-ahci-reset
62    then:
63      properties:
64        clocks:
65          minItems: 2
66          maxItems: 2
67        clock-names:
68          items:
69            - const: gio
70            - const: link
71        resets:
72          minItems: 2
73          maxItems: 2
74        reset-names:
75          items:
76            - const: gio
77            - const: link
78    else:
79      properties:
80        clocks:
81          maxItems: 1
82        clock-names:
83          const: link
84        resets:
85          maxItems: 1
86        reset-names:
87          const: link
88
89additionalProperties: false
90
91required:
92  - compatible
93  - reg
94  - "#reset-cells"
95  - clocks
96  - clock-names
97  - resets
98  - reset-names
99
100examples:
101  - |
102    usb_rst: reset-controller@0 {
103        compatible = "socionext,uniphier-ld20-usb3-reset";
104        reg = <0x0 0x4>;
105        #reset-cells = <1>;
106        clock-names = "link";
107        clocks = <&sys_clk 14>;
108        reset-names = "link";
109        resets = <&sys_rst 14>;
110    };
111