xref: /freebsd-src/sys/contrib/device-tree/Bindings/devfreq/nvidia,tegra30-actmon.yaml (revision 5956d97f4b3204318ceb6aa9c77bd0bc6ea87a41)
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