sound/soc/codecs/cs4349.h

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

File Facts

System
Linux kernel
Corpus path
sound/soc/codecs/cs4349.h
Extension
.h
Size
3373 bytes
Lines
128
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 __CS4349_H__
#define __CS4349_H__

/* CS4349 registers addresses */
#define CS4349_CHIPID		0x01	/* Device and Rev ID, Read Only */
#define CS4349_MODE		0x02	/* Mode Control */
#define CS4349_VMI		0x03	/* Volume, Mixing, Inversion Control */
#define CS4349_MUTE		0x04	/* Mute Control */
#define CS4349_VOLA		0x05	/* DAC Channel A Volume Control */
#define CS4349_VOLB		0x06	/* DAC Channel B Volume Control */
#define CS4349_RMPFLT		0x07	/* Ramp and Filter Control */
#define CS4349_MISC		0x08	/* Power Down,Freeze Control,Pop Stop*/

#define CS4349_I2C_INCR		0x80


/* Device and Revision ID */
#define CS4349_REVA		0xF0	/* Rev A */
#define CS4349_REVB		0xF1	/* Rev B */
#define CS4349_REVC2		0xFF	/* Rev C2 */


/* PDN_DONE Poll Maximum
 * If soft ramp is set it will take much longer to power down
 * the system.
 */
#define PDN_POLL_MAX		900


/* Bitfield Definitions */

/* CS4349_MODE */
/* (Digital Interface Format, De-Emphasis Control, Functional Mode */
#define DIF2			(1 << 6)
#define DIF1			(1 << 5)
#define DIF0			(1 << 4)
#define DEM1			(1 << 3)
#define DEM0			(1 << 2)
#define FM1			(1 << 1)
#define DIF_LEFT_JST		0x00
#define DIF_I2S			0x01
#define DIF_RGHT_JST16		0x02
#define DIF_RGHT_JST24		0x03
#define DIF_TDM0		0x04
#define DIF_TDM1		0x05
#define DIF_TDM2		0x06
#define DIF_TDM3		0x07
#define DIF_MASK		0x70
#define MODE_FORMAT(x)		(((x)&7)<<4)
#define DEM_MASK		0x0C
#define NO_DEM			0x00
#define DEM_441			0x04
#define DEM_48K			0x08
#define DEM_32K			0x0C
#define FM_AUTO			0x00
#define FM_SNGL			0x01
#define FM_DBL			0x02
#define FM_QUAD			0x03
#define FM_SNGL_MIN		30000
#define FM_SNGL_MAX		54000
#define FM_DBL_MAX		108000
#define FM_QUAD_MAX		216000
#define FM_MASK			0x03

/* CS4349_VMI (VMI = Volume, Mixing and Inversion Controls) */
#define VOLBISA			(1 << 7)
#define VOLAISB			(1 << 7)
/* INVERT_A only available for Left Jstfd, Right Jstfd16 and Right Jstfd24 */
#define INVERT_A		(1 << 6)
/* INVERT_B only available for Left Jstfd, Right Jstfd16 and Right Jstfd24 */
#define INVERT_B		(1 << 5)
#define ATAPI3			(1 << 3)
#define ATAPI2			(1 << 2)
#define ATAPI1			(1 << 1)
#define ATAPI0			(1 << 0)
#define MUTEAB			0x00
#define MUTEA_RIGHTB		0x01
#define MUTEA_LEFTB		0x02
#define MUTEA_SUMLRDIV2B	0x03
#define RIGHTA_MUTEB		0x04
#define RIGHTA_RIGHTB		0x05
#define RIGHTA_LEFTB		0x06
#define RIGHTA_SUMLRDIV2B	0x07
#define LEFTA_MUTEB		0x08
#define LEFTA_RIGHTB		0x09	/* Default */
#define LEFTA_LEFTB		0x0A
#define LEFTA_SUMLRDIV2B	0x0B
#define SUMLRDIV2A_MUTEB	0x0C
#define SUMLRDIV2A_RIGHTB	0x0D
#define SUMLRDIV2A_LEFTB	0x0E

Annotation

Implementation Notes