1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * ALSA SoC CX20721/CX20723 codec driver 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright: (C) 2017 Conexant Systems, Inc. 6*4882a593Smuzhiyun * Author: Simon Ho, <Simon.ho@conexant.com> 7*4882a593Smuzhiyun */ 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #ifndef __CX2072X_H__ 10*4882a593Smuzhiyun #define __CX2072X_H__ 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun #define CX2072X_MCLK_PLL 1 13*4882a593Smuzhiyun #define CX2072X_MCLK_EXTERNAL_PLL 1 14*4882a593Smuzhiyun #define CX2072X_MCLK_INTERNAL_OSC 2 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun /*#define CX2072X_RATES SNDRV_PCM_RATE_8000_192000*/ 17*4882a593Smuzhiyun #define CX2072X_RATES_DSP SNDRV_PCM_RATE_48000 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun #define CX2072X_REG_MAX 0x8a3c 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun #define CX2072X_VENDOR_ID 0x0200 22*4882a593Smuzhiyun #define CX2072X_REVISION_ID 0x0208 23*4882a593Smuzhiyun #define CX2072X_CURRENT_BCLK_FREQUENCY 0x00dc 24*4882a593Smuzhiyun #define CX2072X_AFG_POWER_STATE 0x0414 25*4882a593Smuzhiyun #define CX2072X_UM_RESPONSE 0x0420 26*4882a593Smuzhiyun #define CX2072X_GPIO_DATA 0x0454 27*4882a593Smuzhiyun #define CX2072X_GPIO_ENABLE 0x0458 28*4882a593Smuzhiyun #define CX2072X_GPIO_DIRECTION 0x045c 29*4882a593Smuzhiyun #define CX2072X_GPIO_WAKE 0x0460 30*4882a593Smuzhiyun #define CX2072X_GPIO_UM_ENABLE 0x0464 31*4882a593Smuzhiyun #define CX2072X_GPIO_STICKY_MASK 0x0468 32*4882a593Smuzhiyun #define CX2072X_AFG_FUNCTION_RESET 0x07fc 33*4882a593Smuzhiyun #define CX2072X_DAC1_CONVERTER_FORMAT 0x43c8 34*4882a593Smuzhiyun #define CX2072X_DAC1_AMP_GAIN_RIGHT 0x41c0 35*4882a593Smuzhiyun #define CX2072X_DAC1_AMP_GAIN_LEFT 0x41e0 36*4882a593Smuzhiyun #define CX2072X_DAC1_POWER_STATE 0x4014 37*4882a593Smuzhiyun #define CX2072X_DAC1_CONVERTER_STREAM_CHANNEL 0x4018 38*4882a593Smuzhiyun #define CX2072X_DAC1_EAPD_ENABLE 0x4030 39*4882a593Smuzhiyun #define CX2072X_DAC2_CONVERTER_FORMAT 0x47c8 40*4882a593Smuzhiyun #define CX2072X_DAC2_AMP_GAIN_RIGHT 0x45c0 41*4882a593Smuzhiyun #define CX2072X_DAC2_AMP_GAIN_LEFT 0x45e0 42*4882a593Smuzhiyun #define CX2072X_DAC2_POWER_STATE 0x4414 43*4882a593Smuzhiyun #define CX2072X_DAC2_CONVERTER_STREAM_CHANNEL 0x4418 44*4882a593Smuzhiyun #define CX2072X_ADC1_CONVERTER_FORMAT 0x4fc8 45*4882a593Smuzhiyun #define CX2072X_ADC1_AMP_GAIN_RIGHT_0 0x4d80 46*4882a593Smuzhiyun #define CX2072X_ADC1_AMP_GAIN_LEFT_0 0x4da0 47*4882a593Smuzhiyun #define CX2072X_ADC1_AMP_GAIN_RIGHT_1 0x4d84 48*4882a593Smuzhiyun #define CX2072X_ADC1_AMP_GAIN_LEFT_1 0x4da4 49*4882a593Smuzhiyun #define CX2072X_ADC1_AMP_GAIN_RIGHT_2 0x4d88 50*4882a593Smuzhiyun #define CX2072X_ADC1_AMP_GAIN_LEFT_2 0x4da8 51*4882a593Smuzhiyun #define CX2072X_ADC1_AMP_GAIN_RIGHT_3 0x4d8c 52*4882a593Smuzhiyun #define CX2072X_ADC1_AMP_GAIN_LEFT_3 0x4dac 53*4882a593Smuzhiyun #define CX2072X_ADC1_AMP_GAIN_RIGHT_4 0x4d90 54*4882a593Smuzhiyun #define CX2072X_ADC1_AMP_GAIN_LEFT_4 0x4db0 55*4882a593Smuzhiyun #define CX2072X_ADC1_AMP_GAIN_RIGHT_5 0x4d94 56*4882a593Smuzhiyun #define CX2072X_ADC1_AMP_GAIN_LEFT_5 0x4db4 57*4882a593Smuzhiyun #define CX2072X_ADC1_AMP_GAIN_RIGHT_6 0x4d98 58*4882a593Smuzhiyun #define CX2072X_ADC1_AMP_GAIN_LEFT_6 0x4db8 59*4882a593Smuzhiyun #define CX2072X_ADC1_CONNECTION_SELECT_CONTROL 0x4c04 60*4882a593Smuzhiyun #define CX2072X_ADC1_POWER_STATE 0x4c14 61*4882a593Smuzhiyun #define CX2072X_ADC1_CONVERTER_STREAM_CHANNEL 0x4c18 62*4882a593Smuzhiyun #define CX2072X_ADC2_CONVERTER_FORMAT 0x53c8 63*4882a593Smuzhiyun #define CX2072X_ADC2_AMP_GAIN_RIGHT_0 0x5180 64*4882a593Smuzhiyun #define CX2072X_ADC2_AMP_GAIN_LEFT_0 0x51a0 65*4882a593Smuzhiyun #define CX2072X_ADC2_AMP_GAIN_RIGHT_1 0x5184 66*4882a593Smuzhiyun #define CX2072X_ADC2_AMP_GAIN_LEFT_1 0x51a4 67*4882a593Smuzhiyun #define CX2072X_ADC2_AMP_GAIN_RIGHT_2 0x5188 68*4882a593Smuzhiyun #define CX2072X_ADC2_AMP_GAIN_LEFT_2 0x51a8 69*4882a593Smuzhiyun #define CX2072X_ADC2_CONNECTION_SELECT_CONTROL 0x5004 70*4882a593Smuzhiyun #define CX2072X_ADC2_POWER_STATE 0x5014 71*4882a593Smuzhiyun #define CX2072X_ADC2_CONVERTER_STREAM_CHANNEL 0x5018 72*4882a593Smuzhiyun #define CX2072X_PORTA_CONNECTION_SELECT_CTRL 0x5804 73*4882a593Smuzhiyun #define CX2072X_PORTA_POWER_STATE 0x5814 74*4882a593Smuzhiyun #define CX2072X_PORTA_PIN_CTRL 0x581c 75*4882a593Smuzhiyun #define CX2072X_PORTA_UNSOLICITED_RESPONSE 0x5820 76*4882a593Smuzhiyun #define CX2072X_PORTA_PIN_SENSE 0x5824 77*4882a593Smuzhiyun #define CX2072X_PORTA_EAPD_BTL 0x5830 78*4882a593Smuzhiyun #define CX2072X_PORTB_POWER_STATE 0x6014 79*4882a593Smuzhiyun #define CX2072X_PORTB_PIN_CTRL 0x601c 80*4882a593Smuzhiyun #define CX2072X_PORTB_UNSOLICITED_RESPONSE 0x6020 81*4882a593Smuzhiyun #define CX2072X_PORTB_PIN_SENSE 0x6024 82*4882a593Smuzhiyun #define CX2072X_PORTB_EAPD_BTL 0x6030 83*4882a593Smuzhiyun #define CX2072X_PORTB_GAIN_RIGHT 0x6180 84*4882a593Smuzhiyun #define CX2072X_PORTB_GAIN_LEFT 0x61a0 85*4882a593Smuzhiyun #define CX2072X_PORTC_POWER_STATE 0x6814 86*4882a593Smuzhiyun #define CX2072X_PORTC_PIN_CTRL 0x681c 87*4882a593Smuzhiyun #define CX2072X_PORTC_GAIN_RIGHT 0x6980 88*4882a593Smuzhiyun #define CX2072X_PORTC_GAIN_LEFT 0x69a0 89*4882a593Smuzhiyun #define CX2072X_PORTD_POWER_STATE 0x6414 90*4882a593Smuzhiyun #define CX2072X_PORTD_PIN_CTRL 0x641c 91*4882a593Smuzhiyun #define CX2072X_PORTD_UNSOLICITED_RESPONSE 0x6420 92*4882a593Smuzhiyun #define CX2072X_PORTD_PIN_SENSE 0x6424 93*4882a593Smuzhiyun #define CX2072X_PORTD_GAIN_RIGHT 0x6580 94*4882a593Smuzhiyun #define CX2072X_PORTD_GAIN_LEFT 0x65a0 95*4882a593Smuzhiyun #define CX2072X_PORTE_CONNECTION_SELECT_CTRL 0x7404 96*4882a593Smuzhiyun #define CX2072X_PORTE_POWER_STATE 0x7414 97*4882a593Smuzhiyun #define CX2072X_PORTE_PIN_CTRL 0x741c 98*4882a593Smuzhiyun #define CX2072X_PORTE_UNSOLICITED_RESPONSE 0x7420 99*4882a593Smuzhiyun #define CX2072X_PORTE_PIN_SENSE 0x7424 100*4882a593Smuzhiyun #define CX2072X_PORTE_EAPD_BTL 0x7430 101*4882a593Smuzhiyun #define CX2072X_PORTE_GAIN_RIGHT 0x7580 102*4882a593Smuzhiyun #define CX2072X_PORTE_GAIN_LEFT 0x75a0 103*4882a593Smuzhiyun #define CX2072X_PORTF_POWER_STATE 0x7814 104*4882a593Smuzhiyun #define CX2072X_PORTF_PIN_CTRL 0x781c 105*4882a593Smuzhiyun #define CX2072X_PORTF_UNSOLICITED_RESPONSE 0x7820 106*4882a593Smuzhiyun #define CX2072X_PORTF_PIN_SENSE 0x7824 107*4882a593Smuzhiyun #define CX2072X_PORTF_GAIN_RIGHT 0x7980 108*4882a593Smuzhiyun #define CX2072X_PORTF_GAIN_LEFT 0x79a0 109*4882a593Smuzhiyun #define CX2072X_PORTG_POWER_STATE 0x5c14 110*4882a593Smuzhiyun #define CX2072X_PORTG_PIN_CTRL 0x5c1c 111*4882a593Smuzhiyun #define CX2072X_PORTG_CONNECTION_SELECT_CTRL 0x5c04 112*4882a593Smuzhiyun #define CX2072X_PORTG_EAPD_BTL 0x5c30 113*4882a593Smuzhiyun #define CX2072X_PORTM_POWER_STATE 0x8814 114*4882a593Smuzhiyun #define CX2072X_PORTM_PIN_CTRL 0x881c 115*4882a593Smuzhiyun #define CX2072X_PORTM_CONNECTION_SELECT_CTRL 0x8804 116*4882a593Smuzhiyun #define CX2072X_PORTM_EAPD_BTL 0x8830 117*4882a593Smuzhiyun #define CX2072X_MIXER_POWER_STATE 0x5414 118*4882a593Smuzhiyun #define CX2072X_MIXER_GAIN_RIGHT_0 0x5580 119*4882a593Smuzhiyun #define CX2072X_MIXER_GAIN_LEFT_0 0x55a0 120*4882a593Smuzhiyun #define CX2072X_MIXER_GAIN_RIGHT_1 0x5584 121*4882a593Smuzhiyun #define CX2072X_MIXER_GAIN_LEFT_1 0x55a4 122*4882a593Smuzhiyun #define CX2072X_EQ_ENABLE_BYPASS 0x6d00 123*4882a593Smuzhiyun #define CX2072X_EQ_B0_COEFF 0x6d02 124*4882a593Smuzhiyun #define CX2072X_EQ_B1_COEFF 0x6d04 125*4882a593Smuzhiyun #define CX2072X_EQ_B2_COEFF 0x6d06 126*4882a593Smuzhiyun #define CX2072X_EQ_A1_COEFF 0x6d08 127*4882a593Smuzhiyun #define CX2072X_EQ_A2_COEFF 0x6d0a 128*4882a593Smuzhiyun #define CX2072X_EQ_G_COEFF 0x6d0c 129*4882a593Smuzhiyun #define CX2072X_EQ_BAND 0x6d0d 130*4882a593Smuzhiyun #define CX2072X_SPKR_DRC_ENABLE_STEP 0x6d10 131*4882a593Smuzhiyun #define CX2072X_SPKR_DRC_CONTROL 0x6d14 132*4882a593Smuzhiyun #define CX2072X_SPKR_DRC_TEST 0x6d18 133*4882a593Smuzhiyun #define CX2072X_DIGITAL_BIOS_TEST0 0x6d80 134*4882a593Smuzhiyun #define CX2072X_DIGITAL_BIOS_TEST2 0x6d84 135*4882a593Smuzhiyun #define CX2072X_I2SPCM_CONTROL1 0x6e00 136*4882a593Smuzhiyun #define CX2072X_I2SPCM_CONTROL2 0x6e04 137*4882a593Smuzhiyun #define CX2072X_I2SPCM_CONTROL3 0x6e08 138*4882a593Smuzhiyun #define CX2072X_I2SPCM_CONTROL4 0x6e0c 139*4882a593Smuzhiyun #define CX2072X_I2SPCM_CONTROL5 0x6e10 140*4882a593Smuzhiyun #define CX2072X_I2SPCM_CONTROL6 0x6e18 141*4882a593Smuzhiyun #define CX2072X_UM_INTERRUPT_CRTL_E 0x6e14 142*4882a593Smuzhiyun #define CX2072X_CODEC_TEST2 0x7108 143*4882a593Smuzhiyun #define CX2072X_CODEC_TEST9 0x7124 144*4882a593Smuzhiyun #define CX2072X_CODEC_TESTXX 0x7290 145*4882a593Smuzhiyun #define CX2072X_CODEC_TEST20 0x7310 146*4882a593Smuzhiyun #define CX2072X_CODEC_TEST24 0x731c 147*4882a593Smuzhiyun #define CX2072X_CODEC_TEST26 0x7328 148*4882a593Smuzhiyun #define CX2072X_ANALOG_TEST3 0x718c 149*4882a593Smuzhiyun #define CX2072X_ANALOG_TEST4 0x7190 150*4882a593Smuzhiyun #define CX2072X_ANALOG_TEST5 0x7194 151*4882a593Smuzhiyun #define CX2072X_ANALOG_TEST6 0x7198 152*4882a593Smuzhiyun #define CX2072X_ANALOG_TEST7 0x719c 153*4882a593Smuzhiyun #define CX2072X_ANALOG_TEST8 0x71a0 154*4882a593Smuzhiyun #define CX2072X_ANALOG_TEST9 0x71a4 155*4882a593Smuzhiyun #define CX2072X_ANALOG_TEST10 0x71a8 156*4882a593Smuzhiyun #define CX2072X_ANALOG_TEST11 0x71ac 157*4882a593Smuzhiyun #define CX2072X_ANALOG_TEST12 0x71b0 158*4882a593Smuzhiyun #define CX2072X_ANALOG_TEST13 0x71b4 159*4882a593Smuzhiyun #define CX2072X_DIGITAL_TEST0 0x7200 160*4882a593Smuzhiyun #define CX2072X_DIGITAL_TEST1 0x7204 161*4882a593Smuzhiyun #define CX2072X_DIGITAL_TEST11 0x722c 162*4882a593Smuzhiyun #define CX2072X_DIGITAL_TEST12 0x7230 163*4882a593Smuzhiyun #define CX2072X_DIGITAL_TEST15 0x723c 164*4882a593Smuzhiyun #define CX2072X_DIGITAL_TEST16 0x7080 165*4882a593Smuzhiyun #define CX2072X_DIGITAL_TEST17 0x7084 166*4882a593Smuzhiyun #define CX2072X_DIGITAL_TEST18 0x7088 167*4882a593Smuzhiyun #define CX2072X_DIGITAL_TEST19 0x708c 168*4882a593Smuzhiyun #define CX2072X_DIGITAL_TEST20 0x7090 169*4882a593Smuzhiyun 170*4882a593Smuzhiyun /* not used in the current code, for future extensions (if any) */ 171*4882a593Smuzhiyun #define CX2072X_MAX_EQ_BAND 7 172*4882a593Smuzhiyun #define CX2072X_MAX_EQ_COEFF 11 173*4882a593Smuzhiyun #define CX2072X_MAX_DRC_REGS 9 174*4882a593Smuzhiyun #define CX2072X_MIC_EQ_COEFF 10 175*4882a593Smuzhiyun #define CX2072X_PLBK_EQ_BAND_NUM 7 176*4882a593Smuzhiyun #define CX2072X_PLBK_EQ_COEF_LEN 11 177*4882a593Smuzhiyun #define CX2072X_PLBK_DRC_PARM_LEN 9 178*4882a593Smuzhiyun #define CX2072X_CLASSD_AMP_LEN 6 179*4882a593Smuzhiyun 180*4882a593Smuzhiyun /* DAI interfae type */ 181*4882a593Smuzhiyun #define CX2072X_DAI_HIFI 1 182*4882a593Smuzhiyun #define CX2072X_DAI_DSP 2 183*4882a593Smuzhiyun #define CX2072X_DAI_DSP_PWM 3 /* 4 ch, including mic and AEC */ 184*4882a593Smuzhiyun 185*4882a593Smuzhiyun enum cx2072x_reg_sample_size { 186*4882a593Smuzhiyun CX2072X_SAMPLE_SIZE_8_BITS = 0, 187*4882a593Smuzhiyun CX2072X_SAMPLE_SIZE_16_BITS = 1, 188*4882a593Smuzhiyun CX2072X_SAMPLE_SIZE_24_BITS = 2, 189*4882a593Smuzhiyun CX2072X_SAMPLE_SIZE_RESERVED = 3, 190*4882a593Smuzhiyun }; 191*4882a593Smuzhiyun 192*4882a593Smuzhiyun union cx2072x_reg_i2spcm_ctrl_reg1 { 193*4882a593Smuzhiyun struct { 194*4882a593Smuzhiyun u32 rx_data_one_line:1; 195*4882a593Smuzhiyun u32 rx_ws_pol:1; 196*4882a593Smuzhiyun u32 rx_ws_wid:7; 197*4882a593Smuzhiyun u32 rx_frm_len:5; 198*4882a593Smuzhiyun u32 rx_sa_size:2; 199*4882a593Smuzhiyun u32 tx_data_one_line:1; 200*4882a593Smuzhiyun u32 tx_ws_pol:1; 201*4882a593Smuzhiyun u32 tx_ws_wid:7; 202*4882a593Smuzhiyun u32 tx_frm_len:5; 203*4882a593Smuzhiyun u32 tx_sa_size:2; 204*4882a593Smuzhiyun } r; 205*4882a593Smuzhiyun u32 ulval; 206*4882a593Smuzhiyun }; 207*4882a593Smuzhiyun 208*4882a593Smuzhiyun union cx2072x_reg_i2spcm_ctrl_reg2 { 209*4882a593Smuzhiyun struct { 210*4882a593Smuzhiyun u32 tx_en_ch1:1; 211*4882a593Smuzhiyun u32 tx_en_ch2:1; 212*4882a593Smuzhiyun u32 tx_en_ch3:1; 213*4882a593Smuzhiyun u32 tx_en_ch4:1; 214*4882a593Smuzhiyun u32 tx_en_ch5:1; 215*4882a593Smuzhiyun u32 tx_en_ch6:1; 216*4882a593Smuzhiyun u32 tx_slot_1:5; 217*4882a593Smuzhiyun u32 tx_slot_2:5; 218*4882a593Smuzhiyun u32 tx_slot_3:5; 219*4882a593Smuzhiyun u32 tx_slot_4:5; 220*4882a593Smuzhiyun u32 res:1; 221*4882a593Smuzhiyun u32 tx_data_neg_bclk:1; 222*4882a593Smuzhiyun u32 tx_master:1; 223*4882a593Smuzhiyun u32 tx_tri_n:1; 224*4882a593Smuzhiyun u32 tx_endian_sel:1; 225*4882a593Smuzhiyun u32 tx_dstart_dly:1; 226*4882a593Smuzhiyun } r; 227*4882a593Smuzhiyun u32 ulval; 228*4882a593Smuzhiyun }; 229*4882a593Smuzhiyun 230*4882a593Smuzhiyun union cx2072x_reg_i2spcm_ctrl_reg3 { 231*4882a593Smuzhiyun struct { 232*4882a593Smuzhiyun u32 rx_en_ch1:1; 233*4882a593Smuzhiyun u32 rx_en_ch2:1; 234*4882a593Smuzhiyun u32 rx_en_ch3:1; 235*4882a593Smuzhiyun u32 rx_en_ch4:1; 236*4882a593Smuzhiyun u32 rx_en_ch5:1; 237*4882a593Smuzhiyun u32 rx_en_ch6:1; 238*4882a593Smuzhiyun u32 rx_slot_1:5; 239*4882a593Smuzhiyun u32 rx_slot_2:5; 240*4882a593Smuzhiyun u32 rx_slot_3:5; 241*4882a593Smuzhiyun u32 rx_slot_4:5; 242*4882a593Smuzhiyun u32 res:1; 243*4882a593Smuzhiyun u32 rx_data_neg_bclk:1; 244*4882a593Smuzhiyun u32 rx_master:1; 245*4882a593Smuzhiyun u32 rx_tri_n:1; 246*4882a593Smuzhiyun u32 rx_endian_sel:1; 247*4882a593Smuzhiyun u32 rx_dstart_dly:1; 248*4882a593Smuzhiyun } r; 249*4882a593Smuzhiyun u32 ulval; 250*4882a593Smuzhiyun }; 251*4882a593Smuzhiyun 252*4882a593Smuzhiyun union cx2072x_reg_i2spcm_ctrl_reg4 { 253*4882a593Smuzhiyun struct { 254*4882a593Smuzhiyun u32 rx_mute:1; 255*4882a593Smuzhiyun u32 tx_mute:1; 256*4882a593Smuzhiyun u32 reserved:1; 257*4882a593Smuzhiyun u32 dac_34_independent:1; 258*4882a593Smuzhiyun u32 dac_bclk_lrck_share:1; 259*4882a593Smuzhiyun u32 bclk_lrck_share_en:1; 260*4882a593Smuzhiyun u32 reserved2:2; 261*4882a593Smuzhiyun u32 rx_last_dac_ch_en:1; 262*4882a593Smuzhiyun u32 rx_last_dac_ch:3; 263*4882a593Smuzhiyun u32 tx_last_adc_ch_en:1; 264*4882a593Smuzhiyun u32 tx_last_adc_ch:3; 265*4882a593Smuzhiyun u32 rx_slot_5:5; 266*4882a593Smuzhiyun u32 rx_slot_6:5; 267*4882a593Smuzhiyun u32 reserved3:6; 268*4882a593Smuzhiyun } r; 269*4882a593Smuzhiyun u32 ulval; 270*4882a593Smuzhiyun }; 271*4882a593Smuzhiyun 272*4882a593Smuzhiyun union cx2072x_reg_i2spcm_ctrl_reg5 { 273*4882a593Smuzhiyun struct { 274*4882a593Smuzhiyun u32 tx_slot_5:5; 275*4882a593Smuzhiyun u32 reserved:3; 276*4882a593Smuzhiyun u32 tx_slot_6:5; 277*4882a593Smuzhiyun u32 reserved2:3; 278*4882a593Smuzhiyun u32 reserved3:8; 279*4882a593Smuzhiyun u32 i2s_pcm_clk_div:7; 280*4882a593Smuzhiyun u32 i2s_pcm_clk_div_chan_en:1; 281*4882a593Smuzhiyun } r; 282*4882a593Smuzhiyun u32 ulval; 283*4882a593Smuzhiyun }; 284*4882a593Smuzhiyun 285*4882a593Smuzhiyun union cx2072x_reg_i2spcm_ctrl_reg6 { 286*4882a593Smuzhiyun struct { 287*4882a593Smuzhiyun u32 reserved:5; 288*4882a593Smuzhiyun u32 rx_pause_cycles:3; 289*4882a593Smuzhiyun u32 rx_pause_start_pos:8; 290*4882a593Smuzhiyun u32 reserved2:5; 291*4882a593Smuzhiyun u32 tx_pause_cycles:3; 292*4882a593Smuzhiyun u32 tx_pause_start_pos:8; 293*4882a593Smuzhiyun } r; 294*4882a593Smuzhiyun u32 ulval; 295*4882a593Smuzhiyun }; 296*4882a593Smuzhiyun 297*4882a593Smuzhiyun union cx2072x_reg_digital_bios_test2 { 298*4882a593Smuzhiyun struct { 299*4882a593Smuzhiyun u32 pull_down_eapd:2; 300*4882a593Smuzhiyun u32 input_en_eapd_pad:1; 301*4882a593Smuzhiyun u32 push_pull_mode:1; 302*4882a593Smuzhiyun u32 eapd_pad_output_driver:2; 303*4882a593Smuzhiyun u32 pll_source:1; 304*4882a593Smuzhiyun u32 i2s_bclk_en:1; 305*4882a593Smuzhiyun u32 i2s_bclk_invert:1; 306*4882a593Smuzhiyun u32 pll_ref_clock:1; 307*4882a593Smuzhiyun u32 class_d_shield_clk:1; 308*4882a593Smuzhiyun u32 audio_pll_bypass_mode:1; 309*4882a593Smuzhiyun u32 reserved:4; 310*4882a593Smuzhiyun } r; 311*4882a593Smuzhiyun u32 ulval; 312*4882a593Smuzhiyun }; 313*4882a593Smuzhiyun 314*4882a593Smuzhiyun #endif /* __CX2072X_H__ */ 315