162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2020 MediaTek Inc.
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci#undef TRACE_SYSTEM
662306a36Sopenharmony_ci#define TRACE_SYSTEM ufs_mtk
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci#if !defined(_TRACE_EVENT_UFS_MEDIATEK_H) || defined(TRACE_HEADER_MULTI_READ)
962306a36Sopenharmony_ci#define _TRACE_EVENT_UFS_MEDIATEK_H
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#include <linux/tracepoint.h>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ciTRACE_EVENT(ufs_mtk_event,
1462306a36Sopenharmony_ci	TP_PROTO(unsigned int type, unsigned int data),
1562306a36Sopenharmony_ci	TP_ARGS(type, data),
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci	TP_STRUCT__entry(
1862306a36Sopenharmony_ci		__field(unsigned int, type)
1962306a36Sopenharmony_ci		__field(unsigned int, data)
2062306a36Sopenharmony_ci	),
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci	TP_fast_assign(
2362306a36Sopenharmony_ci		__entry->type = type;
2462306a36Sopenharmony_ci		__entry->data = data;
2562306a36Sopenharmony_ci	),
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci	TP_printk("ufs: event=%u data=%u",
2862306a36Sopenharmony_ci		  __entry->type, __entry->data)
2962306a36Sopenharmony_ci);
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ciTRACE_EVENT(ufs_mtk_clk_scale,
3262306a36Sopenharmony_ci	TP_PROTO(const char *name, bool scale_up, unsigned long clk_rate),
3362306a36Sopenharmony_ci	TP_ARGS(name, scale_up, clk_rate),
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci	TP_STRUCT__entry(
3662306a36Sopenharmony_ci		__field(const char*, name)
3762306a36Sopenharmony_ci		__field(bool, scale_up)
3862306a36Sopenharmony_ci		__field(unsigned long, clk_rate)
3962306a36Sopenharmony_ci	),
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci	TP_fast_assign(
4262306a36Sopenharmony_ci		__entry->name = name;
4362306a36Sopenharmony_ci		__entry->scale_up = scale_up;
4462306a36Sopenharmony_ci		__entry->clk_rate = clk_rate;
4562306a36Sopenharmony_ci	),
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci	TP_printk("ufs: clk (%s) scaled %s @ %lu",
4862306a36Sopenharmony_ci		  __entry->name,
4962306a36Sopenharmony_ci		  __entry->scale_up ? "up" : "down",
5062306a36Sopenharmony_ci		  __entry->clk_rate)
5162306a36Sopenharmony_ci);
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci#endif
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci#undef TRACE_INCLUDE_PATH
5662306a36Sopenharmony_ci#undef TRACE_INCLUDE_FILE
5762306a36Sopenharmony_ci#define TRACE_INCLUDE_PATH ../../drivers/ufs/host
5862306a36Sopenharmony_ci#define TRACE_INCLUDE_FILE ufs-mediatek-trace
5962306a36Sopenharmony_ci#include <trace/define_trace.h>
60