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