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 /* 74 * Events that take a range of numerical values, mostly for voltages 75 * and so on. 76 */ 77 DECLARE_EVENT_CLASS(regulator_range, 78 79 TP_PROTO(const char *name, int min, int max), 80 81 TP_ARGS(name, min, max), 82 83 TP_STRUCT__entry( 84 __string( name, name ) 85 __field( int, min ) 86 __field( int, max ) 87 ), 88 89 TP_fast_assign( 90 __assign_str(name, name); 91 __entry->min = min; 92 __entry->max = max; 93 ), 94 95 TP_printk("name=%s (%d-%d)", __get_str(name), 96 (int)__entry->min, (int)__entry->max) 97 ); 98 99 DEFINE_EVENT(regulator_range, regulator_set_voltage, 100 101 TP_PROTO(const char *name, int min, int max), 102 103 TP_ARGS(name, min, max) 104 105 ); 106 107 108 /* 109 * Events that take a single value, mostly for readback and refcounts. 110 */ 111 DECLARE_EVENT_CLASS(regulator_value, 112 113 TP_PROTO(const char *name, unsigned int val), 114 115 TP_ARGS(name, val), 116 117 TP_STRUCT__entry( 118 __string( name, name ) 119 __field( unsigned int, val ) 120 ), 121 122 TP_fast_assign( 123 __assign_str(name, name); 124 __entry->val = val; 125 ), 126 127 TP_printk("name=%s, val=%u", __get_str(name), 128 (int)__entry->val) 129 ); 130 131 DEFINE_EVENT(regulator_value, regulator_set_voltage_complete, 132 133 TP_PROTO(const char *name, unsigned int value), 134 135 TP_ARGS(name, value) 136 137 ); 138 139 #endif /* _TRACE_POWER_H */ 140 141 /* This part must be outside protection */ 142 #include <trace/define_trace.h> 143