169 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			169 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0-or-later */
 | |
| /*
 | |
|  * Rockchip Audio Delta-sigma Digital Converter driver
 | |
|  *
 | |
|  * Copyright (C) 2023 Rockchip Electronics Co., Ltd.
 | |
|  *
 | |
|  */
 | |
| 
 | |
| #ifndef _RK_DSM_H
 | |
| #define _RK_DSM_H
 | |
| 
 | |
| #define DACVUCTL		0x0000
 | |
| #define DACVUCTIME		0x0004
 | |
| #define DACDIGEN		0x0008
 | |
| #define DACCLKCTRL		0x000c
 | |
| #define DACINT_DIV		0x0014
 | |
| #define DACSCLKRXINT_DIV	0x0020
 | |
| #define DACDSM_DIV		0x0024
 | |
| #define DACDSM_CTRL		0x0028
 | |
| #define DACCFG1			0x0044
 | |
| #define DACMUTE			0x0048
 | |
| #define DACMUTEST		0x004c
 | |
| #define DACVOLL0		0x0050
 | |
| #define DACVOLL1		0x0054
 | |
| #define DACVOLL2		0x0058
 | |
| #define DACVOLL3		0x005c
 | |
| #define DACVOLR0		0x0060
 | |
| #define DACVOLR1		0x0064
 | |
| #define DACVOLR2		0x0068
 | |
| #define DACVOLR3		0x006c
 | |
| #define DACVOGP			0x0070
 | |
| #define DACRVOLL0		0x0074
 | |
| #define DACRVOLL1		0x0078
 | |
| #define DACRVOLL2		0x007c
 | |
| #define DACRVOLL3		0x0080
 | |
| #define DACRVOLR0		0x0084
 | |
| #define DACRVOLR1		0x0088
 | |
| #define DACRVOLR2		0x008c
 | |
| #define DACRVOLR3		0x0090
 | |
| #define DACLMT0			0x0094
 | |
| #define DACLMT1			0x0098
 | |
| #define DACLMT2			0x009c
 | |
| #define DACMIXCTRLL		0x00a0
 | |
| #define DACMIXCTRLR		0x00a4
 | |
| #define DACHPF			0x00a8
 | |
| #define I2S_RXCR0		0x010c
 | |
| #define I2S_RXCR1		0x0110
 | |
| #define I2S_CKR0		0x0114
 | |
| #define I2S_CKR1		0x0118
 | |
| #define I2S_XFER		0x011c
 | |
| #define I2S_CLR			0x0120
 | |
| #define VERSION			0x0140
 | |
| 
 | |
| /* DACDIGEN */
 | |
| #define DSM_DACDIGEN_DACEN_L0R1_MASK		BIT(0)
 | |
| #define DSM_DACDIGEN_DACEN_L0R1_EN		BIT(0)
 | |
| #define DSM_DACDIGEN_DACEN_L0R1_DIS		0
 | |
| #define DSM_DACDIGEN_DAC_GLBEN_MASK		BIT(4)
 | |
| #define DSM_DACDIGEN_DAC_GLBEN_EN		BIT(4)
 | |
| #define DSM_DACDIGEN_DAC_GLBEN_DIS		0
 | |
| /* DACCLKCTRL */
 | |
| #define DSM_DACCLKCTRL_DAC_MODE_ATTENU_MASK	BIT(0)
 | |
| #define DSM_DACCLKCTRL_DAC_MODE_ATTENU_EN	BIT(0)
 | |
| #define DSM_DACCLKCTRL_DAC_MODE_ATTENU_DIS	0
 | |
| #define DSM_DACCLKCTRL_DAC_SYNC_STATUS_MASK	BIT(1)
 | |
| #define DSM_DACCLKCTRL_DAC_SYNC_STATUS_DONE	0
 | |
| #define DSM_DACCLKCTRL_DAC_SYNC_ENA_MASK	BIT(2)
 | |
| #define DSM_DACCLKCTRL_DAC_SYNC_ENA_EN		BIT(2)
 | |
| #define DSM_DACCLKCTRL_DAC_SYNC_ENA_DIS		0
 | |
| #define DSM_DACCLKCTRL_CKE_BCLKRX_MASK		BIT(3)
 | |
