/*
 * Copyright (C) 2014 NXP Semiconductors, All Rights Reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 */

#ifndef TFA9891_GENREGS_H
#define TFA9891_GENREGS_H


#define TFA98XX_STATUSREG                  0x00
#define TFA98XX_BATTERYVOLTAGE             0x01
#define TFA9891_TEMPERATURE                0x02
#define TFA98XX_REVISIONNUMBER             0x03
#define TFA98XX_I2SREG                     0x04
#define TFA98XX_BAT_PROT                   0x05
#define TFA98XX_AUDIO_CTR                  0x06
#define TFA98XX_DCDCBOOST                  0x07
#define TFA98XX_SPKR_CALIBRATION           0x08
#define TFA98XX_SYS_CTRL                   0x09
#define TFA98XX_I2S_SEL_REG                0x0a
#define TFA98XX_HIDDEN_MTP_KEY2            0x0b
#define TFA98XX_INTERRUPT_REG              0x0f
#define TFA98XX_PDM_CTRL                   0x10
#define TFA98XX_PDM_OUT_CTRL               0x11
#define TFA98XX_PDM_DS4_R                  0x12
#define TFA98XX_PDM_DS4_L                  0x13
#define TFA98XX_CTRL_SAAM_PGA              0x22
#define TFA98XX_MISC_CTRL                  0x25
#define TFA98XX_CURRENTSENSE1              0x46
#define TFA98XX_CURRENTSENSE4              0x49
#define TFA98XX_HIDDEN_MTP_CTRL_REG3       0x62
#define TFA9891_CF_CONTROLS                0x70
#define TFA9891_CF_MAD                     0x71
#define TFA9891_CF_MEM                     0x72
#define TFA9891_CF_STATUS                  0x73
#define TFA98XX_KEY2PROTECTED_SPKR_CAL_MTP 0x80

/*
 * (0x00)-StatusReg
 */

/*
 * POR
 */
#define TFA98XX_STATUSREG_VDDS                              (0x1<<0)
#define TFA98XX_STATUSREG_VDDS_POS                                 0
#define TFA98XX_STATUSREG_VDDS_LEN                                 1
#define TFA98XX_STATUSREG_VDDS_MAX                                 1
#define TFA98XX_STATUSREG_VDDS_MSK                               0x1

/*
 * PLL_LOCK
 */
#define TFA98XX_STATUSREG_PLLS                              (0x1<<1)
#define TFA98XX_STATUSREG_PLLS_POS                                 1
#define TFA98XX_STATUSREG_PLLS_LEN                                 1
#define TFA98XX_STATUSREG_PLLS_MAX                                 1
#define TFA98XX_STATUSREG_PLLS_MSK                               0x2

/*
 * flag_otpok
 */
#define TFA98XX_STATUSREG_OTDS                              (0x1<<2)
#define TFA98XX_STATUSREG_OTDS_POS                                 2
#define TFA98XX_STATUSREG_OTDS_LEN                                 1
#define TFA98XX_STATUSREG_OTDS_MAX                                 1
#define TFA98XX_STATUSREG_OTDS_MSK                               0x4

/*
 * flag_ovpok
 */
#define TFA98XX_STATUSREG_OVDS                              (0x1<<3)
#define TFA98XX_STATUSREG_OVDS_POS                                 3
#define TFA98XX_STATUSREG_OVDS_LEN                                 1
#define TFA98XX_STATUSREG_OVDS_MAX                                 1
#define TFA98XX_STATUSREG_OVDS_MSK                               0x8

/*
 * flag_uvpok
 */
#define TFA98XX_STATUSREG_UVDS                              (0x1<<4)
#define TFA98XX_STATUSREG_UVDS_POS                                 4
#define TFA98XX_STATUSREG_UVDS_LEN                                 1
#define TFA98XX_STATUSREG_UVDS_MAX                                 1
#define TFA98XX_STATUSREG_UVDS_MSK                              0x10

/*
 * flag_OCP_alarm
 */
#define TFA98XX_STATUSREG_OCDS                              (0x1<<5)
#define TFA98XX_STATUSREG_OCDS_POS                                 5
#define TFA98XX_STATUSREG_OCDS_LEN                                 1
#define TFA98XX_STATUSREG_OCDS_MAX                                 1
#define TFA98XX_STATUSREG_OCDS_MSK                              0x20

/*
 * flag_clocks_stable
 */
#define TFA98XX_STATUSREG_CLKS                              (0x1<<6)
#define TFA98XX_STATUSREG_CLKS_POS                                 6
#define TFA98XX_STATUSREG_CLKS_LEN                                 1
#define TFA98XX_STATUSREG_CLKS_MAX                                 1
#define TFA98XX_STATUSREG_CLKS_MSK                              0x40

/*
 * CLIP
 */
#define TFA98XX_STATUSREG_CLIPS                             (0x1<<7)
#define TFA98XX_STATUSREG_CLIPS_POS                                7
#define TFA98XX_STATUSREG_CLIPS_LEN                                1
#define TFA98XX_STATUSREG_CLIPS_MAX                                1
#define TFA98XX_STATUSREG_CLIPS_MSK                             0x80

/*
 * mtp_busy
 */
#define TFA98XX_STATUSREG_MTPB                              (0x1<<8)
#define TFA98XX_STATUSREG_MTPB_POS                                 8
#define TFA98XX_STATUSREG_MTPB_LEN                                 1
#define TFA98XX_STATUSREG_MTPB_MAX                                 1
#define TFA98XX_STATUSREG_MTPB_MSK                             0x100

/*
 * flag_pwrokbst
 */
#define TFA98XX_STATUSREG_DCCS                              (0x1<<9)
#define TFA98XX_STATUSREG_DCCS_POS                                 9
#define TFA98XX_STATUSREG_DCCS_LEN                                 1
#define TFA98XX_STATUSREG_DCCS_MAX                                 1
#define TFA98XX_STATUSREG_DCCS_MSK                             0x200

/*
 * flag_cf_speakererror
 */
#define TFA98XX_STATUSREG_SPKS                             (0x1<<10)
#define TFA98XX_STATUSREG_SPKS_POS                                10
#define TFA98XX_STATUSREG_SPKS_LEN                                 1
#define TFA98XX_STATUSREG_SPKS_MAX                                 1
#define TFA98XX_STATUSREG_SPKS_MSK                             0x400

