Commit 520d0abe authored by Nicolas Saenz Julienne's avatar Nicolas Saenz Julienne Committed by Florian Fainelli
Browse files

dt-bindings: soc: bcm: bcm2835-pm: Convert bindings to DT schema



This converts the brcm,bcm2835-pm bindings from text to proper schema.

Signed-off-by: default avatarNicolas Saenz Julienne <nsaenzjulienne@suse.de>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarStefan Wahren <stefan.wahren@i2se.com>
Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
parent 935327a7
Loading
Loading
Loading
Loading
+0 −46
Original line number Diff line number Diff line
BCM2835 PM (Power domains, watchdog)

The PM block controls power domains and some reset lines, and includes
a watchdog timer.  This binding supersedes the brcm,bcm2835-pm-wdt
binding which covered some of PM's register range and functionality.

Required properties:

- compatible:		Should be "brcm,bcm2835-pm"
- reg:			Specifies base physical address and size of the two
			  register ranges ("PM" and "ASYNC_BRIDGE" in that
			  order)
- clocks:		a) v3d: The V3D clock from CPRMAN
			b) peri_image: The PERI_IMAGE clock from CPRMAN
			c) h264: The H264 clock from CPRMAN
			d) isp: The ISP clock from CPRMAN
- #reset-cells: 	Should be 1.  This property follows the reset controller
			  bindings[1].
- #power-domain-cells:	Should be 1.  This property follows the power domain
			  bindings[2].

Optional properties:

- timeout-sec:		Contains the watchdog timeout in seconds
- system-power-controller: Whether the watchdog is controlling the
    system power.  This node follows the power controller bindings[3].

[1] Documentation/devicetree/bindings/reset/reset.txt
[2] Documentation/devicetree/bindings/power/power-domain.yaml
[3] Documentation/devicetree/bindings/power/power-controller.txt

Example:

pm {
	compatible = "brcm,bcm2835-pm", "brcm,bcm2835-pm-wdt";
	#power-domain-cells = <1>;
	#reset-cells = <1>;
	reg = <0x7e100000 0x114>,
	      <0x7e00a000 0x24>;
	clocks = <&clocks BCM2835_CLOCK_V3D>,
		 <&clocks BCM2835_CLOCK_PERI_IMAGE>,
		 <&clocks BCM2835_CLOCK_H264>,
		 <&clocks BCM2835_CLOCK_ISP>;
	clock-names = "v3d", "peri_image", "h264", "isp";
	system-power-controller;
};
+77 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: "http://devicetree.org/schemas/soc/bcm/brcm,bcm2835-pm.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: BCM2835 PM (Power domains, watchdog)

description: |
  The PM block controls power domains and some reset lines, and includes a
  watchdog timer.

maintainers:
  - Nicolas Saenz Julienne <nsaenz@kernel.org>

allOf:
  - $ref: ../../watchdog/watchdog.yaml#

properties:
  compatible:
    items:
      - const: brcm,bcm2835-pm
      - const: brcm,bcm2835-pm-wdt

  reg:
    items:
      - description: PM registers
      - description: ASB registers

  "#power-domain-cells":
    const: 1

  "#reset-cells":
    const: 1

  clocks:
    minItems: 4
    maxItems: 4

  clock-names:
    items:
      - const: v3d
      - const: peri_image
      - const: h264
      - const: isp

  system-power-controller:
    type: boolean

  timeout-sec: true

required:
  - compatible
  - reg
  - "#power-domain-cells"
  - "#reset-cells"
  - clocks

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/bcm2835.h>

    watchdog@7e100000 {
        compatible = "brcm,bcm2835-pm", "brcm,bcm2835-pm-wdt";
        #power-domain-cells = <1>;
        #reset-cells = <1>;
        reg = <0x7e100000 0x114>,
              <0x7e00a000 0x24>;
        clocks = <&clocks BCM2835_CLOCK_V3D>,
               <&clocks BCM2835_CLOCK_PERI_IMAGE>,
               <&clocks BCM2835_CLOCK_H264>,
               <&clocks BCM2835_CLOCK_ISP>;
        clock-names = "v3d", "peri_image", "h264", "isp";
        system-power-controller;
    };