All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
To: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>, broonie@kernel.org
Cc: robh@kernel.org, alsa-devel@alsa-project.org,
	lgirdwood@gmail.com, linux-kernel@vger.kernel.org,
	devicetree@vger.kernel.org
Subject: Re: [PATCH v3 2/7] ASoC: codecs: wcd-clsh: add new version support
Date: Fri, 19 Mar 2021 10:23:20 -0500	[thread overview]
Message-ID: <26038ba1-e8f6-08e3-bee5-673d69d7decd@linux.intel.com> (raw)
In-Reply-To: <20210319092919.21218-3-srinivas.kandagatla@linaro.org>


> +static void wcd_clsh_v3_set_hph_mode(struct snd_soc_component *component,
> +				  int mode)
> +{
> +	u8 val = 0;

initialization not needed.

> +
> +	switch (mode) {
> +	case CLS_H_NORMAL:
> +		val = 0x00;
> +		break;
> +	case CLS_AB:
> +	case CLS_H_ULP:
> +		val = 0x0C;
> +		break;
> +	case CLS_AB_HIFI:
> +	case CLS_H_HIFI:
> +		val = 0x08;
> +		break;
> +	case CLS_H_LP:
> +	case CLS_H_LOHIFI:
> +	case CLS_AB_LP:
> +	case CLS_AB_LOHIFI:
> +		val = 0x04;
> +		break;
> +	default:
> +		dev_err(component->dev, "%s:Invalid mode %d\n", __func__, mode);
> +		return;
> +	};
> +
> +	snd_soc_component_update_bits(component, WCD9XXX_ANA_HPH, 0x0C, val);
> +}
> +
> +

extra line

> +void wcd_clsh_set_hph_mode(struct wcd_clsh_ctrl *ctrl, int mode)
> +{
> +	struct snd_soc_component *comp = ctrl->comp;
> +
> +	if (ctrl->codec_version >= WCD937X)
> +		wcd_clsh_v3_set_hph_mode(comp, mode);
> +	else
> +		wcd_clsh_v2_set_hph_mode(comp, mode);
> +
> +}
> +
>   static void wcd_clsh_set_flyback_current(struct snd_soc_component *comp,
>   					 int mode)
>   {
> @@ -289,6 +388,130 @@ static void wcd_clsh_set_buck_regulator_mode(struct snd_soc_component *comp,
>   					WCD9XXX_A_ANA_RX_REGULATOR_MODE_CLS_H);
>   }
>   
> +static void wcd_clsh_v3_set_buck_regulator_mode(struct snd_soc_component *component,
> +						int mode)
> +{
> +	snd_soc_component_update_bits(component, WCD9XXX_ANA_RX_SUPPLIES,
> +			    0x02, 0x00);
> +}
> +
> +static inline void wcd_clsh_v3_set_flyback_mode(struct snd_soc_component *component,
> +						int mode)
> +{
> +	if (mode == CLS_H_HIFI || mode == CLS_H_LOHIFI ||
> +	    mode == CLS_AB_HIFI || mode == CLS_AB_LOHIFI) {
> +		snd_soc_component_update_bits(component,
> +				WCD9XXX_ANA_RX_SUPPLIES,
> +				0x04, 0x04);
> +		snd_soc_component_update_bits(component,
> +				WCD9XXX_FLYBACK_VNEG_CTRL_4,
> +				0xF0, 0x80);
> +	} else {
> +		snd_soc_component_update_bits(component,
> +				WCD9XXX_ANA_RX_SUPPLIES,
> +				0x04, 0x00); /* set to Default */
> +		snd_soc_component_update_bits(component,
> +				WCD9XXX_FLYBACK_VNEG_CTRL_4,
> +				0xF0, 0x70);
> +	}
> +}
> +
> +static inline void wcd_clsh_v3_force_iq_ctl(struct snd_soc_component *component,
> +					 int mode, bool enable)
> +{
> +	if (enable) {
> +		snd_soc_component_update_bits(component,
> +				WCD9XXX_FLYBACK_VNEGDAC_CTRL_2,
> +				0xE0, 0xA0);
> +		/* 100usec delay is needed as per HW requirement */
> +		usleep_range(100, 110);
> +		snd_soc_component_update_bits(component,
> +				WCD9XXX_CLASSH_MODE_3,
> +				0x02, 0x02);
> +		snd_soc_component_update_bits(component,
> +				WCD9XXX_CLASSH_MODE_2,
> +				0xFF, 0x1C);
> +		if (mode == CLS_H_LOHIFI || mode == CLS_AB_LOHIFI) {
> +			snd_soc_component_update_bits(component,
> +					WCD9XXX_HPH_NEW_INT_PA_MISC2,
> +					0x20, 0x20);
> +			snd_soc_component_update_bits(component,
> +					WCD9XXX_RX_BIAS_HPH_LOWPOWER,
> +					0xF0, 0xC0);
> +			snd_soc_component_update_bits(component,
> +					WCD9XXX_HPH_PA_CTL1,
> +					0x0E, 0x02);
> +		}
> +	} else {
> +		snd_soc_component_update_bits(component,
> +				WCD9XXX_HPH_NEW_INT_PA_MISC2,
> +				0x20, 0x00);
> +		snd_soc_component_update_bits(component,
> +				WCD9XXX_RX_BIAS_HPH_LOWPOWER,
> +				0xF0, 0x80);
> +		snd_soc_component_update_bits(component,
> +				WCD9XXX_HPH_PA_CTL1,
> +				0x0E, 0x06);
> +	}
> +}