/*
 * flag_cold_started
 */
#define TFA98XX_STATUSREG_ACS                              (0x1<<11)
#define TFA98XX_STATUSREG_ACS_POS                                 11
#define TFA98XX_STATUSREG_ACS_LEN                                  1
#define TFA98XX_STATUSREG_ACS_MAX                                  1
#define TFA98XX_STATUSREG_ACS_MSK                              0x800

/*
 * flag_engage
 */
#define TFA98XX_STATUSREG_SWS                              (0x1<<12)
#define TFA98XX_STATUSREG_SWS_POS                                 12
#define TFA98XX_STATUSREG_SWS_LEN                                  1
#define TFA98XX_STATUSREG_SWS_MAX                                  1
#define TFA98XX_STATUSREG_SWS_MSK                             0x1000

/*
 * flag_watchdog_reset
 */
#define TFA98XX_STATUSREG_WDS                              (0x1<<13)
#define TFA98XX_STATUSREG_WDS_POS                                 13
#define TFA98XX_STATUSREG_WDS_LEN                                  1
#define TFA98XX_STATUSREG_WDS_MAX                                  1
#define TFA98XX_STATUSREG_WDS_MSK                             0x2000

/*
 * flag_enbl_amp
 */
#define TFA98XX_STATUSREG_AMPS                             (0x1<<14)
#define TFA98XX_STATUSREG_AMPS_POS                                14
#define TFA98XX_STATUSREG_AMPS_LEN                                 1
#define TFA98XX_STATUSREG_AMPS_MAX                                 1
#define TFA98XX_STATUSREG_AMPS_MSK                            0x4000

/*
 * flag_enbl_ref
 */
#define TFA98XX_STATUSREG_AREFS                            (0x1<<15)
#define TFA98XX_STATUSREG_AREFS_POS                               15
#define TFA98XX_STATUSREG_AREFS_LEN                                1
#define TFA98XX_STATUSREG_AREFS_MAX                                1
#define TFA98XX_STATUSREG_AREFS_MSK                           0x8000

/*
 * (0x01)-BatteryVoltage
 */

/*
 * bat_adc
 */
#define TFA98XX_BATTERYVOLTAGE_BATS                       (0x3ff<<0)
#define TFA98XX_BATTERYVOLTAGE_BATS_POS                            0
#define TFA98XX_BATTERYVOLTAGE_BATS_LEN                           10
#define TFA98XX_BATTERYVOLTAGE_BATS_MAX                         1023
#define TFA98XX_BATTERYVOLTAGE_BATS_MSK                        0x3ff


/*
 * (0x02)-Temperature
 */

/*
 * temp_adc
 */
#define TFA9891_TEMPERATURE_TEMPS                         (0x1ff<<0)
#define TFA9891_TEMPERATURE_TEMPS_POS                              0
#define TFA9891_TEMPERATURE_TEMPS_LEN                              9
#define TFA9891_TEMPERATURE_TEMPS_MAX                            511
#define TFA9891_TEMPERATURE_TEMPS_MSK                          0x1ff


/*
 * (0x03)-RevisionNumber
 */

/*
 * rev_reg
 */
#define TFA98XX_REVISIONNUMBER_REV                         (0xff<<0)
#define TFA98XX_REVISIONNUMBER_REV_POS                             0
#define TFA98XX_REVISIONNUMBER_REV_LEN                             8
#define TFA98XX_REVISIONNUMBER_REV_MAX                           255
#define TFA98XX_REVISIONNUMBER_REV_MSK                          0xff


/*
 * (0x04)-I2SReg
 */

/*
 * i2s_seti
 */
#define TFA98XX_I2SREG_I2SF                                 (0x7<<0)
#define TFA98XX_I2SREG_I2SF_POS                                    0
#define TFA98XX_I2SREG_I2SF_LEN                                    3
#define TFA98XX_I2SREG_I2SF_MAX                                    7
#define TFA98XX_I2SREG_I2SF_MSK                                  0x7

/*
 * chan_sel1
 */
#define TFA98XX_I2SREG_CHS12                                (0x3<<3)
#define TFA98XX_I2SREG_CHS12_POS                                   3
#define TFA98XX_I2SREG_CHS12_LEN                                   2
#define TFA98XX_I2SREG_CHS12_MAX                                   3
#define TFA98XX_I2SREG_CHS12_MSK                                0x18

/*
 * lr_sw_i2si2
 */
#define TFA98XX_I2SREG_CHS3                                 (0x1<<5)
#define TFA98XX_I2SREG_CHS3_POS                                    5
#define TFA98XX_I2SREG_CHS3_LEN                                    1
#define TFA98XX_I2SREG_CHS3_MAX                                    1
#define TFA98XX_I2SREG_CHS3_MSK                                 0x20

/*
 * input_sel
 */
#define TFA98XX_I2SREG_CHSA                                 (0x3<<6)
#define TFA98XX_I2SREG_CHSA_POS                                    6
#define TFA98XX_I2SREG_CHSA_LEN                                    2
#define TFA98XX_I2SREG_CHSA_MAX                                    3
#define TFA98XX_I2SREG_CHSA_MSK                                 0xc0

/*
 * datao_sel
 */
#define TFA98XX_I2SREG_I2SDOC                               (0x3<<8)
#define TFA98XX_I2SREG_I2SDOC_POS                                  8
#define TFA98XX_I2SREG_I2SDOC_LEN                                  2
#define TFA98XX_I2SREG_I2SDOC_MAX                                  3
#define TFA98XX_I2SREG_I2SDOC_MSK                              0x300

/*
 * disable_idp
 */
#define TFA98XX_I2SREG_DISP                                (0x1<<10)
#define TFA98XX_I2SREG_DISP_POS                                   10
#define TFA98XX_I2SREG_DISP_LEN                                    1
#define TFA98XX_I2SREG_DISP_MAX                                    1
#define TFA98XX_I2SREG_DISP_MSK                                0x400

/*
 * enbl_datao
 */
#define TFA98XX_I2SREG_I2SDOE                              (0x1<<11)
#define TFA98XX_I2SREG_I2SDOE_POS                                 11
#define TFA98XX_I2SREG_I2SDOE_LEN                                  1
#define TFA98XX_I2SREG_I2SDOE_MAX                                  1
#define TFA98XX_I2SREG_I2SDOE_MSK                              0x800

