linux/Documentation/devicetree/bindings/power/apple,pmgr-pwrstate.yaml
Hector Martin e8117f85b9 dt-bindings: power: Add apple,pmgr-pwrstate binding
This syscon child node represents a single SoC device controlled by the
PMGR block. This layout allows us to declare all device power state
controls (power/clock gating and reset) in the device tree, including
dependencies, instead of hardcoding it into the driver. The register
layout is uniform.

Each pmgr-pwrstate node provides genpd and reset features, to be
consumed by downstream device nodes.

Future SoCs are expected to use backwards compatible registers, and the
"apple,pmgr-pwrstate" represents any such interfaces (possibly with
additional features gated by the more specific compatible), allowing
them to be bound without driver updates. If a backwards incompatible
change is introduced in future SoCs, it will require a new compatible,
such as "apple,pmgr-pwrstate-v2".

Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Hector Martin <marcan@marcan.st>
2021-12-07 13:04:08 +09:00

72 lines
1.8 KiB
YAML

# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/power/apple,pmgr-pwrstate.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Apple SoC PMGR Power States
maintainers:
- Hector Martin <marcan@marcan.st>
allOf:
- $ref: "power-domain.yaml#"
description: |
Apple SoCs include PMGR blocks responsible for power management,
which can control various clocks, resets, power states, and
performance features. This binding describes the device power
state registers, which control power states and resets.
Each instance of a power controller within the PMGR syscon node
represents a generic power domain provider, as documented in
Documentation/devicetree/bindings/power/power-domain.yaml.
The provider controls a single SoC block. The power hierarchy is
represented via power-domains relationships between these nodes.
See Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml
for the top-level PMGR node documentation.
properties:
compatible:
items:
- enum:
- apple,t8103-pmgr-pwrstate
- apple,t6000-pmgr-pwrstate
- const: apple,pmgr-pwrstate
reg:
maxItems: 1
"#power-domain-cells":
const: 0
"#reset-cells":
const: 0
power-domains:
description:
Reference to parent power domains. A domain may have multiple parents,
and all will be powered up when it is powered.
minItems: 1
maxItems: 8 # Arbitrary, should be enough
label:
description:
Specifies the name of the SoC domain being controlled. This is used to
name the power/reset domains.
apple,always-on:
description:
Forces this power domain to always be powered up.
type: boolean
required:
- compatible
- reg
- "#power-domain-cells"
- "#reset-cells"
- label
additionalProperties: false