blob: 182134d7a6a3b1977314fd63404c30047af8906f [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# 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
7title: Simple Power-Managed Bus
8
9maintainers:
10 - Geert Uytterhoeven <geert+renesas@glider.be>
11
12description: |
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
25properties:
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
52required:
53 - compatible
54 - '#address-cells'
55 - '#size-cells'
56 - ranges
57
58anyOf:
59 - required:
60 - clocks
61 - required:
62 - power-domains
63
64additionalProperties: true
65
66examples:
67 - |
68 #include <dt-bindings/clock/qcom,gcc-msm8996.h>
69 #include <dt-bindings/interrupt-controller/irq.h>
70
71 bus {
72 power-domains = <&gcc AGGRE0_NOC_GDSC>;
73 compatible = "simple-pm-bus";
74 #address-cells = <1>;
75 #size-cells = <1>;
76 ranges;
77 };