Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * max98926.h -- MAX98926 ALSA SoC Audio driver
0004  * Copyright 2013-2015 Maxim Integrated Products
0005  */
0006 
0007 #ifndef _MAX98926_H
0008 #define _MAX98926_H
0009 
0010 #define MAX98926_CHIP_VERSION   0x40
0011 #define MAX98926_CHIP_VERSION1  0x50
0012 
0013 #define MAX98926_VBAT_DATA          0x00
0014 #define MAX98926_VBST_DATA          0x01
0015 #define MAX98926_LIVE_STATUS0       0x02
0016 #define MAX98926_LIVE_STATUS1       0x03
0017 #define MAX98926_LIVE_STATUS2       0x04
0018 #define MAX98926_STATE0         0x05
0019 #define MAX98926_STATE1         0x06
0020 #define MAX98926_STATE2         0x07
0021 #define MAX98926_FLAG0          0x08
0022 #define MAX98926_FLAG1          0x09
0023 #define MAX98926_FLAG2          0x0A
0024 #define MAX98926_IRQ_ENABLE0        0x0B
0025 #define MAX98926_IRQ_ENABLE1        0x0C
0026 #define MAX98926_IRQ_ENABLE2        0x0D
0027 #define MAX98926_IRQ_CLEAR0     0x0E
0028 #define MAX98926_IRQ_CLEAR1     0x0F
0029 #define MAX98926_IRQ_CLEAR2     0x10
0030 #define MAX98926_MAP0           0x11
0031 #define MAX98926_MAP1           0x12
0032 #define MAX98926_MAP2           0x13
0033 #define MAX98926_MAP3           0x14
0034 #define MAX98926_MAP4           0x15
0035 #define MAX98926_MAP5           0x16
0036 #define MAX98926_MAP6           0x17
0037 #define MAX98926_MAP7           0x18
0038 #define MAX98926_MAP8           0x19
0039 #define MAX98926_DAI_CLK_MODE1      0x1A
0040 #define MAX98926_DAI_CLK_MODE2      0x1B
0041 #define MAX98926_DAI_CLK_DIV_M_MSBS 0x1C
0042 #define MAX98926_DAI_CLK_DIV_M_LSBS 0x1D
0043 #define MAX98926_DAI_CLK_DIV_N_MSBS 0x1E
0044 #define MAX98926_DAI_CLK_DIV_N_LSBS 0x1F
0045 #define MAX98926_FORMAT         0x20
0046 #define MAX98926_TDM_SLOT_SELECT        0x21
0047 #define MAX98926_DOUT_CFG_VMON      0x22
0048 #define MAX98926_DOUT_CFG_IMON      0x23
0049 #define MAX98926_DOUT_CFG_VBAT      0x24
0050 #define MAX98926_DOUT_CFG_VBST      0x25
0051 #define MAX98926_DOUT_CFG_FLAG      0x26
0052 #define MAX98926_DOUT_HIZ_CFG1      0x27
0053 #define MAX98926_DOUT_HIZ_CFG2      0x28
0054 #define MAX98926_DOUT_HIZ_CFG3      0x29
0055 #define MAX98926_DOUT_HIZ_CFG4      0x2A
0056 #define MAX98926_DOUT_DRV_STRENGTH      0x2B
0057 #define MAX98926_FILTERS            0x2C
0058 #define MAX98926_GAIN           0x2D
0059 #define MAX98926_GAIN_RAMPING       0x2E
0060 #define MAX98926_SPK_AMP            0x2F
0061 #define MAX98926_THRESHOLD          0x30
0062 #define MAX98926_ALC_ATTACK     0x31
0063 #define MAX98926_ALC_ATTEN_RLS      0x32
0064 #define MAX98926_ALC_HOLD_RLS       0x33
0065 #define MAX98926_ALC_CONFIGURATION      0x34
0066 #define MAX98926_BOOST_CONVERTER        0x35
0067 #define MAX98926_BLOCK_ENABLE       0x36
0068 #define MAX98926_CONFIGURATION      0x37
0069 #define MAX98926_GLOBAL_ENABLE      0x38
0070 #define MAX98926_BOOST_LIMITER      0x3A
0071 #define MAX98926_VERSION            0xFF
0072 
0073 #define MAX98926_REG_CNT               (MAX98926_R03A_BOOST_LIMITER+1)
0074 
0075 #define MAX98926_PDM_CURRENT_MASK (1<<7)
0076 #define MAX98926_PDM_CURRENT_SHIFT 7
0077 #define MAX98926_PDM_VOLTAGE_MASK (1<<3)
0078 #define MAX98926_PDM_VOLTAGE_SHIFT 3
0079 #define MAX98926_PDM_CHANNEL_0_MASK (1<<2)
0080 #define MAX98926_PDM_CHANNEL_0_SHIFT 2
0081 #define MAX98926_PDM_CHANNEL_1_MASK (1<<6)
0082 #define MAX98926_PDM_CHANNEL_1_SHIFT 6
0083 #define MAX98926_PDM_CHANNEL_1_HIZ 5
0084 #define MAX98926_PDM_CHANNEL_0_HIZ 1
0085 #define MAX98926_PDM_SOURCE_0_SHIFT 0
0086 #define MAX98926_PDM_SOURCE_0_MASK (1<<0)
0087 #define MAX98926_PDM_SOURCE_1_MASK (1<<4)
0088 #define MAX98926_PDM_SOURCE_1_SHIFT 4
0089 
0090 /* MAX98926 Register Bit Fields */
0091 
0092 /* MAX98926_R002_LIVE_STATUS0 */
0093 #define MAX98926_THERMWARN_STATUS_MASK          (1<<3)
0094 #define MAX98926_THERMWARN_STATUS_SHIFT         3
0095 #define MAX98926_THERMWARN_STATUS_WIDTH         1
0096 #define MAX98926_THERMSHDN_STATUS_MASK          (1<<1)
0097 #define MAX98926_THERMSHDN_STATUS_SHIFT         1
0098 #define MAX98926_THERMSHDN_STATUS_WIDTH         1
0099 
0100 /* MAX98926_R003_LIVE_STATUS1 */
0101 #define MAX98926_SPKCURNT_STATUS_MASK               (1<<5)
0102 #define MAX98926_SPKCURNT_STATUS_SHIFT          5
0103 #define MAX98926_SPKCURNT_STATUS_WIDTH          1
0104 #define MAX98926_WATCHFAIL_STATUS_MASK          (1<<4)
0105 #define MAX98926_WATCHFAIL_STATUS_SHIFT         4
0106 #define MAX98926_WATCHFAIL_STATUS_WIDTH         1
0107 #define MAX98926_ALCINFH_STATUS_MASK                (1<<3)
0108 #define MAX98926_ALCINFH_STATUS_SHIFT               3
0109 #define MAX98926_ALCINFH_STATUS_WIDTH               1
0110 #define MAX98926_ALCACT_STATUS_MASK             (1<<2)
0111 #define MAX98926_ALCACT_STATUS_SHIFT                2
0112 #define MAX98926_ALCACT_STATUS_WIDTH                1
0113 #define MAX98926_ALCMUT_STATUS_MASK             (1<<1)
0114 #define MAX98926_ALCMUT_STATUS_SHIFT                1
0115 #define MAX98926_ALCMUT_STATUS_WIDTH                1
0116 #define MAX98926_ACLP_STATUS_MASK                   (1<<0)
0117 #define MAX98926_ACLP_STATUS_SHIFT              0
0118 #define MAX98926_ACLP_STATUS_WIDTH              1
0119 
0120 /* MAX98926_R004_LIVE_STATUS2 */
0121 #define MAX98926_SLOTOVRN_STATUS_MASK               (1<<6)
0122 #define MAX98926_SLOTOVRN_STATUS_SHIFT          6
0123 #define MAX98926_SLOTOVRN_STATUS_WIDTH          1
0124 #define MAX98926_INVALSLOT_STATUS_MASK          (1<<5)
0125 #define MAX98926_INVALSLOT_STATUS_SHIFT         5
0126 #define MAX98926_INVALSLOT_STATUS_WIDTH         1
0127 #define MAX98926_SLOTCNFLT_STATUS_MASK          (1<<4)
0128 #define MAX98926_SLOTCNFLT_STATUS_SHIFT         4
0129 #define MAX98926_SLOTCNFLT_STATUS_WIDTH         1
0130 #define MAX98926_VBSTOVFL_STATUS_MASK               (1<<3)
0131 #define MAX98926_VBSTOVFL_STATUS_SHIFT          3
0132 #define MAX98926_VBSTOVFL_STATUS_WIDTH          1
0133 #define MAX98926_VBATOVFL_STATUS_MASK               (1<<2)
0134 #define MAX98926_VBATOVFL_STATUS_SHIFT          2
0135 #define MAX98926_VBATOVFL_STATUS_WIDTH          1
0136 #define MAX98926_IMONOVFL_STATUS_MASK               (1<<1)
0137 #define MAX98926_IMONOVFL_STATUS_SHIFT          1
0138 #define MAX98926_IMONOVFL_STATUS_WIDTH          1
0139 #define MAX98926_VMONOVFL_STATUS_MASK               (1<<0)
0140 #define MAX98926_VMONOVFL_STATUS_SHIFT          0
0141 #define MAX98926_VMONOVFL_STATUS_WIDTH          1
0142 
0143 /* MAX98926_R005_STATE0 */
0144 #define MAX98926_THERMWARN_END_STATE_MASK           (1<<3)
0145 #define MAX98926_THERMWARN_END_STATE_SHIFT      3
0146 #define MAX98926_THERMWARN_END_STATE_WIDTH      1
0147 #define MAX98926_THERMWARN_BGN_STATE_MASK           (1<<2)
0148 #define MAX98926_THERMWARN_BGN_STATE_SHIFT      1
0149 #define MAX98926_THERMWARN_BGN_STATE_WIDTH      1
0150 #define MAX98926_THERMSHDN_END_STATE_MASK           (1<<1)
0151 #define MAX98926_THERMSHDN_END_STATE_SHIFT      1
0152 #define MAX98926_THERMSHDN_END_STATE_WIDTH      1
0153 #define MAX98926_THERMSHDN_BGN_STATE_MASK           (1<<0)
0154 #define MAX98926_THERMSHDN_BGN_STATE_SHIFT      0
0155 #define MAX98926_THERMSHDN_BGN_STATE_WIDTH      1
0156 
0157 /* MAX98926_R006_STATE1 */
0158 #define MAX98926_SPRCURNT_STATE_MASK                (1<<5)
0159 #define MAX98926_SPRCURNT_STATE_SHIFT               5
0160 #define MAX98926_SPRCURNT_STATE_WIDTH               1
0161 #define MAX98926_WATCHFAIL_STATE_MASK               (1<<4)
0162 #define MAX98926_WATCHFAIL_STATE_SHIFT          4
0163 #define MAX98926_WATCHFAIL_STATE_WIDTH          1
0164 #define MAX98926_ALCINFH_STATE_MASK             (1<<3)
0165 #define MAX98926_ALCINFH_STATE_SHIFT                3
0166 #define MAX98926_ALCINFH_STATE_WIDTH                1
0167 #define MAX98926_ALCACT_STATE_MASK              (1<<2)
0168 #define MAX98926_ALCACT_STATE_SHIFT             2
0169 #define MAX98926_ALCACT_STATE_WIDTH             1
0170 #define MAX98926_ALCMUT_STATE_MASK              (1<<1)
0171 #define MAX98926_ALCMUT_STATE_SHIFT             1
0172 #define MAX98926_ALCMUT_STATE_WIDTH             1
0173 #define MAX98926_ALCP_STATE_MASK                    (1<<0)
0174 #define MAX98926_ALCP_STATE_SHIFT                   0
0175 #define MAX98926_ALCP_STATE_WIDTH                   1
0176 
0177 /* MAX98926_R007_STATE2 */
0178 #define MAX98926_SLOTOVRN_STATE_MASK                (1<<6)
0179 #define MAX98926_SLOTOVRN_STATE_SHIFT               6
0180 #define MAX98926_SLOTOVRN_STATE_WIDTH               1
0181 #define MAX98926_INVALSLOT_STATE_MASK               (1<<5)
0182 #define MAX98926_INVALSLOT_STATE_SHIFT          5
0183 #define MAX98926_INVALSLOT_STATE_WIDTH          1
0184 #define MAX98926_SLOTCNFLT_STATE_MASK               (1<<4)
0185 #define MAX98926_SLOTCNFLT_STATE_SHIFT          4
0186 #define MAX98926_SLOTCNFLT_STATE_WIDTH          1
0187 #define MAX98926_VBSTOVFL_STATE_MASK                (1<<3)
0188 #define MAX98926_VBSTOVFL_STATE_SHIFT               3
0189 #define MAX98926_VBSTOVFL_STATE_WIDTH               1
0190 #define MAX98926_VBATOVFL_STATE_MASK                (1<<2)
0191 #define MAX98926_VBATOVFL_STATE_SHIFT               2
0192 #define MAX98926_VBATOVFL_STATE_WIDTH               1
0193 #define MAX98926_IMONOVFL_STATE_MASK                (1<<1)
0194 #define MAX98926_IMONOVFL_STATE_SHIFT               1
0195 #define MAX98926_IMONOVFL_STATE_WIDTH               1
0196 #define MAX98926_VMONOVFL_STATE_MASK                (1<<0)
0197 #define MAX98926_VMONOVFL_STATE_SHIFT               0
0198 #define MAX98926_VMONOVFL_STATE_WIDTH               1
0199 
0200 /* MAX98926_R008_FLAG0 */
0201 #define MAX98926_THERMWARN_END_FLAG_MASK            (1<<3)
0202 #define MAX98926_THERMWARN_END_FLAG_SHIFT           3
0203 #define MAX98926_THERMWARN_END_FLAG_WIDTH           1
0204 #define MAX98926_THERMWARN_BGN_FLAG_MASK            (1<<2)
0205 #define MAX98926_THERMWARN_BGN_FLAG_SHIFT           2
0206 #define MAX98926_THERMWARN_BGN_FLAG_WIDTH           1
0207 #define MAX98926_THERMSHDN_END_FLAG_MASK            (1<<1)
0208 #define MAX98926_THERMSHDN_END_FLAG_SHIFT           1
0209 #define MAX98926_THERMSHDN_END_FLAG_WIDTH           1
0210 #define MAX98926_THERMSHDN_BGN_FLAG_MASK            (1<<0)
0211 #define MAX98926_THERMSHDN_BGN_FLAG_SHIFT           0
0212 #define MAX98926_THERMSHDN_BGN_FLAG_WIDTH           1
0213 
0214 /* MAX98926_R009_FLAG1 */
0215 #define MAX98926_SPKCURNT_FLAG_MASK             (1<<5)
0216 #define MAX98926_SPKCURNT_FLAG_SHIFT                5
0217 #define MAX98926_SPKCURNT_FLAG_WIDTH                1
0218 #define MAX98926_WATCHFAIL_FLAG_MASK                (1<<4)
0219 #define MAX98926_WATCHFAIL_FLAG_SHIFT               4
0220 #define MAX98926_WATCHFAIL_FLAG_WIDTH               1
0221 #define MAX98926_ALCINFH_FLAG_MASK              (1<<3)
0222 #define MAX98926_ALCINFH_FLAG_SHIFT             3
0223 #define MAX98926_ALCINFH_FLAG_WIDTH             1
0224 #define MAX98926_ALCACT_FLAG_MASK                   (1<<2)
0225 #define MAX98926_ALCACT_FLAG_SHIFT              2
0226 #define MAX98926_ALCACT_FLAG_WIDTH              1
0227 #define MAX98926_ALCMUT_FLAG_MASK                   (1<<1)
0228 #define MAX98926_ALCMUT_FLAG_SHIFT              1
0229 #define MAX98926_ALCMUT_FLAG_WIDTH              1
0230 #define MAX98926_ALCP_FLAG_MASK                 (1<<0)
0231 #define MAX98926_ALCP_FLAG_SHIFT                    0
0232 #define MAX98926_ALCP_FLAG_WIDTH                    1
0233 
0234 /* MAX98926_R00A_FLAG2 */
0235 #define MAX98926_SLOTOVRN_FLAG_MASK             (1<<6)
0236 #define MAX98926_SLOTOVRN_FLAG_SHIFT                6
0237 #define MAX98926_SLOTOVRN_FLAG_WIDTH                1
0238 #define MAX98926_INVALSLOT_FLAG_MASK                (1<<5)
0239 #define MAX98926_INVALSLOT_FLAG_SHIFT               5
0240 #define MAX98926_INVALSLOT_FLAG_WIDTH               1
0241 #define MAX98926_SLOTCNFLT_FLAG_MASK                (1<<4)
0242 #define MAX98926_SLOTCNFLT_FLAG_SHIFT               4
0243 #define MAX98926_SLOTCNFLT_FLAG_WIDTH               1
0244 #define MAX98926_VBSTOVFL_FLAG_MASK             (1<<3)
0245 #define MAX98926_VBSTOVFL_FLAG_SHIFT                3
0246 #define MAX98926_VBSTOVFL_FLAG_WIDTH                1
0247 #define MAX98926_VBATOVFL_FLAG_MASK             (1<<2)
0248 #define MAX98926_VBATOVFL_FLAG_SHIFT                2
0249 #define MAX98926_VBATOVFL_FLAG_WIDTH                1
0250 #define MAX98926_IMONOVFL_FLAG_MASK             (1<<1)
0251 #define MAX98926_IMONOVFL_FLAG_SHIFT                1
0252 #define MAX98926_IMONOVFL_FLAG_WIDTH                1
0253 #define MAX98926_VMONOVFL_FLAG_MASK             (1<<0)
0254 #define MAX98926_VMONOVFL_FLAG_SHIFT                0
0255 #define MAX98926_VMONOVFL_FLAG_WIDTH                1
0256 
0257 /* MAX98926_R00B_IRQ_ENABLE0 */
0258 #define MAX98926_THERMWARN_END_EN_MASK          (1<<3)
0259 #define MAX98926_THERMWARN_END_EN_SHIFT         3
0260 #define MAX98926_THERMWARN_END_EN_WIDTH         1
0261 #define MAX98926_THERMWARN_BGN_EN_MASK          (1<<2)
0262 #define MAX98926_THERMWARN_BGN_EN_SHIFT         2
0263 #define MAX98926_THERMWARN_BGN_EN_WIDTH         1
0264 #define MAX98926_THERMSHDN_END_EN_MASK          (1<<1)
0265 #define MAX98926_THERMSHDN_END_EN_SHIFT         1
0266 #define MAX98926_THERMSHDN_END_EN_WIDTH         1
0267 #define MAX98926_THERMSHDN_BGN_EN_MASK          (1<<0)
0268 #define MAX98926_THERMSHDN_BGN_EN_SHIFT         0
0269 #define MAX98926_THERMSHDN_BGN_EN_WIDTH         1
0270 
0271 /* MAX98926_R00C_IRQ_ENABLE1 */
0272 #define MAX98926_SPKCURNT_EN_MASK       (1<<5)
0273 #define MAX98926_SPKCURNT_EN_SHIFT  5
0274 #define MAX98926_SPKCURNT_EN_WIDTH  1
0275 #define MAX98926_WATCHFAIL_EN_MASK  (1<<4)
0276 #define MAX98926_WATCHFAIL_EN_SHIFT 4
0277 #define MAX98926_WATCHFAIL_EN_WIDTH 1
0278 #define MAX98926_ALCINFH_EN_MASK        (1<<3)
0279 #define MAX98926_ALCINFH_EN_SHIFT       3
0280 #define MAX98926_ALCINFH_EN_WIDTH       1
0281 #define MAX98926_ALCACT_EN_MASK     (1<<2)
0282 #define MAX98926_ALCACT_EN_SHIFT        2
0283 #define MAX98926_ALCACT_EN_WIDTH        1
0284 #define MAX98926_ALCMUT_EN_MASK     (1<<1)
0285 #define MAX98926_ALCMUT_EN_SHIFT        1
0286 #define MAX98926_ALCMUT_EN_WIDTH        1
0287 #define MAX98926_ALCP_EN_MASK           (1<<0)
0288 #define MAX98926_ALCP_EN_SHIFT      0
0289 #define MAX98926_ALCP_EN_WIDTH      1
0290 
0291 /* MAX98926_R00D_IRQ_ENABLE2 */
0292 #define MAX98926_SLOTOVRN_EN_MASK       (1<<6)
0293 #define MAX98926_SLOTOVRN_EN_SHIFT  6
0294 #define MAX98926_SLOTOVRN_EN_WIDTH  1
0295 #define MAX98926_INVALSLOT_EN_MASK  (1<<5)
0296 #define MAX98926_INVALSLOT_EN_SHIFT 5
0297 #define MAX98926_INVALSLOT_EN_WIDTH 1
0298 #define MAX98926_SLOTCNFLT_EN_MASK  (1<<4)
0299 #define MAX98926_SLOTCNFLT_EN_SHIFT 4
0300 #define MAX98926_SLOTCNFLT_EN_WIDTH 1
0301 #define MAX98926_VBSTOVFL_EN_MASK       (1<<3)
0302 #define MAX98926_VBSTOVFL_EN_SHIFT  3
0303 #define MAX98926_VBSTOVFL_EN_WIDTH  1
0304 #define MAX98926_VBATOVFL_EN_MASK       (1<<2)
0305 #define MAX98926_VBATOVFL_EN_SHIFT  2
0306 #define MAX98926_VBATOVFL_EN_WIDTH  1
0307 #define MAX98926_IMONOVFL_EN_MASK       (1<<1)
0308 #define MAX98926_IMONOVFL_EN_SHIFT  1
0309 #define MAX98926_IMONOVFL_EN_WIDTH  1
0310 #define MAX98926_VMONOVFL_EN_MASK       (1<<0)
0311 #define MAX98926_VMONOVFL_EN_SHIFT  0
0312 #define MAX98926_VMONOVFL_EN_WIDTH  1
0313 
0314 /* MAX98926_R00E_IRQ_CLEAR0 */
0315 #define MAX98926_THERMWARN_END_CLR_MASK         (1<<3)
0316 #define MAX98926_THERMWARN_END_CLR_SHIFT            3
0317 #define MAX98926_THERMWARN_END_CLR_WIDTH            1
0318 #define MAX98926_THERMWARN_BGN_CLR_MASK         (1<<2)
0319 #define MAX98926_THERMWARN_BGN_CLR_SHIFT            2
0320 #define MAX98926_THERMWARN_BGN_CLR_WIDTH            1
0321 #define MAX98926_THERMSHDN_END_CLR_MASK         (1<<1)
0322 #define MAX98926_THERMSHDN_END_CLR_SHIFT            1
0323 #define MAX98926_THERMSHDN_END_CLR_WIDTH            1
0324 #define MAX98926_THERMSHDN_BGN_CLR_MASK         (1<<0)
0325 #define MAX98926_THERMSHDN_BGN_CLR_SHIFT            0
0326 #define MAX98926_THERMSHDN_BGN_CLR_WIDTH            1
0327 
0328 /* MAX98926_R00F_IRQ_CLEAR1 */
0329 #define MAX98926_SPKCURNT_CLR_MASK      (1<<5)
0330 #define MAX98926_SPKCURNT_CLR_SHIFT     5
0331 #define MAX98926_SPKCURNT_CLR_WIDTH     1
0332 #define MAX98926_WATCHFAIL_CLR_MASK     (1<<4)
0333 #define MAX98926_WATCHFAIL_CLR_SHIFT        4
0334 #define MAX98926_WATCHFAIL_CLR_WIDTH        1
0335 #define MAX98926_ALCINFH_CLR_MASK           (1<<3)
0336 #define MAX98926_ALCINFH_CLR_SHIFT      3
0337 #define MAX98926_ALCINFH_CLR_WIDTH      1
0338 #define MAX98926_ALCACT_CLR_MASK            (1<<2)
0339 #define MAX98926_ALCACT_CLR_SHIFT           2
0340 #define MAX98926_ALCACT_CLR_WIDTH           1
0341 #define MAX98926_ALCMUT_CLR_MASK            (1<<1)
0342 #define MAX98926_ALCMUT_CLR_SHIFT           1
0343 #define MAX98926_ALCMUT_CLR_WIDTH           1
0344 #define MAX98926_ALCP_CLR_MASK          (1<<0)
0345 #define MAX98926_ALCP_CLR_SHIFT         0
0346 #define MAX98926_ALCP_CLR_WIDTH         1
0347 
0348 /* MAX98926_R010_IRQ_CLEAR2 */
0349 #define MAX98926_SLOTOVRN_CLR_MASK      (1<<6)
0350 #define MAX98926_SLOTOVRN_CLR_SHIFT     6
0351 #define MAX98926_SLOTOVRN_CLR_WIDTH     1
0352 #define MAX98926_INVALSLOT_CLR_MASK     (1<<5)
0353 #define MAX98926_INVALSLOT_CLR_SHIFT        5
0354 #define MAX98926_INVALSLOT_CLR_WIDTH        1
0355 #define MAX98926_SLOTCNFLT_CLR_MASK     (1<<4)
0356 #define MAX98926_SLOTCNFLT_CLR_SHIFT        4
0357 #define MAX98926_SLOTCNFLT_CLR_WIDTH        1
0358 #define MAX98926_VBSTOVFL_CLR_MASK      (1<<3)
0359 #define MAX98926_VBSTOVFL_CLR_SHIFT     3
0360 #define MAX98926_VBSTOVFL_CLR_WIDTH     1
0361 #define MAX98926_VBATOVFL_CLR_MASK      (1<<2)
0362 #define MAX98926_VBATOVFL_CLR_SHIFT     2
0363 #define MAX98926_VBATOVFL_CLR_WIDTH     1
0364 #define MAX98926_IMONOVFL_CLR_MASK      (1<<1)
0365 #define MAX98926_IMONOVFL_CLR_SHIFT     1
0366 #define MAX98926_IMONOVFL_CLR_WIDTH     1
0367 #define MAX98926_VMONOVFL_CLR_MASK          (1<<0)
0368 #define MAX98926_VMONOVFL_CLR_SHIFT         0
0369 #define MAX98926_VMONOVFL_CLR_WIDTH         1
0370 
0371 /* MAX98926_R011_MAP0 */
0372 #define MAX98926_ER_THERMWARN_EN_MASK               (1<<7)
0373 #define MAX98926_ER_THERMWARN_EN_SHIFT          7
0374 #define MAX98926_ER_THERMWARN_EN_WIDTH          1
0375 #define MAX98926_ER_THERMWARN_MAP_MASK          (0x07<<4)
0376 #define MAX98926_ER_THERMWARN_MAP_SHIFT         4
0377 #define MAX98926_ER_THERMWARN_MAP_WIDTH         3
0378 
0379 /* MAX98926_R012_MAP1 */
0380 #define MAX98926_ER_ALCMUT_EN_MASK      (1<<7)
0381 #define MAX98926_ER_ALCMUT_EN_SHIFT     7
0382 #define MAX98926_ER_ALCMUT_EN_WIDTH     1
0383 #define MAX98926_ER_ALCMUT_MAP_MASK     (0x07<<4)
0384 #define MAX98926_ER_ALCMUT_MAP_SHIFT        4
0385 #define MAX98926_ER_ALCMUT_MAP_WIDTH        3
0386 #define MAX98926_ER_ALCP_EN_MASK            (1<<3)
0387 #define MAX98926_ER_ALCP_EN_SHIFT           3
0388 #define MAX98926_ER_ALCP_EN_WIDTH           1
0389 #define MAX98926_ER_ALCP_MAP_MASK           (0x07<<0)
0390 #define MAX98926_ER_ALCP_MAP_SHIFT      0
0391 #define MAX98926_ER_ALCP_MAP_WIDTH      3
0392 
0393 /* MAX98926_R013_MAP2 */
0394 #define MAX98926_ER_ALCINFH_EN_MASK     (1<<7)
0395 #define MAX98926_ER_ALCINFH_EN_SHIFT        7
0396 #define MAX98926_ER_ALCINFH_EN_WIDTH        1
0397 #define MAX98926_ER_ALCINFH_MAP_MASK        (0x07<<4)
0398 #define MAX98926_ER_ALCINFH_MAP_SHIFT       4
0399 #define MAX98926_ER_ALCINFH_MAP_WIDTH       3
0400 #define MAX98926_ER_ALCACT_EN_MASK      (1<<3)
0401 #define MAX98926_ER_ALCACT_EN_SHIFT     3
0402 #define MAX98926_ER_ALCACT_EN_WIDTH     1
0403 #define MAX98926_ER_ALCACT_MAP_MASK     (0x07<<0)
0404 #define MAX98926_ER_ALCACT_MAP_SHIFT        0
0405 #define MAX98926_ER_ALCACT_MAP_WIDTH        3
0406 
0407 /* MAX98926_R014_MAP3 */
0408 #define MAX98926_ER_SPKCURNT_EN_MASK            (1<<7)
0409 #define MAX98926_ER_SPKCURNT_EN_SHIFT           7
0410 #define MAX98926_ER_SPKCURNT_EN_WIDTH           1
0411 #define MAX98926_ER_SPKCURNT_MAP_MASK           (0x07<<4)
0412 #define MAX98926_ER_SPKCURNT_MAP_SHIFT          4
0413 #define MAX98926_ER_SPKCURNT_MAP_WIDTH          3
0414 
0415 /* MAX98926_R015_MAP4 */
0416 /* RESERVED */
0417 
0418 /* MAX98926_R016_MAP5 */
0419 #define MAX98926_ER_IMONOVFL_EN_MASK            (1<<7)
0420 #define MAX98926_ER_IMONOVFL_EN_SHIFT           7
0421 #define MAX98926_ER_IMONOVFL_EN_WIDTH           1
0422 #define MAX98926_ER_IMONOVFL_MAP_MASK           (0x07<<4)
0423 #define MAX98926_ER_IMONOVFL_MAP_SHIFT          4
0424 #define MAX98926_ER_IMONOVFL_MAP_WIDTH          3
0425 #define MAX98926_ER_VMONOVFL_EN_MASK            (1<<3)
0426 #define MAX98926_ER_VMONOVFL_EN_SHIFT           3
0427 #define MAX98926_ER_VMONOVFL_EN_WIDTH           1
0428 #define MAX98926_ER_VMONOVFL_MAP_MASK           (0x07<<0)
0429 #define MAX98926_ER_VMONOVFL_MAP_SHIFT          0
0430 #define MAX98926_ER_VMONOVFL_MAP_WIDTH          3
0431 
0432 /* MAX98926_R017_MAP6 */
0433 #define MAX98926_ER_VBSTOVFL_EN_MASK            (1<<7)
0434 #define MAX98926_ER_VBSTOVFL_EN_SHIFT           7
0435 #define MAX98926_ER_VBSTOVFL_EN_WIDTH           1
0436 #define MAX98926_ER_VBSTOVFL_MAP_MASK           (0x07<<4)
0437 #define MAX98926_ER_VBSTOVFL_MAP_SHIFT          4
0438 #define MAX98926_ER_VBSTOVFL_MAP_WIDTH          3
0439 #define MAX98926_ER_VBATOVFL_EN_MASK            (1<<3)
0440 #define MAX98926_ER_VBATOVFL_EN_SHIFT           3
0441 #define MAX98926_ER_VBATOVFL_EN_WIDTH           1
0442 #define MAX98926_ER_VBATOVFL_MAP_MASK           (0x07<<0)
0443 #define MAX98926_ER_VBATOVFL_MAP_SHIFT          0
0444 #define MAX98926_ER_VBATOVFL_MAP_WIDTH          3
0445 
0446 /* MAX98926_R018_MAP7 */
0447 #define MAX98926_ER_INVALSLOT_EN_MASK               (1<<7)
0448 #define MAX98926_ER_INVALSLOT_EN_SHIFT          7
0449 #define MAX98926_ER_INVALSLOT_EN_WIDTH          1
0450 #define MAX98926_ER_INVALSLOT_MAP_MASK          (0x07<<4)
0451 #define MAX98926_ER_INVALSLOT_MAP_SHIFT         4
0452 #define MAX98926_ER_INVALSLOT_MAP_WIDTH         3
0453 #define MAX98926_ER_SLOTCNFLT_EN_MASK               (1<<3)
0454 #define MAX98926_ER_SLOTCNFLT_EN_SHIFT          3
0455 #define MAX98926_ER_SLOTCNFLT_EN_WIDTH          1
0456 #define MAX98926_ER_SLOTCNFLT_MAP_MASK          (0x07<<0)
0457 #define MAX98926_ER_SLOTCNFLT_MAP_SHIFT         0
0458 #define MAX98926_ER_SLOTCNFLT_MAP_WIDTH         3
0459 
0460 /* MAX98926_R019_MAP8 */
0461 #define MAX98926_ER_SLOTOVRN_EN_MASK    (1<<3)
0462 #define MAX98926_ER_SLOTOVRN_EN_SHIFT   3
0463 #define MAX98926_ER_SLOTOVRN_EN_WIDTH   1
0464 #define MAX98926_ER_SLOTOVRN_MAP_MASK   (0x07<<0)
0465 #define MAX98926_ER_SLOTOVRN_MAP_SHIFT  0
0466 #define MAX98926_ER_SLOTOVRN_MAP_WIDTH  3
0467 
0468 /* MAX98926_R01A_DAI_CLK_MODE1 */
0469 #define MAX98926_DAI_CLK_SOURCE_MASK    (1<<6)
0470 #define MAX98926_DAI_CLK_SOURCE_SHIFT   6
0471 #define MAX98926_DAI_CLK_SOURCE_WIDTH   1
0472 #define MAX98926_MDLL_MULT_MASK     (0x0F<<0)
0473 #define MAX98926_MDLL_MULT_SHIFT        0
0474 #define MAX98926_MDLL_MULT_WIDTH        4
0475 
0476 #define MAX98926_MDLL_MULT_MCLKx8       6
0477 #define MAX98926_MDLL_MULT_MCLKx16  8
0478 
0479 /* MAX98926_R01B_DAI_CLK_MODE2 */
0480 #define MAX98926_DAI_SR_MASK            (0x0F<<4)
0481 #define MAX98926_DAI_SR_SHIFT           4
0482 #define MAX98926_DAI_SR_WIDTH           4
0483 #define MAX98926_DAI_MAS_MASK           (1<<3)
0484 #define MAX98926_DAI_MAS_SHIFT          3
0485 #define MAX98926_DAI_MAS_WIDTH          1
0486 #define MAX98926_DAI_BSEL_MASK          (0x07<<0)
0487 #define MAX98926_DAI_BSEL_SHIFT         0
0488 #define MAX98926_DAI_BSEL_WIDTH         3
0489 
0490 #define MAX98926_DAI_BSEL_32 (0 << MAX98926_DAI_BSEL_SHIFT)
0491 #define MAX98926_DAI_BSEL_48 (1 << MAX98926_DAI_BSEL_SHIFT)
0492 #define MAX98926_DAI_BSEL_64 (2 << MAX98926_DAI_BSEL_SHIFT)
0493 #define MAX98926_DAI_BSEL_256 (6 << MAX98926_DAI_BSEL_SHIFT)
0494 
0495 /* MAX98926_R01C_DAI_CLK_DIV_M_MSBS */
0496 #define MAX98926_DAI_M_MSBS_MASK        (0xFF<<0)
0497 #define MAX98926_DAI_M_MSBS_SHIFT       0
0498 #define MAX98926_DAI_M_MSBS_WIDTH       8
0499 
0500 /* MAX98926_R01D_DAI_CLK_DIV_M_LSBS */
0501 #define MAX98926_DAI_M_LSBS_MASK        (0xFF<<0)
0502 #define MAX98926_DAI_M_LSBS_SHIFT       0
0503 #define MAX98926_DAI_M_LSBS_WIDTH       8
0504 
0505 /* MAX98926_R01E_DAI_CLK_DIV_N_MSBS */
0506 #define MAX98926_DAI_N_MSBS_MASK        (0x7F<<0)
0507 #define MAX98926_DAI_N_MSBS_SHIFT       0
0508 #define MAX98926_DAI_N_MSBS_WIDTH       7
0509 
0510 /* MAX98926_R01F_DAI_CLK_DIV_N_LSBS */
0511 #define MAX98926_DAI_N_LSBS_MASK        (0xFF<<0)
0512 #define MAX98926_DAI_N_LSBS_SHIFT       0
0513 #define MAX98926_DAI_N_LSBS_WIDTH       8
0514 
0515 /* MAX98926_R020_FORMAT */
0516 #define MAX98926_DAI_CHANSZ_MASK    (0x03<<6)
0517 #define MAX98926_DAI_CHANSZ_SHIFT   6
0518 #define MAX98926_DAI_CHANSZ_WIDTH   2
0519 #define MAX98926_DAI_INTERLEAVE_MASK        (1<<5)
0520 #define MAX98926_DAI_INTERLEAVE_SHIFT       5
0521 #define MAX98926_DAI_INTERLEAVE_WIDTH       1
0522 #define MAX98926_DAI_EXTBCLK_HIZ_MASK       (1<<4)
0523 #define MAX98926_DAI_EXTBCLK_HIZ_SHIFT      4
0524 #define MAX98926_DAI_EXTBCLK_HIZ_WIDTH      1
0525 #define MAX98926_DAI_WCI_MASK           (1<<3)
0526 #define MAX98926_DAI_WCI_SHIFT      3
0527 #define MAX98926_DAI_WCI_WIDTH      1
0528 #define MAX98926_DAI_BCI_MASK           (1<<2)
0529 #define MAX98926_DAI_BCI_SHIFT      2
0530 #define MAX98926_DAI_BCI_WIDTH      1
0531 #define MAX98926_DAI_DLY_MASK           (1<<1)
0532 #define MAX98926_DAI_DLY_SHIFT      1
0533 #define MAX98926_DAI_DLY_WIDTH      1
0534 #define MAX98926_DAI_TDM_MASK           (1<<0)
0535 #define MAX98926_DAI_TDM_SHIFT      0
0536 #define MAX98926_DAI_TDM_WIDTH      1
0537 
0538 #define MAX98926_DAI_CHANSZ_16 (1 << MAX98926_DAI_CHANSZ_SHIFT)
0539 #define MAX98926_DAI_CHANSZ_24 (2 << MAX98926_DAI_CHANSZ_SHIFT)
0540 #define MAX98926_DAI_CHANSZ_32 (3 << MAX98926_DAI_CHANSZ_SHIFT)
0541 
0542 /* MAX98926_R021_TDM_SLOT_SELECT */
0543 #define MAX98926_DAI_DO_EN_MASK     (1<<7)
0544 #define MAX98926_DAI_DO_EN_SHIFT        7
0545 #define MAX98926_DAI_DO_EN_WIDTH        1
0546 #define MAX98926_DAI_DIN_EN_MASK        (1<<6)
0547 #define MAX98926_DAI_DIN_EN_SHIFT       6
0548 #define MAX98926_DAI_DIN_EN_WIDTH       1
0549 #define MAX98926_DAI_INR_SOURCE_MASK    (0x07<<3)
0550 #define MAX98926_DAI_INR_SOURCE_SHIFT   3
0551 #define MAX98926_DAI_INR_SOURCE_WIDTH   3
0552 #define MAX98926_DAI_INL_SOURCE_MASK    (0x07<<0)
0553 #define MAX98926_DAI_INL_SOURCE_SHIFT   0
0554 #define MAX98926_DAI_INL_SOURCE_WIDTH   3
0555 
0556 /* MAX98926_R022_DOUT_CFG_VMON */
0557 #define MAX98926_DAI_VMON_EN_MASK       (1<<5)
0558 #define MAX98926_DAI_VMON_EN_SHIFT  5
0559 #define MAX98926_DAI_VMON_EN_WIDTH  1
0560 #define MAX98926_DAI_VMON_SLOT_MASK (0x1F<<0)
0561 #define MAX98926_DAI_VMON_SLOT_SHIFT    0
0562 #define MAX98926_DAI_VMON_SLOT_WIDTH    5
0563 
0564 #define MAX98926_DAI_VMON_SLOT_00_01 (0 << MAX98926_DAI_VMON_SLOT_SHIFT)
0565 #define MAX98926_DAI_VMON_SLOT_01_02 (1 << MAX98926_DAI_VMON_SLOT_SHIFT)
0566 #define MAX98926_DAI_VMON_SLOT_02_03 (2 << MAX98926_DAI_VMON_SLOT_SHIFT)
0567 #define MAX98926_DAI_VMON_SLOT_03_04 (3 << MAX98926_DAI_VMON_SLOT_SHIFT)
0568 #define MAX98926_DAI_VMON_SLOT_04_05 (4 << MAX98926_DAI_VMON_SLOT_SHIFT)
0569 #define MAX98926_DAI_VMON_SLOT_05_06 (5 << MAX98926_DAI_VMON_SLOT_SHIFT)
0570 #define MAX98926_DAI_VMON_SLOT_06_07 (6 << MAX98926_DAI_VMON_SLOT_SHIFT)
0571 #define MAX98926_DAI_VMON_SLOT_07_08 (7 << MAX98926_DAI_VMON_SLOT_SHIFT)
0572 #define MAX98926_DAI_VMON_SLOT_08_09 (8 << MAX98926_DAI_VMON_SLOT_SHIFT)
0573 #define MAX98926_DAI_VMON_SLOT_09_0A (9 << MAX98926_DAI_VMON_SLOT_SHIFT)
0574 #define MAX98926_DAI_VMON_SLOT_0A_0B (10 << MAX98926_DAI_VMON_SLOT_SHIFT)
0575 #define MAX98926_DAI_VMON_SLOT_0B_0C (11 << MAX98926_DAI_VMON_SLOT_SHIFT)
0576 #define MAX98926_DAI_VMON_SLOT_0C_0D (12 << MAX98926_DAI_VMON_SLOT_SHIFT)
0577 #define MAX98926_DAI_VMON_SLOT_0D_0E (13 << MAX98926_DAI_VMON_SLOT_SHIFT)
0578 #define MAX98926_DAI_VMON_SLOT_0E_0F (14 << MAX98926_DAI_VMON_SLOT_SHIFT)
0579 #define MAX98926_DAI_VMON_SLOT_0F_10 (15 << MAX98926_DAI_VMON_SLOT_SHIFT)
0580 #define MAX98926_DAI_VMON_SLOT_10_11 (16 << MAX98926_DAI_VMON_SLOT_SHIFT)
0581 #define MAX98926_DAI_VMON_SLOT_11_12 (17 << MAX98926_DAI_VMON_SLOT_SHIFT)
0582 #define MAX98926_DAI_VMON_SLOT_12_13 (18 << MAX98926_DAI_VMON_SLOT_SHIFT)
0583 #define MAX98926_DAI_VMON_SLOT_13_14 (19 << MAX98926_DAI_VMON_SLOT_SHIFT)
0584 #define MAX98926_DAI_VMON_SLOT_14_15 (20 << MAX98926_DAI_VMON_SLOT_SHIFT)
0585 #define MAX98926_DAI_VMON_SLOT_15_16 (21 << MAX98926_DAI_VMON_SLOT_SHIFT)
0586 #define MAX98926_DAI_VMON_SLOT_16_17 (22 << MAX98926_DAI_VMON_SLOT_SHIFT)
0587 #define MAX98926_DAI_VMON_SLOT_17_18 (23 << MAX98926_DAI_VMON_SLOT_SHIFT)
0588 #define MAX98926_DAI_VMON_SLOT_18_19 (24 << MAX98926_DAI_VMON_SLOT_SHIFT)
0589 #define MAX98926_DAI_VMON_SLOT_19_1A (25 << MAX98926_DAI_VMON_SLOT_SHIFT)
0590 #define MAX98926_DAI_VMON_SLOT_1A_1B (26 << MAX98926_DAI_VMON_SLOT_SHIFT)
0591 #define MAX98926_DAI_VMON_SLOT_1B_1C (27 << MAX98926_DAI_VMON_SLOT_SHIFT)
0592 #define MAX98926_DAI_VMON_SLOT_1C_1D (28 << MAX98926_DAI_VMON_SLOT_SHIFT)
0593 #define MAX98926_DAI_VMON_SLOT_1D_1E (29 << MAX98926_DAI_VMON_SLOT_SHIFT)
0594 #define MAX98926_DAI_VMON_SLOT_1E_1F (30 << MAX98926_DAI_VMON_SLOT_SHIFT)
0595 
0596 /* MAX98926_R023_DOUT_CFG_IMON */
0597 #define MAX98926_DAI_IMON_EN_MASK       (1<<5)
0598 #define MAX98926_DAI_IMON_EN_SHIFT  5
0599 #define MAX98926_DAI_IMON_EN_WIDTH  1
0600 #define MAX98926_DAI_IMON_SLOT_MASK (0x1F<<0)
0601 #define MAX98926_DAI_IMON_SLOT_SHIFT    0
0602 #define MAX98926_DAI_IMON_SLOT_WIDTH    5
0603 
0604 #define MAX98926_DAI_IMON_SLOT_00_01 (0 << MAX98926_DAI_IMON_SLOT_SHIFT)
0605 #define MAX98926_DAI_IMON_SLOT_01_02 (1 << MAX98926_DAI_IMON_SLOT_SHIFT)
0606 #define MAX98926_DAI_IMON_SLOT_02_03 (2 << MAX98926_DAI_IMON_SLOT_SHIFT)
0607 #define MAX98926_DAI_IMON_SLOT_03_04 (3 << MAX98926_DAI_IMON_SLOT_SHIFT)
0608 #define MAX98926_DAI_IMON_SLOT_04_05 (4 << MAX98926_DAI_IMON_SLOT_SHIFT)
0609 #define MAX98926_DAI_IMON_SLOT_05_06 (5 << MAX98926_DAI_IMON_SLOT_SHIFT)
0610 #define MAX98926_DAI_IMON_SLOT_06_07 (6 << MAX98926_DAI_IMON_SLOT_SHIFT)
0611 #define MAX98926_DAI_IMON_SLOT_07_08 (7 << MAX98926_DAI_IMON_SLOT_SHIFT)
0612 #define MAX98926_DAI_IMON_SLOT_08_09 (8 << MAX98926_DAI_IMON_SLOT_SHIFT)
0613 #define MAX98926_DAI_IMON_SLOT_09_0A (9 << MAX98926_DAI_IMON_SLOT_SHIFT)
0614 #define MAX98926_DAI_IMON_SLOT_0A_0B (10 << MAX98926_DAI_IMON_SLOT_SHIFT)
0615 #define MAX98926_DAI_IMON_SLOT_0B_0C (11 << MAX98926_DAI_IMON_SLOT_SHIFT)
0616 #define MAX98926_DAI_IMON_SLOT_0C_0D (12 << MAX98926_DAI_IMON_SLOT_SHIFT)
0617 #define MAX98926_DAI_IMON_SLOT_0D_0E (13 << MAX98926_DAI_IMON_SLOT_SHIFT)
0618 #define MAX98926_DAI_IMON_SLOT_0E_0F (14 << MAX98926_DAI_IMON_SLOT_SHIFT)
0619 #define MAX98926_DAI_IMON_SLOT_0F_10 (15 << MAX98926_DAI_IMON_SLOT_SHIFT)
0620 #define MAX98926_DAI_IMON_SLOT_10_11 (16 << MAX98926_DAI_IMON_SLOT_SHIFT)
0621 #define MAX98926_DAI_IMON_SLOT_11_12 (17 << MAX98926_DAI_IMON_SLOT_SHIFT)
0622 #define MAX98926_DAI_IMON_SLOT_12_13 (18 << MAX98926_DAI_IMON_SLOT_SHIFT)
0623 #define MAX98926_DAI_IMON_SLOT_13_14 (19 << MAX98926_DAI_IMON_SLOT_SHIFT)
0624 #define MAX98926_DAI_IMON_SLOT_14_15 (20 << MAX98926_DAI_IMON_SLOT_SHIFT)
0625 #define MAX98926_DAI_IMON_SLOT_15_16 (21 << MAX98926_DAI_IMON_SLOT_SHIFT)
0626 #define MAX98926_DAI_IMON_SLOT_16_17 (22 << MAX98926_DAI_IMON_SLOT_SHIFT)
0627 #define MAX98926_DAI_IMON_SLOT_17_18 (23 << MAX98926_DAI_IMON_SLOT_SHIFT)
0628 #define MAX98926_DAI_IMON_SLOT_18_19 (24 << MAX98926_DAI_IMON_SLOT_SHIFT)
0629 #define MAX98926_DAI_IMON_SLOT_19_1A (25 << MAX98926_DAI_IMON_SLOT_SHIFT)
0630 #define MAX98926_DAI_IMON_SLOT_1A_1B (26 << MAX98926_DAI_IMON_SLOT_SHIFT)
0631 #define MAX98926_DAI_IMON_SLOT_1B_1C (27 << MAX98926_DAI_IMON_SLOT_SHIFT)
0632 #define MAX98926_DAI_IMON_SLOT_1C_1D (28 << MAX98926_DAI_IMON_SLOT_SHIFT)
0633 #define MAX98926_DAI_IMON_SLOT_1D_1E (29 << MAX98926_DAI_IMON_SLOT_SHIFT)
0634 #define MAX98926_DAI_IMON_SLOT_1E_1F (30 << MAX98926_DAI_IMON_SLOT_SHIFT)
0635 
0636 /* MAX98926_R024_DOUT_CFG_VBAT */
0637 #define MAX98926_DAI_INTERLEAVE_SLOT_MASK       (0x1F<<0)
0638 #define MAX98926_DAI_INTERLEAVE_SLOT_SHIFT      0
0639 #define MAX98926_DAI_INTERLEAVE_SLOT_WIDTH      5
0640 
0641 /* MAX98926_R025_DOUT_CFG_VBST */
0642 #define MAX98926_DAI_VBST_EN_MASK               (1<<5)
0643 #define MAX98926_DAI_VBST_EN_SHIFT          5
0644 #define MAX98926_DAI_VBST_EN_WIDTH          1
0645 #define MAX98926_DAI_VBST_SLOT_MASK         (0x1F<<0)
0646 #define MAX98926_DAI_VBST_SLOT_SHIFT            0
0647 #define MAX98926_DAI_VBST_SLOT_WIDTH            5
0648 
0649 /* MAX98926_R026_DOUT_CFG_FLAG */
0650 #define MAX98926_DAI_FLAG_EN_MASK               (1<<5)
0651 #define MAX98926_DAI_FLAG_EN_SHIFT          5
0652 #define MAX98926_DAI_FLAG_EN_WIDTH          1
0653 #define MAX98926_DAI_FLAG_SLOT_MASK         (0x1F<<0)
0654 #define MAX98926_DAI_FLAG_SLOT_SHIFT            0
0655 #define MAX98926_DAI_FLAG_SLOT_WIDTH            5
0656 
0657 /* MAX98926_R027_DOUT_HIZ_CFG1 */
0658 #define MAX98926_DAI_SLOT_HIZ_CFG1_MASK         (0xFF<<0)
0659 #define MAX98926_DAI_SLOT_HIZ_CFG1_SHIFT            0
0660 #define MAX98926_DAI_SLOT_HIZ_CFG1_WIDTH            8
0661 
0662 /* MAX98926_R028_DOUT_HIZ_CFG2 */
0663 #define MAX98926_DAI_SLOT_HIZ_CFG2_MASK         (0xFF<<0)
0664 #define MAX98926_DAI_SLOT_HIZ_CFG2_SHIFT            0
0665 #define MAX98926_DAI_SLOT_HIZ_CFG2_WIDTH            8
0666 
0667 /* MAX98926_R029_DOUT_HIZ_CFG3 */
0668 #define MAX98926_DAI_SLOT_HIZ_CFG3_MASK         (0xFF<<0)
0669 #define MAX98926_DAI_SLOT_HIZ_CFG3_SHIFT            0
0670 #define MAX98926_DAI_SLOT_HIZ_CFG3_WIDTH            8
0671 
0672 /* MAX98926_R02A_DOUT_HIZ_CFG4 */
0673 #define MAX98926_DAI_SLOT_HIZ_CFG4_MASK         (0xFF<<0)
0674 #define MAX98926_DAI_SLOT_HIZ_CFG4_SHIFT            0
0675 #define MAX98926_DAI_SLOT_HIZ_CFG4_WIDTH            8
0676 
0677 /* MAX98926_R02B_DOUT_DRV_STRENGTH */
0678 #define MAX98926_DAI_OUT_DRIVE_MASK             (0x03<<0)
0679 #define MAX98926_DAI_OUT_DRIVE_SHIFT                0
0680 #define MAX98926_DAI_OUT_DRIVE_WIDTH                2
0681 
0682 /* MAX98926_R02C_FILTERS */
0683 #define MAX98926_ADC_DITHER_EN_MASK             (1<<7)
0684 #define MAX98926_ADC_DITHER_EN_SHIFT                7
0685 #define MAX98926_ADC_DITHER_EN_WIDTH                1
0686 #define MAX98926_IV_DCB_EN_MASK                 (1<<6)
0687 #define MAX98926_IV_DCB_EN_SHIFT                    6
0688 #define MAX98926_IV_DCB_EN_WIDTH                    1
0689 #define MAX98926_DAC_DITHER_EN_MASK             (1<<4)
0690 #define MAX98926_DAC_DITHER_EN_SHIFT                4
0691 #define MAX98926_DAC_DITHER_EN_WIDTH                1
0692 #define MAX98926_DAC_FILTER_MODE_MASK               (1<<3)
0693 #define MAX98926_DAC_FILTER_MODE_SHIFT          3
0694 #define MAX98926_DAC_FILTER_MODE_WIDTH          1
0695 #define MAX98926_DAC_HPF_MASK               (0x07<<0)
0696 #define MAX98926_DAC_HPF_SHIFT                  0
0697 #define MAX98926_DAC_HPF_WIDTH                  3
0698 #define MAX98926_DAC_HPF_DISABLE        (0 << MAX98926_DAC_HPF_SHIFT)
0699 #define MAX98926_DAC_HPF_DC_BLOCK       (1 << MAX98926_DAC_HPF_SHIFT)
0700 #define MAX98926_DAC_HPF_EN_100     (2 << MAX98926_DAC_HPF_SHIFT)
0701 #define MAX98926_DAC_HPF_EN_200     (3 << MAX98926_DAC_HPF_SHIFT)
0702 #define MAX98926_DAC_HPF_EN_400     (4 << MAX98926_DAC_HPF_SHIFT)
0703 #define MAX98926_DAC_HPF_EN_800     (5 << MAX98926_DAC_HPF_SHIFT)
0704 
0705 /* MAX98926_R02D_GAIN */
0706 #define MAX98926_DAC_IN_SEL_MASK    (0x03<<5)
0707 #define MAX98926_DAC_IN_SEL_SHIFT   5
0708 #define MAX98926_DAC_IN_SEL_WIDTH   2
0709 #define MAX98926_SPK_GAIN_MASK      (0x1F<<0)
0710 #define MAX98926_SPK_GAIN_SHIFT     0
0711 #define MAX98926_SPK_GAIN_WIDTH     5
0712 
0713 #define MAX98926_DAC_IN_SEL_LEFT_DAI (0 << MAX98926_DAC_IN_SEL_SHIFT)
0714 #define MAX98926_DAC_IN_SEL_RIGHT_DAI (1 << MAX98926_DAC_IN_SEL_SHIFT)
0715 #define MAX98926_DAC_IN_SEL_SUMMED_DAI (2 << MAX98926_DAC_IN_SEL_SHIFT)
0716 #define MAX98926_DAC_IN_SEL_DIV2_SUMMED_DAI (3 << MAX98926_DAC_IN_SEL_SHIFT)
0717 
0718 /* MAX98926_R02E_GAIN_RAMPING */
0719 #define MAX98926_SPK_RMP_EN_MASK        (1<<1)
0720 #define MAX98926_SPK_RMP_EN_SHIFT       1
0721 #define MAX98926_SPK_RMP_EN_WIDTH       1
0722 #define MAX98926_SPK_ZCD_EN_MASK        (1<<0)
0723 #define MAX98926_SPK_ZCD_EN_SHIFT       0
0724 #define MAX98926_SPK_ZCD_EN_WIDTH       1
0725 
0726 /* MAX98926_R02F_SPK_AMP */
0727 #define MAX98926_SPK_MODE_MASK      (1<<0)
0728 #define MAX98926_SPK_MODE_SHIFT     0
0729 #define MAX98926_SPK_MODE_WIDTH     1
0730 #define MAX98926_INSELECT_MODE_MASK (1<<1)
0731 #define MAX98926_INSELECT_MODE_SHIFT    1
0732 #define MAX98926_INSELECT_MODE_WIDTH    1
0733 
0734 /* MAX98926_R030_THRESHOLD */
0735 #define MAX98926_ALC_EN_MASK            (1<<5)
0736 #define MAX98926_ALC_EN_SHIFT           5
0737 #define MAX98926_ALC_EN_WIDTH           1
0738 #define MAX98926_ALC_TH_MASK            (0x1F<<0)
0739 #define MAX98926_ALC_TH_SHIFT           0
0740 #define MAX98926_ALC_TH_WIDTH           5
0741 
0742 /* MAX98926_R031_ALC_ATTACK */
0743 #define MAX98926_ALC_ATK_STEP_MASK  (0x0F<<4)
0744 #define MAX98926_ALC_ATK_STEP_SHIFT 4
0745 #define MAX98926_ALC_ATK_STEP_WIDTH 4
0746 #define MAX98926_ALC_ATK_RATE_MASK  (0x7<<0)
0747 #define MAX98926_ALC_ATK_RATE_SHIFT 0
0748 #define MAX98926_ALC_ATK_RATE_WIDTH 3
0749 
0750 /* MAX98926_R032_ALC_ATTEN_RLS */
0751 #define MAX98926_ALC_MAX_ATTEN_MASK (0x0F<<4)
0752 #define MAX98926_ALC_MAX_ATTEN_SHIFT    4
0753 #define MAX98926_ALC_MAX_ATTEN_WIDTH    4
0754 #define MAX98926_ALC_RLS_RATE_MASK  (0x7<<0)
0755 #define MAX98926_ALC_RLS_RATE_SHIFT 0
0756 #define MAX98926_ALC_RLS_RATE_WIDTH 3
0757 
0758 /* MAX98926_R033_ALC_HOLD_RLS */
0759 #define MAX98926_ALC_RLS_TGR_MASK       (1<<0)
0760 #define MAX98926_ALC_RLS_TGR_SHIFT  0
0761 #define MAX98926_ALC_RLS_TGR_WIDTH  1
0762 
0763 /* MAX98926_R034_ALC_CONFIGURATION */
0764 #define MAX98926_ALC_MUTE_EN_MASK       (1<<7)
0765 #define MAX98926_ALC_MUTE_EN_SHIFT  7
0766 #define MAX98926_ALC_MUTE_EN_WIDTH  1
0767 #define MAX98926_ALC_MUTE_DLY_MASK  (0x07<<4)
0768 #define MAX98926_ALC_MUTE_DLY_SHIFT 4
0769 #define MAX98926_ALC_MUTE_DLY_WIDTH 3
0770 #define MAX98926_ALC_RLS_DBT_MASK       (0x07<<0)
0771 #define MAX98926_ALC_RLS_DBT_SHIFT  0
0772 #define MAX98926_ALC_RLS_DBT_WIDTH  3
0773 
0774 /* MAX98926_R035_BOOST_CONVERTER */
0775 #define MAX98926_BST_SYNC_MASK      (1<<7)
0776 #define MAX98926_BST_SYNC_SHIFT     7
0777 #define MAX98926_BST_SYNC_WIDTH     1
0778 #define MAX98926_BST_PHASE_MASK     (0x03<<4)
0779 #define MAX98926_BST_PHASE_SHIFT        4
0780 #define MAX98926_BST_PHASE_WIDTH        2
0781 #define MAX98926_BST_SKIP_MODE_MASK (0x03<<0)
0782 #define MAX98926_BST_SKIP_MODE_SHIFT    0
0783 #define MAX98926_BST_SKIP_MODE_WIDTH    2
0784 
0785 /* MAX98926_R036_BLOCK_ENABLE */
0786 #define MAX98926_BST_EN_MASK            (1<<7)
0787 #define MAX98926_BST_EN_SHIFT           7
0788 #define MAX98926_BST_EN_WIDTH           1
0789 #define MAX98926_WATCH_EN_MASK      (1<<6)
0790 #define MAX98926_WATCH_EN_SHIFT     6
0791 #define MAX98926_WATCH_EN_WIDTH     1
0792 #define MAX98926_CLKMON_EN_MASK     (1<<5)
0793 #define MAX98926_CLKMON_EN_SHIFT        5
0794 #define MAX98926_CLKMON_EN_WIDTH        1
0795 #define MAX98926_SPK_EN_MASK            (1<<4)
0796 #define MAX98926_SPK_EN_SHIFT           4
0797 #define MAX98926_SPK_EN_WIDTH           1
0798 #define MAX98926_ADC_VBST_EN_MASK       (1<<3)
0799 #define MAX98926_ADC_VBST_EN_SHIFT  3
0800 #define MAX98926_ADC_VBST_EN_WIDTH  1
0801 #define MAX98926_ADC_VBAT_EN_MASK       (1<<2)
0802 #define MAX98926_ADC_VBAT_EN_SHIFT  2
0803 #define MAX98926_ADC_VBAT_EN_WIDTH  1
0804 #define MAX98926_ADC_IMON_EN_MASK       (1<<1)
0805 #define MAX98926_ADC_IMON_EN_SHIFT  1
0806 #define MAX98926_ADC_IMON_EN_WIDTH  1
0807 #define MAX98926_ADC_VMON_EN_MASK       (1<<0)
0808 #define MAX98926_ADC_VMON_EN_SHIFT  0
0809 #define MAX98926_ADC_VMON_EN_WIDTH  1
0810 
0811 /* MAX98926_R037_CONFIGURATION */
0812 #define MAX98926_BST_VOUT_MASK      (0x0F<<4)
0813 #define MAX98926_BST_VOUT_SHIFT     4
0814 #define MAX98926_BST_VOUT_WIDTH     4
0815 #define MAX98926_THERMWARN_LEVEL_MASK   (0x03<<2)
0816 #define MAX98926_THERMWARN_LEVEL_SHIFT          2
0817 #define MAX98926_THERMWARN_LEVEL_WIDTH          2
0818 #define MAX98926_WATCH_TIME_MASK            (0x03<<0)
0819 #define MAX98926_WATCH_TIME_SHIFT           0
0820 #define MAX98926_WATCH_TIME_WIDTH           2
0821 
0822 /* MAX98926_R038_GLOBAL_ENABLE */
0823 #define MAX98926_EN_MASK            (1<<7)
0824 #define MAX98926_EN_SHIFT           7
0825 #define MAX98926_EN_WIDTH           1
0826 
0827 /* MAX98926_R03A_BOOST_LIMITER */
0828 #define MAX98926_BST_ILIM_MASK  (0xF<<4)
0829 #define MAX98926_BST_ILIM_SHIFT 4
0830 #define MAX98926_BST_ILIM_WIDTH 4
0831 
0832 /* MAX98926_R0FF_VERSION */
0833 #define MAX98926_REV_ID_MASK    (0xFF<<0)
0834 #define MAX98926_REV_ID_SHIFT   0
0835 #define MAX98926_REV_ID_WIDTH   8
0836 
0837 struct max98926_priv {
0838     struct regmap *regmap;
0839     struct snd_soc_component *component;
0840     unsigned int sysclk;
0841     unsigned int v_slot;
0842     unsigned int i_slot;
0843     unsigned int ch_size;
0844     unsigned int interleave_mode;
0845 };
0846 #endif