| #define DSM_DACCLKCTRL_CKE_BCLKRX_EN		BIT(3)
 | |
| #define DSM_DACCLKCTRL_CKE_BCLKRX_DIS		0
 | |
| #define DSM_DACCLKCTRL_I2SRX_CKE_MASK		BIT(4)
 | |
| #define DSM_DACCLKCTRL_I2SRX_CKE_EN		BIT(4)
 | |
| #define DSM_DACCLKCTRL_I2SRX_CKE_DIS		0
 | |
| #define DSM_DACCLKCTRL_DAC_CKE_MASK		BIT(5)
 | |
| #define DSM_DACCLKCTRL_DAC_CKE_EN		BIT(5)
 | |
| #define DSM_DACCLKCTRL_DAC_CKE_DIS		0
 | |
| /* DACINT_DIV */
 | |
| #define DSM_DACINT_DIV_INT_DIV_CON_MASK		GENMASK(7, 0)
 | |
| #define DSM_DACINT_DIV_INT_DIV_CON(x)		((x) - 1)
 | |
| /* DACSCLKRXINT_DIV */
 | |
| #define DSM_DACSCLKRXINT_DIV_SCKRXDIV_MASK	GENMASK(7, 0)
 | |
| #define DSM_DACSCLKRXINT_DIV_SCKRXDIV(x)	((x) - 1)
 | |
| /* DACDSM_DIV */
 | |
| #define DSM_DACDSM_DIV_AUDIO_DSM_DIV_MASK	GENMASK(7, 0)
 | |
| #define DSM_DACDSM_DIV_AUDIO_DSM_DIV(x)		((x) - 1)
 | |
| /* DACDSM_CTRL */
 | |
| #define DSM_DACDSM_CTRL_DITH_SEL_MASK		GENMASK(2, 0)
 | |
| #define DSM_DACDSM_CTRL_DITH_SEL(x)		(x)
 | |
| #define DSM_DACDSM_CTRL_DSM_EN_MASK		BIT(3)
 | |
| #define DSM_DACDSM_CTRL_DSM_EN			BIT(3)
 | |
| #define DSM_DACDSM_CTRL_DSM_DIS			0
 | |
| #define DSM_DACDSM_CTRL_DSM_MODE_MASK		GENMASK(5, 4)
 | |
| #define DSM_DACDSM_CTRL_DSM_MODE_1		(0x2 << 4)
 | |
| #define DSM_DACDSM_CTRL_DSM_MODE_0		(0x1 << 4)
 | |
| #define DSM_DACDSM_CTRL_DSM_MODE_DAC		(0x0 << 4)
 | |
| #define DSM_DACDSM_CTRL_DSM_MODE_CKE_MASK	BIT(6)
 | |
| #define DSM_DACDSM_CTRL_DSM_MODE_CKE_EN		BIT(6)
 | |
| #define DSM_DACDSM_CTRL_DSM_MODE_CKE_DIS	0
 | |
| /* DACCFG1 */
 | |
| #define DSM_DACCFG1_DACSRT_MASK			GENMASK(4, 2)
 | |
| #define DSM_DACCFG1_DACSRT(x)			((x) << 2)
 | |
| /* DACMUTE */
 | |
| #define DSM_DACMUTE_DACMT_MASK			BIT(0)
 | |
| #define DSM_DACMUTE_DACUNMT_MASK		BIT(1)
 | |
| /* DACVOLL0 */
 | |
| #define DSM_DACVOLL0_DACLV0_MASK		GENMASK(7, 0)
 | |
| #define DSM_DACVOLL0_DACLV0(x)			(x)
 | |
| /* DACVOLR0 */
 | |
| #define DSM_DACVOLR0_DACRV0_MASK		GENMASK(7, 0)
 | |
| #define DSM_DACVOLR0_DACRV0(x)			(x)
 | |
| /* DACVOGP */
 | |
| #define DSM_DACVOGP_VOLGPL0_MASK		BIT(0)
 | |
| #define DSM_DACVOGP_VOLGPL0_POS			BIT(0)
 | |
| #define DSM_DACVOGP_VOLGPL0_NEG			0
 | |
