Merge remote-tracking branches 'asoc/topic/sunxi', 'asoc/topic/symmetry', 'asoc/topic...
[sfrench/cifs-2.6.git] / sound / soc / mediatek / mt2701 / mt2701-afe-clock-ctrl.h
1 /*
2  * mt2701-afe-clock-ctrl.h  --  Mediatek 2701 afe clock ctrl definition
3  *
4  * Copyright (c) 2016 MediaTek Inc.
5  * Author: Garlic Tseng <garlic.tseng@mediatek.com>
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License version 2 and
9  * only version 2 as published by the Free Software Foundation.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  */
16
17 #ifndef _MT2701_AFE_CLOCK_CTRL_H_
18 #define _MT2701_AFE_CLOCK_CTRL_H_
19
20 struct mtk_base_afe;
21
22 int mt2701_init_clock(struct mtk_base_afe *afe);
23 int mt2701_afe_enable_clock(struct mtk_base_afe *afe);
24 int mt2701_afe_disable_clock(struct mtk_base_afe *afe);
25
26 int mt2701_afe_enable_i2s(struct mtk_base_afe *afe, int id, int dir);
27 void mt2701_afe_disable_i2s(struct mtk_base_afe *afe, int id, int dir);
28 int mt2701_afe_enable_mclk(struct mtk_base_afe *afe, int id);
29 void mt2701_afe_disable_mclk(struct mtk_base_afe *afe, int id);
30
31 int mt2701_enable_btmrg_clk(struct mtk_base_afe *afe);
32 void mt2701_disable_btmrg_clk(struct mtk_base_afe *afe);
33
34 void mt2701_mclk_configuration(struct mtk_base_afe *afe, int id, int domain,
35                                int mclk);
36
37 #endif