summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/sound
AgeCommit message (Collapse)Author
10 daysMerge tag 'devicetree-for-7.4' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux Pull devicetree updates from Rob Herring: - A bunch of improvements in dt-check-style. Fix various bindings based on these additional checks. - Convert hisilicon,hix5hd2-ir, hisilicon,hi6220-ade, hisilicon,hi6220-dsi, hisilicon,hip05-sas-v1, MediaTek RT5650 codecs, mediatek,g3dsys, mediatek,mt2701-scpsys, ti,omap-mpu, and ti,omap-ocp2scp to DT schema format - Add schemas for ST STM32MP2 DWC3 xHCI USB, ST STM32MP25 USB2-FEMTO PHY, spacemit,k1-gpu and spacemit,k3-gpu, HiSilicon local bus, HiSilicon HIP05 CPLD, SDMC DM2016, and QCom SM7250 and Kuno PDC - Various binding updates to fix schema warnings in .dts files - Drop obsolete .txt bindings for STM32(MP1) RCC, VExpress hwmon and regulator, and mailbox.txt - Remove the unused of_overlay_remove_all() function - Fixes for of_check_msi_parent() - Add "i2c-parent" tracking to fw_devlink * tag 'devicetree-for-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (72 commits) dt-bindings: usb: dwc3: Document ST STM32MP2 DWC3 xHCI USB controller dt-bindings: iommu: Describe MT8195 infra IRQs dt-bindings: clock: mediatek: Add MT8516 fallbacks dt-bindings: media: Convert hisilicon,hix5hd2-ir to DT schema dt-bindings: display: Convert hisilicon,hi6220-ade to DT schema dt-bindings: display: Convert hisilicon,hi6220-dsi to DT schema dt-bindings: phy: Document ST STM32MP25 USB2-FEMTO PHY of: overlay: remove unused of_overlay_remove_all() dt-bindings: power: Convert mediatek,mt2701-scpsys to DT schema dt-bindings: bus: Add HiSilicon local bus dt-bindings: gpu: img,powervr-rogue: add spacemit,k1-gpu and spacemit,k3-gpu dt-bindings: interrupt-controller: qcom,pdc: Document SM7250 PDC dt-bindings: vendor-prefixes: add Ambarella dt-bindings: reset: Drop obsolete STM32(MP1) RCC bindings dt-bindings: arm: keystone: ti,sci: Correct reg and mboxes constraints dt-bindings: ASoC: Convert MediaTek RT5650 codecs bindings to DT schema dt-bindings: scsi: Convert hisilicon,hip05-sas-v1 to DT schema of/irq: Stop the MSI walk at the first msi-parent of/irq: Fix device node refcount leak in of_check_msi_parent() dt-bindings: display: faraday,tve200: Use a level-high interrupt ...
2026-10-16ASoC: qcom: Add Nord audio supportMark Brown
Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com> says: This series adds audio support for the Qualcomm Nord Ride and RRD boards and includes the required machine driver, device tree binding updates, and codec improvements needed for the board's external audio codec configuration. Nord Ride uses a PCM1681 DAC for playback and an ADAU1979 ADC for capture. Compared to other SC8280XP based platforms, Nord Ride requires board-specific DAI format and codec clock configuration to support the external PCM1681 DAC and ADAU1979 ADC. Link: https://patch.msgid.link/20261009-nord-asoc-driver-support-v3-v3-0-0c1897f21ccf@oss.qualcomm.com
2026-10-16ASoC: dt-bindings: qcom,sm8250: Add Nord sound cardMohammad Rafi Shaik
Document the bindings for the Qualcomm Nord sound card. The bindings are the same as for other newer Qualcomm ADSP sound cards, thus keep them in existing qcom,sm8250.yaml file. Acked-by: Rob Herring (Arm) <robh@kernel.org> Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com> Link: https://patch.msgid.link/20261009-nord-asoc-driver-support-v3-v3-6-0c1897f21ccf@oss.qualcomm.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-16ASoC: dt-bindings: ti,pcm1681: Document the PCM1681 suppliesShawn Guo
The PCM1681 takes a 5V analog supply on VCC1 and VCC2 and a 3.3V digital supply on VDD. On boards where these rails are switchable, the codec has to know about them to be able to power the DAC up and down, which needs a way to describe the connections in Device Tree. Document the VCC1, VCC2 and VDD supply properties. Signed-off-by: Shawn Guo <shengchao.guo@oss.qualcomm.com> Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com> Link: https://patch.msgid.link/20261009-nord-asoc-driver-support-v3-v3-4-0c1897f21ccf@oss.qualcomm.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-16ASoC: dt-bindings: ti,pcm1681: Document the optional SCK clockMohammad Rafi Shaik
The PCM1681 can use an external system clock supplied on the SCK input pin. Platforms that provide this clock need a way to describe the clock connection in Device Tree. Document the optional 'clocks' and 'clock-names' properties and define the clock name as "sck" to represent the external system clock source. This allows boards using an externally supplied SCK clock to accurately describe the hardware configuration. Reviewed-by: Shawn Guo <shengchao.guo@oss.qualcomm.com> Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com> Link: https://patch.msgid.link/20261009-nord-asoc-driver-support-v3-v3-1-0c1897f21ccf@oss.qualcomm.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-16ASoC: dt-bindings: qcom,sm8250: Add Motorola Edge 30 sound cardVal Packett
Document the bindings for the sound card on motorola-dubai which uses the Elite DSP architecture. Signed-off-by: Val Packett <val@packett.cool> Link: https://patch.msgid.link/20261016073157.611956-4-val@packett.cool Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-15ASoC: qcom: Add QAIF driver for Shikra audio platformMark Brown
Harendra Gautam <harendra.gautam@oss.qualcomm.com> says: This series introduces the Qualcomm Audio Interface (QAIF) driver for the Shikra audio platform. Hardware IP Overview ==================== QAIF (Qualcomm Audio Interface) is a fully configurable DMA-based audio subsystem used to transmit and receive audio data over serial audio interfaces (PCM, TDM, MI2S) and to provide a DMA interface for internal codec connections. It manages two independent data paths: AIF (Audio Interface): multiple multi-lane Unified Audio Interfaces, each supporting up to 8 independent data lanes. Each lane is individually configurable as TX (output/speaker) or RX (input/mic). All lanes of an interface share a single bit clock and frame sync. Supported modes are PCM (short/long sync), TDM, and MI2S (stereo/mono). Per-interface configuration includes sync source (master/slave), sync mode, sync delay, sync inversion, slot width (8/16/24/32-bit), sample width, active slot masks (up to 32 slots), bits-per-lane frame size, lane enable/direction masks, loopback, output-enable control, and full-cycle path support for long chip-to-chip connections. CIF (Codec Interface): multiple RDDMA (playback) and WRDMA (capture) channels connecting to an internal codec over a parallel bus. Each channel supports active-channel enable mask (up to 16 channels), frame-sync selection, frame-sync delay, frame-sync output gating, dynamic clock gating, and 16-bit packing/unpacking. Note on RX/TX naming convention: in QAIF, TX refers to the output (speaker/playback) direction and RX refers to the input (mic/capture) direction. This applies to both AIF lane directions and CIF slot/mask properties. DMA Engine: RDDMA fetches audio from DDR/TCM/LPM into a shared SRAM latency buffer (SHRAM) and drains it to the interface. WRDMA collects data from the interface into SHRAM and writes it to memory. Each DMA owns a private SHRAM region defined by start address and length registers. Burst sizes of 1/2/4/8/16 beats (64-bit) are supported with up to 4 outstanding transactions per DMA. Two QSB master ports (QXM0 for TCM, QXM1 for DDR/LPM) provide the memory interface. Execution Environments (EE): Resources (DMAs, audio interfaces, interface groups) are partitioned among up to 5 EEs via map registers. Each EE owns a set of DMAs, audio interfaces, and interface groups, and receives its own independent interrupt output. The interrupt hierarchy has a two-level structure: a summary register identifies the event class (DMA period, underflow/overflow, error response, audio interface underflow/overflow, group done, rate detector, VFR), and per-resource status registers identify the specific channel. Interface Grouping (Bonding): Multiple AIF and CIF interfaces can be bonded into a group to start synchronously and align their DMA period interrupts within half a frame duration using the RDDMA padding feature. Up to 6 groups are supported. Rate Detector: Two rate detector blocks measure the frequency of incoming frame sync or word select signals and generate interrupts on rate change, undetected rate, or sync timeout. Block Diagram ============= System Memory (DDR / LPM / TCM) +---------------------------------+ | Circular Buffers (ping-pong) | +----------+----------+-----------+ | ^ 64-bit AXI 64-bit AXI | | +----------v----------+-----------+ | QSB Master Ports | | +----------+ +----------+ | | | QXM0 | | QXM1 | | | +----+-----+ +-----+----+ | +-------|--------------|----------+ | | +-------v--------------v----------+ | Shared RAM (SHRAM) | | +------------+ +------------+ | | | QXM0 Read | | QXM0 Write | | | | SHRAM | | SHRAM | | | +------------+ +------------+ | | +------------+ +------------+ | | | QXM1 Read | | QXM1 Write | | | | SHRAM | | SHRAM | | | +------------+ +------------+ | +---+--------+--------+-------+---+ | | | | +---v--+ +--v---+ +--v---+ +-v----+ |RDDMA | |RDDMA | |WRDMA | |WRDMA | | AIF | | CIF | | AIF | | CIF | |[0..n]| |[0..n]| |[0..n]| |[0..n]| +--+---+ +--+---+ +--+---+ +-+----+ | | ^ ^ | TX | TX | RX | RX v v | | +--+--------------------+ +----+----------+ | Unified Audio Intf | | Codec DMA | | (AIF 0..12) | | Interface | | | | (CIF) | | AUD_INTFa block: | | | | - Serializer (TX) | | RDDMA: DDR -> | | - De-serializer (RX) | | internal | | - Sync gen/detect | | codec | | - Up to 8 data lanes | | WRDMA: codec | | - PCM / TDM / MI2S | | -> DDR | | - Near Pad Logic | | Up to 16 ch | +--+--------------------+ +----+----------+ | Lane 0..7 (TX/RX) | Parallel bus | Bit clk + Frame sync | + Frame sync v v +--+--------+ +------+------+ | External | | Internal | | Serial | | Digital | | Peripherals| | Codec | | (PCM/TDM/ | | (Bolero/ | | MI2S) | | WCD) | +-----------+ +-------------+ Software Design =============== The driver follows the standard ALSA SoC split: qaif-cpu.c: CPU DAI component. Manages clocks, implements DAI ops (startup/shutdown/hw_params/trigger) for both AIF and CIF paths using direct regmap_update_bits() calls with address macros from qaif-reg.h, registers an of_xlate_dai_name callback so that sound-dai references using non-sequential DAI IDs resolve correctly, parses per-interface AIF configuration from DT child nodes, and provides runtime PM suspend/resume via pm_runtime_force_suspend/resume for power collapse. AIF child nodes use standard properties (dai-format, dai-tdm-slot-*, qcom,qaif-aif-lane-map) without a compatible string; the protocol is identified by dai-format and set_fmt() is called by the machine driver. qaif-platform.c: PCM platform component. Handles DMA buffer allocation (dma_alloc_pages()), PCM ops (open/close/hw_params/hw_free/prepare/trigger/ pointer/mmap/copy), and table-driven two-level IRQ dispatch with period-elapsed notification. qaif-shikra.c: Shikra SoC-specific variant descriptor. Provides register base addresses, DMA channel counts, SHRAM geometry, clock names and the DAI driver array. This abstraction keeps the core driver portable across future QAIF integrations. qaif.h / qaif-reg.h: Shared data structures, constants and the complete MMIO register address map consumed by both the CPU and platform drivers. soc-core.c: This series adds snd_soc_of_xlate_dai_name() as a generic ASoC helper that resolves a sound-dai phandle argument to a DAI name by searching the component DAI list by ID. Both lpass-cpu.c and qaif-cpu.c assign it directly as .of_xlate_dai_name, removing their private implementations. The series is split by functionality to aid review -- register map and data structures first, then CPU DAI ops with regmap and DT parsing, the of_xlate helper, PCM ops, IRQ handling and finally the Shikra variant glue. Link: https://patch.msgid.link/20261013-b4-qaif-shikra-audio-v9-0-f3022e28f2fd@oss.qualcomm.com
2026-10-15ASoC: dt-bindings: qcom,shikra-qaif-cpu: Add bindingHarendra Gautam
Add the Devicetree binding for the Qualcomm Audio Interface (QAIF) CPU DAI controller used on the Shikra audio platform. QAIF routes audio between system memory, external PCM/TDM/MI2S serial interfaces and the internal Bolero/WCD codec. Platform Devicetree files need a binding to describe the controller resources, DAI cells and per- interface AIF configuration, and named constants to avoid raw numeric IDs in sound-dai references and child-node reg values. Describe the MMIO region, interrupt, clocks, DMA IOMMU mapping and aif-interface child nodes required by the controller. Signed-off-by: Harendra Gautam <harendra.gautam@oss.qualcomm.com> Reviewed-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com> Reviewed-by: Rob Herring (Arm) <robh@kernel.org> Link: https://patch.msgid.link/20261013-b4-qaif-shikra-audio-v9-1-f3022e28f2fd@oss.qualcomm.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-14ASoC: tegra: Support WM8994 by machine driverMark Brown
Svyatoslav Ryhel <clamor95@gmail.com> says: Add Wolfson Microelectronics WM8994 codec support to the Tegra ASoC machine driver. The WM8994 codec is found on devices like LG Optimus 2X (P990/star) and Samsung Captivate Glide (SGH-i927). Link: https://patch.msgid.link/20261014120148.126160-1-clamor95@gmail.com
2026-10-14ASoC: dt-bindings: nvidia,tegra-audio: Document WM8994 CODECSvyatoslav Ryhel
Add dt-binding for WM8994 CODEC. Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com> Link: https://patch.msgid.link/20261014120148.126160-2-clamor95@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-13ASoC: tegra: Support auxiliary devicesMark Brown
Svyatoslav Ryhel <clamor95@gmail.com> says: Add support for auxiliary devices, such as amplifiers, sound-muxes or dsp, to be added to the sound card. Link: https://patch.msgid.link/20261013180253.477605-1-clamor95@gmail.com
2026-10-13ASoC: nvidia,tegra-audio-common: Document nvidia,aux-devs propertySvyatoslav Ryhel
Add nvidia,aux-devs which can contain a list of phandles pointing to auxiliary devices, such as amplifiers, sound-muxes or dsp, to be added to the sound card. Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com> Link: https://patch.msgid.link/20261013180253.477605-2-clamor95@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-07ASoC: cs35l45: Adds support for LDPM featureMark Brown
Ricardo Rivera-Matos <rriveram@opensource.cirrus.com> says: The CS35L45 has an input signal level dependent power management (LDPM) feature. The feature is used to reduce power consumption when the amplifier is playing sustained low amplitude audio. This feature is made up of two responding groups each with a distinct threshold level and entry time delay. Group 1 can issue a low power request to either or both the integrated boost converter and amplifier output stage functional blocks. Group 2 can issue a low power request to either or both the VMON and IMON functional blocks. This patch series introduces support for this feature as devicetree properties applied at boot time. Link: https://patch.msgid.link/20261001-cs35l45-ldpm-v1-0-545787a5afe5@opensource.cirrus.com
2026-10-07ASoC: dt-bindings: cs35l45: Adds LDPM settingsRicardo Rivera-Matos
Introduce devicetree properties for configuring level dependent power management (LDPM) functionality. Signed-off-by: Ricardo Rivera-Matos <rriveram@opensource.cirrus.com> Link: https://patch.msgid.link/20261001-cs35l45-ldpm-v1-1-545787a5afe5@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-07dt-bindings: ASoC: nvidia,tegra30-ahub: Convert to json-schemaThierry Reding
Convert Tegra AHUB bindings from the free-form text format to json-schema. Signed-off-by: Thierry Reding <treding@nvidia.com> Link: https://patch.msgid.link/20261002-as3722-bindings-v3-2-21c179b72a95@nvidia.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-07ASoC: dt-bindings: msm8916-digital-codec: Add SDM670 compatibleRichard Acayan
The MSM8916 digital codec is also found on SDM670, typically connected to the sound card. Add the compatible for SDM670. Signed-off-by: Richard Acayan <mailingradian@gmail.com> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Link: https://patch.msgid.link/20261003175659.23536-6-mailingradian@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-06ASoC: qcom: enable audio on stage-2 protected DSPs (mDSP)Mark Brown
Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com> says: On platforms such as Qualcomm Shikra, audio is served by the modem DSP (mDSP) rather than the ADSP. The mDSP runs in a stage-2 protected context and cannot use the SMMU, so the PCM buffers it consumes must live in reserved-memory carveouts that are handed to the consumer VMIDs via a hypervisor (SCM) memory assignment. This series adds that access model to the q6apm DAI driver and its binding, alongside the existing stage-1/SMMU (iommus) path, which is left untouched. The driver detects the mDSP target at runtime from the GPR domain_id (GPR_DOMAIN_ID_MODEM) and enables the SCM assignment path automatically. VMIDs are hardcoded in the driver (HLOS + MSS_MSA + LPASS) rather than read from DT, following the consensus from v2 review discussion with Krzysztof Kozlowski and Srinivas Kandagatla. Tested on Qualcomm Shikra with mDSP audio playback and capture. Link: https://patch.msgid.link/20260923-vmid-v4-v6-0-3d61a0319b1c@oss.qualcomm.com
2026-10-06ASoC: dt-bindings: qcom,q6apm-dai: add memory-region and relax iommusAjay Kumar Nandam
On modem-DSP (mDSP) platforms the DSP runs in a stage-2 protected context and cannot use the SMMU. PCM buffers must live in reserved-memory carveouts that are SCM-assigned to the appropriate VMIDs. Add a memory-region property (1-2 entries) for the control-path and data-path carveouts, and require q6apm-dais nodes to describe exactly one access path: iommus for SMMU-backed systems or memory-region for mDSP systems. Remove iommus from the common required list since mDSP platforms have neither IOMMU nor VMID DT properties. Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com> Link: https://patch.msgid.link/20260923-vmid-v4-v6-3-3d61a0319b1c@oss.qualcomm.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-10-01dt-bindings: ASoC: Convert MediaTek RT5650 codecs bindings to DT schemaAriel D'Alessandro
Convert the existing text-based DT bindings for Mediatek MT8173 RT5650 codecs to a DT schema. Signed-off-by: Ariel D'Alessandro <ariel.dalessandro@collabora.com> Reviewed-by: Rob Herring (Arm) <robh@kernel.org> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Link: https://patch.msgid.link/20251001183517.83278-1-ariel.dalessandro@collabora.com Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
2026-09-29ASoC: Qualcomm Tambora (WCD9378) SDCA codecMark Brown
Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> says: Add support for the Qualcomm Tambora (WCD9378) headset codec in SDCA-compliant mode over SoundWire. On ARM/DT platforms without ACPI/DisCo firmware, the SDCA topology and SoundWire port properties are supplied as static data through the codec driver. Patches 1-5 extend the ASoC SDCA class framework so that a class-based codec driver can be built on ARM/DT: allow builds without ACPI, expose the SoundWire probe/remove library entry points, add class_ops with a populate_function hook, and translate sound-dai cells by entity index. Patches 6-7 add the WCD9378 dt-binding and driver. The same silicon can be fused for a mobile (non-SDCA) or an SDCA-compliant mode; the two share the SoundWire class-ID compatible (sdw20217011000) and are selected apart by the qcom,sdca-compliant boolean property. Tested with HPH playback and headset-mic capture on the Snapdragon X2 Elite Glymur CRD and Lenovo T14s Gen7. Jack detection is not wired up in this series. Link: https://patch.msgid.link/20260925161049.758913-1-srinivas.kandagatla@oss.qualcomm.com
2026-09-29ASoC: dt-bindings: qcom: add Tambora WCD9378 SDCA codecSrinivas Kandagatla
Describe the WCD9378 SoundWire peripheral which is SDCA compatible soundwire device. It provides SDCA SimpleJack for headphone playback headset mic capture and MBHC jack detection. The same silicon is integrated in two ways and enumerates with the same SoundWire class ID: mobile mode: two slaves (tx, rx) on separate SoundWire masters. SDCA / compute mode: one aggregated slave on a multi-lane master. Note: both of them have different bus toplogies 1 device vs 2 devices. Currently only compute mode is supported by this bindings, mobile mode will extend this binding as required. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Link: https://patch.msgid.link/20260925161049.758913-7-srinivas.kandagatla@oss.qualcomm.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-09-29ASoC: codecs: ak4619: Add PDN pin handlingMark Brown
Alexander Koch <mail@alexanderkoch.net> says: The AK4619 datasheet describes the functionality of the power down (PDN) pin as follows (p. 39, 'Power-up/down Sequence'): The AK4619 should be powered up when the PDN pin = "L". The PDN pin should be set "H" after all power supplies have ramped up. At that point, the reference voltage generator block (REFBLK) and LDO (AVDRV) circuit are powered up and the control registers are initialized. Control register settings should be no less than 10ms after PDN pin = "H". The current implementation of the driver does not operate the PDN pin in any way, it seems to rely on external control of the pin. Improve this by adding a device tree binding to enable the driver to set the pin 'high' during probe. Make it optional to keep the behaviour for existing device trees unchanged. Tested on an i.MX8MM board with the AK4619 connected to GPIO1 and SSI3. Link: https://patch.msgid.link/20260929090821.1476257-1-mail@alexanderkoch.net
2026-09-29ASoC: dt-bindings: asahi-kasei,ak4619: Add powerdown GPIOAlexander Koch
Add documentation for an optional property that enables operation of the 'PDN' (powerdown) pin during initialization: codec@10 { compatible = "asahi-kasei,ak4619"; reg = <0x10>; powerdown-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>; // <-- #sound-dai-cells = <0>; }; Signed-off-by: Alexander Koch <mail@alexanderkoch.net> Link: https://patch.msgid.link/20260929090821.1476257-3-mail@alexanderkoch.net Signed-off-by: Mark Brown <broonie@kernel.org>
2026-09-28ASoC: dt-bindings: fsl,easrc: add ports binding for multiple conversion pathsShengjiu Wang
The i.MX EASRC hardware supports up to four conversion contexts (A, B, C, D). Add a ports container property to the binding to allow each independent conversion path to be represented as an individual audio-graph port: port@0 -- conversion path 0 port@1 -- conversion path 1 port@2 -- conversion path 2 port@3 -- conversion path 3 Each sub-port references audio-graph-port.yaml and follows the standard audio-graph binding conventions. Contexts are allocated dynamically at stream open time; each active stream direction (playback or capture) on a port consumes one hardware context. Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> Reviewed-by: Frank Li <Frank.Li@nxp.com> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Link: https://patch.msgid.link/20260928061149.1844121-3-shengjiu.wang@oss.nxp.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-09-28ASoC: dt-bindings: fsl,imx-asrc: update port binding to support multiple pathsShengjiu Wang
All i.MX ASRC variants (imx35 through imx952) support up to three conversion pairs (A, B, C). The existing binding exposed only a single generic audio-graph port, which cannot represent independent conversion paths when multiple pairs are in use simultaneously. Add a ports container that enumerates up to three sub-ports, each representing an independent conversion path: port@0 -- conversion path 0 port@1 -- conversion path 1 port@2 -- conversion path 2 Each sub-port references audio-graph-port.yaml as before. Hardware pairs are allocated dynamically at stream open time; each active stream direction (playback or capture) on a port consumes one hardware pair. For backwards compatibility, keep the old single port property but mark it deprecated. A schema constraint (not: required: [port, ports]) ensures that both forms cannot be used at the same time. The binding example is updated to show the preferred ports form. Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> Reviewed-by: Frank Li <Frank.Li@nxp.com> Link: https://patch.msgid.link/20260928061149.1844121-2-shengjiu.wang@oss.nxp.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-09-24ASoC: dt-bindings: qcom,sm8250: Add RubikPi 3 sound cardHongyang Zhao
The QCS6490-based Thundercomm RubikPi 3 routes primary MI2S to an external ES8316 headset codec and quaternary MI2S to the LT9611 HDMI bridge. This requires board-specific DAI clocking and jack setup in the sc8280xp machine driver. The existing QCM6490 and QCS6490 compatibles select machine data for boards using different codec and audio routing arrangements, so they cannot be used as compatible fallbacks for RubikPi 3. Add a dedicated compatible to select the RubikPi 3 machine data. Signed-off-by: Hongyang Zhao <hongyang.zhao@thundersoft.com> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Link: https://patch.msgid.link/20260904-rubikpi-next-20260605-v3-2-f49146d85af3@thundersoft.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-09-24ASoC: dt-bindings: es8316: Document jack detect inversionHongyang Zhao
The ES8316 driver supports the everest,jack-detect-inverted property to account for boards which invert the codec jack-detect signal. However, the property is not described by the binding, so a valid user of the driver fails schema validation because the binding rejects unknown properties. Document the flag so boards can describe the jack-detect polarity used by their wiring. Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Signed-off-by: Hongyang Zhao <hongyang.zhao@thundersoft.com> Link: https://patch.msgid.link/20260904-rubikpi-next-20260605-v3-1-f49146d85af3@thundersoft.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-09-24ASoC: qcom: Add QAIF AIF MI2S and TDM DAI supportMark Brown
Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com> says: Add support for Qualcomm Audio Interface (QAIF) AIF MI2S and TDM DAI id's across the Qualcomm audio stack. The new DAI IDs are required for platforms such as Shikra, Hawi, and Nord, where QAIF audio interfaces are used to connect external audio devices. Link: https://patch.msgid.link/20260918-qaif_dai_id_support-v1-0-ed863c0e5e45@oss.qualcomm.com
2026-09-24ASoC: dt-bindings: qcom: add QAIF AIF MI2S and TDM dai idsMohammad Rafi Shaik
Add new dai ids entries for Qualcomm Audio Interface (QAIF) AIF MI2S and TDM audio lines. Co-developed-by: Harendra Gautam <harendra.gautam@oss.qualcomm.com> Signed-off-by: Harendra Gautam <harendra.gautam@oss.qualcomm.com> Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com> Reviewed-by: Prasad Kumpatla <prasad.kumpatla@oss.qualcomm.com> Tested-by: Prasad Kumpatla <prasad.kumpatla@oss.qualcomm.com> Link: https://patch.msgid.link/20260918-qaif_dai_id_support-v1-1-ed863c0e5e45@oss.qualcomm.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-09-23ASoC: dt-bindings: realtek,rt5677: Add MCLK1 clock propertyDiogo Ivo
Add a clocks property so that boards can describe the clock feeding the codec's MCLK1 input. Signed-off-by: Diogo Ivo <diogo.ivo@tecnico.ulisboa.pt> Link: https://patch.msgid.link/20260923-rt5677-mclk-v2-1-6ca31e8f68a4@tecnico.ulisboa.pt Signed-off-by: Mark Brown <broonie@kernel.org>
2026-09-23ASoC: dt-bindings: Fix TAS2563 address constraintsRob Herring (Arm)
Apply the TAS2781 register range only when the compatible is exactly ti,tas2781. This avoids applying the TAS2781 single-address rule to TAS2563 nodes with 0x4c-0x4f addresses. Assisted-by: LLM Signed-off-by: Rob Herring (Arm) <robh@kernel.org> Link: https://patch.msgid.link/20260922212122.1116270-1-robh@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2026-09-23ASoC: dt-bindings: hi6210-i2s: Allow graph portsRob Herring (Arm)
The HiKey DTS uses the HI6210 I2S controller with an audio graph ports node for the ADV7533 connection. Add the audio graph ports node so the converted schema matches the existing platform description. Assisted-by: LLM Signed-off-by: Rob Herring (Arm) <robh@kernel.org> Link: https://patch.msgid.link/20260922183128.289564-1-robh@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2026-09-23ASoC: dt-bindings: mediatek: Fix MT7622 clock countRob Herring (Arm)
MT7622 audio nodes have 33 clocks and clock names. The shared MT2701 binding listed the longer MT2701 clock set as the common minimum, so MT7622 DTs failed validation as too short even though the binding already capped MT7622 at a smaller list. Set the common minimum to 33 and make the MT7622 conditional require exactly 33 clocks and clock names. Assisted-by: LLM Signed-off-by: Rob Herring (Arm) <robh@kernel.org> Link: https://patch.msgid.link/20260922183121.289108-1-robh@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2026-09-18ASoC: Add support for Airoha AN7581Mark Brown
Christian Marangi <ansuelsmth@gmail.com> says: Add all the patch and documentation to support Airoha AN7581 sound driver. The card follows similar implementation with Mediatek with the codec present on i2c but with a simplified implementation register wise and additional frequency supported. Link: https://patch.msgid.link/20260908090448.3332-1-ansuelsmth@gmail.com
2026-09-18ASoC: dt-bindings: Add Airoha AN7581 AFE with WM8960 Codec schemaChristian Marangi
Add DT schema for Airoha AN7581 Sound Card with the specific WM8960 i2c Codec. Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> Link: https://patch.msgid.link/20260908090448.3332-3-ansuelsmth@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-09-18ASoC: dt-bindings: Add Airoha AN7581 AFE Sound cardChristian Marangi
Add YAML schema for Airoha AN7581 AFE SoC sound card. The AFE handling on this SoC is very basic with clock always enabled and all the power saving feature not available. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> Reviewed-by: Rob Herring (Arm) <robh@kernel.org> Link: https://patch.msgid.link/20260908090448.3332-2-ansuelsmth@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-09-18ASoC: add ESS Technology ES9039Q2M codec driverMark Brown
Karl Asseily <karl@asseily.com> says: This series adds support for the ESS Technology ES9039Q2M, a 32-bit two-channel audio DAC with an asynchronous sample rate converter, controlled over I2C. The part also has a hardware mode strapped by HW0/HW1/HW2 with no control bus at all; this driver implements the software mode that MODE = GND selects. Two things about the part shape the driver: - Selecting an input format takes two registers, not one. INPUT_SEL chooses the port; SYS MODE CONFIG enables the matching decoder, and at reset only ENABLE_TDM_DECODE is set. Selecting DoP without also enabling ENABLE_DOP_DECODE leaves the part hunting for a marker with the marker decoder switched off, so it finds nothing and mutes. The driver writes both. - Several registers have non-zero reserved defaults - register 88 reads 0xb8 at reset - so every write is read-modify-write. The programmable FIR coefficient controls are write-only by design. PROG_COEFF_OUT is documented as a coefficient readback but is not a RAM read port: it returns the last coefficient written, whatever address is selected in PROG_COEFF_ADDR. Measured with the driver out of the path, five sequences, ten reads, all returning the same value. A get() built on that register would return something with the shape of data and none of its meaning, so there is none. Every control has been verified against the silicon rather than against the driver's own read-back - written through ALSA, then read over raw I2C - and DSD, DoP and S/PDIF input are all implemented and tested on hardware. ESS Technology has no bindings in the tree today, so the series also adds the vendor prefix, taken from the company's domain esstech.com. Link: https://patch.msgid.link/20260918182317.143223-1-karl@asseily.com
2026-09-18ASoC: dt-bindings: add ESS Technology ES9039Q2MKarl Asseily
Add a binding for the ES9039Q2M, a 32-bit two-channel audio DAC with an asynchronous sample rate converter. The part selects between two control personalities with its MODE pin: hardware mode, strapped by HW0/HW1/HW2 with no control bus at all, and software mode over I2C or SPI. This binding describes software mode over I2C, which MODE = GND selects. The four supply inputs are described and required. DVDD is not among them: the part's 1.2V digital rail is generated on chip and the pin takes only a decoupling capacitor. The datasheet asks for the supplies in a set order - AVDD, then VCCA about 200us later, then the two output-stage references, and the reverse on the way down - which the description records, so a board with separately switchable rails has it to hand. Assisted-by: Claude:claude-opus-5 Signed-off-by: Karl Asseily <karl@asseily.com> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Link: https://patch.msgid.link/20260918182317.143223-3-karl@asseily.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-09-18ASoC: dt-bindings: ux500: Remove MOP500 sound card bindingLinus Walleij
The Ux500 device trees now use audio-graph-card2 and no longer contain the MOP500-specific compatible or properties. Remove the obsolete text binding rather than retaining an unused legacy ABI. Assisted-by: LLM Signed-off-by: Linus Walleij <linusw@kernel.org> Link: https://patch.msgid.link/20260918-ux500-simple-sound-v2-3-88d29416e3c3@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2026-09-18ASoC: dt-bindings: sound: Prepare Ux500 audio graph linksLinus Walleij
Audio graph card drivers parse TDM slot data and continuous clock selection from endpoint nodes. The audio graph endpoint schema describes slot count and width directly but does not cover sparse slot masks or continuous clocking. Reference the common TDM slot schema so TX and RX masks are documented, and add the continuous-clock flag. Replace the incomplete Ux500 MSP text binding with a DT schema that describes the clocks, reset, DMA channels and power supply consumed by the driver. Define the MSP as a zero-cell sound DAI provider and allow it to expose an audio graph port. Assisted-by: LLM Signed-off-by: Linus Walleij <linusw@kernel.org> Link: https://patch.msgid.link/20260918-ux500-simple-sound-v2-1-88d29416e3c3@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
2026-09-15ASoC: dt-bindings: Use consistent indentation in the exampleKrzysztof Kozlowski
Correct indentation in the examples to consistent 2- or 4-spaces indentation to fix dt-check-style warnings ("example 0 [indent-consistent] indent mismatch ..."). Preferred is 4-spaces, but re-indenting entire example just for that is too much churn. While changing the lines, correct also node name to be generic in cirrus,cs35l45.yaml, cirrus,cs42l42.yaml and dialog,da7219.yaml. Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Link: https://patch.msgid.link/20260915063317.28971-2-krzysztof.kozlowski@oss.qualcomm.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-09-04ASoC: Introduces MDSYNC support for CS35L45Mark Brown
Ricardo Rivera-Matos <rriveram@opensource.cirrus.com> says: The CS35L45 has SYNC pin that can be used as a multi device synchronization (MDSYNC) bus. This pin can send various message types between Cirrus devices. This patch series adds support for long and short DSP messages between CS35L45 devices. Each device on the SYNC bus must have a unique transmitter identifier per message type as the bus arbitrates message priority via this identifier. These identifiers are set by the introduced devicetree properties. The priority assignment is intended to be a static system integration decision. The relevant receiver controls are introduced as mixer controls so they are exposed at runtime to be configured for the appropriate use cases. Link: https://patch.msgid.link/20260828-sound-for-next-cs35l45-sync-v4-v5-0-fe3feba709ff@opensource.cirrus.com
2026-09-04ASoC: dt-bindings: cs35l45: Adds SYNC propertiesRicardo Rivera-Matos
Introduces support for the multidevice synchronization (SYNC) bus. The properties introduced allow for the configuration of the device's transmitter IDs. Signed-off-by: Ricardo Rivera-Matos <rriveram@opensource.cirrus.com> Link: https://patch.msgid.link/20260828-sound-for-next-cs35l45-sync-v4-v5-1-fe3feba709ff@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-09-03ASoC: dt-bindings: imx-audmux: Replace tabs with spacesKrzysztof Kozlowski
YAML files do not use tabs, even within the values in DTS. No functional change, although dt-style-check will warn about it ("[tab-in-yaml] tab character not allowed in DTS example"). Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Reviewed-by: Frank Li <Frank.Li@nxp.com> Link: https://patch.msgid.link/20260830084046.14679-2-krzysztof.kozlowski@oss.qualcomm.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-08-31ASoC: dt-bindings: foursemi,fs2105s: Fix typoZain Aboobacker
Correct the misspelling of "generated" in the FS2105S binding. Signed-off-by: Zain Aboobacker <zainaboobacker33@gmail.com> Link: https://patch.msgid.link/20260824201951.3116-1-zainaboobacker33@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-08-30ASoC: codecs: Add Nuvoton NAU83G60 audio codec driverMark Brown
Neo Chang <YLCHANG2@nuvoton.com> says: This patch series adds support for the Nuvoton NAU83G60 audio codec. The NAU83G60 is a stereo Class-D amplifier with an integrated DSP and I/V-sense capabilities. The driver supports I2C register access through regmap, DAPM widgets and routes, TDM interface configuration, and DSP firmware loading. Link: https://patch.msgid.link/20260825021644.1203076-1-YLCHANG2@nuvoton.com
2026-08-30ASoC: dt-bindings: nuvoton,nau8360: Add NAU83G60Neo Chang
Add device tree bindings documentation for the Nuvoton NAU83G60 audio amplifier. Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Signed-off-by: Neo Chang <YLCHANG2@nuvoton.com> Link: https://patch.msgid.link/20260825021644.1203076-2-YLCHANG2@nuvoton.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-08-30ASoC: dt-bindings: Convert TI DA830 EVM audio to DT schemaEduard Bostina
Convert the Texas Instruments DA830 EVM audio complex bindings to DT schema. Signed-off-by: Eduard Bostina <egbostina@gmail.com> Reviewed-by: Rob Herring (Arm) <robh@kernel.org> Link: https://patch.msgid.link/20260811091703.685487-1-egbostina@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-08-19Merge tag 'devicetree-for-7.3' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux Pull devicetree updates from Rob Herring: - Add a DT maintainer profile document - Various dt-check-style improvements - Add a devres managed reserved memory region init function - Print node name on any skipped reserved memory regions - Correctly handle optional argument in of_parse_phandle_with_args_map() - Convert ti,keystone-reset, ti,da850-vpif, TI L4 interconnect, TI SmartReflex, microchip,pic32mzda-dmt, microchip,pic32mzda-wdt, TI DA8XX MSTPRI bus, and Xen VM bindings to DT schema format - Add bindings for StarFive JHB100 plic, Allwinner A733 NMI controller, MediaTek MT8173 GPU, QCom Shikra, Eliza, and Maili cpu-bwmon, and QCom Shikra SCM firmware - A couple of syntax fixes found using PoC Rust implementation of dtschema tools - Clean-ups for typos, brackets, incorrect "::" usages, and white-space style * tag 'devicetree-for-7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (40 commits) dt-bindings: interconnect: qcom-bwmon: Add Maili cpu-bwmon compatible dtc: dt-check-style: Simplify setting depth of DtsLine dtc: dt-check-style: Add missing /dts-v1/ to few test cases dt-bindings: power: reset: ti,keystone-reset: Convert to DT schema media: dt-bindings: ti,da850-vpif: Convert to dt-schema dt-bindings: devfreq: samsung,exynos-ppmu: Use standard regex syntax dt-bindings: interrupt-controller: mediatek,mt6577-sysirq: Drop invalid JSON pointer dt-bindings: arm: omap: Convert L4 interconnect to DT schema dt-bindings: power: Convert TI SmartReflex to DT schema of: reserved_mem: Introduce devres-managed initialization function dt-bindings: interrupt-controller: Add StarFive JHB100 plic dt-bindings: irq: sun7i-nmi: Document the Allwinner A733 NMI controller dt-bindings: Correct white-space style dt-bindings: fix typos and brackets docs: dt: submitting-patches: Mention expectation about dt-check-style docs: dt: maintainer: Add Devicetree and OF maintainer profile document docs: dt: writing-schema: Extend expectations about example part of binding dt-bindings: gpu: powervr-rogue: Add MediaTek MT8173 GPU of: base: Handle optional argument in of_parse_phandle_with_args_map() dt-bindings: update Sudeep Holla's email address ...
2026-08-13ASoC: dt-bindings: es8316: Fix supply property constraintsHongyang Zhao
The DT meta-schema requires a `then` clause when an `if` condition has an `else` clause. Invert the compatible check and move the supply property restrictions to `then` so they remain allowed only for ES8316. Fixes: e9966d450b46 ("ASoC: dt-bindings: es8316: Add regulator supplies") Reported-by: Rob Herring <robh@kernel.org> Closes: https://lore.kernel.org/r/20260812194234.GA693895-robh@kernel.org Signed-off-by: Hongyang Zhao <hongyang.zhao@thundersoft.com> Link: https://patch.msgid.link/20260813-b4-es8316-binding-conditional-fix-v1-1-6cd56aa1370c@thundersoft.com Signed-off-by: Mark Brown <broonie@kernel.org>