alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: Hans de Goede <hdegoede@redhat.com>
To: Mark Brown <broonie@kernel.org>, Bard Liao <bardliao@realtek.com>,
	Oder Chiou <oder_chiou@realtek.com>,
	Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Cc: Hans de Goede <hdegoede@redhat.com>,
	alsa-devel@alsa-project.org, Carlo Caione <carlo@endlessm.com>,
	Takashi Iwai <tiwai@suse.com>
Subject: [PATCH v3 04/22] ASoC: rt5651: Allow specifying over-current threshold through a device-property
Date: Sun,  4 Mar 2018 15:35:52 +0100	[thread overview]
Message-ID: <20180304143610.21125-5-hdegoede@redhat.com> (raw)
In-Reply-To: <20180304143610.21125-1-hdegoede@redhat.com>

OVer-Current-Detection (OVCD) for the micbias current is used to detect
if an inserted jack is a headset or headphones (mic shorted to ground).

Some boards may need different values for the OVCD current threshold
because of a resistor on the board in serial with or parallel to the
jack mic contact.

This commit adds support for configuring the OCVD current threshold
through the "realtek,over-current-threshold-microamp" device-property.

Note this commit changes the default value from 600uA to 2000uA,
because testing has shown 600uA to be a poor default.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
Changes in v3:
-Split out the dt-bindings documentation for the new properties into a
 separate patch
-Append "-microamp to the device-property name
-Split out seeting of OCVD scale-factor into a separate patch, keeping
 only OVCD current threshold configuration in this patch
---
 sound/soc/codecs/rt5651.c | 22 +++++++++++++++++++++-
 sound/soc/codecs/rt5651.h |  1 +
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/sound/soc/codecs/rt5651.c b/sound/soc/codecs/rt5651.c
index f80b3da4667f..19f7c89d1e7a 100644
--- a/sound/soc/codecs/rt5651.c
+++ b/sound/soc/codecs/rt5651.c
@@ -1638,7 +1638,7 @@ static int rt5651_set_jack(struct snd_soc_component *component,
 				      RT5651_PWR_CLK12M_MASK |
 				      RT5651_PWR_MB_MASK,
 				      RT5651_MIC1_OVCD_EN |
-				      RT5651_MIC1_OVTH_600UA |
+				      rt5651->ovcd_th |
 				      RT5651_PWR_MB_PU |
 				      RT5651_PWR_CLK12M_PU);
 
@@ -1684,6 +1684,26 @@ static void rt5651_apply_properties(struct snd_soc_component *component)
 	if (device_property_read_u32(component->dev,
 				     "realtek,jack-detect-source", &val) == 0)
 		rt5651->jd_src = val;
+
+	rt5651->ovcd_th = RT5651_MIC1_OVTH_2000UA;
+
+	if (device_property_read_u32(component->dev,
+			"realtek,over-current-threshold-microamp", &val) == 0) {
+		switch (val) {
+		case 600:
+			rt5651->ovcd_th = RT5651_MIC1_OVTH_600UA;
+			break;
+		case 1500:
+			rt5651->ovcd_th = RT5651_MIC1_OVTH_1500UA;
+			break;
+		case 2000:
+			rt5651->ovcd_th = RT5651_MIC1_OVTH_2000UA;
+			break;
+		default:
+			dev_warn(component->dev, "Warning: Invalid over-current-threshold-microamp value: %d, defaulting to 2000uA\n",
+				 val);
+		}
+	}
 }
 
 static int rt5651_probe(struct snd_soc_component *component)
