brintos

brintos / linux-shallow public Read only

0
0
Text · 6.3 KiB · 80bf560 Raw
235 lines · c
1/* SPDX-License-Identifier: GPL-2.0-or-later */2/*3 * Codec driver for ST STA350 2.1-channel high-efficiency digital audio system4 *5 * Copyright: 2011 Raumfeld GmbH6 * Author: Sven Brandau <info@brandau.biz>7 *8 * based on code from:9 *      Raumfeld GmbH10 *        Johannes Stezenbach <js@sig21.net>11 *	Wolfson Microelectronics PLC.12 *	  Mark Brown <broonie@opensource.wolfsonmicro.com>13 */14#ifndef _ASOC_STA_350_H15#define _ASOC_STA_350_H16 17/* STA350 register addresses */18 19#define STA350_REGISTER_COUNT	0x4D20#define STA350_COEF_COUNT 6221 22#define STA350_CONFA	0x0023#define STA350_CONFB    0x0124#define STA350_CONFC    0x0225#define STA350_CONFD    0x0326#define STA350_CONFE    0x0427#define STA350_CONFF    0x0528#define STA350_MMUTE    0x0629#define STA350_MVOL     0x0730#define STA350_C1VOL    0x0831#define STA350_C2VOL    0x0932#define STA350_C3VOL    0x0a33#define STA350_AUTO1    0x0b34#define STA350_AUTO2    0x0c35#define STA350_AUTO3    0x0d36#define STA350_C1CFG    0x0e37#define STA350_C2CFG    0x0f38#define STA350_C3CFG    0x1039#define STA350_TONE     0x1140#define STA350_L1AR     0x1241#define STA350_L1ATRT   0x1342#define STA350_L2AR     0x1443#define STA350_L2ATRT   0x1544#define STA350_CFADDR2  0x1645#define STA350_B1CF1    0x1746#define STA350_B1CF2    0x1847#define STA350_B1CF3    0x1948#define STA350_B2CF1    0x1a49#define STA350_B2CF2    0x1b50#define STA350_B2CF3    0x1c51#define STA350_A1CF1    0x1d52#define STA350_A1CF2    0x1e53#define STA350_A1CF3    0x1f54#define STA350_A2CF1    0x2055#define STA350_A2CF2    0x2156#define STA350_A2CF3    0x2257#define STA350_B0CF1    0x2358#define STA350_B0CF2    0x2459#define STA350_B0CF3    0x2560#define STA350_CFUD     0x2661#define STA350_MPCC1    0x2762#define STA350_MPCC2    0x2863#define STA350_DCC1     0x2964#define STA350_DCC2     0x2a65#define STA350_FDRC1    0x2b66#define STA350_FDRC2    0x2c67#define STA350_STATUS   0x2d68/* reserved: 0x2d - 0x30 */69#define STA350_EQCFG    0x3170#define STA350_EATH1    0x3271#define STA350_ERTH1    0x3372#define STA350_EATH2    0x3473#define STA350_ERTH2    0x3574#define STA350_CONFX    0x3675#define STA350_SVCA     0x3776#define STA350_SVCB     0x3877#define STA350_RMS0A    0x3978#define STA350_RMS0B    0x3a79#define STA350_RMS0C    0x3b80#define STA350_RMS1A    0x3c81#define STA350_RMS1B    0x3d82#define STA350_RMS1C    0x3e83#define STA350_EVOLRES  0x3f84/* reserved: 0x40 - 0x47 */85#define STA350_NSHAPE   0x4886#define STA350_CTXB4B1  0x4987#define STA350_CTXB7B5  0x4a88#define STA350_MISC1    0x4b89#define STA350_MISC2    0x4c90 91/* 0x00 CONFA */92#define STA350_CONFA_MCS_MASK	0x0393#define STA350_CONFA_MCS_SHIFT	094#define STA350_CONFA_IR_MASK	0x1895#define STA350_CONFA_IR_SHIFT	396#define STA350_CONFA_TWRB	BIT(5)97#define STA350_CONFA_TWAB	BIT(6)98#define STA350_CONFA_FDRB	BIT(7)99 100/* 0x01 CONFB */101#define STA350_CONFB_SAI_MASK	0x0f102#define STA350_CONFB_SAI_SHIFT	0103#define STA350_CONFB_SAIFB	BIT(4)104#define STA350_CONFB_DSCKE	BIT(5)105#define STA350_CONFB_C1IM	BIT(6)106#define STA350_CONFB_C2IM	BIT(7)107 108/* 0x02 CONFC */109#define STA350_CONFC_OM_MASK	0x03110#define STA350_CONFC_OM_SHIFT	0111#define STA350_CONFC_CSZ_MASK	0x3c112#define STA350_CONFC_CSZ_SHIFT	2113#define STA350_CONFC_OCRB	BIT(7)114 115/* 0x03 CONFD */116#define STA350_CONFD_HPB_SHIFT	0117#define STA350_CONFD_DEMP_SHIFT	1118#define STA350_CONFD_DSPB_SHIFT	2119#define STA350_CONFD_PSL_SHIFT	3120#define STA350_CONFD_BQL_SHIFT	4121#define STA350_CONFD_DRC_SHIFT	5122#define STA350_CONFD_ZDE_SHIFT	6123#define STA350_CONFD_SME_SHIFT	7124 125/* 0x04 CONFE */126#define STA350_CONFE_MPCV	BIT(0)127#define STA350_CONFE_MPCV_SHIFT	0128#define STA350_CONFE_MPC	BIT(1)129#define STA350_CONFE_MPC_SHIFT	1130#define STA350_CONFE_NSBW	BIT(2)131#define STA350_CONFE_NSBW_SHIFT	2132#define STA350_CONFE_AME	BIT(3)133#define STA350_CONFE_AME_SHIFT	3134#define STA350_CONFE_PWMS	BIT(4)135#define STA350_CONFE_PWMS_SHIFT	4136#define STA350_CONFE_DCCV	BIT(5)137#define STA350_CONFE_DCCV_SHIFT	5138#define STA350_CONFE_ZCE	BIT(6)139#define STA350_CONFE_ZCE_SHIFT	6140#define STA350_CONFE_SVE	BIT(7)141#define STA350_CONFE_SVE_SHIFT	7142 143/* 0x05 CONFF */144#define STA350_CONFF_OCFG_MASK	0x03145#define STA350_CONFF_OCFG_SHIFT	0146#define STA350_CONFF_IDE	BIT(2)147#define STA350_CONFF_BCLE	BIT(3)148#define STA350_CONFF_LDTE	BIT(4)149#define STA350_CONFF_ECLE	BIT(5)150#define STA350_CONFF_PWDN	BIT(6)151#define STA350_CONFF_EAPD	BIT(7)152 153/* 0x06 MMUTE */154#define STA350_MMUTE_MMUTE		0x01155#define STA350_MMUTE_MMUTE_SHIFT	0156#define STA350_MMUTE_C1M		0x02157#define STA350_MMUTE_C1M_SHIFT		1158#define STA350_MMUTE_C2M		0x04159#define STA350_MMUTE_C2M_SHIFT		2160#define STA350_MMUTE_C3M		0x08161#define STA350_MMUTE_C3M_SHIFT		3162#define STA350_MMUTE_LOC_MASK		0xC0163#define STA350_MMUTE_LOC_SHIFT		6164 165/* 0x0b AUTO1 */166#define STA350_AUTO1_AMGC_MASK	0x30167#define STA350_AUTO1_AMGC_SHIFT	4168 169/* 0x0c AUTO2 */170#define STA350_AUTO2_AMAME	0x01171#define STA350_AUTO2_AMAM_MASK	0x0e172#define STA350_AUTO2_AMAM_SHIFT	1173#define STA350_AUTO2_XO_MASK	0xf0174#define STA350_AUTO2_XO_SHIFT	4175 176/* 0x0d AUTO3 */177#define STA350_AUTO3_PEQ_MASK	0x1f178#define STA350_AUTO3_PEQ_SHIFT	0179 180/* 0x0e 0x0f 0x10 CxCFG */181#define STA350_CxCFG_TCB_SHIFT	0182#define STA350_CxCFG_EQBP_SHIFT	1183#define STA350_CxCFG_VBP_SHIFT	2184#define STA350_CxCFG_BO_SHIFT	3185#define STA350_CxCFG_LS_SHIFT	4186#define STA350_CxCFG_OM_MASK	0xc0187#define STA350_CxCFG_OM_SHIFT	6188 189/* 0x11 TONE */190#define STA350_TONE_BTC_SHIFT	0191#define STA350_TONE_TTC_SHIFT	4192 193/* 0x12 0x13 0x14 0x15 limiter attack/release */194#define STA350_LxA_SHIFT	0195#define STA350_LxR_SHIFT	4196 197/* 0x26 CFUD */198#define STA350_CFUD_W1		0x01199#define STA350_CFUD_WA		0x02200#define STA350_CFUD_R1		0x04201#define STA350_CFUD_RA		0x08202 203 204/* biquad filter coefficient table offsets */205#define STA350_C1_BQ_BASE	0206#define STA350_C2_BQ_BASE	20207#define STA350_CH_BQ_NUM	4208#define STA350_BQ_NUM_COEF	5209#define STA350_XO_HP_BQ_BASE	40210#define STA350_XO_LP_BQ_BASE	45211#define STA350_C1_PRESCALE	50212#define STA350_C2_PRESCALE	51213#define STA350_C1_POSTSCALE	52214#define STA350_C2_POSTSCALE	53215#define STA350_C3_POSTSCALE	54216#define STA350_TW_POSTSCALE	55217#define STA350_C1_MIX1		56218#define STA350_C1_MIX2		57219#define STA350_C2_MIX1		58220#define STA350_C2_MIX2		59221#define STA350_C3_MIX1		60222#define STA350_C3_MIX2		61223 224/* miscellaneous register 1 */225#define STA350_MISC1_CPWMEN	BIT(2)226#define STA350_MISC1_BRIDGOFF	BIT(5)227#define STA350_MISC1_NSHHPEN	BIT(6)228#define STA350_MISC1_RPDNEN	BIT(7)229 230/* miscellaneous register 2 */231#define STA350_MISC2_PNDLSL_MASK	0x1c232#define STA350_MISC2_PNDLSL_SHIFT	2233 234#endif /* _ASOC_STA_350_H */235