Loading include/linux/mfd/wcd9xxx/wcd9xxx_registers.h +6 −0 Original line number Original line Diff line number Diff line Loading @@ -286,6 +286,8 @@ #define WCD9XXX_A_RX_HPH_R_GAIN__POR (0x00) #define WCD9XXX_A_RX_HPH_R_GAIN__POR (0x00) #define WCD9XXX_A_RX_HPH_CHOP_CTL (0x1A5) #define WCD9XXX_A_RX_HPH_CHOP_CTL (0x1A5) #define WCD9XXX_A_RX_HPH_CHOP_CTL__POR (0xB4) #define WCD9XXX_A_RX_HPH_CHOP_CTL__POR (0xB4) #define WCD9XXX_A_RX_HPH_BIAS_PA (0x1A6) #define WCD9XXX_A_RX_HPH_BIAS_PA__POR (0x7A) #define WCD9XXX_A_RX_HPH_L_TEST (0x1AF) #define WCD9XXX_A_RX_HPH_L_TEST (0x1AF) #define WCD9XXX_A_RX_HPH_L_TEST__POR (0x00) #define WCD9XXX_A_RX_HPH_L_TEST__POR (0x00) #define WCD9XXX_A_RX_HPH_R_TEST (0x1B5) #define WCD9XXX_A_RX_HPH_R_TEST (0x1B5) Loading @@ -298,6 +300,10 @@ #define WCD9XXX_A_RX_HPH_BIAS_WG_OCP__POR (0x2A) #define WCD9XXX_A_RX_HPH_BIAS_WG_OCP__POR (0x2A) #define WCD9XXX_A_RX_HPH_CNP_WG_CTL (0x1AC) #define WCD9XXX_A_RX_HPH_CNP_WG_CTL (0x1AC) #define WCD9XXX_A_RX_HPH_CNP_WG_CTL__POR (0xDE) #define WCD9XXX_A_RX_HPH_CNP_WG_CTL__POR (0xDE) #define WCD9XXX_A_RX_HPH_L_PA_CTL (0x1B0) #define WCD9XXX_A_RX_HPH_L_PA_CTL__POR (0x42) #define WCD9XXX_A_RX_HPH_R_PA_CTL (0x1B6) #define WCD9XXX_A_RX_HPH_R_PA_CTL__POR (0x42) #define WCD9XXX_A_CDC_CONN_RX2_B1_CTL (0x383) #define WCD9XXX_A_CDC_CONN_RX2_B1_CTL (0x383) #define WCD9XXX_A_CDC_CONN_RX2_B1_CTL__POR (0x00) #define WCD9XXX_A_CDC_CONN_RX2_B1_CTL__POR (0x00) #define WCD9XXX_A_CDC_PA_RAMP_B1_CTL (0x361) #define WCD9XXX_A_CDC_PA_RAMP_B1_CTL (0x361) Loading sound/soc/codecs/wcd9xxx-common.c +11 −0 Original line number Original line Diff line number Diff line Loading @@ -554,10 +554,15 @@ void wcd9xxx_enable_high_perf_mode(struct snd_soc_codec *codec, if (req_type == WCD9XXX_CLSAB_REQ_ENABLE) { if (req_type == WCD9XXX_CLSAB_REQ_ENABLE) { clsh_d->ncp_users[NCP_FCLK_LEVEL_8]++; clsh_d->ncp_users[NCP_FCLK_LEVEL_8]++; snd_soc_write(codec, WCD9XXX_A_RX_HPH_BIAS_PA, WCD9XXX_A_RX_HPH_BIAS_PA__POR); snd_soc_write(codec, WCD9XXX_A_RX_HPH_L_PA_CTL, 0x48); snd_soc_write(codec, WCD9XXX_A_RX_HPH_R_PA_CTL, 0x48); snd_soc_update_bits(codec, WCD9XXX_A_RX_HPH_CHOP_CTL, snd_soc_update_bits(codec, WCD9XXX_A_RX_HPH_CHOP_CTL, 0x20, 0x00); 0x20, 0x00); wcd9xxx_chargepump_request(codec, true); wcd9xxx_chargepump_request(codec, true); wcd9xxx_enable_anc_delay(codec, true); wcd9xxx_enable_anc_delay(codec, true); wcd9xxx_enable_buck(codec, clsh_d, false); if (clsh_d->ncp_users[NCP_FCLK_LEVEL_8] > 0) if (clsh_d->ncp_users[NCP_FCLK_LEVEL_8] > 0) snd_soc_update_bits(codec, WCD9XXX_A_NCP_STATIC, snd_soc_update_bits(codec, WCD9XXX_A_NCP_STATIC, 0x0F, 0x08); 0x0F, 0x08); Loading @@ -569,6 +574,12 @@ void wcd9xxx_enable_high_perf_mode(struct snd_soc_codec *codec, } else { } else { snd_soc_update_bits(codec, WCD9XXX_A_RX_HPH_CHOP_CTL, snd_soc_update_bits(codec, WCD9XXX_A_RX_HPH_CHOP_CTL, 0x20, 0x20); 0x20, 0x20); snd_soc_write(codec, WCD9XXX_A_RX_HPH_L_PA_CTL, WCD9XXX_A_RX_HPH_L_PA_CTL__POR); snd_soc_write(codec, WCD9XXX_A_RX_HPH_R_PA_CTL, WCD9XXX_A_RX_HPH_R_PA_CTL__POR); snd_soc_write(codec, WCD9XXX_A_RX_HPH_BIAS_PA, 0x55); wcd9xxx_enable_buck(codec, clsh_d, true); wcd9xxx_chargepump_request(codec, false); wcd9xxx_chargepump_request(codec, false); wcd9xxx_enable_anc_delay(codec, false); wcd9xxx_enable_anc_delay(codec, false); clsh_d->ncp_users[NCP_FCLK_LEVEL_8]--; clsh_d->ncp_users[NCP_FCLK_LEVEL_8]--; Loading Loading
include/linux/mfd/wcd9xxx/wcd9xxx_registers.h +6 −0 Original line number Original line Diff line number Diff line Loading @@ -286,6 +286,8 @@ #define WCD9XXX_A_RX_HPH_R_GAIN__POR (0x00) #define WCD9XXX_A_RX_HPH_R_GAIN__POR (0x00) #define WCD9XXX_A_RX_HPH_CHOP_CTL (0x1A5) #define WCD9XXX_A_RX_HPH_CHOP_CTL (0x1A5) #define WCD9XXX_A_RX_HPH_CHOP_CTL__POR (0xB4) #define WCD9XXX_A_RX_HPH_CHOP_CTL__POR (0xB4) #define WCD9XXX_A_RX_HPH_BIAS_PA (0x1A6) #define WCD9XXX_A_RX_HPH_BIAS_PA__POR (0x7A) #define WCD9XXX_A_RX_HPH_L_TEST (0x1AF) #define WCD9XXX_A_RX_HPH_L_TEST (0x1AF) #define WCD9XXX_A_RX_HPH_L_TEST__POR (0x00) #define WCD9XXX_A_RX_HPH_L_TEST__POR (0x00) #define WCD9XXX_A_RX_HPH_R_TEST (0x1B5) #define WCD9XXX_A_RX_HPH_R_TEST (0x1B5) Loading @@ -298,6 +300,10 @@ #define WCD9XXX_A_RX_HPH_BIAS_WG_OCP__POR (0x2A) #define WCD9XXX_A_RX_HPH_BIAS_WG_OCP__POR (0x2A) #define WCD9XXX_A_RX_HPH_CNP_WG_CTL (0x1AC) #define WCD9XXX_A_RX_HPH_CNP_WG_CTL (0x1AC) #define WCD9XXX_A_RX_HPH_CNP_WG_CTL__POR (0xDE) #define WCD9XXX_A_RX_HPH_CNP_WG_CTL__POR (0xDE) #define WCD9XXX_A_RX_HPH_L_PA_CTL (0x1B0) #define WCD9XXX_A_RX_HPH_L_PA_CTL__POR (0x42) #define WCD9XXX_A_RX_HPH_R_PA_CTL (0x1B6) #define WCD9XXX_A_RX_HPH_R_PA_CTL__POR (0x42) #define WCD9XXX_A_CDC_CONN_RX2_B1_CTL (0x383) #define WCD9XXX_A_CDC_CONN_RX2_B1_CTL (0x383) #define WCD9XXX_A_CDC_CONN_RX2_B1_CTL__POR (0x00) #define WCD9XXX_A_CDC_CONN_RX2_B1_CTL__POR (0x00) #define WCD9XXX_A_CDC_PA_RAMP_B1_CTL (0x361) #define WCD9XXX_A_CDC_PA_RAMP_B1_CTL (0x361) Loading
sound/soc/codecs/wcd9xxx-common.c +11 −0 Original line number Original line Diff line number Diff line Loading @@ -554,10 +554,15 @@ void wcd9xxx_enable_high_perf_mode(struct snd_soc_codec *codec, if (req_type == WCD9XXX_CLSAB_REQ_ENABLE) { if (req_type == WCD9XXX_CLSAB_REQ_ENABLE) { clsh_d->ncp_users[NCP_FCLK_LEVEL_8]++; clsh_d->ncp_users[NCP_FCLK_LEVEL_8]++; snd_soc_write(codec, WCD9XXX_A_RX_HPH_BIAS_PA, WCD9XXX_A_RX_HPH_BIAS_PA__POR); snd_soc_write(codec, WCD9XXX_A_RX_HPH_L_PA_CTL, 0x48); snd_soc_write(codec, WCD9XXX_A_RX_HPH_R_PA_CTL, 0x48); snd_soc_update_bits(codec, WCD9XXX_A_RX_HPH_CHOP_CTL, snd_soc_update_bits(codec, WCD9XXX_A_RX_HPH_CHOP_CTL, 0x20, 0x00); 0x20, 0x00); wcd9xxx_chargepump_request(codec, true); wcd9xxx_chargepump_request(codec, true); wcd9xxx_enable_anc_delay(codec, true); wcd9xxx_enable_anc_delay(codec, true); wcd9xxx_enable_buck(codec, clsh_d, false); if (clsh_d->ncp_users[NCP_FCLK_LEVEL_8] > 0) if (clsh_d->ncp_users[NCP_FCLK_LEVEL_8] > 0) snd_soc_update_bits(codec, WCD9XXX_A_NCP_STATIC, snd_soc_update_bits(codec, WCD9XXX_A_NCP_STATIC, 0x0F, 0x08); 0x0F, 0x08); Loading @@ -569,6 +574,12 @@ void wcd9xxx_enable_high_perf_mode(struct snd_soc_codec *codec, } else { } else { snd_soc_update_bits(codec, WCD9XXX_A_RX_HPH_CHOP_CTL, snd_soc_update_bits(codec, WCD9XXX_A_RX_HPH_CHOP_CTL, 0x20, 0x20); 0x20, 0x20); snd_soc_write(codec, WCD9XXX_A_RX_HPH_L_PA_CTL, WCD9XXX_A_RX_HPH_L_PA_CTL__POR); snd_soc_write(codec, WCD9XXX_A_RX_HPH_R_PA_CTL, WCD9XXX_A_RX_HPH_R_PA_CTL__POR); snd_soc_write(codec, WCD9XXX_A_RX_HPH_BIAS_PA, 0x55); wcd9xxx_enable_buck(codec, clsh_d, true); wcd9xxx_chargepump_request(codec, false); wcd9xxx_chargepump_request(codec, false); wcd9xxx_enable_anc_delay(codec, false); wcd9xxx_enable_anc_delay(codec, false); clsh_d->ncp_users[NCP_FCLK_LEVEL_8]--; clsh_d->ncp_users[NCP_FCLK_LEVEL_8]--; Loading