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