/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 * Copyright (c) 2023 MediaTek Inc. All Rights Reserved.
 *
 * Author: Alvin Kuo <alvin.kuog@mediatek.com>
 */

#ifndef _TOPS_SER_H_
#define _TOPS_SER_H_

#include <linux/list.h>
#include <linux/spinlock.h>
#include <linux/platform_device.h>

#include "net-event.h"
#include "mcu.h"
#include "wdt.h"

enum tops_ser_type {
	TOPS_SER_NETSYS_FE_RST,
	TOPS_SER_WDT_TO,

	__TOPS_SER_TYPE_MAX,
};

struct tops_ser_params {
	enum tops_ser_type type;

	union {
		struct tops_net_ser_data net;
		struct tops_wdt_ser_data wdt;
	} data;

	void (*ser_callback)(struct tops_ser_params *ser_params);
	void (*ser_mcmd_setup)(struct tops_ser_params *ser_params,
			       struct mcu_ctrl_cmd *mcmd);
};

int mtk_tops_ser(struct tops_ser_params *ser_params);
int mtk_tops_ser_init(struct platform_device *pdev);
int mtk_tops_ser_deinit(struct platform_device *pdev);
#endif /* _TOPS_SER_H_ */
