ASoC: add support for TAS5805M digital amplifier
Subsystems (3)
v3 cover ASoC: add support for TAS5805M digital amplifier
This pair of patches implements support for the TAS5805M class D audio amplifier. This driver, and the example configuration in the device-tree file, were originally based on a 4.19 series kernel and have been modified slightly from the tested version.
This resubmission differs from v2 as follows:
- The redundant mutex has been removed
- DSP configuration is loaded as a firmware image, rather than directly from the device-tree
- The volume control returns non-zero when the values have changed, as required
- Some corrections to device-tree example
Daniel Beer (2):
ASoC: add support for TAS5805M digital amplifier
ASoC: dt-bindings: add bindings for TI TAS5805M.
.../devicetree/bindings/sound/tas5805m.yaml | 56 ++ sound/soc/codecs/Kconfig | 9 + sound/soc/codecs/Makefile | 2 + sound/soc/codecs/tas5805m.c | 567 ++++++++++++++++++ 4 files changed, 634 insertions(+) create mode 100644 Documentation/devicetree/bindings/sound/tas5805m.yaml create mode 100644 sound/soc/codecs/tas5805m.c
Signature · 1 line
2.30.2
PATCH v3 1/2 ASoC: add support for TAS5805M digital amplifier
The Texas Instruments TAS5805M is a class D audio amplifier with an integrated DSP. DSP configuration is supplied in a firmware image specified through a device-tree attribute.
These register writes set up application-specific DSP settings and are expected to be generated using TI's PPC3 tool.
--- sound/soc/codecs/Kconfig | 9 + sound/soc/codecs/Makefile | 2 + sound/soc/codecs/tas5805m.c | 567 ++++++++++++++++++++++++++++++++++++ 3 files changed, 578 insertions(+) create mode 100644 sound/soc/codecs/tas5805m.c
sound/soc/codecs/Kconfig +9 -0
@@ -1485,6 +1485,15 @@ config SND_SOC_TAS5720 Enable support for Texas Instruments TAS5720L/M high-efficiency mono Class-D audio power amplifiers. +config SND_SOC_TAS5805M + tristate "Texas Instruments TAS5805M speaker amplifier" + depends on I2C + help + Enable support for Texas Instruments TAS5805M Class-D + amplifiers. This is a speaker amplifier with an integrated + DSP. DSP configuration for each instance needs to be supplied + via a device-tree attribute. + config SND_SOC_TAS6424 tristate "Texas Instruments TAS6424 Quad-Channel Audio amplifier" depends on I2C
sound/soc/codecs/Makefile +2 -0
@@ -236,6 +236,7 @@ snd-soc-sti-sas-objs := sti-sas.o snd-soc-tas5086-objs := tas5086.o snd-soc-tas571x-objs := tas571x.o snd-soc-tas5720-objs := tas5720.o +snd-soc-tas5805m-objs := tas5805m.o snd-soc-tas6424-objs := tas6424.o snd-soc-tda7419-objs := tda7419.o snd-soc-tas2770-objs := tas2770.o
@@ -574,6 +575,7 @@ obj-$(CONFIG_SND_SOC_TAS2764) += snd-soc-tas2764.o obj-$(CONFIG_SND_SOC_TAS5086) += snd-soc-tas5086.o obj-$(CONFIG_SND_SOC_TAS571X) += snd-soc-tas571x.o obj-$(CONFIG_SND_SOC_TAS5720) += snd-soc-tas5720.o +obj-$(CONFIG_SND_SOC_TAS5805M) += snd-soc-tas5805m.o obj-$(CONFIG_SND_SOC_TAS6424) += snd-soc-tas6424.o obj-$(CONFIG_SND_SOC_TDA7419) += snd-soc-tda7419.o obj-$(CONFIG_SND_SOC_TAS2770) += snd-soc-tas2770.o
sound/soc/codecs/tas5805m.c new file +567 -0
567 lines not on this page · raw message
Signature · 1 line
2.30.2
PATCH v3 2/2 ASoC: dt-bindings: add bindings for TI TAS5805M.
In reply to Daniel BeerThe TAS5805M is a class D speaker amplifier with integrated DSP. Configuration must be generated by TI's PPC3 tool and supplied as a firmware image.
--- .../devicetree/bindings/sound/tas5805m.yaml | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 Documentation/devicetree/bindings/sound/tas5805m.yaml
Documentation/devicetree/bindings/sound/tas5805m.yaml new file +56 -0
@@ -0,0 +1,56 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/sound/tas5805m.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: TAS5805M audio amplifier + +maintainers: + - Daniel Beer <[email protected]> + +description: | + The TAS5805M is a class D audio amplifier with a built-in DSP. + +properties: + compatible: + enum: + - ti,tas5805m + + reg: + maxItems: 1 + description: | + I2C address of the amplifier. See the datasheet for possible values. + + pvdd-supply: + description: | + Regulator for audio power supply (PVDD in the datasheet). + + pdn-gpios: + description: | + Power-down control GPIO (PDN pin in the datasheet). + + ti,dsp-config-name: + description: | + The name of the DSP configuration that should be loaded for this + instance. Configuration blobs are sequences of register writes + generated from TI's PPC3 tool. + $ref: /schemas/types.yaml#/definitions/string + +examples: + - | + i2c0 { + #address-cells = <1>; + #size-cells = <0>; + tas5805m: tas5805m@2c { + reg = <0x2c>; + compatible = "ti,tas5805m"; + + pvdd-supply = <&audiopwr>; + pdn-gpios = <&tlmm 160 0>; + + ti,dsp-config-name = "mono_pbtl_48khz"; + }; + }; + +additionalProperties: true
Signature · 1 line
2.30.2
Mark Brown
maintainerQuoted 8 lines · Daniel Beer
This pair of patches implements support for the TAS5805M class D audio amplifier. This driver, and the example configuration in the device-tree file, were originally based on a 4.19 series kernel and have been modified slightly from the tested version.
This resubmission differs from v2 as follows:
[...]
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
Thanks!
[1/2] ASoC: add support for TAS5805M digital amplifier
commit: 2e5a74c68d601b11a496f91f76fa7bb236d10bd0
[2/2] ASoC: dt-bindings: add bindings for TI TAS5805M.
commit: b8aec7a4a01b75973c22f004377a48593a3fef03All 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