1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/soc/bcm/brcm,bcm2835-pm.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: BCM2835 PM (Power domains, watchdog)
8
9description: |
10  The PM block controls power domains and some reset lines, and includes a
11  watchdog timer.
12
13maintainers:
14  - Nicolas Saenz Julienne <nsaenz@kernel.org>
15
16allOf:
17  - $ref: /schemas/watchdog/watchdog.yaml#
18
19properties:
20  compatible:
21    items:
22      - enum:
23          - brcm,bcm2835-pm
24          - brcm,bcm2711-pm
25      - const: brcm,bcm2835-pm-wdt
26
27  reg:
28    minItems: 2
29    maxItems: 3
30
31  reg-names:
32    minItems: 2
33    items:
34      - const: pm
35      - const: asb
36      - const: rpivid_asb
37
38  "#power-domain-cells":
39    const: 1
40
41  "#reset-cells":
42    const: 1
43
44  clocks:
45    minItems: 4
46    maxItems: 4
47
48  clock-names:
49    items:
50      - const: v3d
51      - const: peri_image
52      - const: h264
53      - const: isp
54
55  system-power-controller:
56    type: boolean
57
58  timeout-sec: true
59
60required:
61  - compatible
62  - reg
63  - "#power-domain-cells"
64  - "#reset-cells"
65  - clocks
66
67additionalProperties: false
68
69examples:
70  - |
71    #include <dt-bindings/clock/bcm2835.h>
72
73    watchdog@7e100000 {
74        compatible = "brcm,bcm2835-pm", "brcm,bcm2835-pm-wdt";
75        #power-domain-cells = <1>;
76        #reset-cells = <1>;
77        reg = <0x7e100000 0x114>,
78              <0x7e00a000 0x24>;
79        reg-names = "pm", "asb";
80        clocks = <&clocks BCM2835_CLOCK_V3D>,
81               <&clocks BCM2835_CLOCK_PERI_IMAGE>,
82               <&clocks BCM2835_CLOCK_H264>,
83               <&clocks BCM2835_CLOCK_ISP>;
84        clock-names = "v3d", "peri_image", "h264", "isp";
85        system-power-controller;
86    };
87