diff options
Diffstat (limited to 'include/trace/events/regulator.h')
| -rw-r--r-- | include/trace/events/regulator.h | 141 | 
1 files changed, 141 insertions, 0 deletions
diff --git a/include/trace/events/regulator.h b/include/trace/events/regulator.h new file mode 100644 index 00000000000..37502a7404b --- /dev/null +++ b/include/trace/events/regulator.h @@ -0,0 +1,141 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM regulator + +#if !defined(_TRACE_REGULATOR_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_REGULATOR_H + +#include <linux/ktime.h> +#include <linux/tracepoint.h> + +/* + * Events which just log themselves and the regulator name for enable/disable + * type tracking. + */ +DECLARE_EVENT_CLASS(regulator_basic, + +	TP_PROTO(const char *name), + +	TP_ARGS(name), + +	TP_STRUCT__entry( +		__string(	name,	name	) +	), + +	TP_fast_assign( +		__assign_str(name, name); +	), + +	TP_printk("name=%s", __get_str(name)) + +); + +DEFINE_EVENT(regulator_basic, regulator_enable, + +	TP_PROTO(const char *name), + +	TP_ARGS(name) + +); + +DEFINE_EVENT(regulator_basic, regulator_enable_delay, + +	TP_PROTO(const char *name), + +	TP_ARGS(name) + +); + +DEFINE_EVENT(regulator_basic, regulator_enable_complete, + +	TP_PROTO(const char *name), + +	TP_ARGS(name) + +); + +DEFINE_EVENT(regulator_basic, regulator_disable, + +	TP_PROTO(const char *name), + +	TP_ARGS(name) + +); + +DEFINE_EVENT(regulator_basic, regulator_disable_complete, + +	TP_PROTO(const char *name), + +	TP_ARGS(name) + +); + +/* + * Events that take a range of numerical values, mostly for voltages + * and so on. + */ +DECLARE_EVENT_CLASS(regulator_range, + +	TP_PROTO(const char *name, int min, int max), + +	TP_ARGS(name, min, max), + +	TP_STRUCT__entry( +		__string(	name,		name		) +		__field(        int,            min             ) +		__field(        int,            max             ) +	), + +	TP_fast_assign( +		__assign_str(name, name); +		__entry->min  = min; +		__entry->max  = max; +	), + +	TP_printk("name=%s (%d-%d)", __get_str(name), +		  (int)__entry->min, (int)__entry->max) +); + +DEFINE_EVENT(regulator_range, regulator_set_voltage, + +	TP_PROTO(const char *name, int min, int max), + +	TP_ARGS(name, min, max) + +); + + +/* + * Events that take a single value, mostly for readback and refcounts. + */ +DECLARE_EVENT_CLASS(regulator_value, + +	TP_PROTO(const char *name, unsigned int val), + +	TP_ARGS(name, val), + +	TP_STRUCT__entry( +		__string(	name,		name		) +		__field(        unsigned int,   val             ) +	), + +	TP_fast_assign( +		__assign_str(name, name); +		__entry->val  = val; +	), + +	TP_printk("name=%s, val=%u", __get_str(name), +		  (int)__entry->val) +); + +DEFINE_EVENT(regulator_value, regulator_set_voltage_complete, + +	TP_PROTO(const char *name, unsigned int value), + +	TP_ARGS(name, value) + +); + +#endif /* _TRACE_POWER_H */ + +/* This part must be outside protection */ +#include <trace/define_trace.h>  | 
