mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-22 17:25:35 +03:00
documentation: Add DT binding document for central activity monitor
Add Device Tree binding document for the NVIDIA Tegra central activity monitor device. Bug 3625675 Change-Id: I85dc848b561802dd749f59c0a57654264f83f082 Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2705397 GVS: Gerrit_Virtual_Submit
This commit is contained in:
committed by
mobile promotions
parent
3637fb99cb
commit
857718b2ad
215
Documentation/devicetree/bindings/soc/nvidia/tegra/cactmon.yaml
Normal file
215
Documentation/devicetree/bindings/soc/nvidia/tegra/cactmon.yaml
Normal file
@@ -0,0 +1,215 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/soc/nvidia/tegra/cactmon.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Device tree binding for NVIDIA Tegra central actmon
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Laxman Dewangan <ldewangan@nvidia.com>
|
||||||
|
|
||||||
|
description: |
|
||||||
|
The Tegra central actmon is the device to monitor activity of various hw devices,
|
||||||
|
for e.g. external memory controller hw. It has dedicated actmon device to capture
|
||||||
|
activity of each EMC client. Emc clients can be added as child node to parent node.
|
||||||
|
For e.g. "mc_all" is one of the client of emc and captures rd/wr memory access by
|
||||||
|
all the emc clients. Therefore "mc_all" can be added as child node of the
|
||||||
|
"nvidia,tegra<hw>-cactmon" node.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
enum:
|
||||||
|
- nvidia,tegra234-cactmon
|
||||||
|
- nvidia,tegra194-cactmon
|
||||||
|
- nvidia,tegra186-cactmon
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
description: |
|
||||||
|
Physical base address and length of registers for actmon HW.
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
description: |
|
||||||
|
IRQ number for actmon HW.
|
||||||
|
|
||||||
|
clocks:
|
||||||
|
maxItems: 1
|
||||||
|
description: |
|
||||||
|
Specifies the actmon hw ref clock.
|
||||||
|
|
||||||
|
clock-names:
|
||||||
|
description: |
|
||||||
|
Specifies the name actmon hw ref clock. Valid name is "actmon".
|
||||||
|
|
||||||
|
resets:
|
||||||
|
maxItems: 1
|
||||||
|
description: |
|
||||||
|
Specifies the reset line.
|
||||||
|
|
||||||
|
reset-names:
|
||||||
|
description: |
|
||||||
|
Specifies the name of the reset line. Valid name is "actmon_rst".
|
||||||
|
|
||||||
|
nvidia,sample_period:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: |
|
||||||
|
Actmon sample period.
|
||||||
|
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- interrupts
|
||||||
|
- reg
|
||||||
|
- clocks
|
||||||
|
- clock-names
|
||||||
|
- resets
|
||||||
|
- reset-names
|
||||||
|
- nvidia,sample_period
|
||||||
|
|
||||||
|
unevaluatedProperties: false
|
||||||
|
|
||||||
|
patternProperties:
|
||||||
|
"^.*-actdev$":
|
||||||
|
type: object
|
||||||
|
description: |
|
||||||
|
Actmon devices for mc clients.
|
||||||
|
properties:
|
||||||
|
clocks:
|
||||||
|
maxItems: 1
|
||||||
|
description: |
|
||||||
|
Specifies the submodule HW ref clock.
|
||||||
|
|
||||||
|
clock-names:
|
||||||
|
description: |
|
||||||
|
Specifies the name actmon hw ref clock. Valid name is "actmon".
|
||||||
|
|
||||||
|
nvidia,reg_offs:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: |
|
||||||
|
register offset for actmon device
|
||||||
|
|
||||||
|
nvidia,irq_mask:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: |
|
||||||
|
irq mask for actmon debvice.
|
||||||
|
|
||||||
|
nvidia,suspend_freq:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: |
|
||||||
|
actmon device freq when mc client goes in suspend
|
||||||
|
|
||||||
|
nvidia,boost_freq_step:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: |
|
||||||
|
base freq of boost freq component
|
||||||
|
|
||||||
|
nvidia,boost_up_coef:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: |
|
||||||
|
percentage of times want to boost up the freq
|
||||||
|
|
||||||
|
nvidia,boost_down_coef:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: |
|
||||||
|
percentage of times want to boost down the freq
|
||||||
|
|
||||||
|
nvidia,boost_up_threshold:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: |
|
||||||
|
Up threshold, crossing that boost up interrupt triggeres
|
||||||
|
|
||||||
|
nvidia,boost_down_threshold:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: |
|
||||||
|
Down threshold, crossing that boost down interrupt triggeres
|
||||||
|
|
||||||
|
nvidia,up_wmark_window:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: |
|
||||||
|
Count crossing that many times of boost_up_threshold, boost interrupt triggeres
|
||||||
|
|
||||||
|
nvidia,down_wmark_window:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: |
|
||||||
|
Count crossing that many times of boost_up_threshold, boost interrupt triggeres
|
||||||
|
|
||||||
|
nvidia,avg_window_log2:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: |
|
||||||
|
K value for moving average of 2^k windows
|
||||||
|
|
||||||
|
nvidia,count_weight:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: |
|
||||||
|
scaling factor
|
||||||
|
|
||||||
|
nvidia,type:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: |
|
||||||
|
Freq sampler or Load sampler.
|
||||||
|
|
||||||
|
nvidia,max_dram_channels:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: |
|
||||||
|
Number of DRAM channels if it is MC client.
|
||||||
|
|
||||||
|
required:
|
||||||
|
- clocks
|
||||||
|
- clock-names
|
||||||
|
- nvidia,reg_offs
|
||||||
|
- nvidia,irq_mask
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
#define TEGRA234_IRQ_ACTMON 210
|
||||||
|
#define TEGRA234_RESET_ACTMON 1U
|
||||||
|
#define TEGRA234_CLK_ACTMON 1U
|
||||||
|
#define TEGRA234_CLK_EMC 31U
|
||||||
|
soc {
|
||||||
|
#address-cells = <2>;
|
||||||
|
#size-cells = <2>;
|
||||||
|
actmon@d230000 {
|
||||||
|
/* tegra194 central actmon */
|
||||||
|
compatible = "nvidia,tegra234-cactmon";
|
||||||
|
reg = <0x0 0x0d230000 0x0 0x1000>; /* ACTMON_BASE */
|
||||||
|
interrupts = <0 TEGRA234_IRQ_ACTMON IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
clocks = <&bpmp_clks TEGRA234_CLK_ACTMON>;
|
||||||
|
clock-names = "actmon";
|
||||||
|
resets = <&bpmp_resets TEGRA234_RESET_ACTMON>;
|
||||||
|
reset-names = "actmon_rst";
|
||||||
|
nvidia,sample_period = /bits/ 8 <20>;
|
||||||
|
|
||||||
|
mc_all-actdev { /* MC_ALL actmon device */
|
||||||
|
nvidia,reg_offs = <0x100>;
|
||||||
|
nvidia,irq_mask = <0x2>;
|
||||||
|
/* EMC_PLLP_FREQ + 2000 */
|
||||||
|
nvidia,suspend_freq = <204000>;
|
||||||
|
nvidia,boost_freq_step = <204000>;
|
||||||
|
nvidia,boost_up_coef = <200>;
|
||||||
|
nvidia,boost_down_coef = <50>;
|
||||||
|
nvidia,boost_up_threshold = <30>;
|
||||||
|
nvidia,boost_down_threshold = <20>;
|
||||||
|
nvidia,up_wmark_window = /bits/ 8 <3>;
|
||||||
|
nvidia,down_wmark_window = /bits/ 8 <2>;
|
||||||
|
nvidia,avg_window_log2 = /bits/ 8 <6>;
|
||||||
|
/*
|
||||||
|
* count_weight(W) = no of dram clks needed to access N atoms
|
||||||
|
* N = atoms per dvfs pulse = (2^7+1) = 256 atoms
|
||||||
|
* 1 atom = 64bytes
|
||||||
|
* t194 has 256 max dram width (16 channels x 16 bits per channel)
|
||||||
|
* 1 dram clock cycle provides 256*2 bits = 64bytes
|
||||||
|
* (i.e) 1 dram clock provides 1 atom
|
||||||
|
* so 256 dram clocks needed for 256 atoms
|
||||||
|
* W = 256
|
||||||
|
*/
|
||||||
|
nvidia,count_weight = <0x100>;
|
||||||
|
nvidia,max_dram_channels = /bits/ 8 <16>;
|
||||||
|
nvidia,type = <1>;
|
||||||
|
clocks = <&bpmp_clks TEGRA234_CLK_EMC>;
|
||||||
|
clock-names = "emc";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
...
|
||||||
Reference in New Issue
Block a user