Re: [PATCH 2/2] dt-bindings: mfd: add Broadcom's timer MFD block
From: Rob Herring <robh@kernel.org>
Date: 2021-11-01 19:15:37
Also in:
linux-devicetree, linux-mips, linux-watchdog
On Fri, Oct 29, 2021 at 10:25:05PM +0200, Rafał Miłecki wrote:
quoted hunk ↗ jump to hunk
From: Rafał Miłecki <rafal@milecki.pl> This block is called timer in documentation but it actually behaves like a MFD. Signed-off-by: Rafał Miłecki <rafal@milecki.pl> --- .../bindings/mfd/brcm,timer-mfd.yaml | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 Documentation/devicetree/bindings/mfd/brcm,timer-mfd.yamldiff --git a/Documentation/devicetree/bindings/mfd/brcm,timer-mfd.yaml b/Documentation/devicetree/bindings/mfd/brcm,timer-mfd.yaml new file mode 100644 index 000000000000..0060b6c443a7 --- /dev/null +++ b/Documentation/devicetree/bindings/mfd/brcm,timer-mfd.yaml@@ -0,0 +1,64 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/mfd/brcm,timer-mfd.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Broadcom's timer MFD + +maintainers: + - Rafał Miłecki <rafal@milecki.pl> + +description: | + Broadcom's timer is a block used in multiple SoCs (e.g., BCM4908, BCM63xx, + BCM7038). Despite its name it's not strictly a timer device. It consists of: + timers, watchdog and software reset handler. + +properties: + compatible: + items: + - const: brcm,timer-mfd
'mfd' is a Linuxism. Name it what Broadcom calls the block. There should be at least as many compatibles as there are variations of register layouts.
+ - const: simple-mfd + - const: syscon + + reg: + maxItems: 1 + + ranges: true + + "#address-cells": + const: 1 + + "#size-cells": + const: 1 + +patternProperties: + '^watchdog@[a-f0-9]+$': + $ref: ../watchdog/brcm,bcm7038-wdt.yaml
/schema/watchdog/...
+
+additionalProperties: false
+
+required:
+ - reg
+
+examples:
+ - |
+ timer_mfd: timer-mfd@ff800400 {
+ compatible = "brcm,timer-mfd", "simple-mfd", "syscon";
+ reg = <0xff800400 0x4c>;
+ ranges = <0x0 0xff800400 0x4c>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ watchdog@28 {
+ compatible = "brcm,bcm7038-wdt";
+ reg = <0x28 0x8>;
+ };Don't you need a timer node? Make the binding complete.
+ };
+
+ reboot {
+ compatible = "syscon-reboot";
+ regmap = <&timer_mfd>;Make this a child node of the timer.
+ offset = <0x34>;
Use 'reg'. If "syscon-reboot" doesn't allow that, add it.
+ mask = <1>;
+ }; -- 2.31.1
_______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel