Merge tag 'linux-can-fixes-for-5.5-20191208' of git://git.kernel.org/pub/scm/linux...
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / bus / simple-pm-bus.yaml
1 # SPDX-License-Identifier: GPL-2.0
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/bus/simple-pm-bus.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Simple Power-Managed Bus
8
9 maintainers:
10   - Geert Uytterhoeven <geert+renesas@glider.be>
11
12 description: |
13   A Simple Power-Managed Bus is a transparent bus that doesn't need a real
14   driver, as it's typically initialized by the boot loader.
15
16   However, its bus controller is part of a PM domain, or under the control
17   of a functional clock.  Hence, the bus controller's PM domain and/or
18   clock must be enabled for child devices connected to the bus (either
19   on-SoC or externally) to function.
20
21   While "simple-pm-bus" follows the "simple-bus" set of properties, as
22   specified in the Devicetree Specification, it is not an extension of
23   "simple-bus".
24
25 properties:
26   $nodename:
27     pattern: "^bus(@[0-9a-f]+)?$"
28
29   compatible:
30     contains:
31       const: simple-pm-bus
32     description:
33       Shall contain "simple-pm-bus" in addition to a optional bus-specific
34       compatible strings defined in individual pm-bus bindings.
35
36   '#address-cells':
37     enum: [ 1, 2 ]
38
39   '#size-cells':
40     enum: [ 1, 2 ]
41
42   ranges: true
43
44   clocks: true
45     # Functional clocks
46     # Required if power-domains is absent, optional otherwise
47
48   power-domains:
49     # Required if clocks is absent, optional otherwise
50     minItems: 1
51
52 required:
53   - compatible
54   - '#address-cells'
55   - '#size-cells'
56   - ranges
57
58 anyOf:
59   - required:
60       - clocks
61   - required:
62       - power-domains
63
64 examples:
65   - |
66     #include <dt-bindings/clock/qcom,gcc-msm8996.h>
67     #include <dt-bindings/interrupt-controller/irq.h>
68
69     bus {
70         power-domains = <&gcc AGGRE0_NOC_GDSC>;
71         compatible = "simple-pm-bus";
72         #address-cells = <1>;
73         #size-cells = <1>;
74         ranges;
75     };