1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 #undef TRACE_SYSTEM 3 #define TRACE_SYSTEM pwm 4 5 #if !defined(_TRACE_PWM_H) || defined(TRACE_HEADER_MULTI_READ) 6 #define _TRACE_PWM_H 7 8 #include <linux/pwm.h> 9 #include <linux/tracepoint.h> 10 11 DECLARE_EVENT_CLASS(pwm, 12 13 TP_PROTO(struct pwm_device *pwm, const struct pwm_state *state, int err), 14 15 TP_ARGS(pwm, state, err), 16 17 TP_STRUCT__entry( 18 __field(unsigned int, chipid) 19 __field(unsigned int, hwpwm) 20 __field(u64, period) 21 __field(u64, duty_cycle) 22 __field(enum pwm_polarity, polarity) 23 __field(bool, enabled) 24 __field(int, err) 25 ), 26 27 TP_fast_assign( 28 __entry->chipid = pwm->chip->id; 29 __entry->hwpwm = pwm->hwpwm; 30 __entry->period = state->period; 31 __entry->duty_cycle = state->duty_cycle; 32 __entry->polarity = state->polarity; 33 __entry->enabled = state->enabled; 34 __entry->err = err; 35 ), 36 37 TP_printk("pwmchip%u.%u: period=%llu duty_cycle=%llu polarity=%d enabled=%d err=%d", 38 __entry->chipid, __entry->hwpwm, __entry->period, __entry->duty_cycle, 39 __entry->polarity, __entry->enabled, __entry->err) 40 41 ); 42 43 DEFINE_EVENT(pwm, pwm_apply, 44 45 TP_PROTO(struct pwm_device *pwm, const struct pwm_state *state, int err), 46 47 TP_ARGS(pwm, state, err) 48 ); 49 50 DEFINE_EVENT(pwm, pwm_get, 51 52 TP_PROTO(struct pwm_device *pwm, const struct pwm_state *state, int err), 53 54 TP_ARGS(pwm, state, err) 55 ); 56 57 #endif /* _TRACE_PWM_H */ 58 59 /* This part must be outside protection */ 60 #include <trace/define_trace.h> 61