Commit a776f560 authored by Serge Semin's avatar Serge Semin Committed by Sebastian Reichel
Browse files

dt-bindings: power: reset: Convert syscon-reboot-mode to DT schema



Modern device tree bindings are supposed to be created as YAML-files
in accordance with dt-schema. This commit replaces SYSCON reboot-mode
legacy bare text bindings with YAML file. As before the bindings file
states that the corresponding dts node is supposed to be compatible
"syscon-reboot-mode" device and necessarily have an offset property
to determine which register from the regmap is supposed to keep the
mode on reboot.

Signed-off-by: default avatarSerge Semin <Sergey.Semin@baikalelectronics.ru>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
parent 1a457329
Loading
Loading
Loading
Loading
+0 −35
Original line number Diff line number Diff line
SYSCON reboot mode driver

This driver gets reboot mode magic value form reboot-mode driver
and stores it in a SYSCON mapped register. Then the bootloader
can read it and take different action according to the magic
value stored.

This DT node should be represented as a sub-node of a "syscon", "simple-mfd"
node.

Required properties:
- compatible: should be "syscon-reboot-mode"
- offset: offset in the register map for the storage register (in bytes)

Optional property:
- mask: bits mask of the bits in the register to store the reboot mode magic value,
  default set to 0xffffffff if missing.

The rest of the properties should follow the generic reboot-mode description
found in reboot-mode.txt

Example:
	pmu: pmu@20004000 {
		compatible = "rockchip,rk3066-pmu", "syscon", "simple-mfd";
		reg = <0x20004000 0x100>;

		reboot-mode {
			compatible = "syscon-reboot-mode";
			offset = <0x40>;
			mode-normal = <BOOT_NORMAL>;
			mode-recovery = <BOOT_RECOVERY>;
			mode-bootloader = <BOOT_FASTBOOT>;
			mode-loader = <BOOT_BL_DOWNLOAD>;
		};
	};
+55 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only
%YAML 1.2
---
$id: http://devicetree.org/schemas/power/reset/syscon-reboot-mode.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Generic SYSCON reboot mode driver

maintainers:
  - Sebastian Reichel <sre@kernel.org>

description: |
  This driver gets reboot mode magic value from reboot-mode driver
  and stores it in a SYSCON mapped register. Then the bootloader
  can read it and take different action according to the magic
  value stored. The SYSCON mapped register is retrieved from the
  parental dt-node plus the offset. So the SYSCON reboot-mode node
  should be represented as a sub-node of a "syscon", "simple-mfd" node.

properties:
  compatible:
    const: syscon-reboot-mode

  mask:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: Update only the register bits defined by the mask (32 bit)

  offset:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: Offset in the register map for the mode register (in bytes)

patternProperties:
  "^mode-.+":
    $ref: /schemas/types.yaml#/definitions/uint32
    description: Vendor-specific mode value written to the mode register

additionalProperties: false

required:
  - compatible
  - offset

examples:
  - |
    #include <dt-bindings/soc/rockchip,boot-mode.h>

    reboot-mode {
      compatible = "syscon-reboot-mode";
      offset = <0x40>;
      mode-normal = <BOOT_NORMAL>;
      mode-recovery = <BOOT_RECOVERY>;
      mode-bootloader = <BOOT_FASTBOOT>;
      mode-loader = <BOOT_BL_DOWNLOAD>;
    };
...