/*
 * i2s_fs
 */
#define TFA98XX_I2SREG_I2SSR                               (0xf<<12)
#define TFA98XX_I2SREG_I2SSR_POS                                  12
#define TFA98XX_I2SREG_I2SSR_LEN                                   4
#define TFA98XX_I2SREG_I2SSR_MAX                                  15
#define TFA98XX_I2SREG_I2SSR_MSK                              0xf000


/*
 * (0x05)-bat_prot
 */

/*
 * vbat_prot_attacktime
 */
#define TFA98XX_BAT_PROT_BSSCR                              (0x3<<0)
#define TFA98XX_BAT_PROT_BSSCR_POS                                 0
#define TFA98XX_BAT_PROT_BSSCR_LEN                                 2
#define TFA98XX_BAT_PROT_BSSCR_MAX                                 3
#define TFA98XX_BAT_PROT_BSSCR_MSK                               0x3

/*
 * vbat_prot_thlevel
 */
#define TFA98XX_BAT_PROT_BSST                               (0xf<<2)
#define TFA98XX_BAT_PROT_BSST_POS                                  2
#define TFA98XX_BAT_PROT_BSST_LEN                                  4
#define TFA98XX_BAT_PROT_BSST_MAX                                 15
#define TFA98XX_BAT_PROT_BSST_MSK                               0x3c

/*
 * vbat_prot_max_reduct
 */
#define TFA98XX_BAT_PROT_BSSRL                              (0x3<<6)
#define TFA98XX_BAT_PROT_BSSRL_POS                                 6
#define TFA98XX_BAT_PROT_BSSRL_LEN                                 2
#define TFA98XX_BAT_PROT_BSSRL_MAX                                 3
#define TFA98XX_BAT_PROT_BSSRL_MSK                              0xc0

/*
 * vbat_prot_release_t
 */
#define TFA98XX_BAT_PROT_BSSRR                              (0x7<<8)
#define TFA98XX_BAT_PROT_BSSRR_POS                                 8
#define TFA98XX_BAT_PROT_BSSRR_LEN                                 3
#define TFA98XX_BAT_PROT_BSSRR_MAX                                 7
#define TFA98XX_BAT_PROT_BSSRR_MSK                             0x700

/*
 * vbat_prot_hysterese
 */
#define TFA98XX_BAT_PROT_BSSHY                             (0x3<<11)
#define TFA98XX_BAT_PROT_BSSHY_POS                                11
#define TFA98XX_BAT_PROT_BSSHY_LEN                                 2
#define TFA98XX_BAT_PROT_BSSHY_MAX                                 3
#define TFA98XX_BAT_PROT_BSSHY_MSK                            0x1800

/*
 * sel_vbat
 */
#define TFA98XX_BAT_PROT_BSSR                              (0x1<<14)
#define TFA98XX_BAT_PROT_BSSR_POS                                 14
#define TFA98XX_BAT_PROT_BSSR_LEN                                  1
#define TFA98XX_BAT_PROT_BSSR_MAX                                  1
#define TFA98XX_BAT_PROT_BSSR_MSK                             0x4000

/*
 * bypass_clipper
 */
#define TFA98XX_BAT_PROT_BSSBY                             (0x1<<15)
#define TFA98XX_BAT_PROT_BSSBY_POS                                15
#define TFA98XX_BAT_PROT_BSSBY_LEN                                 1
#define TFA98XX_BAT_PROT_BSSBY_MAX                                 1
#define TFA98XX_BAT_PROT_BSSBY_MSK                            0x8000


/*
 * (0x06)-audio_ctr
 */

/*
 * dpsa
 */
#define TFA98XX_AUDIO_CTR_DPSA                              (0x1<<0)
#define TFA98XX_AUDIO_CTR_DPSA_POS                                 0
#define TFA98XX_AUDIO_CTR_DPSA_LEN                                 1
#define TFA98XX_AUDIO_CTR_DPSA_MAX                                 1
#define TFA98XX_AUDIO_CTR_DPSA_MSK                               0x1

/*
 * ctrl_slope
 */
#define TFA98XX_AUDIO_CTR_AMPSL                             (0xf<<1)
#define TFA98XX_AUDIO_CTR_AMPSL_POS                                1
#define TFA98XX_AUDIO_CTR_AMPSL_LEN                                4
#define TFA98XX_AUDIO_CTR_AMPSL_MAX                               15
#define TFA98XX_AUDIO_CTR_AMPSL_MSK                             0x1e

/*
 * cf_mute
 */
#define TFA98XX_AUDIO_CTR_CFSM                              (0x1<<5)
#define TFA98XX_AUDIO_CTR_CFSM_POS                                 5
#define TFA98XX_AUDIO_CTR_CFSM_LEN                                 1
#define TFA98XX_AUDIO_CTR_CFSM_MAX                                 1
#define TFA98XX_AUDIO_CTR_CFSM_MSK                              0x20

/*
 * ctrl_batsensesteepness
 */
#define TFA98XX_AUDIO_CTR_BSSS                              (0x1<<7)
#define TFA98XX_AUDIO_CTR_BSSS_POS                                 7
#define TFA98XX_AUDIO_CTR_BSSS_LEN                                 1
#define TFA98XX_AUDIO_CTR_BSSS_MAX                                 1
#define TFA98XX_AUDIO_CTR_BSSS_MSK                              0x80

/*
 * vol
 */
#define TFA98XX_AUDIO_CTR_VOL                              (0xff<<8)
#define TFA98XX_AUDIO_CTR_VOL_POS                                  8
#define TFA98XX_AUDIO_CTR_VOL_LEN                                  8
#define TFA98XX_AUDIO_CTR_VOL_MAX                                255
#define TFA98XX_AUDIO_CTR_VOL_MSK                             0xff00


/*
 * (0x07)-DCDCboost
 */

/*
 * ctrl_bstvolt
 */
#define TFA98XX_DCDCBOOST_DCVO                              (0x7<<0)
#define TFA98XX_DCDCBOOST_DCVO_POS                                 0
#define TFA98XX_DCDCBOOST_DCVO_LEN                                 3
#define TFA98XX_DCDCBOOST_DCVO_MAX                                 7
#define TFA98XX_DCDCBOOST_DCVO_MSK                               0x7

/*
 * ctrl_bstcur
 */
