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