| # 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; |
| }; |