#define TFA98XX_DCDCBOOST_DCMCC                             (0x7<<3)
#define TFA98XX_DCDCBOOST_DCMCC_POS                                3
#define TFA98XX_DCDCBOOST_DCMCC_LEN                                3
#define TFA98XX_DCDCBOOST_DCMCC_MAX                                7
#define TFA98XX_DCDCBOOST_DCMCC_MSK                             0x38

/*
 * boost_intel
 */
#define TFA98XX_DCDCBOOST_DCIE                             (0x1<<10)
#define TFA98XX_DCDCBOOST_DCIE_POS                                10
#define TFA98XX_DCDCBOOST_DCIE_LEN                                 1
#define TFA98XX_DCDCBOOST_DCIE_MAX                                 1
#define TFA98XX_DCDCBOOST_DCIE_MSK                             0x400

/*
 * boost_speed
 */
#define TFA98XX_DCDCBOOST_DCSR                             (0x1<<11)
#define TFA98XX_DCDCBOOST_DCSR_POS                                11
#define TFA98XX_DCDCBOOST_DCSR_LEN                                 1
#define TFA98XX_DCDCBOOST_DCSR_MAX                                 1
#define TFA98XX_DCDCBOOST_DCSR_MSK                             0x800


/*
 * (0x08)-spkr_calibration
 */

/*
 * ext_temp_sel
 */
#define TFA98XX_SPKR_CALIBRATION_TROS                       (0x1<<0)
#define TFA98XX_SPKR_CALIBRATION_TROS_POS                          0
#define TFA98XX_SPKR_CALIBRATION_TROS_LEN                          1
#define TFA98XX_SPKR_CALIBRATION_TROS_MAX                          1
#define TFA98XX_SPKR_CALIBRATION_TROS_MSK                        0x1

/*
 * ext_temp
 */
#define TFA98XX_SPKR_CALIBRATION_EXTTS                    (0x1ff<<1)
#define TFA98XX_SPKR_CALIBRATION_EXTTS_POS                         1
#define TFA98XX_SPKR_CALIBRATION_EXTTS_LEN                         9
#define TFA98XX_SPKR_CALIBRATION_EXTTS_MAX                       511
#define TFA98XX_SPKR_CALIBRATION_EXTTS_MSK                     0x3fe


/*
 * (0x09)-sys_ctrl
 */

/*
 * PowerDown
 */
#define TFA98XX_SYS_CTRL_PWDN                               (0x1<<0)
#define TFA98XX_SYS_CTRL_PWDN_POS                                  0
#define TFA98XX_SYS_CTRL_PWDN_LEN                                  1
#define TFA98XX_SYS_CTRL_PWDN_MAX                                  1
#define TFA98XX_SYS_CTRL_PWDN_MSK                                0x1

/*
 * reset
 */
#define TFA98XX_SYS_CTRL_I2CR                               (0x1<<1)
#define TFA98XX_SYS_CTRL_I2CR_POS                                  1
#define TFA98XX_SYS_CTRL_I2CR_LEN                                  1
#define TFA98XX_SYS_CTRL_I2CR_MAX                                  1
#define TFA98XX_SYS_CTRL_I2CR_MSK                                0x2

/*
 * enbl_coolflux
 */
#define TFA98XX_SYS_CTRL_CFE                                (0x1<<2)
#define TFA98XX_SYS_CTRL_CFE_POS                                   2
#define TFA98XX_SYS_CTRL_CFE_LEN                                   1
#define TFA98XX_SYS_CTRL_CFE_MAX                                   1
#define TFA98XX_SYS_CTRL_CFE_MSK                                 0x4

/*
 * enbl_amplifier
 */
#define TFA98XX_SYS_CTRL_AMPE                               (0x1<<3)
#define TFA98XX_SYS_CTRL_AMPE_POS                                  3
#define TFA98XX_SYS_CTRL_AMPE_LEN                                  1
#define TFA98XX_SYS_CTRL_AMPE_MAX                                  1
#define TFA98XX_SYS_CTRL_AMPE_MSK                                0x8

/*
 * enbl_boost
 */
#define TFA98XX_SYS_CTRL_DCA                                (0x1<<4)
#define TFA98XX_SYS_CTRL_DCA_POS                                   4
#define TFA98XX_SYS_CTRL_DCA_LEN                                   1
#define TFA98XX_SYS_CTRL_DCA_MAX                                   1
#define TFA98XX_SYS_CTRL_DCA_MSK                                0x10

/*
 * cf_configured
 */
#define TFA98XX_SYS_CTRL_SBSL                               (0x1<<5)
#define TFA98XX_SYS_CTRL_SBSL_POS                                  5
#define TFA98XX_SYS_CTRL_SBSL_LEN                                  1
#define TFA98XX_SYS_CTRL_SBSL_MAX                                  1
#define TFA98XX_SYS_CTRL_SBSL_MSK                               0x20

/*
 * sel_enbl_amplifier
 */
#define TFA98XX_SYS_CTRL_AMPC                               (0x1<<6)
#define TFA98XX_SYS_CTRL_AMPC_POS                                  6
#define TFA98XX_SYS_CTRL_AMPC_LEN                                  1
#define TFA98XX_SYS_CTRL_AMPC_MAX                                  1
#define TFA98XX_SYS_CTRL_AMPC_MSK                               0x40

/*
 * dcdcoff_mode
 */
#define TFA98XX_SYS_CTRL_DCDIS                              (0x1<<7)
#define TFA98XX_SYS_CTRL_DCDIS_POS                                 7
#define TFA98XX_SYS_CTRL_DCDIS_LEN                                 1
#define TFA98XX_SYS_CTRL_DCDIS_MAX                                 1
#define TFA98XX_SYS_CTRL_DCDIS_MSK                              0x80

/*
 * cttr_iddqtest
 */
#define TFA98XX_SYS_CTRL_PSDR                               (0x1<<8)
#define TFA98XX_SYS_CTRL_PSDR_POS                                  8
#define TFA98XX_SYS_CTRL_PSDR_LEN                                  1
#define TFA98XX_SYS_CTRL_PSDR_MAX                                  1
#define TFA98XX_SYS_CTRL_PSDR_MSK                              0x100

/*
 * ctrl_coil_value
 */
