xref: /linux/Documentation/devicetree/bindings/power/reset/syscon-reboot-mode.yaml (revision 0526b56cbc3c489642bd6a5fe4b718dea7ef0ee8)
1# SPDX-License-Identifier: GPL-2.0-only
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/power/reset/syscon-reboot-mode.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Generic SYSCON reboot mode driver
8
9maintainers:
10  - Sebastian Reichel <sre@kernel.org>
11
12description: |
13  This driver gets reboot mode magic value from reboot-mode driver
14  and stores it in a SYSCON mapped register. Then the bootloader
15  can read it and take different action according to the magic
16  value stored. The SYSCON mapped register is retrieved from the
17  parental dt-node plus the offset. So the SYSCON reboot-mode node
18  should be represented as a sub-node of a "syscon", "simple-mfd" node.
19
20properties:
21  compatible:
22    const: syscon-reboot-mode
23
24  mask:
25    $ref: /schemas/types.yaml#/definitions/uint32
26    description: Update only the register bits defined by the mask (32 bit)
27
28  offset:
29    $ref: /schemas/types.yaml#/definitions/uint32
30    description: Offset in the register map for the mode register (in bytes)
31
32patternProperties:
33  "^mode-.+":
34    $ref: /schemas/types.yaml#/definitions/uint32
35    description: Vendor-specific mode value written to the mode register
36
37additionalProperties: false
38
39required:
40  - compatible
41  - offset
42
43examples:
44  - |
45    #include <dt-bindings/soc/rockchip,boot-mode.h>
46
47    reboot-mode {
48      compatible = "syscon-reboot-mode";
49      offset = <0x40>;
50      mode-normal = <BOOT_NORMAL>;
51      mode-recovery = <BOOT_RECOVERY>;
52      mode-bootloader = <BOOT_FASTBOOT>;
53      mode-loader = <BOOT_BL_DOWNLOAD>;
54    };
55...
56