brintos

brintos / linux-shallow public Read only

0
0
Text · 5.4 KiB · 1b90d74 Raw
208 lines · c
1/* SPDX-License-Identifier: GPL-2.0-or-later */2/*3 * Codec driver for ST STA32x 2.1-channel high-efficiency digital audio system4 *5 * Copyright: 2011 Raumfeld GmbH6 * Author: Johannes Stezenbach <js@sig21.net>7 *8 * based on code from:9 *	Wolfson Microelectronics PLC.10 *	Mark Brown <broonie@opensource.wolfsonmicro.com>11 */12#ifndef _ASOC_STA_32X_H13#define _ASOC_STA_32X_H14 15/* STA326 register addresses */16 17#define STA32X_REGISTER_COUNT	0x2d18#define STA32X_COEF_COUNT 6219 20#define STA32X_CONFA	0x0021#define STA32X_CONFB    0x0122#define STA32X_CONFC    0x0223#define STA32X_CONFD    0x0324#define STA32X_CONFE    0x0425#define STA32X_CONFF    0x0526#define STA32X_MMUTE    0x0627#define STA32X_MVOL     0x0728#define STA32X_C1VOL    0x0829#define STA32X_C2VOL    0x0930#define STA32X_C3VOL    0x0a31#define STA32X_AUTO1    0x0b32#define STA32X_AUTO2    0x0c33#define STA32X_AUTO3    0x0d34#define STA32X_C1CFG    0x0e35#define STA32X_C2CFG    0x0f36#define STA32X_C3CFG    0x1037#define STA32X_TONE     0x1138#define STA32X_L1AR     0x1239#define STA32X_L1ATRT   0x1340#define STA32X_L2AR     0x1441#define STA32X_L2ATRT   0x1542#define STA32X_CFADDR2  0x1643#define STA32X_B1CF1    0x1744#define STA32X_B1CF2    0x1845#define STA32X_B1CF3    0x1946#define STA32X_B2CF1    0x1a47#define STA32X_B2CF2    0x1b48#define STA32X_B2CF3    0x1c49#define STA32X_A1CF1    0x1d50#define STA32X_A1CF2    0x1e51#define STA32X_A1CF3    0x1f52#define STA32X_A2CF1    0x2053#define STA32X_A2CF2    0x2154#define STA32X_A2CF3    0x2255#define STA32X_B0CF1    0x2356#define STA32X_B0CF2    0x2457#define STA32X_B0CF3    0x2558#define STA32X_CFUD     0x2659#define STA32X_MPCC1    0x2760#define STA32X_MPCC2    0x2861/* Reserved 0x29 */62/* Reserved 0x2a */63#define STA32X_Reserved 0x2a64#define STA32X_FDRC1    0x2b65#define STA32X_FDRC2    0x2c66/* Reserved 0x2d */67 68 69/* STA326 register field definitions */70 71/* 0x00 CONFA */72#define STA32X_CONFA_MCS_MASK	0x0373#define STA32X_CONFA_MCS_SHIFT	074#define STA32X_CONFA_IR_MASK	0x1875#define STA32X_CONFA_IR_SHIFT	376#define STA32X_CONFA_TWRB	0x2077#define STA32X_CONFA_TWAB	0x4078#define STA32X_CONFA_FDRB	0x8079 80/* 0x01 CONFB */81#define STA32X_CONFB_SAI_MASK	0x0f82#define STA32X_CONFB_SAI_SHIFT	083#define STA32X_CONFB_SAIFB	0x1084#define STA32X_CONFB_DSCKE	0x2085#define STA32X_CONFB_C1IM	0x4086#define STA32X_CONFB_C2IM	0x8087 88/* 0x02 CONFC */89#define STA32X_CONFC_OM_MASK	0x0390#define STA32X_CONFC_OM_SHIFT	091#define STA32X_CONFC_CSZ_MASK	0x7c92#define STA32X_CONFC_CSZ_SHIFT	293 94/* 0x03 CONFD */95#define STA32X_CONFD_HPB	0x0196#define STA32X_CONFD_HPB_SHIFT	097#define STA32X_CONFD_DEMP	0x0298#define STA32X_CONFD_DEMP_SHIFT	199#define STA32X_CONFD_DSPB	0x04100#define STA32X_CONFD_DSPB_SHIFT	2101#define STA32X_CONFD_PSL	0x08102#define STA32X_CONFD_PSL_SHIFT	3103#define STA32X_CONFD_BQL	0x10104#define STA32X_CONFD_BQL_SHIFT	4105#define STA32X_CONFD_DRC	0x20106#define STA32X_CONFD_DRC_SHIFT	5107#define STA32X_CONFD_ZDE	0x40108#define STA32X_CONFD_ZDE_SHIFT	6109#define STA32X_CONFD_MME	0x80110#define STA32X_CONFD_MME_SHIFT	7111 112/* 0x04 CONFE */113#define STA32X_CONFE_MPCV	0x01114#define STA32X_CONFE_MPCV_SHIFT	0115#define STA32X_CONFE_MPC	0x02116#define STA32X_CONFE_MPC_SHIFT	1117#define STA32X_CONFE_AME	0x08118#define STA32X_CONFE_AME_SHIFT	3119#define STA32X_CONFE_PWMS	0x10120#define STA32X_CONFE_PWMS_SHIFT	4121#define STA32X_CONFE_ZCE	0x40122#define STA32X_CONFE_ZCE_SHIFT	6123#define STA32X_CONFE_SVE	0x80124#define STA32X_CONFE_SVE_SHIFT	7125 126/* 0x05 CONFF */127#define STA32X_CONFF_OCFG_MASK	0x03128#define STA32X_CONFF_OCFG_SHIFT	0129#define STA32X_CONFF_IDE	0x04130#define STA32X_CONFF_IDE_SHIFT	2131#define STA32X_CONFF_BCLE	0x08132#define STA32X_CONFF_ECLE	0x20133#define STA32X_CONFF_PWDN	0x40134#define STA32X_CONFF_EAPD	0x80135 136/* 0x06 MMUTE */137#define STA32X_MMUTE_MMUTE	0x01138 139/* 0x0b AUTO1 */140#define STA32X_AUTO1_AMEQ_MASK	0x03141#define STA32X_AUTO1_AMEQ_SHIFT	0142#define STA32X_AUTO1_AMV_MASK	0xc0143#define STA32X_AUTO1_AMV_SHIFT	2144#define STA32X_AUTO1_AMGC_MASK	0x30145#define STA32X_AUTO1_AMGC_SHIFT	4146#define STA32X_AUTO1_AMPS	0x80147 148/* 0x0c AUTO2 */149#define STA32X_AUTO2_AMAME	0x01150#define STA32X_AUTO2_AMAM_MASK	0x0e151#define STA32X_AUTO2_AMAM_SHIFT	1152#define STA32X_AUTO2_XO_MASK	0xf0153#define STA32X_AUTO2_XO_SHIFT	4154 155/* 0x0d AUTO3 */156#define STA32X_AUTO3_PEQ_MASK	0x1f157#define STA32X_AUTO3_PEQ_SHIFT	0158 159/* 0x0e 0x0f 0x10 CxCFG */160#define STA32X_CxCFG_TCB	0x01	/* only C1 and C2 */161#define STA32X_CxCFG_TCB_SHIFT	0162#define STA32X_CxCFG_EQBP	0x02	/* only C1 and C2 */163#define STA32X_CxCFG_EQBP_SHIFT	1164#define STA32X_CxCFG_VBP	0x03165#define STA32X_CxCFG_VBP_SHIFT	2166#define STA32X_CxCFG_BO		0x04167#define STA32X_CxCFG_LS_MASK	0x30168#define STA32X_CxCFG_LS_SHIFT	4169#define STA32X_CxCFG_OM_MASK	0xc0170#define STA32X_CxCFG_OM_SHIFT	6171 172/* 0x11 TONE */173#define STA32X_TONE_BTC_SHIFT	0174#define STA32X_TONE_TTC_SHIFT	4175 176/* 0x12 0x13 0x14 0x15 limiter attack/release */177#define STA32X_LxA_SHIFT	0178#define STA32X_LxR_SHIFT	4179 180/* 0x26 CFUD */181#define STA32X_CFUD_W1		0x01182#define STA32X_CFUD_WA		0x02183#define STA32X_CFUD_R1		0x04184#define STA32X_CFUD_RA		0x08185 186 187/* biquad filter coefficient table offsets */188#define STA32X_C1_BQ_BASE	0189#define STA32X_C2_BQ_BASE	20190#define STA32X_CH_BQ_NUM	4191#define STA32X_BQ_NUM_COEF	5192#define STA32X_XO_HP_BQ_BASE	40193#define STA32X_XO_LP_BQ_BASE	45194#define STA32X_C1_PRESCALE	50195#define STA32X_C2_PRESCALE	51196#define STA32X_C1_POSTSCALE	52197#define STA32X_C2_POSTSCALE	53198#define STA32X_C3_POSTSCALE	54199#define STA32X_TW_POSTSCALE	55200#define STA32X_C1_MIX1		56201#define STA32X_C1_MIX2		57202#define STA32X_C2_MIX1		58203#define STA32X_C2_MIX2		59204#define STA32X_C3_MIX1		60205#define STA32X_C3_MIX2		61206 207#endif /* _ASOC_STA_32X_H */208