1*5956d97fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*5956d97fSEmmanuel Vadot%YAML 1.2 3*5956d97fSEmmanuel Vadot--- 4*5956d97fSEmmanuel Vadot$id: http://devicetree.org/schemas/devfreq/nvidia,tegra30-actmon.yaml# 5*5956d97fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*5956d97fSEmmanuel Vadot 7*5956d97fSEmmanuel Vadottitle: NVIDIA Tegra30 Activity Monitor 8*5956d97fSEmmanuel Vadot 9*5956d97fSEmmanuel Vadotmaintainers: 10*5956d97fSEmmanuel Vadot - Dmitry Osipenko <digetx@gmail.com> 11*5956d97fSEmmanuel Vadot - Jon Hunter <jonathanh@nvidia.com> 12*5956d97fSEmmanuel Vadot - Thierry Reding <thierry.reding@gmail.com> 13*5956d97fSEmmanuel Vadot 14*5956d97fSEmmanuel Vadotdescription: | 15*5956d97fSEmmanuel Vadot The activity monitor block collects statistics about the behaviour of other 16*5956d97fSEmmanuel Vadot components in the system. This information can be used to derive the rate at 17*5956d97fSEmmanuel Vadot which the external memory needs to be clocked in order to serve all requests 18*5956d97fSEmmanuel Vadot from the monitored clients. 19*5956d97fSEmmanuel Vadot 20*5956d97fSEmmanuel Vadotproperties: 21*5956d97fSEmmanuel Vadot compatible: 22*5956d97fSEmmanuel Vadot enum: 23*5956d97fSEmmanuel Vadot - nvidia,tegra30-actmon 24*5956d97fSEmmanuel Vadot - nvidia,tegra114-actmon 25*5956d97fSEmmanuel Vadot - nvidia,tegra124-actmon 26*5956d97fSEmmanuel Vadot - nvidia,tegra210-actmon 27*5956d97fSEmmanuel Vadot 28*5956d97fSEmmanuel Vadot reg: 29*5956d97fSEmmanuel Vadot maxItems: 1 30*5956d97fSEmmanuel Vadot 31*5956d97fSEmmanuel Vadot clocks: 32*5956d97fSEmmanuel Vadot maxItems: 2 33*5956d97fSEmmanuel Vadot 34*5956d97fSEmmanuel Vadot clock-names: 35*5956d97fSEmmanuel Vadot items: 36*5956d97fSEmmanuel Vadot - const: actmon 37*5956d97fSEmmanuel Vadot - const: emc 38*5956d97fSEmmanuel Vadot 39*5956d97fSEmmanuel Vadot resets: 40*5956d97fSEmmanuel Vadot maxItems: 1 41*5956d97fSEmmanuel Vadot 42*5956d97fSEmmanuel Vadot reset-names: 43*5956d97fSEmmanuel Vadot items: 44*5956d97fSEmmanuel Vadot - const: actmon 45*5956d97fSEmmanuel Vadot 46*5956d97fSEmmanuel Vadot interrupts: 47*5956d97fSEmmanuel Vadot maxItems: 1 48*5956d97fSEmmanuel Vadot 49*5956d97fSEmmanuel Vadot interconnects: 50*5956d97fSEmmanuel Vadot minItems: 1 51*5956d97fSEmmanuel Vadot maxItems: 12 52*5956d97fSEmmanuel Vadot 53*5956d97fSEmmanuel Vadot interconnect-names: 54*5956d97fSEmmanuel Vadot minItems: 1 55*5956d97fSEmmanuel Vadot maxItems: 12 56*5956d97fSEmmanuel Vadot description: 57*5956d97fSEmmanuel Vadot Should include name of the interconnect path for each interconnect 58*5956d97fSEmmanuel Vadot entry. Consult TRM documentation for information about available 59*5956d97fSEmmanuel Vadot memory clients, see MEMORY CONTROLLER and ACTIVITY MONITOR sections. 60*5956d97fSEmmanuel Vadot 61*5956d97fSEmmanuel Vadot operating-points-v2: 62*5956d97fSEmmanuel Vadot description: 63*5956d97fSEmmanuel Vadot Should contain freqs and voltages and opp-supported-hw property, which 64*5956d97fSEmmanuel Vadot is a bitfield indicating SoC speedo ID mask. 65*5956d97fSEmmanuel Vadot 66*5956d97fSEmmanuel Vadot "#cooling-cells": 67*5956d97fSEmmanuel Vadot const: 2 68*5956d97fSEmmanuel Vadot 69*5956d97fSEmmanuel Vadotrequired: 70*5956d97fSEmmanuel Vadot - compatible 71*5956d97fSEmmanuel Vadot - reg 72*5956d97fSEmmanuel Vadot - clocks 73*5956d97fSEmmanuel Vadot - clock-names 74*5956d97fSEmmanuel Vadot - resets 75*5956d97fSEmmanuel Vadot - reset-names 76*5956d97fSEmmanuel Vadot - interrupts 77*5956d97fSEmmanuel Vadot - interconnects 78*5956d97fSEmmanuel Vadot - interconnect-names 79*5956d97fSEmmanuel Vadot - operating-points-v2 80*5956d97fSEmmanuel Vadot - "#cooling-cells" 81*5956d97fSEmmanuel Vadot 82*5956d97fSEmmanuel VadotadditionalProperties: false 83*5956d97fSEmmanuel Vadot 84*5956d97fSEmmanuel Vadotexamples: 85*5956d97fSEmmanuel Vadot - | 86*5956d97fSEmmanuel Vadot #include <dt-bindings/memory/tegra30-mc.h> 87*5956d97fSEmmanuel Vadot 88*5956d97fSEmmanuel Vadot mc: memory-controller@7000f000 { 89*5956d97fSEmmanuel Vadot compatible = "nvidia,tegra30-mc"; 90*5956d97fSEmmanuel Vadot reg = <0x7000f000 0x400>; 91*5956d97fSEmmanuel Vadot clocks = <&clk 32>; 92*5956d97fSEmmanuel Vadot clock-names = "mc"; 93*5956d97fSEmmanuel Vadot 94*5956d97fSEmmanuel Vadot interrupts = <0 77 4>; 95*5956d97fSEmmanuel Vadot 96*5956d97fSEmmanuel Vadot #iommu-cells = <1>; 97*5956d97fSEmmanuel Vadot #reset-cells = <1>; 98*5956d97fSEmmanuel Vadot #interconnect-cells = <1>; 99*5956d97fSEmmanuel Vadot }; 100*5956d97fSEmmanuel Vadot 101*5956d97fSEmmanuel Vadot emc: external-memory-controller@7000f400 { 102*5956d97fSEmmanuel Vadot compatible = "nvidia,tegra30-emc"; 103*5956d97fSEmmanuel Vadot reg = <0x7000f400 0x400>; 104*5956d97fSEmmanuel Vadot interrupts = <0 78 4>; 105*5956d97fSEmmanuel Vadot clocks = <&clk 57>; 106*5956d97fSEmmanuel Vadot 107*5956d97fSEmmanuel Vadot nvidia,memory-controller = <&mc>; 108*5956d97fSEmmanuel Vadot operating-points-v2 = <&dvfs_opp_table>; 109*5956d97fSEmmanuel Vadot power-domains = <&domain>; 110*5956d97fSEmmanuel Vadot 111*5956d97fSEmmanuel Vadot #interconnect-cells = <0>; 112*5956d97fSEmmanuel Vadot }; 113*5956d97fSEmmanuel Vadot 114*5956d97fSEmmanuel Vadot actmon@6000c800 { 115*5956d97fSEmmanuel Vadot compatible = "nvidia,tegra30-actmon"; 116*5956d97fSEmmanuel Vadot reg = <0x6000c800 0x400>; 117*5956d97fSEmmanuel Vadot interrupts = <0 45 4>; 118*5956d97fSEmmanuel Vadot clocks = <&clk 119>, <&clk 57>; 119*5956d97fSEmmanuel Vadot clock-names = "actmon", "emc"; 120*5956d97fSEmmanuel Vadot resets = <&rst 119>; 121*5956d97fSEmmanuel Vadot reset-names = "actmon"; 122*5956d97fSEmmanuel Vadot operating-points-v2 = <&dvfs_opp_table>; 123*5956d97fSEmmanuel Vadot interconnects = <&mc TEGRA30_MC_MPCORER &emc>; 124*5956d97fSEmmanuel Vadot interconnect-names = "cpu-read"; 125*5956d97fSEmmanuel Vadot #cooling-cells = <2>; 126*5956d97fSEmmanuel Vadot }; 127