| # 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>; |
| }; |