xref: /linux/drivers/platform/chrome/cros_ec_trace.c (revision 4b4193256c8d3bc3a5397b5cd9494c2ad386317d)
1 // SPDX-License-Identifier: GPL-2.0
2 // Trace events for the ChromeOS Embedded Controller
3 //
4 // Copyright 2019 Google LLC.
5 
6 #define TRACE_SYMBOL(a) {a, #a}
7 
8 // Generate the list using the following script:
9 // sed -n 's/^#define \(EC_CMD_[[:alnum:]_]*\)\s.*/\tTRACE_SYMBOL(\1), \\/p' include/linux/platform_data/cros_ec_commands.h
10 #define EC_CMDS \
11 	TRACE_SYMBOL(EC_CMD_ACPI_READ), \
12 	TRACE_SYMBOL(EC_CMD_ACPI_WRITE), \
13 	TRACE_SYMBOL(EC_CMD_ACPI_BURST_ENABLE), \
14 	TRACE_SYMBOL(EC_CMD_ACPI_BURST_DISABLE), \
15 	TRACE_SYMBOL(EC_CMD_ACPI_QUERY_EVENT), \
16 	TRACE_SYMBOL(EC_CMD_PROTO_VERSION), \
17 	TRACE_SYMBOL(EC_CMD_HELLO), \
18 	TRACE_SYMBOL(EC_CMD_GET_VERSION), \
19 	TRACE_SYMBOL(EC_CMD_READ_TEST), \
20 	TRACE_SYMBOL(EC_CMD_GET_BUILD_INFO), \
21 	TRACE_SYMBOL(EC_CMD_GET_CHIP_INFO), \
22 	TRACE_SYMBOL(EC_CMD_GET_BOARD_VERSION), \
23 	TRACE_SYMBOL(EC_CMD_READ_MEMMAP), \
24 	TRACE_SYMBOL(EC_CMD_GET_CMD_VERSIONS), \
25 	TRACE_SYMBOL(EC_CMD_GET_COMMS_STATUS), \
26 	TRACE_SYMBOL(EC_CMD_TEST_PROTOCOL), \
27 	TRACE_SYMBOL(EC_CMD_GET_PROTOCOL_INFO), \
28 	TRACE_SYMBOL(EC_CMD_GSV_PAUSE_IN_S5), \
29 	TRACE_SYMBOL(EC_CMD_GET_FEATURES), \
30 	TRACE_SYMBOL(EC_CMD_GET_SKU_ID), \
31 	TRACE_SYMBOL(EC_CMD_SET_SKU_ID), \
32 	TRACE_SYMBOL(EC_CMD_FLASH_INFO), \
33 	TRACE_SYMBOL(EC_CMD_FLASH_READ), \
34 	TRACE_SYMBOL(EC_CMD_FLASH_WRITE), \
35 	TRACE_SYMBOL(EC_CMD_FLASH_ERASE), \
36 	TRACE_SYMBOL(EC_CMD_FLASH_PROTECT), \
37 	TRACE_SYMBOL(EC_CMD_FLASH_REGION_INFO), \
38 	TRACE_SYMBOL(EC_CMD_VBNV_CONTEXT), \
39 	TRACE_SYMBOL(EC_CMD_FLASH_SPI_INFO), \
40 	TRACE_SYMBOL(EC_CMD_FLASH_SELECT), \
41 	TRACE_SYMBOL(EC_CMD_PWM_GET_FAN_TARGET_RPM), \
42 	TRACE_SYMBOL(EC_CMD_PWM_SET_FAN_TARGET_RPM), \
43 	TRACE_SYMBOL(EC_CMD_PWM_GET_KEYBOARD_BACKLIGHT), \
44 	TRACE_SYMBOL(EC_CMD_PWM_SET_KEYBOARD_BACKLIGHT), \
45 	TRACE_SYMBOL(EC_CMD_PWM_SET_FAN_DUTY), \
46 	TRACE_SYMBOL(EC_CMD_PWM_SET_DUTY), \
47 	TRACE_SYMBOL(EC_CMD_PWM_GET_DUTY), \
48 	TRACE_SYMBOL(EC_CMD_LIGHTBAR_CMD), \
49 	TRACE_SYMBOL(EC_CMD_LED_CONTROL), \
50 	TRACE_SYMBOL(EC_CMD_VBOOT_HASH), \
51 	TRACE_SYMBOL(EC_CMD_MOTION_SENSE_CMD), \
52 	TRACE_SYMBOL(EC_CMD_FORCE_LID_OPEN), \
53 	TRACE_SYMBOL(EC_CMD_CONFIG_POWER_BUTTON), \
54 	TRACE_SYMBOL(EC_CMD_USB_CHARGE_SET_MODE), \
55 	TRACE_SYMBOL(EC_CMD_PSTORE_INFO), \
56 	TRACE_SYMBOL(EC_CMD_PSTORE_READ), \
57 	TRACE_SYMBOL(EC_CMD_PSTORE_WRITE), \
58 	TRACE_SYMBOL(EC_CMD_RTC_GET_VALUE), \
59 	TRACE_SYMBOL(EC_CMD_RTC_GET_ALARM), \
60 	TRACE_SYMBOL(EC_CMD_RTC_SET_VALUE), \
61 	TRACE_SYMBOL(EC_CMD_RTC_SET_ALARM), \
62 	TRACE_SYMBOL(EC_CMD_PORT80_LAST_BOOT), \
63 	TRACE_SYMBOL(EC_CMD_PORT80_READ), \
64 	TRACE_SYMBOL(EC_CMD_VSTORE_INFO), \
65 	TRACE_SYMBOL(EC_CMD_VSTORE_READ), \
66 	TRACE_SYMBOL(EC_CMD_VSTORE_WRITE), \
67 	TRACE_SYMBOL(EC_CMD_THERMAL_SET_THRESHOLD), \
68 	TRACE_SYMBOL(EC_CMD_THERMAL_GET_THRESHOLD), \
69 	TRACE_SYMBOL(EC_CMD_THERMAL_AUTO_FAN_CTRL), \
70 	TRACE_SYMBOL(EC_CMD_TMP006_GET_CALIBRATION), \
71 	TRACE_SYMBOL(EC_CMD_TMP006_SET_CALIBRATION), \
72 	TRACE_SYMBOL(EC_CMD_TMP006_GET_RAW), \
73 	TRACE_SYMBOL(EC_CMD_MKBP_STATE), \
74 	TRACE_SYMBOL(EC_CMD_MKBP_INFO), \
75 	TRACE_SYMBOL(EC_CMD_MKBP_SIMULATE_KEY), \
76 	TRACE_SYMBOL(EC_CMD_GET_KEYBOARD_ID), \
77 	TRACE_SYMBOL(EC_CMD_MKBP_SET_CONFIG), \
78 	TRACE_SYMBOL(EC_CMD_MKBP_GET_CONFIG), \
79 	TRACE_SYMBOL(EC_CMD_KEYSCAN_SEQ_CTRL), \
80 	TRACE_SYMBOL(EC_CMD_GET_NEXT_EVENT), \
81 	TRACE_SYMBOL(EC_CMD_KEYBOARD_FACTORY_TEST), \
82 	TRACE_SYMBOL(EC_CMD_TEMP_SENSOR_GET_INFO), \
83 	TRACE_SYMBOL(EC_CMD_HOST_EVENT_GET_B), \
84 	TRACE_SYMBOL(EC_CMD_HOST_EVENT_GET_SMI_MASK), \
85 	TRACE_SYMBOL(EC_CMD_HOST_EVENT_GET_SCI_MASK), \
86 	TRACE_SYMBOL(EC_CMD_HOST_EVENT_GET_WAKE_MASK), \
87 	TRACE_SYMBOL(EC_CMD_HOST_EVENT_SET_SMI_MASK), \
88 	TRACE_SYMBOL(EC_CMD_HOST_EVENT_SET_SCI_MASK), \
89 	TRACE_SYMBOL(EC_CMD_HOST_EVENT_CLEAR), \
90 	TRACE_SYMBOL(EC_CMD_HOST_EVENT_SET_WAKE_MASK), \
91 	TRACE_SYMBOL(EC_CMD_HOST_EVENT_CLEAR_B), \
92 	TRACE_SYMBOL(EC_CMD_HOST_EVENT), \
93 	TRACE_SYMBOL(EC_CMD_SWITCH_ENABLE_BKLIGHT), \
94 	TRACE_SYMBOL(EC_CMD_SWITCH_ENABLE_WIRELESS), \
95 	TRACE_SYMBOL(EC_CMD_GPIO_SET), \
96 	TRACE_SYMBOL(EC_CMD_GPIO_GET), \
97 	TRACE_SYMBOL(EC_CMD_I2C_READ), \
98 	TRACE_SYMBOL(EC_CMD_I2C_WRITE), \
99 	TRACE_SYMBOL(EC_CMD_CHARGE_CONTROL), \
100 	TRACE_SYMBOL(EC_CMD_CONSOLE_SNAPSHOT), \
101 	TRACE_SYMBOL(EC_CMD_CONSOLE_READ), \
102 	TRACE_SYMBOL(EC_CMD_BATTERY_CUT_OFF), \
103 	TRACE_SYMBOL(EC_CMD_USB_MUX), \
104 	TRACE_SYMBOL(EC_CMD_LDO_SET), \
105 	TRACE_SYMBOL(EC_CMD_LDO_GET), \
106 	TRACE_SYMBOL(EC_CMD_POWER_INFO), \
107 	TRACE_SYMBOL(EC_CMD_I2C_PASSTHRU), \
108 	TRACE_SYMBOL(EC_CMD_HANG_DETECT), \
109 	TRACE_SYMBOL(EC_CMD_CHARGE_STATE), \
110 	TRACE_SYMBOL(EC_CMD_CHARGE_CURRENT_LIMIT), \
111 	TRACE_SYMBOL(EC_CMD_EXTERNAL_POWER_LIMIT), \
112 	TRACE_SYMBOL(EC_CMD_OVERRIDE_DEDICATED_CHARGER_LIMIT), \
113 	TRACE_SYMBOL(EC_CMD_HIBERNATION_DELAY), \
114 	TRACE_SYMBOL(EC_CMD_HOST_SLEEP_EVENT), \
115 	TRACE_SYMBOL(EC_CMD_DEVICE_EVENT), \
116 	TRACE_SYMBOL(EC_CMD_SB_READ_WORD), \
117 	TRACE_SYMBOL(EC_CMD_SB_WRITE_WORD), \
118 	TRACE_SYMBOL(EC_CMD_SB_READ_BLOCK), \
119 	TRACE_SYMBOL(EC_CMD_SB_WRITE_BLOCK), \
120 	TRACE_SYMBOL(EC_CMD_BATTERY_VENDOR_PARAM), \
121 	TRACE_SYMBOL(EC_CMD_SB_FW_UPDATE), \
122 	TRACE_SYMBOL(EC_CMD_ENTERING_MODE), \
123 	TRACE_SYMBOL(EC_CMD_I2C_PASSTHRU_PROTECT), \
124 	TRACE_SYMBOL(EC_CMD_CEC_WRITE_MSG), \
125 	TRACE_SYMBOL(EC_CMD_CEC_SET), \
126 	TRACE_SYMBOL(EC_CMD_CEC_GET), \
127 	TRACE_SYMBOL(EC_CMD_EC_CODEC), \
128 	TRACE_SYMBOL(EC_CMD_EC_CODEC_DMIC), \
129 	TRACE_SYMBOL(EC_CMD_EC_CODEC_I2S_RX), \
130 	TRACE_SYMBOL(EC_CMD_EC_CODEC_WOV), \
131 	TRACE_SYMBOL(EC_CMD_REBOOT_EC), \
132 	TRACE_SYMBOL(EC_CMD_GET_PANIC_INFO), \
133 	TRACE_SYMBOL(EC_CMD_REBOOT), \
134 	TRACE_SYMBOL(EC_CMD_RESEND_RESPONSE), \
135 	TRACE_SYMBOL(EC_CMD_VERSION0), \
136 	TRACE_SYMBOL(EC_CMD_PD_EXCHANGE_STATUS), \
137 	TRACE_SYMBOL(EC_CMD_PD_HOST_EVENT_STATUS), \
138 	TRACE_SYMBOL(EC_CMD_USB_PD_CONTROL), \
139 	TRACE_SYMBOL(EC_CMD_USB_PD_PORTS), \
140 	TRACE_SYMBOL(EC_CMD_USB_PD_POWER_INFO), \
141 	TRACE_SYMBOL(EC_CMD_CHARGE_PORT_COUNT), \
142 	TRACE_SYMBOL(EC_CMD_USB_PD_FW_UPDATE), \
143 	TRACE_SYMBOL(EC_CMD_USB_PD_RW_HASH_ENTRY), \
144 	TRACE_SYMBOL(EC_CMD_USB_PD_DEV_INFO), \
145 	TRACE_SYMBOL(EC_CMD_USB_PD_DISCOVERY), \
146 	TRACE_SYMBOL(EC_CMD_PD_CHARGE_PORT_OVERRIDE), \
147 	TRACE_SYMBOL(EC_CMD_PD_GET_LOG_ENTRY), \
148 	TRACE_SYMBOL(EC_CMD_USB_PD_GET_AMODE), \
149 	TRACE_SYMBOL(EC_CMD_USB_PD_SET_AMODE), \
150 	TRACE_SYMBOL(EC_CMD_PD_WRITE_LOG_ENTRY), \
151 	TRACE_SYMBOL(EC_CMD_PD_CONTROL), \
152 	TRACE_SYMBOL(EC_CMD_USB_PD_MUX_INFO), \
153 	TRACE_SYMBOL(EC_CMD_PD_CHIP_INFO), \
154 	TRACE_SYMBOL(EC_CMD_RWSIG_CHECK_STATUS), \
155 	TRACE_SYMBOL(EC_CMD_RWSIG_ACTION), \
156 	TRACE_SYMBOL(EC_CMD_EFS_VERIFY), \
157 	TRACE_SYMBOL(EC_CMD_GET_CROS_BOARD_INFO), \
158 	TRACE_SYMBOL(EC_CMD_SET_CROS_BOARD_INFO), \
159 	TRACE_SYMBOL(EC_CMD_GET_UPTIME_INFO), \
160 	TRACE_SYMBOL(EC_CMD_ADD_ENTROPY), \
161 	TRACE_SYMBOL(EC_CMD_ADC_READ), \
162 	TRACE_SYMBOL(EC_CMD_ROLLBACK_INFO), \
163 	TRACE_SYMBOL(EC_CMD_AP_RESET), \
164 	TRACE_SYMBOL(EC_CMD_REGULATOR_GET_INFO), \
165 	TRACE_SYMBOL(EC_CMD_REGULATOR_ENABLE), \
166 	TRACE_SYMBOL(EC_CMD_REGULATOR_IS_ENABLED), \
167 	TRACE_SYMBOL(EC_CMD_REGULATOR_SET_VOLTAGE), \
168 	TRACE_SYMBOL(EC_CMD_REGULATOR_GET_VOLTAGE), \
169 	TRACE_SYMBOL(EC_CMD_CR51_BASE), \
170 	TRACE_SYMBOL(EC_CMD_CR51_LAST), \
171 	TRACE_SYMBOL(EC_CMD_FP_PASSTHRU), \
172 	TRACE_SYMBOL(EC_CMD_FP_MODE), \
173 	TRACE_SYMBOL(EC_CMD_FP_INFO), \
174 	TRACE_SYMBOL(EC_CMD_FP_FRAME), \
175 	TRACE_SYMBOL(EC_CMD_FP_TEMPLATE), \
176 	TRACE_SYMBOL(EC_CMD_FP_CONTEXT), \
177 	TRACE_SYMBOL(EC_CMD_FP_STATS), \
178 	TRACE_SYMBOL(EC_CMD_FP_SEED), \
179 	TRACE_SYMBOL(EC_CMD_FP_ENC_STATUS), \
180 	TRACE_SYMBOL(EC_CMD_TP_SELF_TEST), \
181 	TRACE_SYMBOL(EC_CMD_TP_FRAME_INFO), \
182 	TRACE_SYMBOL(EC_CMD_TP_FRAME_SNAPSHOT), \
183 	TRACE_SYMBOL(EC_CMD_TP_FRAME_GET), \
184 	TRACE_SYMBOL(EC_CMD_BATTERY_GET_STATIC), \
185 	TRACE_SYMBOL(EC_CMD_BATTERY_GET_DYNAMIC), \
186 	TRACE_SYMBOL(EC_CMD_CHARGER_CONTROL), \
187 	TRACE_SYMBOL(EC_CMD_BOARD_SPECIFIC_BASE), \
188 	TRACE_SYMBOL(EC_CMD_BOARD_SPECIFIC_LAST)
189 
190 /* See the enum ec_status in include/linux/platform_data/cros_ec_commands.h */
191 #define EC_RESULT \
192 	TRACE_SYMBOL(EC_RES_SUCCESS), \
193 	TRACE_SYMBOL(EC_RES_INVALID_COMMAND), \
194 	TRACE_SYMBOL(EC_RES_ERROR), \
195 	TRACE_SYMBOL(EC_RES_INVALID_PARAM), \
196 	TRACE_SYMBOL(EC_RES_ACCESS_DENIED), \
197 	TRACE_SYMBOL(EC_RES_INVALID_RESPONSE), \
198 	TRACE_SYMBOL(EC_RES_INVALID_VERSION), \
199 	TRACE_SYMBOL(EC_RES_INVALID_CHECKSUM), \
200 	TRACE_SYMBOL(EC_RES_IN_PROGRESS), \
201 	TRACE_SYMBOL(EC_RES_UNAVAILABLE), \
202 	TRACE_SYMBOL(EC_RES_TIMEOUT), \
203 	TRACE_SYMBOL(EC_RES_OVERFLOW), \
204 	TRACE_SYMBOL(EC_RES_INVALID_HEADER), \
205 	TRACE_SYMBOL(EC_RES_REQUEST_TRUNCATED), \
206 	TRACE_SYMBOL(EC_RES_RESPONSE_TOO_BIG), \
207 	TRACE_SYMBOL(EC_RES_BUS_ERROR), \
208 	TRACE_SYMBOL(EC_RES_BUSY), \
209 	TRACE_SYMBOL(EC_RES_INVALID_HEADER_VERSION), \
210 	TRACE_SYMBOL(EC_RES_INVALID_HEADER_CRC), \
211 	TRACE_SYMBOL(EC_RES_INVALID_DATA_CRC), \
212 	TRACE_SYMBOL(EC_RES_DUP_UNAVAILABLE)
213 
214 #define CREATE_TRACE_POINTS
215 #include "cros_ec_trace.h"
216