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