blob: db708b4e5f6263a8986596227892314c3df73764 [file] [log] [blame]
/*
* 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 _TFA9896_TFAFIELDNAMES_H
#define _TFA9896_TFAFIELDNAMES_H
#define TFA9896_I2CVERSION 16
typedef enum nxpTFA9896BfEnumList {
TFA9896_BF_VDDS = 0x0000, /*!< Power-on-reset flag (auto clear by reading) */
TFA9896_BF_PLLS = 0x0010, /*!< PLL lock to programmed frequency */
TFA9896_BF_OTDS = 0x0020, /*!< Over Temperature Protection alarm */
TFA9896_BF_OVDS = 0x0030, /*!< Over Voltage Protection alarm */
TFA9896_BF_UVDS = 0x0040, /*!< Under Voltage Protection alarm */
TFA9896_BF_OCDS = 0x0050, /*!< Over Current Protection alarm */
TFA9896_BF_CLKS = 0x0060, /*!< Clocks stable flag */
TFA9896_BF_CLIPS = 0x0070, /*!< Amplifier clipping */
TFA9896_BF_MTPB = 0x0080, /*!< MTP busy copying data to/from I2C registers */
TFA9896_BF_NOCLK = 0x0090, /*!< lost clock detection (reference input clock) */
TFA9896_BF_SPKS = 0x00a0, /*!< Speaker error */
TFA9896_BF_ACS = 0x00b0, /*!< Cold Start required */
TFA9896_BF_SWS = 0x00c0, /*!< Amplifier engage (Amp Switching) */
TFA9896_BF_WDS = 0x00d0, /*!< watchdog reset (activates reset) */
TFA9896_BF_AMPS = 0x00e0, /*!< Amplifier is enabled by manager */
TFA9896_BF_AREFS = 0x00f0, /*!< References are enabled by manager */
TFA9896_BF_BATS = 0x0109, /*!< Battery voltage from ADC readout */
TFA9896_BF_TEMPS = 0x0208, /*!< Temperature readout from the temperature sensor ( C) */
TFA9896_BF_REV = 0x030f, /*!< Device revision information */
TFA9896_BF_RCV = 0x0420, /*!< Enable receiver mode */
TFA9896_BF_CHS12 = 0x0431, /*!< Channel Selection TDM input for Coolflux */
TFA9896_BF_INPLVL = 0x0450, /*!< Input level selection attenuator ( */
TFA9896_BF_CHSA = 0x0461, /*!< Input selection for amplifier */
TFA9896_BF_AUDFS = 0x04c3, /*!< Audio sample rate setting */
TFA9896_BF_BSSCR = 0x0501, /*!< Batteery protection attack time */
TFA9896_BF_BSST = 0x0523, /*!< Battery protection threshold level */
TFA9896_BF_BSSRL = 0x0561, /*!< Battery protection maximum reduction */
TFA9896_BF_BSSRR = 0x0582, /*!< Battery protection release time */
TFA9896_BF_BSSHY = 0x05b1, /*!< Battery Protection Hysteresis */
TFA9896_BF_BSSR = 0x05e0, /*!< Battery voltage value for read out (only) */
TFA9896_BF_BSSBY = 0x05f0, /*!< Bypass clipper battery protection */
TFA9896_BF_DPSA = 0x0600, /*!< Enable dynamic powerstage activation (DPSA) */
TFA9896_BF_ATTEN = 0x0613, /*!< Gain attenuation setting */
TFA9896_BF_CFSM = 0x0650, /*!< Soft mute in CoolFlux */
TFA9896_BF_BSSS = 0x0670, /*!< Battery sense steepness */
TFA9896_BF_VOL = 0x0687, /*!< Coolflux volume control */
TFA9896_BF_DCVO2 = 0x0702, /*!< Second Boost Voltage */
TFA9896_BF_DCMCC = 0x0733, /*!< Max boost coil current - step of 175 mA */
TFA9896_BF_DCVO1 = 0x0772, /*!< First Boost Voltage */
TFA9896_BF_DCIE = 0x07a0, /*!< Adaptive boost mode */
TFA9896_BF_DCSR = 0x07b0, /*!< Soft Rampup/down mode for DCDC controller */
TFA9896_BF_DCPAVG = 0x07c0, /*!< ctrl_peak2avg for analog part of DCDC */
TFA9896_BF_DCPWM = 0x07d0, /*!< DCDC PWM only mode */
TFA9896_BF_TROS = 0x0800, /*!< Selection ambient temperature for speaker calibration */
TFA9896_BF_EXTTS = 0x0818, /*!< External temperature for speaker calibration (C) */
TFA9896_BF_PWDN = 0x0900, /*!< powerdown selection */
TFA9896_BF_I2CR = 0x0910, /*!< All I2C registers reset to default */
TFA9896_BF_CFE = 0x0920, /*!< Enable CoolFlux */
TFA9896_BF_AMPE = 0x0930, /*!< Enable Amplifier */
TFA9896_BF_DCA = 0x0940, /*!< Enable DCDC Boost converter */
TFA9896_BF_SBSL = 0x0950, /*!< Coolflux configured */
TFA9896_BF_AMPC = 0x0960, /*!< Selection if Coolflux enables amplifier */
TFA9896_BF_DCDIS = 0x0970, /*!< DCDC boost converter not connected */
TFA9896_BF_PSDR = 0x0980, /*!< IDDQ amplifier test selection */
TFA9896_BF_INTPAD = 0x09c1, /*!< INT pad (interrupt bump output) configuration */
TFA9896_BF_IPLL = 0x09e0, /*!< PLL input reference clock selection */
TFA9896_BF_DCTRIP = 0x0a04, /*!< Adaptive boost trip levels (effective only when boost_intel is set to 1) */
TFA9896_BF_DCHOLD = 0x0a54, /*!< Hold time for DCDC booster (effective only when boost_intel is set to 1) */
TFA9896_BF_MTPK = 0x0b07, /*!< KEY2 to access key2 protected registers (default for engineering) */
TFA9896_BF_CVFDLY = 0x0c25, /*!< Fractional delay adjustment between current and voltage sense */
TFA9896_BF_OPENMTP = 0x0ec0, /*!< Enable programming of the MTP memory */
TFA9896_BF_TDMPRF = 0x1011, /*!< TDM usecase selection control */
TFA9896_BF_TDMEN = 0x1030, /*!< TDM interface enable */
TFA9896_BF_TDMCKINV = 0x1040, /*!< TDM clock inversion, receive on */
TFA9896_BF_TDMFSLN = 0x1053, /*!< TDM FS length */
TFA9896_BF_TDMFSPOL = 0x1090, /*!< TDM FS polarity (start frame) */
TFA9896_BF_TDMSAMSZ = 0x10a4, /*!< TDM sample size for all TDM sinks and sources */
TFA9896_BF_TDMSLOTS = 0x1103, /*!< TDM number of slots */
TFA9896_BF_TDMSLLN = 0x1144, /*!< TDM slot length */
TFA9896_BF_TDMBRMG = 0x1194, /*!< TDM bits remaining after the last slot */
TFA9896_BF_TDMDDEL = 0x11e0, /*!< TDM data delay */
TFA9896_BF_TDMDADJ = 0x11f0, /*!< TDM data adjustment */
TFA9896_BF_TDMTXFRM = 0x1201, /*!< TDM TXDATA format */
TFA9896_BF_TDMUUS0 = 0x1221, /*!< TDM TXDATA format unused slot SD0 */
TFA9896_BF_TDMUUS1 = 0x1241, /*!< TDM TXDATA format unused slot SD1 */
TFA9896_BF_TDMSI0EN = 0x1270, /*!< TDM sink0 enable */
TFA9896_BF_TDMSI1EN = 0x1280, /*!< TDM sink1 enable */
TFA9896_BF_TDMSI2EN = 0x1290, /*!< TDM sink2 enable */
TFA9896_BF_TDMSO0EN = 0x12a0, /*!< TDM source0 enable */
TFA9896_BF_TDMSO1EN = 0x12b0, /*!< TDM source1 enable */
TFA9896_BF_TDMSO2EN = 0x12c0, /*!< TDM source2 enable */
TFA9896_BF_TDMSI0IO = 0x12d0, /*!< TDM sink0 IO selection */
TFA9896_BF_TDMSI1IO = 0x12e0, /*!< TDM sink1 IO selection */
TFA9896_BF_TDMSI2IO = 0x12f0, /*!< TDM sink2 IO selection */
TFA9896_BF_TDMSO0IO = 0x1300, /*!< TDM source0 IO selection */
TFA9896_BF_TDMSO1IO = 0x1310, /*!< TDM source1 IO selection */
TFA9896_BF_TDMSO2IO = 0x1320, /*!< TDM source2 IO selection */
TFA9896_BF_TDMSI0SL = 0x1333, /*!< TDM sink0 slot position [GAIN IN] */
TFA9896_BF_TDMSI1SL = 0x1373, /*!< TDM sink1 slot position [CH1 IN] */
TFA9896_BF_TDMSI2SL = 0x13b3, /*!< TDM sink2 slot position [CH2 IN] */
TFA9896_BF_TDMSO0SL = 0x1403, /*!< TDM source0 slot position [GAIN OUT] */
TFA9896_BF_TDMSO1SL = 0x1443, /*!< TDM source1 slot position [Voltage Sense] */
TFA9896_BF_TDMSO2SL = 0x1483, /*!< TDM source2 slot position [Current Sense] */
TFA9896_BF_NBCK = 0x14c3, /*!< TDM NBCK bit clock ratio */
TFA9896_BF_INTOVDDS = 0x2000, /*!< flag_por_int_out */
TFA9896_BF_INTOPLLS = 0x2010, /*!< flag_pll_lock_int_out */
TFA9896_BF_INTOOTDS = 0x2020, /*!< flag_otpok_int_out */
TFA9896_BF_INTOOVDS = 0x2030, /*!< flag_ovpok_int_out */
TFA9896_BF_INTOUVDS = 0x2040, /*!< flag_uvpok_int_out */
TFA9896_BF_INTOOCDS = 0x2050, /*!< flag_ocp_alarm_int_out */
TFA9896_BF_INTOCLKS = 0x2060, /*!< flag_clocks_stable_int_out */
TFA9896_BF_INTOCLIPS = 0x2070, /*!< flag_clip_int_out */
TFA9896_BF_INTOMTPB = 0x2080, /*!< mtp_busy_int_out */
TFA9896_BF_INTONOCLK = 0x2090, /*!< flag_lost_clk_int_out */
TFA9896_BF_INTOSPKS = 0x20a0, /*!< flag_cf_speakererror_int_out */
TFA9896_BF_INTOACS = 0x20b0, /*!< flag_cold_started_int_out */
TFA9896_BF_INTOSWS = 0x20c0, /*!< flag_engage_int_out */
TFA9896_BF_INTOWDS = 0x20d0, /*!< flag_watchdog_reset_int_out */
TFA9896_BF_INTOAMPS = 0x20e0, /*!< flag_enbl_amp_int_out */
TFA9896_BF_INTOAREFS = 0x20f0, /*!< flag_enbl_ref_int_out */
TFA9896_BF_INTOERR = 0x2200, /*!< flag_cfma_err_int_out */
TFA9896_BF_INTOACK = 0x2210, /*!< flag_cfma_ack_int_out */
TFA9896_BF_INTIVDDS = 0x2300, /*!< flag_por_int_in */
TFA9896_BF_INTIPLLS = 0x2310, /*!< flag_pll_lock_int_in */
TFA9896_BF_INTIOTDS = 0x2320, /*!< flag_otpok_int_in */
TFA9896_BF_INTIOVDS = 0x2330, /*!< flag_ovpok_int_in */
TFA9896_BF_INTIUVDS = 0x2340, /*!< flag_uvpok_int_in */
TFA9896_BF_INTIOCDS = 0x2350, /*!< flag_ocp_alarm_int_in */
TFA9896_BF_INTICLKS = 0x2360, /*!< flag_clocks_stable_int_in */
TFA9896_BF_INTICLIPS = 0x2370, /*!< flag_clip_int_in */
TFA9896_BF_INTIMTPB = 0x2380, /*!< mtp_busy_int_in */
TFA9896_BF_INTINOCLK = 0x2390, /*!< flag_lost_clk_int_in */
TFA9896_BF_INTISPKS = 0x23a0, /*!< flag_cf_speakererror_int_in */
TFA9896_BF_INTIACS = 0x23b0, /*!< flag_cold_started_int_in */
TFA9896_BF_INTISWS = 0x23c0, /*!< flag_engage_int_in */
TFA9896_BF_INTIWDS = 0x23d0, /*!< flag_watchdog_reset_int_in */
TFA9896_BF_INTIAMPS = 0x23e0, /*!< flag_enbl_amp_int_in */
TFA9896_BF_INTIAREFS = 0x23f0, /*!< flag_enbl_ref_int_in */
TFA9896_BF_INTIERR = 0x2500, /*!< flag_cfma_err_int_in */
TFA9896_BF_INTIACK = 0x2510, /*!< flag_cfma_ack_int_in */
TFA9896_BF_INTENVDDS = 0x2600, /*!< flag_por_int_enable */
TFA9896_BF_INTENPLLS = 0x2610, /*!< flag_pll_lock_int_enable */
TFA9896_BF_INTENOTDS = 0x2620, /*!< flag_otpok_int_enable */
TFA9896_BF_INTENOVDS = 0x2630, /*!< flag_ovpok_int_enable */
TFA9896_BF_INTENUVDS = 0x2640, /*!< flag_uvpok_int_enable */
TFA9896_BF_INTENOCDS = 0x2650, /*!< flag_ocp_alarm_int_enable */
TFA9896_BF_INTENCLKS = 0x2660, /*!< flag_clocks_stable_int_enable */
TFA9896_BF_INTENCLIPS = 0x2670, /*!< flag_clip_int_enable */
TFA9896_BF_INTENMTPB = 0x2680, /*!< mtp_busy_int_enable */
TFA9896_BF_INTENNOCLK = 0x2690, /*!< flag_lost_clk_int_enable */
TFA9896_BF_INTENSPKS = 0x26a0, /*!< flag_cf_speakererror_int_enable */
TFA9896_BF_INTENACS = 0x26b0, /*!< flag_cold_started_int_enable */
TFA9896_BF_INTENSWS = 0x26c0, /*!< flag_engage_int_enable */
TFA9896_BF_INTENWDS = 0x26d0, /*!< flag_watchdog_reset_int_enable */
TFA9896_BF_INTENAMPS = 0x26e0, /*!< flag_enbl_amp_int_enable */
TFA9896_BF_INTENAREFS = 0x26f0, /*!< flag_enbl_ref_int_enable */
TFA9896_BF_INTENERR = 0x2800, /*!< flag_cfma_err_int_enable */
TFA9896_BF_INTENACK = 0x2810, /*!< flag_cfma_ack_int_enable */
TFA9896_BF_INTPOLVDDS = 0x2900, /*!< flag_por_int_pol */
TFA9896_BF_INTPOLPLLS = 0x2910, /*!< flag_pll_lock_int_pol */
TFA9896_BF_INTPOLOTDS = 0x2920, /*!< flag_otpok_int_pol */
TFA9896_BF_INTPOLOVDS = 0x2930, /*!< flag_ovpok_int_pol */
TFA9896_BF_INTPOLUVDS = 0x2940, /*!< flag_uvpok_int_pol */
TFA9896_BF_INTPOLOCDS = 0x2950, /*!< flag_ocp_alarm_int_pol */
TFA9896_BF_INTPOLCLKS = 0x2960, /*!< flag_clocks_stable_int_pol */
TFA9896_BF_INTPOLCLIPS = 0x2970, /*!< flag_clip_int_pol */
TFA9896_BF_INTPOLMTPB = 0x2980, /*!< mtp_busy_int_pol */
TFA9896_BF_INTPOLNOCLK = 0x2990, /*!< flag_lost_clk_int_pol */
TFA9896_BF_INTPOLSPKS = 0x29a0, /*!< flag_cf_speakererror_int_pol */
TFA9896_BF_INTPOLACS = 0x29b0, /*!< flag_cold_started_int_pol */
TFA9896_BF_INTPOLSWS = 0x29c0, /*!< flag_engage_int_pol */
TFA9896_BF_INTPOLWDS = 0x29d0, /*!< flag_watchdog_reset_int_pol */
TFA9896_BF_INTPOLAMPS = 0x29e0, /*!< flag_enbl_amp_int_pol */
TFA9896_BF_INTPOLAREFS = 0x29f0, /*!< flag_enbl_ref_int_pol */
TFA9896_BF_INTPOLERR = 0x2b00, /*!< flag_cfma_err_int_pol */
TFA9896_BF_INTPOLACK = 0x2b10, /*!< flag_cfma_ack_int_pol */
TFA9896_BF_CLIP = 0x4900, /*!< Bypass clip control */
TFA9896_BF_CIMTP = 0x62b0, /*!< Start copying data from I2C mtp registers to mtp */
TFA9896_BF_RST = 0x7000, /*!< Reset CoolFlux DSP */
TFA9896_BF_DMEM = 0x7011, /*!< Target memory for access */
TFA9896_BF_AIF = 0x7030, /*!< Auto increment flag for memory-address */
TFA9896_BF_CFINT = 0x7040, /*!< CF Interrupt - auto clear */
TFA9896_BF_REQ = 0x7087, /*!< CF request for accessing the 8 channels */
TFA9896_BF_MADD = 0x710f, /*!< Memory address */
TFA9896_BF_MEMA = 0x720f, /*!< Activate memory access */
TFA9896_BF_ERR = 0x7307, /*!< CF error flags */
TFA9896_BF_ACK = 0x7387, /*!< CF acknowledgement of the requests channels */
TFA9896_BF_MTPOTC = 0x8000, /*!< Calibration schedule selection */
TFA9896_BF_MTPEX = 0x8010, /*!< Calibration of RON status bit */
} nxpTFA9896BfEnumList_t;
#define TFA9896_NAMETABLE static tfaBfName_t Tfa9896DatasheetNames[] = {\
{ 0x0, "VDDS"}, /* Power-on-reset flag (auto clear by reading) , */\
{ 0x10, "PLLS"}, /* PLL lock to programmed frequency , */\
{ 0x20, "OTDS"}, /* Over Temperature Protection alarm , */\
{ 0x30, "OVDS"}, /* Over Voltage Protection alarm , */\
{ 0x40, "UVDS"}, /* Under Voltage Protection alarm , */\
{ 0x50, "OCDS"}, /* Over Current Protection alarm , */\
{ 0x60, "CLKS"}, /* Clocks stable flag , */\
{ 0x70, "CLIPS"}, /* Amplifier clipping , */\
{ 0x80, "MTPB"}, /* MTP busy copying data to/from I2C registers , */\
{ 0x90, "NOCLK"}, /* lost clock detection (reference input clock) , */\
{ 0xa0, "SPKS"}, /* Speaker error , */\
{ 0xb0, "ACS"}, /* Cold Start required , */\
{ 0xc0, "SWS"}, /* Amplifier engage (Amp Switching) , */\
{ 0xd0, "WDS"}, /* watchdog reset (activates reset) , */\
{ 0xe0, "AMPS"}, /* Amplifier is enabled by manager , */\
{ 0xf0, "AREFS"}, /* References are enabled by manager , */\
{ 0x109, "BATS"}, /* Battery voltage from ADC readout , */\
{ 0x208, "TEMPS"}, /* Temperature readout from the temperature sensor ( C), */\
{ 0x30f, "REV"}, /* Device revision information , */\
{ 0x420, "RCV"}, /* Enable receiver mode , */\
{ 0x431, "CHS12"}, /* Channel Selection TDM input for Coolflux , */\
{ 0x450, "INPLVL"}, /* Input level selection attenuator ( , */\
{ 0x461, "CHSA"}, /* Input selection for amplifier , */\
{ 0x4c3, "AUDFS"}, /* Audio sample rate setting , */\
{ 0x501, "BSSCR"}, /* Batteery protection attack time , */\
{ 0x523, "BSST"}, /* Battery protection threshold level , */\
{ 0x561, "BSSRL"}, /* Battery protection maximum reduction , */\
{ 0x582, "BSSRR"}, /* Battery protection release time , */\
{ 0x5b1, "BSSHY"}, /* Battery Protection Hysteresis , */\
{ 0x5e0, "BSSR"}, /* Battery voltage value for read out (only) , */\
{ 0x5f0, "BSSBY"}, /* Bypass clipper battery protection , */\
{ 0x600, "DPSA"}, /* Enable dynamic powerstage activation (DPSA) , */\
{ 0x613, "ATTEN"}, /* Gain attenuation setting , */\
{ 0x650, "CFSM"}, /* Soft mute in CoolFlux , */\
{ 0x670, "BSSS"}, /* Battery sense steepness , */\
{ 0x687, "VOL"}, /* Coolflux volume control , */\
{ 0x702, "DCVO2"}, /* Second Boost Voltage , */\
{ 0x733, "DCMCC"}, /* Max boost coil current - step of 175 mA , */\
{ 0x772, "DCVO1"}, /* First Boost Voltage , */\
{ 0x7a0, "DCIE"}, /* Adaptive boost mode , */\
{ 0x7b0, "DCSR"}, /* Soft Rampup/down mode for DCDC controller , */\
{ 0x7c0, "DCPAVG"}, /* ctrl_peak2avg for analog part of DCDC , */\
{ 0x7d0, "DCPWM"}, /* DCDC PWM only mode , */\
{ 0x800, "TROS"}, /* Selection ambient temperature for speaker calibration , */\
{ 0x818, "EXTTS"}, /* External temperature for speaker calibration (C) , */\
{ 0x900, "PWDN"}, /* powerdown selection , */\
{ 0x910, "I2CR"}, /* All I2C registers reset to default , */\
{ 0x920, "CFE"}, /* Enable CoolFlux , */\
{ 0x930, "AMPE"}, /* Enable Amplifier , */\
{ 0x940, "DCA"}, /* Enable DCDC Boost converter , */\
{ 0x950, "SBSL"}, /* Coolflux configured , */\
{ 0x960, "AMPC"}, /* Selection if Coolflux enables amplifier , */\
{ 0x970, "DCDIS"}, /* DCDC boost converter not connected , */\
{ 0x980, "PSDR"}, /* IDDQ amplifier test selection , */\
{ 0x9c1, "INTPAD"}, /* INT pad (interrupt bump output) configuration , */\
{ 0x9e0, "IPLL"}, /* PLL input reference clock selection , */\
{ 0xa04, "DCTRIP"}, /* Adaptive boost trip levels (effective only when boost_intel is set to 1), */\
{ 0xa54, "DCHOLD"}, /* Hold time for DCDC booster (effective only when boost_intel is set to 1), */\
{ 0xb07, "MTPK"}, /* KEY2 to access key2 protected registers (default for engineering), */\
{ 0xc25, "CVFDLY"}, /* Fractional delay adjustment between current and voltage sense, */\
{ 0xec0, "OPENMTP"}, /* Enable programming of the MTP memory , */\
{ 0x1011, "TDMPRF"}, /* TDM usecase selection control , */\
{ 0x1030, "TDMEN"}, /* TDM interface enable , */\
{ 0x1040, "TDMCKINV"}, /* TDM clock inversion, receive on , */\
{ 0x1053, "TDMFSLN"}, /* TDM FS length , */\
{ 0x1090, "TDMFSPOL"}, /* TDM FS polarity (start frame) , */\
{ 0x10a4, "TDMSAMSZ"}, /* TDM sample size for all TDM sinks and sources , */\
{ 0x1103, "TDMSLOTS"}, /* TDM number of slots , */\
{ 0x1144, "TDMSLLN"}, /* TDM slot length , */\
{ 0x1194, "TDMBRMG"}, /* TDM bits remaining after the last slot , */\
{ 0x11e0, "TDMDDEL"}, /* TDM data delay , */\
{ 0x11f0, "TDMDADJ"}, /* TDM data adjustment , */\
{ 0x1201, "TDMTXFRM"}, /* TDM TXDATA format , */\
{ 0x1221, "TDMUUS0"}, /* TDM TXDATA format unused slot SD0 , */\
{ 0x1241, "TDMUUS1"}, /* TDM TXDATA format unused slot SD1 , */\
{ 0x1270, "TDMSI0EN"}, /* TDM sink0 enable , */\
{ 0x1280, "TDMSI1EN"}, /* TDM sink1 enable , */\
{ 0x1290, "TDMSI2EN"}, /* TDM sink2 enable , */\
{ 0x12a0, "TDMSO0EN"}, /* TDM source0 enable , */\
{ 0x12b0, "TDMSO1EN"}, /* TDM source1 enable , */\
{ 0x12c0, "TDMSO2EN"}, /* TDM source2 enable , */\
{ 0x12d0, "TDMSI0IO"}, /* TDM sink0 IO selection , */\
{ 0x12e0, "TDMSI1IO"}, /* TDM sink1 IO selection , */\
{ 0x12f0, "TDMSI2IO"}, /* TDM sink2 IO selection , */\
{ 0x1300, "TDMSO0IO"}, /* TDM source0 IO selection , */\
{ 0x1310, "TDMSO1IO"}, /* TDM source1 IO selection , */\
{ 0x1320, "TDMSO2IO"}, /* TDM source2 IO selection , */\
{ 0x1333, "TDMSI0SL"}, /* TDM sink0 slot position [GAIN IN] , */\
{ 0x1373, "TDMSI1SL"}, /* TDM sink1 slot position [CH1 IN] , */\
{ 0x13b3, "TDMSI2SL"}, /* TDM sink2 slot position [CH2 IN] , */\
{ 0x1403, "TDMSO0SL"}, /* TDM source0 slot position [GAIN OUT] , */\
{ 0x1443, "TDMSO1SL"}, /* TDM source1 slot position [Voltage Sense] , */\
{ 0x1483, "TDMSO2SL"}, /* TDM source2 slot position [Current Sense] , */\
{ 0x14c3, "NBCK"}, /* TDM NBCK bit clock ratio , */\
{ 0x2000, "INTOVDDS"}, /* flag_por_int_out , */\
{ 0x2010, "INTOPLLS"}, /* flag_pll_lock_int_out , */\
{ 0x2020, "INTOOTDS"}, /* flag_otpok_int_out , */\
{ 0x2030, "INTOOVDS"}, /* flag_ovpok_int_out , */\
{ 0x2040, "INTOUVDS"}, /* flag_uvpok_int_out , */\
{ 0x2050, "INTOOCDS"}, /* flag_ocp_alarm_int_out , */\
{ 0x2060, "INTOCLKS"}, /* flag_clocks_stable_int_out , */\
{ 0x2070, "INTOCLIPS"}, /* flag_clip_int_out , */\
{ 0x2080, "INTOMTPB"}, /* mtp_busy_int_out , */\
{ 0x2090, "INTONOCLK"}, /* flag_lost_clk_int_out , */\
{ 0x20a0, "INTOSPKS"}, /* flag_cf_speakererror_int_out , */\
{ 0x20b0, "INTOACS"}, /* flag_cold_started_int_out , */\
{ 0x20c0, "INTOSWS"}, /* flag_engage_int_out , */\
{ 0x20d0, "INTOWDS"}, /* flag_watchdog_reset_int_out , */\
{ 0x20e0, "INTOAMPS"}, /* flag_enbl_amp_int_out , */\
{ 0x20f0, "INTOAREFS"}, /* flag_enbl_ref_int_out , */\
{ 0x2200, "INTOERR"}, /* flag_cfma_err_int_out , */\
{ 0x2210, "INTOACK"}, /* flag_cfma_ack_int_out , */\
{ 0x2300, "INTIVDDS"}, /* flag_por_int_in , */\
{ 0x2310, "INTIPLLS"}, /* flag_pll_lock_int_in , */\
{ 0x2320, "INTIOTDS"}, /* flag_otpok_int_in , */\
{ 0x2330, "INTIOVDS"}, /* flag_ovpok_int_in , */\
{ 0x2340, "INTIUVDS"}, /* flag_uvpok_int_in , */\
{ 0x2350, "INTIOCDS"}, /* flag_ocp_alarm_int_in , */\
{ 0x2360, "INTICLKS"}, /* flag_clocks_stable_int_in , */\
{ 0x2370, "INTICLIPS"}, /* flag_clip_int_in , */\
{ 0x2380, "INTIMTPB"}, /* mtp_busy_int_in , */\
{ 0x2390, "INTINOCLK"}, /* flag_lost_clk_int_in , */\
{ 0x23a0, "INTISPKS"}, /* flag_cf_speakererror_int_in , */\
{ 0x23b0, "INTIACS"}, /* flag_cold_started_int_in , */\
{ 0x23c0, "INTISWS"}, /* flag_engage_int_in , */\
{ 0x23d0, "INTIWDS"}, /* flag_watchdog_reset_int_in , */\
{ 0x23e0, "INTIAMPS"}, /* flag_enbl_amp_int_in , */\
{ 0x23f0, "INTIAREFS"}, /* flag_enbl_ref_int_in , */\
{ 0x2500, "INTIERR"}, /* flag_cfma_err_int_in , */\
{ 0x2510, "INTIACK"}, /* flag_cfma_ack_int_in , */\
{ 0x2600, "INTENVDDS"}, /* flag_por_int_enable , */\
{ 0x2610, "INTENPLLS"}, /* flag_pll_lock_int_enable , */\
{ 0x2620, "INTENOTDS"}, /* flag_otpok_int_enable , */\
{ 0x2630, "INTENOVDS"}, /* flag_ovpok_int_enable , */\
{ 0x2640, "INTENUVDS"}, /* flag_uvpok_int_enable , */\
{ 0x2650, "INTENOCDS"}, /* flag_ocp_alarm_int_enable , */\
{ 0x2660, "INTENCLKS"}, /* flag_clocks_stable_int_enable , */\
{ 0x2670, "INTENCLIPS"}, /* flag_clip_int_enable , */\
{ 0x2680, "INTENMTPB"}, /* mtp_busy_int_enable , */\
{ 0x2690, "INTENNOCLK"}, /* flag_lost_clk_int_enable , */\
{ 0x26a0, "INTENSPKS"}, /* flag_cf_speakererror_int_enable , */\
{ 0x26b0, "INTENACS"}, /* flag_cold_started_int_enable , */\
{ 0x26c0, "INTENSWS"}, /* flag_engage_int_enable , */\
{ 0x26d0, "INTENWDS"}, /* flag_watchdog_reset_int_enable , */\
{ 0x26e0, "INTENAMPS"}, /* flag_enbl_amp_int_enable , */\
{ 0x26f0, "INTENAREFS"}, /* flag_enbl_ref_int_enable , */\
{ 0x2800, "INTENERR"}, /* flag_cfma_err_int_enable , */\
{ 0x2810, "INTENACK"}, /* flag_cfma_ack_int_enable , */\
{ 0x2900, "INTPOLVDDS"}, /* flag_por_int_pol , */\
{ 0x2910, "INTPOLPLLS"}, /* flag_pll_lock_int_pol , */\
{ 0x2920, "INTPOLOTDS"}, /* flag_otpok_int_pol , */\
{ 0x2930, "INTPOLOVDS"}, /* flag_ovpok_int_pol , */\
{ 0x2940, "INTPOLUVDS"}, /* flag_uvpok_int_pol , */\
{ 0x2950, "INTPOLOCDS"}, /* flag_ocp_alarm_int_pol , */\
{ 0x2960, "INTPOLCLKS"}, /* flag_clocks_stable_int_pol , */\
{ 0x2970, "INTPOLCLIPS"}, /* flag_clip_int_pol , */\
{ 0x2980, "INTPOLMTPB"}, /* mtp_busy_int_pol , */\
{ 0x2990, "INTPOLNOCLK"}, /* flag_lost_clk_int_pol , */\
{ 0x29a0, "INTPOLSPKS"}, /* flag_cf_speakererror_int_pol , */\
{ 0x29b0, "INTPOLACS"}, /* flag_cold_started_int_pol , */\
{ 0x29c0, "INTPOLSWS"}, /* flag_engage_int_pol , */\
{ 0x29d0, "INTPOLWDS"}, /* flag_watchdog_reset_int_pol , */\
{ 0x29e0, "INTPOLAMPS"}, /* flag_enbl_amp_int_pol , */\
{ 0x29f0, "INTPOLAREFS"}, /* flag_enbl_ref_int_pol , */\
{ 0x2b00, "INTPOLERR"}, /* flag_cfma_err_int_pol , */\
{ 0x2b10, "INTPOLACK"}, /* flag_cfma_ack_int_pol , */\
{ 0x4900, "CLIP"}, /* Bypass clip control , */\
{ 0x62b0, "CIMTP"}, /* Start copying data from I2C mtp registers to mtp , */\
{ 0x7000, "RST"}, /* Reset CoolFlux DSP , */\
{ 0x7011, "DMEM"}, /* Target memory for access , */\
{ 0x7030, "AIF"}, /* Auto increment flag for memory-address , */\
{ 0x7040, "CFINT"}, /* CF Interrupt - auto clear , */\
{ 0x7087, "REQ"}, /* CF request for accessing the 8 channels , */\
{ 0x710f, "MADD"}, /* Memory address , */\
{ 0x720f, "MEMA"}, /* Activate memory access , */\
{ 0x7307, "ERR"}, /* CF error flags , */\
{ 0x7387, "ACK"}, /* CF acknowledgement of the requests channels , */\
{ 0x8000, "MTPOTC"}, /* Calibration schedule selection , */\
{ 0x8010, "MTPEX"}, /* Calibration of RON status bit , */\
{ 0x8045, "SWPROFIL" },\
{ 0x80a5, "SWVSTEP" },\
{ 0xffff, "Unknown bitfield enum" } /* not found */\
};
#define TFA9896_BITNAMETABLE static tfaBfName_t Tfa9896BitNames[] = {\
{ 0x0, "flag_por"}, /* Power-on-reset flag (auto clear by reading) , */\
{ 0x10, "flag_pll_lock"}, /* PLL lock to programmed frequency , */\
{ 0x20, "flag_otpok"}, /* Over Temperature Protection alarm , */\
{ 0x30, "flag_ovpok"}, /* Over Voltage Protection alarm , */\
{ 0x40, "flag_uvpok"}, /* Under Voltage Protection alarm , */\
{ 0x50, "flag_ocp_alarm"}, /* Over Current Protection alarm , */\
{ 0x60, "flag_clocks_stable"}, /* Clocks stable flag , */\
{ 0x70, "flag_clip"}, /* Amplifier clipping , */\
{ 0x80, "mtp_busy"}, /* MTP busy copying data to/from I2C registers , */\
{ 0x90, "flag_lost_clk"}, /* lost clock detection (reference input clock) , */\
{ 0xa0, "flag_cf_speakererror"}, /* Speaker error , */\
{ 0xb0, "flag_cold_started"}, /* Cold Start required , */\
{ 0xc0, "flag_engage"}, /* Amplifier engage (Amp Switching) , */\
{ 0xd0, "flag_watchdog_reset"}, /* watchdog reset (activates reset) , */\
{ 0xe0, "flag_enbl_amp"}, /* Amplifier is enabled by manager , */\
{ 0xf0, "flag_enbl_ref"}, /* References are enabled by manager , */\
{ 0x109, "bat_adc"}, /* Battery voltage from ADC readout , */\
{ 0x208, "temp_adc"}, /* Temperature readout from the temperature sensor ( C), */\
{ 0x30f, "device_rev"}, /* Device revision information , */\
{ 0x420, "ctrl_rcv"}, /* Enable receiver mode , */\
{ 0x431, "chan_sel"}, /* Channel Selection TDM input for Coolflux , */\
{ 0x450, "input_level"}, /* Input level selection attenuator ( , */\
{ 0x461, "vamp_sel"}, /* Input selection for amplifier , */\
{ 0x4c3, "audio_fs"}, /* Audio sample rate setting , */\
{ 0x501, "vbat_prot_attacktime"}, /* Batteery protection attack time , */\
{ 0x523, "vbat_prot_thlevel"}, /* Battery protection threshold level , */\
{ 0x561, "vbat_prot_max_reduct"}, /* Battery protection maximum reduction , */\
{ 0x582, "vbat_prot_release_t"}, /* Battery protection release time , */\
{ 0x5b1, "vbat_prot_hysterese"}, /* Battery Protection Hysteresis , */\
{ 0x5d0, "reset_min_vbat"}, /* Battery supply safeguard clipper reset ( if CF_DSP is bypassed), */\
{ 0x5e0, "sel_vbat"}, /* Battery voltage value for read out (only) , */\
{ 0x5f0, "bypass_clipper"}, /* Bypass clipper battery protection , */\
{ 0x600, "dpsa"}, /* Enable dynamic powerstage activation (DPSA) , */\
{ 0x613, "ctrl_att"}, /* Gain attenuation setting , */\
{ 0x650, "cf_mute"}, /* Soft mute in CoolFlux , */\
{ 0x670, "batsense_steepness"}, /* Battery sense steepness , */\
{ 0x687, "vol"}, /* Coolflux volume control , */\
{ 0x702, "scnd_boost_voltage"}, /* Second Boost Voltage , */\
{ 0x733, "boost_cur"}, /* Max boost coil current - step of 175 mA , */\
{ 0x772, "frst_boost_voltage"}, /* First Boost Voltage , */\
{ 0x7a0, "boost_intel"}, /* Adaptive boost mode , */\
{ 0x7b0, "boost_speed"}, /* Soft Rampup/down mode for DCDC controller , */\
{ 0x7c0, "boost_peak2avg"}, /* ctrl_peak2avg for analog part of DCDC , */\
{ 0x7d0, "dcdc_pwmonly"}, /* DCDC PWM only mode , */\
{ 0x7e0, "ignore_flag_voutcomp86"}, /* Ignore flag_voutcomp86 (flag from analog) , */\
{ 0x800, "ext_temp_sel"}, /* Selection ambient temperature for speaker calibration , */\
{ 0x818, "ext_temp"}, /* External temperature for speaker calibration (C) , */\
{ 0x900, "powerdown"}, /* powerdown selection , */\
{ 0x910, "reset"}, /* All I2C registers reset to default , */\
{ 0x920, "enbl_coolflux"}, /* Enable CoolFlux , */\
{ 0x930, "enbl_amplifier"}, /* Enable Amplifier , */\
{ 0x940, "enbl_boost"}, /* Enable DCDC Boost converter , */\
{ 0x950, "coolflux_configured"}, /* Coolflux configured , */\
{ 0x960, "sel_enbl_amplifier"}, /* Selection if Coolflux enables amplifier , */\
{ 0x970, "dcdcoff_mode"}, /* DCDC boost converter not connected , */\
{ 0x980, "iddqtest"}, /* IDDQ amplifier test selection , */\
{ 0x9c1, "int_pad_io"}, /* INT pad (interrupt bump output) configuration , */\
{ 0x9e0, "sel_fs_bck"}, /* PLL input reference clock selection , */\
{ 0x9f0, "sel_scl_cf_clock"}, /* Coolflux sub-system clock selection , */\
{ 0xa04, "boost_trip_lvl"}, /* Adaptive boost trip levels (effective only when boost_intel is set to 1), */\
{ 0xa54, "boost_hold_time"}, /* Hold time for DCDC booster (effective only when boost_intel is set to 1), */\
{ 0xaa1, "bst_slpcmplvl"}, /* Slope compensation current, represents LxF (inductance x frequency) value , */\
{ 0xb07, "mtpkey2"}, /* KEY2 to access key2 protected registers (default for engineering), */\
{ 0xc00, "enbl_volt_sense"}, /* Voltage sense enabling control bit , */\
{ 0xc10, "vsense_pwm_sel"}, /* Voltage sense source selection , */\
{ 0xc25, "vi_frac_delay"}, /* Fractional delay adjustment between current and voltage sense, */\
{ 0xc80, "sel_voltsense_out"}, /* TDM output data selection for AEC , */\
{ 0xc90, "vsense_bypass_avg"}, /* Voltage sense average block bypass , */\
{ 0xd05, "cf_frac_delay"}, /* Fractional delay adjustment between current and voltage sense by firmware, */\
{ 0xe00, "bypass_dcdc_curr_prot"}, /* Control to switch off dcdc current reduction with bat protection, */\
{ 0xe10, "bypass_ocp"}, /* Bypass OCP (digital IP block) , */\
{ 0xe20, "ocptest"}, /* ocptest (analog IP block) enable , */\
{ 0xe80, "disable_clock_sh_prot"}, /* Disable clock_sh protection , */\
{ 0xe92, "reserve_reg_15_09"}, /* Spare control bits for future usage , */\
{ 0xec0, "unprotect_mtp"}, /* Enable programming of the MTP memory , */\
{ 0xed2, "reserve_reg_15_13"}, /* Spare control bits for future usage , */\
{ 0xf00, "dcdc_pfm20khz_limit"}, /* DCDC in PFM mode forcing each 50us a pwm pulse , */\
{ 0xf11, "dcdc_ctrl_maxzercnt"}, /* DCDC number of zero current flags required to go to pfm mode, */\
{ 0xf36, "dcdc_vbat_delta_detect"}, /* DCDC threshold required on a delta Vbat (in PFM mode) switching to PWM mode, */\
{ 0xfa0, "dcdc_ignore_vbat"}, /* Ignore an increase on Vbat , */\
{ 0x1011, "tdm_usecase"}, /* TDM usecase selection control , */\
{ 0x1030, "tdm_enable"}, /* TDM interface enable , */\
{ 0x1040, "tdm_clk_inversion"}, /* TDM clock inversion, receive on , */\
{ 0x1053, "tdm_fs_ws_length"}, /* TDM FS length , */\
{ 0x1090, "tdm_fs_ws_polarity"}, /* TDM FS polarity (start frame) , */\
{ 0x10a4, "tdm_sample_size"}, /* TDM sample size for all TDM sinks and sources , */\
{ 0x1103, "tdm_nb_of_slots"}, /* TDM number of slots , */\
{ 0x1144, "tdm_slot_length"}, /* TDM slot length , */\
{ 0x1194, "tdm_bits_remaining"}, /* TDM bits remaining after the last slot , */\
{ 0x11e0, "tdm_data_delay"}, /* TDM data delay , */\
{ 0x11f0, "tdm_data_adjustment"}, /* TDM data adjustment , */\
{ 0x1201, "tdm_txdata_format"}, /* TDM TXDATA format , */\
{ 0x1221, "tdm_txdata_format_unused_slot_sd0"}, /* TDM TXDATA format unused slot SD0 , */\
{ 0x1241, "tdm_txdata_format_unused_slot_sd1"}, /* TDM TXDATA format unused slot SD1 , */\
{ 0x1270, "tdm_sink0_enable"}, /* TDM sink0 enable , */\
{ 0x1280, "tdm_sink1_enable"}, /* TDM sink1 enable , */\
{ 0x1290, "tdm_sink2_enable"}, /* TDM sink2 enable , */\
{ 0x12a0, "tdm_source0_enable"}, /* TDM source0 enable , */\
{ 0x12b0, "tdm_source1_enable"}, /* TDM source1 enable , */\
{ 0x12c0, "tdm_source2_enable"}, /* TDM source2 enable , */\
{ 0x12d0, "tdm_sink0_io"}, /* TDM sink0 IO selection , */\
{ 0x12e0, "tdm_sink1_io"}, /* TDM sink1 IO selection , */\
{ 0x12f0, "tdm_sink2_io"}, /* TDM sink2 IO selection , */\
{ 0x1300, "tdm_source0_io"}, /* TDM source0 IO selection , */\
{ 0x1310, "tdm_source1_io"}, /* TDM source1 IO selection , */\
{ 0x1320, "tdm_source2_io"}, /* TDM source2 IO selection , */\
{ 0x1333, "tdm_sink0_slot"}, /* TDM sink0 slot position [GAIN IN] , */\
{ 0x1373, "tdm_sink1_slot"}, /* TDM sink1 slot position [CH1 IN] , */\
{ 0x13b3, "tdm_sink2_slot"}, /* TDM sink2 slot position [CH2 IN] , */\
{ 0x1403, "tdm_source0_slot"}, /* TDM source0 slot position [GAIN OUT] , */\
{ 0x1443, "tdm_source1_slot"}, /* TDM source1 slot position [Voltage Sense] , */\
{ 0x1483, "tdm_source2_slot"}, /* TDM source2 slot position [Current Sense] , */\
{ 0x14c3, "tdm_nbck"}, /* TDM NBCK bit clock ratio , */\
{ 0x1500, "flag_tdm_lut_error"}, /* TDM LUT error flag , */\
{ 0x1512, "flag_tdm_status"}, /* TDM interface status bits , */\
{ 0x1540, "flag_tdm_error"}, /* TDM interface error indicator , */\
{ 0x1551, "status_bst_mode"}, /* DCDC mode status bits , */\
{ 0x2000, "flag_por_int_out"}, /* flag_por_int_out , */\
{ 0x2010, "flag_pll_lock_int_out"}, /* flag_pll_lock_int_out , */\
{ 0x2020, "flag_otpok_int_out"}, /* flag_otpok_int_out , */\
{ 0x2030, "flag_ovpok_int_out"}, /* flag_ovpok_int_out , */\
{ 0x2040, "flag_uvpok_int_out"}, /* flag_uvpok_int_out , */\
{ 0x2050, "flag_ocp_alarm_int_out"}, /* flag_ocp_alarm_int_out , */\
{ 0x2060, "flag_clocks_stable_int_out"}, /* flag_clocks_stable_int_out , */\
{ 0x2070, "flag_clip_int_out"}, /* flag_clip_int_out , */\
{ 0x2080, "mtp_busy_int_out"}, /* mtp_busy_int_out , */\
{ 0x2090, "flag_lost_clk_int_out"}, /* flag_lost_clk_int_out , */\
{ 0x20a0, "flag_cf_speakererror_int_out"}, /* flag_cf_speakererror_int_out , */\
{ 0x20b0, "flag_cold_started_int_out"}, /* flag_cold_started_int_out , */\
{ 0x20c0, "flag_engage_int_out"}, /* flag_engage_int_out , */\
{ 0x20d0, "flag_watchdog_reset_int_out"}, /* flag_watchdog_reset_int_out , */\
{ 0x20e0, "flag_enbl_amp_int_out"}, /* flag_enbl_amp_int_out , */\
{ 0x20f0, "flag_enbl_ref_int_out"}, /* flag_enbl_ref_int_out , */\
{ 0x2100, "flag_voutcomp_int_out"}, /* flag_voutcomp_int_out , */\
{ 0x2110, "flag_voutcomp93_int_out"}, /* flag_voutcomp93_int_out , */\
{ 0x2120, "flag_voutcomp86_int_out"}, /* flag_voutcomp86_int_out , */\
{ 0x2130, "flag_hiz_int_out"}, /* flag_hiz_int_out , */\
{ 0x2140, "flag_ocpokbst_int_out"}, /* flag_ocpokbst_int_out , */\
{ 0x2150, "flag_peakcur_int_out"}, /* flag_peakcur_int_out , */\
{ 0x2160, "flag_ocpokap_int_out"}, /* flag_ocpokap_int_out , */\
{ 0x2170, "flag_ocpokan_int_out"}, /* flag_ocpokan_int_out , */\
{ 0x2180, "flag_ocpokbp_int_out"}, /* flag_ocpokbp_int_out , */\
{ 0x2190, "flag_ocpokbn_int_out"}, /* flag_ocpokbn_int_out , */\
{ 0x21a0, "flag_adc10_ready_int_out"}, /* flag_adc10_ready_int_out , */\
{ 0x21b0, "flag_clipa_high_int_out"}, /* flag_clipa_high_int_out , */\
{ 0x21c0, "flag_clipa_low_int_out"}, /* flag_clipa_low_int_out , */\
{ 0x21d0, "flag_clipb_high_int_out"}, /* flag_clipb_high_int_out , */\
{ 0x21e0, "flag_clipb_low_int_out"}, /* flag_clipb_low_int_out , */\
{ 0x21f0, "flag_tdm_error_int_out"}, /* flag_tdm_error_int_out , */\
{ 0x2200, "flag_cfma_err_int_out"}, /* flag_cfma_err_int_out , */\
{ 0x2210, "flag_cfma_ack_int_out"}, /* flag_cfma_ack_int_out , */\
{ 0x2300, "flag_por_int_in"}, /* flag_por_int_in , */\
{ 0x2310, "flag_pll_lock_int_in"}, /* flag_pll_lock_int_in , */\
{ 0x2320, "flag_otpok_int_in"}, /* flag_otpok_int_in , */\
{ 0x2330, "flag_ovpok_int_in"}, /* flag_ovpok_int_in , */\
{ 0x2340, "flag_uvpok_int_in"}, /* flag_uvpok_int_in , */\
{ 0x2350, "flag_ocp_alarm_int_in"}, /* flag_ocp_alarm_int_in , */\
{ 0x2360, "flag_clocks_stable_int_in"}, /* flag_clocks_stable_int_in , */\
{ 0x2370, "flag_clip_int_in"}, /* flag_clip_int_in , */\
{ 0x2380, "mtp_busy_int_in"}, /* mtp_busy_int_in , */\
{ 0x2390, "flag_lost_clk_int_in"}, /* flag_lost_clk_int_in , */\
{ 0x23a0, "flag_cf_speakererror_int_in"}, /* flag_cf_speakererror_int_in , */\
{ 0x23b0, "flag_cold_started_int_in"}, /* flag_cold_started_int_in , */\
{ 0x23c0, "flag_engage_int_in"}, /* flag_engage_int_in , */\
{ 0x23d0, "flag_watchdog_reset_int_in"}, /* flag_watchdog_reset_int_in , */\
{ 0x23e0, "flag_enbl_amp_int_in"}, /* flag_enbl_amp_int_in , */\
{ 0x23f0, "flag_enbl_ref_int_in"}, /* flag_enbl_ref_int_in , */\
{ 0x2400, "flag_voutcomp_int_in"}, /* flag_voutcomp_int_in , */\
{ 0x2410, "flag_voutcomp93_int_in"}, /* flag_voutcomp93_int_in , */\
{ 0x2420, "flag_voutcomp86_int_in"}, /* flag_voutcomp86_int_in , */\
{ 0x2430, "flag_hiz_int_in"}, /* flag_hiz_int_in , */\
{ 0x2440, "flag_ocpokbst_int_in"}, /* flag_ocpokbst_int_in , */\
{ 0x2450, "flag_peakcur_int_in"}, /* flag_peakcur_int_in , */\
{ 0x2460, "flag_ocpokap_int_in"}, /* flag_ocpokap_int_in , */\
{ 0x2470, "flag_ocpokan_int_in"}, /* flag_ocpokan_int_in , */\
{ 0x2480, "flag_ocpokbp_int_in"}, /* flag_ocpokbp_int_in , */\
{ 0x2490, "flag_ocpokbn_int_in"}, /* flag_ocpokbn_int_in , */\
{ 0x24a0, "flag_adc10_ready_int_in"}, /* flag_adc10_ready_int_in , */\
{ 0x24b0, "flag_clipa_high_int_in"}, /* flag_clipa_high_int_in , */\
{ 0x24c0, "flag_clipa_low_int_in"}, /* flag_clipa_low_int_in , */\
{ 0x24d0, "flag_clipb_high_int_in"}, /* flag_clipb_high_int_in , */\
{ 0x24e0, "flag_clipb_low_int_in"}, /* flag_clipb_low_int_in , */\
{ 0x24f0, "flag_tdm_error_int_in"}, /* flag_tdm_error_int_in , */\
{ 0x2500, "flag_cfma_err_int_in"}, /* flag_cfma_err_int_in , */\
{ 0x2510, "flag_cfma_ack_int_in"}, /* flag_cfma_ack_int_in , */\
{ 0x2600, "flag_por_int_enable"}, /* flag_por_int_enable , */\
{ 0x2610, "flag_pll_lock_int_enable"}, /* flag_pll_lock_int_enable , */\
{ 0x2620, "flag_otpok_int_enable"}, /* flag_otpok_int_enable , */\
{ 0x2630, "flag_ovpok_int_enable"}, /* flag_ovpok_int_enable , */\
{ 0x2640, "flag_uvpok_int_enable"}, /* flag_uvpok_int_enable , */\
{ 0x2650, "flag_ocp_alarm_int_enable"}, /* flag_ocp_alarm_int_enable , */\
{ 0x2660, "flag_clocks_stable_int_enable"}, /* flag_clocks_stable_int_enable , */\
{ 0x2670, "flag_clip_int_enable"}, /* flag_clip_int_enable , */\
{ 0x2680, "mtp_busy_int_enable"}, /* mtp_busy_int_enable , */\
{ 0x2690, "flag_lost_clk_int_enable"}, /* flag_lost_clk_int_enable , */\
{ 0x26a0, "flag_cf_speakererror_int_enable"}, /* flag_cf_speakererror_int_enable , */\
{ 0x26b0, "flag_cold_started_int_enable"}, /* flag_cold_started_int_enable , */\
{ 0x26c0, "flag_engage_int_enable"}, /* flag_engage_int_enable , */\
{ 0x26d0, "flag_watchdog_reset_int_enable"}, /* flag_watchdog_reset_int_enable , */\
{ 0x26e0, "flag_enbl_amp_int_enable"}, /* flag_enbl_amp_int_enable , */\
{ 0x26f0, "flag_enbl_ref_int_enable"}, /* flag_enbl_ref_int_enable , */\
{ 0x2700, "flag_voutcomp_int_enable"}, /* flag_voutcomp_int_enable , */\
{ 0x2710, "flag_voutcomp93_int_enable"}, /* flag_voutcomp93_int_enable , */\
{ 0x2720, "flag_voutcomp86_int_enable"}, /* flag_voutcomp86_int_enable , */\
{ 0x2730, "flag_hiz_int_enable"}, /* flag_hiz_int_enable , */\
{ 0x2740, "flag_ocpokbst_int_enable"}, /* flag_ocpokbst_int_enable , */\
{ 0x2750, "flag_peakcur_int_enable"}, /* flag_peakcur_int_enable , */\
{ 0x2760, "flag_ocpokap_int_enable"}, /* flag_ocpokap_int_enable , */\
{ 0x2770, "flag_ocpokan_int_enable"}, /* flag_ocpokan_int_enable , */\
{ 0x2780, "flag_ocpokbp_int_enable"}, /* flag_ocpokbp_int_enable , */\
{ 0x2790, "flag_ocpokbn_int_enable"}, /* flag_ocpokbn_int_enable , */\
{ 0x27a0, "flag_adc10_ready_int_enable"}, /* flag_adc10_ready_int_enable , */\
{ 0x27b0, "flag_clipa_high_int_enable"}, /* flag_clipa_high_int_enable , */\
{ 0x27c0, "flag_clipa_low_int_enable"}, /* flag_clipa_low_int_enable , */\
{ 0x27d0, "flag_clipb_high_int_enable"}, /* flag_clipb_high_int_enable , */\
{ 0x27e0, "flag_clipb_low_int_enable"}, /* flag_clipb_low_int_enable , */\
{ 0x27f0, "flag_tdm_error_int_enable"}, /* flag_tdm_error_int_enable , */\
{ 0x2800, "flag_cfma_err_int_enable"}, /* flag_cfma_err_int_enable , */\
{ 0x2810, "flag_cfma_ack_int_enable"}, /* flag_cfma_ack_int_enable , */\
{ 0x2900, "flag_por_int_pol"}, /* flag_por_int_pol , */\
{ 0x2910, "flag_pll_lock_int_pol"}, /* flag_pll_lock_int_pol , */\
{ 0x2920, "flag_otpok_int_pol"}, /* flag_otpok_int_pol , */\
{ 0x2930, "flag_ovpok_int_pol"}, /* flag_ovpok_int_pol , */\
{ 0x2940, "flag_uvpok_int_pol"}, /* flag_uvpok_int_pol , */\
{ 0x2950, "flag_ocp_alarm_int_pol"}, /* flag_ocp_alarm_int_pol , */\
{ 0x2960, "flag_clocks_stable_int_pol"}, /* flag_clocks_stable_int_pol , */\
{ 0x2970, "flag_clip_int_pol"}, /* flag_clip_int_pol , */\
{ 0x2980, "mtp_busy_int_pol"}, /* mtp_busy_int_pol , */\
{ 0x2990, "flag_lost_clk_int_pol"}, /* flag_lost_clk_int_pol , */\
{ 0x29a0, "flag_cf_speakererror_int_pol"}, /* flag_cf_speakererror_int_pol , */\
{ 0x29b0, "flag_cold_started_int_pol"}, /* flag_cold_started_int_pol , */\
{ 0x29c0, "flag_engage_int_pol"}, /* flag_engage_int_pol , */\
{ 0x29d0, "flag_watchdog_reset_int_pol"}, /* flag_watchdog_reset_int_pol , */\
{ 0x29e0, "flag_enbl_amp_int_pol"}, /* flag_enbl_amp_int_pol , */\
{ 0x29f0, "flag_enbl_ref_int_pol"}, /* flag_enbl_ref_int_pol , */\
{ 0x2a00, "flag_voutcomp_int_pol"}, /* flag_voutcomp_int_pol , */\
{ 0x2a10, "flag_voutcomp93_int_pol"}, /* flag_voutcomp93_int_pol , */\
{ 0x2a20, "flag_voutcomp86_int_pol"}, /* flag_voutcomp86_int_pol , */\
{ 0x2a30, "flag_hiz_int_pol"}, /* flag_hiz_int_pol , */\
{ 0x2a40, "flag_ocpokbst_int_pol"}, /* flag_ocpokbst_int_pol , */\
{ 0x2a50, "flag_peakcur_int_pol"}, /* flag_peakcur_int_pol , */\
{ 0x2a60, "flag_ocpokap_int_pol"}, /* flag_ocpokap_int_pol , */\
{ 0x2a70, "flag_ocpokan_int_pol"}, /* flag_ocpokan_int_pol , */\
{ 0x2a80, "flag_ocpokbp_int_pol"}, /* flag_ocpokbp_int_pol , */\
{ 0x2a90, "flag_ocpokbn_int_pol"}, /* flag_ocpokbn_int_pol , */\
{ 0x2aa0, "flag_adc10_ready_int_pol"}, /* flag_adc10_ready_int_pol , */\
{ 0x2ab0, "flag_clipa_high_int_pol"}, /* flag_clipa_high_int_pol , */\
{ 0x2ac0, "flag_clipa_low_int_pol"}, /* flag_clipa_low_int_pol , */\
{ 0x2ad0, "flag_clipb_high_int_pol"}, /* flag_clipb_high_int_pol , */\
{ 0x2ae0, "flag_clipb_low_int_pol"}, /* flag_clipb_low_int_pol , */\
{ 0x2af0, "flag_tdm_error_int_pol"}, /* flag_tdm_error_int_pol , */\
{ 0x2b00, "flag_cfma_err_int_pol"}, /* flag_cfma_err_int_pol , */\
{ 0x2b10, "flag_cfma_ack_int_pol"}, /* flag_cfma_ack_int_pol , */\
{ 0x3000, "flag_voutcomp"}, /* Status flag_voutcomp, indication Vset is larger than Vbat, */\
{ 0x3010, "flag_voutcomp93"}, /* Status flag_voutcomp93, indication Vset is larger than 1.07 x Vbat, */\
{ 0x3020, "flag_voutcomp86"}, /* Status flag voutcomp86, indication Vset is larger than 1.14 x Vbat, */\
{ 0x3030, "flag_hiz"}, /* Status flag_hiz, indication Vbst is larger than Vbat, */\
{ 0x3040, "flag_ocpokbst"}, /* Status flag_ocpokbst, indication no over current in boost converter PMOS switch, */\
{ 0x3050, "flag_peakcur"}, /* Status flag_peakcur, indication current is max in dcdc converter, */\
{ 0x3060, "flag_ocpokap"}, /* Status flag_ocpokap, indication no over current in amplifier A PMOS output stage, */\
{ 0x3070, "flag_ocpokan"}, /* Status flag_ocpokan, indication no over current in amplifier A NMOS output stage, */\
{ 0x3080, "flag_ocpokbp"}, /* Status flag_ocpokbp, indication no over current in amplifier B PMOS output stage, */\
{ 0x3090, "flag_ocpokbn"}, /* Status flag_ocpokbn, indication no over current in amplifier B NMOS output stage, */\
{ 0x30a0, "flag_adc10_ready"}, /* Status flag_adc10_ready, indication adc10 is ready, */\
{ 0x30b0, "flag_clipa_high"}, /* Status flag_clipa_high, indication pmos amplifier A is clipping, */\
{ 0x30c0, "flag_clipa_low"}, /* Status flag_clipa_low, indication nmos amplifier A is clipping, */\
{ 0x30d0, "flag_clipb_high"}, /* Status flag_clipb_high, indication pmos amplifier B is clipping, */\
{ 0x30e0, "flag_clipb_low"}, /* Status flag_clipb_low, indication nmos amplifier B is clipping, */\
{ 0x310f, "mtp_man_data_out"}, /* MTP manual read out data , */\
{ 0x3200, "key01_locked"}, /* Indicates KEY1 is locked , */\
{ 0x3210, "key02_locked"}, /* Indicates KEY2 is locked , */\
{ 0x3225, "mtp_ecc_tcout"}, /* MTP error correction test data out , */\
{ 0x3280, "mtpctrl_valid_test_rd"}, /* MTP test readout for read , */\
{ 0x3290, "mtpctrl_valid_test_wr"}, /* MTP test readout for write , */\
{ 0x32a0, "flag_in_alarm_state"}, /* Flag alarm state , */\
{ 0x32b0, "mtp_ecc_err2"}, /* Two or more bit errors detected in MTP, can not reconstruct value, */\
{ 0x32c0, "mtp_ecc_err1"}, /* One bit error detected in MTP, reconstructed value, */\
{ 0x32d0, "mtp_mtp_hvf"}, /* High voltage ready flag for MTP , */\
{ 0x32f0, "mtp_zero_check_fail"}, /* Zero check failed for MTP , */\
{ 0x3309, "data_adc10_tempbat"}, /* ADC10 data output for testing battery voltage and temperature, */\
{ 0x400f, "hid_code"}, /* 5A6Bh, 23147d to access hidden registers (default for engineering), */\
{ 0x4100, "bypass_hp"}, /* Bypass High Pass Filter , */\
{ 0x4110, "hard_mute"}, /* Hard Mute , */\
{ 0x4120, "soft_mute"}, /* Soft Mute , */\
{ 0x4134, "pwm_delay"}, /* PWM delay setting , */\
{ 0x4180, "pwm_shape"}, /* PWM Shape , */\
{ 0x4190, "pwm_bitlength"}, /* PWM Bitlength in noise shaper , */\
{ 0x4203, "drive"}, /* Drive bits to select number of amplifier power stages, */\
{ 0x4240, "reclock_pwm"}, /* Control for enabling reclocking of PWM signal , */\
{ 0x4250, "reclock_voltsense"}, /* Control for enabling reclocking of voltage sense signal, */\
{ 0x4281, "dpsalevel"}, /* DPSA threshold level , */\
{ 0x42a1, "dpsa_release"}, /* DPSA release time , */\
{ 0x42c0, "coincidence"}, /* Prevent simultaneously switching of output stage , */\
{ 0x42d0, "kickback"}, /* Prevent double pulses of output stage , */\
{ 0x4306, "drivebst"}, /* Drive bits to select the power transistor sections boost converter, */\
{ 0x4370, "boost_alg"}, /* Control for boost adaptive loop gain , */\
{ 0x4381, "boost_loopgain"}, /* DCDC boost loopgain setting , */\
{ 0x43a0, "ocptestbst"}, /* Boost OCP. For old ocp (ctrl_reversebst is 0); For new ocp (ctrl_reversebst is 1), */\
{ 0x43d0, "test_abistfft_enbl"}, /* FFT Coolflux , */\
{ 0x43e0, "bst_dcmbst"}, /* DCM mode control for DCDC during I2C direct control mode, */\
{ 0x43f0, "test_bcontrol"}, /* test_bcontrol , */\
{ 0x4400, "reversebst"}, /* OverCurrent Protection selection of power stage boost converter, */\
{ 0x4410, "sensetest"}, /* Test option for the sense NMOS in booster for current mode control., */\
{ 0x4420, "enbl_engagebst"}, /* Enable power stage of dcdc controller , */\
{ 0x4470, "enbl_slopecur"}, /* Enable bit of max-current dac , */\
{ 0x4480, "enbl_voutcomp"}, /* Enable vout comparators , */\
{ 0x4490, "enbl_voutcomp93"}, /* Enable vout-93 comparators , */\
{ 0x44a0, "enbl_voutcomp86"}, /* Enable vout-86 comparators , */\
{ 0x44b0, "enbl_hizcom"}, /* Enable hiz comparator , */\
{ 0x44c0, "enbl_peakcur"}, /* Enable peak current , */\
{ 0x44d0, "bypass_ovpglitch"}, /* Bypass OVP Glitch Filter , */\
{ 0x44e0, "enbl_windac"}, /* Enable window dac , */\
{ 0x44f0, "enbl_powerbst"}, /* Enable line of the powerstage , */\
{ 0x4507, "ocp_thr"}, /* OCP threshold level , */\
{ 0x4580, "bypass_glitchfilter"}, /* Bypass glitch filter , */\
{ 0x4590, "bypass_ovp"}, /* Bypass OVP , */\
{ 0x45a0, "bypass_uvp"}, /* Bypass UVP , */\
{ 0x45b0, "bypass_otp"}, /* Bypass OTP , */\
{ 0x45d0, "bypass_ocpcounter"}, /* Bypass OCP counter , */\
{ 0x45e0, "bypass_lost_clk"}, /* Bypass lost clock detector , */\
{ 0x45f0, "vpalarm"}, /* vpalarm (UVP/OUP handling) , */\
{ 0x4600, "bypass_gc"}, /* Bypasses the CS gain correction , */\
{ 0x4610, "cs_gain_control"}, /* Current sense gain control , */\
{ 0x4627, "cs_gain"}, /* Current sense gain , */\
{ 0x46a0, "bypass_lp"}, /* Bypass the low power filter inside temperature sensor, */\
{ 0x46b0, "bypass_pwmcounter"}, /* Bypass PWM Counter , */\
{ 0x46c0, "cs_negfixed"}, /* Current sense does not switch to neg , */\
{ 0x46d2, "cs_neghyst"}, /* Current sense switches to neg depending on hyseteris level, */\
{ 0x4700, "switch_fb"}, /* Current sense control switch_fb , */\
{ 0x4713, "se_hyst"}, /* Current sense control se_hyst , */\
{ 0x4754, "se_level"}, /* Current sense control se_level , */\
{ 0x47a5, "ktemp"}, /* Current sense control temperature compensation trimming, */\
{ 0x4800, "cs_negin"}, /* Current sense control negin , */\
{ 0x4810, "cs_sein"}, /* Current sense control cs_sein , */\
{ 0x4820, "cs_coincidence"}, /* Coincidence current sense , */\
{ 0x4830, "iddqtestbst"}, /* IDDQ testing in powerstage of DCDC boost converter, */\
{ 0x4840, "coincidencebst"}, /* Switch protection on to prevent simultaneously switching power stages bst and amp, */\
{ 0x4876, "delay_se_neg"}, /* delay of se and neg , */\
{ 0x48e1, "cs_ttrack"}, /* Sample and hold track time , */\
{ 0x4900, "bypass_clip"}, /* Bypass clip control , */\
{ 0x4920, "cf_cgate_off"}, /* Disable clock gating in the coolflux , */\
{ 0x4940, "clipfast"}, /* Clock selection for HW clipper for battery safeguard, */\
{ 0x4950, "cs_8ohm"}, /* 8 ohm mode for current sense (gain mode) , */\
{ 0x4974, "delay_clock_sh"}, /* delay_sh, tunes S7H delay , */\
{ 0x49c0, "inv_clksh"}, /* Invert the sample/hold clock for current sense ADC, */\
{ 0x49d0, "inv_neg"}, /* Invert neg signal , */\
{ 0x49e0, "inv_se"}, /* Invert se signal , */\
{ 0x49f0, "setse"}, /* Switches between Single Ended and differential mode; 1 is single ended, */\
{ 0x4a12, "adc10_sel"}, /* Select the input to convert the 10b ADC , */\
{ 0x4a60, "adc10_reset"}, /* Reset for ADC10 - I2C direct control mode , */\
{ 0x4a81, "adc10_test"}, /* Test mode selection signal for ADC10 - I2C direct control mode, */\
{ 0x4aa0, "bypass_lp_vbat"}, /* LP filter in batt sensor , */\
{ 0x4ae0, "dc_offset"}, /* Current sense decimator offset control , */\
{ 0x4af0, "tsense_hibias"}, /* Bit to set the biasing in temp sensor to high , */\
{ 0x4b00, "adc13_iset"}, /* MICADC setting of current consumption (debug use only), */\
{ 0x4b14, "adc13_gain"}, /* MICADC gain setting (two's complement format) , */\
{ 0x4b61, "adc13_slowdel"}, /* MICADC delay setting for internal clock (debug use only), */\
{ 0x4b83, "adc13_offset"}, /* MICADC offset setting , */\
{ 0x4bc0, "adc13_bsoinv"}, /* MICADC bit stream output invert mode for test , */\
{ 0x4bd0, "adc13_resonator_enable"}, /* MICADC give extra SNR with less stability (debug use only), */\
{ 0x4be0, "testmicadc"}, /* Mux at input of MICADC for test purpose , */\
{ 0x4c0f, "abist_offset"}, /* Offset control for ABIST testing , */\
{ 0x4d05, "windac"}, /* For testing direct control windac , */\
{ 0x4dc3, "pwm_dcc_cnt"}, /* control pwm duty cycle when enbl_pwm_dcc is 1 , */\
{ 0x4e04, "slopecur"}, /* For testing direct control slopecur , */\
{ 0x4e50, "ctrl_dem"}, /* Dynamic element matching control, rest of codes are optional, */\
{ 0x4ed0, "enbl_pwm_dcc"}, /* Enable direct control of pwm duty cycle , */\
{ 0x4f00, "bst_bypass_bstcur"}, /* Bypass control for boost current settings , */\
{ 0x4f10, "bst_bypass_bstfoldback"}, /* Bypass control for boost foldback , */\
{ 0x4f20, "bst_ctrl_azbst"}, /* Control of auto-zeroing of zero current comparator, */\
{ 0x5007, "gain"}, /* Gain setting of the gain multiplier , */\
{ 0x5081, "sourceb"}, /* PWM OUTB selection control , */\
{ 0x50a1, "sourcea"}, /* PWM OUTA selection control , */\
{ 0x50c1, "sourcebst"}, /* Sets the source of the pwmbst output to boost converter input for testing, */\
{ 0x50e0, "tdm_enable_loopback"}, /* TDM loopback test , */\
{ 0x5104, "pulselengthbst"}, /* Pulse length setting test input for boost converter, */\
{ 0x5150, "bypasslatchbst"}, /* Bypass latch in boost converter , */\
{ 0x5160, "invertbst"}, /* Invert pwmbst test signal , */\
{ 0x5174, "pulselength"}, /* Pulse length setting test input for amplifier , */\
{ 0x51c0, "bypasslatch"}, /* Bypass latch in PWM source selection module , */\
{ 0x51d0, "invertb"}, /* invert pwmb test signal , */\
{ 0x51e0, "inverta"}, /* invert pwma test signal , */\
{ 0x51f0, "bypass_ctrlloop"}, /* bypass_ctrlloop bypasses the control loop of the amplifier, */\
{ 0x5210, "test_rdsona"}, /* tbd for rdson testing , */\
{ 0x5220, "test_rdsonb"}, /* tbd for rdson testing , */\
{ 0x5230, "test_rdsonbst"}, /* tbd for rdson testing , */\
{ 0x5240, "test_cvia"}, /* tbd for rdson testing , */\
{ 0x5250, "test_cvib"}, /* tbd for rdson testing , */\
{ 0x5260, "test_cvibst"}, /* tbd for rdson testing , */\
{ 0x5306, "digimuxa_sel"}, /* DigimuxA input selection control (see Digimux list for details), */\
{ 0x5376, "digimuxb_sel"}, /* DigimuxB input selection control (see Digimux list for details), */\
{ 0x5400, "hs_mode"}, /* I2C high speed mode selection control , */\
{ 0x5412, "test_parametric_io"}, /* Control for parametric tests of IO cells , */\
{ 0x5440, "enbl_ringo"}, /* Enable ring oscillator control, for test purpose to check with ringo, */\
{ 0x5456, "digimuxc_sel"}, /* DigimuxC input selection control (see Digimux list for details), */\
{ 0x54c0, "dio_ehs"}, /* Slew control for DIO in output mode , */\
{ 0x54d0, "gainio_ehs"}, /* Slew control for GAINIO in output mode , */\
{ 0x550d, "enbl_amp"}, /* enbl_amp for testing to enable all analoge blocks in amplifier, */\
{ 0x5600, "use_direct_ctrls"}, /* Use direct controls to overrule several functions for testing - I2C direct control mode, */\
{ 0x5610, "rst_datapath"}, /* Reset datapath during direct control mode , */\
{ 0x5620, "rst_cgu"}, /* Reset CGU during durect control mode , */\
{ 0x5637, "enbl_ref"}, /* For testing to enable all analoge blocks in references, */\
{ 0x56b0, "enbl_engage"}, /* Enable output stage amplifier , */\
{ 0x56c0, "use_direct_clk_ctrl"}, /* use_direct_clk_ctrl, to overrule several functions direct for testing, */\
{ 0x56d0, "use_direct_pll_ctrl"}, /* use_direct_pll_ctrl, to overrule several functions direct for testing, */\
{ 0x5707, "anamux"}, /* Anamux control , */\
{ 0x57e0, "otptest"}, /* otptest, test mode otp amplifier , */\
{ 0x57f0, "reverse"}, /* 1b = Normal mode, slope is controlled , */\
{ 0x5813, "pll_selr"}, /* PLL pll_selr , */\
{ 0x5854, "pll_selp"}, /* PLL pll_selp , */\
{ 0x58a5, "pll_seli"}, /* PLL pll_seli , */\
{ 0x5950, "pll_mdec_msb"}, /* Most significant bits of pll_mdec[16] , */\
{ 0x5960, "pll_ndec_msb"}, /* Most significant bits of pll_ndec[9] , */\
{ 0x5970, "pll_frm"}, /* PLL pll_frm , */\
{ 0x5980, "pll_directi"}, /* PLL pll_directi , */\
{ 0x5990, "pll_directo"}, /* PLL pll_directo , */\
{ 0x59a0, "enbl_pll"}, /* PLL enbl_pll , */\
{ 0x59f0, "pll_bypass"}, /* PLL bypass , */\
{ 0x5a0f, "tsig_freq"}, /* Internal sinus test generator frequency control LSB bits, */\
{ 0x5b02, "tsig_freq_msb"}, /* Select internal sine wave generator, frequency control MSB bits, */\
{ 0x5b30, "inject_tsig"}, /* Control bit to switch to internal sinus test generator, */\
{ 0x5b44, "adc10_prog_sample"}, /* ADC10 program sample setting - I2C direct control mode, */\
{ 0x5c0f, "pll_mdec"}, /* PLL MDEC - I2C direct PLL control mode only , */\
{ 0x5d06, "pll_pdec"}, /* PLL PDEC - I2C direct PLL control mode only , */\
{ 0x5d78, "pll_ndec"}, /* PLL NDEC - I2C direct PLL control mode only , */\
{ 0x6007, "mtpkey1"}, /* 5Ah, 90d To access KEY1_Protected registers (Default for engineering), */\
{ 0x6185, "mtp_ecc_tcin"}, /* MTP ECC TCIN data , */\
{ 0x6203, "mtp_man_address_in"}, /* MTP address from I2C register for read/writing mtp in manual single word mode, */\
{ 0x6260, "mtp_ecc_eeb"}, /* Enable code bit generation (active low!) , */\
{ 0x6270, "mtp_ecc_ecb"}, /* Enable correction signal (active low!) , */\
{ 0x6280, "man_copy_mtp_to_iic"}, /* Start copying single word from mtp to I2C mtp register, */\
{ 0x6290, "man_copy_iic_to_mtp"}, /* Start copying single word from I2C mtp register to mtp, */\
{ 0x62a0, "auto_copy_mtp_to_iic"}, /* Start copying all the data from mtp to I2C mtp registers, */\
{ 0x62b0, "auto_copy_iic_to_mtp"}, /* Start copying data from I2C mtp registers to mtp , */\
{ 0x62d2, "mtp_speed_mode"}, /* MTP speed mode , */\
{ 0x6340, "mtp_direct_enable"}, /* mtp_direct_enable , */\
{ 0x6350, "mtp_direct_wr"}, /* mtp_direct_wr , */\
{ 0x6360, "mtp_direct_rd"}, /* mtp_direct_rd , */\
{ 0x6370, "mtp_direct_rst"}, /* mtp_direct_rst , */\
{ 0x6380, "mtp_direct_ers"}, /* mtp_direct_ers , */\
{ 0x6390, "mtp_direct_prg"}, /* mtp_direct_prg , */\
{ 0x63a0, "mtp_direct_epp"}, /* mtp_direct_epp , */\
{ 0x63b4, "mtp_direct_test"}, /* mtp_direct_test , */\
{ 0x640f, "mtp_man_data_in"}, /* Write data for MTP manual write , */\
{ 0x7000, "cf_rst_dsp"}, /* Reset CoolFlux DSP , */\
{ 0x7011, "cf_dmem"}, /* Target memory for access , */\
{ 0x7030, "cf_aif"}, /* Auto increment flag for memory-address , */\
{ 0x7040, "cf_int"}, /* CF Interrupt - auto clear , */\
{ 0x7087, "cf_req"}, /* CF request for accessing the 8 channels , */\
{ 0x710f, "cf_madd"}, /* Memory address , */\
{ 0x720f, "cf_mema"}, /* Activate memory access , */\
{ 0x7307, "cf_err"}, /* CF error flags , */\
{ 0x7387, "cf_ack"}, /* CF acknowledgement of the requests channels , */\
{ 0x8000, "calibration_onetime"}, /* Calibration schedule selection , */\
{ 0x8010, "calibr_ron_done"}, /* Calibration of RON status bit , */\
{ 0x8105, "calibr_vout_offset"}, /* calibr_vout_offset (DCDCoffset) 2's compliment (key1 protected), */\
{ 0x8163, "calibr_delta_gain"}, /* delta gain for vamp (alpha) 2's compliment (key1 protected), */\
{ 0x81a5, "calibr_offs_amp"}, /* offset for vamp (Ampoffset) 2's compliment (key1 protected), */\
{ 0x8207, "calibr_gain_cs"}, /* gain current sense (Imeasalpha) 2's compliment (key1 protected), */\
{ 0x8284, "calibr_temp_offset"}, /* temperature offset 2's compliment (key1 protected), */\
{ 0x82d2, "calibr_temp_gain"}, /* temperature gain 2's compliment (key1 protected) , */\
{ 0x830f, "calibr_ron"}, /* calibration value of the RON resistance of the coil, */\
{ 0x8505, "type_bits_hw"}, /* bit0 = disable function dcdcoff_mode ($09[7]) , */\
{ 0x8601, "type_bits_1_0_sw"}, /* MTP control SW , */\
{ 0x8681, "type_bits_9_8_sw"}, /* MTP control SW , */\
{ 0x870f, "type_bits2_sw"}, /* MTP-control SW2 , */\
{ 0x8806, "htol_iic_addr"}, /* 7-bit I2C address to be used during HTOL testing , */\
{ 0x8870, "htol_iic_addr_en"}, /* HTOL I2C_Address_Enable , */\
{ 0x8881, "ctrl_ovp_response"}, /* OVP response control , */\
{ 0x88a0, "disable_ovp_alarm_state"}, /* OVP alarm state control , */\
{ 0x88b0, "enbl_stretch_ovp"}, /* OVP alram strech control , */\
{ 0x88c0, "cf_debug_mode"}, /* Coolflux debug mode , */\
{ 0x8a0f, "production_data1"}, /* production_data1 , */\
{ 0x8b0f, "production_data2"}, /* production_data2 , */\
{ 0x8c0f, "production_data3"}, /* production_data3 , */\
{ 0x8d0f, "production_data4"}, /* production_data4 , */\
{ 0x8e0f, "production_data5"}, /* production_data5 , */\
{ 0x8f0f, "production_data6"}, /* production_data6 , */\
{ 0xffff, "Unknown bitfield enum" } /* not found */\
};
enum TFA9896_irq {
TFA9896_irq_vdds = 0,
TFA9896_irq_plls = 1,
TFA9896_irq_ds = 2,
TFA9896_irq_vds = 3,
TFA9896_irq_uvds = 4,
TFA9896_irq_cds = 5,
TFA9896_irq_clks = 6,
TFA9896_irq_clips = 7,
TFA9896_irq_mtpb = 8,
TFA9896_irq_clk = 9,
TFA9896_irq_spks = 10,
TFA9896_irq_acs = 11,
TFA9896_irq_sws = 12,
TFA9896_irq_wds = 13,
TFA9896_irq_amps = 14,
TFA9896_irq_arefs = 15,
TFA9896_irq_err = 32,
TFA9896_irq_ack = 33,
TFA9896_irq_max = 34,
TFA9896_irq_all = -1 /* all irqs */};
#define TFA9896_IRQ_NAMETABLE static tfaIrqName_t TFA9896IrqNames[] = {\
{ 0, "VDDS"},\
{ 1, "PLLS"},\
{ 2, "DS"},\
{ 3, "VDS"},\
{ 4, "UVDS"},\
{ 5, "CDS"},\
{ 6, "CLKS"},\
{ 7, "CLIPS"},\
{ 8, "MTPB"},\
{ 9, "CLK"},\
{ 10, "SPKS"},\
{ 11, "ACS"},\
{ 12, "SWS"},\
{ 13, "WDS"},\
{ 14, "AMPS"},\
{ 15, "AREFS"},\
{ 16, "16"},\
{ 17, "17"},\
{ 18, "18"},\
{ 19, "19"},\
{ 20, "20"},\
{ 21, "21"},\
{ 22, "22"},\
{ 23, "23"},\
{ 24, "24"},\
{ 25, "25"},\
{ 26, "26"},\
{ 27, "27"},\
{ 28, "28"},\
{ 29, "29"},\
{ 30, "30"},\
{ 31, "31"},\
{ 32, "ERR"},\
{ 33, "ACK"},\
{ 34, "34"},\
};
#endif /* _TFA9896_TFAFIELDNAMES_H */