1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Copyright (c) 2015 MediaTek Inc.
4  */
5 
6 #ifndef MTK_MUTEX_H
7 #define MTK_MUTEX_H
8 
9 struct regmap;
10 struct device;
11 struct mtk_mutex;
12 
13 struct mtk_mutex *mtk_mutex_get(struct device *dev);
14 int mtk_mutex_prepare(struct mtk_mutex *mutex);
15 void mtk_mutex_add_comp(struct mtk_mutex *mutex,
16 			enum mtk_ddp_comp_id id);
17 void mtk_mutex_enable(struct mtk_mutex *mutex);
18 void mtk_mutex_disable(struct mtk_mutex *mutex);
19 void mtk_mutex_remove_comp(struct mtk_mutex *mutex,
20 			   enum mtk_ddp_comp_id id);
21 void mtk_mutex_unprepare(struct mtk_mutex *mutex);
22 void mtk_mutex_put(struct mtk_mutex *mutex);
23 void mtk_mutex_acquire(struct mtk_mutex *mutex);
24 void mtk_mutex_release(struct mtk_mutex *mutex);
25 
26 #endif /* MTK_MUTEX_H */
27