Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * max98925.h -- MAX98925 ALSA SoC Audio driver
0004  *
0005  * Copyright 2013-2015 Maxim Integrated Products
0006  */
0007 
0008 #ifndef _MAX98925_H
0009 #define _MAX98925_H
0010 
0011 #define MAX98925_VERSION    0x51
0012 #define MAX98925_VERSION1   0x80
0013 #define MAX98925_VBAT_DATA      0x00
0014 #define MAX98925_VBST_DATA      0x01
0015 #define MAX98925_LIVE_STATUS0       0x02
0016 #define MAX98925_LIVE_STATUS1       0x03
0017 #define MAX98925_LIVE_STATUS2       0x04
0018 #define MAX98925_STATE0         0x05
0019 #define MAX98925_STATE1         0x06
0020 #define MAX98925_STATE2         0x07
0021 #define MAX98925_FLAG0          0x08
0022 #define MAX98925_FLAG1          0x09
0023 #define MAX98925_FLAG2          0x0A
0024 #define MAX98925_IRQ_ENABLE0        0x0B
0025 #define MAX98925_IRQ_ENABLE1        0x0C
0026 #define MAX98925_IRQ_ENABLE2        0x0D
0027 #define MAX98925_IRQ_CLEAR0     0x0E
0028 #define MAX98925_IRQ_CLEAR1     0x0F
0029 #define MAX98925_IRQ_CLEAR2     0x10
0030 #define MAX98925_MAP0           0x11
0031 #define MAX98925_MAP1           0x12
0032 #define MAX98925_MAP2           0x13
0033 #define MAX98925_MAP3           0x14
0034 #define MAX98925_MAP4           0x15
0035 #define MAX98925_MAP5           0x16
0036 #define MAX98925_MAP6           0x17
0037 #define MAX98925_MAP7           0x18
0038 #define MAX98925_MAP8           0x19
0039 #define MAX98925_DAI_CLK_MODE1      0x1A
0040 #define MAX98925_DAI_CLK_MODE2      0x1B
0041 #define MAX98925_DAI_CLK_DIV_M_MSBS 0x1C
0042 #define MAX98925_DAI_CLK_DIV_M_LSBS 0x1D
0043 #define MAX98925_DAI_CLK_DIV_N_MSBS 0x1E
0044 #define MAX98925_DAI_CLK_DIV_N_LSBS 0x1F
0045 #define MAX98925_FORMAT         0x20
0046 #define MAX98925_TDM_SLOT_SELECT    0x21
0047 #define MAX98925_DOUT_CFG_VMON      0x22
0048 #define MAX98925_DOUT_CFG_IMON      0x23
0049 #define MAX98925_DOUT_CFG_VBAT      0x24
0050 #define MAX98925_DOUT_CFG_VBST      0x25
0051 #define MAX98925_DOUT_CFG_FLAG      0x26
0052 #define MAX98925_DOUT_HIZ_CFG1      0x27
0053 #define MAX98925_DOUT_HIZ_CFG2      0x28
0054 #define MAX98925_DOUT_HIZ_CFG3      0x29
0055 #define MAX98925_DOUT_HIZ_CFG4      0x2A
0056 #define MAX98925_DOUT_DRV_STRENGTH  0x2B
0057 #define MAX98925_FILTERS        0x2C
0058 #define MAX98925_GAIN           0x2D
0059 #define MAX98925_GAIN_RAMPING       0x2E
0060 #define MAX98925_SPK_AMP        0x2F
0061 #define MAX98925_THRESHOLD      0x30
0062 #define MAX98925_ALC_ATTACK     0x31
0063 #define MAX98925_ALC_ATTEN_RLS      0x32
0064 #define MAX98925_ALC_HOLD_RLS       0x33
0065 #define MAX98925_ALC_CONFIGURATION  0x34
0066 #define MAX98925_BOOST_CONVERTER    0x35
0067 #define MAX98925_BLOCK_ENABLE       0x36
0068 #define MAX98925_CONFIGURATION      0x37
0069 #define MAX98925_GLOBAL_ENABLE      0x38
0070 #define MAX98925_BOOST_LIMITER      0x3A
0071 #define MAX98925_REV_VERSION        0xFF
0072 
0073 #define MAX98925_REG_CNT               (MAX98925_R03A_BOOST_LIMITER+1)
0074 
0075 /* MAX98925 Register Bit Fields */
0076 
0077 /* MAX98925_R002_LIVE_STATUS0 */
0078 #define M98925_THERMWARN_STATUS_MASK            (1<<3)
0079 #define M98925_THERMWARN_STATUS_SHIFT           3
0080 #define M98925_THERMWARN_STATUS_WIDTH           1
0081 #define M98925_THERMSHDN_STATUS_MASK            (1<<1)
0082 #define M98925_THERMSHDN_STATUS_SHIFT           1
0083 #define M98925_THERMSHDN_STATUS_WIDTH           1
0084 
0085 /* MAX98925_R003_LIVE_STATUS1 */
0086 #define M98925_SPKCURNT_STATUS_MASK         (1<<5)
0087 #define M98925_SPKCURNT_STATUS_SHIFT            5
0088 #define M98925_SPKCURNT_STATUS_WIDTH            1
0089 #define M98925_WATCHFAIL_STATUS_MASK            (1<<4)
0090 #define M98925_WATCHFAIL_STATUS_SHIFT           4
0091 #define M98925_WATCHFAIL_STATUS_WIDTH           1
0092 #define M98925_ALCINFH_STATUS_MASK          (1<<3)
0093 #define M98925_ALCINFH_STATUS_SHIFT         3
0094 #define M98925_ALCINFH_STATUS_WIDTH         1
0095 #define M98925_ALCACT_STATUS_MASK           (1<<2)
0096 #define M98925_ALCACT_STATUS_SHIFT          2
0097 #define M98925_ALCACT_STATUS_WIDTH          1
0098 #define M98925_ALCMUT_STATUS_MASK           (1<<1)
0099 #define M98925_ALCMUT_STATUS_SHIFT          1
0100 #define M98925_ALCMUT_STATUS_WIDTH          1
0101 #define M98925_ACLP_STATUS_MASK             (1<<0)
0102 #define M98925_ACLP_STATUS_SHIFT            0
0103 #define M98925_ACLP_STATUS_WIDTH            1
0104 
0105 /* MAX98925_R004_LIVE_STATUS2 */
0106 #define M98925_SLOTOVRN_STATUS_MASK         (1<<6)
0107 #define M98925_SLOTOVRN_STATUS_SHIFT            6
0108 #define M98925_SLOTOVRN_STATUS_WIDTH            1
0109 #define M98925_INVALSLOT_STATUS_MASK            (1<<5)
0110 #define M98925_INVALSLOT_STATUS_SHIFT           5
0111 #define M98925_INVALSLOT_STATUS_WIDTH           1
0112 #define M98925_SLOTCNFLT_STATUS_MASK            (1<<4)
0113 #define M98925_SLOTCNFLT_STATUS_SHIFT           4
0114 #define M98925_SLOTCNFLT_STATUS_WIDTH           1
0115 #define M98925_VBSTOVFL_STATUS_MASK         (1<<3)
0116 #define M98925_VBSTOVFL_STATUS_SHIFT            3
0117 #define M98925_VBSTOVFL_STATUS_WIDTH            1
0118 #define M98925_VBATOVFL_STATUS_MASK         (1<<2)
0119 #define M98925_VBATOVFL_STATUS_SHIFT            2
0120 #define M98925_VBATOVFL_STATUS_WIDTH            1
0121 #define M98925_IMONOVFL_STATUS_MASK         (1<<1)
0122 #define M98925_IMONOVFL_STATUS_SHIFT            1
0123 #define M98925_IMONOVFL_STATUS_WIDTH            1
0124 #define M98925_VMONOVFL_STATUS_MASK         (1<<0)
0125 #define M98925_VMONOVFL_STATUS_SHIFT            0
0126 #define M98925_VMONOVFL_STATUS_WIDTH            1
0127 
0128 /* MAX98925_R005_STATE0 */
0129 #define M98925_THERMWARN_END_STATE_MASK         (1<<3)
0130 #define M98925_THERMWARN_END_STATE_SHIFT        3
0131 #define M98925_THERMWARN_END_STATE_WIDTH        1
0132 #define M98925_THERMWARN_BGN_STATE_MASK         (1<<2)
0133 #define M98925_THERMWARN_BGN_STATE_SHIFT        1
0134 #define M98925_THERMWARN_BGN_STATE_WIDTH        1
0135 #define M98925_THERMSHDN_END_STATE_MASK         (1<<1)
0136 #define M98925_THERMSHDN_END_STATE_SHIFT        1
0137 #define M98925_THERMSHDN_END_STATE_WIDTH        1
0138 #define M98925_THERMSHDN_BGN_STATE_MASK         (1<<0)
0139 #define M98925_THERMSHDN_BGN_STATE_SHIFT        0
0140 #define M98925_THERMSHDN_BGN_STATE_WIDTH        1
0141 
0142 /* MAX98925_R006_STATE1 */
0143 #define M98925_SPRCURNT_STATE_MASK          (1<<5)
0144 #define M98925_SPRCURNT_STATE_SHIFT         5
0145 #define M98925_SPRCURNT_STATE_WIDTH         1
0146 #define M98925_WATCHFAIL_STATE_MASK         (1<<4)
0147 #define M98925_WATCHFAIL_STATE_SHIFT            4
0148 #define M98925_WATCHFAIL_STATE_WIDTH            1
0149 #define M98925_ALCINFH_STATE_MASK           (1<<3)
0150 #define M98925_ALCINFH_STATE_SHIFT          3
0151 #define M98925_ALCINFH_STATE_WIDTH          1
0152 #define M98925_ALCACT_STATE_MASK            (1<<2)
0153 #define M98925_ALCACT_STATE_SHIFT           2
0154 #define M98925_ALCACT_STATE_WIDTH           1
0155 #define M98925_ALCMUT_STATE_MASK            (1<<1)
0156 #define M98925_ALCMUT_STATE_SHIFT           1
0157 #define M98925_ALCMUT_STATE_WIDTH           1
0158 #define M98925_ALCP_STATE_MASK              (1<<0)
0159 #define M98925_ALCP_STATE_SHIFT             0
0160 #define M98925_ALCP_STATE_WIDTH             1
0161 
0162 /* MAX98925_R007_STATE2 */
0163 #define M98925_SLOTOVRN_STATE_MASK          (1<<6)
0164 #define M98925_SLOTOVRN_STATE_SHIFT         6
0165 #define M98925_SLOTOVRN_STATE_WIDTH         1
0166 #define M98925_INVALSLOT_STATE_MASK         (1<<5)
0167 #define M98925_INVALSLOT_STATE_SHIFT            5
0168 #define M98925_INVALSLOT_STATE_WIDTH            1
0169 #define M98925_SLOTCNFLT_STATE_MASK         (1<<4)
0170 #define M98925_SLOTCNFLT_STATE_SHIFT            4
0171 #define M98925_SLOTCNFLT_STATE_WIDTH            1
0172 #define M98925_VBSTOVFL_STATE_MASK          (1<<3)
0173 #define M98925_VBSTOVFL_STATE_SHIFT         3
0174 #define M98925_VBSTOVFL_STATE_WIDTH         1
0175 #define M98925_VBATOVFL_STATE_MASK          (1<<2)
0176 #define M98925_VBATOVFL_STATE_SHIFT         2
0177 #define M98925_VBATOVFL_STATE_WIDTH         1
0178 #define M98925_IMONOVFL_STATE_MASK          (1<<1)
0179 #define M98925_IMONOVFL_STATE_SHIFT         1
0180 #define M98925_IMONOVFL_STATE_WIDTH         1
0181 #define M98925_VMONOVFL_STATE_MASK          (1<<0)
0182 #define M98925_VMONOVFL_STATE_SHIFT         0
0183 #define M98925_VMONOVFL_STATE_WIDTH         1
0184 
0185 /* MAX98925_R008_FLAG0 */
0186 #define M98925_THERMWARN_END_FLAG_MASK          (1<<3)
0187 #define M98925_THERMWARN_END_FLAG_SHIFT         3
0188 #define M98925_THERMWARN_END_FLAG_WIDTH         1
0189 #define M98925_THERMWARN_BGN_FLAG_MASK          (1<<2)
0190 #define M98925_THERMWARN_BGN_FLAG_SHIFT         2
0191 #define M98925_THERMWARN_BGN_FLAG_WIDTH         1
0192 #define M98925_THERMSHDN_END_FLAG_MASK          (1<<1)
0193 #define M98925_THERMSHDN_END_FLAG_SHIFT         1
0194 #define M98925_THERMSHDN_END_FLAG_WIDTH         1
0195 #define M98925_THERMSHDN_BGN_FLAG_MASK          (1<<0)
0196 #define M98925_THERMSHDN_BGN_FLAG_SHIFT         0
0197 #define M98925_THERMSHDN_BGN_FLAG_WIDTH         1
0198 
0199 /* MAX98925_R009_FLAG1 */
0200 #define M98925_SPKCURNT_FLAG_MASK           (1<<5)
0201 #define M98925_SPKCURNT_FLAG_SHIFT          5
0202 #define M98925_SPKCURNT_FLAG_WIDTH          1
0203 #define M98925_WATCHFAIL_FLAG_MASK          (1<<4)
0204 #define M98925_WATCHFAIL_FLAG_SHIFT         4
0205 #define M98925_WATCHFAIL_FLAG_WIDTH         1
0206 #define M98925_ALCINFH_FLAG_MASK            (1<<3)
0207 #define M98925_ALCINFH_FLAG_SHIFT           3
0208 #define M98925_ALCINFH_FLAG_WIDTH           1
0209 #define M98925_ALCACT_FLAG_MASK             (1<<2)
0210 #define M98925_ALCACT_FLAG_SHIFT            2
0211 #define M98925_ALCACT_FLAG_WIDTH            1
0212 #define M98925_ALCMUT_FLAG_MASK             (1<<1)
0213 #define M98925_ALCMUT_FLAG_SHIFT            1
0214 #define M98925_ALCMUT_FLAG_WIDTH            1
0215 #define M98925_ALCP_FLAG_MASK               (1<<0)
0216 #define M98925_ALCP_FLAG_SHIFT              0
0217 #define M98925_ALCP_FLAG_WIDTH              1
0218 
0219 /* MAX98925_R00A_FLAG2 */
0220 #define M98925_SLOTOVRN_FLAG_MASK           (1<<6)
0221 #define M98925_SLOTOVRN_FLAG_SHIFT          6
0222 #define M98925_SLOTOVRN_FLAG_WIDTH          1
0223 #define M98925_INVALSLOT_FLAG_MASK          (1<<5)
0224 #define M98925_INVALSLOT_FLAG_SHIFT         5
0225 #define M98925_INVALSLOT_FLAG_WIDTH         1
0226 #define M98925_SLOTCNFLT_FLAG_MASK          (1<<4)
0227 #define M98925_SLOTCNFLT_FLAG_SHIFT         4
0228 #define M98925_SLOTCNFLT_FLAG_WIDTH         1
0229 #define M98925_VBSTOVFL_FLAG_MASK           (1<<3)
0230 #define M98925_VBSTOVFL_FLAG_SHIFT          3
0231 #define M98925_VBSTOVFL_FLAG_WIDTH          1
0232 #define M98925_VBATOVFL_FLAG_MASK           (1<<2)
0233 #define M98925_VBATOVFL_FLAG_SHIFT          2
0234 #define M98925_VBATOVFL_FLAG_WIDTH          1
0235 #define M98925_IMONOVFL_FLAG_MASK           (1<<1)
0236 #define M98925_IMONOVFL_FLAG_SHIFT          1
0237 #define M98925_IMONOVFL_FLAG_WIDTH          1
0238 #define M98925_VMONOVFL_FLAG_MASK           (1<<0)
0239 #define M98925_VMONOVFL_FLAG_SHIFT          0
0240 #define M98925_VMONOVFL_FLAG_WIDTH          1
0241 
0242 /* MAX98925_R00B_IRQ_ENABLE0 */
0243 #define M98925_THERMWARN_END_EN_MASK            (1<<3)
0244 #define M98925_THERMWARN_END_EN_SHIFT           3
0245 #define M98925_THERMWARN_END_EN_WIDTH           1
0246 #define M98925_THERMWARN_BGN_EN_MASK            (1<<2)
0247 #define M98925_THERMWARN_BGN_EN_SHIFT           2
0248 #define M98925_THERMWARN_BGN_EN_WIDTH           1
0249 #define M98925_THERMSHDN_END_EN_MASK            (1<<1)
0250 #define M98925_THERMSHDN_END_EN_SHIFT           1
0251 #define M98925_THERMSHDN_END_EN_WIDTH           1
0252 #define M98925_THERMSHDN_BGN_EN_MASK            (1<<0)
0253 #define M98925_THERMSHDN_BGN_EN_SHIFT           0
0254 #define M98925_THERMSHDN_BGN_EN_WIDTH           1
0255 
0256 /* MAX98925_R00C_IRQ_ENABLE1 */
0257 #define M98925_SPKCURNT_EN_MASK             (1<<5)
0258 #define M98925_SPKCURNT_EN_SHIFT            5
0259 #define M98925_SPKCURNT_EN_WIDTH            1
0260 #define M98925_WATCHFAIL_EN_MASK            (1<<4)
0261 #define M98925_WATCHFAIL_EN_SHIFT           4
0262 #define M98925_WATCHFAIL_EN_WIDTH           1
0263 #define M98925_ALCINFH_EN_MASK              (1<<3)
0264 #define M98925_ALCINFH_EN_SHIFT             3
0265 #define M98925_ALCINFH_EN_WIDTH             1
0266 #define M98925_ALCACT_EN_MASK               (1<<2)
0267 #define M98925_ALCACT_EN_SHIFT              2
0268 #define M98925_ALCACT_EN_WIDTH              1
0269 #define M98925_ALCMUT_EN_MASK               (1<<1)
0270 #define M98925_ALCMUT_EN_SHIFT              1
0271 #define M98925_ALCMUT_EN_WIDTH              1
0272 #define M98925_ALCP_EN_MASK                 (1<<0)
0273 #define M98925_ALCP_EN_SHIFT                0
0274 #define M98925_ALCP_EN_WIDTH                1
0275 
0276 /* MAX98925_R00D_IRQ_ENABLE2 */
0277 #define M98925_SLOTOVRN_EN_MASK                 (1<<6)
0278 #define M98925_SLOTOVRN_EN_SHIFT                6
0279 #define M98925_SLOTOVRN_EN_WIDTH                1
0280 #define M98925_INVALSLOT_EN_MASK                (1<<5)
0281 #define M98925_INVALSLOT_EN_SHIFT               5
0282 #define M98925_INVALSLOT_EN_WIDTH               1
0283 #define M98925_SLOTCNFLT_EN_MASK                (1<<4)
0284 #define M98925_SLOTCNFLT_EN_SHIFT               4
0285 #define M98925_SLOTCNFLT_EN_WIDTH               1
0286 #define M98925_VBSTOVFL_EN_MASK                 (1<<3)
0287 #define M98925_VBSTOVFL_EN_SHIFT                3
0288 #define M98925_VBSTOVFL_EN_WIDTH                1
0289 #define M98925_VBATOVFL_EN_MASK                 (1<<2)
0290 #define M98925_VBATOVFL_EN_SHIFT                2
0291 #define M98925_VBATOVFL_EN_WIDTH                1
0292 #define M98925_IMONOVFL_EN_MASK                 (1<<1)
0293 #define M98925_IMONOVFL_EN_SHIFT                1
0294 #define M98925_IMONOVFL_EN_WIDTH                1
0295 #define M98925_VMONOVFL_EN_MASK                 (1<<0)
0296 #define M98925_VMONOVFL_EN_SHIFT                0
0297 #define M98925_VMONOVFL_EN_WIDTH                1
0298 
0299 /* MAX98925_R00E_IRQ_CLEAR0 */
0300 #define M98925_THERMWARN_END_CLR_MASK           (1<<3)
0301 #define M98925_THERMWARN_END_CLR_SHIFT          3
0302 #define M98925_THERMWARN_END_CLR_WIDTH          1
0303 #define M98925_THERMWARN_BGN_CLR_MASK           (1<<2)
0304 #define M98925_THERMWARN_BGN_CLR_SHIFT          2
0305 #define M98925_THERMWARN_BGN_CLR_WIDTH          1
0306 #define M98925_THERMSHDN_END_CLR_MASK           (1<<1)
0307 #define M98925_THERMSHDN_END_CLR_SHIFT          1
0308 #define M98925_THERMSHDN_END_CLR_WIDTH          1
0309 #define M98925_THERMSHDN_BGN_CLR_MASK           (1<<0)
0310 #define M98925_THERMSHDN_BGN_CLR_SHIFT          0
0311 #define M98925_THERMSHDN_BGN_CLR_WIDTH          1
0312 
0313 /* MAX98925_R00F_IRQ_CLEAR1 */
0314 #define M98925_SPKCURNT_CLR_MASK                (1<<5)
0315 #define M98925_SPKCURNT_CLR_SHIFT               5
0316 #define M98925_SPKCURNT_CLR_WIDTH               1
0317 #define M98925_WATCHFAIL_CLR_MASK               (1<<4)
0318 #define M98925_WATCHFAIL_CLR_SHIFT              4
0319 #define M98925_WATCHFAIL_CLR_WIDTH              1
0320 #define M98925_ALCINFH_CLR_MASK                 (1<<3)
0321 #define M98925_ALCINFH_CLR_SHIFT                3
0322 #define M98925_ALCINFH_CLR_WIDTH                1
0323 #define M98925_ALCACT_CLR_MASK                  (1<<2)
0324 #define M98925_ALCACT_CLR_SHIFT                 2
0325 #define M98925_ALCACT_CLR_WIDTH                 1
0326 #define M98925_ALCMUT_CLR_MASK                  (1<<1)
0327 #define M98925_ALCMUT_CLR_SHIFT                 1
0328 #define M98925_ALCMUT_CLR_WIDTH                 1
0329 #define M98925_ALCP_CLR_MASK                    (1<<0)
0330 #define M98925_ALCP_CLR_SHIFT                   0
0331 #define M98925_ALCP_CLR_WIDTH                   1
0332 
0333 /* MAX98925_R010_IRQ_CLEAR2 */
0334 #define M98925_SLOTOVRN_CLR_MASK                (1<<6)
0335 #define M98925_SLOTOVRN_CLR_SHIFT               6
0336 #define M98925_SLOTOVRN_CLR_WIDTH               1
0337 #define M98925_INVALSLOT_CLR_MASK               (1<<5)
0338 #define M98925_INVALSLOT_CLR_SHIFT              5
0339 #define M98925_INVALSLOT_CLR_WIDTH              1
0340 #define M98925_SLOTCNFLT_CLR_MASK               (1<<4)
0341 #define M98925_SLOTCNFLT_CLR_SHIFT              4
0342 #define M98925_SLOTCNFLT_CLR_WIDTH              1
0343 #define M98925_VBSTOVFL_CLR_MASK                (1<<3)
0344 #define M98925_VBSTOVFL_CLR_SHIFT               3
0345 #define M98925_VBSTOVFL_CLR_WIDTH               1
0346 #define M98925_VBATOVFL_CLR_MASK                (1<<2)
0347 #define M98925_VBATOVFL_CLR_SHIFT               2
0348 #define M98925_VBATOVFL_CLR_WIDTH               1
0349 #define M98925_IMONOVFL_CLR_MASK                (1<<1)
0350 #define M98925_IMONOVFL_CLR_SHIFT               1
0351 #define M98925_IMONOVFL_CLR_WIDTH               1
0352 #define M98925_VMONOVFL_CLR_MASK                (1<<0)
0353 #define M98925_VMONOVFL_CLR_SHIFT               0
0354 #define M98925_VMONOVFL_CLR_WIDTH               1
0355 
0356 /* MAX98925_R011_MAP0 */
0357 #define M98925_ER_THERMWARN_EN_MASK             (1<<7)
0358 #define M98925_ER_THERMWARN_EN_SHIFT            7
0359 #define M98925_ER_THERMWARN_EN_WIDTH            1
0360 #define M98925_ER_THERMWARN_MAP_MASK            (0x07<<4)
0361 #define M98925_ER_THERMWARN_MAP_SHIFT           4
0362 #define M98925_ER_THERMWARN_MAP_WIDTH           3
0363 
0364 /* MAX98925_R012_MAP1 */
0365 #define M98925_ER_ALCMUT_EN_MASK                (1<<7)
0366 #define M98925_ER_ALCMUT_EN_SHIFT               7
0367 #define M98925_ER_ALCMUT_EN_WIDTH               1
0368 #define M98925_ER_ALCMUT_MAP_MASK               (0x07<<4)
0369 #define M98925_ER_ALCMUT_MAP_SHIFT              4
0370 #define M98925_ER_ALCMUT_MAP_WIDTH              3
0371 #define M98925_ER_ALCP_EN_MASK                  (1<<3)
0372 #define M98925_ER_ALCP_EN_SHIFT                 3
0373 #define M98925_ER_ALCP_EN_WIDTH                 1
0374 #define M98925_ER_ALCP_MAP_MASK                 (0x07<<0)
0375 #define M98925_ER_ALCP_MAP_SHIFT                0
0376 #define M98925_ER_ALCP_MAP_WIDTH                3
0377 
0378 /* MAX98925_R013_MAP2 */
0379 #define M98925_ER_ALCINFH_EN_MASK               (1<<7)
0380 #define M98925_ER_ALCINFH_EN_SHIFT              7
0381 #define M98925_ER_ALCINFH_EN_WIDTH              1
0382 #define M98925_ER_ALCINFH_MAP_MASK              (0x07<<4)
0383 #define M98925_ER_ALCINFH_MAP_SHIFT             4
0384 #define M98925_ER_ALCINFH_MAP_WIDTH             3
0385 #define M98925_ER_ALCACT_EN_MASK                (1<<3)
0386 #define M98925_ER_ALCACT_EN_SHIFT               3
0387 #define M98925_ER_ALCACT_EN_WIDTH               1
0388 #define M98925_ER_ALCACT_MAP_MASK               (0x07<<0)
0389 #define M98925_ER_ALCACT_MAP_SHIFT              0
0390 #define M98925_ER_ALCACT_MAP_WIDTH              3
0391 
0392 /* MAX98925_R014_MAP3 */
0393 #define M98925_ER_SPKCURNT_EN_MASK              (1<<7)
0394 #define M98925_ER_SPKCURNT_EN_SHIFT             7
0395 #define M98925_ER_SPKCURNT_EN_WIDTH             1
0396 #define M98925_ER_SPKCURNT_MAP_MASK             (0x07<<4)
0397 #define M98925_ER_SPKCURNT_MAP_SHIFT            4
0398 #define M98925_ER_SPKCURNT_MAP_WIDTH            3
0399 
0400 /* MAX98925_R015_MAP4 */
0401 /* RESERVED */
0402 
0403 /* MAX98925_R016_MAP5 */
0404 #define M98925_ER_IMONOVFL_EN_MASK              (1<<7)
0405 #define M98925_ER_IMONOVFL_EN_SHIFT             7
0406 #define M98925_ER_IMONOVFL_EN_WIDTH             1
0407 #define M98925_ER_IMONOVFL_MAP_MASK             (0x07<<4)
0408 #define M98925_ER_IMONOVFL_MAP_SHIFT            4
0409 #define M98925_ER_IMONOVFL_MAP_WIDTH            3
0410 #define M98925_ER_VMONOVFL_EN_MASK              (1<<3)
0411 #define M98925_ER_VMONOVFL_EN_SHIFT             3
0412 #define M98925_ER_VMONOVFL_EN_WIDTH             1
0413 #define M98925_ER_VMONOVFL_MAP_MASK             (0x07<<0)
0414 #define M98925_ER_VMONOVFL_MAP_SHIFT            0
0415 #define M98925_ER_VMONOVFL_MAP_WIDTH            3
0416 
0417 /* MAX98925_R017_MAP6 */
0418 #define M98925_ER_VBSTOVFL_EN_MASK              (1<<7)
0419 #define M98925_ER_VBSTOVFL_EN_SHIFT             7
0420 #define M98925_ER_VBSTOVFL_EN_WIDTH             1
0421 #define M98925_ER_VBSTOVFL_MAP_MASK             (0x07<<4)
0422 #define M98925_ER_VBSTOVFL_MAP_SHIFT            4
0423 #define M98925_ER_VBSTOVFL_MAP_WIDTH            3
0424 #define M98925_ER_VBATOVFL_EN_MASK              (1<<3)
0425 #define M98925_ER_VBATOVFL_EN_SHIFT             3
0426 #define M98925_ER_VBATOVFL_EN_WIDTH             1
0427 #define M98925_ER_VBATOVFL_MAP_MASK             (0x07<<0)
0428 #define M98925_ER_VBATOVFL_MAP_SHIFT            0
0429 #define M98925_ER_VBATOVFL_MAP_WIDTH            3
0430 
0431 /* MAX98925_R018_MAP7 */
0432 #define M98925_ER_INVALSLOT_EN_MASK             (1<<7)
0433 #define M98925_ER_INVALSLOT_EN_SHIFT            7
0434 #define M98925_ER_INVALSLOT_EN_WIDTH            1
0435 #define M98925_ER_INVALSLOT_MAP_MASK            (0x07<<4)
0436 #define M98925_ER_INVALSLOT_MAP_SHIFT           4
0437 #define M98925_ER_INVALSLOT_MAP_WIDTH           3
0438 #define M98925_ER_SLOTCNFLT_EN_MASK             (1<<3)
0439 #define M98925_ER_SLOTCNFLT_EN_SHIFT            3
0440 #define M98925_ER_SLOTCNFLT_EN_WIDTH            1
0441 #define M98925_ER_SLOTCNFLT_MAP_MASK            (0x07<<0)
0442 #define M98925_ER_SLOTCNFLT_MAP_SHIFT           0
0443 #define M98925_ER_SLOTCNFLT_MAP_WIDTH           3
0444 
0445 /* MAX98925_R019_MAP8 */
0446 #define M98925_ER_SLOTOVRN_EN_MASK  (1<<3)
0447 #define M98925_ER_SLOTOVRN_EN_SHIFT 3
0448 #define M98925_ER_SLOTOVRN_EN_WIDTH 1
0449 #define M98925_ER_SLOTOVRN_MAP_MASK (0x07<<0)
0450 #define M98925_ER_SLOTOVRN_MAP_SHIFT    0
0451 #define M98925_ER_SLOTOVRN_MAP_WIDTH    3
0452 
0453 /* MAX98925_R01A_DAI_CLK_MODE1 */
0454 #define M98925_DAI_CLK_SOURCE_MASK  (1<<6)
0455 #define M98925_DAI_CLK_SOURCE_SHIFT 6
0456 #define M98925_DAI_CLK_SOURCE_WIDTH 1
0457 #define M98925_MDLL_MULT_MASK       (0x0F<<0)
0458 #define M98925_MDLL_MULT_SHIFT      0
0459 #define M98925_MDLL_MULT_WIDTH      4
0460 
0461 #define M98925_MDLL_MULT_MCLKx8     6
0462 #define M98925_MDLL_MULT_MCLKx16    8
0463 
0464 /* MAX98925_R01B_DAI_CLK_MODE2 */
0465 #define M98925_DAI_SR_MASK          (0x0F<<4)
0466 #define M98925_DAI_SR_SHIFT         4
0467 #define M98925_DAI_SR_WIDTH         4
0468 #define M98925_DAI_MAS_MASK         (1<<3)
0469 #define M98925_DAI_MAS_SHIFT            3
0470 #define M98925_DAI_MAS_WIDTH            1
0471 #define M98925_DAI_BSEL_MASK            (0x07<<0)
0472 #define M98925_DAI_BSEL_SHIFT           0
0473 #define M98925_DAI_BSEL_WIDTH           3
0474 
0475 #define M98925_DAI_BSEL_32 (0 << M98925_DAI_BSEL_SHIFT)
0476 #define M98925_DAI_BSEL_48 (1 << M98925_DAI_BSEL_SHIFT)
0477 #define M98925_DAI_BSEL_64 (2 << M98925_DAI_BSEL_SHIFT)
0478 #define M98925_DAI_BSEL_256 (6 << M98925_DAI_BSEL_SHIFT)
0479 
0480 /* MAX98925_R01C_DAI_CLK_DIV_M_MSBS */
0481 #define M98925_DAI_M_MSBS_MASK                  (0xFF<<0)
0482 #define M98925_DAI_M_MSBS_SHIFT                 0
0483 #define M98925_DAI_M_MSBS_WIDTH                 8
0484 
0485 /* MAX98925_R01D_DAI_CLK_DIV_M_LSBS */
0486 #define M98925_DAI_M_LSBS_MASK                  (0xFF<<0)
0487 #define M98925_DAI_M_LSBS_SHIFT                 0
0488 #define M98925_DAI_M_LSBS_WIDTH                 8
0489 
0490 /* MAX98925_R01E_DAI_CLK_DIV_N_MSBS */
0491 #define M98925_DAI_N_MSBS_MASK                  (0x7F<<0)
0492 #define M98925_DAI_N_MSBS_SHIFT                 0
0493 #define M98925_DAI_N_MSBS_WIDTH                 7
0494 
0495 /* MAX98925_R01F_DAI_CLK_DIV_N_LSBS */
0496 #define M98925_DAI_N_LSBS_MASK                  (0xFF<<0)
0497 #define M98925_DAI_N_LSBS_SHIFT                 0
0498 #define M98925_DAI_N_LSBS_WIDTH                 8
0499 
0500 /* MAX98925_R020_FORMAT */
0501 #define M98925_DAI_CHANSZ_MASK                  (0x03<<6)
0502 #define M98925_DAI_CHANSZ_SHIFT                 6
0503 #define M98925_DAI_CHANSZ_WIDTH                 2
0504 #define M98925_DAI_EXTBCLK_HIZ_MASK             (1<<4)
0505 #define M98925_DAI_EXTBCLK_HIZ_SHIFT            4
0506 #define M98925_DAI_EXTBCLK_HIZ_WIDTH            1
0507 #define M98925_DAI_WCI_MASK                     (1<<3)
0508 #define M98925_DAI_WCI_SHIFT                    3
0509 #define M98925_DAI_WCI_WIDTH                    1
0510 #define M98925_DAI_BCI_MASK                     (1<<2)
0511 #define M98925_DAI_BCI_SHIFT                    2
0512 #define M98925_DAI_BCI_WIDTH                    1
0513 #define M98925_DAI_DLY_MASK                     (1<<1)
0514 #define M98925_DAI_DLY_SHIFT                    1
0515 #define M98925_DAI_DLY_WIDTH                    1
0516 #define M98925_DAI_TDM_MASK                     (1<<0)
0517 #define M98925_DAI_TDM_SHIFT                    0
0518 #define M98925_DAI_TDM_WIDTH                    1
0519 
0520 #define M98925_DAI_CHANSZ_16 (1 << M98925_DAI_CHANSZ_SHIFT)
0521 #define M98925_DAI_CHANSZ_24 (2 << M98925_DAI_CHANSZ_SHIFT)
0522 #define M98925_DAI_CHANSZ_32 (3 << M98925_DAI_CHANSZ_SHIFT)
0523 
0524 /* MAX98925_R021_TDM_SLOT_SELECT */
0525 #define M98925_DAI_DO_EN_MASK                   (1<<7)
0526 #define M98925_DAI_DO_EN_SHIFT                  7
0527 #define M98925_DAI_DO_EN_WIDTH                  1
0528 #define M98925_DAI_DIN_EN_MASK                  (1<<6)
0529 #define M98925_DAI_DIN_EN_SHIFT                 6
0530 #define M98925_DAI_DIN_EN_WIDTH                 1
0531 #define M98925_DAI_INR_SOURCE_MASK              (0x07<<3)
0532 #define M98925_DAI_INR_SOURCE_SHIFT             3
0533 #define M98925_DAI_INR_SOURCE_WIDTH             3
0534 #define M98925_DAI_INL_SOURCE_MASK              (0x07<<0)
0535 #define M98925_DAI_INL_SOURCE_SHIFT             0
0536 #define M98925_DAI_INL_SOURCE_WIDTH             3
0537 
0538 /* MAX98925_R022_DOUT_CFG_VMON */
0539 #define M98925_DAI_VMON_EN_MASK                 (1<<5)
0540 #define M98925_DAI_VMON_EN_SHIFT                5
0541 #define M98925_DAI_VMON_EN_WIDTH                1
0542 #define M98925_DAI_VMON_SLOT_MASK               (0x1F<<0)
0543 #define M98925_DAI_VMON_SLOT_SHIFT              0
0544 #define M98925_DAI_VMON_SLOT_WIDTH              5
0545 
0546 #define M98925_DAI_VMON_SLOT_00_01 (0 << M98925_DAI_VMON_SLOT_SHIFT)
0547 #define M98925_DAI_VMON_SLOT_01_02 (1 << M98925_DAI_VMON_SLOT_SHIFT)
0548 #define M98925_DAI_VMON_SLOT_02_03 (2 << M98925_DAI_VMON_SLOT_SHIFT)
0549 #define M98925_DAI_VMON_SLOT_03_04 (3 << M98925_DAI_VMON_SLOT_SHIFT)
0550 #define M98925_DAI_VMON_SLOT_04_05 (4 << M98925_DAI_VMON_SLOT_SHIFT)
0551 #define M98925_DAI_VMON_SLOT_05_06 (5 << M98925_DAI_VMON_SLOT_SHIFT)
0552 #define M98925_DAI_VMON_SLOT_06_07 (6 << M98925_DAI_VMON_SLOT_SHIFT)
0553 #define M98925_DAI_VMON_SLOT_07_08 (7 << M98925_DAI_VMON_SLOT_SHIFT)
0554 #define M98925_DAI_VMON_SLOT_08_09 (8 << M98925_DAI_VMON_SLOT_SHIFT)
0555 #define M98925_DAI_VMON_SLOT_09_0A (9 << M98925_DAI_VMON_SLOT_SHIFT)
0556 #define M98925_DAI_VMON_SLOT_0A_0B (10 << M98925_DAI_VMON_SLOT_SHIFT)
0557 #define M98925_DAI_VMON_SLOT_0B_0C (11 << M98925_DAI_VMON_SLOT_SHIFT)
0558 #define M98925_DAI_VMON_SLOT_0C_0D (12 << M98925_DAI_VMON_SLOT_SHIFT)
0559 #define M98925_DAI_VMON_SLOT_0D_0E (13 << M98925_DAI_VMON_SLOT_SHIFT)
0560 #define M98925_DAI_VMON_SLOT_0E_0F (14 << M98925_DAI_VMON_SLOT_SHIFT)
0561 #define M98925_DAI_VMON_SLOT_0F_10 (15 << M98925_DAI_VMON_SLOT_SHIFT)
0562 #define M98925_DAI_VMON_SLOT_10_11 (16 << M98925_DAI_VMON_SLOT_SHIFT)
0563 #define M98925_DAI_VMON_SLOT_11_12 (17 << M98925_DAI_VMON_SLOT_SHIFT)
0564 #define M98925_DAI_VMON_SLOT_12_13 (18 << M98925_DAI_VMON_SLOT_SHIFT)
0565 #define M98925_DAI_VMON_SLOT_13_14 (19 << M98925_DAI_VMON_SLOT_SHIFT)
0566 #define M98925_DAI_VMON_SLOT_14_15 (20 << M98925_DAI_VMON_SLOT_SHIFT)
0567 #define M98925_DAI_VMON_SLOT_15_16 (21 << M98925_DAI_VMON_SLOT_SHIFT)
0568 #define M98925_DAI_VMON_SLOT_16_17 (22 << M98925_DAI_VMON_SLOT_SHIFT)
0569 #define M98925_DAI_VMON_SLOT_17_18 (23 << M98925_DAI_VMON_SLOT_SHIFT)
0570 #define M98925_DAI_VMON_SLOT_18_19 (24 << M98925_DAI_VMON_SLOT_SHIFT)
0571 #define M98925_DAI_VMON_SLOT_19_1A (25 << M98925_DAI_VMON_SLOT_SHIFT)
0572 #define M98925_DAI_VMON_SLOT_1A_1B (26 << M98925_DAI_VMON_SLOT_SHIFT)
0573 #define M98925_DAI_VMON_SLOT_1B_1C (27 << M98925_DAI_VMON_SLOT_SHIFT)
0574 #define M98925_DAI_VMON_SLOT_1C_1D (28 << M98925_DAI_VMON_SLOT_SHIFT)
0575 #define M98925_DAI_VMON_SLOT_1D_1E (29 << M98925_DAI_VMON_SLOT_SHIFT)
0576 #define M98925_DAI_VMON_SLOT_1E_1F (30 << M98925_DAI_VMON_SLOT_SHIFT)
0577 
0578 /* MAX98925_R023_DOUT_CFG_IMON */
0579 #define M98925_DAI_IMON_EN_MASK                 (1<<5)
0580 #define M98925_DAI_IMON_EN_SHIFT                5
0581 #define M98925_DAI_IMON_EN_WIDTH                1
0582 #define M98925_DAI_IMON_SLOT_MASK               (0x1F<<0)
0583 #define M98925_DAI_IMON_SLOT_SHIFT              0
0584 #define M98925_DAI_IMON_SLOT_WIDTH              5
0585 
0586 #define M98925_DAI_IMON_SLOT_00_01 (0 << M98925_DAI_IMON_SLOT_SHIFT)
0587 #define M98925_DAI_IMON_SLOT_01_02 (1 << M98925_DAI_IMON_SLOT_SHIFT)
0588 #define M98925_DAI_IMON_SLOT_02_03 (2 << M98925_DAI_IMON_SLOT_SHIFT)
0589 #define M98925_DAI_IMON_SLOT_03_04 (3 << M98925_DAI_IMON_SLOT_SHIFT)
0590 #define M98925_DAI_IMON_SLOT_04_05 (4 << M98925_DAI_IMON_SLOT_SHIFT)
0591 #define M98925_DAI_IMON_SLOT_05_06 (5 << M98925_DAI_IMON_SLOT_SHIFT)
0592 #define M98925_DAI_IMON_SLOT_06_07 (6 << M98925_DAI_IMON_SLOT_SHIFT)
0593 #define M98925_DAI_IMON_SLOT_07_08 (7 << M98925_DAI_IMON_SLOT_SHIFT)
0594 #define M98925_DAI_IMON_SLOT_08_09 (8 << M98925_DAI_IMON_SLOT_SHIFT)
0595 #define M98925_DAI_IMON_SLOT_09_0A (9 << M98925_DAI_IMON_SLOT_SHIFT)
0596 #define M98925_DAI_IMON_SLOT_0A_0B (10 << M98925_DAI_IMON_SLOT_SHIFT)
0597 #define M98925_DAI_IMON_SLOT_0B_0C (11 << M98925_DAI_IMON_SLOT_SHIFT)
0598 #define M98925_DAI_IMON_SLOT_0C_0D (12 << M98925_DAI_IMON_SLOT_SHIFT)
0599 #define M98925_DAI_IMON_SLOT_0D_0E (13 << M98925_DAI_IMON_SLOT_SHIFT)
0600 #define M98925_DAI_IMON_SLOT_0E_0F (14 << M98925_DAI_IMON_SLOT_SHIFT)
0601 #define M98925_DAI_IMON_SLOT_0F_10 (15 << M98925_DAI_IMON_SLOT_SHIFT)
0602 #define M98925_DAI_IMON_SLOT_10_11 (16 << M98925_DAI_IMON_SLOT_SHIFT)
0603 #define M98925_DAI_IMON_SLOT_11_12 (17 << M98925_DAI_IMON_SLOT_SHIFT)
0604 #define M98925_DAI_IMON_SLOT_12_13 (18 << M98925_DAI_IMON_SLOT_SHIFT)
0605 #define M98925_DAI_IMON_SLOT_13_14 (19 << M98925_DAI_IMON_SLOT_SHIFT)
0606 #define M98925_DAI_IMON_SLOT_14_15 (20 << M98925_DAI_IMON_SLOT_SHIFT)
0607 #define M98925_DAI_IMON_SLOT_15_16 (21 << M98925_DAI_IMON_SLOT_SHIFT)
0608 #define M98925_DAI_IMON_SLOT_16_17 (22 << M98925_DAI_IMON_SLOT_SHIFT)
0609 #define M98925_DAI_IMON_SLOT_17_18 (23 << M98925_DAI_IMON_SLOT_SHIFT)
0610 #define M98925_DAI_IMON_SLOT_18_19 (24 << M98925_DAI_IMON_SLOT_SHIFT)
0611 #define M98925_DAI_IMON_SLOT_19_1A (25 << M98925_DAI_IMON_SLOT_SHIFT)
0612 #define M98925_DAI_IMON_SLOT_1A_1B (26 << M98925_DAI_IMON_SLOT_SHIFT)
0613 #define M98925_DAI_IMON_SLOT_1B_1C (27 << M98925_DAI_IMON_SLOT_SHIFT)
0614 #define M98925_DAI_IMON_SLOT_1C_1D (28 << M98925_DAI_IMON_SLOT_SHIFT)
0615 #define M98925_DAI_IMON_SLOT_1D_1E (29 << M98925_DAI_IMON_SLOT_SHIFT)
0616 #define M98925_DAI_IMON_SLOT_1E_1F (30 << M98925_DAI_IMON_SLOT_SHIFT)
0617 
0618 /* MAX98925_R024_DOUT_CFG_VBAT */
0619 #define M98925_DAI_VBAT_EN_MASK                 (1<<5)
0620 #define M98925_DAI_VBAT_EN_SHIFT                5
0621 #define M98925_DAI_VBAT_EN_WIDTH                1
0622 #define M98925_DAI_VBAT_SLOT_MASK               (0x1F<<0)
0623 #define M98925_DAI_VBAT_SLOT_SHIFT              0
0624 #define M98925_DAI_VBAT_SLOT_WIDTH              5
0625 
0626 /* MAX98925_R025_DOUT_CFG_VBST */
0627 #define M98925_DAI_VBST_EN_MASK                 (1<<5)
0628 #define M98925_DAI_VBST_EN_SHIFT                5
0629 #define M98925_DAI_VBST_EN_WIDTH                1
0630 #define M98925_DAI_VBST_SLOT_MASK               (0x1F<<0)
0631 #define M98925_DAI_VBST_SLOT_SHIFT              0
0632 #define M98925_DAI_VBST_SLOT_WIDTH              5
0633 
0634 /* MAX98925_R026_DOUT_CFG_FLAG */
0635 #define M98925_DAI_FLAG_EN_MASK                 (1<<5)
0636 #define M98925_DAI_FLAG_EN_SHIFT                5
0637 #define M98925_DAI_FLAG_EN_WIDTH                1
0638 #define M98925_DAI_FLAG_SLOT_MASK               (0x1F<<0)
0639 #define M98925_DAI_FLAG_SLOT_SHIFT              0
0640 #define M98925_DAI_FLAG_SLOT_WIDTH              5
0641 
0642 /* MAX98925_R027_DOUT_HIZ_CFG1 */
0643 #define M98925_DAI_SLOT_HIZ_CFG1_MASK           (0xFF<<0)
0644 #define M98925_DAI_SLOT_HIZ_CFG1_SHIFT          0
0645 #define M98925_DAI_SLOT_HIZ_CFG1_WIDTH          8
0646 
0647 /* MAX98925_R028_DOUT_HIZ_CFG2 */
0648 #define M98925_DAI_SLOT_HIZ_CFG2_MASK           (0xFF<<0)
0649 #define M98925_DAI_SLOT_HIZ_CFG2_SHIFT          0
0650 #define M98925_DAI_SLOT_HIZ_CFG2_WIDTH          8
0651 
0652 /* MAX98925_R029_DOUT_HIZ_CFG3 */
0653 #define M98925_DAI_SLOT_HIZ_CFG3_MASK           (0xFF<<0)
0654 #define M98925_DAI_SLOT_HIZ_CFG3_SHIFT          0
0655 #define M98925_DAI_SLOT_HIZ_CFG3_WIDTH          8
0656 
0657 /* MAX98925_R02A_DOUT_HIZ_CFG4 */
0658 #define M98925_DAI_SLOT_HIZ_CFG4_MASK           (0xFF<<0)
0659 #define M98925_DAI_SLOT_HIZ_CFG4_SHIFT          0
0660 #define M98925_DAI_SLOT_HIZ_CFG4_WIDTH          8
0661 
0662 /* MAX98925_R02B_DOUT_DRV_STRENGTH */
0663 #define M98925_DAI_OUT_DRIVE_MASK               (0x03<<0)
0664 #define M98925_DAI_OUT_DRIVE_SHIFT              0
0665 #define M98925_DAI_OUT_DRIVE_WIDTH              2
0666 
0667 /* MAX98925_R02C_FILTERS */
0668 #define M98925_ADC_DITHER_EN_MASK               (1<<7)
0669 #define M98925_ADC_DITHER_EN_SHIFT              7
0670 #define M98925_ADC_DITHER_EN_WIDTH              1
0671 #define M98925_IV_DCB_EN_MASK                   (1<<6)
0672 #define M98925_IV_DCB_EN_SHIFT                  6
0673 #define M98925_IV_DCB_EN_WIDTH                  1
0674 #define M98925_DAC_DITHER_EN_MASK               (1<<4)
0675 #define M98925_DAC_DITHER_EN_SHIFT              4
0676 #define M98925_DAC_DITHER_EN_WIDTH              1
0677 #define M98925_DAC_FILTER_MODE_MASK             (1<<3)
0678 #define M98925_DAC_FILTER_MODE_SHIFT            3
0679 #define M98925_DAC_FILTER_MODE_WIDTH            1
0680 #define M98925_DAC_HPF_MASK             (0x07<<0)
0681 #define M98925_DAC_HPF_SHIFT                    0
0682 #define M98925_DAC_HPF_WIDTH                    3
0683 #define M98925_DAC_HPF_DISABLE      (0 << M98925_DAC_HPF_SHIFT)
0684 #define M98925_DAC_HPF_DC_BLOCK     (1 << M98925_DAC_HPF_SHIFT)
0685 #define M98925_DAC_HPF_EN_100       (2 << M98925_DAC_HPF_SHIFT)
0686 #define M98925_DAC_HPF_EN_200       (3 << M98925_DAC_HPF_SHIFT)
0687 #define M98925_DAC_HPF_EN_400       (4 << M98925_DAC_HPF_SHIFT)
0688 #define M98925_DAC_HPF_EN_800       (5 << M98925_DAC_HPF_SHIFT)
0689 
0690 /* MAX98925_R02D_GAIN */
0691 #define M98925_DAC_IN_SEL_MASK                  (0x03<<5)
0692 #define M98925_DAC_IN_SEL_SHIFT                 5
0693 #define M98925_DAC_IN_SEL_WIDTH                 2
0694 #define M98925_SPK_GAIN_MASK                    (0x1F<<0)
0695 #define M98925_SPK_GAIN_SHIFT                   0
0696 #define M98925_SPK_GAIN_WIDTH                   5
0697 
0698 #define M98925_DAC_IN_SEL_LEFT_DAI (0 << M98925_DAC_IN_SEL_SHIFT)
0699 #define M98925_DAC_IN_SEL_RIGHT_DAI (1 << M98925_DAC_IN_SEL_SHIFT)
0700 #define M98925_DAC_IN_SEL_SUMMED_DAI (2 << M98925_DAC_IN_SEL_SHIFT)
0701 #define M98925_DAC_IN_SEL_DIV2_SUMMED_DAI (3 << M98925_DAC_IN_SEL_SHIFT)
0702 
0703 /* MAX98925_R02E_GAIN_RAMPING */
0704 #define M98925_SPK_RMP_EN_MASK      (1<<1)
0705 #define M98925_SPK_RMP_EN_SHIFT     1
0706 #define M98925_SPK_RMP_EN_WIDTH     1
0707 #define M98925_SPK_ZCD_EN_MASK      (1<<0)
0708 #define M98925_SPK_ZCD_EN_SHIFT     0
0709 #define M98925_SPK_ZCD_EN_WIDTH     1
0710 
0711 /* MAX98925_R02F_SPK_AMP */
0712 #define M98925_SPK_MODE_MASK        (1<<0)
0713 #define M98925_SPK_MODE_SHIFT       0
0714 #define M98925_SPK_MODE_WIDTH       1
0715 
0716 /* MAX98925_R030_THRESHOLD */
0717 #define M98925_ALC_EN_MASK          (1<<5)
0718 #define M98925_ALC_EN_SHIFT         5
0719 #define M98925_ALC_EN_WIDTH         1
0720 #define M98925_ALC_TH_MASK          (0x1F<<0)
0721 #define M98925_ALC_TH_SHIFT         0
0722 #define M98925_ALC_TH_WIDTH         5
0723 
0724 /* MAX98925_R031_ALC_ATTACK */
0725 #define M98925_ALC_ATK_STEP_MASK    (0x0F<<4)
0726 #define M98925_ALC_ATK_STEP_SHIFT   4
0727 #define M98925_ALC_ATK_STEP_WIDTH   4
0728 #define M98925_ALC_ATK_RATE_MASK    (0x7<<0)
0729 #define M98925_ALC_ATK_RATE_SHIFT   0
0730 #define M98925_ALC_ATK_RATE_WIDTH   3
0731 
0732 /* MAX98925_R032_ALC_ATTEN_RLS */
0733 #define M98925_ALC_MAX_ATTEN_MASK   (0x0F<<4)
0734 #define M98925_ALC_MAX_ATTEN_SHIFT  4
0735 #define M98925_ALC_MAX_ATTEN_WIDTH  4
0736 #define M98925_ALC_RLS_RATE_MASK    (0x7<<0)
0737 #define M98925_ALC_RLS_RATE_SHIFT   0
0738 #define M98925_ALC_RLS_RATE_WIDTH   3
0739 
0740 /* MAX98925_R033_ALC_HOLD_RLS */
0741 #define M98925_ALC_RLS_TGR_MASK     (1<<0)
0742 #define M98925_ALC_RLS_TGR_SHIFT    0
0743 #define M98925_ALC_RLS_TGR_WIDTH    1
0744 
0745 /* MAX98925_R034_ALC_CONFIGURATION */
0746 #define M98925_ALC_MUTE_EN_MASK     (1<<7)
0747 #define M98925_ALC_MUTE_EN_SHIFT    7
0748 #define M98925_ALC_MUTE_EN_WIDTH    1
0749 #define M98925_ALC_MUTE_DLY_MASK    (0x07<<4)
0750 #define M98925_ALC_MUTE_DLY_SHIFT   4
0751 #define M98925_ALC_MUTE_DLY_WIDTH   3
0752 #define M98925_ALC_RLS_DBT_MASK     (0x07<<0)
0753 #define M98925_ALC_RLS_DBT_SHIFT    0
0754 #define M98925_ALC_RLS_DBT_WIDTH    3
0755 
0756 /* MAX98925_R035_BOOST_CONVERTER */
0757 #define M98925_BST_SYNC_MASK        (1<<7)
0758 #define M98925_BST_SYNC_SHIFT       7
0759 #define M98925_BST_SYNC_WIDTH       1
0760 #define M98925_BST_PHASE_MASK       (0x03<<4)
0761 #define M98925_BST_PHASE_SHIFT      4
0762 #define M98925_BST_PHASE_WIDTH      2
0763 #define M98925_BST_SKIP_MODE_MASK   (0x03<<0)
0764 #define M98925_BST_SKIP_MODE_SHIFT  0
0765 #define M98925_BST_SKIP_MODE_WIDTH  2
0766 
0767 /* MAX98925_R036_BLOCK_ENABLE */
0768 #define M98925_BST_EN_MASK          (1<<7)
0769 #define M98925_BST_EN_SHIFT         7
0770 #define M98925_BST_EN_WIDTH         1
0771 #define M98925_WATCH_EN_MASK        (1<<6)
0772 #define M98925_WATCH_EN_SHIFT       6
0773 #define M98925_WATCH_EN_WIDTH       1
0774 #define M98925_CLKMON_EN_MASK       (1<<5)
0775 #define M98925_CLKMON_EN_SHIFT      5
0776 #define M98925_CLKMON_EN_WIDTH      1
0777 #define M98925_SPK_EN_MASK          (1<<4)
0778 #define M98925_SPK_EN_SHIFT         4
0779 #define M98925_SPK_EN_WIDTH         1
0780 #define M98925_ADC_VBST_EN_MASK     (1<<3)
0781 #define M98925_ADC_VBST_EN_SHIFT    3
0782 #define M98925_ADC_VBST_EN_WIDTH    1
0783 #define M98925_ADC_VBAT_EN_MASK     (1<<2)
0784 #define M98925_ADC_VBAT_EN_SHIFT    2
0785 #define M98925_ADC_VBAT_EN_WIDTH    1
0786 #define M98925_ADC_IMON_EN_MASK     (1<<1)
0787 #define M98925_ADC_IMON_EN_SHIFT    1
0788 #define M98925_ADC_IMON_EN_WIDTH    1
0789 #define M98925_ADC_VMON_EN_MASK     (1<<0)
0790 #define M98925_ADC_VMON_EN_SHIFT    0
0791 #define M98925_ADC_VMON_EN_WIDTH    1
0792 
0793 /* MAX98925_R037_CONFIGURATION */
0794 #define M98925_BST_VOUT_MASK        (0x0F<<4)
0795 #define M98925_BST_VOUT_SHIFT       4
0796 #define M98925_BST_VOUT_WIDTH       4
0797 #define M98925_THERMWARN_LEVEL_MASK (0x03<<2)
0798 #define M98925_THERMWARN_LEVEL_SHIFT            2
0799 #define M98925_THERMWARN_LEVEL_WIDTH            2
0800 #define M98925_WATCH_TIME_MASK          (0x03<<0)
0801 #define M98925_WATCH_TIME_SHIFT         0
0802 #define M98925_WATCH_TIME_WIDTH         2
0803 
0804 /* MAX98925_R038_GLOBAL_ENABLE */
0805 #define M98925_EN_MASK          (1<<7)
0806 #define M98925_EN_SHIFT         7
0807 #define M98925_EN_WIDTH         1
0808 
0809 /* MAX98925_R03A_BOOST_LIMITER */
0810 #define M98925_BST_ILIM_MASK    (0x1F<<3)
0811 #define M98925_BST_ILIM_SHIFT   3
0812 #define M98925_BST_ILIM_WIDTH   5
0813 
0814 /* MAX98925_R0FF_VERSION */
0815 #define M98925_REV_ID_MASK  (0xFF<<0)
0816 #define M98925_REV_ID_SHIFT 0
0817 #define M98925_REV_ID_WIDTH 8
0818 
0819 struct max98925_priv {
0820     struct regmap *regmap;
0821     struct snd_soc_component *component;
0822     struct max98925_pdata *pdata;
0823     unsigned int sysclk;
0824     unsigned int v_slot;
0825     unsigned int i_slot;
0826     unsigned int spk_gain;
0827     unsigned int ch_size;
0828 };
0829 #endif