cregit-Linux how code gets into the kernel

Release 4.7 sound/soc/codecs/cs4349.h

Directory: sound/soc/codecs
/*
 * ALSA SoC CS4349 codec driver
 *
 * Copyright 2015 Cirrus Logic, Inc.
 *
 * Author: Tim Howe <Tim.Howe@cirrus.com>
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * version 2 as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 *
 */

#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

#define SUMLRDIV2_AB		0x0F

#define CHMIX_MASK		0x0F

/* CS4349_MUTE */

#define AUTOMUTE		(1 << 7)

#define MUTEC_AB		(1 << 5)

#define MUTE_A			(1 << 4)

#define MUTE_B			(1 << 3)

#define MUTE_AB_MASK		0x18

/* CS4349_RMPFLT (Ramp and Filter Control) */

#define SCZ1			(1 << 7)

#define SCZ0			(1 << 6)

#define RMP_UP			(1 << 5)

#define RMP_DN			(1 << 4)

#define FILT_SEL		(1 << 2)

#define IMMDT_CHNG		0x31

#define ZEROCRSS		0x71

#define SOFT_RMP		0xB1

#define SFTRMP_ZEROCRSS		0xF1

#define SR_ZC_MASK		0xC0

/* CS4349_MISC */

#define PWR_DWN			(1 << 7)

#define FREEZE			(1 << 5)

#define POPG_EN			(1 << 4)

#endif	/* __CS4349_H__ */

Overall Contributors

PersonTokensPropCommitsCommitProp
tim howetim howe381100.00%1100.00%
Total381100.00%1100.00%
Directory: sound/soc/codecs
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
{% endraw %}