Re: [PATCH v2 1/3] dt-bindings: power: reset: Convert syscon-reboot-mode to DT schema

Serge Semin
2020-05-10T08:47:22Z

Hello

On Sat, May 09, 2020 at 02:30:45AM +0200, Sebastian Reichel wrote:
> Hi,
>
> On Fri, May 08, 2020 at 02:38:44AM +0300, Serge Semin wrote:
> > 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: Serge Semin <Sergey.Semin@baikalelectronics.ru>
> > Reviewed-by: Rob Herring <robh@kernel.org>
> > Acked-by: Sebastian Reichel <sebastian.reichel@collabora.com>
> > Cc: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>
> > Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
> > Cc: Paul Burton <paulburton@kernel.org>
> > Cc: Ralf Baechle <ralf@linux-mips.org>
> > Cc: Arnd Bergmann <arnd@arndb.de>
> > Cc: Allison Randal <allison@lohutok.net>
> > Cc: Richard Fontana <rfontana@redhat.com>
> > Cc: Kate Stewart <kstewart@linuxfoundation.org>
> > Cc: Thomas Gleixner <tglx@linutronix.de>
> > Cc: linux-mips@vger.kernel.org
> > ---
>
> Thanks, I queued this patch to power-supply's for-next branch. For the other
> two patches I will wait for Rob's feedback.

Great! Thanks. The rest of the patches shall also be fine since we discussed
the changes with Rob in comments to v1. Anyway lets wait for his response.

-Sergey

>
> -- Sebastian
>
> > .../power/reset/syscon-reboot-mode.txt | 35 ------------
> > .../power/reset/syscon-reboot-mode.yaml | 55 +++++++++++++++++++
> > 2 files changed, 55 insertions(+), 35 deletions(-)
> > delete mode 100644 Documentation/devicetree/bindings/power/reset/syscon-reboot-mode.txt
> > create mode 100644 Documentation/devicetree/bindings/power/reset/syscon-reboot-mode.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/power/reset/syscon-reboot-mode.txt b/Documentation/devicetree/bindings/power/reset/syscon-reboot-mode.txt
> > deleted file mode 100644
> > index f7ce1d8af04a..000000000000
> > --- a/Documentation/devicetree/bindings/power/reset/syscon-reboot-mode.txt
> > +++ /dev/null
> > @@ -1,35 +0,0 @@
> > -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>;
> > - };
> > - };
> > diff --git a/Documentation/devicetree/bindings/power/reset/syscon-reboot-mode.yaml b/Documentation/devicetree/bindings/power/reset/syscon-reboot-mode.yaml
> > new file mode 100644
> > index 000000000000..9b1ffceefe3d
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/power/reset/syscon-reboot-mode.yaml
> > @@ -0,0 +1,55 @@
> > +# 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>;
> > + };
> > +...
> > --
> > 2.25.1
> >