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
35  pinctrl:
36    $ref: /schemas/pinctrl/socionext,uniphier-pinctrl.yaml#
37
38  usb-hub:
39    $ref: /schemas/phy/socionext,uniphier-usb2-phy.yaml#
40
41  clock-controller:
42    $ref: /schemas/clock/socionext,uniphier-clock.yaml#
43
44allOf:
45  - if:
46      not:
47        properties:
48          compatible:
49            contains:
50              enum:
51                - socionext,uniphier-pro4-soc-glue
52                - socionext,uniphier-ld11-soc-glue
53    then:
54      properties:
55        usb-hub: false
56
57  - if:
58      not:
59        properties:
60          compatible:
61            contains:
62              const: socionext,uniphier-pro4-soc-glue
63    then:
64      properties:
65        clock-controller: false
66
67required:
68  - compatible
69  - reg
70
71additionalProperties: false
72
73examples:
74  - |
75    syscon@5f800000 {
76        compatible = "socionext,uniphier-pro4-soc-glue",
77                     "simple-mfd", "syscon";
78        reg = <0x5f800000 0x2000>;
79
80        pinctrl {
81            compatible = "socionext,uniphier-pro4-pinctrl";
82        };
83
84        usb-hub {
85            compatible = "socionext,uniphier-pro4-usb2-phy";
86            #address-cells = <1>;
87            #size-cells = <0>;
88
89            phy@0 {
90                reg = <0>;
91                #phy-cells = <0>;
92            };
93
94            phy@1 {
95                reg = <1>;
96                #phy-cells = <0>;
97            };
98
99            phy@2 {
100                reg = <2>;
101                #phy-cells = <0>;
102            };
103
104            phy@3 {
105                reg = <3>;
106                #phy-cells = <0>;
107            };
108        };
109
110        clock-controller {
111            compatible = "socionext,uniphier-pro4-sg-clock";
112            #clock-cells = <1>;
113        };
114    };
115