Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/Documentation/devicetree/bindings/devfreq/event/samsung,exynos-ppmu.yaml
26308 views
1
# SPDX-License-Identifier: GPL-2.0
2
%YAML 1.2
3
---
4
$id: http://devicetree.org/schemas/devfreq/event/samsung,exynos-ppmu.yaml#
5
$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7
title: Samsung Exynos SoC PPMU (Platform Performance Monitoring Unit)
8
9
maintainers:
10
- Chanwoo Choi <cw00.choi@samsung.com>
11
- Krzysztof Kozlowski <krzk@kernel.org>
12
13
description: |
14
The Samsung Exynos SoC has PPMU (Platform Performance Monitoring Unit) for
15
each IP. PPMU provides the primitive values to get performance data. These
16
PPMU events provide information of the SoC's behaviors so that you may use to
17
analyze system performance, to make behaviors visible and to count usages of
18
each IP (DMC, CPU, RIGHTBUS, LEFTBUS, CAM interface, LCD, G3D, MFC). The
19
Exynos PPMU driver uses the devfreq-event class to provide event data to
20
various devfreq devices. The devfreq devices would use the event data when
21
determining the current state of each IP.
22
23
properties:
24
compatible:
25
enum:
26
- samsung,exynos-ppmu
27
- samsung,exynos-ppmu-v2
28
29
clock-names:
30
items:
31
- const: ppmu
32
33
clocks:
34
maxItems: 1
35
36
reg:
37
maxItems: 1
38
39
events:
40
type: object
41
42
patternProperties:
43
'^ppmu-event[0-9]+(-[a-z0-9]+){,2}$':
44
type: object
45
properties:
46
event-name:
47
description: |
48
The unique event name among PPMU device
49
$ref: /schemas/types.yaml#/definitions/string
50
51
event-data-type:
52
description: |
53
Define the type of data which shell be counted by the counter.
54
You can check include/dt-bindings/pmu/exynos_ppmu.h for all
55
possible type, i.e. count read requests, count write data in
56
bytes, etc. This field is optional and when it is missing, the
57
driver code will use default data type.
58
$ref: /schemas/types.yaml#/definitions/uint32
59
60
required:
61
- event-name
62
63
additionalProperties: false
64
65
additionalProperties: false
66
67
required:
68
- compatible
69
- reg
70
71
additionalProperties: false
72
73
examples:
74
- |
75
// PPMUv1 nodes for Exynos3250 (although the board DTS defines events)
76
#include <dt-bindings/clock/exynos3250.h>
77
78
ppmu_dmc0: ppmu@106a0000 {
79
compatible = "samsung,exynos-ppmu";
80
reg = <0x106a0000 0x2000>;
81
82
events {
83
ppmu_dmc0_3: ppmu-event3-dmc0 {
84
event-name = "ppmu-event3-dmc0";
85
};
86
87
ppmu_dmc0_2: ppmu-event2-dmc0 {
88
event-name = "ppmu-event2-dmc0";
89
};
90
91
ppmu_dmc0_1: ppmu-event1-dmc0 {
92
event-name = "ppmu-event1-dmc0";
93
};
94
95
ppmu_dmc0_0: ppmu-event0-dmc0 {
96
event-name = "ppmu-event0-dmc0";
97
};
98
};
99
};
100
101
ppmu_rightbus: ppmu@112a0000 {
102
compatible = "samsung,exynos-ppmu";
103
reg = <0x112a0000 0x2000>;
104
clocks = <&cmu CLK_PPMURIGHT>;
105
clock-names = "ppmu";
106
107
events {
108
ppmu_rightbus_3: ppmu-event3-rightbus {
109
event-name = "ppmu-event3-rightbus";
110
};
111
};
112
};
113
114
- |
115
// PPMUv2 nodes in Exynos5433
116
ppmu_d0_cpu: ppmu@10480000 {
117
compatible = "samsung,exynos-ppmu-v2";
118
reg = <0x10480000 0x2000>;
119
};
120
121
ppmu_d0_general: ppmu@10490000 {
122
compatible = "samsung,exynos-ppmu-v2";
123
reg = <0x10490000 0x2000>;
124
125
events {
126
ppmu_event0_d0_general: ppmu-event0-d0-general {
127
event-name = "ppmu-event0-d0-general";
128
};
129
};
130
};
131
132
ppmu_d0_rt: ppmu@104a0000 {
133
compatible = "samsung,exynos-ppmu-v2";
134
reg = <0x104a0000 0x2000>;
135
};
136
137
ppmu_d1_cpu: ppmu@104b0000 {
138
compatible = "samsung,exynos-ppmu-v2";
139
reg = <0x104b0000 0x2000>;
140
};
141
142
ppmu_d1_general: ppmu@104c0000 {
143
compatible = "samsung,exynos-ppmu-v2";
144
reg = <0x104c0000 0x2000>;
145
};
146
147
ppmu_d1_rt: ppmu@104d0000 {
148
compatible = "samsung,exynos-ppmu-v2";
149
reg = <0x104d0000 0x2000>;
150
};
151
152
- |
153
// PPMUv1 nodes with event-data-type for Exynos4412
154
#include <dt-bindings/pmu/exynos_ppmu.h>
155
156
ppmu@106a0000 {
157
compatible = "samsung,exynos-ppmu";
158
reg = <0x106a0000 0x2000>;
159
clocks = <&clock 400>;
160
clock-names = "ppmu";
161
162
events {
163
ppmu-event3-dmc0 {
164
event-name = "ppmu-event3-dmc0";
165
event-data-type = <(PPMU_RO_DATA_CNT |
166
PPMU_WO_DATA_CNT)>;
167
};
168
};
169
};
170
171