| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- # SPDX-License-Identifier: GPL-2.0
- %YAML 1.2
- ---
- $id: http://devicetree.org/schemas/bus/simple-pm-bus.yaml#
- $schema: http://devicetree.org/meta-schemas/core.yaml#
- title: Simple Power-Managed Bus
- maintainers:
- - Geert Uytterhoeven <geert+renesas@glider.be>
- description: |
- A Simple Power-Managed Bus is a transparent bus that doesn't need a real
- driver, as it's typically initialized by the boot loader.
- However, its bus controller is part of a PM domain, or under the control
- of a functional clock. Hence, the bus controller's PM domain and/or
- clock must be enabled for child devices connected to the bus (either
- on-SoC or externally) to function.
- While "simple-pm-bus" follows the "simple-bus" set of properties, as
- specified in the Devicetree Specification, it is not an extension of
- "simple-bus".
- properties:
- $nodename:
- pattern: "^bus(@[0-9a-f]+)?$"
- compatible:
- contains:
- const: simple-pm-bus
- description:
- Shall contain "simple-pm-bus" in addition to a optional bus-specific
- compatible strings defined in individual pm-bus bindings.
- '#address-cells':
- enum: [ 1, 2 ]
- '#size-cells':
- enum: [ 1, 2 ]
- ranges: true
- clocks: true
- # Functional clocks
- # Required if power-domains is absent, optional otherwise
- power-domains:
- # Required if clocks is absent, optional otherwise
- minItems: 1
- required:
- - compatible
- - '#address-cells'
- - '#size-cells'
- - ranges
- anyOf:
- - required:
- - clocks
- - required:
- - power-domains
- additionalProperties: true
- examples:
- - |
- #include <dt-bindings/clock/qcom,gcc-msm8996.h>
- #include <dt-bindings/interrupt-controller/irq.h>
- bus {
- power-domains = <&gcc AGGRE0_NOC_GDSC>;
- compatible = "simple-pm-bus";
- #address-cells = <1>;
- #size-cells = <1>;
- ranges;
- };
|