xref: /linux/include/trace/events/regulator.h (revision 3503d56cc7233ced602e38a4c13caa64f00ab2aa)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #undef TRACE_SYSTEM
3 #define TRACE_SYSTEM regulator
4 
5 #if !defined(_TRACE_REGULATOR_H) || defined(TRACE_HEADER_MULTI_READ)
6 #define _TRACE_REGULATOR_H
7 
8 #include <linux/ktime.h>
9 #include <linux/tracepoint.h>
10 
11 /*
12  * Events which just log themselves and the regulator name for enable/disable
13  * type tracking.
14  */
15 DECLARE_EVENT_CLASS(regulator_basic,
16 
17 	TP_PROTO(const char *name),
18 
19 	TP_ARGS(name),
20 
21 	TP_STRUCT__entry(
22 		__string(	name,	name	)
23 	),
24 
25 	TP_fast_assign(
26 		__assign_str(name, name);
27 	),
28 
29 	TP_printk("name=%s", __get_str(name))
30 
31 );
32 
33 DEFINE_EVENT(regulator_basic, regulator_enable,
34 
35 	TP_PROTO(const char *name),
36 
37 	TP_ARGS(name)
38 
39 );
40 
41 DEFINE_EVENT(regulator_basic, regulator_enable_delay,
42 
43 	TP_PROTO(const char *name),
44 
45 	TP_ARGS(name)
46 
47 );
48 
49 DEFINE_EVENT(regulator_basic, regulator_enable_complete,
50 
51 	TP_PROTO(const char *name),
52 
53 	TP_ARGS(name)
54 
55 );
56 
57 DEFINE_EVENT(regulator_basic, regulator_disable,
58 
59 	TP_PROTO(const char *name),
60 
61 	TP_ARGS(name)
62 
63 );
64 
65 DEFINE_EVENT(regulator_basic, regulator_disable_complete,
66 
67 	TP_PROTO(const char *name),
68 
69 	TP_ARGS(name)
70 
71 );
72 
73 DEFINE_EVENT(regulator_basic, regulator_bypass_enable,
74 
75 	TP_PROTO(const char *name),
76 
77 	TP_ARGS(name)
78 
79 );
80 
81 DEFINE_EVENT(regulator_basic, regulator_bypass_enable_complete,
82 
83 	TP_PROTO(const char *name),
84 
85 	TP_ARGS(name)
86 
87 );
88 
89 DEFINE_EVENT(regulator_basic, regulator_bypass_disable,
90 
91 	TP_PROTO(const char *name),
92 
93 	TP_ARGS(name)
94 
95 );
96 
97 DEFINE_EVENT(regulator_basic, regulator_bypass_disable_complete,
98 
99 	TP_PROTO(const char *name),
100 
101 	TP_ARGS(name)
102 
103 );
104 
105 /*
106  * Events that take a range of numerical values, mostly for voltages
107  * and so on.
108  */
109 DECLARE_EVENT_CLASS(regulator_range,
110 
111 	TP_PROTO(const char *name, int min, int max),
112 
113 	TP_ARGS(name, min, max),
114 
115 	TP_STRUCT__entry(
116 		__string(	name,		name		)
117 		__field(        int,            min             )
118 		__field(        int,            max             )
119 	),
120 
121 	TP_fast_assign(
122 		__assign_str(name, name);
123 		__entry->min  = min;
124 		__entry->max  = max;
125 	),
126 
127 	TP_printk("name=%s (%d-%d)", __get_str(name),
128 		  (int)__entry->min, (int)__entry->max)
129 );
130 
131 DEFINE_EVENT(regulator_range, regulator_set_voltage,
132 
133 	TP_PROTO(const char *name, int min, int max),
134 
135 	TP_ARGS(name, min, max)
136 
137 );
138 
139 
140 /*
141  * Events that take a single value, mostly for readback and refcounts.
142  */
143 DECLARE_EVENT_CLASS(regulator_value,
144 
145 	TP_PROTO(const char *name, unsigned int val),
146 
147 	TP_ARGS(name, val),
148 
149 	TP_STRUCT__entry(
150 		__string(	name,		name		)
151 		__field(        unsigned int,   val             )
152 	),
153 
154 	TP_fast_assign(
155 		__assign_str(name, name);
156 		__entry->val  = val;
157 	),
158 
159 	TP_printk("name=%s, val=%u", __get_str(name),
160 		  (int)__entry->val)
161 );
162 
163 DEFINE_EVENT(regulator_value, regulator_set_voltage_complete,
164 
165 	TP_PROTO(const char *name, unsigned int value),
166 
167 	TP_ARGS(name, value)
168 
169 );
170 
171 #endif /* _TRACE_POWER_H */
172 
173 /* This part must be outside protection */
174 #include <trace/define_trace.h>
175