#define TFA98XX_SYS_CTRL_DCCV                               (0x3<<9)
#define TFA98XX_SYS_CTRL_DCCV_POS                                  9
#define TFA98XX_SYS_CTRL_DCCV_LEN                                  2
#define TFA98XX_SYS_CTRL_DCCV_MAX                                  3
#define TFA98XX_SYS_CTRL_DCCV_MSK                              0x600

/*
 * ctrl_sel_cf_clock
 */
#define TFA98XX_SYS_CTRL_CCFD                              (0x3<<11)
#define TFA98XX_SYS_CTRL_CCFD_POS                                 11
#define TFA98XX_SYS_CTRL_CCFD_LEN                                  2
#define TFA98XX_SYS_CTRL_CCFD_MAX                                  3
#define TFA98XX_SYS_CTRL_CCFD_MSK                             0x1800

/*
 * intf_sel
 */
#define TFA98XX_SYS_CTRL_ISEL                              (0x1<<13)
#define TFA98XX_SYS_CTRL_ISEL_POS                                 13
#define TFA98XX_SYS_CTRL_ISEL_LEN                                  1
#define TFA98XX_SYS_CTRL_ISEL_MAX                                  1
#define TFA98XX_SYS_CTRL_ISEL_MSK                             0x2000

/*
 * sel_ws_bck
 */
#define TFA98XX_SYS_CTRL_IPLL                              (0x1<<14)
#define TFA98XX_SYS_CTRL_IPLL_POS                                 14
#define TFA98XX_SYS_CTRL_IPLL_LEN                                  1
#define TFA98XX_SYS_CTRL_IPLL_MAX                                  1
#define TFA98XX_SYS_CTRL_IPLL_MSK                             0x4000


/*
 * (0x0a)-I2S_sel_reg
 */

/*
 * sel_i2so_l
 */
#define TFA98XX_I2S_SEL_REG_DOLS                            (0x7<<0)
#define TFA98XX_I2S_SEL_REG_DOLS_POS                               0
#define TFA98XX_I2S_SEL_REG_DOLS_LEN                               3
#define TFA98XX_I2S_SEL_REG_DOLS_MAX                               7
#define TFA98XX_I2S_SEL_REG_DOLS_MSK                             0x7

/*
 * sel_i2so_r
 */
#define TFA98XX_I2S_SEL_REG_DORS                            (0x7<<3)
#define TFA98XX_I2S_SEL_REG_DORS_POS                               3
#define TFA98XX_I2S_SEL_REG_DORS_LEN                               3
#define TFA98XX_I2S_SEL_REG_DORS_MAX                               7
#define TFA98XX_I2S_SEL_REG_DORS_MSK                            0x38

/*
 * ctrl_spkr_coil
 */
#define TFA98XX_I2S_SEL_REG_SPKL                            (0x7<<6)
#define TFA98XX_I2S_SEL_REG_SPKL_POS                               6
#define TFA98XX_I2S_SEL_REG_SPKL_LEN                               3
#define TFA98XX_I2S_SEL_REG_SPKL_MAX                               7
#define TFA98XX_I2S_SEL_REG_SPKL_MSK                           0x1c0

/*
 * ctrl_spr_res
 */
#define TFA98XX_I2S_SEL_REG_SPKR                            (0x3<<9)
#define TFA98XX_I2S_SEL_REG_SPKR_POS                               9
#define TFA98XX_I2S_SEL_REG_SPKR_LEN                               2
#define TFA98XX_I2S_SEL_REG_SPKR_MAX                               3
#define TFA98XX_I2S_SEL_REG_SPKR_MSK                           0x600

/*
 * ctrl_dcdc_spkr_i_comp_gain
 */
#define TFA98XX_I2S_SEL_REG_DCFG                           (0xf<<11)
#define TFA98XX_I2S_SEL_REG_DCFG_POS                              11
#define TFA98XX_I2S_SEL_REG_DCFG_LEN                               4
#define TFA98XX_I2S_SEL_REG_DCFG_MAX                              15
#define TFA98XX_I2S_SEL_REG_DCFG_MSK                          0x7800


/*
 * (0x0b)-Hidden_mtp_key2
 */

/*
 * MTP_key2
 */
#define TFA98XX_HIDDEN_MTP_KEY2_MTPK                       (0xff<<0)
#define TFA98XX_HIDDEN_MTP_KEY2_MTPK_POS                           0
#define TFA98XX_HIDDEN_MTP_KEY2_MTPK_LEN                           8
#define TFA98XX_HIDDEN_MTP_KEY2_MTPK_MAX                         255
#define TFA98XX_HIDDEN_MTP_KEY2_MTPK_MSK                        0xff


/*
 * (0x0f)-interrupt_reg
 */

/*
 * flag_por_mask
 */
#define TFA98XX_INTERRUPT_REG_VDDD                          (0x1<<0)
#define TFA98XX_INTERRUPT_REG_VDDD_POS                             0
#define TFA98XX_INTERRUPT_REG_VDDD_LEN                             1
#define TFA98XX_INTERRUPT_REG_VDDD_MAX                             1
#define TFA98XX_INTERRUPT_REG_VDDD_MSK                           0x1

/*
 * flag_otpok_mask
 */
#define TFA98XX_INTERRUPT_REG_OTDD                          (0x1<<1)
#define TFA98XX_INTERRUPT_REG_OTDD_POS                             1
#define TFA98XX_INTERRUPT_REG_OTDD_LEN                             1
#define TFA98XX_INTERRUPT_REG_OTDD_MAX                             1
#define TFA98XX_INTERRUPT_REG_OTDD_MSK                           0x2

/*
 * flag_ovpok_mask
 */
#define TFA98XX_INTERRUPT_REG_OVDD                          (0x1<<2)
#define TFA98XX_INTERRUPT_REG_OVDD_POS                             2
#define TFA98XX_INTERRUPT_REG_OVDD_LEN                             1
#define TFA98XX_INTERRUPT_REG_OVDD_MAX                             1
#define TFA98XX_INTERRUPT_REG_OVDD_MSK                           0x4

/*
 * flag_uvpok_mask
 */
#define TFA98XX_INTERRUPT_REG_UVDD                          (0x1<<3)
#define TFA98XX_INTERRUPT_REG_UVDD_POS                             3
#define TFA98XX_INTERRUPT_REG_UVDD_LEN                             1
#define TFA98XX_INTERRUPT_REG_UVDD_MAX                             1
#define TFA98XX_INTERRUPT_REG_UVDD_MSK                           0x8

