xref: /openbmc/linux/include/trace/events/rtc.h (revision 29a1f599)
129a1f599SBaolin Wang #undef TRACE_SYSTEM
229a1f599SBaolin Wang #define TRACE_SYSTEM rtc
329a1f599SBaolin Wang 
429a1f599SBaolin Wang #if !defined(_TRACE_RTC_H) || defined(TRACE_HEADER_MULTI_READ)
529a1f599SBaolin Wang #define _TRACE_RTC_H
629a1f599SBaolin Wang 
729a1f599SBaolin Wang #include <linux/rtc.h>
829a1f599SBaolin Wang #include <linux/tracepoint.h>
929a1f599SBaolin Wang 
1029a1f599SBaolin Wang DECLARE_EVENT_CLASS(rtc_time_alarm_class,
1129a1f599SBaolin Wang 
1229a1f599SBaolin Wang 	TP_PROTO(time64_t secs, int err),
1329a1f599SBaolin Wang 
1429a1f599SBaolin Wang 	TP_ARGS(secs, err),
1529a1f599SBaolin Wang 
1629a1f599SBaolin Wang 	TP_STRUCT__entry(
1729a1f599SBaolin Wang 		__field(time64_t, secs)
1829a1f599SBaolin Wang 		__field(int, err)
1929a1f599SBaolin Wang 	),
2029a1f599SBaolin Wang 
2129a1f599SBaolin Wang 	TP_fast_assign(
2229a1f599SBaolin Wang 		__entry->secs = secs;
2329a1f599SBaolin Wang 		__entry->err = err;
2429a1f599SBaolin Wang 	),
2529a1f599SBaolin Wang 
2629a1f599SBaolin Wang 	TP_printk("UTC (%lld) (%d)",
2729a1f599SBaolin Wang 		  __entry->secs, __entry->err
2829a1f599SBaolin Wang 	)
2929a1f599SBaolin Wang );
3029a1f599SBaolin Wang 
3129a1f599SBaolin Wang DEFINE_EVENT(rtc_time_alarm_class, rtc_set_time,
3229a1f599SBaolin Wang 
3329a1f599SBaolin Wang 	TP_PROTO(time64_t secs, int err),
3429a1f599SBaolin Wang 
3529a1f599SBaolin Wang 	TP_ARGS(secs, err)
3629a1f599SBaolin Wang );
3729a1f599SBaolin Wang 
3829a1f599SBaolin Wang DEFINE_EVENT(rtc_time_alarm_class, rtc_read_time,
3929a1f599SBaolin Wang 
4029a1f599SBaolin Wang 	TP_PROTO(time64_t secs, int err),
4129a1f599SBaolin Wang 
4229a1f599SBaolin Wang 	TP_ARGS(secs, err)
4329a1f599SBaolin Wang );
4429a1f599SBaolin Wang 
4529a1f599SBaolin Wang DEFINE_EVENT(rtc_time_alarm_class, rtc_set_alarm,
4629a1f599SBaolin Wang 
4729a1f599SBaolin Wang 	TP_PROTO(time64_t secs, int err),
4829a1f599SBaolin Wang 
4929a1f599SBaolin Wang 	TP_ARGS(secs, err)
5029a1f599SBaolin Wang );
5129a1f599SBaolin Wang 
5229a1f599SBaolin Wang DEFINE_EVENT(rtc_time_alarm_class, rtc_read_alarm,
5329a1f599SBaolin Wang 
5429a1f599SBaolin Wang 	TP_PROTO(time64_t secs, int err),
5529a1f599SBaolin Wang 
5629a1f599SBaolin Wang 	TP_ARGS(secs, err)
5729a1f599SBaolin Wang );
5829a1f599SBaolin Wang 
5929a1f599SBaolin Wang TRACE_EVENT(rtc_irq_set_freq,
6029a1f599SBaolin Wang 
6129a1f599SBaolin Wang 	TP_PROTO(int freq, int err),
6229a1f599SBaolin Wang 
6329a1f599SBaolin Wang 	TP_ARGS(freq, err),
6429a1f599SBaolin Wang 
6529a1f599SBaolin Wang 	TP_STRUCT__entry(
6629a1f599SBaolin Wang 		__field(int, freq)
6729a1f599SBaolin Wang 		__field(int, err)
6829a1f599SBaolin Wang 	),
6929a1f599SBaolin Wang 
7029a1f599SBaolin Wang 	TP_fast_assign(
7129a1f599SBaolin Wang 		__entry->freq = freq;
7229a1f599SBaolin Wang 		__entry->err = err;
7329a1f599SBaolin Wang 	),
7429a1f599SBaolin Wang 
7529a1f599SBaolin Wang 	TP_printk("set RTC periodic IRQ frequency:%u (%d)",
7629a1f599SBaolin Wang 		  __entry->freq, __entry->err
7729a1f599SBaolin Wang 	)
7829a1f599SBaolin Wang );
7929a1f599SBaolin Wang 
8029a1f599SBaolin Wang TRACE_EVENT(rtc_irq_set_state,
8129a1f599SBaolin Wang 
8229a1f599SBaolin Wang 	TP_PROTO(int enabled, int err),
8329a1f599SBaolin Wang 
8429a1f599SBaolin Wang 	TP_ARGS(enabled, err),
8529a1f599SBaolin Wang 
8629a1f599SBaolin Wang 	TP_STRUCT__entry(
8729a1f599SBaolin Wang 		__field(int, enabled)
8829a1f599SBaolin Wang 		__field(int, err)
8929a1f599SBaolin Wang 	),
9029a1f599SBaolin Wang 
9129a1f599SBaolin Wang 	TP_fast_assign(
9229a1f599SBaolin Wang 		__entry->enabled = enabled;
9329a1f599SBaolin Wang 		__entry->err = err;
9429a1f599SBaolin Wang 	),
9529a1f599SBaolin Wang 
9629a1f599SBaolin Wang 	TP_printk("%s RTC 2^N Hz periodic IRQs (%d)",
9729a1f599SBaolin Wang 		  __entry->enabled ? "enable" : "disable",
9829a1f599SBaolin Wang 		  __entry->err
9929a1f599SBaolin Wang 	)
10029a1f599SBaolin Wang );
10129a1f599SBaolin Wang 
10229a1f599SBaolin Wang TRACE_EVENT(rtc_alarm_irq_enable,
10329a1f599SBaolin Wang 
10429a1f599SBaolin Wang 	TP_PROTO(unsigned int enabled, int err),
10529a1f599SBaolin Wang 
10629a1f599SBaolin Wang 	TP_ARGS(enabled, err),
10729a1f599SBaolin Wang 
10829a1f599SBaolin Wang 	TP_STRUCT__entry(
10929a1f599SBaolin Wang 		__field(unsigned int, enabled)
11029a1f599SBaolin Wang 		__field(int, err)
11129a1f599SBaolin Wang 	),
11229a1f599SBaolin Wang 
11329a1f599SBaolin Wang 	TP_fast_assign(
11429a1f599SBaolin Wang 		__entry->enabled = enabled;
11529a1f599SBaolin Wang 		__entry->err = err;
11629a1f599SBaolin Wang 	),
11729a1f599SBaolin Wang 
11829a1f599SBaolin Wang 	TP_printk("%s RTC alarm IRQ (%d)",
11929a1f599SBaolin Wang 		  __entry->enabled ? "enable" : "disable",
12029a1f599SBaolin Wang 		  __entry->err
12129a1f599SBaolin Wang 	)
12229a1f599SBaolin Wang );
12329a1f599SBaolin Wang 
12429a1f599SBaolin Wang DECLARE_EVENT_CLASS(rtc_offset_class,
12529a1f599SBaolin Wang 
12629a1f599SBaolin Wang 	TP_PROTO(long offset, int err),
12729a1f599SBaolin Wang 
12829a1f599SBaolin Wang 	TP_ARGS(offset, err),
12929a1f599SBaolin Wang 
13029a1f599SBaolin Wang 	TP_STRUCT__entry(
13129a1f599SBaolin Wang 		__field(long, offset)
13229a1f599SBaolin Wang 		__field(int, err)
13329a1f599SBaolin Wang 	),
13429a1f599SBaolin Wang 
13529a1f599SBaolin Wang 	TP_fast_assign(
13629a1f599SBaolin Wang 		__entry->offset = offset;
13729a1f599SBaolin Wang 		__entry->err = err;
13829a1f599SBaolin Wang 	),
13929a1f599SBaolin Wang 
14029a1f599SBaolin Wang 	TP_printk("RTC offset: %ld (%d)",
14129a1f599SBaolin Wang 		  __entry->offset, __entry->err
14229a1f599SBaolin Wang 	)
14329a1f599SBaolin Wang );
14429a1f599SBaolin Wang 
14529a1f599SBaolin Wang DEFINE_EVENT(rtc_offset_class, rtc_set_offset,
14629a1f599SBaolin Wang 
14729a1f599SBaolin Wang 	TP_PROTO(long offset, int err),
14829a1f599SBaolin Wang 
14929a1f599SBaolin Wang 	TP_ARGS(offset, err)
15029a1f599SBaolin Wang );
15129a1f599SBaolin Wang 
15229a1f599SBaolin Wang DEFINE_EVENT(rtc_offset_class, rtc_read_offset,
15329a1f599SBaolin Wang 
15429a1f599SBaolin Wang 	TP_PROTO(long offset, int err),
15529a1f599SBaolin Wang 
15629a1f599SBaolin Wang 	TP_ARGS(offset, err)
15729a1f599SBaolin Wang );
15829a1f599SBaolin Wang 
15929a1f599SBaolin Wang DECLARE_EVENT_CLASS(rtc_timer_class,
16029a1f599SBaolin Wang 
16129a1f599SBaolin Wang 	TP_PROTO(struct rtc_timer *timer),
16229a1f599SBaolin Wang 
16329a1f599SBaolin Wang 	TP_ARGS(timer),
16429a1f599SBaolin Wang 
16529a1f599SBaolin Wang 	TP_STRUCT__entry(
16629a1f599SBaolin Wang 		__field(struct rtc_timer *, timer)
16729a1f599SBaolin Wang 		__field(ktime_t, expires)
16829a1f599SBaolin Wang 		__field(ktime_t, period)
16929a1f599SBaolin Wang 	),
17029a1f599SBaolin Wang 
17129a1f599SBaolin Wang 	TP_fast_assign(
17229a1f599SBaolin Wang 		__entry->timer = timer;
17329a1f599SBaolin Wang 		__entry->expires = timer->node.expires;
17429a1f599SBaolin Wang 		__entry->period = timer->period;
17529a1f599SBaolin Wang 	),
17629a1f599SBaolin Wang 
17729a1f599SBaolin Wang 	TP_printk("RTC timer:(%p) expires:%lld period:%lld",
17829a1f599SBaolin Wang 		  __entry->timer, __entry->expires, __entry->period
17929a1f599SBaolin Wang 	)
18029a1f599SBaolin Wang );
18129a1f599SBaolin Wang 
18229a1f599SBaolin Wang DEFINE_EVENT(rtc_timer_class, rtc_timer_enqueue,
18329a1f599SBaolin Wang 
18429a1f599SBaolin Wang 	TP_PROTO(struct rtc_timer *timer),
18529a1f599SBaolin Wang 
18629a1f599SBaolin Wang 	TP_ARGS(timer)
18729a1f599SBaolin Wang );
18829a1f599SBaolin Wang 
18929a1f599SBaolin Wang DEFINE_EVENT(rtc_timer_class, rtc_timer_dequeue,
19029a1f599SBaolin Wang 
19129a1f599SBaolin Wang 	TP_PROTO(struct rtc_timer *timer),
19229a1f599SBaolin Wang 
19329a1f599SBaolin Wang 	TP_ARGS(timer)
19429a1f599SBaolin Wang );
19529a1f599SBaolin Wang 
19629a1f599SBaolin Wang DEFINE_EVENT(rtc_timer_class, rtc_timer_fired,
19729a1f599SBaolin Wang 
19829a1f599SBaolin Wang 	TP_PROTO(struct rtc_timer *timer),
19929a1f599SBaolin Wang 
20029a1f599SBaolin Wang 	TP_ARGS(timer)
20129a1f599SBaolin Wang );
20229a1f599SBaolin Wang 
20329a1f599SBaolin Wang #endif /* _TRACE_RTC_H */
20429a1f599SBaolin Wang 
20529a1f599SBaolin Wang /* This part must be outside protection */
20629a1f599SBaolin Wang #include <trace/define_trace.h>
207