xref: /openbmc/linux/sound/soc/codecs/rl6347a.h (revision 75bf465f0bc33e9b776a46d6a1b9b990f5fb7c37)
1*d2912cb1SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
2bc08f96bSOder Chiou /*
3bc08f96bSOder Chiou  * rl6347a.h - RL6347A class device shared support
4bc08f96bSOder Chiou  *
5bc08f96bSOder Chiou  * Copyright 2015 Realtek Semiconductor Corp.
6bc08f96bSOder Chiou  *
7bc08f96bSOder Chiou  * Author: Oder Chiou <oder_chiou@realtek.com>
8bc08f96bSOder Chiou  */
9bc08f96bSOder Chiou #ifndef __RL6347A_H__
10bc08f96bSOder Chiou #define __RL6347A_H__
11bc08f96bSOder Chiou 
120f7e1774SAxel Lin #include <sound/hda_verbs.h>
130f7e1774SAxel Lin 
14bc08f96bSOder Chiou #define VERB_CMD(V, N, D) ((N << 20) | (V << 8) | D)
15bc08f96bSOder Chiou 
16bc08f96bSOder Chiou #define RL6347A_VENDOR_REGISTERS	0x20
17bc08f96bSOder Chiou 
18bc08f96bSOder Chiou #define RL6347A_COEF_INDEX\
19bc08f96bSOder Chiou 	VERB_CMD(AC_VERB_SET_COEF_INDEX, RL6347A_VENDOR_REGISTERS, 0)
20bc08f96bSOder Chiou #define RL6347A_PROC_COEF\
21bc08f96bSOder Chiou 	VERB_CMD(AC_VERB_SET_PROC_COEF, RL6347A_VENDOR_REGISTERS, 0)
22bc08f96bSOder Chiou 
23bc08f96bSOder Chiou struct rl6347a_priv {
24bc08f96bSOder Chiou 	struct reg_default *index_cache;
25bc08f96bSOder Chiou 	int index_cache_size;
26bc08f96bSOder Chiou };
27bc08f96bSOder Chiou 
28bc08f96bSOder Chiou int rl6347a_hw_write(void *context, unsigned int reg, unsigned int value);
29bc08f96bSOder Chiou int rl6347a_hw_read(void *context, unsigned int reg, unsigned int *value);
30bc08f96bSOder Chiou 
31bc08f96bSOder Chiou #endif /* __RL6347A_H__ */
32