mirror of
https://github.com/torvalds/linux.git
synced 2026-09-23 22:14:03 +02:00
ASoC: Add support for the Qualcomm WSA885X Stereo smart speaker amplifier
Prasad Kumpatla <prasad.kumpatla@oss.qualcomm.com> says: The series first documents the WSA885X devicetree binding, including supplies, GPIOs, Interrupt and battery configuration. It then adds the ASoC codec driver with register programming, serial interface setup, clock handling, mute and gain control, reset handling, interrupt support, runtime TDM slot-count configuration, and stream-time power-state sequencing. validated speaker playback on Shikra and Hawi platforms. Link: https://patch.msgid.link/20260715115220.3093799-1-prasad.kumpatla@oss.qualcomm.com
This commit is contained in:
commit
dbc2afea82
93
Documentation/devicetree/bindings/sound/qcom,wsa8855.yaml
Normal file
93
Documentation/devicetree/bindings/sound/qcom,wsa8855.yaml
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/qcom,wsa8855.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm WSA8855 stereo smart speaker amplifier
|
||||
|
||||
maintainers:
|
||||
- Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
|
||||
- Prasad Kumpatla <prasad.kumpatla@oss.qualcomm.com>
|
||||
|
||||
description:
|
||||
WSA885X is a Qualcomm Aqstic stereo smart speaker amplifier. It uses a PCM
|
||||
audio interface, an I2C control interface, and a Class-H amplifier path for
|
||||
high efficiency, low output noise, and low idle power consumption.
|
||||
|
||||
allOf:
|
||||
- $ref: dai-common.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,wsa8855
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
'#sound-dai-cells':
|
||||
const: 0
|
||||
|
||||
powerdown-gpios:
|
||||
description: GPIO controlling the SD_N powerdown pin.
|
||||
maxItems: 1
|
||||
|
||||
reset-gpios:
|
||||
description: GPIO controlling the SD_N powerdown pin.
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
vdd-1p8-supply: true
|
||||
|
||||
vdd-io-supply: true
|
||||
|
||||
qcom,battery-config:
|
||||
description:
|
||||
Battery topology connected to the speaker amplifier. 1S indicates one
|
||||
battery cell in series, while 2S indicates two battery cells in series.
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
default: 1s
|
||||
enum:
|
||||
- 1s
|
||||
- 2s
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- '#sound-dai-cells'
|
||||
- interrupts
|
||||
- vdd-1p8-supply
|
||||
- vdd-io-supply
|
||||
|
||||
oneOf:
|
||||
- required:
|
||||
- powerdown-gpios
|
||||
- required:
|
||||
- reset-gpios
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
speaker@c {
|
||||
compatible = "qcom,wsa8855";
|
||||
reg = <0x0c>;
|
||||
#sound-dai-cells = <0>;
|
||||
powerdown-gpios = <&tlmm 11 GPIO_ACTIVE_LOW>;
|
||||
interrupt-parent = <&tlmm>;
|
||||
interrupts = <77 IRQ_TYPE_EDGE_FALLING>;
|
||||
vdd-1p8-supply = <&vreg_l2g_1p8>;
|
||||
vdd-io-supply = <&vreg_l1g_1p2>;
|
||||
qcom,battery-config = "1s";
|
||||
};
|
||||
};
|
||||
...
|
||||
|
|
@ -367,6 +367,7 @@ config SND_SOC_ALL_CODECS
|
|||
imply SND_SOC_WSA881X
|
||||
imply SND_SOC_WSA883X
|
||||
imply SND_SOC_WSA884X
|
||||
imply SND_SOC_WSA885X
|
||||
imply SND_SOC_ZL38060
|
||||
help
|
||||
Normally ASoC codec drivers are only built if a machine driver which
|
||||
|
|
@ -2775,6 +2776,16 @@ config SND_SOC_WSA884X
|
|||
This enables support for Qualcomm WSA8840/WSA8845/WSA8845H Class-D
|
||||
Smart Speaker Amplifier.
|
||||
|
||||
config SND_SOC_WSA885X
|
||||
tristate "WSA885X Codec"
|
||||
depends on I2C
|
||||
select REGMAP_I2C
|
||||
help
|
||||
This enables support for Qualcomm WSA885X Stereo Smart Speaker
|
||||
Amplifier. The codec driver programs the amplifier register
|
||||
map and exposes the DAI and mixer controls used by Qualcomm
|
||||
audio machine drivers.
|
||||
|
||||
config SND_SOC_ZL38060
|
||||
tristate "Microsemi ZL38060 Connected Home Audio Processor"
|
||||
depends on SPI_MASTER
|
||||
|
|
|
|||
|
|
@ -427,6 +427,7 @@ snd-soc-wm-hubs-y := wm_hubs.o
|
|||
snd-soc-wsa881x-y := wsa881x.o
|
||||
snd-soc-wsa883x-y := wsa883x.o
|
||||
snd-soc-wsa884x-y := wsa884x.o
|
||||
snd-soc-wsa885x-y := wsa885x.o
|
||||
snd-soc-zl38060-y := zl38060.o
|
||||
# Amp
|
||||
snd-soc-max9877-y := max9877.o
|
||||
|
|
@ -878,6 +879,7 @@ obj-$(CONFIG_SND_SOC_WM_HUBS) += snd-soc-wm-hubs.o
|
|||
obj-$(CONFIG_SND_SOC_WSA881X) += snd-soc-wsa881x.o
|
||||
obj-$(CONFIG_SND_SOC_WSA883X) += snd-soc-wsa883x.o
|
||||
obj-$(CONFIG_SND_SOC_WSA884X) += snd-soc-wsa884x.o
|
||||
obj-$(CONFIG_SND_SOC_WSA885X) += snd-soc-wsa885x.o
|
||||
obj-$(CONFIG_SND_SOC_ZL38060) += snd-soc-zl38060.o
|
||||
|
||||
# Amp
|
||||
|
|
|
|||
1533
sound/soc/codecs/wsa885x.c
Normal file
1533
sound/soc/codecs/wsa885x.c
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user