1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/soc/socionext/socionext,uniphier-soc-glue.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Socionext UniPhier SoC-glue logic
8
9maintainers:
10  - Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
11
12description: |+
13  SoC-glue logic implemented on Socionext UniPhier SoCs is a collection of
14  miscellaneous function registers handling signals outside system components.
15
16properties:
17  compatible:
18    items:
19      - enum:
20          - socionext,uniphier-ld4-soc-glue
21          - socionext,uniphier-pro4-soc-glue
22          - socionext,uniphier-pro5-soc-glue
23          - socionext,uniphier-pxs2-soc-glue
24          - socionext,uniphier-sld8-soc-glue
25          - socionext,uniphier-ld11-soc-glue
26          - socionext,uniphier-ld20-soc-glue
27          - socionext,uniphier-pxs3-soc-glue
28          - socionext,uniphier-nx1-soc-glue
29      - const: simple-mfd
30      - const: syscon
31
32  reg:
33    maxItems: 1
34
35patternProperties:
36  pinctrl:
37    $ref: /schemas/pinctrl/socionext,uniphier-pinctrl.yaml#
38
39  usb-hub:
40    $ref: /schemas/phy/socionext,uniphier-usb2-phy.yaml#
41
42  clock-controller:
43    $ref: /schemas/clock/socionext,uniphier-clock.yaml#
44
45allOf:
46  - if:
47      not:
48        properties:
49          compatible:
50            contains:
51              enum:
52                - socionext,uniphier-pro4-soc-glue
53                - socionext,uniphier-ld11-soc-glue
54    then:
55      properties:
56        usb-hub: false
57
58  - if:
59      not:
60        properties:
61          compatible:
62            contains:
63              const: socionext,uniphier-pro4-soc-glue
64    then:
65      properties:
66        clock-controller: false
67
68required:
69  - compatible
70  - reg
71
72additionalProperties: false
73
74examples:
75  - |
76    syscon@5f800000 {
77        compatible = "socionext,uniphier-pro4-soc-glue",
78                     "simple-mfd", "syscon";
79        reg = <0x5f800000 0x2000>;
80
81        pinctrl {
82            compatible = "socionext,uniphier-pro4-pinctrl";
83        };
84
85        usb-hub {
86            compatible = "socionext,uniphier-pro4-usb2-phy";
87            #address-cells = <1>;
88            #size-cells = <0>;
89
90            phy@0 {
91                reg = <0>;
92                #phy-cells = <0>;
93            };
94
95            phy@1 {
96                reg = <1>;
97                #phy-cells = <0>;
98            };
99
100            phy@2 {
101                reg = <2>;
102                #phy-cells = <0>;
103            };
104
105            phy@3 {
106                reg = <3>;
107                #phy-cells = <0>;
108            };
109        };
110
111        clock-controller {
112            compatible = "socionext,uniphier-pro4-sg-clock";
113            #clock-cells = <1>;
114        };
115    };
116