/*
 * flag_ocp_alarm_mask
 */
#define TFA98XX_INTERRUPT_REG_OCDD                          (0x1<<4)
#define TFA98XX_INTERRUPT_REG_OCDD_POS                             4
#define TFA98XX_INTERRUPT_REG_OCDD_LEN                             1
#define TFA98XX_INTERRUPT_REG_OCDD_MAX                             1
#define TFA98XX_INTERRUPT_REG_OCDD_MSK                          0x10

/*
 * flag_clocks_stable_mask
 */
#define TFA98XX_INTERRUPT_REG_CLKD                          (0x1<<5)
#define TFA98XX_INTERRUPT_REG_CLKD_POS                             5
#define TFA98XX_INTERRUPT_REG_CLKD_LEN                             1
#define TFA98XX_INTERRUPT_REG_CLKD_MAX                             1
#define TFA98XX_INTERRUPT_REG_CLKD_MSK                          0x20

/*
 * flag_pwrokbst_mask
 */
#define TFA98XX_INTERRUPT_REG_DCCD                          (0x1<<6)
#define TFA98XX_INTERRUPT_REG_DCCD_POS                             6
#define TFA98XX_INTERRUPT_REG_DCCD_LEN                             1
#define TFA98XX_INTERRUPT_REG_DCCD_MAX                             1
#define TFA98XX_INTERRUPT_REG_DCCD_MSK                          0x40

/*
 * flag_cf_speakererror_mask
 */
#define TFA98XX_INTERRUPT_REG_SPKD                          (0x1<<7)
#define TFA98XX_INTERRUPT_REG_SPKD_POS                             7
#define TFA98XX_INTERRUPT_REG_SPKD_LEN                             1
#define TFA98XX_INTERRUPT_REG_SPKD_MAX                             1
#define TFA98XX_INTERRUPT_REG_SPKD_MSK                          0x80

/*
 * flag_watchdog_reset_mask
 */
#define TFA98XX_INTERRUPT_REG_WDD                           (0x1<<8)
#define TFA98XX_INTERRUPT_REG_WDD_POS                              8
#define TFA98XX_INTERRUPT_REG_WDD_LEN                              1
#define TFA98XX_INTERRUPT_REG_WDD_MAX                              1
#define TFA98XX_INTERRUPT_REG_WDD_MSK                          0x100

/*
 * enable_interrupt
 */
#define TFA98XX_INTERRUPT_REG_INT                          (0x1<<14)
#define TFA98XX_INTERRUPT_REG_INT_POS                             14
#define TFA98XX_INTERRUPT_REG_INT_LEN                              1
#define TFA98XX_INTERRUPT_REG_INT_MAX                              1
#define TFA98XX_INTERRUPT_REG_INT_MSK                         0x4000

/*
 * invert_int_polarity
 */
#define TFA98XX_INTERRUPT_REG_INTP                         (0x1<<15)
#define TFA98XX_INTERRUPT_REG_INTP_POS                            15
#define TFA98XX_INTERRUPT_REG_INTP_LEN                             1
#define TFA98XX_INTERRUPT_REG_INTP_MAX                             1
#define TFA98XX_INTERRUPT_REG_INTP_MSK                        0x8000


/*
 * (0x10)-pdm_ctrl
 */

/*
 * pdm_i2s_input
 */
#define TFA98XX_PDM_CTRL_PDMSEL                             (0x1<<0)
#define TFA98XX_PDM_CTRL_PDMSEL_POS                                0
#define TFA98XX_PDM_CTRL_PDMSEL_LEN                                1
#define TFA98XX_PDM_CTRL_PDMSEL_MAX                                1
#define TFA98XX_PDM_CTRL_PDMSEL_MSK                              0x1

/*
 * I2S_master_ena
 */
#define TFA98XX_PDM_CTRL_I2SMOUTEN                          (0x1<<1)
#define TFA98XX_PDM_CTRL_I2SMOUTEN_POS                             1
#define TFA98XX_PDM_CTRL_I2SMOUTEN_LEN                             1
#define TFA98XX_PDM_CTRL_I2SMOUTEN_MAX                             1
#define TFA98XX_PDM_CTRL_I2SMOUTEN_MSK                           0x2

/*
 * pdm_out_sel_r
 */
#define TFA98XX_PDM_CTRL_PDMORSEL                           (0x3<<2)
#define TFA98XX_PDM_CTRL_PDMORSEL_POS                              2
#define TFA98XX_PDM_CTRL_PDMORSEL_LEN                              2
#define TFA98XX_PDM_CTRL_PDMORSEL_MAX                              3
#define TFA98XX_PDM_CTRL_PDMORSEL_MSK                            0xc

/*
 * pdm_out_sel_l
 */
#define TFA98XX_PDM_CTRL_PDMOLSEL                           (0x3<<4)
#define TFA98XX_PDM_CTRL_PDMOLSEL_POS                              4
#define TFA98XX_PDM_CTRL_PDMOLSEL_LEN                              2
#define TFA98XX_PDM_CTRL_PDMOLSEL_MAX                              3
#define TFA98XX_PDM_CTRL_PDMOLSEL_MSK                           0x30

/*
 * micdat_out_sel
 */
#define TFA98XX_PDM_CTRL_PADSEL                             (0x3<<6)
#define TFA98XX_PDM_CTRL_PADSEL_POS                                6
#define TFA98XX_PDM_CTRL_PADSEL_LEN                                2
#define TFA98XX_PDM_CTRL_PADSEL_MAX                                3
#define TFA98XX_PDM_CTRL_PADSEL_MSK                             0xc0


/*
 * (0x11)-pdm_out_ctrl
 */

/*
 * secure_dly
 */
#define TFA98XX_PDM_OUT_CTRL_PDMOSDEN                       (0x1<<0)
#define TFA98XX_PDM_OUT_CTRL_PDMOSDEN_POS                          0
#define TFA98XX_PDM_OUT_CTRL_PDMOSDEN_LEN                          1
#define TFA98XX_PDM_OUT_CTRL_PDMOSDEN_MAX                          1
#define TFA98XX_PDM_OUT_CTRL_PDMOSDEN_MSK                        0x1

/*
 * d_out_valid_rf_mux
 */
