xref: /freebsd/sys/contrib/device-tree/Bindings/soc/starfive/starfive,jh7110-syscon.yaml (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/soc/starfive/starfive,jh7110-syscon.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: StarFive JH7110 SoC system controller
8
9maintainers:
10  - William Qiu <william.qiu@starfivetech.com>
11
12description:
13  The StarFive JH7110 SoC system controller provides register information such
14  as offset, mask and shift to configure related modules such as MMC and PCIe.
15
16properties:
17  compatible:
18    oneOf:
19      - items:
20          - const: starfive,jh7110-sys-syscon
21          - const: syscon
22          - const: simple-mfd
23      - items:
24          - enum:
25              - starfive,jh7110-aon-syscon
26              - starfive,jh7110-stg-syscon
27          - const: syscon
28
29  reg:
30    maxItems: 1
31
32  clock-controller:
33    $ref: /schemas/clock/starfive,jh7110-pll.yaml#
34    type: object
35
36  "#power-domain-cells":
37    const: 1
38
39required:
40  - compatible
41  - reg
42
43allOf:
44  - if:
45      properties:
46        compatible:
47          contains:
48            const: starfive,jh7110-sys-syscon
49    then:
50      required:
51        - clock-controller
52    else:
53      properties:
54        clock-controller: false
55  - if:
56      properties:
57        compatible:
58          contains:
59            const: starfive,jh7110-aon-syscon
60    then:
61      required:
62        - "#power-domain-cells"
63    else:
64      properties:
65        "#power-domain-cells": false
66
67additionalProperties: false
68
69examples:
70  - |
71    syscon@10240000 {
72        compatible = "starfive,jh7110-stg-syscon", "syscon";
73        reg = <0x10240000 0x1000>;
74    };
75
76    syscon@13030000 {
77        compatible = "starfive,jh7110-sys-syscon", "syscon", "simple-mfd";
78        reg = <0x13030000 0x1000>;
79
80        clock-controller {
81            compatible = "starfive,jh7110-pll";
82            clocks = <&osc>;
83            #clock-cells = <1>;
84        };
85    };
86
87    syscon@17010000 {
88        compatible = "starfive,jh7110-aon-syscon", "syscon";
89        reg = <0x17010000 0x1000>;
90        #power-domain-cells = <1>;
91    };
92
93...
94