162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/power/reset/syscon-reboot-mode.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Generic SYSCON reboot mode driver
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Sebastian Reichel <sre@kernel.org>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription: |
1362306a36Sopenharmony_ci  This driver gets reboot mode magic value from reboot-mode driver
1462306a36Sopenharmony_ci  and stores it in a SYSCON mapped register. Then the bootloader
1562306a36Sopenharmony_ci  can read it and take different action according to the magic
1662306a36Sopenharmony_ci  value stored. The SYSCON mapped register is retrieved from the
1762306a36Sopenharmony_ci  parental dt-node plus the offset. So the SYSCON reboot-mode node
1862306a36Sopenharmony_ci  should be represented as a sub-node of a "syscon", "simple-mfd" node.
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciproperties:
2162306a36Sopenharmony_ci  compatible:
2262306a36Sopenharmony_ci    const: syscon-reboot-mode
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci  mask:
2562306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
2662306a36Sopenharmony_ci    description: Update only the register bits defined by the mask (32 bit)
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci  offset:
2962306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
3062306a36Sopenharmony_ci    description: Offset in the register map for the mode register (in bytes)
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_cipatternProperties:
3362306a36Sopenharmony_ci  "^mode-.+":
3462306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
3562306a36Sopenharmony_ci    description: Vendor-specific mode value written to the mode register
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ciadditionalProperties: false
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_cirequired:
4062306a36Sopenharmony_ci  - compatible
4162306a36Sopenharmony_ci  - offset
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ciexamples:
4462306a36Sopenharmony_ci  - |
4562306a36Sopenharmony_ci    #include <dt-bindings/soc/rockchip,boot-mode.h>
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci    reboot-mode {
4862306a36Sopenharmony_ci      compatible = "syscon-reboot-mode";
4962306a36Sopenharmony_ci      offset = <0x40>;
5062306a36Sopenharmony_ci      mode-normal = <BOOT_NORMAL>;
5162306a36Sopenharmony_ci      mode-recovery = <BOOT_RECOVERY>;
5262306a36Sopenharmony_ci      mode-bootloader = <BOOT_FASTBOOT>;
5362306a36Sopenharmony_ci      mode-loader = <BOOT_BL_DOWNLOAD>;
5462306a36Sopenharmony_ci    };
5562306a36Sopenharmony_ci...
56