18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci%YAML 1.2 38c2ecf20Sopenharmony_ci--- 48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/bus/simple-pm-bus.yaml# 58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: Simple Power-Managed Bus 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cimaintainers: 108c2ecf20Sopenharmony_ci - Geert Uytterhoeven <geert+renesas@glider.be> 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_cidescription: | 138c2ecf20Sopenharmony_ci A Simple Power-Managed Bus is a transparent bus that doesn't need a real 148c2ecf20Sopenharmony_ci driver, as it's typically initialized by the boot loader. 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_ci However, its bus controller is part of a PM domain, or under the control 178c2ecf20Sopenharmony_ci of a functional clock. Hence, the bus controller's PM domain and/or 188c2ecf20Sopenharmony_ci clock must be enabled for child devices connected to the bus (either 198c2ecf20Sopenharmony_ci on-SoC or externally) to function. 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci While "simple-pm-bus" follows the "simple-bus" set of properties, as 228c2ecf20Sopenharmony_ci specified in the Devicetree Specification, it is not an extension of 238c2ecf20Sopenharmony_ci "simple-bus". 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ciproperties: 268c2ecf20Sopenharmony_ci $nodename: 278c2ecf20Sopenharmony_ci pattern: "^bus(@[0-9a-f]+)?$" 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ci compatible: 308c2ecf20Sopenharmony_ci contains: 318c2ecf20Sopenharmony_ci const: simple-pm-bus 328c2ecf20Sopenharmony_ci description: 338c2ecf20Sopenharmony_ci Shall contain "simple-pm-bus" in addition to a optional bus-specific 348c2ecf20Sopenharmony_ci compatible strings defined in individual pm-bus bindings. 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci '#address-cells': 378c2ecf20Sopenharmony_ci enum: [ 1, 2 ] 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci '#size-cells': 408c2ecf20Sopenharmony_ci enum: [ 1, 2 ] 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ci ranges: true 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ci clocks: true 458c2ecf20Sopenharmony_ci # Functional clocks 468c2ecf20Sopenharmony_ci # Required if power-domains is absent, optional otherwise 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci power-domains: 498c2ecf20Sopenharmony_ci # Required if clocks is absent, optional otherwise 508c2ecf20Sopenharmony_ci minItems: 1 518c2ecf20Sopenharmony_ci 528c2ecf20Sopenharmony_cirequired: 538c2ecf20Sopenharmony_ci - compatible 548c2ecf20Sopenharmony_ci - '#address-cells' 558c2ecf20Sopenharmony_ci - '#size-cells' 568c2ecf20Sopenharmony_ci - ranges 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_cianyOf: 598c2ecf20Sopenharmony_ci - required: 608c2ecf20Sopenharmony_ci - clocks 618c2ecf20Sopenharmony_ci - required: 628c2ecf20Sopenharmony_ci - power-domains 638c2ecf20Sopenharmony_ci 648c2ecf20Sopenharmony_ciadditionalProperties: true 658c2ecf20Sopenharmony_ci 668c2ecf20Sopenharmony_ciexamples: 678c2ecf20Sopenharmony_ci - | 688c2ecf20Sopenharmony_ci #include <dt-bindings/clock/qcom,gcc-msm8996.h> 698c2ecf20Sopenharmony_ci #include <dt-bindings/interrupt-controller/irq.h> 708c2ecf20Sopenharmony_ci 718c2ecf20Sopenharmony_ci bus { 728c2ecf20Sopenharmony_ci power-domains = <&gcc AGGRE0_NOC_GDSC>; 738c2ecf20Sopenharmony_ci compatible = "simple-pm-bus"; 748c2ecf20Sopenharmony_ci #address-cells = <1>; 758c2ecf20Sopenharmony_ci #size-cells = <1>; 768c2ecf20Sopenharmony_ci ranges; 778c2ecf20Sopenharmony_ci }; 78