0001
0002
0003
0004
0005
0006
0007
0008 #ifndef _LM49453_H
0009 #define _LM49453_H
0010
0011 #include <linux/bitops.h>
0012
0013
0014 #define LM49453_P0_PMC_SETUP_REG 0x00
0015 #define LM49453_P0_PLL_CLK_SEL1_REG 0x01
0016 #define LM49453_P0_PLL_CLK_SEL2_REG 0x02
0017 #define LM49453_P0_PMC_CLK_DIV_REG 0x03
0018 #define LM49453_P0_HSDET_CLK_DIV_REG 0x04
0019 #define LM49453_P0_DMIC_CLK_DIV_REG 0x05
0020 #define LM49453_P0_ADC_CLK_DIV_REG 0x06
0021 #define LM49453_P0_DAC_OT_CLK_DIV_REG 0x07
0022 #define LM49453_P0_PLL_HF_M_REG 0x08
0023 #define LM49453_P0_PLL_LF_M_REG 0x09
0024 #define LM49453_P0_PLL_NL_REG 0x0A
0025 #define LM49453_P0_PLL_N_MODL_REG 0x0B
0026 #define LM49453_P0_PLL_N_MODH_REG 0x0C
0027 #define LM49453_P0_PLL_P1_REG 0x0D
0028 #define LM49453_P0_PLL_P2_REG 0x0E
0029 #define LM49453_P0_FLL_REF_FREQL_REG 0x0F
0030 #define LM49453_P0_FLL_REF_FREQH_REG 0x10
0031 #define LM49453_P0_VCO_TARGETLL_REG 0x11
0032 #define LM49453_P0_VCO_TARGETLH_REG 0x12
0033 #define LM49453_P0_VCO_TARGETHL_REG 0x13
0034 #define LM49453_P0_VCO_TARGETHH_REG 0x14
0035 #define LM49453_P0_PLL_CONFIG_REG 0x15
0036 #define LM49453_P0_DAC_CLK_SEL_REG 0x16
0037 #define LM49453_P0_DAC_HP_CLK_DIV_REG 0x17
0038
0039
0040 #define LM49453_P0_MICL_REG 0x20
0041 #define LM49453_P0_MICR_REG 0x21
0042 #define LM49453_P0_EP_REG 0x24
0043 #define LM49453_P0_DIS_PKVL_FB_REG 0x25
0044
0045
0046 #define LM49453_P0_ANALOG_MIXER_ADC_REG 0x2E
0047
0048
0049 #define LM49453_P0_ADC_DSP_REG 0x30
0050 #define LM49453_P0_DAC_DSP_REG 0x31
0051
0052
0053 #define LM49453_P0_ADC_FX_ENABLES_REG 0x33
0054
0055
0056 #define LM49453_P0_GPIO1_REG 0x38
0057 #define LM49453_P0_GPIO2_REG 0x39
0058 #define LM49453_P0_GPIO3_REG 0x3A
0059 #define LM49453_P0_HAP_CTL_REG 0x3B
0060 #define LM49453_P0_HAP_FREQ_PROG_LEFTL_REG 0x3C
0061 #define LM49453_P0_HAP_FREQ_PROG_LEFTH_REG 0x3D
0062 #define LM49453_P0_HAP_FREQ_PROG_RIGHTL_REG 0x3E
0063 #define LM49453_P0_HAP_FREQ_PROG_RIGHTH_REG 0x3F
0064
0065
0066 #define LM49453_P0_DMIX_CLK_SEL_REG 0x40
0067 #define LM49453_P0_PORT1_RX_LVL1_REG 0x41
0068 #define LM49453_P0_PORT1_RX_LVL2_REG 0x42
0069 #define LM49453_P0_PORT2_RX_LVL_REG 0x43
0070 #define LM49453_P0_PORT1_TX1_REG 0x44
0071 #define LM49453_P0_PORT1_TX2_REG 0x45
0072 #define LM49453_P0_PORT1_TX3_REG 0x46
0073 #define LM49453_P0_PORT1_TX4_REG 0x47
0074 #define LM49453_P0_PORT1_TX5_REG 0x48
0075 #define LM49453_P0_PORT1_TX6_REG 0x49
0076 #define LM49453_P0_PORT1_TX7_REG 0x4A
0077 #define LM49453_P0_PORT1_TX8_REG 0x4B
0078 #define LM49453_P0_PORT2_TX1_REG 0x4C
0079 #define LM49453_P0_PORT2_TX2_REG 0x4D
0080 #define LM49453_P0_STN_SEL_REG 0x4F
0081 #define LM49453_P0_DACHPL1_REG 0x50
0082 #define LM49453_P0_DACHPL2_REG 0x51
0083 #define LM49453_P0_DACHPR1_REG 0x52
0084 #define LM49453_P0_DACHPR2_REG 0x53
0085 #define LM49453_P0_DACLOL1_REG 0x54
0086 #define LM49453_P0_DACLOL2_REG 0x55
0087 #define LM49453_P0_DACLOR1_REG 0x56
0088 #define LM49453_P0_DACLOR2_REG 0x57
0089 #define LM49453_P0_DACLSL1_REG 0x58
0090 #define LM49453_P0_DACLSL2_REG 0x59
0091 #define LM49453_P0_DACLSR1_REG 0x5A
0092 #define LM49453_P0_DACLSR2_REG 0x5B
0093 #define LM49453_P0_DACHAL1_REG 0x5C
0094 #define LM49453_P0_DACHAL2_REG 0x5D
0095 #define LM49453_P0_DACHAR1_REG 0x5E
0096 #define LM49453_P0_DACHAR2_REG 0x5F
0097
0098
0099 #define LM49453_P0_AUDIO_PORT1_BASIC_REG 0x60
0100 #define LM49453_P0_AUDIO_PORT1_CLK_GEN1_REG 0x61
0101 #define LM49453_P0_AUDIO_PORT1_CLK_GEN2_REG 0x62
0102 #define LM49453_P0_AUDIO_PORT1_CLK_GEN3_REG 0x63
0103 #define LM49453_P0_AUDIO_PORT1_SYNC_RATE_REG 0x64
0104 #define LM49453_P0_AUDIO_PORT1_SYNC_SDO_SETUP_REG 0x65
0105 #define LM49453_P0_AUDIO_PORT1_DATA_WIDTH_REG 0x66
0106 #define LM49453_P0_AUDIO_PORT1_RX_MSB_REG 0x67
0107 #define LM49453_P0_AUDIO_PORT1_TX_MSB_REG 0x68
0108 #define LM49453_P0_AUDIO_PORT1_TDM_CHANNELS_REG 0x69
0109
0110
0111 #define LM49453_P0_AUDIO_PORT2_BASIC_REG 0x6A
0112 #define LM49453_P0_AUDIO_PORT2_CLK_GEN1_REG 0x6B
0113 #define LM49453_P0_AUDIO_PORT2_CLK_GEN2_REG 0x6C
0114 #define LM49453_P0_AUDIO_PORT2_SYNC_GEN_REG 0x6D
0115 #define LM49453_P0_AUDIO_PORT2_DATA_WIDTH_REG 0x6E
0116 #define LM49453_P0_AUDIO_PORT2_RX_MODE_REG 0x6F
0117 #define LM49453_P0_AUDIO_PORT2_TX_MODE_REG 0x70
0118
0119
0120 #define LM49453_P0_PORT1_SR_LSB_REG 0x79
0121 #define LM49453_P0_PORT1_SR_MSB_REG 0x7A
0122 #define LM49453_P0_PORT2_SR_LSB_REG 0x7B
0123 #define LM49453_P0_PORT2_SR_MSB_REG 0x7C
0124
0125
0126 #define LM49453_P0_HPF_REG 0x80
0127
0128
0129 #define LM49453_P0_ADC_ALC1_REG 0x82
0130 #define LM49453_P0_ADC_ALC2_REG 0x83
0131 #define LM49453_P0_ADC_ALC3_REG 0x84
0132 #define LM49453_P0_ADC_ALC4_REG 0x85
0133 #define LM49453_P0_ADC_ALC5_REG 0x86
0134 #define LM49453_P0_ADC_ALC6_REG 0x87
0135 #define LM49453_P0_ADC_ALC7_REG 0x88
0136 #define LM49453_P0_ADC_ALC8_REG 0x89
0137 #define LM49453_P0_DMIC1_LEVELL_REG 0x8A
0138 #define LM49453_P0_DMIC1_LEVELR_REG 0x8B
0139 #define LM49453_P0_DMIC2_LEVELL_REG 0x8C
0140 #define LM49453_P0_DMIC2_LEVELR_REG 0x8D
0141 #define LM49453_P0_ADC_LEVELL_REG 0x8E
0142 #define LM49453_P0_ADC_LEVELR_REG 0x8F
0143 #define LM49453_P0_DAC_HP_LEVELL_REG 0x90
0144 #define LM49453_P0_DAC_HP_LEVELR_REG 0x91
0145 #define LM49453_P0_DAC_LO_LEVELL_REG 0x92
0146 #define LM49453_P0_DAC_LO_LEVELR_REG 0x93
0147 #define LM49453_P0_DAC_LS_LEVELL_REG 0x94
0148 #define LM49453_P0_DAC_LS_LEVELR_REG 0x95
0149 #define LM49453_P0_DAC_HA_LEVELL_REG 0x96
0150 #define LM49453_P0_DAC_HA_LEVELR_REG 0x97
0151 #define LM49453_P0_SOFT_MUTE_REG 0x98
0152 #define LM49453_P0_DMIC_MUTE_CFG_REG 0x99
0153 #define LM49453_P0_ADC_MUTE_CFG_REG 0x9A
0154 #define LM49453_P0_DAC_MUTE_CFG_REG 0x9B
0155
0156
0157 #define LM49453_P0_DIGITAL_MIC1_CONFIG_REG 0xB0
0158 #define LM49453_P0_DIGITAL_MIC1_DATA_DELAYL_REG 0xB1
0159 #define LM49453_P0_DIGITAL_MIC1_DATA_DELAYR_REG 0xB2
0160
0161
0162 #define LM49453_P0_DIGITAL_MIC2_CONFIG_REG 0xB3
0163 #define LM49453_P0_DIGITAL_MIC2_DATA_DELAYL_REG 0xB4
0164 #define LM49453_P0_DIGITAL_MIC2_DATA_DELAYR_REG 0xB5
0165
0166
0167 #define LM49453_P0_ADC_DECIMATOR_REG 0xB6
0168
0169
0170 #define LM49453_P0_DAC_CONFIG_REG 0xB7
0171
0172
0173 #define LM49453_P0_STN_VOL_ADCL_REG 0xB8
0174 #define LM49453_P0_STN_VOL_ADCR_REG 0xB9
0175 #define LM49453_P0_STN_VOL_DMIC1L_REG 0xBA
0176 #define LM49453_P0_STN_VOL_DMIC1R_REG 0xBB
0177 #define LM49453_P0_STN_VOL_DMIC2L_REG 0xBC
0178 #define LM49453_P0_STN_VOL_DMIC2R_REG 0xBD
0179
0180
0181 #define LM49453_P0_ADC_DEC_CLIP_REG 0xC2
0182 #define LM49453_P0_ADC_HPF_CLIP_REG 0xC3
0183 #define LM49453_P0_ADC_LVL_CLIP_REG 0xC4
0184 #define LM49453_P0_DAC_LVL_CLIP_REG 0xC5
0185
0186
0187 #define LM49453_P0_ADC_LVLMONL_REG 0xC8
0188 #define LM49453_P0_ADC_LVLMONR_REG 0xC9
0189 #define LM49453_P0_ADC_ALCMONL_REG 0xCA
0190 #define LM49453_P0_ADC_ALCMONR_REG 0xCB
0191 #define LM49453_P0_ADC_MUTED_REG 0xCC
0192 #define LM49453_P0_DAC_MUTED_REG 0xCD
0193
0194
0195 #define LM49453_P0_HSD_PPB_LONG_CNT_LIMITL_REG 0xD0
0196 #define LM49453_P0_HSD_PPB_LONG_CNT_LIMITR_REG 0xD1
0197 #define LM49453_P0_HSD_PIN3_4_EX_LOOP_CNT_LIMITL_REG 0xD2
0198 #define LM49453_P0_HSD_PIN3_4_EX_LOOP_CNT_LIMITH_REG 0xD3
0199 #define LM49453_P0_HSD_TIMEOUT1_REG 0xD4
0200 #define LM49453_P0_HSD_TIMEOUT2_REG 0xD5
0201 #define LM49453_P0_HSD_TIMEOUT3_REG 0xD6
0202 #define LM49453_P0_HSD_PIN3_4_CFG_REG 0xD7
0203 #define LM49453_P0_HSD_IRQ1_REG 0xD8
0204 #define LM49453_P0_HSD_IRQ2_REG 0xD9
0205 #define LM49453_P0_HSD_IRQ3_REG 0xDA
0206 #define LM49453_P0_HSD_IRQ4_REG 0xDB
0207 #define LM49453_P0_HSD_IRQ_MASK1_REG 0xDC
0208 #define LM49453_P0_HSD_IRQ_MASK2_REG 0xDD
0209 #define LM49453_P0_HSD_IRQ_MASK3_REG 0xDE
0210 #define LM49453_P0_HSD_R_HPLL_REG 0xE0
0211 #define LM49453_P0_HSD_R_HPLH_REG 0xE1
0212 #define LM49453_P0_HSD_R_HPLU_REG 0xE2
0213 #define LM49453_P0_HSD_R_HPRL_REG 0xE3
0214 #define LM49453_P0_HSD_R_HPRH_REG 0xE4
0215 #define LM49453_P0_HSD_R_HPRU_REG 0xE5
0216 #define LM49453_P0_HSD_VEL_L_FINALL_REG 0xE6
0217 #define LM49453_P0_HSD_VEL_L_FINALH_REG 0xE7
0218 #define LM49453_P0_HSD_VEL_L_FINALU_REG 0xE8
0219 #define LM49453_P0_HSD_RO_FINALL_REG 0xE9
0220 #define LM49453_P0_HSD_RO_FINALH_REG 0xEA
0221 #define LM49453_P0_HSD_RO_FINALU_REG 0xEB
0222 #define LM49453_P0_HSD_VMIC_BIAS_FINALL_REG 0xEC
0223 #define LM49453_P0_HSD_VMIC_BIAS_FINALH_REG 0xED
0224 #define LM49453_P0_HSD_VMIC_BIAS_FINALU_REG 0xEE
0225 #define LM49453_P0_HSD_PIN_CONFIG_REG 0xEF
0226 #define LM49453_P0_HSD_PLUG_DETECT_BB_IRQ_STATUS1_REG 0xF1
0227 #define LM49453_P0_HSD_PLUG_DETECT_BB_IRQ_STATUS2_REG 0xF2
0228 #define LM49453_P0_HSD_PLUG_DETECT_BB_IRQ_STATUS3_REG 0xF3
0229 #define LM49453_P0_HSD_PLUG_DETECT_BB_IRQ_STATEL_REG 0xF4
0230 #define LM49453_P0_HSD_PLUG_DETECT_BB_IRQ_STATEH_REG 0xF5
0231
0232
0233 #define LM49453_P0_PULL_CONFIG1_REG 0xF8
0234 #define LM49453_P0_PULL_CONFIG2_REG 0xF9
0235 #define LM49453_P0_PULL_CONFIG3_REG 0xFA
0236
0237
0238 #define LM49453_P0_RESET_REG 0xFE
0239
0240
0241 #define LM49453_PAGE_REG 0xFF
0242
0243 #define LM49453_MAX_REGISTER (0xFF+1)
0244
0245
0246 #define LM49453_PMC_SETUP_CHIP_EN (BIT(1)|BIT(0))
0247 #define LM49453_PMC_SETUP_PLL_EN BIT(2)
0248 #define LM49453_PMC_SETUP_PLL_P2_EN BIT(3)
0249 #define LM49453_PMC_SETUP_PLL_FLL BIT(4)
0250 #define LM49453_PMC_SETUP_MCLK_OVER BIT(5)
0251 #define LM49453_PMC_SETUP_RTC_CLK_OVER BIT(6)
0252 #define LM49453_PMC_SETUP_CHIP_ACTIVE BIT(7)
0253
0254
0255 #define LM49453_CHIP_EN_SHUTDOWN 0x00
0256 #define LM49453_CHIP_EN 0x01
0257 #define LM49453_CHIP_EN_HSD_DETECT 0x02
0258 #define LM49453_CHIP_EN_INVALID_HSD 0x03
0259
0260
0261 #define LM49453_CLK_SEL1_MCLK_SEL 0x11
0262 #define LM49453_CLK_SEL1_RTC_SEL 0x11
0263 #define LM49453_CLK_SEL1_PORT1_SEL 0x10
0264 #define LM49453_CLK_SEL1_PORT2_SEL 0x11
0265
0266
0267 #define LM49453_CLK_SEL2_ADC_CLK_SEL 0x38
0268
0269
0270 #define LM49453_FLL_REF_FREQ_VAL 0x8ca0001
0271
0272
0273 #define LM49453_VCO_TARGET_VAL 0x8ca0001
0274
0275
0276 #define LM49453_ADC_DSP_ADC_MUTEL BIT(0)
0277 #define LM49453_ADC_DSP_ADC_MUTER BIT(1)
0278 #define LM49453_ADC_DSP_DMIC1_MUTEL BIT(2)
0279 #define LM49453_ADC_DSP_DMIC1_MUTER BIT(3)
0280 #define LM49453_ADC_DSP_DMIC2_MUTEL BIT(4)
0281 #define LM49453_ADC_DSP_DMIC2_MUTER BIT(5)
0282 #define LM49453_ADC_DSP_MUTE_ALL 0x3F
0283
0284
0285 #define LM49453_DAC_DSP_MUTE_ALL 0xFF
0286
0287
0288 #define LM49453_AUDIO_PORT1_BASIC_FMT_MASK (BIT(4)|BIT(3))
0289 #define LM49453_AUDIO_PORT1_BASIC_CLK_MS BIT(3)
0290 #define LM49453_AUDIO_PORT1_BASIC_SYNC_MS BIT(4)
0291
0292
0293 #define LM49453_RESET_REG_RST BIT(0)
0294
0295
0296 #define LM49453_PAGE0_SELECT 0x0
0297 #define LM49453_PAGE1_SELECT 0x1
0298
0299
0300 #define LM49453_JACK_DISABLE 0x00
0301 #define LM49453_JACK_CONFIG1 0x01
0302 #define LM49453_JACK_CONFIG2 0x02
0303 #define LM49453_JACK_CONFIG3 0x03
0304 #define LM49453_JACK_CONFIG4 0x04
0305 #define LM49453_JACK_CONFIG5 0x05
0306
0307
0308
0309
0310 #define LM49453_P1_SIDETONE_SA0L_REG 0x80
0311 #define LM49453_P1_SIDETONE_SA0H_REG 0x81
0312 #define LM49453_P1_SIDETONE_SAB0U_REG 0x82
0313 #define LM49453_P1_SIDETONE_SB0L_REG 0x83
0314 #define LM49453_P1_SIDETONE_SB0H_REG 0x84
0315 #define LM49453_P1_SIDETONE_SH0L_REG 0x85
0316 #define LM49453_P1_SIDETONE_SH0H_REG 0x86
0317 #define LM49453_P1_SIDETONE_SH0U_REG 0x87
0318 #define LM49453_P1_SIDETONE_SA1L_REG 0x88
0319 #define LM49453_P1_SIDETONE_SA1H_REG 0x89
0320 #define LM49453_P1_SIDETONE_SAB1U_REG 0x8A
0321 #define LM49453_P1_SIDETONE_SB1L_REG 0x8B
0322 #define LM49453_P1_SIDETONE_SB1H_REG 0x8C
0323 #define LM49453_P1_SIDETONE_SH1L_REG 0x8D
0324 #define LM49453_P1_SIDETONE_SH1H_REG 0x8E
0325 #define LM49453_P1_SIDETONE_SH1U_REG 0x8F
0326 #define LM49453_P1_SIDETONE_SA2L_REG 0x90
0327 #define LM49453_P1_SIDETONE_SA2H_REG 0x91
0328 #define LM49453_P1_SIDETONE_SAB2U_REG 0x92
0329 #define LM49453_P1_SIDETONE_SB2L_REG 0x93
0330 #define LM49453_P1_SIDETONE_SB2H_REG 0x94
0331 #define LM49453_P1_SIDETONE_SH2L_REG 0x95
0332 #define LM49453_P1_SIDETONE_SH2H_REG 0x96
0333 #define LM49453_P1_SIDETONE_SH2U_REG 0x97
0334 #define LM49453_P1_SIDETONE_SA3L_REG 0x98
0335 #define LM49453_P1_SIDETONE_SA3H_REG 0x99
0336 #define LM49453_P1_SIDETONE_SAB3U_REG 0x9A
0337 #define LM49453_P1_SIDETONE_SB3L_REG 0x9B
0338 #define LM49453_P1_SIDETONE_SB3H_REG 0x9C
0339 #define LM49453_P1_SIDETONE_SH3L_REG 0x9D
0340 #define LM49453_P1_SIDETONE_SH3H_REG 0x9E
0341 #define LM49453_P1_SIDETONE_SH3U_REG 0x9F
0342 #define LM49453_P1_SIDETONE_SA4L_REG 0xA0
0343 #define LM49453_P1_SIDETONE_SA4H_REG 0xA1
0344 #define LM49453_P1_SIDETONE_SAB4U_REG 0xA2
0345 #define LM49453_P1_SIDETONE_SB4L_REG 0xA3
0346 #define LM49453_P1_SIDETONE_SB4H_REG 0xA4
0347 #define LM49453_P1_SIDETONE_SH4L_REG 0xA5
0348 #define LM49453_P1_SIDETONE_SH4H_REG 0xA6
0349 #define LM49453_P1_SIDETONE_SH4U_REG 0xA7
0350 #define LM49453_P1_SIDETONE_SA5L_REG 0xA8
0351 #define LM49453_P1_SIDETONE_SA5H_REG 0xA9
0352 #define LM49453_P1_SIDETONE_SAB5U_REG 0xAA
0353 #define LM49453_P1_SIDETONE_SB5L_REG 0xAB
0354 #define LM49453_P1_SIDETONE_SB5H_REG 0xAC
0355 #define LM49453_P1_SIDETONE_SH5L_REG 0xAD
0356 #define LM49453_P1_SIDETONE_SH5H_REG 0xAE
0357 #define LM49453_P1_SIDETONE_SH5U_REG 0xAF
0358
0359
0360 #define LM49453_P1_CP_CONFIG1_REG 0xB0
0361 #define LM49453_P1_CP_CONFIG2_REG 0xB1
0362 #define LM49453_P1_CP_CONFIG3_REG 0xB2
0363 #define LM49453_P1_CP_CONFIG4_REG 0xB3
0364 #define LM49453_P1_CP_LA_VTH1L_REG 0xB4
0365 #define LM49453_P1_CP_LA_VTH1M_REG 0xB5
0366 #define LM49453_P1_CP_LA_VTH2L_REG 0xB6
0367 #define LM49453_P1_CP_LA_VTH2M_REG 0xB7
0368 #define LM49453_P1_CP_LA_VTH3L_REG 0xB8
0369 #define LM49453_P1_CP_LA_VTH3H_REG 0xB9
0370 #define LM49453_P1_CP_CLK_DIV_REG 0xBA
0371
0372
0373 #define LM49453_P1_DAC_CHOP_REG 0xC0
0374
0375 #define LM49453_CLK_SRC_MCLK 1
0376 #endif