blob: c43e6ad120c486af07c1679fc697afa9e79cb1d8 [file] [log] [blame]
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright 2022 Google, Inc.
%YAML 1.2
---
$id: http://devicetree.org/schemas/misc/throttler.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: OPPs for non-thermal throttling
maintainers:
- Brian Norris <briannorris@chromium.org>
- Matthias Kaehlcke <mka@chromium.org>
description: |
A throttler is used for non-thermal throttling of system components like
CPUs or devfreq devices.
properties:
throttler-opps:
description: Array of OPP-v2 (../opp/opp-v2.yaml) phandles with the OPPs
used for throttling.
$ref: "/schemas/types.yaml#/definitions/phandle-array"
additionalProperties: True
examples:
- |
cpu_opp0_table: opp-table-0 {
compatible = "operating-points-v2";
opp-shared;
# cpu0_opp01..02: { ... }
cpu0_opp03: opp-1000000000 {
opp-hz = /bits/ 64 <1000000000>;
opp-microvolt = <975000 970000 985000>;
opp-microamp = <70000>;
};
# cpu0_opp04: { ... }
};
cpu_opp1_table: opp-table-1 {
compatible = "operating-points-v2";
opp-shared;
# cpu1_opp01: { ... }
cpu1_opp02: opp-800000000 {
opp-hz = /bits/ 64 <800000000>;
opp-microvolt = <875000 870000 885000>;
opp-microamp = <70000>;
};
# cpu1_opp03..04: { ... }
};
gpu_opp_table: opp-table-2 {
compatible = "operating-points-v2";
opp-shared;
gpu_opp01: opp-600000000 {
opp-hz = /bits/ 64 <600000000>;
opp-microvolt = <805000 800000 815000>;
opp-microamp = <70000>;
};
# gpu_opp02..04: { ... }
};
throttler@1000 {
compatible = "vendor,ip";
reg = <0x1000 0x100>;
# When throttling, hold CPU0/CPU1/GPU at max 1GHz/800MHz/600MHz.
throttler-opps = <&cpu0_opp03, &cpu1_opp02, &gpu_opp01>;
};