xref: /linux/include/trace/events/clk.h (revision 2dbc0838bcf24ca59cabc3130cf3b1d6809cdcd4)
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>
227