* [PATCH v2 0/7] ASoC: tlv320aic26: Add device tree support and bug fixes
@ 2019-03-21 22:15 Cormier, Jonathan
2019-03-21 22:15 ` [PATCH v2 1/7] ASoC: tlv320aic26: Allow tlv320aic26 to be selected in menuconfig Cormier, Jonathan
` (6 more replies)
0 siblings, 7 replies; 10+ messages in thread
From: Cormier, Jonathan @ 2019-03-21 22:15 UTC (permalink / raw)
To: Liam Girdwood, devicetree
Cc: Bob Duke, Mike Williamson, Greg Gluszek, Rob Herring, Mark Brown,
Jaroslav Kysela, Takashi Iwai, Peter Ujfalusi, Jyri Sarha,
Misael Lopez Cruz, alsa-devel, linux-kernel
Hi,
The following patches were created to get the tlv320aic26 working
on our AM335x SoM.
I'm resubmitting this patch series. Previous version here:
https://lore.kernel.org/patchwork/cover/601439/
This patch series relies on the following patch for proper operation.
commit 93d0ad8f374c ("ASoC: tlv320aic26: Convert to params_width()")
Changes since RFC:
- Removed the unnecessary "#if defined(CONFIG_OF)"
- Dropped the DSP_B patch
Changes since V1:
- Reordered Kconfig patch to first so each patch can be built
- Rebased changes to Linux 5.1-rc1
Cormier, Jonathan (7):
ASoC: tlv320aic26: Allow tlv320aic26 to be selected in menuconfig
dt-bindings: ASoC: tlv320aic26: Add device tree binding
ASoC: tlv320aic26: Add device tree binding
ASoC: tlv320aic26: Fix module autoload
ASoC: tlv320aic26: Fix regmap by setting reg_defaults and reg_stride
ASoC: tlv320aic26: hw_params was unintentionally clearing AIC26 master
mode
ASoC: tlv320aic26: Change Capture Mute to Capture Switch to match alsa
documentation.
.../devicetree/bindings/sound/tlv320aic26.txt | 65 +++++++++++++++++++
sound/soc/codecs/Kconfig | 4 +-
sound/soc/codecs/tlv320aic26.c | 55 ++++++++++++++--
3 files changed, 116 insertions(+), 8 deletions(-)
create mode 100644 Documentation/devicetree/bindings/sound/tlv320aic26.txt
--
2.21.0
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 1/7] ASoC: tlv320aic26: Allow tlv320aic26 to be selected in menuconfig
2019-03-21 22:15 [PATCH v2 0/7] ASoC: tlv320aic26: Add device tree support and bug fixes Cormier, Jonathan
@ 2019-03-21 22:15 ` Cormier, Jonathan
2019-03-21 22:15 ` [PATCH v2 2/7] dt-bindings: ASoC: tlv320aic26: Add device tree binding Cormier, Jonathan
` (5 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Cormier, Jonathan @ 2019-03-21 22:15 UTC (permalink / raw)
To: Liam Girdwood, devicetree
Cc: Bob Duke, Mike Williamson, Greg Gluszek, Rob Herring, Mark Brown,
Jaroslav Kysela, Takashi Iwai, Peter Ujfalusi, Jyri Sarha,
Misael Lopez Cruz, alsa-devel, linux-kernel
Without a description you can't select the device in menuconfig
Set depends to SPI_MASTER to match conditional in SND_SOC_ALL_CODECS
Signed-off-by: Cormier, Jonathan <jcormier@criticallink.com>
---
sound/soc/codecs/Kconfig | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
index 419114edfd57..cd697a015819 100644
--- a/sound/soc/codecs/Kconfig
+++ b/sound/soc/codecs/Kconfig
@@ -1087,8 +1087,8 @@ config SND_SOC_TLV320AIC23_SPI
select SND_SOC_TLV320AIC23
config SND_SOC_TLV320AIC26
- tristate
- depends on SPI
+ tristate "Texas Instruments TLV320AIC26 audio CODEC - SPI"
+ depends on SPI_MASTER
config SND_SOC_TLV320AIC31XX
tristate "Texas Instruments TLV320AIC31xx CODECs"
--
2.21.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2 2/7] dt-bindings: ASoC: tlv320aic26: Add device tree binding
2019-03-21 22:15 [PATCH v2 0/7] ASoC: tlv320aic26: Add device tree support and bug fixes Cormier, Jonathan
2019-03-21 22:15 ` [PATCH v2 1/7] ASoC: tlv320aic26: Allow tlv320aic26 to be selected in menuconfig Cormier, Jonathan
@ 2019-03-21 22:15 ` Cormier, Jonathan
2019-03-31 6:41 ` Rob Herring
2019-03-21 22:15 ` [PATCH v2 3/7] " Cormier, Jonathan
` (4 subsequent siblings)
6 siblings, 1 reply; 10+ messages in thread
From: Cormier, Jonathan @ 2019-03-21 22:15 UTC (permalink / raw)
To: Liam Girdwood, devicetree
Cc: Bob Duke, Mike Williamson, Greg Gluszek, Rob Herring, Mark Brown,
Jaroslav Kysela, Takashi Iwai, Peter Ujfalusi, Jyri Sarha,
Misael Lopez Cruz, alsa-devel, linux-kernel
Add support for the TI tlv320aic26 sound codec
Signed-off-by: Cormier, Jonathan <jcormier@criticallink.com>
---
.../devicetree/bindings/sound/tlv320aic26.txt | 65 +++++++++++++++++++
1 file changed, 65 insertions(+)
create mode 100644 Documentation/devicetree/bindings/sound/tlv320aic26.txt
diff --git a/Documentation/devicetree/bindings/sound/tlv320aic26.txt b/Documentation/devicetree/bindings/sound/tlv320aic26.txt
new file mode 100644
index 000000000000..93aa0f76ec0d
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/tlv320aic26.txt
@@ -0,0 +1,65 @@
+Texas Instruments - tlv320aic26 Codec module
+
+The tlv320aic26 serial control bus communicates through I2C protocols
+
+Required properties:
+
+- compatible - "string" - One of:
+ "ti,tlv320aic26" - TLV320AIC26
+- reg - <int> - SPI chip select
+
+CODEC input pins:
+ * MICIN
+ * AUX
+
+CODEC output pins:
+ * HPL
+ * HPR
+
+The pins can be used in referring sound node's audio-routing property.
+
+Example:
+
+tlv320aic26: tlv320aic26@0 {
+ compatible = "ti,tlv320aic26";
+ reg = <0>;
+};
+
+&spi0 {
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <&spi0_pins>;
+ pinctrl-1 = <&spi0_sleep_pins>;
+
+ status = "okay";
+ ti,pindir-d0-out-d1-in = <1>;
+
+ tlv320aic26: tlv320aic26@1 {
+ compatible = "ti,tlv320aic26";
+ reg = <0x1>;
+ status = "okay";
+
+ spi-max-frequency = <2000000>;
+ spi-cpha;
+ };
+};
+
+sound {
+ compatible = "simple-audio-card";
+ simple-audio-card,name = "AM335x_SND";
+ simple-audio-card,format = "dsp_b";
+ /* SND_SOC_DAIFMT_CBM_CFM */
+ simple-audio-card,bitclock-master = <&tlv320aic26_codec>;
+ simple-audio-card,frame-master = <&tlv320aic26_codec>;
+ /* SND_SOC_DAIFMT_IB_NF */
+ simple-audio-card,bitclock-inversion;
+
+ simple-audio-card,cpu {
+ sound-dai = <&mcasp1>;
+ system-clock-frequency = <24576000>;
+ };
+
+ tlv320aic26_codec: simple-audio-card,codec {
+ sound-dai = <&tlv320aic26>;
+ system-clock-frequency = <24576000>;
+ };
+};
--
2.21.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2 3/7] ASoC: tlv320aic26: Add device tree binding
2019-03-21 22:15 [PATCH v2 0/7] ASoC: tlv320aic26: Add device tree support and bug fixes Cormier, Jonathan
2019-03-21 22:15 ` [PATCH v2 1/7] ASoC: tlv320aic26: Allow tlv320aic26 to be selected in menuconfig Cormier, Jonathan
2019-03-21 22:15 ` [PATCH v2 2/7] dt-bindings: ASoC: tlv320aic26: Add device tree binding Cormier, Jonathan
@ 2019-03-21 22:15 ` Cormier, Jonathan
2019-03-21 22:15 ` [PATCH v2 4/7] ASoC: tlv320aic26: Fix module autoload Cormier, Jonathan
` (3 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Cormier, Jonathan @ 2019-03-21 22:15 UTC (permalink / raw)
To: Liam Girdwood, devicetree
Cc: Bob Duke, Mike Williamson, Greg Gluszek, Rob Herring, Mark Brown,
Jaroslav Kysela, Takashi Iwai, Peter Ujfalusi, Jyri Sarha,
Misael Lopez Cruz, alsa-devel, linux-kernel
Add support for the TI tlv320aic26 sound codec
Signed-off-by: Cormier, Jonathan <jcormier@criticallink.com>
---
sound/soc/codecs/tlv320aic26.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/sound/soc/codecs/tlv320aic26.c b/sound/soc/codecs/tlv320aic26.c
index b91b8d5f1ba3..5c9b320b918c 100644
--- a/sound/soc/codecs/tlv320aic26.c
+++ b/sound/soc/codecs/tlv320aic26.c
@@ -368,9 +368,16 @@ static int aic26_spi_probe(struct spi_device *spi)
return ret;
}
+static const struct of_device_id tlv320aic26_of_match[] = {
+ { .compatible = "ti,tlv320aic26", },
+ {},
+};
+MODULE_DEVICE_TABLE(of, tlv320aic26_of_match);
+
static struct spi_driver aic26_spi = {
.driver = {
.name = "tlv320aic26-codec",
+ .of_match_table = of_match_ptr(tlv320aic26_of_match),
},
.probe = aic26_spi_probe,
};
--
2.21.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2 4/7] ASoC: tlv320aic26: Fix module autoload
2019-03-21 22:15 [PATCH v2 0/7] ASoC: tlv320aic26: Add device tree support and bug fixes Cormier, Jonathan
` (2 preceding siblings ...)
2019-03-21 22:15 ` [PATCH v2 3/7] " Cormier, Jonathan
@ 2019-03-21 22:15 ` Cormier, Jonathan
2019-03-21 22:15 ` [PATCH v2 5/7] ASoC: tlv320aic26: Fix regmap by setting reg_defaults and reg_stride Cormier, Jonathan
` (2 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Cormier, Jonathan @ 2019-03-21 22:15 UTC (permalink / raw)
To: Liam Girdwood, devicetree
Cc: Bob Duke, Mike Williamson, Greg Gluszek, Rob Herring, Mark Brown,
Jaroslav Kysela, Takashi Iwai, Peter Ujfalusi, Jyri Sarha,
Misael Lopez Cruz, alsa-devel, linux-kernel
Add the missing MODULE_DEVICE_TABLE() for OF and SPI to export
the information so modules have the correct aliases built-in and
autoloading works correctly.
A longer explanation by Javier Canillas can be found here:
https://lkml.org/lkml/2015/7/30/519
https://lkml.org/lkml/2014/9/11/458
Signed-off-by: Cormier, Jonathan <jcormier@criticallink.com>
---
sound/soc/codecs/tlv320aic26.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/sound/soc/codecs/tlv320aic26.c b/sound/soc/codecs/tlv320aic26.c
index 5c9b320b918c..db1d1704ae5c 100644
--- a/sound/soc/codecs/tlv320aic26.c
+++ b/sound/soc/codecs/tlv320aic26.c
@@ -368,6 +368,12 @@ static int aic26_spi_probe(struct spi_device *spi)
return ret;
}
+static const struct spi_device_id tlv320aic26_id_table[] = {
+ { "tlv320aic26" },
+ {},
+};
+MODULE_DEVICE_TABLE(spi, tlv320aic26_id_table);
+
static const struct of_device_id tlv320aic26_of_match[] = {
{ .compatible = "ti,tlv320aic26", },
{},
@@ -380,6 +386,7 @@ static struct spi_driver aic26_spi = {
.of_match_table = of_match_ptr(tlv320aic26_of_match),
},
.probe = aic26_spi_probe,
+ .id_table = tlv320aic26_id_table,
};
module_spi_driver(aic26_spi);
--
2.21.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2 5/7] ASoC: tlv320aic26: Fix regmap by setting reg_defaults and reg_stride
2019-03-21 22:15 [PATCH v2 0/7] ASoC: tlv320aic26: Add device tree support and bug fixes Cormier, Jonathan
` (3 preceding siblings ...)
2019-03-21 22:15 ` [PATCH v2 4/7] ASoC: tlv320aic26: Fix module autoload Cormier, Jonathan
@ 2019-03-21 22:15 ` Cormier, Jonathan
2019-03-21 22:15 ` [PATCH v2 6/7] ASoC: tlv320aic26: hw_params was unintentionally clearing AIC26 master mode Cormier, Jonathan
2019-03-21 22:15 ` [PATCH v2 7/7] ASoC: tlv320aic26: Change Capture Mute to Capture Switch to match alsa documentation Cormier, Jonathan
6 siblings, 0 replies; 10+ messages in thread
From: Cormier, Jonathan @ 2019-03-21 22:15 UTC (permalink / raw)
To: Liam Girdwood, devicetree
Cc: Bob Duke, Mike Williamson, Greg Gluszek, Rob Herring, Mark Brown,
Jaroslav Kysela, Takashi Iwai, Peter Ujfalusi, Jyri Sarha,
Misael Lopez Cruz, alsa-devel, linux-kernel
tlv320aic26 codec wasn't being setup correctly on bootup due to
a misconfigured regmap cache.
Fixes: b7e9f3973279 "ASoC: tlv320aic26: Convert to direct regmap API usage"
Signed-off-by: Cormier, Jonathan <jcormier@criticallink.com>
---
sound/soc/codecs/tlv320aic26.c | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/sound/soc/codecs/tlv320aic26.c b/sound/soc/codecs/tlv320aic26.c
index db1d1704ae5c..cd1bcb9cbfe1 100644
--- a/sound/soc/codecs/tlv320aic26.c
+++ b/sound/soc/codecs/tlv320aic26.c
@@ -41,6 +41,27 @@ struct aic26 {
int keyclick_len;
};
+static const struct reg_default aic26_reg[] = {
+ /* Page 0 */
+ { 0x00A0, 0x0000 }, { 0x00C0, 0x0000 }, { 0x00E0, 0x0000 },
+ { 0x0120, 0x0000 }, { 0x0140, 0x0000 },
+ /* Page 1 */
+ { 0x0800, 0x0000 }, { 0x0820, 0x8000 }, { 0x0860, 0x0002 },
+ { 0x0880, 0xFFFF },
+ /* Page 2 */
+ { 0x1000, 0x0000 }, { 0x1020, 0x8000 }, { 0x1040, 0xFFFF },
+ { 0x1060, 0xC580 }, { 0x1080, 0x4410 }, { 0x10A0, 0xAFC0 },
+ { 0x10C0, 0x0000 }, { 0x10E0, 27619 }, { 0x1100, -27034 },
+ { 0x1120, 26461 }, { 0x1140, 27619 }, { 0x1160, -27034 },
+ { 0x1180, 26461 }, { 0x11A0, 32131 }, { 0x11C0, -31506 },
+ { 0x11E0, 32131 }, { 0x1200, -31506 }, { 0x1220, 27619 },
+ { 0x1240, -27034 }, { 0x1260, 26461 }, { 0x1280, 27619 },
+ { 0x12A0, -27034 }, { 0x12C0, 26461 }, { 0x12E0, 32131 },
+ { 0x1300, -31506 }, { 0x1320, 32131 }, { 0x1340, -31506 },
+ { 0x1360, 0x1004 }, { 0x1380, 0x0000 }, { 0x13A0, 0x0000 },
+ { 0x13C0, 0xFE00 },
+};
+
static const struct snd_soc_dapm_widget tlv320aic26_dapm_widgets[] = {
SND_SOC_DAPM_INPUT("MICIN"),
SND_SOC_DAPM_INPUT("AUX"),
@@ -336,6 +357,13 @@ static const struct snd_soc_component_driver aic26_soc_component_dev = {
static const struct regmap_config aic26_regmap = {
.reg_bits = 16,
.val_bits = 16,
+ /* AIC26_PAGE_ADDR(0, 0x01) */
+ .reg_stride = 0x20,
+
+ .max_register = AIC26_REG_AUDIO_CTRL5,
+ .reg_defaults = aic26_reg,
+ .num_reg_defaults = ARRAY_SIZE(aic26_reg),
+ .cache_type = REGCACHE_RBTREE,
};
/* ---------------------------------------------------------------------
--
2.21.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2 6/7] ASoC: tlv320aic26: hw_params was unintentionally clearing AIC26 master mode
2019-03-21 22:15 [PATCH v2 0/7] ASoC: tlv320aic26: Add device tree support and bug fixes Cormier, Jonathan
` (4 preceding siblings ...)
2019-03-21 22:15 ` [PATCH v2 5/7] ASoC: tlv320aic26: Fix regmap by setting reg_defaults and reg_stride Cormier, Jonathan
@ 2019-03-21 22:15 ` Cormier, Jonathan
2019-03-21 22:15 ` [PATCH v2 7/7] ASoC: tlv320aic26: Change Capture Mute to Capture Switch to match alsa documentation Cormier, Jonathan
6 siblings, 0 replies; 10+ messages in thread
From: Cormier, Jonathan @ 2019-03-21 22:15 UTC (permalink / raw)
To: Liam Girdwood, devicetree
Cc: Bob Duke, Mike Williamson, Greg Gluszek, Rob Herring, Mark Brown,
Jaroslav Kysela, Takashi Iwai, Peter Ujfalusi, Jyri Sarha,
Misael Lopez Cruz, alsa-devel, linux-kernel
Commit 5b0959d472c2 ("ASoC: tlv320aic26: Use snd_soc_update_bits()")
broke setting AIC26_REG_AUDIO_CTRL3 in master mode when fsref happens
to be 48000. The master mode bit was getting cleared.
Also fix setting AIC26_REG_DAC_GAIN and AIC26_REG_AUDIO_CTRL2 which
was broke by same commit.
Fixes 5b0959d472c2 ("ASoC: tlv320aic26: Use snd_soc_update_bits()")
Signed-off-by: Cormier, Jonathan <jcormier@criticallink.com>
---
sound/soc/codecs/tlv320aic26.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/sound/soc/codecs/tlv320aic26.c b/sound/soc/codecs/tlv320aic26.c
index cd1bcb9cbfe1..c6ff4ca29d43 100644
--- a/sound/soc/codecs/tlv320aic26.c
+++ b/sound/soc/codecs/tlv320aic26.c
@@ -138,11 +138,12 @@ static int aic26_hw_params(struct snd_pcm_substream *substream,
snd_soc_component_write(component, AIC26_REG_PLL_PROG2, reg);
/* Audio Control 3 (master mode, fsref rate) */
+ reg = 0;
if (aic26->master)
- reg = 0x0800;
+ reg |= 0x0800;
if (fsref == 48000)
- reg = 0x2000;
- snd_soc_component_update_bits(component, AIC26_REG_AUDIO_CTRL3, 0xf800, reg);
+ reg |= 0x2000;
+ snd_soc_component_update_bits(component, AIC26_REG_AUDIO_CTRL3, 0x2800, reg);
/* Audio Control 1 (FSref divisor) */
reg = wlen | aic26->datfm | (divisor << 3) | divisor;
@@ -167,7 +168,7 @@ static int aic26_mute(struct snd_soc_dai *dai, int mute)
reg = 0x8080;
else
reg = 0;
- snd_soc_component_update_bits(component, AIC26_REG_DAC_GAIN, 0x8000, reg);
+ snd_soc_component_update_bits(component, AIC26_REG_DAC_GAIN, 0x8080, reg);
return 0;
}
@@ -302,7 +303,7 @@ static ssize_t aic26_keyclick_set(struct device *dev,
struct aic26 *aic26 = dev_get_drvdata(dev);
snd_soc_component_update_bits(aic26->component, AIC26_REG_AUDIO_CTRL2,
- 0x8000, 0x800);
+ 0x8000, 0x8000);
return count;
}
--
2.21.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2 7/7] ASoC: tlv320aic26: Change Capture Mute to Capture Switch to match alsa documentation.
2019-03-21 22:15 [PATCH v2 0/7] ASoC: tlv320aic26: Add device tree support and bug fixes Cormier, Jonathan
` (5 preceding siblings ...)
2019-03-21 22:15 ` [PATCH v2 6/7] ASoC: tlv320aic26: hw_params was unintentionally clearing AIC26 master mode Cormier, Jonathan
@ 2019-03-21 22:15 ` Cormier, Jonathan
6 siblings, 0 replies; 10+ messages in thread
From: Cormier, Jonathan @ 2019-03-21 22:15 UTC (permalink / raw)
To: Liam Girdwood, devicetree
Cc: Bob Duke, Mike Williamson, Greg Gluszek, Rob Herring, Mark Brown,
Jaroslav Kysela, Takashi Iwai, Peter Ujfalusi, Jyri Sarha,
Misael Lopez Cruz, alsa-devel, linux-kernel
Control name needs to match Switch for alsa to use it as the channel mute
Signed-off-by: Cormier, Jonathan <jcormier@criticallink.com>
---
sound/soc/codecs/tlv320aic26.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/codecs/tlv320aic26.c b/sound/soc/codecs/tlv320aic26.c
index c6ff4ca29d43..3935be79b091 100644
--- a/sound/soc/codecs/tlv320aic26.c
+++ b/sound/soc/codecs/tlv320aic26.c
@@ -269,7 +269,7 @@ static const struct snd_kcontrol_new aic26_snd_controls[] = {
SOC_DOUBLE("PCM Playback Volume", AIC26_REG_DAC_GAIN, 8, 0, 0x7f, 1),
SOC_DOUBLE("PCM Playback Switch", AIC26_REG_DAC_GAIN, 15, 7, 1, 1),
SOC_SINGLE("PCM Capture Volume", AIC26_REG_ADC_GAIN, 8, 0x7f, 0),
- SOC_SINGLE("PCM Capture Mute", AIC26_REG_ADC_GAIN, 15, 1, 1),
+ SOC_SINGLE("PCM Capture Switch", AIC26_REG_ADC_GAIN, 15, 1, 1),
SOC_SINGLE("Keyclick activate", AIC26_REG_AUDIO_CTRL2, 15, 0x1, 0),
SOC_SINGLE("Keyclick amplitude", AIC26_REG_AUDIO_CTRL2, 12, 0x7, 0),
SOC_SINGLE("Keyclick frequency", AIC26_REG_AUDIO_CTRL2, 8, 0x7, 0),
--
2.21.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v2 2/7] dt-bindings: ASoC: tlv320aic26: Add device tree binding
2019-03-21 22:15 ` [PATCH v2 2/7] dt-bindings: ASoC: tlv320aic26: Add device tree binding Cormier, Jonathan
@ 2019-03-31 6:41 ` Rob Herring
0 siblings, 0 replies; 10+ messages in thread
From: Rob Herring @ 2019-03-31 6:41 UTC (permalink / raw)
To: Cormier, Jonathan
Cc: Liam Girdwood, devicetree, Bob Duke, Mike Williamson,
Greg Gluszek, Mark Brown, Jaroslav Kysela, Takashi Iwai,
Peter Ujfalusi, Jyri Sarha, Misael Lopez Cruz, alsa-devel,
linux-kernel
On Thu, Mar 21, 2019 at 06:15:44PM -0400, Cormier, Jonathan wrote:
> Add support for the TI tlv320aic26 sound codec
>
> Signed-off-by: Cormier, Jonathan <jcormier@criticallink.com>
> ---
> .../devicetree/bindings/sound/tlv320aic26.txt | 65 +++++++++++++++++++
> 1 file changed, 65 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/sound/tlv320aic26.txt
>
> diff --git a/Documentation/devicetree/bindings/sound/tlv320aic26.txt b/Documentation/devicetree/bindings/sound/tlv320aic26.txt
> new file mode 100644
> index 000000000000..93aa0f76ec0d
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/tlv320aic26.txt
> @@ -0,0 +1,65 @@
> +Texas Instruments - tlv320aic26 Codec module
> +
> +The tlv320aic26 serial control bus communicates through I2C protocols
> +
> +Required properties:
> +
> +- compatible - "string" - One of:
> + "ti,tlv320aic26" - TLV320AIC26
> +- reg - <int> - SPI chip select
> +
> +CODEC input pins:
> + * MICIN
> + * AUX
> +
> +CODEC output pins:
> + * HPL
> + * HPR
> +
> +The pins can be used in referring sound node's audio-routing property.
> +
> +Example:
> +
> +tlv320aic26: tlv320aic26@0 {
audio-codec@0
> + compatible = "ti,tlv320aic26";
> + reg = <0>;
> +};
> +
> +&spi0 {
> + pinctrl-names = "default", "sleep";
> + pinctrl-0 = <&spi0_pins>;
> + pinctrl-1 = <&spi0_sleep_pins>;
> +
> + status = "okay";
Don't show status in examples.
> + ti,pindir-d0-out-d1-in = <1>;
> +
> + tlv320aic26: tlv320aic26@1 {
This split is convention, but outside the scope of binding docs, so
please just show the complete node.
> + compatible = "ti,tlv320aic26";
> + reg = <0x1>;
> + status = "okay";
> +
> + spi-max-frequency = <2000000>;
> + spi-cpha;
> + };
> +};
> +
> +sound {
> + compatible = "simple-audio-card";
> + simple-audio-card,name = "AM335x_SND";
> + simple-audio-card,format = "dsp_b";
> + /* SND_SOC_DAIFMT_CBM_CFM */
> + simple-audio-card,bitclock-master = <&tlv320aic26_codec>;
> + simple-audio-card,frame-master = <&tlv320aic26_codec>;
> + /* SND_SOC_DAIFMT_IB_NF */
> + simple-audio-card,bitclock-inversion;
> +
> + simple-audio-card,cpu {
> + sound-dai = <&mcasp1>;
> + system-clock-frequency = <24576000>;
> + };
> +
> + tlv320aic26_codec: simple-audio-card,codec {
> + sound-dai = <&tlv320aic26>;
> + system-clock-frequency = <24576000>;
> + };
> +};
> --
> 2.21.0
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 0/7] ASoC: tlv320aic26: Add device tree support and bug fixes
@ 2019-03-21 22:14 Cormier, Jonathan
0 siblings, 0 replies; 10+ messages in thread
From: Cormier, Jonathan @ 2019-03-21 22:14 UTC (permalink / raw)
To: Liam Girdwood, devicetree
Cc: Cormier, Jonathan, Bob Duke, Mike Williamson, Greg Gluszek,
Rob Herring, Mark Brown, Jaroslav Kysela, Takashi Iwai,
Peter Ujfalusi, Jyri Sarha, Misael Lopez Cruz, alsa-devel,
linux-kernel
Hi,
The following patches were created to get the tlv320aic26 working
on our AM335x SoM.
I'm resubmitting this patch series. Previous version here:
https://lore.kernel.org/patchwork/cover/601439/
This patch series relies on the following patch for proper operation.
commit 93d0ad8f374c ("ASoC: tlv320aic26: Convert to params_width()")
Changes since RFC:
- Removed the unnecessary "#if defined(CONFIG_OF)"
- Dropped the DSP_B patch
Changes since V1:
- Reordered Kconfig patch to first so each patch can be built
- Rebased changes to Linux 5.1-rc1
Cormier, Jonathan (7):
ASoC: tlv320aic26: Allow tlv320aic26 to be selected in menuconfig
dt-bindings: ASoC: tlv320aic26: Add device tree binding
ASoC: tlv320aic26: Add device tree binding
ASoC: tlv320aic26: Fix module autoload
ASoC: tlv320aic26: Fix regmap by setting reg_defaults and reg_stride
ASoC: tlv320aic26: hw_params was unintentionally clearing AIC26 master
mode
ASoC: tlv320aic26: Change Capture Mute to Capture Switch to match alsa
documentation.
.../devicetree/bindings/sound/tlv320aic26.txt | 65 +++++++++++++++++++
sound/soc/codecs/Kconfig | 4 +-
sound/soc/codecs/tlv320aic26.c | 55 ++++++++++++++--
3 files changed, 116 insertions(+), 8 deletions(-)
create mode 100644 Documentation/devicetree/bindings/sound/tlv320aic26.txt
--
2.21.0
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2019-03-31 6:41 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-21 22:15 [PATCH v2 0/7] ASoC: tlv320aic26: Add device tree support and bug fixes Cormier, Jonathan
2019-03-21 22:15 ` [PATCH v2 1/7] ASoC: tlv320aic26: Allow tlv320aic26 to be selected in menuconfig Cormier, Jonathan
2019-03-21 22:15 ` [PATCH v2 2/7] dt-bindings: ASoC: tlv320aic26: Add device tree binding Cormier, Jonathan
2019-03-31 6:41 ` Rob Herring
2019-03-21 22:15 ` [PATCH v2 3/7] " Cormier, Jonathan
2019-03-21 22:15 ` [PATCH v2 4/7] ASoC: tlv320aic26: Fix module autoload Cormier, Jonathan
2019-03-21 22:15 ` [PATCH v2 5/7] ASoC: tlv320aic26: Fix regmap by setting reg_defaults and reg_stride Cormier, Jonathan
2019-03-21 22:15 ` [PATCH v2 6/7] ASoC: tlv320aic26: hw_params was unintentionally clearing AIC26 master mode Cormier, Jonathan
2019-03-21 22:15 ` [PATCH v2 7/7] ASoC: tlv320aic26: Change Capture Mute to Capture Switch to match alsa documentation Cormier, Jonathan
-- strict thread matches above, loose matches on Subject: below --
2019-03-21 22:14 [PATCH v2 0/7] ASoC: tlv320aic26: Add device tree support and bug fixes Cormier, Jonathan
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.