xref: /openbmc/linux/include/trace/events/gpio.h (revision c39f2d9db0fd81ea20bb5cce9b3f082ca63753e2)
1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
23f397c21SUwe Kleine-König #undef TRACE_SYSTEM
33f397c21SUwe Kleine-König #define TRACE_SYSTEM gpio
43f397c21SUwe Kleine-König 
53f397c21SUwe Kleine-König #if !defined(_TRACE_GPIO_H) || defined(TRACE_HEADER_MULTI_READ)
63f397c21SUwe Kleine-König #define _TRACE_GPIO_H
73f397c21SUwe Kleine-König 
83f397c21SUwe Kleine-König #include <linux/tracepoint.h>
93f397c21SUwe Kleine-König 
103f397c21SUwe Kleine-König TRACE_EVENT(gpio_direction,
113f397c21SUwe Kleine-König 
123f397c21SUwe Kleine-König 	TP_PROTO(unsigned gpio, int in, int err),
133f397c21SUwe Kleine-König 
143f397c21SUwe Kleine-König 	TP_ARGS(gpio, in, err),
153f397c21SUwe Kleine-König 
163f397c21SUwe Kleine-König 	TP_STRUCT__entry(
173f397c21SUwe Kleine-König 		__field(unsigned, gpio)
183f397c21SUwe Kleine-König 		__field(int, in)
193f397c21SUwe Kleine-König 		__field(int, err)
203f397c21SUwe Kleine-König 	),
213f397c21SUwe Kleine-König 
223f397c21SUwe Kleine-König 	TP_fast_assign(
233f397c21SUwe Kleine-König 		__entry->gpio = gpio;
243f397c21SUwe Kleine-König 		__entry->in = in;
253f397c21SUwe Kleine-König 		__entry->err = err;
263f397c21SUwe Kleine-König 	),
273f397c21SUwe Kleine-König 
283f397c21SUwe Kleine-König 	TP_printk("%u %3s (%d)", __entry->gpio,
293f397c21SUwe Kleine-König 		__entry->in ? "in" : "out", __entry->err)
303f397c21SUwe Kleine-König );
313f397c21SUwe Kleine-König 
323f397c21SUwe Kleine-König TRACE_EVENT(gpio_value,
333f397c21SUwe Kleine-König 
343f397c21SUwe Kleine-König 	TP_PROTO(unsigned gpio, int get, int value),
353f397c21SUwe Kleine-König 
363f397c21SUwe Kleine-König 	TP_ARGS(gpio, get, value),
373f397c21SUwe Kleine-König 
383f397c21SUwe Kleine-König 	TP_STRUCT__entry(
393f397c21SUwe Kleine-König 		__field(unsigned, gpio)
403f397c21SUwe Kleine-König 		__field(int, get)
413f397c21SUwe Kleine-König 		__field(int, value)
423f397c21SUwe Kleine-König 	),
433f397c21SUwe Kleine-König 
443f397c21SUwe Kleine-König 	TP_fast_assign(
453f397c21SUwe Kleine-König 		__entry->gpio = gpio;
463f397c21SUwe Kleine-König 		__entry->get = get;
473f397c21SUwe Kleine-König 		__entry->value = value;
483f397c21SUwe Kleine-König 	),
493f397c21SUwe Kleine-König 
503f397c21SUwe Kleine-König 	TP_printk("%u %3s %d", __entry->gpio,
513f397c21SUwe Kleine-König 		__entry->get ? "get" : "set", __entry->value)
523f397c21SUwe Kleine-König );
533f397c21SUwe Kleine-König 
543f397c21SUwe Kleine-König #endif /* if !defined(_TRACE_GPIO_H) || defined(TRACE_HEADER_MULTI_READ) */
553f397c21SUwe Kleine-König 
563f397c21SUwe Kleine-König /* This part must be outside protection */
573f397c21SUwe Kleine-König #include <trace/define_trace.h>
58