diff --git a/sound/soc/codecs/rt5651.h b/sound/soc/codecs/rt5651.h
index f3158488fc89..9cd5c279d0d6 100644
--- a/sound/soc/codecs/rt5651.h
+++ b/sound/soc/codecs/rt5651.h
@@ -2064,6 +2064,7 @@ struct rt5651_priv {
 	struct snd_soc_jack *hp_jack;
 	struct delayed_work jack_detect_work;
 	enum rt5651_jd_src jd_src;
+	unsigned int ovcd_th;
 
 	int irq;
 	int sysclk;
-- 
2.14.3

  parent reply	other threads:[~2018-03-04 14:36 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-04 14:35 [PATCH v3 00/22] ASoC: rt5651: jack-detect fixes and improvements Hans de Goede
2018-03-04 14:35 ` [PATCH v3 01/22] ASoC: rt5651: Make rt5651_apply_properties() private Hans de Goede
2018-03-07 14:14   ` Applied "ASoC: rt5651: Make rt5651_apply_properties() private" to the asoc tree Mark Brown
2018-03-04 14:35 ` [PATCH v3 02/22] ASoC: rt5651: Add devicetree-bindings for jack-detect Hans de Goede
2018-03-07 14:14   ` Applied "ASoC: rt5651: Add devicetree-bindings for jack-detect" to the asoc tree Mark Brown
2018-03-04 14:35 ` [PATCH v3 03/22] ASoC: rt5651: Configure jack-detect source through a device-property Hans de Goede
2018-03-07 12:34   ` Mark Brown
2018-03-07 13:49     ` Hans de Goede
2018-03-07 14:28       ` Mark Brown
2018-03-07 14:14   ` Applied "ASoC: rt5651: Configure jack-detect source through a device-property" to the asoc tree Mark Brown
2018-03-04 14:35 ` Hans de Goede [this message]
2018-03-07 14:14   ` Applied "ASoC: rt5651: Allow specifying over-current threshold " Mark Brown
2018-03-04 14:35 ` [PATCH v3 05/22] ASoC: rt5651: Allow specifying the OVCD scale-factor through a device-property Hans de Goede
2018-03-07 14:14   ` Applied "ASoC: rt5651: Allow specifying the OVCD scale-factor through a device-property" to the asoc tree Mark Brown
2018-03-04 14:35 ` [PATCH v3 06/22] ASoC: rt5651: Enable sticky mode for OVCD Hans de Goede
2018-03-04 14:35 ` [PATCH v3 07/22] ASoC: rt5651: Enable Platform Clock during jack-type detect Hans de Goede
2018-03-04 14:35 ` [PATCH v3 08/22] ASoC: rt5651: Add rt5651_jack_inserted() helper Hans de Goede
2018-03-04 14:35 ` [PATCH v3 09/22] ASoC: rt5651: Rewrite jack-type detection Hans de Goede
2018-03-07 14:13   ` Applied "ASoC: rt5651: Rewrite jack-type detection" to the asoc tree Mark Brown
2018-03-04 14:35 ` [PATCH v3 10/22] ASoC: Intel: bytcr_rt5651: Not being able to find the codec ACPI-dev is an error Hans de Goede
2018-03-07 14:13   ` Applied "ASoC: Intel: bytcr_rt5651: Not being able to find the codec ACPI-dev is an error" to the asoc tree Mark Brown
2018-03-04 14:35 ` [PATCH v3 11/22] ASoC: Intel: bytcr_rt5651: Pass jack-src info via device-properties Hans de Goede
2018-03-07 14:22   ` Applied "ASoC: Intel: bytcr_rt5651: Pass jack-src info via device-properties" to the asoc tree Mark Brown
2018-03-04 14:36 ` [PATCH v3 12/22] ASoC: Intel: bytcr_rt5651: Actually honor the DMIC_EN quirk if specified Hans de Goede
2018-03-07 14:22   ` Applied "ASoC: Intel: bytcr_rt5651: Actually honor the DMIC_EN quirk if specified" to the asoc tree Mark Brown
2018-03-04 14:36 ` [PATCH v3 13/22] ASoC: Intel: bytcr_rt5651: Only create jack if we have a jack-detect source Hans de Goede
2018-03-07 14:22   ` Applied "ASoC: Intel: bytcr_rt5651: Only create jack if we have a jack-detect source" to the asoc tree Mark Brown
2018-03-04 14:36 ` [PATCH v3 14/22] ASoC: Intel: bytcr_rt5651: Add quirk micbias OVCD configuration Hans de Goede
2018-03-07 14:22   ` Applied "ASoC: Intel: bytcr_rt5651: Add quirk micbias OVCD configuration" to the asoc tree Mark Brown
2018-03-04 14:36 ` [PATCH v3 15/22] ASoC: Intel: bytcr_rt5651: Configure PLL1 before using it Hans de Goede
2018-03-04 14:36 ` [PATCH v3 16/22] ASoC: Intel: bytcr_rt5651: Drop snd_soc_dai_set_bclk_ratio() call Hans de Goede
2018-03-04 14:36 ` [PATCH v3 17/22] ASoC: Intel: bytcr_rt5651: Rename IN3_MAP to IN1_HS_IN3_MAP Hans de Goede
2018-03-04 14:36 ` [PATCH v3 18/22] ASoC: Intel: bytcr_rt5651: Add new IN2_HS_IN3 input map and a quirk using it Hans de Goede
2018-03-04 14:36 ` [PATCH v3 19/22] ASoC: Intel: bytcr_rt5651: Add support for Bay Trail CR / SSP0 using boards Hans de Goede
2018-03-07 14:21   ` Applied "ASoC: Intel: bytcr_rt5651: Add support for Bay Trail CR / SSP0 using boards" to the asoc tree Mark Brown
2018-03-09 23:30   ` [PATCH v3 19/22] ASoC: Intel: bytcr_rt5651: Add support for Bay Trail CR / SSP0 using boards Pierre-Louis Bossart
2018-03-11 18:19     ` Hans de Goede
2018-03-12 23:26       ` Pierre-Louis Bossart
2018-03-04 14:36 ` [PATCH v3 20/22] ASoC: Intel: bytcr_rt5651: Add quirk for the VIOS LTH17 laptop Hans de Goede
2018-03-04 14:36 ` [PATCH v3 21/22] ASoC: Intel: bytcr_rt5651: Change defaults to enable jack-detect, analog mics Hans de Goede
2018-03-04 14:36 ` [PATCH v3 22/22] ASoC: Intel: bytcr_rt5651: Select RCCLK on init() Hans de Goede

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=20180304143610.21125-5-hdegoede@redhat.com \
    --to=hdegoede@redhat.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=bardliao@realtek.com \
    --cc=broonie@kernel.org \
    --cc=carlo@endlessm.com \
    --cc=oder_chiou@realtek.com \
    --cc=pierre-louis.bossart@linux.intel.com \
    --cc=tiwai@suse.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).