brintos

brintos / linux-shallow public Read only

0
0
Text · 3.8 KiB · 0226be4 Raw
123 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * ALSA SoC TLV320AIC23 codec driver4 *5 * Author:      Arun KS, <arunks@mistralsolutions.com>6 * Copyright:   (C) 2008 Mistral Solutions Pvt Ltd7 */8 9#ifndef _TLV320AIC23_H10#define _TLV320AIC23_H11 12struct device;13struct regmap_config;14 15extern const struct regmap_config tlv320aic23_regmap;16int tlv320aic23_probe(struct device *dev, struct regmap *regmap);17 18/* Codec TLV320AIC23 */19#define TLV320AIC23_LINVOL		0x0020#define TLV320AIC23_RINVOL		0x0121#define TLV320AIC23_LCHNVOL		0x0222#define TLV320AIC23_RCHNVOL		0x0323#define TLV320AIC23_ANLG		0x0424#define TLV320AIC23_DIGT		0x0525#define TLV320AIC23_PWR			0x0626#define TLV320AIC23_DIGT_FMT		0x0727#define TLV320AIC23_SRATE		0x0828#define TLV320AIC23_ACTIVE		0x0929#define TLV320AIC23_RESET		0x0F30 31/* Left (right) line input volume control register */32#define TLV320AIC23_LRS_ENABLED		0x010033#define TLV320AIC23_LIM_MUTED		0x008034#define TLV320AIC23_LIV_DEFAULT		0x001735#define TLV320AIC23_LIV_MAX		0x001f36#define TLV320AIC23_LIV_MIN		0x000037 38/* Left (right) channel headphone volume control register */39#define TLV320AIC23_LZC_ON		0x008040#define TLV320AIC23_LHV_DEFAULT		0x007941#define TLV320AIC23_LHV_MAX		0x007f42#define TLV320AIC23_LHV_MIN		0x000043 44/* Analog audio path control register */45#define TLV320AIC23_STA_REG(x)		((x)<<6)46#define TLV320AIC23_STE_ENABLED		0x002047#define TLV320AIC23_DAC_SELECTED	0x001048#define TLV320AIC23_BYPASS_ON		0x000849#define TLV320AIC23_INSEL_MIC		0x000450#define TLV320AIC23_MICM_MUTED		0x000251#define TLV320AIC23_MICB_20DB		0x000152 53/* Digital audio path control register */54#define TLV320AIC23_DACM_MUTE		0x000855#define TLV320AIC23_DEEMP_32K		0x000256#define TLV320AIC23_DEEMP_44K		0x000457#define TLV320AIC23_DEEMP_48K		0x000658#define TLV320AIC23_ADCHP_ON		0x000159 60/* Power control down register */61#define TLV320AIC23_DEVICE_PWR_OFF  	0x008062#define TLV320AIC23_CLK_OFF		0x004063#define TLV320AIC23_OSC_OFF		0x002064#define TLV320AIC23_OUT_OFF		0x001065#define TLV320AIC23_DAC_OFF		0x000866#define TLV320AIC23_ADC_OFF		0x000467#define TLV320AIC23_MIC_OFF		0x000268#define TLV320AIC23_LINE_OFF		0x000169 70/* Digital audio interface register */71#define TLV320AIC23_MS_MASTER		0x004072#define TLV320AIC23_LRSWAP_ON		0x002073#define TLV320AIC23_LRP_ON		0x001074#define TLV320AIC23_IWL_16		0x000075#define TLV320AIC23_IWL_20		0x000476#define TLV320AIC23_IWL_24		0x000877#define TLV320AIC23_IWL_32		0x000C78#define TLV320AIC23_FOR_I2S		0x000279#define TLV320AIC23_FOR_DSP		0x000380#define TLV320AIC23_FOR_LJUST		0x000181 82/* Sample rate control register */83#define TLV320AIC23_CLKOUT_HALF		0x008084#define TLV320AIC23_CLKIN_HALF		0x004085#define TLV320AIC23_BOSR_384fs		0x0002	/* BOSR_272fs in USB mode */86#define TLV320AIC23_USB_CLK_ON		0x000187#define TLV320AIC23_SR_MASK             0xf88#define TLV320AIC23_CLKOUT_SHIFT        789#define TLV320AIC23_CLKIN_SHIFT         690#define TLV320AIC23_SR_SHIFT            291#define TLV320AIC23_BOSR_SHIFT          192 93/* Digital interface register */94#define TLV320AIC23_ACT_ON		0x000195 96/*97 * AUDIO related MACROS98 */99 100#define TLV320AIC23_DEFAULT_OUT_VOL	0x70101#define TLV320AIC23_DEFAULT_IN_VOLUME	0x10102 103#define TLV320AIC23_OUT_VOL_MIN		TLV320AIC23_LHV_MIN104#define TLV320AIC23_OUT_VOL_MAX		TLV320AIC23_LHV_MAX105#define TLV320AIC23_OUT_VO_RANGE	(TLV320AIC23_OUT_VOL_MAX - \106					TLV320AIC23_OUT_VOL_MIN)107#define TLV320AIC23_OUT_VOL_MASK	TLV320AIC23_OUT_VOL_MAX108 109#define TLV320AIC23_IN_VOL_MIN		TLV320AIC23_LIV_MIN110#define TLV320AIC23_IN_VOL_MAX		TLV320AIC23_LIV_MAX111#define TLV320AIC23_IN_VOL_RANGE	(TLV320AIC23_IN_VOL_MAX - \112					TLV320AIC23_IN_VOL_MIN)113#define TLV320AIC23_IN_VOL_MASK		TLV320AIC23_IN_VOL_MAX114 115#define TLV320AIC23_SIDETONE_MASK	0x1c0116#define TLV320AIC23_SIDETONE_0		0x100117#define TLV320AIC23_SIDETONE_6		0x000118#define TLV320AIC23_SIDETONE_9		0x040119#define TLV320AIC23_SIDETONE_12		0x080120#define TLV320AIC23_SIDETONE_18		0x0c0121 122#endif /* _TLV320AIC23_H */123