sound/soc/codecs/es8323.h

Source file repositories/reference/linux-study-clean/sound/soc/codecs/es8323.h

File Facts

System
Linux kernel
Corpus path
sound/soc/codecs/es8323.h
Extension
.h
Size
4717 bytes
Lines
172
Domain
Driver Families
Bucket
sound/soc
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

#ifndef _ES8323_H
#define _ES8323_H

/* ES8323 register space */

/* Chip Control and Power Management */
#define ES8323_CONTROL1		0x00
#define ES8323_CONTROL2		0x01
#define ES8323_CHIPPOWER	0x02

#define ES8323_CHIPPOWER_DACVREF_OFF	0
#define ES8323_CHIPPOWER_ADCVREF_OFF	1
#define ES8323_CHIPPOWER_DACDLL_OFF	2
#define ES8323_CHIPPOWER_ADCDLL_OFF	3
#define ES8323_CHIPPOWER_DACSTM_RESET	4
#define ES8323_CHIPPOWER_ADCSTM_RESET	5
#define ES8323_CHIPPOWER_DACDIG_OFF	6
#define ES8323_CHIPPOWER_ADCDIG_OFF	7

#define ES8323_ADCPOWER		0x03

#define ES8323_ADCPOWER_INT1LP		BIT(0)
#define ES8323_ADCPOWER_FLASHLP		BIT(1)
#define ES8323_ADCPOWER_PDNADCBIS	BIT(2)
#define ES8323_ADCPOWER_PDNMICB		BIT(3)

#define ES8323_ADCPOWER_PDNADCBIS_OFF	2
#define ES8323_ADCPOWER_PDNMICB_OFF	3
#define ES8323_ADCPOWER_PDNADCR_OFF	4
#define ES8323_ADCPOWER_PDNADCL_OFF	5
#define ES8323_ADCPOWER_PDNAINR_OFF	6
#define ES8323_ADCPOWER_PDNAINL_OFF	7

#define ES8323_DACPOWER		0x04

#define ES8323_DACPOWER_ROUT2_OFF	2
#define ES8323_DACPOWER_LOUT2_OFF	3
#define ES8323_DACPOWER_ROUT1_OFF	4
#define ES8323_DACPOWER_LOUT1_OFF	5
#define ES8323_DACPOWER_PDNDACR_OFF	6
#define ES8323_DACPOWER_PDNDACL_OFF	7

#define ES8323_CHIPLOPOW1	0x05
#define ES8323_CHIPLOPOW2	0x06
#define ES8323_ANAVOLMANAG	0x07
#define ES8323_MASTERMODE	0x08

#define ES8323_MASTERMODE_BCLKDIV	GENMASK(4, 0)
#define ES8323_MASTERMODE_BCLKINV	BIT(5)
#define ES8323_MASTERMODE_MCLKDIV2	BIT(6)
#define ES8323_MASTERMODE_MSC		BIT(7)

/* ADC Control */
#define ES8323_ADCCONTROL1	0x09

#define ES8323_ADCCONTROL1_MICAMPR_OFF	0
#define ES8323_ADCCONTROL1_MICAMPL_OFF	4

#define ES8323_ADCCONTROL2	0x0a
#define ES8323_ADCCONTROL3	0x0b
#define ES8323_ADCCONTROL4	0x0c

#define ES8323_ADCCONTROL4_ADCFORMAT	GENMASK(1, 0)
#define ES8323_FMT_I2S			0x0
#define ES8323_FMT_LEFT_J		0x1
#define ES8323_FMT_RIGHT_J		0x2
#define ES8323_FMT_DSP			0x3
#define ES8323_ADCCONTROL4_ADCWL	GENMASK(4, 2)
#define ES8323_S24_LE			0x0
#define ES8323_S20_LE			0x1
#define ES8323_S18_LE			0x2
#define ES8323_S16_LE			0x3
#define ES8323_S32_LE			0x4
#define ES8323_ADCCONTROL4_ADCLRP	BIT(5)
#define ES8323_ADCCONTROL4_DATSEL	GENMASK(7, 6)

#define ES8323_ADCCONTROL5	0x0d

#define ES8323_ADCCONTROL5_ADCFSRATIO	GENMASK(4, 0)
#define ES8323_ADCCONTROL5_ADCFSMODE	BIT(5)
#define ES8323_ADCCONTROL5_ADCFS_MASK	(ES8323_ADCCONTROL5_ADCFSRATIO |\
					 ES8323_ADCCONTROL5_ADCFSMODE)

#define ES8323_ADCCONTROL6	0x0e
#define ES8323_ADCCONTROL7	0x0f

#define ES8323_ADCCONTROL7_ADCMUTE_OFF	2

#define ES8323_LADC_VOL		0x10
#define ES8323_RADC_VOL		0x11

Annotation

Implementation Notes