do you need the inline for the two functions above?



WARNING: multiple messages have this Message-ID (diff)
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
To: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>, broonie@kernel.org
Cc: robh@kernel.org, alsa-devel@alsa-project.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	lgirdwood@gmail.com
Subject: Re: [PATCH v3 2/7] ASoC: codecs: wcd-clsh: add new version support
Date: Fri, 19 Mar 2021 10:23:20 -0500	[thread overview]
Message-ID: <26038ba1-e8f6-08e3-bee5-673d69d7decd@linux.intel.com> (raw)
In-Reply-To: <20210319092919.21218-3-srinivas.kandagatla@linaro.org>


> +static void wcd_clsh_v3_set_hph_mode(struct snd_soc_component *component,
> +				  int mode)
> +{
> +	u8 val = 0;

initialization not needed.

> +
> +	switch (mode) {
> +	case CLS_H_NORMAL:
> +		val = 0x00;
> +		break;
> +	case CLS_AB:
> +	case CLS_H_ULP:
> +		val = 0x0C;
> +		break;
> +	case CLS_AB_HIFI:
> +	case CLS_H_HIFI:
> +		val = 0x08;
> +		break;
> +	case CLS_H_LP:
> +	case CLS_H_LOHIFI:
> +	case CLS_AB_LP:
> +	case CLS_AB_LOHIFI:
> +		val = 0x04;
> +		break;
> +	default:
> +		dev_err(component->dev, "%s:Invalid mode %d\n", __func__, mode);
> +		return;
> +	};
> +
> +	snd_soc_component_update_bits(component, WCD9XXX_ANA_HPH, 0x0C, val);
> +}
> +
> +

extra line

> +void wcd_clsh_set_hph_mode(struct wcd_clsh_ctrl *ctrl, int mode)
> +{
> +	struct snd_soc_component *comp = ctrl->comp;
> +
> +	if (ctrl->codec_version >= WCD937X)
> +		wcd_clsh_v3_set_hph_mode(comp, mode);
> +	else
> +		wcd_clsh_v2_set_hph_mode(comp, mode);
> +
> +}
> +
>   static void wcd_clsh_set_flyback_current(struct snd_soc_component *comp,
>   					 int mode)
>   {
> @@ -289,6 +388,130 @@ static void wcd_clsh_set_buck_regulator_mode(struct snd_soc_component *comp,
>   					WCD9XXX_A_ANA_RX_REGULATOR_MODE_CLS_H);
>   }
>   
> +static void wcd_clsh_v3_set_buck_regulator_mode(struct snd_soc_component *component,
> +						int mode)
> +{
> +	snd_soc_component_update_bits(component, WCD9XXX_ANA_RX_SUPPLIES,
> +			    0x02, 0x00);
> +}
> +
> +static inline void wcd_clsh_v3_set_flyback_mode(struct snd_soc_component *component,
> +						int mode)
> +{
> +	if (mode == CLS_H_HIFI || mode == CLS_H_LOHIFI ||
> +	    mode == CLS_AB_HIFI || mode == CLS_AB_LOHIFI) {
> +		snd_soc_component_update_bits(component,
> +				WCD9XXX_ANA_RX_SUPPLIES,
> +				0x04, 0x04);
> +		snd_soc_component_update_bits(component,
> +				WCD9XXX_FLYBACK_VNEG_CTRL_4,
> +				0xF0, 0x80);
> +	} else {
> +		snd_soc_component_update_bits(component,
> +				WCD9XXX_ANA_RX_SUPPLIES,
> +				0x04, 0x00); /* set to Default */
> +		snd_soc_component_update_bits(component,
> +				WCD9XXX_FLYBACK_VNEG_CTRL_4,
> +				0xF0, 0x70);
> +	}
> +}
> +
> +static inline void wcd_clsh_v3_force_iq_ctl(struct snd_soc_component *component,
> +					 int mode, bool enable)
> +{
> +	if (enable) {
> +		snd_soc_component_update_bits(component,
> +				WCD9XXX_FLYBACK_VNEGDAC_CTRL_2,
> +				0xE0, 0xA0);
> +		/* 100usec delay is needed as per HW requirement */
> +		usleep_range(100, 110);
> +		snd_soc_component_update_bits(component,
> +				WCD9XXX_CLASSH_MODE_3,
> +				0x02, 0x02);
> +		snd_soc_component_update_bits(component,
> +				WCD9XXX_CLASSH_MODE_2,
> +				0xFF, 0x1C);
> +		if (mode == CLS_H_LOHIFI || mode == CLS_AB_LOHIFI) {
> +			snd_soc_component_update_bits(component,
> +					WCD9XXX_HPH_NEW_INT_PA_MISC2,
> +					0x20, 0x20);
> +			snd_soc_component_update_bits(component,
> +					WCD9XXX_RX_BIAS_HPH_LOWPOWER,
> +					0xF0, 0xC0);
> +			snd_soc_component_update_bits(component,
> +					WCD9XXX_HPH_PA_CTL1,
> +					0x0E, 0x02);
> +		}
> +	} else {
> +		snd_soc_component_update_bits(component,
> +				WCD9XXX_HPH_NEW_INT_PA_MISC2,
> +				0x20, 0x00);
> +		snd_soc_component_update_bits(component,
> +				WCD9XXX_RX_BIAS_HPH_LOWPOWER,
> +				0xF0, 0x80);
> +		snd_soc_component_update_bits(component,
> +				WCD9XXX_HPH_PA_CTL1,
> +				0x0E, 0x06);
> +	}
> +}

