xref: /openbmc/linux/include/trace/events/clk.h (revision 9c92ab61914157664a2fbdf926df0eb937838e45)
1*9c92ab61SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
2dfc202eaSStephen Boyd /*
3dfc202eaSStephen Boyd  * Copyright (c) 2014-2015, The Linux Foundation. All rights reserved.
4dfc202eaSStephen Boyd  */
5dfc202eaSStephen Boyd #undef TRACE_SYSTEM
6dfc202eaSStephen Boyd #define TRACE_SYSTEM clk
7dfc202eaSStephen Boyd 
8dfc202eaSStephen Boyd #if !defined(_TRACE_CLK_H) || defined(TRACE_HEADER_MULTI_READ)
9dfc202eaSStephen Boyd #define _TRACE_CLK_H
10dfc202eaSStephen Boyd 
11dfc202eaSStephen Boyd #include <linux/tracepoint.h>
12dfc202eaSStephen Boyd 
13dfc202eaSStephen Boyd struct clk_core;
14dfc202eaSStephen Boyd 
15dfc202eaSStephen Boyd DECLARE_EVENT_CLASS(clk,
16dfc202eaSStephen Boyd 
17dfc202eaSStephen Boyd 	TP_PROTO(struct clk_core *core),
18dfc202eaSStephen Boyd 
19dfc202eaSStephen Boyd 	TP_ARGS(core),
20dfc202eaSStephen Boyd 
21dfc202eaSStephen Boyd 	TP_STRUCT__entry(
22dfc202eaSStephen Boyd 		__string(        name,           core->name       )
23dfc202eaSStephen Boyd 	),
24dfc202eaSStephen Boyd 
25dfc202eaSStephen Boyd 	TP_fast_assign(
26dfc202eaSStephen Boyd 		__assign_str(name, core->name);
27dfc202eaSStephen Boyd 	),
28dfc202eaSStephen Boyd 
29dfc202eaSStephen Boyd 	TP_printk("%s", __get_str(name))
30dfc202eaSStephen Boyd );
31dfc202eaSStephen Boyd 
32dfc202eaSStephen Boyd DEFINE_EVENT(clk, clk_enable,
33dfc202eaSStephen Boyd 
34dfc202eaSStephen Boyd 	TP_PROTO(struct clk_core *core),
35dfc202eaSStephen Boyd 
36dfc202eaSStephen Boyd 	TP_ARGS(core)
37dfc202eaSStephen Boyd );
38dfc202eaSStephen Boyd 
39dfc202eaSStephen Boyd DEFINE_EVENT(clk, clk_enable_complete,
40dfc202eaSStephen Boyd 
41dfc202eaSStephen Boyd 	TP_PROTO(struct clk_core *core),
42dfc202eaSStephen Boyd 
43dfc202eaSStephen Boyd 	TP_ARGS(core)
44dfc202eaSStephen Boyd );
45dfc202eaSStephen Boyd 
46dfc202eaSStephen Boyd DEFINE_EVENT(clk, clk_disable,
47dfc202eaSStephen Boyd 
48dfc202eaSStephen Boyd 	TP_PROTO(struct clk_core *core),
49dfc202eaSStephen Boyd 
50dfc202eaSStephen Boyd 	TP_ARGS(core)
51dfc202eaSStephen Boyd );
52dfc202eaSStephen Boyd 
53dfc202eaSStephen Boyd DEFINE_EVENT(clk, clk_disable_complete,
54dfc202eaSStephen Boyd 
55dfc202eaSStephen Boyd 	TP_PROTO(struct clk_core *core),
56dfc202eaSStephen Boyd 
57dfc202eaSStephen Boyd 	TP_ARGS(core)
58dfc202eaSStephen Boyd );
59dfc202eaSStephen Boyd 
60dfc202eaSStephen Boyd DEFINE_EVENT(clk, clk_prepare,
61dfc202eaSStephen Boyd 
62dfc202eaSStephen Boyd 	TP_PROTO(struct clk_core *core),
63dfc202eaSStephen Boyd 
64dfc202eaSStephen Boyd 	TP_ARGS(core)
65dfc202eaSStephen Boyd );
66dfc202eaSStephen Boyd 
67dfc202eaSStephen Boyd DEFINE_EVENT(clk, clk_prepare_complete,
68dfc202eaSStephen Boyd 
69dfc202eaSStephen Boyd 	TP_PROTO(struct clk_core *core),
70dfc202eaSStephen Boyd 
71dfc202eaSStephen Boyd 	TP_ARGS(core)
72dfc202eaSStephen Boyd );
73dfc202eaSStephen Boyd 
74dfc202eaSStephen Boyd DEFINE_EVENT(clk, clk_unprepare,
75dfc202eaSStephen Boyd 
76dfc202eaSStephen Boyd 	TP_PROTO(struct clk_core *core),
77dfc202eaSStephen Boyd 
78dfc202eaSStephen Boyd 	TP_ARGS(core)
79dfc202eaSStephen Boyd );
80dfc202eaSStephen Boyd 
81dfc202eaSStephen Boyd DEFINE_EVENT(clk, clk_unprepare_complete,
82dfc202eaSStephen Boyd 
83dfc202eaSStephen Boyd 	TP_PROTO(struct clk_core *core),
84dfc202eaSStephen Boyd 
85dfc202eaSStephen Boyd 	TP_ARGS(core)
86dfc202eaSStephen Boyd );
87dfc202eaSStephen Boyd 
88dfc202eaSStephen Boyd DECLARE_EVENT_CLASS(clk_rate,
89dfc202eaSStephen Boyd 
90dfc202eaSStephen Boyd 	TP_PROTO(struct clk_core *core, unsigned long rate),
91dfc202eaSStephen Boyd 
92dfc202eaSStephen Boyd 	TP_ARGS(core, rate),
93dfc202eaSStephen Boyd 
94dfc202eaSStephen Boyd 	TP_STRUCT__entry(
95dfc202eaSStephen Boyd 		__string(        name,           core->name                )
96dfc202eaSStephen Boyd 		__field(unsigned long,           rate                      )
97dfc202eaSStephen Boyd 	),
98dfc202eaSStephen Boyd 
99dfc202eaSStephen Boyd 	TP_fast_assign(
100dfc202eaSStephen Boyd 		__assign_str(name, core->name);
101dfc202eaSStephen Boyd 		__entry->rate = rate;
102dfc202eaSStephen Boyd 	),
103dfc202eaSStephen Boyd 
104dfc202eaSStephen Boyd 	TP_printk("%s %lu", __get_str(name), (unsigned long)__entry->rate)
105dfc202eaSStephen Boyd );
106dfc202eaSStephen Boyd 
107dfc202eaSStephen Boyd DEFINE_EVENT(clk_rate, clk_set_rate,
108dfc202eaSStephen Boyd 
109dfc202eaSStephen Boyd 	TP_PROTO(struct clk_core *core, unsigned long rate),
110dfc202eaSStephen Boyd 
111dfc202eaSStephen Boyd 	TP_ARGS(core, rate)
112dfc202eaSStephen Boyd );
113dfc202eaSStephen Boyd 
114dfc202eaSStephen Boyd DEFINE_EVENT(clk_rate, clk_set_rate_complete,
115dfc202eaSStephen Boyd 
116dfc202eaSStephen Boyd 	TP_PROTO(struct clk_core *core, unsigned long rate),
117dfc202eaSStephen Boyd 
118dfc202eaSStephen Boyd 	TP_ARGS(core, rate)
119dfc202eaSStephen Boyd );
120dfc202eaSStephen Boyd 
121dfc202eaSStephen Boyd DECLARE_EVENT_CLASS(clk_parent,
122dfc202eaSStephen Boyd 
123dfc202eaSStephen Boyd 	TP_PROTO(struct clk_core *core, struct clk_core *parent),
124dfc202eaSStephen Boyd 
125dfc202eaSStephen Boyd 	TP_ARGS(core, parent),
126dfc202eaSStephen Boyd 
127dfc202eaSStephen Boyd 	TP_STRUCT__entry(
128dfc202eaSStephen Boyd 		__string(        name,           core->name                )
129975b820bSCai Li 		__string(        pname, parent ? parent->name : "none"     )
130dfc202eaSStephen Boyd 	),
131dfc202eaSStephen Boyd 
132dfc202eaSStephen Boyd 	TP_fast_assign(
133dfc202eaSStephen Boyd 		__assign_str(name, core->name);
134975b820bSCai Li 		__assign_str(pname, parent ? parent->name : "none");
135dfc202eaSStephen Boyd 	),
136dfc202eaSStephen Boyd 
137dfc202eaSStephen Boyd 	TP_printk("%s %s", __get_str(name), __get_str(pname))
138dfc202eaSStephen Boyd );
139dfc202eaSStephen Boyd 
140dfc202eaSStephen Boyd DEFINE_EVENT(clk_parent, clk_set_parent,
141dfc202eaSStephen Boyd 
142dfc202eaSStephen Boyd 	TP_PROTO(struct clk_core *core, struct clk_core *parent),
143dfc202eaSStephen Boyd 
144dfc202eaSStephen Boyd 	TP_ARGS(core, parent)
145dfc202eaSStephen Boyd );
146dfc202eaSStephen Boyd 
147dfc202eaSStephen Boyd DEFINE_EVENT(clk_parent, clk_set_parent_complete,
148dfc202eaSStephen Boyd 
149dfc202eaSStephen Boyd 	TP_PROTO(struct clk_core *core, struct clk_core *parent),
150dfc202eaSStephen Boyd 
151dfc202eaSStephen Boyd 	TP_ARGS(core, parent)
152dfc202eaSStephen Boyd );
153dfc202eaSStephen Boyd 
154dfc202eaSStephen Boyd DECLARE_EVENT_CLASS(clk_phase,
155dfc202eaSStephen Boyd 
156dfc202eaSStephen Boyd 	TP_PROTO(struct clk_core *core, int phase),
157dfc202eaSStephen Boyd 
158dfc202eaSStephen Boyd 	TP_ARGS(core, phase),
159dfc202eaSStephen Boyd 
160dfc202eaSStephen Boyd 	TP_STRUCT__entry(
161dfc202eaSStephen Boyd 		__string(        name,           core->name                )
162dfc202eaSStephen Boyd 		__field(	  int,           phase                     )
163dfc202eaSStephen Boyd 	),
164dfc202eaSStephen Boyd 
165dfc202eaSStephen Boyd 	TP_fast_assign(
166dfc202eaSStephen Boyd 		__assign_str(name, core->name);
167dfc202eaSStephen Boyd 		__entry->phase = phase;
168dfc202eaSStephen Boyd 	),
169dfc202eaSStephen Boyd 
170dfc202eaSStephen Boyd 	TP_printk("%s %d", __get_str(name), (int)__entry->phase)
171dfc202eaSStephen Boyd );
172dfc202eaSStephen Boyd 
173dfc202eaSStephen Boyd DEFINE_EVENT(clk_phase, clk_set_phase,
174dfc202eaSStephen Boyd 
175dfc202eaSStephen Boyd 	TP_PROTO(struct clk_core *core, int phase),
176dfc202eaSStephen Boyd 
177dfc202eaSStephen Boyd 	TP_ARGS(core, phase)
178dfc202eaSStephen Boyd );
179dfc202eaSStephen Boyd 
180dfc202eaSStephen Boyd DEFINE_EVENT(clk_phase, clk_set_phase_complete,
181dfc202eaSStephen Boyd 
182dfc202eaSStephen Boyd 	TP_PROTO(struct clk_core *core, int phase),
183dfc202eaSStephen Boyd 
184dfc202eaSStephen Boyd 	TP_ARGS(core, phase)
185dfc202eaSStephen Boyd );
186dfc202eaSStephen Boyd 
1879fba738aSJerome Brunet DECLARE_EVENT_CLASS(clk_duty_cycle,
1889fba738aSJerome Brunet 
1899fba738aSJerome Brunet 	TP_PROTO(struct clk_core *core, struct clk_duty *duty),
1909fba738aSJerome Brunet 
1919fba738aSJerome Brunet 	TP_ARGS(core, duty),
1929fba738aSJerome Brunet 
1939fba738aSJerome Brunet 	TP_STRUCT__entry(
1949fba738aSJerome Brunet 		__string(        name,           core->name              )
1959fba738aSJerome Brunet 		__field( unsigned int,           num                     )
1969fba738aSJerome Brunet 		__field( unsigned int,           den                     )
1979fba738aSJerome Brunet 	),
1989fba738aSJerome Brunet 
1999fba738aSJerome Brunet 	TP_fast_assign(
2009fba738aSJerome Brunet 		__assign_str(name, core->name);
2019fba738aSJerome Brunet 		__entry->num = duty->num;
2029fba738aSJerome Brunet 		__entry->den = duty->den;
2039fba738aSJerome Brunet 	),
2049fba738aSJerome Brunet 
2059fba738aSJerome Brunet 	TP_printk("%s %u/%u", __get_str(name), (unsigned int)__entry->num,
2069fba738aSJerome Brunet 		  (unsigned int)__entry->den)
2079fba738aSJerome Brunet );
2089fba738aSJerome Brunet 
2099fba738aSJerome Brunet DEFINE_EVENT(clk_duty_cycle, clk_set_duty_cycle,
2109fba738aSJerome Brunet 
2119fba738aSJerome Brunet 	TP_PROTO(struct clk_core *core, struct clk_duty *duty),
2129fba738aSJerome Brunet 
2139fba738aSJerome Brunet 	TP_ARGS(core, duty)
2149fba738aSJerome Brunet );
2159fba738aSJerome Brunet 
2169fba738aSJerome Brunet DEFINE_EVENT(clk_duty_cycle, clk_set_duty_cycle_complete,
2179fba738aSJerome Brunet 
2189fba738aSJerome Brunet 	TP_PROTO(struct clk_core *core, struct clk_duty *duty),
2199fba738aSJerome Brunet 
2209fba738aSJerome Brunet 	TP_ARGS(core, duty)
2219fba738aSJerome Brunet );
2229fba738aSJerome Brunet 
223dfc202eaSStephen Boyd #endif /* _TRACE_CLK_H */
224dfc202eaSStephen Boyd 
225dfc202eaSStephen Boyd /* This part must be outside protection */
226dfc202eaSStephen Boyd #include <trace/define_trace.h>
227