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