xref: /linux/include/trace/events/qcom_geni_serial.h (revision 7db28abbea0f7dc1ec4fdfdc149db5fbd9e4c994)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #undef TRACE_SYSTEM
3 #define TRACE_SYSTEM qcom_geni_serial
4 
5 #if !defined(_TRACE_QCOM_GENI_SERIAL_H) || defined(TRACE_HEADER_MULTI_READ)
6 #define _TRACE_QCOM_GENI_SERIAL_H
7 
8 #include <linux/device.h>
9 #include <linux/tracepoint.h>
10 
11 TRACE_EVENT(geni_serial_set_termios,
12 	    TP_PROTO(struct device *dev, unsigned int baud,
13 		     unsigned int bits_per_char, u32 tx_trans_cfg,
14 		     u32 tx_parity_cfg, u32 rx_trans_cfg,
15 		     u32 rx_parity_cfg, u32 stop_bit_len),
16 	    TP_ARGS(dev, baud, bits_per_char, tx_trans_cfg, tx_parity_cfg,
17 		    rx_trans_cfg, rx_parity_cfg, stop_bit_len),
18 
19 	    TP_STRUCT__entry(__string(name, dev_name(dev))
20 			     __field(unsigned int, baud)
21 			     __field(unsigned int, bits_per_char)
22 			     __field(u32, tx_trans_cfg)
23 			     __field(u32, tx_parity_cfg)
24 			     __field(u32, rx_trans_cfg)
25 			     __field(u32, rx_parity_cfg)
26 			     __field(u32, stop_bit_len)
27 	    ),
28 
29 	    TP_fast_assign(__assign_str(name);
30 			   __entry->baud = baud;
31 			   __entry->bits_per_char = bits_per_char;
32 			   __entry->tx_trans_cfg = tx_trans_cfg;
33 			   __entry->tx_parity_cfg = tx_parity_cfg;
34 			   __entry->rx_trans_cfg = rx_trans_cfg;
35 			   __entry->rx_parity_cfg = rx_parity_cfg;
36 			   __entry->stop_bit_len = stop_bit_len;
37 	    ),
38 
39 	    TP_printk("%s: baud=%u bpc=%u tx_trans=0x%08x tx_par=0x%08x rx_trans=0x%08x rx_par=0x%08x stop=%u",
40 		      __get_str(name), __entry->baud, __entry->bits_per_char,
41 		      __entry->tx_trans_cfg, __entry->tx_parity_cfg,
42 		      __entry->rx_trans_cfg, __entry->rx_parity_cfg,
43 		      __entry->stop_bit_len)
44 );
45 
46 TRACE_EVENT(geni_serial_clk_cfg,
47 	    TP_PROTO(struct device *dev, unsigned int desired_rate,
48 		     unsigned long clk_rate, unsigned int clk_div,
49 		     unsigned int clk_idx),
50 	    TP_ARGS(dev, desired_rate, clk_rate, clk_div, clk_idx),
51 
52 	    TP_STRUCT__entry(__string(name, dev_name(dev))
53 			     __field(unsigned int, desired_rate)
54 			     __field(unsigned long, clk_rate)
55 			     __field(unsigned int, clk_div)
56 			     __field(unsigned int, clk_idx)
57 	    ),
58 
59 	    TP_fast_assign(__assign_str(name);
60 			   __entry->desired_rate = desired_rate;
61 			   __entry->clk_rate = clk_rate;
62 			   __entry->clk_div = clk_div;
63 			   __entry->clk_idx = clk_idx;
64 	    ),
65 
66 	    TP_printk("%s: desired_rate=%u clk_rate=%lu clk_div=%u clk_idx=%u",
67 		      __get_str(name), __entry->desired_rate, __entry->clk_rate,
68 		      __entry->clk_div, __entry->clk_idx)
69 );
70 
71 TRACE_EVENT(geni_serial_irq,
72 	    TP_PROTO(struct device *dev, u32 m_irq, u32 s_irq,
73 		     u32 dma_tx, u32 dma_rx),
74 	    TP_ARGS(dev, m_irq, s_irq, dma_tx, dma_rx),
75 
76 	    TP_STRUCT__entry(__string(name, dev_name(dev))
77 			     __field(u32, m_irq)
78 			     __field(u32, s_irq)
79 			     __field(u32, dma_tx)
80 			     __field(u32, dma_rx)
81 	    ),
82 
83 	    TP_fast_assign(__assign_str(name);
84 			   __entry->m_irq = m_irq;
85 			   __entry->s_irq = s_irq;
86 			   __entry->dma_tx = dma_tx;
87 			   __entry->dma_rx = dma_rx;
88 	    ),
89 
90 	    TP_printk("%s: m_irq=0x%08x s_irq=0x%08x dma_tx=0x%08x dma_rx=0x%08x",
91 		      __get_str(name), __entry->m_irq, __entry->s_irq,
92 		      __entry->dma_tx, __entry->dma_rx)
93 );
94 
95 DECLARE_EVENT_CLASS(geni_serial_data,
96 		    TP_PROTO(struct device *dev, const u8 *buf, unsigned int len),
97 		    TP_ARGS(dev, buf, len),
98 
99 		    TP_STRUCT__entry(__string(name, dev_name(dev))
100 				     __dynamic_array(u8, data, len)
101 		    ),
102 
103 		    TP_fast_assign(__assign_str(name);
104 				   memcpy(__get_dynamic_array(data), buf, len);
105 		    ),
106 
107 		    TP_printk("%s: len=%u data=%s",
108 			      __get_str(name), __get_dynamic_array_len(data),
109 			      __print_hex(__get_dynamic_array(data),
110 					  __get_dynamic_array_len(data)))
111 );
112 
113 DEFINE_EVENT(geni_serial_data, geni_serial_tx_data,
114 	     TP_PROTO(struct device *dev, const u8 *buf, unsigned int len),
115 	     TP_ARGS(dev, buf, len)
116 );
117 
118 DEFINE_EVENT(geni_serial_data, geni_serial_rx_data,
119 	     TP_PROTO(struct device *dev, const u8 *buf, unsigned int len),
120 	     TP_ARGS(dev, buf, len)
121 );
122 
123 TRACE_EVENT(geni_serial_set_mctrl,
124 	    TP_PROTO(struct device *dev, unsigned int mctrl,
125 		     u32 uart_manual_rfr),
126 	    TP_ARGS(dev, mctrl, uart_manual_rfr),
127 
128 	    TP_STRUCT__entry(__string(name, dev_name(dev))
129 			     __field(unsigned int, mctrl)
130 			     __field(u32, uart_manual_rfr)
131 	    ),
132 
133 	    TP_fast_assign(__assign_str(name);
134 			   __entry->mctrl = mctrl;
135 			   __entry->uart_manual_rfr = uart_manual_rfr;
136 	    ),
137 
138 	    TP_printk("%s: mctrl=0x%04x uart_manual_rfr=0x%08x",
139 		      __get_str(name), __entry->mctrl, __entry->uart_manual_rfr)
140 );
141 
142 TRACE_EVENT(geni_serial_get_mctrl,
143 	    TP_PROTO(struct device *dev, unsigned int mctrl, u32 geni_ios),
144 	    TP_ARGS(dev, mctrl, geni_ios),
145 
146 	    TP_STRUCT__entry(__string(name, dev_name(dev))
147 			     __field(unsigned int, mctrl)
148 			     __field(u32, geni_ios)
149 	    ),
150 
151 	    TP_fast_assign(__assign_str(name);
152 			   __entry->mctrl = mctrl;
153 			   __entry->geni_ios = geni_ios;
154 	    ),
155 
156 	    TP_printk("%s: mctrl=0x%04x geni_ios=0x%08x",
157 		      __get_str(name), __entry->mctrl, __entry->geni_ios)
158 );
159 
160 #endif /* _TRACE_QCOM_GENI_SERIAL_H */
161 
162 /* This part must be outside protection */
163 #include <trace/define_trace.h>
164