xref: /OK3568_Linux_fs/kernel/include/linux/soc/rockchip/rockchip_thunderboot_service.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /* Copyright (c) 2022 Rockchip Electronics Co., Ltd */
3 
4 #ifndef _ROCKCHIP_THUNDERBOOT_SERVICE_H
5 #define _ROCKCHIP_THUNDERBOOT_SERVICE_H
6 
7 struct rk_tb_client {
8 	struct list_head node;
9 	void *data;
10 	void (*cb)(void *data);
11 };
12 
13 #ifdef CONFIG_ROCKCHIP_THUNDER_BOOT_SERVICE
14 bool rk_tb_mcu_is_done(void);
15 int rk_tb_client_register_cb(struct rk_tb_client *client);
16 int rk_tb_client_register_cb_head(struct rk_tb_client *client);
17 #else
rk_tb_mcu_is_done(void)18 static inline bool rk_tb_mcu_is_done(void)
19 {
20 	return true;
21 }
rk_tb_client_register_cb(struct rk_tb_client * client)22 static inline int rk_tb_client_register_cb(struct rk_tb_client *client)
23 {
24 	if (client && client->cb)
25 		client->cb(client->data);
26 
27 	return 0;
28 }
rk_tb_client_register_cb_head(struct rk_tb_client * client)29 static inline int rk_tb_client_register_cb_head(struct rk_tb_client *client)
30 {
31 	if (client && client->cb)
32 		client->cb(client->data);
33 
34 	return 0;
35 }
36 #endif
37 #endif
38