1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 202fa3ec0SMark Brown #undef TRACE_SYSTEM 302fa3ec0SMark Brown #define TRACE_SYSTEM regulator 402fa3ec0SMark Brown 502fa3ec0SMark Brown #if !defined(_TRACE_REGULATOR_H) || defined(TRACE_HEADER_MULTI_READ) 602fa3ec0SMark Brown #define _TRACE_REGULATOR_H 702fa3ec0SMark Brown 802fa3ec0SMark Brown #include <linux/ktime.h> 902fa3ec0SMark Brown #include <linux/tracepoint.h> 1002fa3ec0SMark Brown 1102fa3ec0SMark Brown /* 1202fa3ec0SMark Brown * Events which just log themselves and the regulator name for enable/disable 1302fa3ec0SMark Brown * type tracking. 1402fa3ec0SMark Brown */ 1502fa3ec0SMark Brown DECLARE_EVENT_CLASS(regulator_basic, 1602fa3ec0SMark Brown 1702fa3ec0SMark Brown TP_PROTO(const char *name), 1802fa3ec0SMark Brown 1902fa3ec0SMark Brown TP_ARGS(name), 2002fa3ec0SMark Brown 2102fa3ec0SMark Brown TP_STRUCT__entry( 2202fa3ec0SMark Brown __string( name, name ) 2302fa3ec0SMark Brown ), 2402fa3ec0SMark Brown 2502fa3ec0SMark Brown TP_fast_assign( 2602fa3ec0SMark Brown __assign_str(name, name); 2702fa3ec0SMark Brown ), 2802fa3ec0SMark Brown 2902fa3ec0SMark Brown TP_printk("name=%s", __get_str(name)) 3002fa3ec0SMark Brown 3102fa3ec0SMark Brown ); 3202fa3ec0SMark Brown 3302fa3ec0SMark Brown DEFINE_EVENT(regulator_basic, regulator_enable, 3402fa3ec0SMark Brown 3502fa3ec0SMark Brown TP_PROTO(const char *name), 3602fa3ec0SMark Brown 3702fa3ec0SMark Brown TP_ARGS(name) 3802fa3ec0SMark Brown 3902fa3ec0SMark Brown ); 4002fa3ec0SMark Brown 4102fa3ec0SMark Brown DEFINE_EVENT(regulator_basic, regulator_enable_delay, 4202fa3ec0SMark Brown 4302fa3ec0SMark Brown TP_PROTO(const char *name), 4402fa3ec0SMark Brown 4502fa3ec0SMark Brown TP_ARGS(name) 4602fa3ec0SMark Brown 4702fa3ec0SMark Brown ); 4802fa3ec0SMark Brown 4902fa3ec0SMark Brown DEFINE_EVENT(regulator_basic, regulator_enable_complete, 5002fa3ec0SMark Brown 5102fa3ec0SMark Brown TP_PROTO(const char *name), 5202fa3ec0SMark Brown 5302fa3ec0SMark Brown TP_ARGS(name) 5402fa3ec0SMark Brown 5502fa3ec0SMark Brown ); 5602fa3ec0SMark Brown 5702fa3ec0SMark Brown DEFINE_EVENT(regulator_basic, regulator_disable, 5802fa3ec0SMark Brown 5902fa3ec0SMark Brown TP_PROTO(const char *name), 6002fa3ec0SMark Brown 6102fa3ec0SMark Brown TP_ARGS(name) 6202fa3ec0SMark Brown 6302fa3ec0SMark Brown ); 6402fa3ec0SMark Brown 6502fa3ec0SMark Brown DEFINE_EVENT(regulator_basic, regulator_disable_complete, 6602fa3ec0SMark Brown 6702fa3ec0SMark Brown TP_PROTO(const char *name), 6802fa3ec0SMark Brown 6902fa3ec0SMark Brown TP_ARGS(name) 7002fa3ec0SMark Brown 7102fa3ec0SMark Brown ); 7202fa3ec0SMark Brown 7348325655SCharles Keepax DEFINE_EVENT(regulator_basic, regulator_bypass_enable, 7448325655SCharles Keepax 7548325655SCharles Keepax TP_PROTO(const char *name), 7648325655SCharles Keepax 7748325655SCharles Keepax TP_ARGS(name) 7848325655SCharles Keepax 7948325655SCharles Keepax ); 8048325655SCharles Keepax 8148325655SCharles Keepax DEFINE_EVENT(regulator_basic, regulator_bypass_enable_complete, 8248325655SCharles Keepax 8348325655SCharles Keepax TP_PROTO(const char *name), 8448325655SCharles Keepax 8548325655SCharles Keepax TP_ARGS(name) 8648325655SCharles Keepax 8748325655SCharles Keepax ); 8848325655SCharles Keepax 8948325655SCharles Keepax DEFINE_EVENT(regulator_basic, regulator_bypass_disable, 9048325655SCharles Keepax 9148325655SCharles Keepax TP_PROTO(const char *name), 9248325655SCharles Keepax 9348325655SCharles Keepax TP_ARGS(name) 9448325655SCharles Keepax 9548325655SCharles Keepax ); 9648325655SCharles Keepax 9748325655SCharles Keepax DEFINE_EVENT(regulator_basic, regulator_bypass_disable_complete, 9848325655SCharles Keepax 9948325655SCharles Keepax TP_PROTO(const char *name), 10048325655SCharles Keepax 10148325655SCharles Keepax TP_ARGS(name) 10248325655SCharles Keepax 10348325655SCharles Keepax ); 10448325655SCharles Keepax 10502fa3ec0SMark Brown /* 10602fa3ec0SMark Brown * Events that take a range of numerical values, mostly for voltages 10702fa3ec0SMark Brown * and so on. 10802fa3ec0SMark Brown */ 10902fa3ec0SMark Brown DECLARE_EVENT_CLASS(regulator_range, 11002fa3ec0SMark Brown 11102fa3ec0SMark Brown TP_PROTO(const char *name, int min, int max), 11202fa3ec0SMark Brown 11302fa3ec0SMark Brown TP_ARGS(name, min, max), 11402fa3ec0SMark Brown 11502fa3ec0SMark Brown TP_STRUCT__entry( 11602fa3ec0SMark Brown __string( name, name ) 11702fa3ec0SMark Brown __field( int, min ) 11802fa3ec0SMark Brown __field( int, max ) 11902fa3ec0SMark Brown ), 12002fa3ec0SMark Brown 12102fa3ec0SMark Brown TP_fast_assign( 12202fa3ec0SMark Brown __assign_str(name, name); 12302fa3ec0SMark Brown __entry->min = min; 12402fa3ec0SMark Brown __entry->max = max; 12502fa3ec0SMark Brown ), 12602fa3ec0SMark Brown 12702fa3ec0SMark Brown TP_printk("name=%s (%d-%d)", __get_str(name), 12802fa3ec0SMark Brown (int)__entry->min, (int)__entry->max) 12902fa3ec0SMark Brown ); 13002fa3ec0SMark Brown 13102fa3ec0SMark Brown DEFINE_EVENT(regulator_range, regulator_set_voltage, 13202fa3ec0SMark Brown 13302fa3ec0SMark Brown TP_PROTO(const char *name, int min, int max), 13402fa3ec0SMark Brown 13502fa3ec0SMark Brown TP_ARGS(name, min, max) 13602fa3ec0SMark Brown 13702fa3ec0SMark Brown ); 13802fa3ec0SMark Brown 13902fa3ec0SMark Brown 14002fa3ec0SMark Brown /* 14102fa3ec0SMark Brown * Events that take a single value, mostly for readback and refcounts. 14202fa3ec0SMark Brown */ 14302fa3ec0SMark Brown DECLARE_EVENT_CLASS(regulator_value, 14402fa3ec0SMark Brown 14502fa3ec0SMark Brown TP_PROTO(const char *name, unsigned int val), 14602fa3ec0SMark Brown 14702fa3ec0SMark Brown TP_ARGS(name, val), 14802fa3ec0SMark Brown 14902fa3ec0SMark Brown TP_STRUCT__entry( 15002fa3ec0SMark Brown __string( name, name ) 15102fa3ec0SMark Brown __field( unsigned int, val ) 15202fa3ec0SMark Brown ), 15302fa3ec0SMark Brown 15402fa3ec0SMark Brown TP_fast_assign( 15502fa3ec0SMark Brown __assign_str(name, name); 15602fa3ec0SMark Brown __entry->val = val; 15702fa3ec0SMark Brown ), 15802fa3ec0SMark Brown 15902fa3ec0SMark Brown TP_printk("name=%s, val=%u", __get_str(name), 16002fa3ec0SMark Brown (int)__entry->val) 16102fa3ec0SMark Brown ); 16202fa3ec0SMark Brown 16302fa3ec0SMark Brown DEFINE_EVENT(regulator_value, regulator_set_voltage_complete, 16402fa3ec0SMark Brown 16502fa3ec0SMark Brown TP_PROTO(const char *name, unsigned int value), 16602fa3ec0SMark Brown 16702fa3ec0SMark Brown TP_ARGS(name, value) 16802fa3ec0SMark Brown 16902fa3ec0SMark Brown ); 17002fa3ec0SMark Brown 17102fa3ec0SMark Brown #endif /* _TRACE_POWER_H */ 17202fa3ec0SMark Brown 17302fa3ec0SMark Brown /* This part must be outside protection */ 17402fa3ec0SMark Brown #include <trace/define_trace.h> 175