18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * linux/sound/soc/hisilicon/hi6210-i2s.h
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * Copyright (C) 2015 Linaro, Ltd
68c2ecf20Sopenharmony_ci * Author: Andy Green <andy.green@linaro.org>
78c2ecf20Sopenharmony_ci *
88c2ecf20Sopenharmony_ci * Note at least on 6220, S2 == BT, S1 == Digital FM Radio IF
98c2ecf20Sopenharmony_ci */
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ci#ifndef _HI6210_I2S_H
128c2ecf20Sopenharmony_ci#define _HI6210_I2S_H
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ci#define HII2S_SW_RST_N				0
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci#define HII2S_SW_RST_N__STEREO_UPLINK_WORDLEN_SHIFT			28
178c2ecf20Sopenharmony_ci#define HII2S_SW_RST_N__STEREO_UPLINK_WORDLEN_MASK			3
188c2ecf20Sopenharmony_ci#define HII2S_SW_RST_N__THIRDMD_UPLINK_WORDLEN_SHIFT			26
198c2ecf20Sopenharmony_ci#define HII2S_SW_RST_N__THIRDMD_UPLINK_WORDLEN_MASK			3
208c2ecf20Sopenharmony_ci#define HII2S_SW_RST_N__VOICE_UPLINK_WORDLEN_SHIFT			24
218c2ecf20Sopenharmony_ci#define HII2S_SW_RST_N__VOICE_UPLINK_WORDLEN_MASK			3
228c2ecf20Sopenharmony_ci#define HII2S_SW_RST_N__ST_DL_WORDLEN_SHIFT				20
238c2ecf20Sopenharmony_ci#define HII2S_SW_RST_N__ST_DL_WORDLEN_MASK				3
248c2ecf20Sopenharmony_ci#define HII2S_SW_RST_N__THIRDMD_DLINK_WORDLEN_SHIFT			18
258c2ecf20Sopenharmony_ci#define HII2S_SW_RST_N__THIRDMD_DLINK_WORDLEN_MASK			3
268c2ecf20Sopenharmony_ci#define HII2S_SW_RST_N__VOICE_DLINK_WORDLEN_SHIFT			16
278c2ecf20Sopenharmony_ci#define HII2S_SW_RST_N__VOICE_DLINK_WORDLEN_MASK			3
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ci#define HII2S_SW_RST_N__SW_RST_N					BIT(0)
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_cienum hi6210_bits {
328c2ecf20Sopenharmony_ci	HII2S_BITS_16,
338c2ecf20Sopenharmony_ci	HII2S_BITS_18,
348c2ecf20Sopenharmony_ci	HII2S_BITS_20,
358c2ecf20Sopenharmony_ci	HII2S_BITS_24,
368c2ecf20Sopenharmony_ci};
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci#define HII2S_IF_CLK_EN_CFG			4
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci#define HII2S_IF_CLK_EN_CFG__THIRDMD_UPLINK_EN				BIT(25)
428c2ecf20Sopenharmony_ci#define HII2S_IF_CLK_EN_CFG__THIRDMD_DLINK_EN				BIT(24)
438c2ecf20Sopenharmony_ci#define HII2S_IF_CLK_EN_CFG__S3_IF_CLK_EN				BIT(20)
448c2ecf20Sopenharmony_ci#define HII2S_IF_CLK_EN_CFG__S2_IF_CLK_EN				BIT(16)
458c2ecf20Sopenharmony_ci#define HII2S_IF_CLK_EN_CFG__S2_OL_MIXER_EN				BIT(15)
468c2ecf20Sopenharmony_ci#define HII2S_IF_CLK_EN_CFG__S2_OL_SRC_EN				BIT(14)
478c2ecf20Sopenharmony_ci#define HII2S_IF_CLK_EN_CFG__S2_IR_PGA_EN				BIT(13)
488c2ecf20Sopenharmony_ci#define HII2S_IF_CLK_EN_CFG__S2_IL_PGA_EN				BIT(12)
498c2ecf20Sopenharmony_ci#define HII2S_IF_CLK_EN_CFG__S1_IR_PGA_EN				BIT(10)
508c2ecf20Sopenharmony_ci#define HII2S_IF_CLK_EN_CFG__S1_IL_PGA_EN				BIT(9)
518c2ecf20Sopenharmony_ci#define HII2S_IF_CLK_EN_CFG__S1_IF_CLK_EN				BIT(8)
528c2ecf20Sopenharmony_ci#define HII2S_IF_CLK_EN_CFG__VOICE_DLINK_SRC_EN				BIT(7)
538c2ecf20Sopenharmony_ci#define HII2S_IF_CLK_EN_CFG__VOICE_DLINK_EN				BIT(6)
548c2ecf20Sopenharmony_ci#define HII2S_IF_CLK_EN_CFG__ST_DL_R_EN					BIT(5)
558c2ecf20Sopenharmony_ci#define HII2S_IF_CLK_EN_CFG__ST_DL_L_EN					BIT(4)
568c2ecf20Sopenharmony_ci#define HII2S_IF_CLK_EN_CFG__VOICE_UPLINK_R_EN				BIT(3)
578c2ecf20Sopenharmony_ci#define HII2S_IF_CLK_EN_CFG__VOICE_UPLINK_L_EN				BIT(2)
588c2ecf20Sopenharmony_ci#define HII2S_IF_CLK_EN_CFG__STEREO_UPLINK_R_EN				BIT(1)
598c2ecf20Sopenharmony_ci#define HII2S_IF_CLK_EN_CFG__STEREO_UPLINK_L_EN				BIT(0)
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ci#define HII2S_DIG_FILTER_CLK_EN_CFG		8
628c2ecf20Sopenharmony_ci#define HII2S_DIG_FILTER_CLK_EN_CFG__DACR_SDM_EN			BIT(30)
638c2ecf20Sopenharmony_ci#define HII2S_DIG_FILTER_CLK_EN_CFG__DACR_HBF2I_EN			BIT(28)
648c2ecf20Sopenharmony_ci#define HII2S_DIG_FILTER_CLK_EN_CFG__DACR_MIXER_EN			BIT(25)
658c2ecf20Sopenharmony_ci#define HII2S_DIG_FILTER_CLK_EN_CFG__DACR_AGC_EN			BIT(24)
668c2ecf20Sopenharmony_ci#define HII2S_DIG_FILTER_CLK_EN_CFG__DACL_SDM_EN			BIT(22)
678c2ecf20Sopenharmony_ci#define HII2S_DIG_FILTER_CLK_EN_CFG__DACL_HBF2I_EN			BIT(20)
688c2ecf20Sopenharmony_ci#define HII2S_DIG_FILTER_CLK_EN_CFG__DACL_MIXER_EN			BIT(17)
698c2ecf20Sopenharmony_ci#define HII2S_DIG_FILTER_CLK_EN_CFG__DACL_AGC_EN			BIT(16)
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ci#define HII2S_FS_CFG				0xc
728c2ecf20Sopenharmony_ci
738c2ecf20Sopenharmony_ci#define HII2S_FS_CFG__FS_S2_SHIFT					28
748c2ecf20Sopenharmony_ci#define HII2S_FS_CFG__FS_S2_MASK					7
758c2ecf20Sopenharmony_ci#define HII2S_FS_CFG__FS_S1_SHIFT					24
768c2ecf20Sopenharmony_ci#define HII2S_FS_CFG__FS_S1_MASK					7
778c2ecf20Sopenharmony_ci#define HII2S_FS_CFG__FS_ADCLR_SHIFT					20
788c2ecf20Sopenharmony_ci#define HII2S_FS_CFG__FS_ADCLR_MASK					7
798c2ecf20Sopenharmony_ci#define HII2S_FS_CFG__FS_DACLR_SHIFT					16
808c2ecf20Sopenharmony_ci#define HII2S_FS_CFG__FS_DACLR_MASK					7
818c2ecf20Sopenharmony_ci#define HII2S_FS_CFG__FS_ST_DL_R_SHIFT					8
828c2ecf20Sopenharmony_ci#define HII2S_FS_CFG__FS_ST_DL_R_MASK					7
838c2ecf20Sopenharmony_ci#define HII2S_FS_CFG__FS_ST_DL_L_SHIFT					4
848c2ecf20Sopenharmony_ci#define HII2S_FS_CFG__FS_ST_DL_L_MASK					7
858c2ecf20Sopenharmony_ci#define HII2S_FS_CFG__FS_VOICE_DLINK_SHIFT				0
868c2ecf20Sopenharmony_ci#define HII2S_FS_CFG__FS_VOICE_DLINK_MASK				7
878c2ecf20Sopenharmony_ci
888c2ecf20Sopenharmony_cienum hi6210_i2s_rates {
898c2ecf20Sopenharmony_ci	HII2S_FS_RATE_8KHZ = 0,
908c2ecf20Sopenharmony_ci	HII2S_FS_RATE_16KHZ = 1,
918c2ecf20Sopenharmony_ci	HII2S_FS_RATE_32KHZ = 2,
928c2ecf20Sopenharmony_ci	HII2S_FS_RATE_48KHZ = 4,
938c2ecf20Sopenharmony_ci	HII2S_FS_RATE_96KHZ = 5,
948c2ecf20Sopenharmony_ci	HII2S_FS_RATE_192KHZ = 6,
958c2ecf20Sopenharmony_ci};
968c2ecf20Sopenharmony_ci
978c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG				0x10
988c2ecf20Sopenharmony_ci
998c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG__S2_IF_TX_EN					BIT(31)
1008c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG__S2_IF_RX_EN					BIT(30)
1018c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG__S2_FRAME_MODE					BIT(29)
1028c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG__S2_MST_SLV					BIT(28)
1038c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG__S2_LRCK_MODE					BIT(27)
1048c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG__S2_CHNNL_MODE					BIT(26)
1058c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG__S2_CODEC_IO_WORDLENGTH_SHIFT			24
1068c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG__S2_CODEC_IO_WORDLENGTH_MASK			3
1078c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG__S2_DIRECT_LOOP_SHIFT				22
1088c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG__S2_DIRECT_LOOP_MASK				3
1098c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG__S2_TX_CLK_SEL					BIT(21)
1108c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG__S2_RX_CLK_SEL					BIT(20)
1118c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG__S2_CODEC_DATA_FORMAT				BIT(19)
1128c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG__S2_FUNC_MODE_SHIFT				16
1138c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG__S2_FUNC_MODE_MASK				7
1148c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG__S1_IF_TX_EN					BIT(15)
1158c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG__S1_IF_RX_EN					BIT(14)
1168c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG__S1_FRAME_MODE					BIT(13)
1178c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG__S1_MST_SLV					BIT(12)
1188c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG__S1_LRCK_MODE					BIT(11)
1198c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG__S1_CHNNL_MODE					BIT(10)
1208c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG__S1_CODEC_IO_WORDLENGTH_SHIFT			8
1218c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG__S1_CODEC_IO_WORDLENGTH_MASK			3
1228c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG__S1_DIRECT_LOOP_SHIFT				6
1238c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG__S1_DIRECT_LOOP_MASK				3
1248c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG__S1_TX_CLK_SEL					BIT(5)
1258c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG__S1_RX_CLK_SEL					BIT(4)
1268c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG__S1_CODEC_DATA_FORMAT				BIT(3)
1278c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG__S1_FUNC_MODE_SHIFT				0
1288c2ecf20Sopenharmony_ci#define HII2S_I2S_CFG__S1_FUNC_MODE_MASK				7
1298c2ecf20Sopenharmony_ci
1308c2ecf20Sopenharmony_cienum hi6210_i2s_formats {
1318c2ecf20Sopenharmony_ci	HII2S_FORMAT_I2S,
1328c2ecf20Sopenharmony_ci	HII2S_FORMAT_PCM_STD,
1338c2ecf20Sopenharmony_ci	HII2S_FORMAT_PCM_USER,
1348c2ecf20Sopenharmony_ci	HII2S_FORMAT_LEFT_JUST,
1358c2ecf20Sopenharmony_ci	HII2S_FORMAT_RIGHT_JUST,
1368c2ecf20Sopenharmony_ci};
1378c2ecf20Sopenharmony_ci
1388c2ecf20Sopenharmony_ci#define HII2S_DIG_FILTER_MODULE_CFG		0x14
1398c2ecf20Sopenharmony_ci
1408c2ecf20Sopenharmony_ci#define HII2S_DIG_FILTER_MODULE_CFG__DACR_MIXER_GAIN_SHIFT		28
1418c2ecf20Sopenharmony_ci#define HII2S_DIG_FILTER_MODULE_CFG__DACR_MIXER_GAIN_MASK		3
1428c2ecf20Sopenharmony_ci#define HII2S_DIG_FILTER_MODULE_CFG__DACR_MIXER_IN4_MUTE		BIT(27)
1438c2ecf20Sopenharmony_ci#define HII2S_DIG_FILTER_MODULE_CFG__DACR_MIXER_IN3_MUTE		BIT(26)
1448c2ecf20Sopenharmony_ci#define HII2S_DIG_FILTER_MODULE_CFG__DACR_MIXER_IN2_MUTE		BIT(25)
1458c2ecf20Sopenharmony_ci#define HII2S_DIG_FILTER_MODULE_CFG__DACR_MIXER_IN1_MUTE		BIT(24)
1468c2ecf20Sopenharmony_ci#define HII2S_DIG_FILTER_MODULE_CFG__DACL_MIXER_GAIN_SHIFT		20
1478c2ecf20Sopenharmony_ci#define HII2S_DIG_FILTER_MODULE_CFG__DACL_MIXER_GAIN_MASK		3
1488c2ecf20Sopenharmony_ci#define HII2S_DIG_FILTER_MODULE_CFG__DACL_MIXER_IN4_MUTE		BIT(19)
1498c2ecf20Sopenharmony_ci#define HII2S_DIG_FILTER_MODULE_CFG__DACL_MIXER_IN3_MUTE		BIT(18)
1508c2ecf20Sopenharmony_ci#define HII2S_DIG_FILTER_MODULE_CFG__DACL_MIXER_IN2_MUTE		BIT(17)
1518c2ecf20Sopenharmony_ci#define HII2S_DIG_FILTER_MODULE_CFG__DACL_MIXER_IN1_MUTE		BIT(16)
1528c2ecf20Sopenharmony_ci#define HII2S_DIG_FILTER_MODULE_CFG__SW_DACR_SDM_DITHER			BIT(9)
1538c2ecf20Sopenharmony_ci#define HII2S_DIG_FILTER_MODULE_CFG__SW_DACL_SDM_DITHER			BIT(8)
1548c2ecf20Sopenharmony_ci#define HII2S_DIG_FILTER_MODULE_CFG__LM_CODEC_DAC2ADC_SHIFT		4
1558c2ecf20Sopenharmony_ci#define HII2S_DIG_FILTER_MODULE_CFG__LM_CODEC_DAC2ADC_MASK		7
1568c2ecf20Sopenharmony_ci#define HII2S_DIG_FILTER_MODULE_CFG__RM_CODEC_DAC2ADC_SHIFT		0
1578c2ecf20Sopenharmony_ci#define HII2S_DIG_FILTER_MODULE_CFG__RM_CODEC_DAC2ADC_MASK		7
1588c2ecf20Sopenharmony_ci
1598c2ecf20Sopenharmony_cienum hi6210_gains {
1608c2ecf20Sopenharmony_ci	HII2S_GAIN_100PC,
1618c2ecf20Sopenharmony_ci	HII2S_GAIN_50PC,
1628c2ecf20Sopenharmony_ci	HII2S_GAIN_25PC,
1638c2ecf20Sopenharmony_ci};
1648c2ecf20Sopenharmony_ci
1658c2ecf20Sopenharmony_ci#define HII2S_MUX_TOP_MODULE_CFG		0x18
1668c2ecf20Sopenharmony_ci
1678c2ecf20Sopenharmony_ci#define HII2S_MUX_TOP_MODULE_CFG__VOICE_DLINK_MIXER_GAIN_SHIFT		14
1688c2ecf20Sopenharmony_ci#define HII2S_MUX_TOP_MODULE_CFG__VOICE_DLINK_MIXER_GAIN_MASK		3
1698c2ecf20Sopenharmony_ci#define HII2S_MUX_TOP_MODULE_CFG__VOICE_DLINK_MIXER_IN2_MUTE		BIT(13)
1708c2ecf20Sopenharmony_ci#define HII2S_MUX_TOP_MODULE_CFG__VOICE_DLINK_MIXER_IN1_MUTE		BIT(12)
1718c2ecf20Sopenharmony_ci#define HII2S_MUX_TOP_MODULE_CFG__S2_OL_MIXER_GAIN_SHIFT		10
1728c2ecf20Sopenharmony_ci#define HII2S_MUX_TOP_MODULE_CFG__S2_OL_MIXER_GAIN_MASK			3
1738c2ecf20Sopenharmony_ci#define HII2S_MUX_TOP_MODULE_CFG__S2_OL_MIXER_IN2_MUTE			BIT(9)
1748c2ecf20Sopenharmony_ci#define HII2S_MUX_TOP_MODULE_CFG__S2_OL_MIXER_IN1_MUTE			BIT(8)
1758c2ecf20Sopenharmony_ci#define HII2S_MUX_TOP_MODULE_CFG__S2_OL_SRC_RDY				BIT(6)
1768c2ecf20Sopenharmony_ci#define HII2S_MUX_TOP_MODULE_CFG__S2_OL_SRC_MODE_SHIFT			4
1778c2ecf20Sopenharmony_ci#define HII2S_MUX_TOP_MODULE_CFG__S2_OL_SRC_MODE_MASK			3
1788c2ecf20Sopenharmony_ci#define HII2S_MUX_TOP_MODULE_CFG__VOICE_DLINK_SRC_RDY			BIT(3)
1798c2ecf20Sopenharmony_ci#define HII2S_MUX_TOP_MODULE_CFG__VOICE_DLINK_SRC_MODE_SHIFT		0
1808c2ecf20Sopenharmony_ci#define HII2S_MUX_TOP_MODULE_CFG__VOICE_DLINK_SRC_MODE_MASK		7
1818c2ecf20Sopenharmony_ci
1828c2ecf20Sopenharmony_cienum hi6210_s2_src_mode {
1838c2ecf20Sopenharmony_ci	HII2S_S2_SRC_MODE_3,
1848c2ecf20Sopenharmony_ci	HII2S_S2_SRC_MODE_12,
1858c2ecf20Sopenharmony_ci	HII2S_S2_SRC_MODE_6,
1868c2ecf20Sopenharmony_ci	HII2S_S2_SRC_MODE_2,
1878c2ecf20Sopenharmony_ci};
1888c2ecf20Sopenharmony_ci
1898c2ecf20Sopenharmony_cienum hi6210_voice_dlink_src_mode {
1908c2ecf20Sopenharmony_ci	HII2S_VOICE_DL_SRC_MODE_12 = 1,
1918c2ecf20Sopenharmony_ci	HII2S_VOICE_DL_SRC_MODE_6,
1928c2ecf20Sopenharmony_ci	HII2S_VOICE_DL_SRC_MODE_2,
1938c2ecf20Sopenharmony_ci	HII2S_VOICE_DL_SRC_MODE_3,
1948c2ecf20Sopenharmony_ci};
1958c2ecf20Sopenharmony_ci
1968c2ecf20Sopenharmony_ci#define HII2S_ADC_PGA_CFG			0x1c
1978c2ecf20Sopenharmony_ci#define HII2S_S1_INPUT_PGA_CFG			0x20
1988c2ecf20Sopenharmony_ci#define HII2S_S2_INPUT_PGA_CFG			0x24
1998c2ecf20Sopenharmony_ci#define HII2S_ST_DL_PGA_CFG			0x28
2008c2ecf20Sopenharmony_ci#define HII2S_VOICE_SIDETONE_DLINK_PGA_CFG	0x2c
2018c2ecf20Sopenharmony_ci#define HII2S_APB_AFIFO_CFG_1			0x30
2028c2ecf20Sopenharmony_ci#define HII2S_APB_AFIFO_CFG_2			0x34
2038c2ecf20Sopenharmony_ci#define HII2S_ST_DL_FIFO_TH_CFG			0x38
2048c2ecf20Sopenharmony_ci
2058c2ecf20Sopenharmony_ci#define HII2S_ST_DL_FIFO_TH_CFG__ST_DL_R_AEMPTY_SHIFT			24
2068c2ecf20Sopenharmony_ci#define HII2S_ST_DL_FIFO_TH_CFG__ST_DL_R_AEMPTY_MASK			0x1f
2078c2ecf20Sopenharmony_ci#define HII2S_ST_DL_FIFO_TH_CFG__ST_DL_R_AFULL_SHIFT			16
2088c2ecf20Sopenharmony_ci#define HII2S_ST_DL_FIFO_TH_CFG__ST_DL_R_AFULL_MASK			0x1f
2098c2ecf20Sopenharmony_ci#define HII2S_ST_DL_FIFO_TH_CFG__ST_DL_L_AEMPTY_SHIFT			8
2108c2ecf20Sopenharmony_ci#define HII2S_ST_DL_FIFO_TH_CFG__ST_DL_L_AEMPTY_MASK			0x1f
2118c2ecf20Sopenharmony_ci#define HII2S_ST_DL_FIFO_TH_CFG__ST_DL_L_AFULL_SHIFT			0
2128c2ecf20Sopenharmony_ci#define HII2S_ST_DL_FIFO_TH_CFG__ST_DL_L_AFULL_MASK			0x1f
2138c2ecf20Sopenharmony_ci
2148c2ecf20Sopenharmony_ci#define HII2S_STEREO_UPLINK_FIFO_TH_CFG		0x3c
2158c2ecf20Sopenharmony_ci#define HII2S_VOICE_UPLINK_FIFO_TH_CFG		0x40
2168c2ecf20Sopenharmony_ci#define HII2S_CODEC_IRQ_MASK			0x44
2178c2ecf20Sopenharmony_ci#define HII2S_CODEC_IRQ				0x48
2188c2ecf20Sopenharmony_ci#define HII2S_DACL_AGC_CFG_1			0x4c
2198c2ecf20Sopenharmony_ci#define HII2S_DACL_AGC_CFG_2			0x50
2208c2ecf20Sopenharmony_ci#define HII2S_DACR_AGC_CFG_1			0x54
2218c2ecf20Sopenharmony_ci#define HII2S_DACR_AGC_CFG_2			0x58
2228c2ecf20Sopenharmony_ci#define HII2S_DMIC_SIF_CFG			0x5c
2238c2ecf20Sopenharmony_ci#define HII2S_MISC_CFG				0x60
2248c2ecf20Sopenharmony_ci
2258c2ecf20Sopenharmony_ci#define HII2S_MISC_CFG__THIRDMD_DLINK_TEST_SEL				BIT(17)
2268c2ecf20Sopenharmony_ci#define HII2S_MISC_CFG__THIRDMD_DLINK_DIN_SEL				BIT(16)
2278c2ecf20Sopenharmony_ci#define HII2S_MISC_CFG__S3_DOUT_RIGHT_SEL				BIT(14)
2288c2ecf20Sopenharmony_ci#define HII2S_MISC_CFG__S3_DOUT_LEFT_SEL				BIT(13)
2298c2ecf20Sopenharmony_ci#define HII2S_MISC_CFG__S3_DIN_TEST_SEL					BIT(12)
2308c2ecf20Sopenharmony_ci#define HII2S_MISC_CFG__VOICE_DLINK_SRC_UP_DOUT_VLD_SEL			BIT(8)
2318c2ecf20Sopenharmony_ci#define HII2S_MISC_CFG__VOICE_DLINK_TEST_SEL				BIT(7)
2328c2ecf20Sopenharmony_ci#define HII2S_MISC_CFG__VOICE_DLINK_DIN_SEL				BIT(6)
2338c2ecf20Sopenharmony_ci#define HII2S_MISC_CFG__ST_DL_TEST_SEL					BIT(4)
2348c2ecf20Sopenharmony_ci#define HII2S_MISC_CFG__S2_DOUT_RIGHT_SEL				BIT(3)
2358c2ecf20Sopenharmony_ci#define HII2S_MISC_CFG__S2_DOUT_TEST_SEL				BIT(2)
2368c2ecf20Sopenharmony_ci#define HII2S_MISC_CFG__S1_DOUT_TEST_SEL				BIT(1)
2378c2ecf20Sopenharmony_ci#define HII2S_MISC_CFG__S2_DOUT_LEFT_SEL				BIT(0)
2388c2ecf20Sopenharmony_ci
2398c2ecf20Sopenharmony_ci#define HII2S_S2_SRC_CFG			0x64
2408c2ecf20Sopenharmony_ci#define HII2S_MEM_CFG				0x68
2418c2ecf20Sopenharmony_ci#define HII2S_THIRDMD_PCM_PGA_CFG		0x6c
2428c2ecf20Sopenharmony_ci#define HII2S_THIRD_MODEM_FIFO_TH		0x70
2438c2ecf20Sopenharmony_ci#define HII2S_S3_ANTI_FREQ_JITTER_TX_INC_CNT	0x74
2448c2ecf20Sopenharmony_ci#define HII2S_S3_ANTI_FREQ_JITTER_TX_DEC_CNT	0x78
2458c2ecf20Sopenharmony_ci#define HII2S_S3_ANTI_FREQ_JITTER_RX_INC_CNT	0x7c
2468c2ecf20Sopenharmony_ci#define HII2S_S3_ANTI_FREQ_JITTER_RX_DEC_CNT	0x80
2478c2ecf20Sopenharmony_ci#define HII2S_ANTI_FREQ_JITTER_EN		0x84
2488c2ecf20Sopenharmony_ci#define HII2S_CLK_SEL				0x88
2498c2ecf20Sopenharmony_ci
2508c2ecf20Sopenharmony_ci/* 0 = BT owns the i2s */
2518c2ecf20Sopenharmony_ci#define HII2S_CLK_SEL__I2S_BT_FM_SEL					BIT(0)
2528c2ecf20Sopenharmony_ci/* 0 = internal source, 1 = ext */
2538c2ecf20Sopenharmony_ci#define HII2S_CLK_SEL__EXT_12_288MHZ_SEL				BIT(1)
2548c2ecf20Sopenharmony_ci
2558c2ecf20Sopenharmony_ci
2568c2ecf20Sopenharmony_ci#define HII2S_THIRDMD_DLINK_CHANNEL		0xe8
2578c2ecf20Sopenharmony_ci#define HII2S_THIRDMD_ULINK_CHANNEL		0xec
2588c2ecf20Sopenharmony_ci#define HII2S_VOICE_DLINK_CHANNEL		0xf0
2598c2ecf20Sopenharmony_ci
2608c2ecf20Sopenharmony_ci/* shovel data in here for playback */
2618c2ecf20Sopenharmony_ci#define HII2S_ST_DL_CHANNEL			0xf4
2628c2ecf20Sopenharmony_ci#define HII2S_STEREO_UPLINK_CHANNEL		0xf8
2638c2ecf20Sopenharmony_ci#define HII2S_VOICE_UPLINK_CHANNEL		0xfc
2648c2ecf20Sopenharmony_ci
2658c2ecf20Sopenharmony_ci#endif/* _HI6210_I2S_H */
266