linux/sound/soc/codecs/max98925.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-only */
   2/*
   3 * max98925.h -- MAX98925 ALSA SoC Audio driver
   4 *
   5 * Copyright 2013-2015 Maxim Integrated Products
   6 */
   7
   8#ifndef _MAX98925_H
   9#define _MAX98925_H
  10
  11#define MAX98925_VERSION        0x51
  12#define MAX98925_VERSION1       0x80
  13#define MAX98925_VBAT_DATA              0x00
  14#define MAX98925_VBST_DATA              0x01
  15#define MAX98925_LIVE_STATUS0           0x02
  16#define MAX98925_LIVE_STATUS1           0x03
  17#define MAX98925_LIVE_STATUS2           0x04
  18#define MAX98925_STATE0                 0x05
  19#define MAX98925_STATE1                 0x06
  20#define MAX98925_STATE2                 0x07
  21#define MAX98925_FLAG0                  0x08
  22#define MAX98925_FLAG1                  0x09
  23#define MAX98925_FLAG2                  0x0A
  24#define MAX98925_IRQ_ENABLE0            0x0B
  25#define MAX98925_IRQ_ENABLE1            0x0C
  26#define MAX98925_IRQ_ENABLE2            0x0D
  27#define MAX98925_IRQ_CLEAR0             0x0E
  28#define MAX98925_IRQ_CLEAR1             0x0F
  29#define MAX98925_IRQ_CLEAR2             0x10
  30#define MAX98925_MAP0                   0x11
  31#define MAX98925_MAP1                   0x12
  32#define MAX98925_MAP2                   0x13
  33#define MAX98925_MAP3                   0x14
  34#define MAX98925_MAP4                   0x15
  35#define MAX98925_MAP5                   0x16
  36#define MAX98925_MAP6                   0x17
  37#define MAX98925_MAP7                   0x18
  38#define MAX98925_MAP8                   0x19
  39#define MAX98925_DAI_CLK_MODE1          0x1A
  40#define MAX98925_DAI_CLK_MODE2          0x1B
  41#define MAX98925_DAI_CLK_DIV_M_MSBS     0x1C
  42#define MAX98925_DAI_CLK_DIV_M_LSBS     0x1D
  43#define MAX98925_DAI_CLK_DIV_N_MSBS     0x1E
  44#define MAX98925_DAI_CLK_DIV_N_LSBS     0x1F
  45#define MAX98925_FORMAT                 0x20
  46#define MAX98925_TDM_SLOT_SELECT        0x21
  47#define MAX98925_DOUT_CFG_VMON          0x22
  48#define MAX98925_DOUT_CFG_IMON          0x23
  49#define MAX98925_DOUT_CFG_VBAT          0x24
  50#define MAX98925_DOUT_CFG_VBST          0x25
  51#define MAX98925_DOUT_CFG_FLAG          0x26
  52#define MAX98925_DOUT_HIZ_CFG1          0x27
  53#define MAX98925_DOUT_HIZ_CFG2          0x28
  54#define MAX98925_DOUT_HIZ_CFG3          0x29
  55#define MAX98925_DOUT_HIZ_CFG4          0x2A
  56#define MAX98925_DOUT_DRV_STRENGTH      0x2B
  57#define MAX98925_FILTERS                0x2C
  58#define MAX98925_GAIN                   0x2D
  59#define MAX98925_GAIN_RAMPING           0x2E
  60#define MAX98925_SPK_AMP                0x2F
  61#define MAX98925_THRESHOLD              0x30
  62#define MAX98925_ALC_ATTACK             0x31
  63#define MAX98925_ALC_ATTEN_RLS          0x32
  64#define MAX98925_ALC_HOLD_RLS           0x33
  65#define MAX98925_ALC_CONFIGURATION      0x34
  66#define MAX98925_BOOST_CONVERTER        0x35
  67#define MAX98925_BLOCK_ENABLE           0x36
  68#define MAX98925_CONFIGURATION          0x37
  69#define MAX98925_GLOBAL_ENABLE          0x38
  70#define MAX98925_BOOST_LIMITER          0x3A
  71#define MAX98925_REV_VERSION            0xFF
  72
  73#define MAX98925_REG_CNT               (MAX98925_R03A_BOOST_LIMITER+1)
  74
  75/* MAX98925 Register Bit Fields */
  76
  77/* MAX98925_R002_LIVE_STATUS0 */
  78#define M98925_THERMWARN_STATUS_MASK                    (1<<3)
  79#define M98925_THERMWARN_STATUS_SHIFT                   3
  80#define M98925_THERMWARN_STATUS_WIDTH                   1
  81#define M98925_THERMSHDN_STATUS_MASK                    (1<<1)
  82#define M98925_THERMSHDN_STATUS_SHIFT                   1
  83#define M98925_THERMSHDN_STATUS_WIDTH                   1
  84
  85/* MAX98925_R003_LIVE_STATUS1 */
  86#define M98925_SPKCURNT_STATUS_MASK                     (1<<5)
  87#define M98925_SPKCURNT_STATUS_SHIFT                    5
  88#define M98925_SPKCURNT_STATUS_WIDTH                    1
  89#define M98925_WATCHFAIL_STATUS_MASK                    (1<<4)
  90#define M98925_WATCHFAIL_STATUS_SHIFT                   4
  91#define M98925_WATCHFAIL_STATUS_WIDTH                   1
  92#define M98925_ALCINFH_STATUS_MASK                      (1<<3)
  93#define M98925_ALCINFH_STATUS_SHIFT                     3
  94#define M98925_ALCINFH_STATUS_WIDTH                     1
  95#define M98925_ALCACT_STATUS_MASK                       (1<<2)
  96#define M98925_ALCACT_STATUS_SHIFT                      2
  97#define M98925_ALCACT_STATUS_WIDTH                      1
  98#define M98925_ALCMUT_STATUS_MASK                       (1<<1)
  99#define M98925_ALCMUT_STATUS_SHIFT                      1
 100#define M98925_ALCMUT_STATUS_WIDTH                      1
 101#define M98925_ACLP_STATUS_MASK                         (1<<0)
 102#define M98925_ACLP_STATUS_SHIFT                        0
 103#define M98925_ACLP_STATUS_WIDTH                        1
 104
 105/* MAX98925_R004_LIVE_STATUS2 */
 106#define M98925_SLOTOVRN_STATUS_MASK                     (1<<6)
 107#define M98925_SLOTOVRN_STATUS_SHIFT                    6
 108#define M98925_SLOTOVRN_STATUS_WIDTH                    1
 109#define M98925_INVALSLOT_STATUS_MASK                    (1<<5)
 110#define M98925_INVALSLOT_STATUS_SHIFT                   5
 111#define M98925_INVALSLOT_STATUS_WIDTH                   1
 112#define M98925_SLOTCNFLT_STATUS_MASK                    (1<<4)
 113#define M98925_SLOTCNFLT_STATUS_SHIFT                   4
 114#define M98925_SLOTCNFLT_STATUS_WIDTH                   1
 115#define M98925_VBSTOVFL_STATUS_MASK                     (1<<3)
 116#define M98925_VBSTOVFL_STATUS_SHIFT                    3
 117#define M98925_VBSTOVFL_STATUS_WIDTH                    1
 118#define M98925_VBATOVFL_STATUS_MASK                     (1<<2)
 119#define M98925_VBATOVFL_STATUS_SHIFT                    2
 120#define M98925_VBATOVFL_STATUS_WIDTH                    1
 121#define M98925_IMONOVFL_STATUS_MASK                     (1<<1)
 122#define M98925_IMONOVFL_STATUS_SHIFT                    1
 123#define M98925_IMONOVFL_STATUS_WIDTH                    1
 124#define M98925_VMONOVFL_STATUS_MASK                     (1<<0)
 125#define M98925_VMONOVFL_STATUS_SHIFT                    0
 126#define M98925_VMONOVFL_STATUS_WIDTH                    1
 127
 128/* MAX98925_R005_STATE0 */
 129#define M98925_THERMWARN_END_STATE_MASK                 (1<<3)
 130#define M98925_THERMWARN_END_STATE_SHIFT                3
 131#define M98925_THERMWARN_END_STATE_WIDTH                1
 132#define M98925_THERMWARN_BGN_STATE_MASK                 (1<<2)
 133#define M98925_THERMWARN_BGN_STATE_SHIFT                1
 134#define M98925_THERMWARN_BGN_STATE_WIDTH                1
 135#define M98925_THERMSHDN_END_STATE_MASK                 (1<<1)
 136#define M98925_THERMSHDN_END_STATE_SHIFT                1
 137#define M98925_THERMSHDN_END_STATE_WIDTH                1
 138#define M98925_THERMSHDN_BGN_STATE_MASK                 (1<<0)
 139#define M98925_THERMSHDN_BGN_STATE_SHIFT                0
 140#define M98925_THERMSHDN_BGN_STATE_WIDTH                1
 141
 142/* MAX98925_R006_STATE1 */
 143#define M98925_SPRCURNT_STATE_MASK                      (1<<5)
 144#define M98925_SPRCURNT_STATE_SHIFT                     5
 145#define M98925_SPRCURNT_STATE_WIDTH                     1
 146#define M98925_WATCHFAIL_STATE_MASK                     (1<<4)
 147#define M98925_WATCHFAIL_STATE_SHIFT                    4
 148#define M98925_WATCHFAIL_STATE_WIDTH                    1
 149#define M98925_ALCINFH_STATE_MASK                       (1<<3)
 150#define M98925_ALCINFH_STATE_SHIFT                      3
 151#define M98925_ALCINFH_STATE_WIDTH                      1
 152#define M98925_ALCACT_STATE_MASK                        (1<<2)
 153#define M98925_ALCACT_STATE_SHIFT                       2
 154#define M98925_ALCACT_STATE_WIDTH                       1
 155#define M98925_ALCMUT_STATE_MASK                        (1<<1)
 156#define M98925_ALCMUT_STATE_SHIFT                       1
 157#define M98925_ALCMUT_STATE_WIDTH                       1
 158#define M98925_ALCP_STATE_MASK                          (1<<0)
 159#define M98925_ALCP_STATE_SHIFT                         0
 160#define M98925_ALCP_STATE_WIDTH                         1
 161
 162/* MAX98925_R007_STATE2 */
 163#define M98925_SLOTOVRN_STATE_MASK                      (1<<6)
 164#define M98925_SLOTOVRN_STATE_SHIFT                     6
 165#define M98925_SLOTOVRN_STATE_WIDTH                     1
 166#define M98925_INVALSLOT_STATE_MASK                     (1<<5)
 167#define M98925_INVALSLOT_STATE_SHIFT                    5
 168#define M98925_INVALSLOT_STATE_WIDTH                    1
 169#define M98925_SLOTCNFLT_STATE_MASK                     (1<<4)
 170#define M98925_SLOTCNFLT_STATE_SHIFT                    4
 171#define M98925_SLOTCNFLT_STATE_WIDTH                    1
 172#define M98925_VBSTOVFL_STATE_MASK                      (1<<3)
 173#define M98925_VBSTOVFL_STATE_SHIFT                     3
 174#define M98925_VBSTOVFL_STATE_WIDTH                     1
 175#define M98925_VBATOVFL_STATE_MASK                      (1<<2)
 176#define M98925_VBATOVFL_STATE_SHIFT                     2
 177#define M98925_VBATOVFL_STATE_WIDTH                     1
 178#define M98925_IMONOVFL_STATE_MASK                      (1<<1)
 179#define M98925_IMONOVFL_STATE_SHIFT                     1
 180#define M98925_IMONOVFL_STATE_WIDTH                     1
 181#define M98925_VMONOVFL_STATE_MASK                      (1<<0)
 182#define M98925_VMONOVFL_STATE_SHIFT                     0
 183#define M98925_VMONOVFL_STATE_WIDTH                     1
 184
 185/* MAX98925_R008_FLAG0 */
 186#define M98925_THERMWARN_END_FLAG_MASK                  (1<<3)
 187#define M98925_THERMWARN_END_FLAG_SHIFT                 3
 188#define M98925_THERMWARN_END_FLAG_WIDTH                 1
 189#define M98925_THERMWARN_BGN_FLAG_MASK                  (1<<2)
 190#define M98925_THERMWARN_BGN_FLAG_SHIFT                 2
 191#define M98925_THERMWARN_BGN_FLAG_WIDTH                 1
 192#define M98925_THERMSHDN_END_FLAG_MASK                  (1<<1)
 193#define M98925_THERMSHDN_END_FLAG_SHIFT                 1
 194#define M98925_THERMSHDN_END_FLAG_WIDTH                 1
 195#define M98925_THERMSHDN_BGN_FLAG_MASK                  (1<<0)
 196#define M98925_THERMSHDN_BGN_FLAG_SHIFT                 0
 197#define M98925_THERMSHDN_BGN_FLAG_WIDTH                 1
 198
 199/* MAX98925_R009_FLAG1 */
 200#define M98925_SPKCURNT_FLAG_MASK                       (1<<5)
 201#define M98925_SPKCURNT_FLAG_SHIFT                      5
 202#define M98925_SPKCURNT_FLAG_WIDTH                      1
 203#define M98925_WATCHFAIL_FLAG_MASK                      (1<<4)
 204#define M98925_WATCHFAIL_FLAG_SHIFT                     4
 205#define M98925_WATCHFAIL_FLAG_WIDTH                     1
 206#define M98925_ALCINFH_FLAG_MASK                        (1<<3)
 207#define M98925_ALCINFH_FLAG_SHIFT                       3
 208#define M98925_ALCINFH_FLAG_WIDTH                       1
 209#define M98925_ALCACT_FLAG_MASK                         (1<<2)
 210#define M98925_ALCACT_FLAG_SHIFT                        2
 211#define M98925_ALCACT_FLAG_WIDTH                        1
 212#define M98925_ALCMUT_FLAG_MASK                         (1<<1)
 213#define M98925_ALCMUT_FLAG_SHIFT                        1
 214#define M98925_ALCMUT_FLAG_WIDTH                        1
 215#define M98925_ALCP_FLAG_MASK                           (1<<0)
 216#define M98925_ALCP_FLAG_SHIFT                          0
 217#define M98925_ALCP_FLAG_WIDTH                          1
 218
 219/* MAX98925_R00A_FLAG2 */
 220#define M98925_SLOTOVRN_FLAG_MASK                       (1<<6)
 221#define M98925_SLOTOVRN_FLAG_SHIFT                      6
 222#define M98925_SLOTOVRN_FLAG_WIDTH                      1
 223#define M98925_INVALSLOT_FLAG_MASK                      (1<<5)
 224#define M98925_INVALSLOT_FLAG_SHIFT                     5
 225#define M98925_INVALSLOT_FLAG_WIDTH                     1
 226#define M98925_SLOTCNFLT_FLAG_MASK                      (1<<4)
 227#define M98925_SLOTCNFLT_FLAG_SHIFT                     4
 228#define M98925_SLOTCNFLT_FLAG_WIDTH                     1
 229#define M98925_VBSTOVFL_FLAG_MASK                       (1<<3)
 230#define M98925_VBSTOVFL_FLAG_SHIFT                      3
 231#define M98925_VBSTOVFL_FLAG_WIDTH                      1
 232#define M98925_VBATOVFL_FLAG_MASK                       (1<<2)
 233#define M98925_VBATOVFL_FLAG_SHIFT                      2
 234#define M98925_VBATOVFL_FLAG_WIDTH                      1
 235#define M98925_IMONOVFL_FLAG_MASK                       (1<<1)
 236#define M98925_IMONOVFL_FLAG_SHIFT                      1
 237#define M98925_IMONOVFL_FLAG_WIDTH                      1
 238#define M98925_VMONOVFL_FLAG_MASK                       (1<<0)
 239#define M98925_VMONOVFL_FLAG_SHIFT                      0
 240#define M98925_VMONOVFL_FLAG_WIDTH                      1
 241
 242/* MAX98925_R00B_IRQ_ENABLE0 */
 243#define M98925_THERMWARN_END_EN_MASK                    (1<<3)
 244#define M98925_THERMWARN_END_EN_SHIFT                   3
 245#define M98925_THERMWARN_END_EN_WIDTH                   1
 246#define M98925_THERMWARN_BGN_EN_MASK                    (1<<2)
 247#define M98925_THERMWARN_BGN_EN_SHIFT                   2
 248#define M98925_THERMWARN_BGN_EN_WIDTH                   1
 249#define M98925_THERMSHDN_END_EN_MASK                    (1<<1)
 250#define M98925_THERMSHDN_END_EN_SHIFT                   1
 251#define M98925_THERMSHDN_END_EN_WIDTH                   1
 252#define M98925_THERMSHDN_BGN_EN_MASK                    (1<<0)
 253#define M98925_THERMSHDN_BGN_EN_SHIFT                   0
 254#define M98925_THERMSHDN_BGN_EN_WIDTH                   1
 255
 256/* MAX98925_R00C_IRQ_ENABLE1 */
 257#define M98925_SPKCURNT_EN_MASK                         (1<<5)
 258#define M98925_SPKCURNT_EN_SHIFT                        5
 259#define M98925_SPKCURNT_EN_WIDTH                        1
 260#define M98925_WATCHFAIL_EN_MASK                        (1<<4)
 261#define M98925_WATCHFAIL_EN_SHIFT                       4
 262#define M98925_WATCHFAIL_EN_WIDTH                       1
 263#define M98925_ALCINFH_EN_MASK                          (1<<3)
 264#define M98925_ALCINFH_EN_SHIFT                         3
 265#define M98925_ALCINFH_EN_WIDTH                         1
 266#define M98925_ALCACT_EN_MASK                           (1<<2)
 267#define M98925_ALCACT_EN_SHIFT                          2
 268#define M98925_ALCACT_EN_WIDTH                          1
 269#define M98925_ALCMUT_EN_MASK                           (1<<1)
 270#define M98925_ALCMUT_EN_SHIFT                          1
 271#define M98925_ALCMUT_EN_WIDTH                          1
 272#define M98925_ALCP_EN_MASK                                     (1<<0)
 273#define M98925_ALCP_EN_SHIFT                            0
 274#define M98925_ALCP_EN_WIDTH                            1
 275
 276/* MAX98925_R00D_IRQ_ENABLE2 */
 277#define M98925_SLOTOVRN_EN_MASK                                 (1<<6)
 278#define M98925_SLOTOVRN_EN_SHIFT                                6
 279#define M98925_SLOTOVRN_EN_WIDTH                                1
 280#define M98925_INVALSLOT_EN_MASK                                (1<<5)
 281#define M98925_INVALSLOT_EN_SHIFT                               5
 282#define M98925_INVALSLOT_EN_WIDTH                               1
 283#define M98925_SLOTCNFLT_EN_MASK                                (1<<4)
 284#define M98925_SLOTCNFLT_EN_SHIFT                               4
 285#define M98925_SLOTCNFLT_EN_WIDTH                               1
 286#define M98925_VBSTOVFL_EN_MASK                                 (1<<3)
 287#define M98925_VBSTOVFL_EN_SHIFT                                3
 288#define M98925_VBSTOVFL_EN_WIDTH                                1
 289#define M98925_VBATOVFL_EN_MASK                                 (1<<2)
 290#define M98925_VBATOVFL_EN_SHIFT                                2
 291#define M98925_VBATOVFL_EN_WIDTH                                1
 292#define M98925_IMONOVFL_EN_MASK                                 (1<<1)
 293#define M98925_IMONOVFL_EN_SHIFT                                1
 294#define M98925_IMONOVFL_EN_WIDTH                                1
 295#define M98925_VMONOVFL_EN_MASK                                 (1<<0)
 296#define M98925_VMONOVFL_EN_SHIFT                                0
 297#define M98925_VMONOVFL_EN_WIDTH                                1
 298
 299/* MAX98925_R00E_IRQ_CLEAR0 */
 300#define M98925_THERMWARN_END_CLR_MASK                   (1<<3)
 301#define M98925_THERMWARN_END_CLR_SHIFT                  3
 302#define M98925_THERMWARN_END_CLR_WIDTH                  1
 303#define M98925_THERMWARN_BGN_CLR_MASK                   (1<<2)
 304#define M98925_THERMWARN_BGN_CLR_SHIFT                  2
 305#define M98925_THERMWARN_BGN_CLR_WIDTH                  1
 306#define M98925_THERMSHDN_END_CLR_MASK                   (1<<1)
 307#define M98925_THERMSHDN_END_CLR_SHIFT                  1
 308#define M98925_THERMSHDN_END_CLR_WIDTH                  1
 309#define M98925_THERMSHDN_BGN_CLR_MASK                   (1<<0)
 310#define M98925_THERMSHDN_BGN_CLR_SHIFT                  0
 311#define M98925_THERMSHDN_BGN_CLR_WIDTH                  1
 312
 313/* MAX98925_R00F_IRQ_CLEAR1 */
 314#define M98925_SPKCURNT_CLR_MASK                                (1<<5)
 315#define M98925_SPKCURNT_CLR_SHIFT                               5
 316#define M98925_SPKCURNT_CLR_WIDTH                               1
 317#define M98925_WATCHFAIL_CLR_MASK                               (1<<4)
 318#define M98925_WATCHFAIL_CLR_SHIFT                              4
 319#define M98925_WATCHFAIL_CLR_WIDTH                              1
 320#define M98925_ALCINFH_CLR_MASK                                 (1<<3)
 321#define M98925_ALCINFH_CLR_SHIFT                                3
 322#define M98925_ALCINFH_CLR_WIDTH                                1
 323#define M98925_ALCACT_CLR_MASK                                  (1<<2)
 324#define M98925_ALCACT_CLR_SHIFT                                 2
 325#define M98925_ALCACT_CLR_WIDTH                                 1
 326#define M98925_ALCMUT_CLR_MASK                                  (1<<1)
 327#define M98925_ALCMUT_CLR_SHIFT                                 1
 328#define M98925_ALCMUT_CLR_WIDTH                                 1
 329#define M98925_ALCP_CLR_MASK                                    (1<<0)
 330#define M98925_ALCP_CLR_SHIFT                                   0
 331#define M98925_ALCP_CLR_WIDTH                                   1
 332
 333/* MAX98925_R010_IRQ_CLEAR2 */
 334#define M98925_SLOTOVRN_CLR_MASK                                (1<<6)
 335#define M98925_SLOTOVRN_CLR_SHIFT                               6
 336#define M98925_SLOTOVRN_CLR_WIDTH                               1
 337#define M98925_INVALSLOT_CLR_MASK                               (1<<5)
 338#define M98925_INVALSLOT_CLR_SHIFT                              5
 339#define M98925_INVALSLOT_CLR_WIDTH                              1
 340#define M98925_SLOTCNFLT_CLR_MASK                               (1<<4)
 341#define M98925_SLOTCNFLT_CLR_SHIFT                              4
 342#define M98925_SLOTCNFLT_CLR_WIDTH                              1
 343#define M98925_VBSTOVFL_CLR_MASK                                (1<<3)
 344#define M98925_VBSTOVFL_CLR_SHIFT                               3
 345#define M98925_VBSTOVFL_CLR_WIDTH                               1
 346#define M98925_VBATOVFL_CLR_MASK                                (1<<2)
 347#define M98925_VBATOVFL_CLR_SHIFT                               2
 348#define M98925_VBATOVFL_CLR_WIDTH                               1
 349#define M98925_IMONOVFL_CLR_MASK                                (1<<1)
 350#define M98925_IMONOVFL_CLR_SHIFT                               1
 351#define M98925_IMONOVFL_CLR_WIDTH                               1
 352#define M98925_VMONOVFL_CLR_MASK                                (1<<0)
 353#define M98925_VMONOVFL_CLR_SHIFT                               0
 354#define M98925_VMONOVFL_CLR_WIDTH                               1
 355
 356/* MAX98925_R011_MAP0 */
 357#define M98925_ER_THERMWARN_EN_MASK                             (1<<7)
 358#define M98925_ER_THERMWARN_EN_SHIFT                    7
 359#define M98925_ER_THERMWARN_EN_WIDTH                    1
 360#define M98925_ER_THERMWARN_MAP_MASK                    (0x07<<4)
 361#define M98925_ER_THERMWARN_MAP_SHIFT                   4
 362#define M98925_ER_THERMWARN_MAP_WIDTH                   3
 363
 364/* MAX98925_R012_MAP1 */
 365#define M98925_ER_ALCMUT_EN_MASK                                (1<<7)
 366#define M98925_ER_ALCMUT_EN_SHIFT                               7
 367#define M98925_ER_ALCMUT_EN_WIDTH                               1
 368#define M98925_ER_ALCMUT_MAP_MASK                               (0x07<<4)
 369#define M98925_ER_ALCMUT_MAP_SHIFT                              4
 370#define M98925_ER_ALCMUT_MAP_WIDTH                              3
 371#define M98925_ER_ALCP_EN_MASK                                  (1<<3)
 372#define M98925_ER_ALCP_EN_SHIFT                                 3
 373#define M98925_ER_ALCP_EN_WIDTH                                 1
 374#define M98925_ER_ALCP_MAP_MASK                                 (0x07<<0)
 375#define M98925_ER_ALCP_MAP_SHIFT                                0
 376#define M98925_ER_ALCP_MAP_WIDTH                                3
 377
 378/* MAX98925_R013_MAP2 */
 379#define M98925_ER_ALCINFH_EN_MASK                               (1<<7)
 380#define M98925_ER_ALCINFH_EN_SHIFT                              7
 381#define M98925_ER_ALCINFH_EN_WIDTH                              1
 382#define M98925_ER_ALCINFH_MAP_MASK                              (0x07<<4)
 383#define M98925_ER_ALCINFH_MAP_SHIFT                             4
 384#define M98925_ER_ALCINFH_MAP_WIDTH                             3
 385#define M98925_ER_ALCACT_EN_MASK                                (1<<3)
 386#define M98925_ER_ALCACT_EN_SHIFT                               3
 387#define M98925_ER_ALCACT_EN_WIDTH                               1
 388#define M98925_ER_ALCACT_MAP_MASK                               (0x07<<0)
 389#define M98925_ER_ALCACT_MAP_SHIFT                              0
 390#define M98925_ER_ALCACT_MAP_WIDTH                              3
 391
 392/* MAX98925_R014_MAP3 */
 393#define M98925_ER_SPKCURNT_EN_MASK                              (1<<7)
 394#define M98925_ER_SPKCURNT_EN_SHIFT                             7
 395#define M98925_ER_SPKCURNT_EN_WIDTH                             1
 396#define M98925_ER_SPKCURNT_MAP_MASK                             (0x07<<4)
 397#define M98925_ER_SPKCURNT_MAP_SHIFT                    4
 398#define M98925_ER_SPKCURNT_MAP_WIDTH                    3
 399
 400/* MAX98925_R015_MAP4 */
 401/* RESERVED */
 402
 403/* MAX98925_R016_MAP5 */
 404#define M98925_ER_IMONOVFL_EN_MASK                              (1<<7)
 405#define M98925_ER_IMONOVFL_EN_SHIFT                             7
 406#define M98925_ER_IMONOVFL_EN_WIDTH                             1
 407#define M98925_ER_IMONOVFL_MAP_MASK                             (0x07<<4)
 408#define M98925_ER_IMONOVFL_MAP_SHIFT                    4
 409#define M98925_ER_IMONOVFL_MAP_WIDTH                    3
 410#define M98925_ER_VMONOVFL_EN_MASK                              (1<<3)
 411#define M98925_ER_VMONOVFL_EN_SHIFT                             3
 412#define M98925_ER_VMONOVFL_EN_WIDTH                             1
 413#define M98925_ER_VMONOVFL_MAP_MASK                             (0x07<<0)
 414#define M98925_ER_VMONOVFL_MAP_SHIFT                    0
 415#define M98925_ER_VMONOVFL_MAP_WIDTH                    3
 416
 417/* MAX98925_R017_MAP6 */
 418#define M98925_ER_VBSTOVFL_EN_MASK                              (1<<7)
 419#define M98925_ER_VBSTOVFL_EN_SHIFT                             7
 420#define M98925_ER_VBSTOVFL_EN_WIDTH                             1
 421#define M98925_ER_VBSTOVFL_MAP_MASK                             (0x07<<4)
 422#define M98925_ER_VBSTOVFL_MAP_SHIFT                    4
 423#define M98925_ER_VBSTOVFL_MAP_WIDTH                    3
 424#define M98925_ER_VBATOVFL_EN_MASK                              (1<<3)
 425#define M98925_ER_VBATOVFL_EN_SHIFT                             3
 426#define M98925_ER_VBATOVFL_EN_WIDTH                             1
 427#define M98925_ER_VBATOVFL_MAP_MASK                             (0x07<<0)
 428#define M98925_ER_VBATOVFL_MAP_SHIFT                    0
 429#define M98925_ER_VBATOVFL_MAP_WIDTH                    3
 430
 431/* MAX98925_R018_MAP7 */
 432#define M98925_ER_INVALSLOT_EN_MASK                             (1<<7)
 433#define M98925_ER_INVALSLOT_EN_SHIFT                    7
 434#define M98925_ER_INVALSLOT_EN_WIDTH                    1
 435#define M98925_ER_INVALSLOT_MAP_MASK                    (0x07<<4)
 436#define M98925_ER_INVALSLOT_MAP_SHIFT                   4
 437#define M98925_ER_INVALSLOT_MAP_WIDTH                   3
 438#define M98925_ER_SLOTCNFLT_EN_MASK                             (1<<3)
 439#define M98925_ER_SLOTCNFLT_EN_SHIFT                    3
 440#define M98925_ER_SLOTCNFLT_EN_WIDTH                    1
 441#define M98925_ER_SLOTCNFLT_MAP_MASK                    (0x07<<0)
 442#define M98925_ER_SLOTCNFLT_MAP_SHIFT                   0
 443#define M98925_ER_SLOTCNFLT_MAP_WIDTH                   3
 444
 445/* MAX98925_R019_MAP8 */
 446#define M98925_ER_SLOTOVRN_EN_MASK      (1<<3)
 447#define M98925_ER_SLOTOVRN_EN_SHIFT     3
 448#define M98925_ER_SLOTOVRN_EN_WIDTH     1
 449#define M98925_ER_SLOTOVRN_MAP_MASK     (0x07<<0)
 450#define M98925_ER_SLOTOVRN_MAP_SHIFT    0
 451#define M98925_ER_SLOTOVRN_MAP_WIDTH    3
 452
 453/* MAX98925_R01A_DAI_CLK_MODE1 */
 454#define M98925_DAI_CLK_SOURCE_MASK      (1<<6)
 455#define M98925_DAI_CLK_SOURCE_SHIFT     6
 456#define M98925_DAI_CLK_SOURCE_WIDTH     1
 457#define M98925_MDLL_MULT_MASK           (0x0F<<0)
 458#define M98925_MDLL_MULT_SHIFT          0
 459#define M98925_MDLL_MULT_WIDTH          4
 460
 461#define M98925_MDLL_MULT_MCLKx8         6
 462#define M98925_MDLL_MULT_MCLKx16        8
 463
 464/* MAX98925_R01B_DAI_CLK_MODE2 */
 465#define M98925_DAI_SR_MASK                      (0x0F<<4)
 466#define M98925_DAI_SR_SHIFT                     4
 467#define M98925_DAI_SR_WIDTH                     4
 468#define M98925_DAI_MAS_MASK                     (1<<3)
 469#define M98925_DAI_MAS_SHIFT                    3
 470#define M98925_DAI_MAS_WIDTH                    1
 471#define M98925_DAI_BSEL_MASK                    (0x07<<0)
 472#define M98925_DAI_BSEL_SHIFT                   0
 473#define M98925_DAI_BSEL_WIDTH                   3
 474
 475#define M98925_DAI_BSEL_32 (0 << M98925_DAI_BSEL_SHIFT)
 476#define M98925_DAI_BSEL_48 (1 << M98925_DAI_BSEL_SHIFT)
 477#define M98925_DAI_BSEL_64 (2 << M98925_DAI_BSEL_SHIFT)
 478#define M98925_DAI_BSEL_256 (6 << M98925_DAI_BSEL_SHIFT)
 479
 480/* MAX98925_R01C_DAI_CLK_DIV_M_MSBS */
 481#define M98925_DAI_M_MSBS_MASK                                  (0xFF<<0)
 482#define M98925_DAI_M_MSBS_SHIFT                                 0
 483#define M98925_DAI_M_MSBS_WIDTH                                 8
 484
 485/* MAX98925_R01D_DAI_CLK_DIV_M_LSBS */
 486#define M98925_DAI_M_LSBS_MASK                                  (0xFF<<0)
 487#define M98925_DAI_M_LSBS_SHIFT                                 0
 488#define M98925_DAI_M_LSBS_WIDTH                                 8
 489
 490/* MAX98925_R01E_DAI_CLK_DIV_N_MSBS */
 491#define M98925_DAI_N_MSBS_MASK                                  (0x7F<<0)
 492#define M98925_DAI_N_MSBS_SHIFT                                 0
 493#define M98925_DAI_N_MSBS_WIDTH                                 7
 494
 495/* MAX98925_R01F_DAI_CLK_DIV_N_LSBS */
 496#define M98925_DAI_N_LSBS_MASK                                  (0xFF<<0)
 497#define M98925_DAI_N_LSBS_SHIFT                                 0
 498#define M98925_DAI_N_LSBS_WIDTH                                 8
 499
 500/* MAX98925_R020_FORMAT */
 501#define M98925_DAI_CHANSZ_MASK                                  (0x03<<6)
 502#define M98925_DAI_CHANSZ_SHIFT                                 6
 503#define M98925_DAI_CHANSZ_WIDTH                                 2
 504#define M98925_DAI_EXTBCLK_HIZ_MASK                             (1<<4)
 505#define M98925_DAI_EXTBCLK_HIZ_SHIFT                    4
 506#define M98925_DAI_EXTBCLK_HIZ_WIDTH                    1
 507#define M98925_DAI_WCI_MASK                                             (1<<3)
 508#define M98925_DAI_WCI_SHIFT                                    3
 509#define M98925_DAI_WCI_WIDTH                                    1
 510#define M98925_DAI_BCI_MASK                                             (1<<2)
 511#define M98925_DAI_BCI_SHIFT                                    2
 512#define M98925_DAI_BCI_WIDTH                                    1
 513#define M98925_DAI_DLY_MASK                                             (1<<1)
 514#define M98925_DAI_DLY_SHIFT                                    1
 515#define M98925_DAI_DLY_WIDTH                                    1
 516#define M98925_DAI_TDM_MASK                                             (1<<0)
 517#define M98925_DAI_TDM_SHIFT                                    0
 518#define M98925_DAI_TDM_WIDTH                                    1
 519
 520#define M98925_DAI_CHANSZ_16 (1 << M98925_DAI_CHANSZ_SHIFT)
 521#define M98925_DAI_CHANSZ_24 (2 << M98925_DAI_CHANSZ_SHIFT)
 522#define M98925_DAI_CHANSZ_32 (3 << M98925_DAI_CHANSZ_SHIFT)
 523
 524/* MAX98925_R021_TDM_SLOT_SELECT */
 525#define M98925_DAI_DO_EN_MASK                                   (1<<7)
 526#define M98925_DAI_DO_EN_SHIFT                                  7
 527#define M98925_DAI_DO_EN_WIDTH                                  1
 528#define M98925_DAI_DIN_EN_MASK                                  (1<<6)
 529#define M98925_DAI_DIN_EN_SHIFT                                 6
 530#define M98925_DAI_DIN_EN_WIDTH                                 1
 531#define M98925_DAI_INR_SOURCE_MASK                              (0x07<<3)
 532#define M98925_DAI_INR_SOURCE_SHIFT                             3
 533#define M98925_DAI_INR_SOURCE_WIDTH                             3
 534#define M98925_DAI_INL_SOURCE_MASK                              (0x07<<0)
 535#define M98925_DAI_INL_SOURCE_SHIFT                             0
 536#define M98925_DAI_INL_SOURCE_WIDTH                             3
 537
 538/* MAX98925_R022_DOUT_CFG_VMON */
 539#define M98925_DAI_VMON_EN_MASK                                 (1<<5)
 540#define M98925_DAI_VMON_EN_SHIFT                                5
 541#define M98925_DAI_VMON_EN_WIDTH                                1
 542#define M98925_DAI_VMON_SLOT_MASK                               (0x1F<<0)
 543#define M98925_DAI_VMON_SLOT_SHIFT                              0
 544#define M98925_DAI_VMON_SLOT_WIDTH                              5
 545
 546#define M98925_DAI_VMON_SLOT_00_01 (0 << M98925_DAI_VMON_SLOT_SHIFT)
 547#define M98925_DAI_VMON_SLOT_01_02 (1 << M98925_DAI_VMON_SLOT_SHIFT)
 548#define M98925_DAI_VMON_SLOT_02_03 (2 << M98925_DAI_VMON_SLOT_SHIFT)
 549#define M98925_DAI_VMON_SLOT_03_04 (3 << M98925_DAI_VMON_SLOT_SHIFT)
 550#define M98925_DAI_VMON_SLOT_04_05 (4 << M98925_DAI_VMON_SLOT_SHIFT)
 551#define M98925_DAI_VMON_SLOT_05_06 (5 << M98925_DAI_VMON_SLOT_SHIFT)
 552#define M98925_DAI_VMON_SLOT_06_07 (6 << M98925_DAI_VMON_SLOT_SHIFT)
 553#define M98925_DAI_VMON_SLOT_07_08 (7 << M98925_DAI_VMON_SLOT_SHIFT)
 554#define M98925_DAI_VMON_SLOT_08_09 (8 << M98925_DAI_VMON_SLOT_SHIFT)
 555#define M98925_DAI_VMON_SLOT_09_0A (9 << M98925_DAI_VMON_SLOT_SHIFT)
 556#define M98925_DAI_VMON_SLOT_0A_0B (10 << M98925_DAI_VMON_SLOT_SHIFT)
 557#define M98925_DAI_VMON_SLOT_0B_0C (11 << M98925_DAI_VMON_SLOT_SHIFT)
 558#define M98925_DAI_VMON_SLOT_0C_0D (12 << M98925_DAI_VMON_SLOT_SHIFT)
 559#define M98925_DAI_VMON_SLOT_0D_0E (13 << M98925_DAI_VMON_SLOT_SHIFT)
 560#define M98925_DAI_VMON_SLOT_0E_0F (14 << M98925_DAI_VMON_SLOT_SHIFT)
 561#define M98925_DAI_VMON_SLOT_0F_10 (15 << M98925_DAI_VMON_SLOT_SHIFT)
 562#define M98925_DAI_VMON_SLOT_10_11 (16 << M98925_DAI_VMON_SLOT_SHIFT)
 563#define M98925_DAI_VMON_SLOT_11_12 (17 << M98925_DAI_VMON_SLOT_SHIFT)
 564#define M98925_DAI_VMON_SLOT_12_13 (18 << M98925_DAI_VMON_SLOT_SHIFT)
 565#define M98925_DAI_VMON_SLOT_13_14 (19 << M98925_DAI_VMON_SLOT_SHIFT)
 566#define M98925_DAI_VMON_SLOT_14_15 (20 << M98925_DAI_VMON_SLOT_SHIFT)
 567#define M98925_DAI_VMON_SLOT_15_16 (21 << M98925_DAI_VMON_SLOT_SHIFT)
 568#define M98925_DAI_VMON_SLOT_16_17 (22 << M98925_DAI_VMON_SLOT_SHIFT)
 569#define M98925_DAI_VMON_SLOT_17_18 (23 << M98925_DAI_VMON_SLOT_SHIFT)
 570#define M98925_DAI_VMON_SLOT_18_19 (24 << M98925_DAI_VMON_SLOT_SHIFT)
 571#define M98925_DAI_VMON_SLOT_19_1A (25 << M98925_DAI_VMON_SLOT_SHIFT)
 572#define M98925_DAI_VMON_SLOT_1A_1B (26 << M98925_DAI_VMON_SLOT_SHIFT)
 573#define M98925_DAI_VMON_SLOT_1B_1C (27 << M98925_DAI_VMON_SLOT_SHIFT)
 574#define M98925_DAI_VMON_SLOT_1C_1D (28 << M98925_DAI_VMON_SLOT_SHIFT)
 575#define M98925_DAI_VMON_SLOT_1D_1E (29 << M98925_DAI_VMON_SLOT_SHIFT)
 576#define M98925_DAI_VMON_SLOT_1E_1F (30 << M98925_DAI_VMON_SLOT_SHIFT)
 577
 578/* MAX98925_R023_DOUT_CFG_IMON */
 579#define M98925_DAI_IMON_EN_MASK                                 (1<<5)
 580#define M98925_DAI_IMON_EN_SHIFT                                5
 581#define M98925_DAI_IMON_EN_WIDTH                                1
 582#define M98925_DAI_IMON_SLOT_MASK                               (0x1F<<0)
 583#define M98925_DAI_IMON_SLOT_SHIFT                              0
 584#define M98925_DAI_IMON_SLOT_WIDTH                              5
 585
 586#define M98925_DAI_IMON_SLOT_00_01 (0 << M98925_DAI_IMON_SLOT_SHIFT)
 587#define M98925_DAI_IMON_SLOT_01_02 (1 << M98925_DAI_IMON_SLOT_SHIFT)
 588#define M98925_DAI_IMON_SLOT_02_03 (2 << M98925_DAI_IMON_SLOT_SHIFT)
 589#define M98925_DAI_IMON_SLOT_03_04 (3 << M98925_DAI_IMON_SLOT_SHIFT)
 590#define M98925_DAI_IMON_SLOT_04_05 (4 << M98925_DAI_IMON_SLOT_SHIFT)
 591#define M98925_DAI_IMON_SLOT_05_06 (5 << M98925_DAI_IMON_SLOT_SHIFT)
 592#define M98925_DAI_IMON_SLOT_06_07 (6 << M98925_DAI_IMON_SLOT_SHIFT)
 593#define M98925_DAI_IMON_SLOT_07_08 (7 << M98925_DAI_IMON_SLOT_SHIFT)
 594#define M98925_DAI_IMON_SLOT_08_09 (8 << M98925_DAI_IMON_SLOT_SHIFT)
 595#define M98925_DAI_IMON_SLOT_09_0A (9 << M98925_DAI_IMON_SLOT_SHIFT)
 596#define M98925_DAI_IMON_SLOT_0A_0B (10 << M98925_DAI_IMON_SLOT_SHIFT)
 597#define M98925_DAI_IMON_SLOT_0B_0C (11 << M98925_DAI_IMON_SLOT_SHIFT)
 598#define M98925_DAI_IMON_SLOT_0C_0D (12 << M98925_DAI_IMON_SLOT_SHIFT)
 599#define M98925_DAI_IMON_SLOT_0D_0E (13 << M98925_DAI_IMON_SLOT_SHIFT)
 600#define M98925_DAI_IMON_SLOT_0E_0F (14 << M98925_DAI_IMON_SLOT_SHIFT)
 601#define M98925_DAI_IMON_SLOT_0F_10 (15 << M98925_DAI_IMON_SLOT_SHIFT)
 602#define M98925_DAI_IMON_SLOT_10_11 (16 << M98925_DAI_IMON_SLOT_SHIFT)
 603#define M98925_DAI_IMON_SLOT_11_12 (17 << M98925_DAI_IMON_SLOT_SHIFT)
 604#define M98925_DAI_IMON_SLOT_12_13 (18 << M98925_DAI_IMON_SLOT_SHIFT)
 605#define M98925_DAI_IMON_SLOT_13_14 (19 << M98925_DAI_IMON_SLOT_SHIFT)
 606#define M98925_DAI_IMON_SLOT_14_15 (20 << M98925_DAI_IMON_SLOT_SHIFT)
 607#define M98925_DAI_IMON_SLOT_15_16 (21 << M98925_DAI_IMON_SLOT_SHIFT)
 608#define M98925_DAI_IMON_SLOT_16_17 (22 << M98925_DAI_IMON_SLOT_SHIFT)
 609#define M98925_DAI_IMON_SLOT_17_18 (23 << M98925_DAI_IMON_SLOT_SHIFT)
 610#define M98925_DAI_IMON_SLOT_18_19 (24 << M98925_DAI_IMON_SLOT_SHIFT)
 611#define M98925_DAI_IMON_SLOT_19_1A (25 << M98925_DAI_IMON_SLOT_SHIFT)
 612#define M98925_DAI_IMON_SLOT_1A_1B (26 << M98925_DAI_IMON_SLOT_SHIFT)
 613#define M98925_DAI_IMON_SLOT_1B_1C (27 << M98925_DAI_IMON_SLOT_SHIFT)
 614#define M98925_DAI_IMON_SLOT_1C_1D (28 << M98925_DAI_IMON_SLOT_SHIFT)
 615#define M98925_DAI_IMON_SLOT_1D_1E (29 << M98925_DAI_IMON_SLOT_SHIFT)
 616#define M98925_DAI_IMON_SLOT_1E_1F (30 << M98925_DAI_IMON_SLOT_SHIFT)
 617
 618/* MAX98925_R024_DOUT_CFG_VBAT */
 619#define M98925_DAI_VBAT_EN_MASK                                 (1<<5)
 620#define M98925_DAI_VBAT_EN_SHIFT                                5
 621#define M98925_DAI_VBAT_EN_WIDTH                                1
 622#define M98925_DAI_VBAT_SLOT_MASK                               (0x1F<<0)
 623#define M98925_DAI_VBAT_SLOT_SHIFT                              0
 624#define M98925_DAI_VBAT_SLOT_WIDTH                              5
 625
 626/* MAX98925_R025_DOUT_CFG_VBST */
 627#define M98925_DAI_VBST_EN_MASK                                 (1<<5)
 628#define M98925_DAI_VBST_EN_SHIFT                                5
 629#define M98925_DAI_VBST_EN_WIDTH                                1
 630#define M98925_DAI_VBST_SLOT_MASK                               (0x1F<<0)
 631#define M98925_DAI_VBST_SLOT_SHIFT                              0
 632#define M98925_DAI_VBST_SLOT_WIDTH                              5
 633
 634/* MAX98925_R026_DOUT_CFG_FLAG */
 635#define M98925_DAI_FLAG_EN_MASK                                 (1<<5)
 636#define M98925_DAI_FLAG_EN_SHIFT                                5
 637#define M98925_DAI_FLAG_EN_WIDTH                                1
 638#define M98925_DAI_FLAG_SLOT_MASK                               (0x1F<<0)
 639#define M98925_DAI_FLAG_SLOT_SHIFT                              0
 640#define M98925_DAI_FLAG_SLOT_WIDTH                              5
 641
 642/* MAX98925_R027_DOUT_HIZ_CFG1 */
 643#define M98925_DAI_SLOT_HIZ_CFG1_MASK                   (0xFF<<0)
 644#define M98925_DAI_SLOT_HIZ_CFG1_SHIFT                  0
 645#define M98925_DAI_SLOT_HIZ_CFG1_WIDTH                  8
 646
 647/* MAX98925_R028_DOUT_HIZ_CFG2 */
 648#define M98925_DAI_SLOT_HIZ_CFG2_MASK                   (0xFF<<0)
 649#define M98925_DAI_SLOT_HIZ_CFG2_SHIFT                  0
 650#define M98925_DAI_SLOT_HIZ_CFG2_WIDTH                  8
 651
 652/* MAX98925_R029_DOUT_HIZ_CFG3 */
 653#define M98925_DAI_SLOT_HIZ_CFG3_MASK                   (0xFF<<0)
 654#define M98925_DAI_SLOT_HIZ_CFG3_SHIFT                  0
 655#define M98925_DAI_SLOT_HIZ_CFG3_WIDTH                  8
 656
 657/* MAX98925_R02A_DOUT_HIZ_CFG4 */
 658#define M98925_DAI_SLOT_HIZ_CFG4_MASK                   (0xFF<<0)
 659#define M98925_DAI_SLOT_HIZ_CFG4_SHIFT                  0
 660#define M98925_DAI_SLOT_HIZ_CFG4_WIDTH                  8
 661
 662/* MAX98925_R02B_DOUT_DRV_STRENGTH */
 663#define M98925_DAI_OUT_DRIVE_MASK                               (0x03<<0)
 664#define M98925_DAI_OUT_DRIVE_SHIFT                              0
 665#define M98925_DAI_OUT_DRIVE_WIDTH                              2
 666
 667/* MAX98925_R02C_FILTERS */
 668#define M98925_ADC_DITHER_EN_MASK                               (1<<7)
 669#define M98925_ADC_DITHER_EN_SHIFT                              7
 670#define M98925_ADC_DITHER_EN_WIDTH                              1
 671#define M98925_IV_DCB_EN_MASK                                   (1<<6)
 672#define M98925_IV_DCB_EN_SHIFT                                  6
 673#define M98925_IV_DCB_EN_WIDTH                                  1
 674#define M98925_DAC_DITHER_EN_MASK                               (1<<4)
 675#define M98925_DAC_DITHER_EN_SHIFT                              4
 676#define M98925_DAC_DITHER_EN_WIDTH                              1
 677#define M98925_DAC_FILTER_MODE_MASK                             (1<<3)
 678#define M98925_DAC_FILTER_MODE_SHIFT                    3
 679#define M98925_DAC_FILTER_MODE_WIDTH                    1
 680#define M98925_DAC_HPF_MASK                             (0x07<<0)
 681#define M98925_DAC_HPF_SHIFT                                    0
 682#define M98925_DAC_HPF_WIDTH                                    3
 683#define M98925_DAC_HPF_DISABLE          (0 << M98925_DAC_HPF_SHIFT)
 684#define M98925_DAC_HPF_DC_BLOCK         (1 << M98925_DAC_HPF_SHIFT)
 685#define M98925_DAC_HPF_EN_100           (2 << M98925_DAC_HPF_SHIFT)
 686#define M98925_DAC_HPF_EN_200           (3 << M98925_DAC_HPF_SHIFT)
 687#define M98925_DAC_HPF_EN_400           (4 << M98925_DAC_HPF_SHIFT)
 688#define M98925_DAC_HPF_EN_800           (5 << M98925_DAC_HPF_SHIFT)
 689
 690/* MAX98925_R02D_GAIN */
 691#define M98925_DAC_IN_SEL_MASK                                  (0x03<<5)
 692#define M98925_DAC_IN_SEL_SHIFT                                 5
 693#define M98925_DAC_IN_SEL_WIDTH                                 2
 694#define M98925_SPK_GAIN_MASK                                    (0x1F<<0)
 695#define M98925_SPK_GAIN_SHIFT                                   0
 696#define M98925_SPK_GAIN_WIDTH                                   5
 697
 698#define M98925_DAC_IN_SEL_LEFT_DAI (0 << M98925_DAC_IN_SEL_SHIFT)
 699#define M98925_DAC_IN_SEL_RIGHT_DAI (1 << M98925_DAC_IN_SEL_SHIFT)
 700#define M98925_DAC_IN_SEL_SUMMED_DAI (2 << M98925_DAC_IN_SEL_SHIFT)
 701#define M98925_DAC_IN_SEL_DIV2_SUMMED_DAI (3 << M98925_DAC_IN_SEL_SHIFT)
 702
 703/* MAX98925_R02E_GAIN_RAMPING */
 704#define M98925_SPK_RMP_EN_MASK          (1<<1)
 705#define M98925_SPK_RMP_EN_SHIFT         1
 706#define M98925_SPK_RMP_EN_WIDTH         1
 707#define M98925_SPK_ZCD_EN_MASK          (1<<0)
 708#define M98925_SPK_ZCD_EN_SHIFT         0
 709#define M98925_SPK_ZCD_EN_WIDTH         1
 710
 711/* MAX98925_R02F_SPK_AMP */
 712#define M98925_SPK_MODE_MASK            (1<<0)
 713#define M98925_SPK_MODE_SHIFT           0
 714#define M98925_SPK_MODE_WIDTH           1
 715
 716/* MAX98925_R030_THRESHOLD */
 717#define M98925_ALC_EN_MASK                      (1<<5)
 718#define M98925_ALC_EN_SHIFT                     5
 719#define M98925_ALC_EN_WIDTH                     1
 720#define M98925_ALC_TH_MASK                      (0x1F<<0)
 721#define M98925_ALC_TH_SHIFT                     0
 722#define M98925_ALC_TH_WIDTH                     5
 723
 724/* MAX98925_R031_ALC_ATTACK */
 725#define M98925_ALC_ATK_STEP_MASK        (0x0F<<4)
 726#define M98925_ALC_ATK_STEP_SHIFT       4
 727#define M98925_ALC_ATK_STEP_WIDTH       4
 728#define M98925_ALC_ATK_RATE_MASK        (0x7<<0)
 729#define M98925_ALC_ATK_RATE_SHIFT       0
 730#define M98925_ALC_ATK_RATE_WIDTH       3
 731
 732/* MAX98925_R032_ALC_ATTEN_RLS */
 733#define M98925_ALC_MAX_ATTEN_MASK       (0x0F<<4)
 734#define M98925_ALC_MAX_ATTEN_SHIFT      4
 735#define M98925_ALC_MAX_ATTEN_WIDTH      4
 736#define M98925_ALC_RLS_RATE_MASK        (0x7<<0)
 737#define M98925_ALC_RLS_RATE_SHIFT       0
 738#define M98925_ALC_RLS_RATE_WIDTH       3
 739
 740/* MAX98925_R033_ALC_HOLD_RLS */
 741#define M98925_ALC_RLS_TGR_MASK         (1<<0)
 742#define M98925_ALC_RLS_TGR_SHIFT        0
 743#define M98925_ALC_RLS_TGR_WIDTH        1
 744
 745/* MAX98925_R034_ALC_CONFIGURATION */
 746#define M98925_ALC_MUTE_EN_MASK         (1<<7)
 747#define M98925_ALC_MUTE_EN_SHIFT        7
 748#define M98925_ALC_MUTE_EN_WIDTH        1
 749#define M98925_ALC_MUTE_DLY_MASK        (0x07<<4)
 750#define M98925_ALC_MUTE_DLY_SHIFT       4
 751#define M98925_ALC_MUTE_DLY_WIDTH       3
 752#define M98925_ALC_RLS_DBT_MASK         (0x07<<0)
 753#define M98925_ALC_RLS_DBT_SHIFT        0
 754#define M98925_ALC_RLS_DBT_WIDTH        3
 755
 756/* MAX98925_R035_BOOST_CONVERTER */
 757#define M98925_BST_SYNC_MASK            (1<<7)
 758#define M98925_BST_SYNC_SHIFT           7
 759#define M98925_BST_SYNC_WIDTH           1
 760#define M98925_BST_PHASE_MASK           (0x03<<4)
 761#define M98925_BST_PHASE_SHIFT          4
 762#define M98925_BST_PHASE_WIDTH          2
 763#define M98925_BST_SKIP_MODE_MASK       (0x03<<0)
 764#define M98925_BST_SKIP_MODE_SHIFT      0
 765#define M98925_BST_SKIP_MODE_WIDTH      2
 766
 767/* MAX98925_R036_BLOCK_ENABLE */
 768#define M98925_BST_EN_MASK                      (1<<7)
 769#define M98925_BST_EN_SHIFT                     7
 770#define M98925_BST_EN_WIDTH                     1
 771#define M98925_WATCH_EN_MASK            (1<<6)
 772#define M98925_WATCH_EN_SHIFT           6
 773#define M98925_WATCH_EN_WIDTH           1
 774#define M98925_CLKMON_EN_MASK           (1<<5)
 775#define M98925_CLKMON_EN_SHIFT          5
 776#define M98925_CLKMON_EN_WIDTH          1
 777#define M98925_SPK_EN_MASK                      (1<<4)
 778#define M98925_SPK_EN_SHIFT                     4
 779#define M98925_SPK_EN_WIDTH                     1
 780#define M98925_ADC_VBST_EN_MASK         (1<<3)
 781#define M98925_ADC_VBST_EN_SHIFT        3
 782#define M98925_ADC_VBST_EN_WIDTH        1
 783#define M98925_ADC_VBAT_EN_MASK         (1<<2)
 784#define M98925_ADC_VBAT_EN_SHIFT        2
 785#define M98925_ADC_VBAT_EN_WIDTH        1
 786#define M98925_ADC_IMON_EN_MASK         (1<<1)
 787#define M98925_ADC_IMON_EN_SHIFT        1
 788#define M98925_ADC_IMON_EN_WIDTH        1
 789#define M98925_ADC_VMON_EN_MASK         (1<<0)
 790#define M98925_ADC_VMON_EN_SHIFT        0
 791#define M98925_ADC_VMON_EN_WIDTH        1
 792
 793/* MAX98925_R037_CONFIGURATION */
 794#define M98925_BST_VOUT_MASK            (0x0F<<4)
 795#define M98925_BST_VOUT_SHIFT           4
 796#define M98925_BST_VOUT_WIDTH           4
 797#define M98925_THERMWARN_LEVEL_MASK     (0x03<<2)
 798#define M98925_THERMWARN_LEVEL_SHIFT                    2
 799#define M98925_THERMWARN_LEVEL_WIDTH                    2
 800#define M98925_WATCH_TIME_MASK                  (0x03<<0)
 801#define M98925_WATCH_TIME_SHIFT                 0
 802#define M98925_WATCH_TIME_WIDTH                 2
 803
 804/* MAX98925_R038_GLOBAL_ENABLE */
 805#define M98925_EN_MASK                  (1<<7)
 806#define M98925_EN_SHIFT                 7
 807#define M98925_EN_WIDTH                 1
 808
 809/* MAX98925_R03A_BOOST_LIMITER */
 810#define M98925_BST_ILIM_MASK    (0x1F<<3)
 811#define M98925_BST_ILIM_SHIFT   3
 812#define M98925_BST_ILIM_WIDTH   5
 813
 814/* MAX98925_R0FF_VERSION */
 815#define M98925_REV_ID_MASK      (0xFF<<0)
 816#define M98925_REV_ID_SHIFT     0
 817#define M98925_REV_ID_WIDTH     8
 818
 819struct max98925_priv {
 820        struct regmap *regmap;
 821        struct snd_soc_component *component;
 822        struct max98925_pdata *pdata;
 823        unsigned int sysclk;
 824        unsigned int v_slot;
 825        unsigned int i_slot;
 826        unsigned int spk_gain;
 827        unsigned int ch_size;
 828};
 829#endif
 830