Linux-libre 5.3.12-gnu
[librecmc/linux-libre.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 DECLARE_EVENT_CLASS(clk_parent,
122
123         TP_PROTO(struct clk_core *core, struct clk_core *parent),
124
125         TP_ARGS(core, parent),
126
127         TP_STRUCT__entry(
128                 __string(        name,           core->name                )
129                 __string(        pname, parent ? parent->name : "none"     )
130         ),
131
132         TP_fast_assign(
133                 __assign_str(name, core->name);
134                 __assign_str(pname, parent ? parent->name : "none");
135         ),
136
137         TP_printk("%s %s", __get_str(name), __get_str(pname))
138 );
139
140 DEFINE_EVENT(clk_parent, clk_set_parent,
141
142         TP_PROTO(struct clk_core *core, struct clk_core *parent),
143
144         TP_ARGS(core, parent)
145 );
146
147 DEFINE_EVENT(clk_parent, clk_set_parent_complete,
148
149         TP_PROTO(struct clk_core *core, struct clk_core *parent),
150
151         TP_ARGS(core, parent)
152 );
153
154 DECLARE_EVENT_CLASS(clk_phase,
155
156         TP_PROTO(struct clk_core *core, int phase),
157
158         TP_ARGS(core, phase),
159
160         TP_STRUCT__entry(
161                 __string(        name,           core->name                )
162                 __field(          int,           phase                     )
163         ),
164
165         TP_fast_assign(
166                 __assign_str(name, core->name);
167                 __entry->phase = phase;
168         ),
169
170         TP_printk("%s %d", __get_str(name), (int)__entry->phase)
171 );
172
173 DEFINE_EVENT(clk_phase, clk_set_phase,
174
175         TP_PROTO(struct clk_core *core, int phase),
176
177         TP_ARGS(core, phase)
178 );
179
180 DEFINE_EVENT(clk_phase, clk_set_phase_complete,
181
182         TP_PROTO(struct clk_core *core, int phase),
183
184         TP_ARGS(core, phase)
185 );
186
187 DECLARE_EVENT_CLASS(clk_duty_cycle,
188
189         TP_PROTO(struct clk_core *core, struct clk_duty *duty),
190
191         TP_ARGS(core, duty),
192
193         TP_STRUCT__entry(
194                 __string(        name,           core->name              )
195                 __field( unsigned int,           num                     )
196                 __field( unsigned int,           den                     )
197         ),
198
199         TP_fast_assign(
200                 __assign_str(name, core->name);
201                 __entry->num = duty->num;
202                 __entry->den = duty->den;
203         ),
204
205         TP_printk("%s %u/%u", __get_str(name), (unsigned int)__entry->num,
206                   (unsigned int)__entry->den)
207 );
208
209 DEFINE_EVENT(clk_duty_cycle, clk_set_duty_cycle,
210
211         TP_PROTO(struct clk_core *core, struct clk_duty *duty),
212
213         TP_ARGS(core, duty)
214 );
215
216 DEFINE_EVENT(clk_duty_cycle, clk_set_duty_cycle_complete,
217
218         TP_PROTO(struct clk_core *core, struct clk_duty *duty),
219
220         TP_ARGS(core, duty)
221 );
222
223 #endif /* _TRACE_CLK_H */
224
225 /* This part must be outside protection */
226 #include <trace/define_trace.h>