78 lines
1.8 KiB
YAML
78 lines
1.8 KiB
YAML
|
# 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;
|
||
|
};
|