Merge tag 'for-5.15-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux
[linux-2.6-microblaze.git] / include / trace / events / clk.h
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Copyright (c) 2014-2015, The Linux Foundation. All rights reserved.
4  */
5 #undef TRACE_SYSTEM
6 #define TRACE_SYSTEM clk
7
8 #if !defined(_TRACE_CLK_H) || defined(TRACE_HEADER_MULTI_READ)
9 #define _TRACE_CLK_H
10
11 #include <linux/tracepoint.h>
12
13 struct clk_core;
14
15 DECLARE_EVENT_CLASS(clk,
16
17         TP_PROTO(struct clk_core *core),
18
19         TP_ARGS(core),
20
21         TP_STRUCT__entry(
22                 __string(        name,           core->name       )
23         ),
24
25         TP_fast_assign(
26                 __assign_str(name, core->name);
27         ),
28
29         TP_printk("%s", __get_str(name))
30 );
31
32 DEFINE_EVENT(clk, clk_enable,
33
34         TP_PROTO(struct clk_core *core),
35
36         TP_ARGS(core)
37 );
38
39 DEFINE_EVENT(clk, clk_enable_complete,
40
41         TP_PROTO(struct clk_core *core),
42
43         TP_ARGS(core)
44 );
45
46 DEFINE_EVENT(clk, clk_disable,
47
48         TP_PROTO(struct clk_core *core),
49
50         TP_ARGS(core)
51 );
52
53 DEFINE_EVENT(clk, clk_disable_complete,
54
55         TP_PROTO(struct clk_core *core),
56
57         TP_ARGS(core)
58 );
59
60 DEFINE_EVENT(clk, clk_prepare,
61
62         TP_PROTO(struct clk_core *core),
63
64         TP_ARGS(core)
65 );
66
67 DEFINE_EVENT(clk, clk_prepare_complete,
68
69         TP_PROTO(struct clk_core *core),
70
71         TP_ARGS(core)
72 );
73
74 DEFINE_EVENT(clk, clk_unprepare,
75
76         TP_PROTO(struct clk_core *core),
77
78         TP_ARGS(core)
79 );
80
81 DEFINE_EVENT(clk, clk_unprepare_complete,
82
83         TP_PROTO(struct clk_core *core),
84
85         TP_ARGS(core)
86 );
87
88 DECLARE_EVENT_CLASS(clk_rate,
89
90         TP_PROTO(struct clk_core *core, unsigned long rate),
91
92         TP_ARGS(core, rate),
93
94         TP_STRUCT__entry(
95                 __string(        name,           core->name                )
96                 __field(unsigned long,           rate                      )
97         ),
98
99         TP_fast_assign(
100                 __assign_str(name, core->name);
101                 __entry->rate = rate;
102         ),
103
104         TP_printk("%s %lu", __get_str(name), (unsigned long)__entry->rate)
105 );
106
107 DEFINE_EVENT(clk_rate, clk_set_rate,
108
109         TP_PROTO(struct clk_core *core, unsigned long rate),
110
111         TP_ARGS(core, rate)
112 );
113
114 DEFINE_EVENT(clk_rate, clk_set_rate_complete,
115
116         TP_PROTO(struct clk_core *core, unsigned long rate),
117
118         TP_ARGS(core, rate)
119 );
120
121 DEFINE_EVENT(clk_rate, clk_set_min_rate,
122
123         TP_PROTO(struct clk_core *core, unsigned long rate),
124
125         TP_ARGS(core, rate)
126 );
127
128 DEFINE_EVENT(clk_rate, clk_set_max_rate,
129
130         TP_PROTO(struct clk_core *core, unsigned long rate),
131
132         TP_ARGS(core, rate)
133 );
134
135 DECLARE_EVENT_CLASS(clk_rate_range,
136
137         TP_PROTO(struct clk_core *core, unsigned long min, unsigned long max),
138
139         TP_ARGS(core, min, max),
140
141         TP_STRUCT__entry(
142                 __string(        name,           core->name                )
143                 __field(unsigned long,           min                       )
144                 __field(unsigned long,           max                       )
145         ),
146
147         TP_fast_assign(
148                 __assign_str(name, core->name);
149                 __entry->min = min;
150                 __entry->max = max;
151         ),
152
153         TP_printk("%s min %lu max %lu", __get_str(name),
154                   (unsigned long)__entry->min,
155                   (unsigned long)__entry->max)
156 );
157
158 DEFINE_EVENT(clk_rate_range, clk_set_rate_range,
159
160         TP_PROTO(struct clk_core *core, unsigned long min, unsigned long max),
161
162         TP_ARGS(core, min, max)
163 );
164
165 DECLARE_EVENT_CLASS(clk_parent,
166
167         TP_PROTO(struct clk_core *core, struct clk_core *parent),
168
169         TP_ARGS(core, parent),
170
171         TP_STRUCT__entry(
172                 __string(        name,           core->name                )
173                 __string(        pname, parent ? parent->name : "none"     )
174         ),
175
176         TP_fast_assign(
177                 __assign_str(name, core->name);
178                 __assign_str(pname, parent ? parent->name : "none");
179         ),
180
181         TP_printk("%s %s", __get_str(name), __get_str(pname))
182 );
183
184 DEFINE_EVENT(clk_parent, clk_set_parent,
185
186         TP_PROTO(struct clk_core *core, struct clk_core *parent),
187
188         TP_ARGS(core, parent)
189 );
190
191 DEFINE_EVENT(clk_parent, clk_set_parent_complete,
192
193         TP_PROTO(struct clk_core *core, struct clk_core *parent),
194
195         TP_ARGS(core, parent)
196 );
197
198 DECLARE_EVENT_CLASS(clk_phase,
199
200         TP_PROTO(struct clk_core *core, int phase),
201
202         TP_ARGS(core, phase),
203
204         TP_STRUCT__entry(
205                 __string(        name,           core->name                )
206                 __field(          int,           phase                     )
207         ),
208
209         TP_fast_assign(
210                 __assign_str(name, core->name);
211                 __entry->phase = phase;
212         ),
213
214         TP_printk("%s %d", __get_str(name), (int)__entry->phase)
215 );
216
217 DEFINE_EVENT(clk_phase, clk_set_phase,
218
219         TP_PROTO(struct clk_core *core, int phase),
220
221         TP_ARGS(core, phase)
222 );
223
224 DEFINE_EVENT(clk_phase, clk_set_phase_complete,
225
226         TP_PROTO(struct clk_core *core, int phase),
227
228         TP_ARGS(core, phase)
229 );
230
231 DECLARE_EVENT_CLASS(clk_duty_cycle,
232
233         TP_PROTO(struct clk_core *core, struct clk_duty *duty),
234
235         TP_ARGS(core, duty),
236
237         TP_STRUCT__entry(
238                 __string(        name,           core->name              )
239                 __field( unsigned int,           num                     )
240                 __field( unsigned int,           den                     )
241         ),
242
243         TP_fast_assign(
244                 __assign_str(name, core->name);
245                 __entry->num = duty->num;
246                 __entry->den = duty->den;
247         ),
248
249         TP_printk("%s %u/%u", __get_str(name), (unsigned int)__entry->num,
250                   (unsigned int)__entry->den)
251 );
252
253 DEFINE_EVENT(clk_duty_cycle, clk_set_duty_cycle,
254
255         TP_PROTO(struct clk_core *core, struct clk_duty *duty),
256
257         TP_ARGS(core, duty)
258 );
259
260 DEFINE_EVENT(clk_duty_cycle, clk_set_duty_cycle_complete,
261
262         TP_PROTO(struct clk_core *core, struct clk_duty *duty),
263
264         TP_ARGS(core, duty)
265 );
266
267 #endif /* _TRACE_CLK_H */
268
269 /* This part must be outside protection */
270 #include <trace/define_trace.h>