| /* SPDX-License-Identifier: GPL-2.0 */ | |
| #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> |