1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Trace events for the ChromeOS Embedded Controller
4  *
5  * Copyright 2025 Google LLC.
6  */
7 
8 #undef TRACE_SYSTEM
9 #define TRACE_SYSTEM cros_ec
10 
11 #if !defined(_CROS_EC_SENSORS_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ)
12 #define _CROS_EC_SENSORS_TRACE_H_
13 
14 #include <linux/bits.h>
15 #include <linux/types.h>
16 #include <linux/platform_data/cros_ec_commands.h>
17 #include <linux/platform_data/cros_ec_proto.h>
18 
19 #include <linux/tracepoint.h>
20 
21 TRACE_EVENT(cros_ec_motion_host_cmd,
22 	    TP_PROTO(struct ec_params_motion_sense *param,
23 		     struct ec_response_motion_sense *resp,
24 		     int retval),
25 	    TP_ARGS(param, resp, retval),
26 	    TP_STRUCT__entry(__field(uint8_t, cmd)
27 			     __field(uint8_t, sensor_id)
28 			     __field(uint32_t, data)
29 			     __field(int, retval)
30 			     __field(int32_t, ret)
31 	    ),
32 	    TP_fast_assign(__entry->cmd = param->cmd;
33 			   __entry->sensor_id = param->sensor_odr.sensor_num;
34 			   __entry->data = param->sensor_odr.data;
35 			   __entry->retval = retval;
36 			   __entry->ret = retval > 0 ? resp->sensor_odr.ret : -1;
37 	    ),
38 	    TP_printk("%s, id: %d, data: %u, result: %u, return: %d",
39 		      __print_symbolic(__entry->cmd, MOTIONSENSE_CMDS),
40 		      __entry->sensor_id,
41 		      __entry->data,
42 		      __entry->retval,
43 		      __entry->ret)
44 );
45 
46 #endif /* _CROS_EC_SENSORS_TRACE_H_ */
47 
48 /* this part must be outside header guard */
49 
50 #undef TRACE_INCLUDE_PATH
51 #define TRACE_INCLUDE_PATH ../../drivers/iio/common/cros_ec_sensors
52 
53 #undef TRACE_INCLUDE_FILE
54 #define TRACE_INCLUDE_FILE cros_ec_sensors_trace
55 
56 #include <trace/define_trace.h>
57