#define TFA98XX_PDM_OUT_CTRL_PDMOSDCF                       (0x1<<1)
#define TFA98XX_PDM_OUT_CTRL_PDMOSDCF_POS                          1
#define TFA98XX_PDM_OUT_CTRL_PDMOSDCF_LEN                          1
#define TFA98XX_PDM_OUT_CTRL_PDMOSDCF_MAX                          1
#define TFA98XX_PDM_OUT_CTRL_PDMOSDCF_MSK                        0x2

/*
 * Speak_As_Mic_en
 */
#define TFA98XX_PDM_OUT_CTRL_SAAMEN                         (0x1<<4)
#define TFA98XX_PDM_OUT_CTRL_SAAMEN_POS                            4
#define TFA98XX_PDM_OUT_CTRL_SAAMEN_LEN                            1
#define TFA98XX_PDM_OUT_CTRL_SAAMEN_MAX                            1
#define TFA98XX_PDM_OUT_CTRL_SAAMEN_MSK                         0x10

/*
 * speak_as_mic_lp_mode
 */
#define TFA98XX_PDM_OUT_CTRL_SAAMLPEN                       (0x1<<5)
#define TFA98XX_PDM_OUT_CTRL_SAAMLPEN_POS                          5
#define TFA98XX_PDM_OUT_CTRL_SAAMLPEN_LEN                          1
#define TFA98XX_PDM_OUT_CTRL_SAAMLPEN_MAX                          1
#define TFA98XX_PDM_OUT_CTRL_SAAMLPEN_MSK                       0x20

/*
 * pdm_out_rate
 */
#define TFA98XX_PDM_OUT_CTRL_PDMOINTEN                      (0x1<<6)
#define TFA98XX_PDM_OUT_CTRL_PDMOINTEN_POS                         6
#define TFA98XX_PDM_OUT_CTRL_PDMOINTEN_LEN                         1
#define TFA98XX_PDM_OUT_CTRL_PDMOINTEN_MAX                         1
#define TFA98XX_PDM_OUT_CTRL_PDMOINTEN_MSK                      0x40


/*
 * (0x12)-pdm_ds4_r
 */

/*
 * ds4_g1_r
 */
#define TFA98XX_PDM_DS4_R_PDMORG1                           (0xf<<0)
#define TFA98XX_PDM_DS4_R_PDMORG1_POS                              0
#define TFA98XX_PDM_DS4_R_PDMORG1_LEN                              4
#define TFA98XX_PDM_DS4_R_PDMORG1_MAX                             15
#define TFA98XX_PDM_DS4_R_PDMORG1_MSK                            0xf

/*
 * ds4_g2_r
 */
#define TFA98XX_PDM_DS4_R_PDMORG2                           (0xf<<4)
#define TFA98XX_PDM_DS4_R_PDMORG2_POS                              4
#define TFA98XX_PDM_DS4_R_PDMORG2_LEN                              4
#define TFA98XX_PDM_DS4_R_PDMORG2_MAX                             15
#define TFA98XX_PDM_DS4_R_PDMORG2_MSK                           0xf0


/*
 * (0x13)-pdm_ds4_l
 */

/*
 * ds4_g1_l
 */
#define TFA98XX_PDM_DS4_L_PDMOLG1                           (0xf<<0)
#define TFA98XX_PDM_DS4_L_PDMOLG1_POS                              0
#define TFA98XX_PDM_DS4_L_PDMOLG1_LEN                              4
#define TFA98XX_PDM_DS4_L_PDMOLG1_MAX                             15
#define TFA98XX_PDM_DS4_L_PDMOLG1_MSK                            0xf

/*
 * ds4_g2_l
 */
#define TFA98XX_PDM_DS4_L_PDMOLG2                           (0xf<<4)
#define TFA98XX_PDM_DS4_L_PDMOLG2_POS                              4
#define TFA98XX_PDM_DS4_L_PDMOLG2_LEN                              4
#define TFA98XX_PDM_DS4_L_PDMOLG2_MAX                             15
#define TFA98XX_PDM_DS4_L_PDMOLG2_MSK                           0xf0


/*
 * (0x22)-ctrl_saam_pga
 */

/*
 * Ctrl_saam_pga_gain
 */
#define TFA98XX_CTRL_SAAM_PGA_SAAMGAIN                      (0x7<<0)
#define TFA98XX_CTRL_SAAM_PGA_SAAMGAIN_POS                         0
#define TFA98XX_CTRL_SAAM_PGA_SAAMGAIN_LEN                         3
#define TFA98XX_CTRL_SAAM_PGA_SAAMGAIN_MAX                         7
#define TFA98XX_CTRL_SAAM_PGA_SAAMGAIN_MSK                       0x7

/*
 * ctrl_saam_pga_src
 */
#define TFA98XX_CTRL_SAAM_PGA_SAAMPGACTRL                   (0x1<<5)
#define TFA98XX_CTRL_SAAM_PGA_SAAMPGACTRL_POS                      5
#define TFA98XX_CTRL_SAAM_PGA_SAAMPGACTRL_LEN                      1
#define TFA98XX_CTRL_SAAM_PGA_SAAMPGACTRL_MAX                      1
#define TFA98XX_CTRL_SAAM_PGA_SAAMPGACTRL_MSK                   0x20


/*
 * (0x25)-misc_ctrl
 */

/*
 * pll_fcco
 */
#define TFA98XX_MISC_CTRL_PLLCCOSEL                         (0x1<<0)
#define TFA98XX_MISC_CTRL_PLLCCOSEL_POS                            0
#define TFA98XX_MISC_CTRL_PLLCCOSEL_LEN                            1
#define TFA98XX_MISC_CTRL_PLLCCOSEL_MAX                            1
#define TFA98XX_MISC_CTRL_PLLCCOSEL_MSK                          0x1


/*
 * (0x46)-CurrentSense1
 */

/*
 * bypass_gc
 */
#define TFA98XX_CURRENTSENSE1_CSBYPGC                       (0x1<<0)
#define TFA98XX_CURRENTSENSE1_CSBYPGC_POS                          0
#define TFA98XX_CURRENTSENSE1_CSBYPGC_LEN                          1
#define TFA98XX_CURRENTSENSE1_CSBYPGC_MAX                          1
#define TFA98XX_CURRENTSENSE1_CSBYPGC_MSK                        0x1


