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