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