* [PATCH 1/4] ASoC: cs35l35: Add Boost Inductor Calculation
@ 2017-05-18 15:32 Charles Keepax
2017-05-18 15:32 ` [PATCH 4/4] ASoC: cs35l35: Add multi-device synchronisation Charles Keepax
[not found] ` <1495121559-1063-1-git-send-email-ckeepax-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
0 siblings, 2 replies; 12+ messages in thread
From: Charles Keepax @ 2017-05-18 15:32 UTC (permalink / raw)
To: broonie, brian.austin
Cc: mark.rutland, devicetree, alsa-devel, patches, lgirdwood,
Paul.Handrigan, robh+dt
From: Brian Austin <brian.austin@cirrus.com>
Add the Boost Inductor parameters based off the size of the inductor
on the HW setup
Signed-off-by: Brian Austin <brian.austin@cirrus.com>
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
---
include/sound/cs35l35.h | 2 ++
sound/soc/codecs/cs35l35.c | 82 ++++++++++++++++++++++++++++++++++++++++++++++
sound/soc/codecs/cs35l35.h | 6 ++++
3 files changed, 90 insertions(+)
diff --git a/include/sound/cs35l35.h b/include/sound/cs35l35.h
index 29da899..d69cd78 100644
--- a/include/sound/cs35l35.h
+++ b/include/sound/cs35l35.h
@@ -99,6 +99,8 @@ struct cs35l35_platform_data {
bool shared_bst;
/* Specifies this amp is using an external boost supply */
bool ext_bst;
+ /* Inductor Value */
+ int boost_ind;
/* ClassH Algorithm */
struct classh_cfg classh_algo;
/* Monitor Config */
diff --git a/sound/soc/codecs/cs35l35.c b/sound/soc/codecs/cs35l35.c
index f8aef58..c6eabb8 100644
--- a/sound/soc/codecs/cs35l35.c
+++ b/sound/soc/codecs/cs35l35.c
@@ -756,6 +756,76 @@ static int cs35l35_codec_set_sysclk(struct snd_soc_codec *codec,
return ret;
}
+static int cs35l35_boost_inductor(struct cs35l35_private *cs35l35,
+ int inductor)
+{
+ struct regmap *regmap = cs35l35->regmap;
+ unsigned int bst_ipk = 0;
+
+ /*
+ * Digital Boost Converter Configuration for feedback,
+ * ramping, switching frequency, and estimation block seeding.
+ */
+
+ regmap_update_bits(regmap, CS35L35_BST_CONV_SW_FREQ,
+ CS35L35_BST_CONV_SWFREQ_MASK, 0x00);
+
+ regmap_read(regmap, CS35L35_BST_PEAK_I, &bst_ipk);
+ bst_ipk &= CS35L35_BST_IPK_MASK;
+
+ switch (inductor) {
+ case 1000: /* 1 uH */
+ regmap_write(regmap, CS35L35_BST_CONV_COEF_1, 0x24);
+ regmap_write(regmap, CS35L35_BST_CONV_COEF_2, 0x24);
+ regmap_update_bits(regmap, CS35L35_BST_CONV_SW_FREQ,
+ CS35L35_BST_CONV_LBST_MASK, 0x00);
+
+ if (bst_ipk < 0x04)
+ regmap_write(regmap, CS35L35_BST_CONV_SLOPE_COMP, 0x1B);
+ else
+ regmap_write(regmap, CS35L35_BST_CONV_SLOPE_COMP, 0x4E);
+ break;
+ case 1200: /* 1.2 uH */
+ regmap_write(regmap, CS35L35_BST_CONV_COEF_1, 0x20);
+ regmap_write(regmap, CS35L35_BST_CONV_COEF_2, 0x20);
+ regmap_update_bits(regmap, CS35L35_BST_CONV_SW_FREQ,
+ CS35L35_BST_CONV_LBST_MASK, 0x01);
+
+ if (bst_ipk < 0x04)
+ regmap_write(regmap, CS35L35_BST_CONV_SLOPE_COMP, 0x1B);
+ else
+ regmap_write(regmap, CS35L35_BST_CONV_SLOPE_COMP, 0x47);
+ break;
+ case 1500: /* 1.5uH */
+ regmap_write(regmap, CS35L35_BST_CONV_COEF_1, 0x20);
+ regmap_write(regmap, CS35L35_BST_CONV_COEF_2, 0x20);
+ regmap_update_bits(regmap, CS35L35_BST_CONV_SW_FREQ,
+ CS35L35_BST_CONV_LBST_MASK, 0x02);
+
+ if (bst_ipk < 0x04)
+ regmap_write(regmap, CS35L35_BST_CONV_SLOPE_COMP, 0x1B);
+ else
+ regmap_write(regmap, CS35L35_BST_CONV_SLOPE_COMP, 0x3C);
+ break;
+ case 2200: /* 2.2uH */
+ regmap_write(regmap, CS35L35_BST_CONV_COEF_1, 0x19);
+ regmap_write(regmap, CS35L35_BST_CONV_COEF_2, 0x25);
+ regmap_update_bits(regmap, CS35L35_BST_CONV_SW_FREQ,
+ CS35L35_BST_CONV_LBST_MASK, 0x03);
+
+ if (bst_ipk < 0x04)
+ regmap_write(regmap, CS35L35_BST_CONV_SLOPE_COMP, 0x1B);
+ else
+ regmap_write(regmap, CS35L35_BST_CONV_SLOPE_COMP, 0x23);
+ break;
+ default:
+ dev_err(cs35l35->dev, "Invalid Inductor Value %d uH\n",
+ inductor);
+ return -EINVAL;
+ }
+ return 0;
+}
+
static int cs35l35_codec_probe(struct snd_soc_codec *codec)
{
struct cs35l35_private *cs35l35 = snd_soc_codec_get_drvdata(codec);
@@ -775,6 +845,10 @@ static int cs35l35_codec_probe(struct snd_soc_codec *codec)
cs35l35->pdata.bst_ipk <<
CS35L35_BST_IPK_SHIFT);
+ ret = cs35l35_boost_inductor(cs35l35, cs35l35->pdata.boost_ind);
+ if (ret)
+ return ret;
+
if (cs35l35->pdata.gain_zc)
regmap_update_bits(cs35l35->regmap, CS35L35_PROTECT_CTL,
CS35L35_AMP_GAIN_ZC_MASK,
@@ -1198,6 +1272,14 @@ static int cs35l35_handle_of_data(struct i2c_client *i2c_client,
pdata->bst_ipk = (val32 - 1680) / 110;
}
+ ret = of_property_read_u32(np, "cirrus,boost-ind-nanohenry", &val32);
+ if (ret >= 0) {
+ pdata->boost_ind = val32;
+ } else {
+ dev_err(&i2c_client->dev, "Inductor not specified.\n");
+ return -EINVAL;
+ }
+
if (of_property_read_u32(np, "cirrus,sp-drv-strength", &val32) >= 0)
pdata->sp_drv_str = val32;
if (of_property_read_u32(np, "cirrus,sp-drv-unused", &val32) >= 0)
diff --git a/sound/soc/codecs/cs35l35.h b/sound/soc/codecs/cs35l35.h
index 5a6e43a..621bfef 100644
--- a/sound/soc/codecs/cs35l35.h
+++ b/sound/soc/codecs/cs35l35.h
@@ -200,6 +200,12 @@
#define CS35L35_SP_I2S_DRV_MASK 0x03
#define CS35L35_SP_I2S_DRV_SHIFT 0
+/* Boost Converter Config */
+#define CS35L35_BST_CONV_COEFF_MASK 0xFF
+#define CS35L35_BST_CONV_SLOPE_MASK 0xFF
+#define CS35L35_BST_CONV_LBST_MASK 0x03
+#define CS35L35_BST_CONV_SWFREQ_MASK 0xF0
+
/* Class H Algorithm Control */
#define CS35L35_CH_STEREO_MASK 0x40
#define CS35L35_CH_STEREO_SHIFT 6
--
2.1.4
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 2/4] ASoC: cs35l35: Add DT handling for Inductor
[not found] ` <1495121559-1063-1-git-send-email-ckeepax-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
@ 2017-05-18 15:32 ` Charles Keepax
[not found] ` <1495121559-1063-2-git-send-email-ckeepax-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2017-05-18 15:32 ` [PATCH 3/4] ASoC: cs35l35: Correctly handle 0 for bst_ipk Charles Keepax
` (2 subsequent siblings)
3 siblings, 1 reply; 12+ messages in thread
From: Charles Keepax @ 2017-05-18 15:32 UTC (permalink / raw)
To: broonie-DgEjT+Ai2ygdnm+yROfE0A,
brian.austin-jGc1dHjMKG3QT0dZR+AlfA
Cc: lgirdwood-Re5JQEeQqe8AvxtiuMwx3w,
Paul.Handrigan-jGc1dHjMKG3QT0dZR+AlfA,
robh+dt-DgEjT+Ai2ygdnm+yROfE0A, mark.rutland-5wv7dgnIgG8,
alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw,
devicetree-u79uwXL29TY76Z2rM5mHXA,
patches-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E
From: Brian Austin <brian.austin-jGc1dHjMKG3QT0dZR+AlfA@public.gmane.org>
Need to specify the inductor size in nH. This is a required property.
Signed-off-by: Brian Austin <brian.austin-jGc1dHjMKG3QT0dZR+AlfA@public.gmane.org>
Signed-off-by: Charles Keepax <ckeepax-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
---
Documentation/devicetree/bindings/sound/cs35l35.txt | 3 +++
1 file changed, 3 insertions(+)
diff --git a/Documentation/devicetree/bindings/sound/cs35l35.txt b/Documentation/devicetree/bindings/sound/cs35l35.txt
index 016b768..77ee75c 100644
--- a/Documentation/devicetree/bindings/sound/cs35l35.txt
+++ b/Documentation/devicetree/bindings/sound/cs35l35.txt
@@ -16,6 +16,9 @@ Required properties:
(See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
for further information relating to interrupt properties)
+ - cirrus,boost-ind-nanohenry: Inductor value for boost converter. The value is
+ in nH and they can be values of 1000nH, 1200nH, 1500nH, and 2200nH.
+
Optional properties:
- reset-gpios : gpio used to reset the amplifier
--
2.1.4
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 3/4] ASoC: cs35l35: Correctly handle 0 for bst_ipk
[not found] ` <1495121559-1063-1-git-send-email-ckeepax-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2017-05-18 15:32 ` [PATCH 2/4] ASoC: cs35l35: Add DT handling for Inductor Charles Keepax
@ 2017-05-18 15:32 ` Charles Keepax
[not found] ` <1495121559-1063-3-git-send-email-ckeepax-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2017-05-19 17:03 ` Applied "ASoC: cs35l35: Add Boost Inductor Calculation" " Mark Brown
2017-05-22 13:18 ` [PATCH 1/4] ASoC: cs35l35: Add Boost Inductor Calculation Austin, Brian
3 siblings, 1 reply; 12+ messages in thread
From: Charles Keepax @ 2017-05-18 15:32 UTC (permalink / raw)
To: broonie-DgEjT+Ai2ygdnm+yROfE0A,
brian.austin-jGc1dHjMKG3QT0dZR+AlfA
Cc: lgirdwood-Re5JQEeQqe8AvxtiuMwx3w,
Paul.Handrigan-jGc1dHjMKG3QT0dZR+AlfA,
robh+dt-DgEjT+Ai2ygdnm+yROfE0A, mark.rutland-5wv7dgnIgG8,
alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw,
devicetree-u79uwXL29TY76Z2rM5mHXA,
patches-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E
Zero is a totally valid value to specify for the bst_ipk, as such we
should append CS35L35_VALID_PDATA to ensure that it actually makes it
into the register value.
Signed-off-by: Charles Keepax <ckeepax-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
---
sound/soc/codecs/cs35l35.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/codecs/cs35l35.c b/sound/soc/codecs/cs35l35.c
index c6eabb8..375be49 100644
--- a/sound/soc/codecs/cs35l35.c
+++ b/sound/soc/codecs/cs35l35.c
@@ -1269,7 +1269,7 @@ static int cs35l35_handle_of_data(struct i2c_client *i2c_client,
return -EINVAL;
}
- pdata->bst_ipk = (val32 - 1680) / 110;
+ pdata->bst_ipk = ((val32 - 1680) / 110) | CS35L35_VALID_PDATA;
}
ret = of_property_read_u32(np, "cirrus,boost-ind-nanohenry", &val32);
--
2.1.4
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 4/4] ASoC: cs35l35: Add multi-device synchronisation
2017-05-18 15:32 [PATCH 1/4] ASoC: cs35l35: Add Boost Inductor Calculation Charles Keepax
@ 2017-05-18 15:32 ` Charles Keepax
[not found] ` <1495121559-1063-4-git-send-email-ckeepax-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
[not found] ` <1495121559-1063-1-git-send-email-ckeepax-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
1 sibling, 1 reply; 12+ messages in thread
From: Charles Keepax @ 2017-05-18 15:32 UTC (permalink / raw)
To: broonie, brian.austin
Cc: mark.rutland, devicetree, alsa-devel, patches, lgirdwood,
Paul.Handrigan, robh+dt
This patch adds multi-device synchronisation capabilities to the
CS35L35 amp.
In stereo mode you can select to have the devices communicate
certain features to each other. Add options to allow the amps to
synchronise the audio group delay, the brown out protection and the
over temperature warning.
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
---
sound/soc/codecs/cs35l35.c | 48 +++++++++++++++++++++++++++++++++++++++++++---
sound/soc/codecs/cs35l35.h | 9 +++++++++
2 files changed, 54 insertions(+), 3 deletions(-)
diff --git a/sound/soc/codecs/cs35l35.c b/sound/soc/codecs/cs35l35.c
index 375be49..a587269 100644
--- a/sound/soc/codecs/cs35l35.c
+++ b/sound/soc/codecs/cs35l35.c
@@ -310,11 +310,49 @@ static const struct snd_kcontrol_new cs35l35_aud_controls[] = {
amp_gain_tlv),
};
-static const struct snd_kcontrol_new cs35l35_adv_controls[] = {
+static int cs35l35_put_sync(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
+ struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
+ struct cs35l35_private *cs35l35 = snd_soc_codec_get_drvdata(codec);
+ unsigned int val;
+ int ret;
+
+ snd_soc_dapm_mutex_lock(dapm);
+
+ ret = regmap_read(cs35l35->regmap, CS35L35_PWRCTL1, &val);
+ if (ret) {
+ dev_err(cs35l35->dev, "Failed to check power state: %d\n", ret);
+ goto err;
+ }
+
+ if (!(val & CS35L35_PDN_ALL)) {
+ dev_err(cs35l35->dev, "Can't change sync when active\n");
+ ret = -EBUSY;
+ goto err;
+ }
+
+ ret = snd_soc_put_volsw(kcontrol, ucontrol);
+
+err:
+ snd_soc_dapm_mutex_unlock(dapm);
+
+ return ret;
+}
+
+static const struct snd_kcontrol_new cs35l35_stereo_controls[] = {
SOC_SINGLE_SX_TLV("Digital Advisory Volume", CS35L35_ADV_DIG_VOL,
0, 0x34, 0xE4, dig_vol_tlv),
SOC_SINGLE_TLV("Analog Advisory Volume", CS35L35_AMP_GAIN_ADV_CTL, 0, 19, 0,
amp_gain_tlv),
+
+ SOC_SINGLE_EXT("SYNC Audio", CS35L35_MULT_DEV_SYNCH2, 1, 1, 0,
+ snd_soc_get_volsw, cs35l35_put_sync),
+ SOC_SINGLE_EXT("SYNC VPBR", CS35L35_MULT_DEV_SYNCH2, 2, 1, 0,
+ snd_soc_get_volsw, cs35l35_put_sync),
+ SOC_SINGLE_EXT("SYNC OTW", CS35L35_MULT_DEV_SYNCH2, 3, 1, 0,
+ snd_soc_get_volsw, cs35l35_put_sync),
};
static const struct snd_soc_dapm_widget cs35l35_dapm_widgets[] = {
@@ -872,8 +910,12 @@ static int cs35l35_codec_probe(struct snd_soc_codec *codec)
regmap_update_bits(cs35l35->regmap, CS35L35_CLASS_H_CTL,
CS35L35_CH_STEREO_MASK,
1 << CS35L35_CH_STEREO_SHIFT);
- ret = snd_soc_add_codec_controls(codec, cs35l35_adv_controls,
- ARRAY_SIZE(cs35l35_adv_controls));
+
+ regmap_update_bits(cs35l35->regmap, CS35L35_MULT_DEV_SYNCH2,
+ CS35L35_SYNC_EN_MASK, 1);
+
+ ret = snd_soc_add_codec_controls(codec, cs35l35_stereo_controls,
+ ARRAY_SIZE(cs35l35_stereo_controls));
if (ret)
return ret;
}
diff --git a/sound/soc/codecs/cs35l35.h b/sound/soc/codecs/cs35l35.h
index 621bfef..7cec198 100644
--- a/sound/soc/codecs/cs35l35.h
+++ b/sound/soc/codecs/cs35l35.h
@@ -273,6 +273,15 @@
#define CS35L35_VMON_OVFL 0x08
#define CS35L35_IMON_OVFL 0x04
+/* Mulit-Device Sync */
+#define CS35L35_SYNC_EN_MASK 0x01
+#define CS35L35_SYNC_MS_MASK 0x20
+#define CS35L35_SYNC_MS_SHIFT 5
+#define CS35L35_SYNC_MS_CTRL_MASK 0x10
+#define CS35L35_SYNC_MS_CTRL_SHIFT 4
+#define CS35L35_SYNC_CLK_SEL_MASK 0x02
+#define CS35L35_SYNC_CLK_SEL_SHIFT 1
+
#define CS35L35_FORMATS (SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE | \
SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S32_LE)
--
2.1.4
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Applied "ASoC: cs35l35: Correctly handle 0 for bst_ipk" to the asoc tree
[not found] ` <1495121559-1063-3-git-send-email-ckeepax-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
@ 2017-05-19 17:03 ` Mark Brown
0 siblings, 0 replies; 12+ messages in thread
From: Mark Brown @ 2017-05-19 17:03 UTC (permalink / raw)
To: Charles Keepax; +Cc: Mark Brown
The patch
ASoC: cs35l35: Correctly handle 0 for bst_ipk
has been applied to the asoc tree at
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
>From 486fb9590302f811d44fa15401e1736679d33736 Mon Sep 17 00:00:00 2001
From: Charles Keepax <ckeepax-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
Date: Thu, 18 May 2017 16:32:38 +0100
Subject: [PATCH] ASoC: cs35l35: Correctly handle 0 for bst_ipk
Zero is a totally valid value to specify for the bst_ipk, as such we
should append CS35L35_VALID_PDATA to ensure that it actually makes it
into the register value.
Signed-off-by: Charles Keepax <ckeepax-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
Signed-off-by: Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
---
sound/soc/codecs/cs35l35.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/codecs/cs35l35.c b/sound/soc/codecs/cs35l35.c
index c6eabb8610f0..375be49b7fd0 100644
--- a/sound/soc/codecs/cs35l35.c
+++ b/sound/soc/codecs/cs35l35.c
@@ -1269,7 +1269,7 @@ static int cs35l35_handle_of_data(struct i2c_client *i2c_client,
return -EINVAL;
}
- pdata->bst_ipk = (val32 - 1680) / 110;
+ pdata->bst_ipk = ((val32 - 1680) / 110) | CS35L35_VALID_PDATA;
}
ret = of_property_read_u32(np, "cirrus,boost-ind-nanohenry", &val32);
--
2.11.0
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Applied "ASoC: cs35l35: Add DT handling for Inductor" to the asoc tree
[not found] ` <1495121559-1063-2-git-send-email-ckeepax-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
@ 2017-05-19 17:03 ` Mark Brown
0 siblings, 0 replies; 12+ messages in thread
From: Mark Brown @ 2017-05-19 17:03 UTC (permalink / raw)
Cc: Charles Keepax, Mark Brown
The patch
ASoC: cs35l35: Add DT handling for Inductor
has been applied to the asoc tree at
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
>From cff7597a46454cf0ef0de7340dfb3f6bc0855777 Mon Sep 17 00:00:00 2001
From: Brian Austin <brian.austin-jGc1dHjMKG3QT0dZR+AlfA@public.gmane.org>
Date: Thu, 18 May 2017 16:32:37 +0100
Subject: [PATCH] ASoC: cs35l35: Add DT handling for Inductor
Need to specify the inductor size in nH. This is a required property.
Signed-off-by: Brian Austin <brian.austin-jGc1dHjMKG3QT0dZR+AlfA@public.gmane.org>
Signed-off-by: Charles Keepax <ckeepax-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
Signed-off-by: Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
---
Documentation/devicetree/bindings/sound/cs35l35.txt | 3 +++
1 file changed, 3 insertions(+)
diff --git a/Documentation/devicetree/bindings/sound/cs35l35.txt b/Documentation/devicetree/bindings/sound/cs35l35.txt
index 016b768bc722..77ee75c39233 100644
--- a/Documentation/devicetree/bindings/sound/cs35l35.txt
+++ b/Documentation/devicetree/bindings/sound/cs35l35.txt
@@ -16,6 +16,9 @@ Required properties:
(See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
for further information relating to interrupt properties)
+ - cirrus,boost-ind-nanohenry: Inductor value for boost converter. The value is
+ in nH and they can be values of 1000nH, 1200nH, 1500nH, and 2200nH.
+
Optional properties:
- reset-gpios : gpio used to reset the amplifier
--
2.11.0
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Applied "ASoC: cs35l35: Add Boost Inductor Calculation" to the asoc tree
[not found] ` <1495121559-1063-1-git-send-email-ckeepax-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2017-05-18 15:32 ` [PATCH 2/4] ASoC: cs35l35: Add DT handling for Inductor Charles Keepax
2017-05-18 15:32 ` [PATCH 3/4] ASoC: cs35l35: Correctly handle 0 for bst_ipk Charles Keepax
@ 2017-05-19 17:03 ` Mark Brown
2017-05-22 13:18 ` [PATCH 1/4] ASoC: cs35l35: Add Boost Inductor Calculation Austin, Brian
3 siblings, 0 replies; 12+ messages in thread
From: Mark Brown @ 2017-05-19 17:03 UTC (permalink / raw)
Cc: Charles Keepax, Mark Brown
The patch
ASoC: cs35l35: Add Boost Inductor Calculation
has been applied to the asoc tree at
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
>From b7c752d68aee9c066cb0bd2f24ee73aed64575e8 Mon Sep 17 00:00:00 2001
From: Brian Austin <brian.austin-jGc1dHjMKG3QT0dZR+AlfA@public.gmane.org>
Date: Thu, 18 May 2017 16:32:36 +0100
Subject: [PATCH] ASoC: cs35l35: Add Boost Inductor Calculation
Add the Boost Inductor parameters based off the size of the inductor
on the HW setup
Signed-off-by: Brian Austin <brian.austin-jGc1dHjMKG3QT0dZR+AlfA@public.gmane.org>
Signed-off-by: Charles Keepax <ckeepax-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
Signed-off-by: Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
---
include/sound/cs35l35.h | 2 ++
sound/soc/codecs/cs35l35.c | 82 ++++++++++++++++++++++++++++++++++++++++++++++
sound/soc/codecs/cs35l35.h | 6 ++++
3 files changed, 90 insertions(+)
diff --git a/include/sound/cs35l35.h b/include/sound/cs35l35.h
index 29da899e17e4..d69cd7847afd 100644
--- a/include/sound/cs35l35.h
+++ b/include/sound/cs35l35.h
@@ -99,6 +99,8 @@ struct cs35l35_platform_data {
bool shared_bst;
/* Specifies this amp is using an external boost supply */
bool ext_bst;
+ /* Inductor Value */
+ int boost_ind;
/* ClassH Algorithm */
struct classh_cfg classh_algo;
/* Monitor Config */
diff --git a/sound/soc/codecs/cs35l35.c b/sound/soc/codecs/cs35l35.c
index f8aef5869b03..c6eabb8610f0 100644
--- a/sound/soc/codecs/cs35l35.c
+++ b/sound/soc/codecs/cs35l35.c
@@ -756,6 +756,76 @@ static int cs35l35_codec_set_sysclk(struct snd_soc_codec *codec,
return ret;
}
+static int cs35l35_boost_inductor(struct cs35l35_private *cs35l35,
+ int inductor)
+{
+ struct regmap *regmap = cs35l35->regmap;
+ unsigned int bst_ipk = 0;
+
+ /*
+ * Digital Boost Converter Configuration for feedback,
+ * ramping, switching frequency, and estimation block seeding.
+ */
+
+ regmap_update_bits(regmap, CS35L35_BST_CONV_SW_FREQ,
+ CS35L35_BST_CONV_SWFREQ_MASK, 0x00);
+
+ regmap_read(regmap, CS35L35_BST_PEAK_I, &bst_ipk);
+ bst_ipk &= CS35L35_BST_IPK_MASK;
+
+ switch (inductor) {
+ case 1000: /* 1 uH */
+ regmap_write(regmap, CS35L35_BST_CONV_COEF_1, 0x24);
+ regmap_write(regmap, CS35L35_BST_CONV_COEF_2, 0x24);
+ regmap_update_bits(regmap, CS35L35_BST_CONV_SW_FREQ,
+ CS35L35_BST_CONV_LBST_MASK, 0x00);
+
+ if (bst_ipk < 0x04)
+ regmap_write(regmap, CS35L35_BST_CONV_SLOPE_COMP, 0x1B);
+ else
+ regmap_write(regmap, CS35L35_BST_CONV_SLOPE_COMP, 0x4E);
+ break;
+ case 1200: /* 1.2 uH */
+ regmap_write(regmap, CS35L35_BST_CONV_COEF_1, 0x20);
+ regmap_write(regmap, CS35L35_BST_CONV_COEF_2, 0x20);
+ regmap_update_bits(regmap, CS35L35_BST_CONV_SW_FREQ,
+ CS35L35_BST_CONV_LBST_MASK, 0x01);
+
+ if (bst_ipk < 0x04)
+ regmap_write(regmap, CS35L35_BST_CONV_SLOPE_COMP, 0x1B);
+ else
+ regmap_write(regmap, CS35L35_BST_CONV_SLOPE_COMP, 0x47);
+ break;
+ case 1500: /* 1.5uH */
+ regmap_write(regmap, CS35L35_BST_CONV_COEF_1, 0x20);
+ regmap_write(regmap, CS35L35_BST_CONV_COEF_2, 0x20);
+ regmap_update_bits(regmap, CS35L35_BST_CONV_SW_FREQ,
+ CS35L35_BST_CONV_LBST_MASK, 0x02);
+
+ if (bst_ipk < 0x04)
+ regmap_write(regmap, CS35L35_BST_CONV_SLOPE_COMP, 0x1B);
+ else
+ regmap_write(regmap, CS35L35_BST_CONV_SLOPE_COMP, 0x3C);
+ break;
+ case 2200: /* 2.2uH */
+ regmap_write(regmap, CS35L35_BST_CONV_COEF_1, 0x19);
+ regmap_write(regmap, CS35L35_BST_CONV_COEF_2, 0x25);
+ regmap_update_bits(regmap, CS35L35_BST_CONV_SW_FREQ,
+ CS35L35_BST_CONV_LBST_MASK, 0x03);
+
+ if (bst_ipk < 0x04)
+ regmap_write(regmap, CS35L35_BST_CONV_SLOPE_COMP, 0x1B);
+ else
+ regmap_write(regmap, CS35L35_BST_CONV_SLOPE_COMP, 0x23);
+ break;
+ default:
+ dev_err(cs35l35->dev, "Invalid Inductor Value %d uH\n",
+ inductor);
+ return -EINVAL;
+ }
+ return 0;
+}
+
static int cs35l35_codec_probe(struct snd_soc_codec *codec)
{
struct cs35l35_private *cs35l35 = snd_soc_codec_get_drvdata(codec);
@@ -775,6 +845,10 @@ static int cs35l35_codec_probe(struct snd_soc_codec *codec)
cs35l35->pdata.bst_ipk <<
CS35L35_BST_IPK_SHIFT);
+ ret = cs35l35_boost_inductor(cs35l35, cs35l35->pdata.boost_ind);
+ if (ret)
+ return ret;
+
if (cs35l35->pdata.gain_zc)
regmap_update_bits(cs35l35->regmap, CS35L35_PROTECT_CTL,
CS35L35_AMP_GAIN_ZC_MASK,
@@ -1198,6 +1272,14 @@ static int cs35l35_handle_of_data(struct i2c_client *i2c_client,
pdata->bst_ipk = (val32 - 1680) / 110;
}
+ ret = of_property_read_u32(np, "cirrus,boost-ind-nanohenry", &val32);
+ if (ret >= 0) {
+ pdata->boost_ind = val32;
+ } else {
+ dev_err(&i2c_client->dev, "Inductor not specified.\n");
+ return -EINVAL;
+ }
+
if (of_property_read_u32(np, "cirrus,sp-drv-strength", &val32) >= 0)
pdata->sp_drv_str = val32;
if (of_property_read_u32(np, "cirrus,sp-drv-unused", &val32) >= 0)
diff --git a/sound/soc/codecs/cs35l35.h b/sound/soc/codecs/cs35l35.h
index 5a6e43a87c4d..621bfef70d03 100644
--- a/sound/soc/codecs/cs35l35.h
+++ b/sound/soc/codecs/cs35l35.h
@@ -200,6 +200,12 @@
#define CS35L35_SP_I2S_DRV_MASK 0x03
#define CS35L35_SP_I2S_DRV_SHIFT 0
+/* Boost Converter Config */
+#define CS35L35_BST_CONV_COEFF_MASK 0xFF
+#define CS35L35_BST_CONV_SLOPE_MASK 0xFF
+#define CS35L35_BST_CONV_LBST_MASK 0x03
+#define CS35L35_BST_CONV_SWFREQ_MASK 0xF0
+
/* Class H Algorithm Control */
#define CS35L35_CH_STEREO_MASK 0x40
#define CS35L35_CH_STEREO_SHIFT 6
--
2.11.0
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 1/4] ASoC: cs35l35: Add Boost Inductor Calculation
[not found] ` <1495121559-1063-1-git-send-email-ckeepax-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
` (2 preceding siblings ...)
2017-05-19 17:03 ` Applied "ASoC: cs35l35: Add Boost Inductor Calculation" " Mark Brown
@ 2017-05-22 13:18 ` Austin, Brian
3 siblings, 0 replies; 12+ messages in thread
From: Austin, Brian @ 2017-05-22 13:18 UTC (permalink / raw)
To: Charles Keepax, broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org
Cc: lgirdwood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
Handrigan, Paul, robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
mark.rutland-5wv7dgnIgG8@public.gmane.org,
alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw@public.gmane.org,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
patches-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org
On 5/18/17, 10:32 AM, "Charles Keepax" <ckeepax@opensource.wolfsonmicro.com> wrote:
From: Brian Austin <brian.austin@cirrus.com>
Add the Boost Inductor parameters based off the size of the inductor
on the HW setup
Signed-off-by: Brian Austin <brian.austin@cirrus.com>
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
---
For the series
Acked-by: Brian Austin <brian.austin@cirrus.com>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 4/4] ASoC: cs35l35: Add multi-device synchronisation
[not found] ` <1495121559-1063-4-git-send-email-ckeepax-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
@ 2017-05-29 13:53 ` Mark Brown
2017-05-30 8:51 ` Charles Keepax
0 siblings, 1 reply; 12+ messages in thread
From: Mark Brown @ 2017-05-29 13:53 UTC (permalink / raw)
To: Charles Keepax
Cc: brian.austin-jGc1dHjMKG3QT0dZR+AlfA,
lgirdwood-Re5JQEeQqe8AvxtiuMwx3w,
Paul.Handrigan-jGc1dHjMKG3QT0dZR+AlfA,
robh+dt-DgEjT+Ai2ygdnm+yROfE0A, mark.rutland-5wv7dgnIgG8,
alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw,
devicetree-u79uwXL29TY76Z2rM5mHXA,
patches-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E
[-- Attachment #1: Type: text/plain, Size: 701 bytes --]
On Thu, May 18, 2017 at 04:32:39PM +0100, Charles Keepax wrote:
> + SOC_SINGLE_EXT("SYNC Audio", CS35L35_MULT_DEV_SYNCH2, 1, 1, 0,
> + snd_soc_get_volsw, cs35l35_put_sync),
> + SOC_SINGLE_EXT("SYNC VPBR", CS35L35_MULT_DEV_SYNCH2, 2, 1, 0,
> + snd_soc_get_volsw, cs35l35_put_sync),
> + SOC_SINGLE_EXT("SYNC OTW", CS35L35_MULT_DEV_SYNCH2, 3, 1, 0,
> + snd_soc_get_volsw, cs35l35_put_sync),
I can't tell how this works. It feels like this shouldn't just be being
controlled from userspace but rather should be handled in some more
standard fashion, or possibly as part of the platform integration but
right now it's just some totally undocumented application managed
controls.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 4/4] ASoC: cs35l35: Add multi-device synchronisation
2017-05-29 13:53 ` Mark Brown
@ 2017-05-30 8:51 ` Charles Keepax
2017-06-01 11:45 ` Charles Keepax
[not found] ` <20170530085138.GR1594-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
0 siblings, 2 replies; 12+ messages in thread
From: Charles Keepax @ 2017-05-30 8:51 UTC (permalink / raw)
To: Mark Brown
Cc: mark.rutland, devicetree, alsa-devel, patches, brian.austin,
Paul.Handrigan, lgirdwood, robh+dt
On Mon, May 29, 2017 at 02:53:06PM +0100, Mark Brown wrote:
> On Thu, May 18, 2017 at 04:32:39PM +0100, Charles Keepax wrote:
>
> > + SOC_SINGLE_EXT("SYNC Audio", CS35L35_MULT_DEV_SYNCH2, 1, 1, 0,
> > + snd_soc_get_volsw, cs35l35_put_sync),
> > + SOC_SINGLE_EXT("SYNC VPBR", CS35L35_MULT_DEV_SYNCH2, 2, 1, 0,
> > + snd_soc_get_volsw, cs35l35_put_sync),
> > + SOC_SINGLE_EXT("SYNC OTW", CS35L35_MULT_DEV_SYNCH2, 3, 1, 0,
> > + snd_soc_get_volsw, cs35l35_put_sync),
>
> I can't tell how this works. It feels like this shouldn't just be being
> controlled from userspace but rather should be handled in some more
> standard fashion, or possibly as part of the platform integration but
> right now it's just some totally undocumented application managed
> controls.
These activate the individual types of synchronisation between
the two stereo amps over a proprietary single wire connection
between the two amps. The audio option synchronises the group
delay between the two amps. The VPBR links the brown out on the
two amps and the OTW links the over temperature warning.
The issue is really one of it being use-case specific whether the
amps are being used independently or in a stereo configuration.
You could have only a single amp in use in which case the sync
features are best turned off. Or one might even have use-cases
with both amps where they are being used independently but at the
same time.
I guess we could potentially do those as calls from the machine
driver, although in some cases it might be hard to tell which
use-case is being used. Alternatively, one could try to actually
link the two amps in DAPM and control it that way although you
probably still want some device tree stuff to say which things
you want to sync and it might cause issues in any cases where you
had both amps up but didn't want to sync.
Thanks,
Charles
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 4/4] ASoC: cs35l35: Add multi-device synchronisation
2017-05-30 8:51 ` Charles Keepax
@ 2017-06-01 11:45 ` Charles Keepax
[not found] ` <20170530085138.GR1594-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
1 sibling, 0 replies; 12+ messages in thread
From: Charles Keepax @ 2017-06-01 11:45 UTC (permalink / raw)
To: Mark Brown
Cc: mark.rutland, devicetree, alsa-devel, patches, brian.austin,
Paul.Handrigan, lgirdwood, robh+dt
On Tue, May 30, 2017 at 09:51:38AM +0100, Charles Keepax wrote:
> On Mon, May 29, 2017 at 02:53:06PM +0100, Mark Brown wrote:
> > On Thu, May 18, 2017 at 04:32:39PM +0100, Charles Keepax wrote:
> >
> > > + SOC_SINGLE_EXT("SYNC Audio", CS35L35_MULT_DEV_SYNCH2, 1, 1, 0,
> > > + snd_soc_get_volsw, cs35l35_put_sync),
> > > + SOC_SINGLE_EXT("SYNC VPBR", CS35L35_MULT_DEV_SYNCH2, 2, 1, 0,
> > > + snd_soc_get_volsw, cs35l35_put_sync),
> > > + SOC_SINGLE_EXT("SYNC OTW", CS35L35_MULT_DEV_SYNCH2, 3, 1, 0,
> > > + snd_soc_get_volsw, cs35l35_put_sync),
> >
> > I can't tell how this works. It feels like this shouldn't just be being
> > controlled from userspace but rather should be handled in some more
> > standard fashion, or possibly as part of the platform integration but
> > right now it's just some totally undocumented application managed
> > controls.
>
> These activate the individual types of synchronisation between
> the two stereo amps over a proprietary single wire connection
> between the two amps. The audio option synchronises the group
> delay between the two amps. The VPBR links the brown out on the
> two amps and the OTW links the over temperature warning.
>
> The issue is really one of it being use-case specific whether the
> amps are being used independently or in a stereo configuration.
> You could have only a single amp in use in which case the sync
> features are best turned off. Or one might even have use-cases
> with both amps where they are being used independently but at the
> same time.
>
> I guess we could potentially do those as calls from the machine
> driver, although in some cases it might be hard to tell which
> use-case is being used. Alternatively, one could try to actually
> link the two amps in DAPM and control it that way although you
> probably still want some device tree stuff to say which things
> you want to sync and it might cause issues in any cases where you
> had both amps up but didn't want to sync.
Ok turns out there is one other corner case issue here, lets drop
this patch for now and I will try to see if I can come up with
better solution for it.
Thanks,
Charles
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 4/4] ASoC: cs35l35: Add multi-device synchronisation
[not found] ` <20170530085138.GR1594-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
@ 2017-06-02 17:11 ` Mark Brown
0 siblings, 0 replies; 12+ messages in thread
From: Mark Brown @ 2017-06-02 17:11 UTC (permalink / raw)
To: Charles Keepax
Cc: brian.austin-jGc1dHjMKG3QT0dZR+AlfA,
lgirdwood-Re5JQEeQqe8AvxtiuMwx3w,
Paul.Handrigan-jGc1dHjMKG3QT0dZR+AlfA,
robh+dt-DgEjT+Ai2ygdnm+yROfE0A, mark.rutland-5wv7dgnIgG8,
alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw,
devicetree-u79uwXL29TY76Z2rM5mHXA,
patches-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E
[-- Attachment #1: Type: text/plain, Size: 1461 bytes --]
On Tue, May 30, 2017 at 09:51:38AM +0100, Charles Keepax wrote:
> These activate the individual types of synchronisation between
> the two stereo amps over a proprietary single wire connection
> between the two amps. The audio option synchronises the group
So we should at least have something that represents that single wire
connection in DT since it might not be there and so that the kernel can
make sure that both devices agree if they're synced or not and can
disable the sync if it's been enabled in error (if one of the devices
is off, you seemed to be saying that might cause problems).
> delay between the two amps. The VPBR links the brown out on the
> two amps and the OTW links the over temperature warning.
It's not clear to me when it'd make sense to disable these from a system
integration point of view.
> The issue is really one of it being use-case specific whether the
> amps are being used independently or in a stereo configuration.
> You could have only a single amp in use in which case the sync
> features are best turned off. Or one might even have use-cases
> with both amps where they are being used independently but at the
> same time.
It feels like if this is going to be user controllable the UI needs to
be pulled up a level to be something like an on/off switch for the sync
rather than a series of magic _EXT controls on the individual CODECs.
Even if it is magic _EXT controls having them being per device feels
wrong.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2017-06-02 17:11 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-05-18 15:32 [PATCH 1/4] ASoC: cs35l35: Add Boost Inductor Calculation Charles Keepax
2017-05-18 15:32 ` [PATCH 4/4] ASoC: cs35l35: Add multi-device synchronisation Charles Keepax
[not found] ` <1495121559-1063-4-git-send-email-ckeepax-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2017-05-29 13:53 ` Mark Brown
2017-05-30 8:51 ` Charles Keepax
2017-06-01 11:45 ` Charles Keepax
[not found] ` <20170530085138.GR1594-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2017-06-02 17:11 ` Mark Brown
[not found] ` <1495121559-1063-1-git-send-email-ckeepax-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2017-05-18 15:32 ` [PATCH 2/4] ASoC: cs35l35: Add DT handling for Inductor Charles Keepax
[not found] ` <1495121559-1063-2-git-send-email-ckeepax-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2017-05-19 17:03 ` Applied "ASoC: cs35l35: Add DT handling for Inductor" to the asoc tree Mark Brown
2017-05-18 15:32 ` [PATCH 3/4] ASoC: cs35l35: Correctly handle 0 for bst_ipk Charles Keepax
[not found] ` <1495121559-1063-3-git-send-email-ckeepax-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2017-05-19 17:03 ` Applied "ASoC: cs35l35: Correctly handle 0 for bst_ipk" to the asoc tree Mark Brown
2017-05-19 17:03 ` Applied "ASoC: cs35l35: Add Boost Inductor Calculation" " Mark Brown
2017-05-22 13:18 ` [PATCH 1/4] ASoC: cs35l35: Add Boost Inductor Calculation Austin, Brian
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).