xref: /linux/Documentation/devicetree/bindings/power/reset/syscon-reboot.yaml (revision e7e86d7697c6ed1dbbde18d7185c35b6967945ed)
1# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/power/reset/syscon-reboot.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Generic SYSCON mapped register reset driver
8
9maintainers:
10  - Sebastian Reichel <sre@kernel.org>
11
12description: |+
13  This is a generic reset driver using syscon to map the reset register.
14  The reset is generally performed with a write to the reset register
15  defined by the SYSCON register map base plus the offset with the value and
16  mask defined in the reboot node. Default will be little endian mode, 32 bit
17  access only. The SYSCON registers map is normally retrieved from the
18  parental dt-node. So the SYSCON reboot node should be represented as a
19  sub-node of a "syscon", "simple-mfd" node. Though the regmap property
20  pointing to the system controller node is also supported.
21
22properties:
23  compatible:
24    enum:
25      - syscon-reboot
26      - google,gs101-reboot
27
28  mask:
29    $ref: /schemas/types.yaml#/definitions/uint32
30    description: Update only the register bits defined by the mask (32 bit).
31
32  offset:
33    $ref: /schemas/types.yaml#/definitions/uint32
34    description: Offset in the register map for the reboot register (in bytes).
35
36  reg:
37    maxItems: 1
38    description: Base address and size for the reboot register.
39
40  regmap:
41    $ref: /schemas/types.yaml#/definitions/phandle
42    deprecated: true
43    description: |
44      Phandle to the register map node. This property is deprecated in favor of
45      the syscon-reboot node been a child of a system controller node.
46
47  value:
48    $ref: /schemas/types.yaml#/definitions/uint32
49    description: The reset value written to the reboot register (32 bit access).
50
51  priority:
52    default: 192
53
54required:
55  - compatible
56
57additionalProperties: false
58
59allOf:
60  - $ref: restart-handler.yaml#
61  - if:
62      properties:
63        compatible:
64          contains:
65            const: google,gs101-reboot
66    then:
67      properties:
68        mask: false
69        offset: false
70        reg: false
71        value: false
72
73    else:
74      if:
75        not:
76          required:
77            - mask
78      then:
79        required:
80          - value
81
82      oneOf:
83        - required: [offset]
84        - required: [reg]
85
86examples:
87  - |
88    reboot {
89        compatible = "syscon-reboot";
90        regmap = <&regmapnode>;
91        offset = <0x0>;
92        mask = <0x1>;
93    };
94
95  - |
96    reboot {
97        compatible = "google,gs101-reboot";
98    };
99