xref: /openbmc/linux/include/trace/events/regulator.h (revision 48325655)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
202fa3ec0SMark Brown #undef TRACE_SYSTEM
302fa3ec0SMark Brown #define TRACE_SYSTEM regulator
402fa3ec0SMark Brown 
502fa3ec0SMark Brown #if !defined(_TRACE_REGULATOR_H) || defined(TRACE_HEADER_MULTI_READ)
602fa3ec0SMark Brown #define _TRACE_REGULATOR_H
702fa3ec0SMark Brown 
802fa3ec0SMark Brown #include <linux/ktime.h>
902fa3ec0SMark Brown #include <linux/tracepoint.h>
1002fa3ec0SMark Brown 
1102fa3ec0SMark Brown /*
1202fa3ec0SMark Brown  * Events which just log themselves and the regulator name for enable/disable
1302fa3ec0SMark Brown  * type tracking.
1402fa3ec0SMark Brown  */
1502fa3ec0SMark Brown DECLARE_EVENT_CLASS(regulator_basic,
1602fa3ec0SMark Brown 
1702fa3ec0SMark Brown 	TP_PROTO(const char *name),
1802fa3ec0SMark Brown 
1902fa3ec0SMark Brown 	TP_ARGS(name),
2002fa3ec0SMark Brown 
2102fa3ec0SMark Brown 	TP_STRUCT__entry(
2202fa3ec0SMark Brown 		__string(	name,	name	)
2302fa3ec0SMark Brown 	),
2402fa3ec0SMark Brown 
2502fa3ec0SMark Brown 	TP_fast_assign(
2602fa3ec0SMark Brown 		__assign_str(name, name);
2702fa3ec0SMark Brown 	),
2802fa3ec0SMark Brown 
2902fa3ec0SMark Brown 	TP_printk("name=%s", __get_str(name))
3002fa3ec0SMark Brown 
3102fa3ec0SMark Brown );
3202fa3ec0SMark Brown 
3302fa3ec0SMark Brown DEFINE_EVENT(regulator_basic, regulator_enable,
3402fa3ec0SMark Brown 
3502fa3ec0SMark Brown 	TP_PROTO(const char *name),
3602fa3ec0SMark Brown 
3702fa3ec0SMark Brown 	TP_ARGS(name)
3802fa3ec0SMark Brown 
3902fa3ec0SMark Brown );
4002fa3ec0SMark Brown 
4102fa3ec0SMark Brown DEFINE_EVENT(regulator_basic, regulator_enable_delay,
4202fa3ec0SMark Brown 
4302fa3ec0SMark Brown 	TP_PROTO(const char *name),
4402fa3ec0SMark Brown 
4502fa3ec0SMark Brown 	TP_ARGS(name)
4602fa3ec0SMark Brown 
4702fa3ec0SMark Brown );
4802fa3ec0SMark Brown 
4902fa3ec0SMark Brown DEFINE_EVENT(regulator_basic, regulator_enable_complete,
5002fa3ec0SMark Brown 
5102fa3ec0SMark Brown 	TP_PROTO(const char *name),
5202fa3ec0SMark Brown 
5302fa3ec0SMark Brown 	TP_ARGS(name)
5402fa3ec0SMark Brown 
5502fa3ec0SMark Brown );
5602fa3ec0SMark Brown 
5702fa3ec0SMark Brown DEFINE_EVENT(regulator_basic, regulator_disable,
5802fa3ec0SMark Brown 
5902fa3ec0SMark Brown 	TP_PROTO(const char *name),
6002fa3ec0SMark Brown 
6102fa3ec0SMark Brown 	TP_ARGS(name)
6202fa3ec0SMark Brown 
6302fa3ec0SMark Brown );
6402fa3ec0SMark Brown 
6502fa3ec0SMark Brown DEFINE_EVENT(regulator_basic, regulator_disable_complete,
6602fa3ec0SMark Brown 
6702fa3ec0SMark Brown 	TP_PROTO(const char *name),
6802fa3ec0SMark Brown 
6902fa3ec0SMark Brown 	TP_ARGS(name)
7002fa3ec0SMark Brown 
7102fa3ec0SMark Brown );
7202fa3ec0SMark Brown 
7348325655SCharles Keepax DEFINE_EVENT(regulator_basic, regulator_bypass_enable,
7448325655SCharles Keepax 
7548325655SCharles Keepax 	TP_PROTO(const char *name),
7648325655SCharles Keepax 
7748325655SCharles Keepax 	TP_ARGS(name)
7848325655SCharles Keepax 
7948325655SCharles Keepax );
8048325655SCharles Keepax 
8148325655SCharles Keepax DEFINE_EVENT(regulator_basic, regulator_bypass_enable_complete,
8248325655SCharles Keepax 
8348325655SCharles Keepax 	TP_PROTO(const char *name),
8448325655SCharles Keepax 
8548325655SCharles Keepax 	TP_ARGS(name)
8648325655SCharles Keepax 
8748325655SCharles Keepax );
8848325655SCharles Keepax 
8948325655SCharles Keepax DEFINE_EVENT(regulator_basic, regulator_bypass_disable,
9048325655SCharles Keepax 
9148325655SCharles Keepax 	TP_PROTO(const char *name),
9248325655SCharles Keepax 
9348325655SCharles Keepax 	TP_ARGS(name)
9448325655SCharles Keepax 
9548325655SCharles Keepax );
9648325655SCharles Keepax 
9748325655SCharles Keepax DEFINE_EVENT(regulator_basic, regulator_bypass_disable_complete,
9848325655SCharles Keepax 
9948325655SCharles Keepax 	TP_PROTO(const char *name),
10048325655SCharles Keepax 
10148325655SCharles Keepax 	TP_ARGS(name)
10248325655SCharles Keepax 
10348325655SCharles Keepax );
10448325655SCharles Keepax 
10502fa3ec0SMark Brown /*
10602fa3ec0SMark Brown  * Events that take a range of numerical values, mostly for voltages
10702fa3ec0SMark Brown  * and so on.
10802fa3ec0SMark Brown  */
10902fa3ec0SMark Brown DECLARE_EVENT_CLASS(regulator_range,
11002fa3ec0SMark Brown 
11102fa3ec0SMark Brown 	TP_PROTO(const char *name, int min, int max),
11202fa3ec0SMark Brown 
11302fa3ec0SMark Brown 	TP_ARGS(name, min, max),
11402fa3ec0SMark Brown 
11502fa3ec0SMark Brown 	TP_STRUCT__entry(
11602fa3ec0SMark Brown 		__string(	name,		name		)
11702fa3ec0SMark Brown 		__field(        int,            min             )
11802fa3ec0SMark Brown 		__field(        int,            max             )
11902fa3ec0SMark Brown 	),
12002fa3ec0SMark Brown 
12102fa3ec0SMark Brown 	TP_fast_assign(
12202fa3ec0SMark Brown 		__assign_str(name, name);
12302fa3ec0SMark Brown 		__entry->min  = min;
12402fa3ec0SMark Brown 		__entry->max  = max;
12502fa3ec0SMark Brown 	),
12602fa3ec0SMark Brown 
12702fa3ec0SMark Brown 	TP_printk("name=%s (%d-%d)", __get_str(name),
12802fa3ec0SMark Brown 		  (int)__entry->min, (int)__entry->max)
12902fa3ec0SMark Brown );
13002fa3ec0SMark Brown 
13102fa3ec0SMark Brown DEFINE_EVENT(regulator_range, regulator_set_voltage,
13202fa3ec0SMark Brown 
13302fa3ec0SMark Brown 	TP_PROTO(const char *name, int min, int max),
13402fa3ec0SMark Brown 
13502fa3ec0SMark Brown 	TP_ARGS(name, min, max)
13602fa3ec0SMark Brown 
13702fa3ec0SMark Brown );
13802fa3ec0SMark Brown 
13902fa3ec0SMark Brown 
14002fa3ec0SMark Brown /*
14102fa3ec0SMark Brown  * Events that take a single value, mostly for readback and refcounts.
14202fa3ec0SMark Brown  */
14302fa3ec0SMark Brown DECLARE_EVENT_CLASS(regulator_value,
14402fa3ec0SMark Brown 
14502fa3ec0SMark Brown 	TP_PROTO(const char *name, unsigned int val),
14602fa3ec0SMark Brown 
14702fa3ec0SMark Brown 	TP_ARGS(name, val),
14802fa3ec0SMark Brown 
14902fa3ec0SMark Brown 	TP_STRUCT__entry(
15002fa3ec0SMark Brown 		__string(	name,		name		)
15102fa3ec0SMark Brown 		__field(        unsigned int,   val             )
15202fa3ec0SMark Brown 	),
15302fa3ec0SMark Brown 
15402fa3ec0SMark Brown 	TP_fast_assign(
15502fa3ec0SMark Brown 		__assign_str(name, name);
15602fa3ec0SMark Brown 		__entry->val  = val;
15702fa3ec0SMark Brown 	),
15802fa3ec0SMark Brown 
15902fa3ec0SMark Brown 	TP_printk("name=%s, val=%u", __get_str(name),
16002fa3ec0SMark Brown 		  (int)__entry->val)
16102fa3ec0SMark Brown );
16202fa3ec0SMark Brown 
16302fa3ec0SMark Brown DEFINE_EVENT(regulator_value, regulator_set_voltage_complete,
16402fa3ec0SMark Brown 
16502fa3ec0SMark Brown 	TP_PROTO(const char *name, unsigned int value),
16602fa3ec0SMark Brown 
16702fa3ec0SMark Brown 	TP_ARGS(name, value)
16802fa3ec0SMark Brown 
16902fa3ec0SMark Brown );
17002fa3ec0SMark Brown 
17102fa3ec0SMark Brown #endif /* _TRACE_POWER_H */
17202fa3ec0SMark Brown 
17302fa3ec0SMark Brown /* This part must be outside protection */
17402fa3ec0SMark Brown #include <trace/define_trace.h>
175