1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun 3*4882a593Smuzhiyun #undef TRACE_SYSTEM 4*4882a593Smuzhiyun #define TRACE_SYSTEM fsi_master_gpio 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun #if !defined(_TRACE_FSI_MASTER_GPIO_H) || defined(TRACE_HEADER_MULTI_READ) 7*4882a593Smuzhiyun #define _TRACE_FSI_MASTER_GPIO_H 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #include <linux/tracepoint.h> 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun TRACE_EVENT(fsi_master_gpio_in, 12*4882a593Smuzhiyun TP_PROTO(const struct fsi_master_gpio *master, int bits, uint64_t msg), 13*4882a593Smuzhiyun TP_ARGS(master, bits, msg), 14*4882a593Smuzhiyun TP_STRUCT__entry( 15*4882a593Smuzhiyun __field(int, master_idx) 16*4882a593Smuzhiyun __field(int, bits) 17*4882a593Smuzhiyun __field(uint64_t, msg) 18*4882a593Smuzhiyun ), 19*4882a593Smuzhiyun TP_fast_assign( 20*4882a593Smuzhiyun __entry->master_idx = master->master.idx; 21*4882a593Smuzhiyun __entry->bits = bits; 22*4882a593Smuzhiyun __entry->msg = msg & ((1ull<<bits) - 1); 23*4882a593Smuzhiyun ), 24*4882a593Smuzhiyun TP_printk("fsi-gpio%d => %0*llx[%d]", 25*4882a593Smuzhiyun __entry->master_idx, 26*4882a593Smuzhiyun (__entry->bits + 3) / 4, 27*4882a593Smuzhiyun __entry->msg, 28*4882a593Smuzhiyun __entry->bits 29*4882a593Smuzhiyun ) 30*4882a593Smuzhiyun ); 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun TRACE_EVENT(fsi_master_gpio_out, 33*4882a593Smuzhiyun TP_PROTO(const struct fsi_master_gpio *master, int bits, uint64_t msg), 34*4882a593Smuzhiyun TP_ARGS(master, bits, msg), 35*4882a593Smuzhiyun TP_STRUCT__entry( 36*4882a593Smuzhiyun __field(int, master_idx) 37*4882a593Smuzhiyun __field(int, bits) 38*4882a593Smuzhiyun __field(uint64_t, msg) 39*4882a593Smuzhiyun ), 40*4882a593Smuzhiyun TP_fast_assign( 41*4882a593Smuzhiyun __entry->master_idx = master->master.idx; 42*4882a593Smuzhiyun __entry->bits = bits; 43*4882a593Smuzhiyun __entry->msg = msg & ((1ull<<bits) - 1); 44*4882a593Smuzhiyun ), 45*4882a593Smuzhiyun TP_printk("fsi-gpio%d <= %0*llx[%d]", 46*4882a593Smuzhiyun __entry->master_idx, 47*4882a593Smuzhiyun (__entry->bits + 3) / 4, 48*4882a593Smuzhiyun __entry->msg, 49*4882a593Smuzhiyun __entry->bits 50*4882a593Smuzhiyun ) 51*4882a593Smuzhiyun ); 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun TRACE_EVENT(fsi_master_gpio_clock_zeros, 54*4882a593Smuzhiyun TP_PROTO(const struct fsi_master_gpio *master, int clocks), 55*4882a593Smuzhiyun TP_ARGS(master, clocks), 56*4882a593Smuzhiyun TP_STRUCT__entry( 57*4882a593Smuzhiyun __field(int, master_idx) 58*4882a593Smuzhiyun __field(int, clocks) 59*4882a593Smuzhiyun ), 60*4882a593Smuzhiyun TP_fast_assign( 61*4882a593Smuzhiyun __entry->master_idx = master->master.idx; 62*4882a593Smuzhiyun __entry->clocks = clocks; 63*4882a593Smuzhiyun ), 64*4882a593Smuzhiyun TP_printk("fsi-gpio%d clock %d zeros", 65*4882a593Smuzhiyun __entry->master_idx, __entry->clocks 66*4882a593Smuzhiyun ) 67*4882a593Smuzhiyun ); 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun TRACE_EVENT(fsi_master_gpio_break, 70*4882a593Smuzhiyun TP_PROTO(const struct fsi_master_gpio *master), 71*4882a593Smuzhiyun TP_ARGS(master), 72*4882a593Smuzhiyun TP_STRUCT__entry( 73*4882a593Smuzhiyun __field(int, master_idx) 74*4882a593Smuzhiyun ), 75*4882a593Smuzhiyun TP_fast_assign( 76*4882a593Smuzhiyun __entry->master_idx = master->master.idx; 77*4882a593Smuzhiyun ), 78*4882a593Smuzhiyun TP_printk("fsi-gpio%d ----break---", 79*4882a593Smuzhiyun __entry->master_idx 80*4882a593Smuzhiyun ) 81*4882a593Smuzhiyun ); 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun TRACE_EVENT(fsi_master_gpio_crc_cmd_error, 84*4882a593Smuzhiyun TP_PROTO(const struct fsi_master_gpio *master), 85*4882a593Smuzhiyun TP_ARGS(master), 86*4882a593Smuzhiyun TP_STRUCT__entry( 87*4882a593Smuzhiyun __field(int, master_idx) 88*4882a593Smuzhiyun ), 89*4882a593Smuzhiyun TP_fast_assign( 90*4882a593Smuzhiyun __entry->master_idx = master->master.idx; 91*4882a593Smuzhiyun ), 92*4882a593Smuzhiyun TP_printk("fsi-gpio%d ----CRC command retry---", 93*4882a593Smuzhiyun __entry->master_idx 94*4882a593Smuzhiyun ) 95*4882a593Smuzhiyun ); 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun TRACE_EVENT(fsi_master_gpio_crc_rsp_error, 98*4882a593Smuzhiyun TP_PROTO(const struct fsi_master_gpio *master), 99*4882a593Smuzhiyun TP_ARGS(master), 100*4882a593Smuzhiyun TP_STRUCT__entry( 101*4882a593Smuzhiyun __field(int, master_idx) 102*4882a593Smuzhiyun ), 103*4882a593Smuzhiyun TP_fast_assign( 104*4882a593Smuzhiyun __entry->master_idx = master->master.idx; 105*4882a593Smuzhiyun ), 106*4882a593Smuzhiyun TP_printk("fsi-gpio%d ----CRC response---", 107*4882a593Smuzhiyun __entry->master_idx 108*4882a593Smuzhiyun ) 109*4882a593Smuzhiyun ); 110*4882a593Smuzhiyun 111*4882a593Smuzhiyun TRACE_EVENT(fsi_master_gpio_poll_response_busy, 112*4882a593Smuzhiyun TP_PROTO(const struct fsi_master_gpio *master, int busy), 113*4882a593Smuzhiyun TP_ARGS(master, busy), 114*4882a593Smuzhiyun TP_STRUCT__entry( 115*4882a593Smuzhiyun __field(int, master_idx) 116*4882a593Smuzhiyun __field(int, busy) 117*4882a593Smuzhiyun ), 118*4882a593Smuzhiyun TP_fast_assign( 119*4882a593Smuzhiyun __entry->master_idx = master->master.idx; 120*4882a593Smuzhiyun __entry->busy = busy; 121*4882a593Smuzhiyun ), 122*4882a593Smuzhiyun TP_printk("fsi-gpio%d: device reported busy %d times", 123*4882a593Smuzhiyun __entry->master_idx, __entry->busy) 124*4882a593Smuzhiyun ); 125*4882a593Smuzhiyun 126*4882a593Smuzhiyun TRACE_EVENT(fsi_master_gpio_cmd_abs_addr, 127*4882a593Smuzhiyun TP_PROTO(const struct fsi_master_gpio *master, u32 addr), 128*4882a593Smuzhiyun TP_ARGS(master, addr), 129*4882a593Smuzhiyun TP_STRUCT__entry( 130*4882a593Smuzhiyun __field(int, master_idx) 131*4882a593Smuzhiyun __field(u32, addr) 132*4882a593Smuzhiyun ), 133*4882a593Smuzhiyun TP_fast_assign( 134*4882a593Smuzhiyun __entry->master_idx = master->master.idx; 135*4882a593Smuzhiyun __entry->addr = addr; 136*4882a593Smuzhiyun ), 137*4882a593Smuzhiyun TP_printk("fsi-gpio%d: Sending ABS_ADR %06x", 138*4882a593Smuzhiyun __entry->master_idx, __entry->addr) 139*4882a593Smuzhiyun ); 140*4882a593Smuzhiyun 141*4882a593Smuzhiyun TRACE_EVENT(fsi_master_gpio_cmd_rel_addr, 142*4882a593Smuzhiyun TP_PROTO(const struct fsi_master_gpio *master, u32 rel_addr), 143*4882a593Smuzhiyun TP_ARGS(master, rel_addr), 144*4882a593Smuzhiyun TP_STRUCT__entry( 145*4882a593Smuzhiyun __field(int, master_idx) 146*4882a593Smuzhiyun __field(u32, rel_addr) 147*4882a593Smuzhiyun ), 148*4882a593Smuzhiyun TP_fast_assign( 149*4882a593Smuzhiyun __entry->master_idx = master->master.idx; 150*4882a593Smuzhiyun __entry->rel_addr = rel_addr; 151*4882a593Smuzhiyun ), 152*4882a593Smuzhiyun TP_printk("fsi-gpio%d: Sending REL_ADR %03x", 153*4882a593Smuzhiyun __entry->master_idx, __entry->rel_addr) 154*4882a593Smuzhiyun ); 155*4882a593Smuzhiyun 156*4882a593Smuzhiyun TRACE_EVENT(fsi_master_gpio_cmd_same_addr, 157*4882a593Smuzhiyun TP_PROTO(const struct fsi_master_gpio *master), 158*4882a593Smuzhiyun TP_ARGS(master), 159*4882a593Smuzhiyun TP_STRUCT__entry( 160*4882a593Smuzhiyun __field(int, master_idx) 161*4882a593Smuzhiyun ), 162*4882a593Smuzhiyun TP_fast_assign( 163*4882a593Smuzhiyun __entry->master_idx = master->master.idx; 164*4882a593Smuzhiyun ), 165*4882a593Smuzhiyun TP_printk("fsi-gpio%d: Sending SAME_ADR", 166*4882a593Smuzhiyun __entry->master_idx) 167*4882a593Smuzhiyun ); 168*4882a593Smuzhiyun 169*4882a593Smuzhiyun #endif /* _TRACE_FSI_MASTER_GPIO_H */ 170*4882a593Smuzhiyun 171*4882a593Smuzhiyun #include <trace/define_trace.h> 172