do you need the inline for the two functions above?



  reply	other threads:[~2021-03-19 16:59 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-19  9:29 [PATCH v3 0/7] ASoC: codecs: add wcd938x support Srinivas Kandagatla
2021-03-19  9:29 ` Srinivas Kandagatla
2021-03-19  9:29 ` [PATCH v3 1/7] ASoC: dt-bindings: wcd938x: add bindings for wcd938x Srinivas Kandagatla
2021-03-19  9:29   ` Srinivas Kandagatla
2021-03-26  1:52   ` Rob Herring
2021-03-26  1:52     ` Rob Herring
2021-03-19  9:29 ` [PATCH v3 2/7] ASoC: codecs: wcd-clsh: add new version support Srinivas Kandagatla
2021-03-19  9:29   ` Srinivas Kandagatla
2021-03-19 15:23   ` Pierre-Louis Bossart [this message]
2021-03-19 15:23     ` Pierre-Louis Bossart
2021-03-22 10:26     ` Srinivas Kandagatla
2021-03-22 10:26       ` Srinivas Kandagatla
2021-03-19  9:29 ` [PATCH v3 3/7] ASoC: codecs: wcd938x: add basic driver Srinivas Kandagatla
2021-03-19  9:29   ` Srinivas Kandagatla
2021-03-19 15:59   ` Pierre-Louis Bossart
2021-03-19 15:59     ` Pierre-Louis Bossart
2021-03-22 10:27     ` Srinivas Kandagatla
2021-03-22 10:27       ` Srinivas Kandagatla
2021-03-19  9:29 ` [PATCH v3 4/7] ASoC: codecs: wcd938x: add basic controls Srinivas Kandagatla
2021-03-19  9:29   ` Srinivas Kandagatla
2021-03-19 16:03   ` Pierre-Louis Bossart
2021-03-19 16:03     ` Pierre-Louis Bossart
2021-03-19  9:29 ` [PATCH v3 5/7] ASoC: codecs: wcd938x: add playback dapm widgets Srinivas Kandagatla
2021-03-19  9:29   ` Srinivas Kandagatla
2021-03-19  9:29 ` [PATCH v3 6/7] ASoC: codecs: wcd938x: add capture " Srinivas Kandagatla
2021-03-19  9:29   ` Srinivas Kandagatla
2021-03-19  9:29 ` [PATCH v3 7/7] ASoC: codecs: wcd938x: add audio routing Srinivas Kandagatla
2021-03-19  9:29   ` Srinivas Kandagatla
2021-03-19 16:06   ` Pierre-Louis Bossart
2021-03-19 16:06     ` Pierre-Louis Bossart
2021-03-19 16:09 ` [PATCH v3 0/7] ASoC: codecs: add wcd938x support Pierre-Louis Bossart
2021-03-19 16:09   ` Pierre-Louis Bossart
2021-03-22 10:27   ` Srinivas Kandagatla
2021-03-22 10:27     ` Srinivas Kandagatla

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=26038ba1-e8f6-08e3-bee5-673d69d7decd@linux.intel.com \
    --to=pierre-louis.bossart@linux.intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=robh@kernel.org \
    --cc=srinivas.kandagatla@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.