Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * alc5623.h  --  alc562[123] ALSA Soc Audio driver
0004  *
0005  * Copyright 2008 Realtek Microelectronics
0006  * Copyright 2010 Arnaud Patard <arnaud.patard@rtp-net.org>
0007  *
0008  * Author: flove <flove@realtek.com>
0009  * Arnaud Patard <arnaud.patard@rtp-net.org>
0010  */
0011 
0012 #ifndef _ALC5623_H
0013 #define _ALC5623_H
0014 
0015 #define ALC5623_RESET               0x00
0016 /*              5621 5622 5623  */
0017 /* speaker output vol          2    2       */
0018 /* line output vol                      4    2  */
0019 /* HP output vol           4    0    4  */
0020 #define ALC5623_SPK_OUT_VOL         0x02
0021 #define ALC5623_HP_OUT_VOL          0x04
0022 #define ALC5623_MONO_AUX_OUT_VOL        0x06
0023 #define ALC5623_AUXIN_VOL           0x08
0024 #define ALC5623_LINE_IN_VOL         0x0A
0025 #define ALC5623_STEREO_DAC_VOL          0x0C
0026 #define ALC5623_MIC_VOL             0x0E
0027 #define ALC5623_MIC_ROUTING_CTRL        0x10
0028 #define ALC5623_ADC_REC_GAIN            0x12
0029 #define ALC5623_ADC_REC_MIXER           0x14
0030 #define ALC5623_SOFT_VOL_CTRL_TIME      0x16
0031 /* ALC5623_OUTPUT_MIXER_CTRL :          */
0032 /* same remark as for reg 2 line vs speaker */
0033 #define ALC5623_OUTPUT_MIXER_CTRL       0x1C
0034 #define ALC5623_MIC_CTRL            0x22
0035 
0036 #define ALC5623_DAI_CONTROL         0x34
0037 #define ALC5623_DAI_SDP_MASTER_MODE     (0 << 15)
0038 #define ALC5623_DAI_SDP_SLAVE_MODE      (1 << 15)
0039 #define ALC5623_DAI_I2S_PCM_MODE        (1 << 14)
0040 #define ALC5623_DAI_MAIN_I2S_BCLK_POL_CTRL  (1 <<  7)
0041 #define ALC5623_DAI_ADC_DATA_L_R_SWAP       (1 <<  5)
0042 #define ALC5623_DAI_DAC_DATA_L_R_SWAP       (1 <<  4)
0043 #define ALC5623_DAI_I2S_DL_MASK         (3 <<  2)
0044 #define ALC5623_DAI_I2S_DL_32           (3 <<  2)
0045 #define ALC5623_DAI_I2S_DL_24           (2 <<  2)
0046 #define ALC5623_DAI_I2S_DL_20           (1 <<  2)
0047 #define ALC5623_DAI_I2S_DL_16           (0 <<  2)
0048 #define ALC5623_DAI_I2S_DF_PCM          (3 <<  0)
0049 #define ALC5623_DAI_I2S_DF_LEFT         (2 <<  0)
0050 #define ALC5623_DAI_I2S_DF_RIGHT        (1 <<  0)
0051 #define ALC5623_DAI_I2S_DF_I2S          (0 <<  0)
0052 
0053 #define ALC5623_STEREO_AD_DA_CLK_CTRL       0x36
0054 #define ALC5623_COMPANDING_CTRL         0x38
0055 
0056 #define ALC5623_PWR_MANAG_ADD1          0x3A
0057 #define ALC5623_PWR_ADD1_MAIN_I2S_EN        (1 << 15)
0058 #define ALC5623_PWR_ADD1_ZC_DET_PD_EN       (1 << 14)
0059 #define ALC5623_PWR_ADD1_MIC1_BIAS_EN       (1 << 11)
0060 #define ALC5623_PWR_ADD1_SHORT_CURR_DET_EN  (1 << 10)
0061 #define ALC5623_PWR_ADD1_SOFTGEN_EN     (1 <<  8) /* rsvd on 5622 */
0062 #define ALC5623_PWR_ADD1_DEPOP_BUF_HP       (1 <<  6) /* rsvd on 5622 */
0063 #define ALC5623_PWR_ADD1_HP_OUT_AMP     (1 <<  5)
0064 #define ALC5623_PWR_ADD1_HP_OUT_ENH_AMP     (1 <<  4) /* rsvd on 5622 */
0065 #define ALC5623_PWR_ADD1_DEPOP_BUF_AUX      (1 <<  2)
0066 #define ALC5623_PWR_ADD1_AUX_OUT_AMP        (1 <<  1)
0067 #define ALC5623_PWR_ADD1_AUX_OUT_ENH_AMP    (1 <<  0) /* rsvd on 5622 */
0068 
0069 #define ALC5623_PWR_MANAG_ADD2          0x3C
0070 #define ALC5623_PWR_ADD2_LINEOUT        (1 << 15) /* rt5623 */
0071 #define ALC5623_PWR_ADD2_CLASS_AB       (1 << 15) /* rt5621 */
0072 #define ALC5623_PWR_ADD2_CLASS_D        (1 << 14) /* rt5621 */
0073 #define ALC5623_PWR_ADD2_VREF           (1 << 13)
0074 #define ALC5623_PWR_ADD2_PLL            (1 << 12)
0075 #define ALC5623_PWR_ADD2_DAC_REF_CIR        (1 << 10)
0076 #define ALC5623_PWR_ADD2_L_DAC_CLK      (1 <<  9)
0077 #define ALC5623_PWR_ADD2_R_DAC_CLK      (1 <<  8)
0078 #define ALC5623_PWR_ADD2_L_ADC_CLK_GAIN     (1 <<  7)
0079 #define ALC5623_PWR_ADD2_R_ADC_CLK_GAIN     (1 <<  6)
0080 #define ALC5623_PWR_ADD2_L_HP_MIXER     (1 <<  5)
0081 #define ALC5623_PWR_ADD2_R_HP_MIXER     (1 <<  4)
0082 #define ALC5623_PWR_ADD2_SPK_MIXER      (1 <<  3)
0083 #define ALC5623_PWR_ADD2_MONO_MIXER     (1 <<  2)
0084 #define ALC5623_PWR_ADD2_L_ADC_REC_MIXER    (1 <<  1)
0085 #define ALC5623_PWR_ADD2_R_ADC_REC_MIXER    (1 <<  0)
0086 
0087 #define ALC5623_PWR_MANAG_ADD3          0x3E
0088 #define ALC5623_PWR_ADD3_MAIN_BIAS      (1 << 15)
0089 #define ALC5623_PWR_ADD3_AUXOUT_L_VOL_AMP   (1 << 14)
0090 #define ALC5623_PWR_ADD3_AUXOUT_R_VOL_AMP   (1 << 13)
0091 #define ALC5623_PWR_ADD3_SPK_OUT        (1 << 12)
0092 #define ALC5623_PWR_ADD3_HP_L_OUT_VOL       (1 << 10)
0093 #define ALC5623_PWR_ADD3_HP_R_OUT_VOL       (1 <<  9)
0094 #define ALC5623_PWR_ADD3_LINEIN_L_VOL       (1 <<  7)
0095 #define ALC5623_PWR_ADD3_LINEIN_R_VOL       (1 <<  6)
0096 #define ALC5623_PWR_ADD3_AUXIN_L_VOL        (1 <<  5)
0097 #define ALC5623_PWR_ADD3_AUXIN_R_VOL        (1 <<  4)
0098 #define ALC5623_PWR_ADD3_MIC1_FUN_CTRL      (1 <<  3)
0099 #define ALC5623_PWR_ADD3_MIC2_FUN_CTRL      (1 <<  2)
0100 #define ALC5623_PWR_ADD3_MIC1_BOOST_AD      (1 <<  1)
0101 #define ALC5623_PWR_ADD3_MIC2_BOOST_AD      (1 <<  0)
0102 
0103 #define ALC5623_ADD_CTRL_REG            0x40
0104 
0105 #define ALC5623_GLOBAL_CLK_CTRL_REG     0x42
0106 #define ALC5623_GBL_CLK_SYS_SOUR_SEL_PLL    (1 << 15)
0107 #define ALC5623_GBL_CLK_SYS_SOUR_SEL_MCLK   (0 << 15)
0108 #define ALC5623_GBL_CLK_PLL_SOUR_SEL_BITCLK (1 << 14)
0109 #define ALC5623_GBL_CLK_PLL_SOUR_SEL_MCLK   (0 << 14)
0110 #define ALC5623_GBL_CLK_PLL_DIV_RATIO_DIV8  (3 <<  1)
0111 #define ALC5623_GBL_CLK_PLL_DIV_RATIO_DIV4  (2 <<  1)
0112 #define ALC5623_GBL_CLK_PLL_DIV_RATIO_DIV2  (1 <<  1)
0113 #define ALC5623_GBL_CLK_PLL_DIV_RATIO_DIV1  (0 <<  1)
0114 #define ALC5623_GBL_CLK_PLL_PRE_DIV2        (1 <<  0)
0115 #define ALC5623_GBL_CLK_PLL_PRE_DIV1        (0 <<  0)
0116 
0117 #define ALC5623_PLL_CTRL            0x44
0118 #define ALC5623_PLL_CTRL_N_VAL(n)       (((n)&0xff) << 8)
0119 #define ALC5623_PLL_CTRL_K_VAL(k)       (((k)&0x7)  << 4)
0120 #define ALC5623_PLL_CTRL_M_VAL(m)       ((m)&0xf)
0121 
0122 #define ALC5623_GPIO_OUTPUT_PIN_CTRL        0x4A
0123 #define ALC5623_GPIO_PIN_CONFIG         0x4C
0124 #define ALC5623_GPIO_PIN_POLARITY       0x4E
0125 #define ALC5623_GPIO_PIN_STICKY         0x50
0126 #define ALC5623_GPIO_PIN_WAKEUP         0x52
0127 #define ALC5623_GPIO_PIN_STATUS         0x54
0128 #define ALC5623_GPIO_PIN_SHARING        0x56
0129 #define ALC5623_OVER_CURR_STATUS        0x58
0130 #define ALC5623_JACK_DET_CTRL           0x5A
0131 
0132 #define ALC5623_MISC_CTRL           0x5E
0133 #define ALC5623_MISC_DISABLE_FAST_VREG      (1 << 15)
0134 #define ALC5623_MISC_SPK_CLASS_AB_OC_PD     (1 << 13) /* 5621 */
0135 #define ALC5623_MISC_SPK_CLASS_AB_OC_DET    (1 << 12) /* 5621 */
0136 #define ALC5623_MISC_HP_DEPOP_MODE3_EN      (1 << 10)
0137 #define ALC5623_MISC_HP_DEPOP_MODE2_EN      (1 <<  9)
0138 #define ALC5623_MISC_HP_DEPOP_MODE1_EN      (1 <<  8)
0139 #define ALC5623_MISC_AUXOUT_DEPOP_MODE3_EN  (1 <<  6)
0140 #define ALC5623_MISC_AUXOUT_DEPOP_MODE2_EN  (1 <<  5)
0141 #define ALC5623_MISC_AUXOUT_DEPOP_MODE1_EN  (1 <<  4)
0142 #define ALC5623_MISC_M_DAC_L_INPUT      (1 <<  3)
0143 #define ALC5623_MISC_M_DAC_R_INPUT      (1 <<  2)
0144 #define ALC5623_MISC_IRQOUT_INV_CTRL        (1 <<  0)
0145 
0146 #define ALC5623_PSEDUEO_SPATIAL_CTRL        0x60
0147 #define ALC5623_EQ_CTRL             0x62
0148 #define ALC5623_EQ_MODE_ENABLE          0x66
0149 #define ALC5623_AVC_CTRL            0x68
0150 #define ALC5623_HID_CTRL_INDEX          0x6A
0151 #define ALC5623_HID_CTRL_DATA           0x6C
0152 #define ALC5623_VENDOR_ID1          0x7C
0153 #define ALC5623_VENDOR_ID2          0x7E
0154 
0155 #define ALC5623_PLL_FR_MCLK         0
0156 #define ALC5623_PLL_FR_BCK          1
0157 #endif