xref: /openbmc/linux/sound/soc/codecs/ad73311.h (revision b7b06f8b)
1b7b06f8bSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */
20e77e784SCliff Cai /*
30e77e784SCliff Cai  * File:         sound/soc/codec/ad73311.h
40e77e784SCliff Cai  * Based on:
50e77e784SCliff Cai  * Author:       Cliff Cai <cliff.cai@analog.com>
60e77e784SCliff Cai  *
70e77e784SCliff Cai  * Created:      Thur Sep 25, 2008
80e77e784SCliff Cai  * Description:  definitions for AD73311 registers
90e77e784SCliff Cai  *
100e77e784SCliff Cai  * Modified:
110e77e784SCliff Cai  *               Copyright 2006 Analog Devices Inc.
120e77e784SCliff Cai  *
130e77e784SCliff Cai  * Bugs:         Enter bugs at http://blackfin.uclinux.org/
140e77e784SCliff Cai  */
150e77e784SCliff Cai 
160e77e784SCliff Cai #ifndef __AD73311_H__
170e77e784SCliff Cai #define __AD73311_H__
180e77e784SCliff Cai 
190e77e784SCliff Cai #define AD_CONTROL	0x8000
200e77e784SCliff Cai #define AD_DATA		0x0000
210e77e784SCliff Cai #define AD_READ		0x4000
220e77e784SCliff Cai #define AD_WRITE	0x0000
230e77e784SCliff Cai 
240e77e784SCliff Cai /* Control register A */
250e77e784SCliff Cai #define CTRL_REG_A	(0 << 8)
260e77e784SCliff Cai 
270e77e784SCliff Cai #define REGA_MODE_PRO	0x00
280e77e784SCliff Cai #define REGA_MODE_DATA	0x01
290e77e784SCliff Cai #define REGA_MODE_MIXED	0x03
300e77e784SCliff Cai #define REGA_DLB		0x04
310e77e784SCliff Cai #define REGA_SLB		0x08
320e77e784SCliff Cai #define REGA_DEVC(x)		((x & 0x7) << 4)
330e77e784SCliff Cai #define REGA_RESET		0x80
340e77e784SCliff Cai 
350e77e784SCliff Cai /* Control register B */
360e77e784SCliff Cai #define CTRL_REG_B	(1 << 8)
370e77e784SCliff Cai 
380e77e784SCliff Cai #define REGB_DIRATE(x)	(x & 0x3)
390e77e784SCliff Cai #define REGB_SCDIV(x)	((x & 0x3) << 2)
400e77e784SCliff Cai #define REGB_MCDIV(x)	((x & 0x7) << 4)
410e77e784SCliff Cai #define REGB_CEE		(1 << 7)
420e77e784SCliff Cai 
430e77e784SCliff Cai /* Control register C */
440e77e784SCliff Cai #define CTRL_REG_C	(2 << 8)
450e77e784SCliff Cai 
460e77e784SCliff Cai #define REGC_PUDEV		(1 << 0)
470e77e784SCliff Cai #define REGC_PUADC		(1 << 3)
480e77e784SCliff Cai #define REGC_PUDAC		(1 << 4)
490e77e784SCliff Cai #define REGC_PUREF		(1 << 5)
500e77e784SCliff Cai #define REGC_REFUSE		(1 << 6)
510e77e784SCliff Cai 
520e77e784SCliff Cai /* Control register D */
530e77e784SCliff Cai #define CTRL_REG_D	(3 << 8)
540e77e784SCliff Cai 
550e77e784SCliff Cai #define REGD_IGS(x)		(x & 0x7)
560e77e784SCliff Cai #define REGD_RMOD		(1 << 3)
570e77e784SCliff Cai #define REGD_OGS(x)		((x & 0x7) << 4)
5867a9c573SMike Frysinger #define REGD_MUTE		(1 << 7)
590e77e784SCliff Cai 
600e77e784SCliff Cai /* Control register E */
610e77e784SCliff Cai #define CTRL_REG_E	(4 << 8)
620e77e784SCliff Cai 
630e77e784SCliff Cai #define REGE_DA(x)		(x & 0x1f)
640e77e784SCliff Cai #define REGE_IBYP		(1 << 5)
650e77e784SCliff Cai 
660e77e784SCliff Cai /* Control register F */
670e77e784SCliff Cai #define CTRL_REG_F	(5 << 8)
680e77e784SCliff Cai 
690e77e784SCliff Cai #define REGF_SEEN		(1 << 5)
700e77e784SCliff Cai #define REGF_INV		(1 << 6)
710e77e784SCliff Cai #define REGF_ALB		(1 << 7)
720e77e784SCliff Cai 
730e77e784SCliff Cai #endif
74