| #define DSM_DACVOGP_VOLGPR0_MASK		BIT(1)
 | |
| #define DSM_DACVOGP_VOLGPR0_POS			BIT(1)
 | |
| #define DSM_DACVOGP_VOLGPR0_NEG			0
 | |
| /* DACMIXCTRLL */
 | |
| #define DSM_DACMIXCTRLL_MIXMODE_L0_MASK		GENMASK(1, 0)
 | |
| #define DSM_DACMIXCTRLL_MIXMODE_L0_LR		2
 | |
| #define DSM_DACMIXCTRLL_MIXMODE_L0_R		1
 | |
| #define DSM_DACMIXCTRLL_MIXMODE_L0_L		0
 | |
| /* DACMIXCTRLR */
 | |
| #define DSM_DACMIXCTRLR_MIXMODE_R0_MASK		GENMASK(1, 0)
 | |
| #define DSM_DACMIXCTRLR_MIXMODE_R0_LR		2
 | |
| #define DSM_DACMIXCTRLR_MIXMODE_R0_L		1
 | |
| #define DSM_DACMIXCTRLR_MIXMODE_R0_R		0
 | |
| /* DACHPF */
 | |
| #define DSM_DACHPF_HPFEN_L0R0_MASK		BIT(0)
 | |
| #define DSM_DACHPF_HPFEN_L0R0_EN		BIT(0)
 | |
| #define DSM_DACHPF_HPFCF_MASK			GENMASK(5, 4)
 | |
| #define DSM_DACHPF_HPFCF_140HZ			(0x3 << 4)
 | |
| #define DSM_DACHPF_HPFCF_120HZ			(0x2 << 4)
 | |
| #define DSM_DACHPF_HPFCF_100HZ			(0x1 << 4)
 | |
| #define DSM_DACHPF_HPFCF_80HZ			(0x0 << 4)
 | |
| /* I2S_RXCR0 */
 | |
| #define DSM_I2S_RXCR0_VDW_MASK			GENMASK(4, 0)
 | |
| #define DSM_I2S_RXCR0_VDW(x)			((x) - 1)
 | |
| /* I2S_RXCR1 */
 | |
| #define DSM_I2S_RXCR1_CEX_MASK			BIT(4)
 | |
| #define DSM_I2S_RXCR1_CEX_EXCHANGE		BIT(4)
 | |
| #define DSM_I2S_RXCR1_RCSR_MASK			GENMASK(7, 6)
 | |
| #define DSM_I2S_RXCR1_RCSR_2CH			(0x0 << 6)
 | |
| /* I2S_CKR0 */
 | |
| #define DSM_I2S_CKR0_RSD_MASK			GENMASK(3, 2)
 | |
| #define DSM_I2S_CKR0_RSD_64			(0 << 2)
 | |
| #define DSM_I2S_CKR0_RSD_128			(1 << 2)
 | |
| #define DSM_I2S_CKR0_RSD_256			(2 << 2)
 | |
| /* I2S_CKR1 */
 | |
| #define DSM_I2S_CKR1_RLP_MASK			BIT(1)
 | |
| #define DSM_I2S_CKR1_RLP_INVERTED		BIT(1)
 | |
| #define DSM_I2S_CKR1_RLP_NORMAL			0
 | |
| #define DSM_I2S_CKR1_CKP_MASK			BIT(2)
 | |
| #define DSM_I2S_CKR1_CKP_INVERTED		BIT(2)
 | |
| #define DSM_I2S_CKR1_CKP_NORMAL			0
 | |
| #define DSM_I2S_CKR1_MSS_MASK			BIT(3)
 | |
| #define DSM_I2S_CKR1_MSS_MASTER			0
 | |
| /* I2S_XFER */
 | |
| #define DSM_I2S_XFER_RXS_MASK			BIT(1)
 | |
| #define DSM_I2S_XFER_RXS_START			BIT(1)
 | |
| #define DSM_I2S_XFER_RXS_STOP			0
 | |
| /* I2S_CLR */
 | |
| #define DSM_I2S_CLR_RXC_MASK			BIT(1)
 | |
| #define DSM_I2S_CLR_RXC_CLR			BIT(1)
 | |
| 
 | |
| #endif
 |