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