]> git.ipfire.org Git - thirdparty/u-boot.git/blob - Bindings/devfreq/event/samsung,exynos-ppmu.yaml
Squashed 'dts/upstream/' content from commit aaba2d45dc2a
[thirdparty/u-boot.git] / Bindings / devfreq / event / samsung,exynos-ppmu.yaml
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 };