0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #ifndef _HI6210_I2S_H
0012 #define _HI6210_I2S_H
0013
0014 #define HII2S_SW_RST_N 0
0015
0016 #define HII2S_SW_RST_N__STEREO_UPLINK_WORDLEN_SHIFT 28
0017 #define HII2S_SW_RST_N__STEREO_UPLINK_WORDLEN_MASK 3
0018 #define HII2S_SW_RST_N__THIRDMD_UPLINK_WORDLEN_SHIFT 26
0019 #define HII2S_SW_RST_N__THIRDMD_UPLINK_WORDLEN_MASK 3
0020 #define HII2S_SW_RST_N__VOICE_UPLINK_WORDLEN_SHIFT 24
0021 #define HII2S_SW_RST_N__VOICE_UPLINK_WORDLEN_MASK 3
0022 #define HII2S_SW_RST_N__ST_DL_WORDLEN_SHIFT 20
0023 #define HII2S_SW_RST_N__ST_DL_WORDLEN_MASK 3
0024 #define HII2S_SW_RST_N__THIRDMD_DLINK_WORDLEN_SHIFT 18
0025 #define HII2S_SW_RST_N__THIRDMD_DLINK_WORDLEN_MASK 3
0026 #define HII2S_SW_RST_N__VOICE_DLINK_WORDLEN_SHIFT 16
0027 #define HII2S_SW_RST_N__VOICE_DLINK_WORDLEN_MASK 3
0028
0029 #define HII2S_SW_RST_N__SW_RST_N BIT(0)
0030
0031 enum hi6210_bits {
0032 HII2S_BITS_16,
0033 HII2S_BITS_18,
0034 HII2S_BITS_20,
0035 HII2S_BITS_24,
0036 };
0037
0038
0039 #define HII2S_IF_CLK_EN_CFG 4
0040
0041 #define HII2S_IF_CLK_EN_CFG__THIRDMD_UPLINK_EN BIT(25)
0042 #define HII2S_IF_CLK_EN_CFG__THIRDMD_DLINK_EN BIT(24)
0043 #define HII2S_IF_CLK_EN_CFG__S3_IF_CLK_EN BIT(20)
0044 #define HII2S_IF_CLK_EN_CFG__S2_IF_CLK_EN BIT(16)
0045 #define HII2S_IF_CLK_EN_CFG__S2_OL_MIXER_EN BIT(15)
0046 #define HII2S_IF_CLK_EN_CFG__S2_OL_SRC_EN BIT(14)
0047 #define HII2S_IF_CLK_EN_CFG__S2_IR_PGA_EN BIT(13)
0048 #define HII2S_IF_CLK_EN_CFG__S2_IL_PGA_EN BIT(12)
0049 #define HII2S_IF_CLK_EN_CFG__S1_IR_PGA_EN BIT(10)
0050 #define HII2S_IF_CLK_EN_CFG__S1_IL_PGA_EN BIT(9)
0051 #define HII2S_IF_CLK_EN_CFG__S1_IF_CLK_EN BIT(8)
0052 #define HII2S_IF_CLK_EN_CFG__VOICE_DLINK_SRC_EN BIT(7)
0053 #define HII2S_IF_CLK_EN_CFG__VOICE_DLINK_EN BIT(6)
0054 #define HII2S_IF_CLK_EN_CFG__ST_DL_R_EN BIT(5)
0055 #define HII2S_IF_CLK_EN_CFG__ST_DL_L_EN BIT(4)
0056 #define HII2S_IF_CLK_EN_CFG__VOICE_UPLINK_R_EN BIT(3)
0057 #define HII2S_IF_CLK_EN_CFG__VOICE_UPLINK_L_EN BIT(2)
0058 #define HII2S_IF_CLK_EN_CFG__STEREO_UPLINK_R_EN BIT(1)
0059 #define HII2S_IF_CLK_EN_CFG__STEREO_UPLINK_L_EN BIT(0)
0060
0061 #define HII2S_DIG_FILTER_CLK_EN_CFG 8
0062 #define HII2S_DIG_FILTER_CLK_EN_CFG__DACR_SDM_EN BIT(30)
0063 #define HII2S_DIG_FILTER_CLK_EN_CFG__DACR_HBF2I_EN BIT(28)
0064 #define HII2S_DIG_FILTER_CLK_EN_CFG__DACR_MIXER_EN BIT(25)
0065 #define HII2S_DIG_FILTER_CLK_EN_CFG__DACR_AGC_EN BIT(24)
0066 #define HII2S_DIG_FILTER_CLK_EN_CFG__DACL_SDM_EN BIT(22)
0067 #define HII2S_DIG_FILTER_CLK_EN_CFG__DACL_HBF2I_EN BIT(20)
0068 #define HII2S_DIG_FILTER_CLK_EN_CFG__DACL_MIXER_EN BIT(17)
0069 #define HII2S_DIG_FILTER_CLK_EN_CFG__DACL_AGC_EN BIT(16)
0070
0071 #define HII2S_FS_CFG 0xc
0072
0073 #define HII2S_FS_CFG__FS_S2_SHIFT 28
0074 #define HII2S_FS_CFG__FS_S2_MASK 7
0075 #define HII2S_FS_CFG__FS_S1_SHIFT 24
0076 #define HII2S_FS_CFG__FS_S1_MASK 7
0077 #define HII2S_FS_CFG__FS_ADCLR_SHIFT 20
0078 #define HII2S_FS_CFG__FS_ADCLR_MASK 7
0079 #define HII2S_FS_CFG__FS_DACLR_SHIFT 16
0080 #define HII2S_FS_CFG__FS_DACLR_MASK 7
0081 #define HII2S_FS_CFG__FS_ST_DL_R_SHIFT 8
0082 #define HII2S_FS_CFG__FS_ST_DL_R_MASK 7
0083 #define HII2S_FS_CFG__FS_ST_DL_L_SHIFT 4
0084 #define HII2S_FS_CFG__FS_ST_DL_L_MASK 7
0085 #define HII2S_FS_CFG__FS_VOICE_DLINK_SHIFT 0
0086 #define HII2S_FS_CFG__FS_VOICE_DLINK_MASK 7
0087
0088 enum hi6210_i2s_rates {
0089 HII2S_FS_RATE_8KHZ = 0,
0090 HII2S_FS_RATE_16KHZ = 1,
0091 HII2S_FS_RATE_32KHZ = 2,
0092 HII2S_FS_RATE_48KHZ = 4,
0093 HII2S_FS_RATE_96KHZ = 5,
0094 HII2S_FS_RATE_192KHZ = 6,
0095 };
0096
0097 #define HII2S_I2S_CFG 0x10
0098
0099 #define HII2S_I2S_CFG__S2_IF_TX_EN BIT(31)
0100 #define HII2S_I2S_CFG__S2_IF_RX_EN BIT(30)
0101 #define HII2S_I2S_CFG__S2_FRAME_MODE BIT(29)
0102 #define HII2S_I2S_CFG__S2_MST_SLV BIT(28)
0103 #define HII2S_I2S_CFG__S2_LRCK_MODE BIT(27)
0104 #define HII2S_I2S_CFG__S2_CHNNL_MODE BIT(26)
0105 #define HII2S_I2S_CFG__S2_CODEC_IO_WORDLENGTH_SHIFT 24
0106 #define HII2S_I2S_CFG__S2_CODEC_IO_WORDLENGTH_MASK 3
0107 #define HII2S_I2S_CFG__S2_DIRECT_LOOP_SHIFT 22
0108 #define HII2S_I2S_CFG__S2_DIRECT_LOOP_MASK 3
0109 #define HII2S_I2S_CFG__S2_TX_CLK_SEL BIT(21)
0110 #define HII2S_I2S_CFG__S2_RX_CLK_SEL BIT(20)
0111 #define HII2S_I2S_CFG__S2_CODEC_DATA_FORMAT BIT(19)
0112 #define HII2S_I2S_CFG__S2_FUNC_MODE_SHIFT 16
0113 #define HII2S_I2S_CFG__S2_FUNC_MODE_MASK 7
0114 #define HII2S_I2S_CFG__S1_IF_TX_EN BIT(15)
0115 #define HII2S_I2S_CFG__S1_IF_RX_EN BIT(14)
0116 #define HII2S_I2S_CFG__S1_FRAME_MODE BIT(13)
0117 #define HII2S_I2S_CFG__S1_MST_SLV BIT(12)
0118 #define HII2S_I2S_CFG__S1_LRCK_MODE BIT(11)
0119 #define HII2S_I2S_CFG__S1_CHNNL_MODE BIT(10)
0120 #define HII2S_I2S_CFG__S1_CODEC_IO_WORDLENGTH_SHIFT 8
0121 #define HII2S_I2S_CFG__S1_CODEC_IO_WORDLENGTH_MASK 3
0122 #define HII2S_I2S_CFG__S1_DIRECT_LOOP_SHIFT 6
0123 #define HII2S_I2S_CFG__S1_DIRECT_LOOP_MASK 3
0124 #define HII2S_I2S_CFG__S1_TX_CLK_SEL BIT(5)
0125 #define HII2S_I2S_CFG__S1_RX_CLK_SEL BIT(4)
0126 #define HII2S_I2S_CFG__S1_CODEC_DATA_FORMAT BIT(3)
0127 #define HII2S_I2S_CFG__S1_FUNC_MODE_SHIFT 0
0128 #define HII2S_I2S_CFG__S1_FUNC_MODE_MASK 7
0129
0130 enum hi6210_i2s_formats {
0131 HII2S_FORMAT_I2S,
0132 HII2S_FORMAT_PCM_STD,
0133 HII2S_FORMAT_PCM_USER,
0134 HII2S_FORMAT_LEFT_JUST,
0135 HII2S_FORMAT_RIGHT_JUST,
0136 };
0137
0138 #define HII2S_DIG_FILTER_MODULE_CFG 0x14
0139
0140 #define HII2S_DIG_FILTER_MODULE_CFG__DACR_MIXER_GAIN_SHIFT 28
0141 #define HII2S_DIG_FILTER_MODULE_CFG__DACR_MIXER_GAIN_MASK 3
0142 #define HII2S_DIG_FILTER_MODULE_CFG__DACR_MIXER_IN4_MUTE BIT(27)
0143 #define HII2S_DIG_FILTER_MODULE_CFG__DACR_MIXER_IN3_MUTE BIT(26)
0144 #define HII2S_DIG_FILTER_MODULE_CFG__DACR_MIXER_IN2_MUTE BIT(25)
0145 #define HII2S_DIG_FILTER_MODULE_CFG__DACR_MIXER_IN1_MUTE BIT(24)
0146 #define HII2S_DIG_FILTER_MODULE_CFG__DACL_MIXER_GAIN_SHIFT 20
0147 #define HII2S_DIG_FILTER_MODULE_CFG__DACL_MIXER_GAIN_MASK 3
0148 #define HII2S_DIG_FILTER_MODULE_CFG__DACL_MIXER_IN4_MUTE BIT(19)
0149 #define HII2S_DIG_FILTER_MODULE_CFG__DACL_MIXER_IN3_MUTE BIT(18)
0150 #define HII2S_DIG_FILTER_MODULE_CFG__DACL_MIXER_IN2_MUTE BIT(17)
0151 #define HII2S_DIG_FILTER_MODULE_CFG__DACL_MIXER_IN1_MUTE BIT(16)
0152 #define HII2S_DIG_FILTER_MODULE_CFG__SW_DACR_SDM_DITHER BIT(9)
0153 #define HII2S_DIG_FILTER_MODULE_CFG__SW_DACL_SDM_DITHER BIT(8)
0154 #define HII2S_DIG_FILTER_MODULE_CFG__LM_CODEC_DAC2ADC_SHIFT 4
0155 #define HII2S_DIG_FILTER_MODULE_CFG__LM_CODEC_DAC2ADC_MASK 7
0156 #define HII2S_DIG_FILTER_MODULE_CFG__RM_CODEC_DAC2ADC_SHIFT 0
0157 #define HII2S_DIG_FILTER_MODULE_CFG__RM_CODEC_DAC2ADC_MASK 7
0158
0159 enum hi6210_gains {
0160 HII2S_GAIN_100PC,
0161 HII2S_GAIN_50PC,
0162 HII2S_GAIN_25PC,
0163 };
0164
0165 #define HII2S_MUX_TOP_MODULE_CFG 0x18
0166
0167 #define HII2S_MUX_TOP_MODULE_CFG__VOICE_DLINK_MIXER_GAIN_SHIFT 14
0168 #define HII2S_MUX_TOP_MODULE_CFG__VOICE_DLINK_MIXER_GAIN_MASK 3
0169 #define HII2S_MUX_TOP_MODULE_CFG__VOICE_DLINK_MIXER_IN2_MUTE BIT(13)
0170 #define HII2S_MUX_TOP_MODULE_CFG__VOICE_DLINK_MIXER_IN1_MUTE BIT(12)
0171 #define HII2S_MUX_TOP_MODULE_CFG__S2_OL_MIXER_GAIN_SHIFT 10
0172 #define HII2S_MUX_TOP_MODULE_CFG__S2_OL_MIXER_GAIN_MASK 3
0173 #define HII2S_MUX_TOP_MODULE_CFG__S2_OL_MIXER_IN2_MUTE BIT(9)
0174 #define HII2S_MUX_TOP_MODULE_CFG__S2_OL_MIXER_IN1_MUTE BIT(8)
0175 #define HII2S_MUX_TOP_MODULE_CFG__S2_OL_SRC_RDY BIT(6)
0176 #define HII2S_MUX_TOP_MODULE_CFG__S2_OL_SRC_MODE_SHIFT 4
0177 #define HII2S_MUX_TOP_MODULE_CFG__S2_OL_SRC_MODE_MASK 3
0178 #define HII2S_MUX_TOP_MODULE_CFG__VOICE_DLINK_SRC_RDY BIT(3)
0179 #define HII2S_MUX_TOP_MODULE_CFG__VOICE_DLINK_SRC_MODE_SHIFT 0
0180 #define HII2S_MUX_TOP_MODULE_CFG__VOICE_DLINK_SRC_MODE_MASK 7
0181
0182 enum hi6210_s2_src_mode {
0183 HII2S_S2_SRC_MODE_3,
0184 HII2S_S2_SRC_MODE_12,
0185 HII2S_S2_SRC_MODE_6,
0186 HII2S_S2_SRC_MODE_2,
0187 };
0188
0189 enum hi6210_voice_dlink_src_mode {
0190 HII2S_VOICE_DL_SRC_MODE_12 = 1,
0191 HII2S_VOICE_DL_SRC_MODE_6,
0192 HII2S_VOICE_DL_SRC_MODE_2,
0193 HII2S_VOICE_DL_SRC_MODE_3,
0194 };
0195
0196 #define HII2S_ADC_PGA_CFG 0x1c
0197 #define HII2S_S1_INPUT_PGA_CFG 0x20
0198 #define HII2S_S2_INPUT_PGA_CFG 0x24
0199 #define HII2S_ST_DL_PGA_CFG 0x28
0200 #define HII2S_VOICE_SIDETONE_DLINK_PGA_CFG 0x2c
0201 #define HII2S_APB_AFIFO_CFG_1 0x30
0202 #define HII2S_APB_AFIFO_CFG_2 0x34
0203 #define HII2S_ST_DL_FIFO_TH_CFG 0x38
0204
0205 #define HII2S_ST_DL_FIFO_TH_CFG__ST_DL_R_AEMPTY_SHIFT 24
0206 #define HII2S_ST_DL_FIFO_TH_CFG__ST_DL_R_AEMPTY_MASK 0x1f
0207 #define HII2S_ST_DL_FIFO_TH_CFG__ST_DL_R_AFULL_SHIFT 16
0208 #define HII2S_ST_DL_FIFO_TH_CFG__ST_DL_R_AFULL_MASK 0x1f
0209 #define HII2S_ST_DL_FIFO_TH_CFG__ST_DL_L_AEMPTY_SHIFT 8
0210 #define HII2S_ST_DL_FIFO_TH_CFG__ST_DL_L_AEMPTY_MASK 0x1f
0211 #define HII2S_ST_DL_FIFO_TH_CFG__ST_DL_L_AFULL_SHIFT 0
0212 #define HII2S_ST_DL_FIFO_TH_CFG__ST_DL_L_AFULL_MASK 0x1f
0213
0214 #define HII2S_STEREO_UPLINK_FIFO_TH_CFG 0x3c
0215 #define HII2S_VOICE_UPLINK_FIFO_TH_CFG 0x40
0216 #define HII2S_CODEC_IRQ_MASK 0x44
0217 #define HII2S_CODEC_IRQ 0x48
0218 #define HII2S_DACL_AGC_CFG_1 0x4c
0219 #define HII2S_DACL_AGC_CFG_2 0x50
0220 #define HII2S_DACR_AGC_CFG_1 0x54
0221 #define HII2S_DACR_AGC_CFG_2 0x58
0222 #define HII2S_DMIC_SIF_CFG 0x5c
0223 #define HII2S_MISC_CFG 0x60
0224
0225 #define HII2S_MISC_CFG__THIRDMD_DLINK_TEST_SEL BIT(17)
0226 #define HII2S_MISC_CFG__THIRDMD_DLINK_DIN_SEL BIT(16)
0227 #define HII2S_MISC_CFG__S3_DOUT_RIGHT_SEL BIT(14)
0228 #define HII2S_MISC_CFG__S3_DOUT_LEFT_SEL BIT(13)
0229 #define HII2S_MISC_CFG__S3_DIN_TEST_SEL BIT(12)
0230 #define HII2S_MISC_CFG__VOICE_DLINK_SRC_UP_DOUT_VLD_SEL BIT(8)
0231 #define HII2S_MISC_CFG__VOICE_DLINK_TEST_SEL BIT(7)
0232 #define HII2S_MISC_CFG__VOICE_DLINK_DIN_SEL BIT(6)
0233 #define HII2S_MISC_CFG__ST_DL_TEST_SEL BIT(4)
0234 #define HII2S_MISC_CFG__S2_DOUT_RIGHT_SEL BIT(3)
0235 #define HII2S_MISC_CFG__S2_DOUT_TEST_SEL BIT(2)
0236 #define HII2S_MISC_CFG__S1_DOUT_TEST_SEL BIT(1)
0237 #define HII2S_MISC_CFG__S2_DOUT_LEFT_SEL BIT(0)
0238
0239 #define HII2S_S2_SRC_CFG 0x64
0240 #define HII2S_MEM_CFG 0x68
0241 #define HII2S_THIRDMD_PCM_PGA_CFG 0x6c
0242 #define HII2S_THIRD_MODEM_FIFO_TH 0x70
0243 #define HII2S_S3_ANTI_FREQ_JITTER_TX_INC_CNT 0x74
0244 #define HII2S_S3_ANTI_FREQ_JITTER_TX_DEC_CNT 0x78
0245 #define HII2S_S3_ANTI_FREQ_JITTER_RX_INC_CNT 0x7c
0246 #define HII2S_S3_ANTI_FREQ_JITTER_RX_DEC_CNT 0x80
0247 #define HII2S_ANTI_FREQ_JITTER_EN 0x84
0248 #define HII2S_CLK_SEL 0x88
0249
0250
0251 #define HII2S_CLK_SEL__I2S_BT_FM_SEL BIT(0)
0252
0253 #define HII2S_CLK_SEL__EXT_12_288MHZ_SEL BIT(1)
0254
0255
0256 #define HII2S_THIRDMD_DLINK_CHANNEL 0xe8
0257 #define HII2S_THIRDMD_ULINK_CHANNEL 0xec
0258 #define HII2S_VOICE_DLINK_CHANNEL 0xf0
0259
0260
0261 #define HII2S_ST_DL_CHANNEL 0xf4
0262 #define HII2S_STEREO_UPLINK_CHANNEL 0xf8
0263 #define HII2S_VOICE_UPLINK_CHANNEL 0xfc
0264
0265 #endif