/*
 * (0x49)-CurrentSense4
 */

/*
 * ctrl_bypassclip
 */
#define TFA98XX_CURRENTSENSE4_CLIP                          (0x1<<0)
#define TFA98XX_CURRENTSENSE4_CLIP_POS                             0
#define TFA98XX_CURRENTSENSE4_CLIP_LEN                             1
#define TFA98XX_CURRENTSENSE4_CLIP_MAX                             1
#define TFA98XX_CURRENTSENSE4_CLIP_MSK                           0x1

/*
 * ctrl_bypassclip2
 */
#define TFA98XX_CURRENTSENSE4_CLIP2                         (0x1<<1)
#define TFA98XX_CURRENTSENSE4_CLIP2_POS                            1
#define TFA98XX_CURRENTSENSE4_CLIP2_LEN                            1
#define TFA98XX_CURRENTSENSE4_CLIP2_MAX                            1
#define TFA98XX_CURRENTSENSE4_CLIP2_MSK                          0x2


/*
 * (0x62)-Hidden_mtp_ctrl_reg3
 */


/*
 * (0x70)-cf_controls
 */

/*
 * cf_rst_dsp
 */
#define TFA98XX_CF_CONTROLS_RST                             (0x1<<0)
#define TFA98XX_CF_CONTROLS_RST_POS                                0
#define TFA98XX_CF_CONTROLS_RST_LEN                                1
#define TFA98XX_CF_CONTROLS_RST_MAX                                1
#define TFA98XX_CF_CONTROLS_RST_MSK                              0x1

/*
 * cf_dmem
 */
#define TFA98XX_CF_CONTROLS_DMEM                            (0x3<<1)
#define TFA98XX_CF_CONTROLS_DMEM_POS                               1
#define TFA98XX_CF_CONTROLS_DMEM_LEN                               2
#define TFA98XX_CF_CONTROLS_DMEM_MAX                               3
#define TFA98XX_CF_CONTROLS_DMEM_MSK                             0x6

/*
 * cf_aif
 */
#define TFA98XX_CF_CONTROLS_AIF                             (0x1<<3)
#define TFA98XX_CF_CONTROLS_AIF_POS                                3
#define TFA98XX_CF_CONTROLS_AIF_LEN                                1
#define TFA98XX_CF_CONTROLS_AIF_MAX                                1
#define TFA98XX_CF_CONTROLS_AIF_MSK                              0x8

/*
 * cf_int
 */
#define TFA98XX_CF_CONTROLS_CFINT                           (0x1<<4)
#define TFA98XX_CF_CONTROLS_CFINT_POS                              4
#define TFA98XX_CF_CONTROLS_CFINT_LEN                              1
#define TFA98XX_CF_CONTROLS_CFINT_MAX                              1
#define TFA98XX_CF_CONTROLS_CFINT_MSK                           0x10

/*
 * cf_req
 */
#define TFA98XX_CF_CONTROLS_REQ                            (0xff<<8)
#define TFA98XX_CF_CONTROLS_REQ_POS                                8
#define TFA98XX_CF_CONTROLS_REQ_LEN                                8
#define TFA98XX_CF_CONTROLS_REQ_MAX                              255
#define TFA98XX_CF_CONTROLS_REQ_MSK                           0xff00


/*
 * (0x71)-cf_mad
 */

/*
 * cf_madd
 */
#define TFA9891_CF_MAD_MADD                              (0xffff<<0)
#define TFA9891_CF_MAD_MADD_POS                                    0
#define TFA9891_CF_MAD_MADD_LEN                                   16
#define TFA9891_CF_MAD_MADD_MAX                                65535
#define TFA9891_CF_MAD_MADD_MSK                               0xffff


/*
 * (0x72)-cf_mem
 */

/*
 * cf_mema
 */
#define TFA9891_CF_MEM_MEMA                              (0xffff<<0)
#define TFA9891_CF_MEM_MEMA_POS                                    0
#define TFA9891_CF_MEM_MEMA_LEN                                   16
#define TFA9891_CF_MEM_MEMA_MAX                                65535
#define TFA9891_CF_MEM_MEMA_MSK                               0xffff


/*
 * (0x73)-cf_status
 */

/*
 * cf_err
 */
#define TFA9891_CF_STATUS_ERR                              (0xff<<0)
#define TFA9891_CF_STATUS_ERR_POS                                  0
#define TFA9891_CF_STATUS_ERR_LEN                                  8
#define TFA9891_CF_STATUS_ERR_MAX                                255
#define TFA9891_CF_STATUS_ERR_MSK                               0xff

/*
 * cf_ack
 */
#define TFA9891_CF_STATUS_ACK                              (0xff<<8)
#define TFA9891_CF_STATUS_ACK_POS                                  8
#define TFA9891_CF_STATUS_ACK_LEN                                  8
#define TFA9891_CF_STATUS_ACK_MAX                                255
#define TFA9891_CF_STATUS_ACK_MSK                             0xff00


/*
 * (0x80)-Key2Protected_spkr_cal_mtp
 */

/*
 * calibration_onetime
 */
#define TFA98XX_KEY2PROTECTED_SPKR_CAL_MTP_MTPOTC           (0x1<<0)
#define TFA98XX_KEY2PROTECTED_SPKR_CAL_MTP_MTPOTC_POS              0
#define TFA98XX_KEY2PROTECTED_SPKR_CAL_MTP_MTPOTC_LEN              1
#define TFA98XX_KEY2PROTECTED_SPKR_CAL_MTP_MTPOTC_MAX              1
#define TFA98XX_KEY2PROTECTED_SPKR_CAL_MTP_MTPOTC_MSK            0x1

/*
 * calibr_ron_done
 */
#define TFA98XX_KEY2PROTECTED_SPKR_CAL_MTP_MTPEX            (0x1<<1)
#define TFA98XX_KEY2PROTECTED_SPKR_CAL_MTP_MTPEX_POS               1
#define TFA98XX_KEY2PROTECTED_SPKR_CAL_MTP_MTPEX_LEN               1
#define TFA98XX_KEY2PROTECTED_SPKR_CAL_MTP_MTPEX_MAX               1
#define TFA98XX_KEY2PROTECTED_SPKR_CAL_MTP_MTPEX_MSK             0x2

#endif /* TFA9891_GENREGS_H */
