On Tue, 2019-05-21 at 13:36 +0300, Oleksandr Suvorov wrote:
> If VDDA != VDDIO and any of them is greater than 3.1V, charge pump
> source can be assigned automatically.
> 
> Signed-off-by: Oleksandr Suvorov <oleksandr.suvo...@toradex.com>

Reviewed-by: Marcel Ziswiler <marcel.ziswi...@toradex.com>

> ---
> 
>  sound/soc/codecs/sgtl5000.c | 14 +++++++++-----
>  1 file changed, 9 insertions(+), 5 deletions(-)
> 
> diff --git sound/soc/codecs/sgtl5000.c sound/soc/codecs/sgtl5000.c
> index e813a37910af..ee1e4bf61322 100644
> --- sound/soc/codecs/sgtl5000.c
> +++ sound/soc/codecs/sgtl5000.c
> @@ -1174,12 +1174,16 @@ static int sgtl5000_set_power_regs(struct
> snd_soc_component *component)
>                                       SGTL5000_INT_OSC_EN);
>               /* Enable VDDC charge pump */
>               ana_pwr |= SGTL5000_VDDC_CHRGPMP_POWERUP;
> -     } else if (vddio >= 3100 && vdda >= 3100) {
> +     } else {
>               ana_pwr &= ~SGTL5000_VDDC_CHRGPMP_POWERUP;
> -             /* VDDC use VDDIO rail */
> -             lreg_ctrl |= SGTL5000_VDDC_ASSN_OVRD;
> -             lreg_ctrl |= SGTL5000_VDDC_MAN_ASSN_VDDIO <<
> -                         SGTL5000_VDDC_MAN_ASSN_SHIFT;
> +             /* if vddio == vdda the source of charge pump should be
> +              * assigned manually to VDDIO
> +              */
> +             if (vddio == vdda) {
> +                     lreg_ctrl |= SGTL5000_VDDC_ASSN_OVRD;
> +                     lreg_ctrl |= SGTL5000_VDDC_MAN_ASSN_VDDIO <<
> +                                 SGTL5000_VDDC_MAN_ASSN_SHIFT;
> +             }
>       }
>  
>       snd_soc_component_write(component, SGTL5000_CHIP_LINREG_CTRL,
> lreg_ctrl);
> -- 
> 2.20.1

Reply via email to