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