From patchwork Fri Jan 6 13:29:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Herve Codina X-Patchwork-Id: 13091381 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 7510DC3DA7A for ; Fri, 6 Jan 2023 13:31:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:Cc :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=ep7LK7WN3hj+6rHdENBPUBh9r40QIS9A9TLQiS1+ZKs=; b=oBJ2PEoYeezGOB nYNBIrIWJw7dpxbLJFbBH4Z/kRg0z8lTU9qsz82c4Hh2mZ/TCLXEHAUlsC2Vx93D5bgCgfhwC8xEx ow0plmP2puAnrBlK2hV5/4nLRbFtQN/w/DffCH38s+S7A137M0YYeTOM5SufLe00NEQyuAT9+wCOS Wrzdl21+Qc7cbX+nYeNb9cLYv76Pv7qrhPqITHKM1Js9liPhm5iRs0pB/oy5h6tv/B9Yr9j/4vBOy M+rqwiZkj6dYqTkvUkn+ka9HfyeuHEEiZsWruk55LcRcZotlI9AMoauD9URm/NOr0LVzPh0WENZzI m+3Gpxx7HvQSgjFxGpUw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pDmo4-008Pcc-TI; Fri, 06 Jan 2023 13:30:49 +0000 Received: from relay2-d.mail.gandi.net ([2001:4b98:dc4:8::222]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pDmnZ-008PKl-7m for linux-arm-kernel@lists.infradead.org; Fri, 06 Jan 2023 13:30:20 +0000 Received: (Authenticated sender: herve.codina@bootlin.com) by mail.gandi.net (Postfix) with ESMTPA id A86484000B; Fri, 6 Jan 2023 13:30:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1673011808; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=do8D1ieZ8Ex+QzAnOj/wZJAzfbzECTa0eMXQ+8CsY4I=; b=hUoSVjYUOiV747REn8chyMICtoSn6TltjXrXaz0OpgkDKAol2Eehwpxmnf6ijlo/J5FL1h vaNS706fVF8fuyBGnIDoy4YCePuZbYx3EDj4iDQOxzcumHyW0Y95Yj0v162GxsEsY24wNg JO9a6lfzkPc5GqQTfpnRlm1cmAUg4BRdkiafP+KhmEI4+zJRKadzwPpF1AS2EwyLZcjP1k JeFWL4JK0qGXH8RPJznej+jr9PItBgWTZoFT7lKuIALbT0idtaJlm2hLi4B/4gySa2NpN/ AkAWH1RLNXQEdoapftYdU6rl2PsOjVI6Xgd407XBVnlj2irSRcsx1xoGOVZzHA== From: Herve Codina To: Herve Codina , Li Yang , Rob Herring , Krzysztof Kozlowski , Liam Girdwood , Mark Brown , Christophe Leroy , Michael Ellerman , Nicholas Piggin , Qiang Zhao , Jaroslav Kysela , Takashi Iwai , Shengjiu Wang , Xiubo Li , Fabio Estevam , Nicolin Chen Cc: linuxppc-dev@lists.ozlabs.org, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, alsa-devel@alsa-project.org, Thomas Petazzoni Subject: [PATCH 00/10] Add the PowerQUICC audio support using the QMC Date: Fri, 6 Jan 2023 14:29:41 +0100 Message-Id: <20230106132951.392271-1-herve.codina@bootlin.com> X-Mailer: git-send-email 2.38.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230106_053017_650324_C0BBD78B X-CRM114-Status: GOOD ( 14.46 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi, This series adds support for audio using the QMC controller available in some Freescale PowerQUICC SoCs. This series contains three parts in order to show the different blocks hierarchy and their usage in this support. The first one is related to TSA (Time Slot Assigner). The TSA handles the data present at the pin level (TDM with up to 64 time slots) and dispatchs them to one or more serial controller (SCC). The second is related to QMC (QUICC Multichannel Controller). The QMC handles the data at the serial controller (SCC) level and splits again the data to creates some virtual channels. The last one is related to the audio component (QMC audio). It is the glue between the QMC controller and the ASoC component. It handles one or more QMC virtual channels and creates one DAI per QMC virtual channels handled. Best regards, Herve Codina Herve Codina (10): dt-bindings: soc: fsl: cpm_qe: Add TSA controller soc: fsl: qe: Add support for TSA MAINTAINERS: add the Freescale TSA controller entry powerpc/8xx: Use a larger CPM1 command check mask dt-bindings: soc: fsl: cpm_qe: Add QMC controller soc: fsl: qe: Add support for QMC MAINTAINERS: add the Freescale QMC controller entry dt-bindings: sound: Add support for QMC audio ASoC: fsl: Add support for QMC audio MAINTAINERS: add the Freescale QMC audio entry .../bindings/soc/fsl/cpm_qe/fsl,qmc.yaml | 167 ++ .../bindings/soc/fsl/cpm_qe/fsl,tsa.yaml | 262 +++ .../bindings/sound/fsl,qmc-audio.yaml | 110 ++ MAINTAINERS | 25 + arch/powerpc/platforms/8xx/cpm1.c | 2 +- drivers/soc/fsl/qe/Kconfig | 23 + drivers/soc/fsl/qe/Makefile | 2 + drivers/soc/fsl/qe/qmc.c | 1493 +++++++++++++++++ drivers/soc/fsl/qe/tsa.c | 783 +++++++++ drivers/soc/fsl/qe/tsa.h | 43 + include/dt-bindings/soc/fsl-tsa.h | 15 + include/soc/fsl/qe/qmc.h | 71 + sound/soc/fsl/Kconfig | 9 + sound/soc/fsl/Makefile | 2 + sound/soc/fsl/fsl_qmc_audio.c | 731 ++++++++ 15 files changed, 3737 insertions(+), 1 deletion(-) create mode 100644 Documentation/devicetree/bindings/soc/fsl/cpm_qe/fsl,qmc.yaml create mode 100644 Documentation/devicetree/bindings/soc/fsl/cpm_qe/fsl,tsa.yaml create mode 100644 Documentation/devicetree/bindings/sound/fsl,qmc-audio.yaml create mode 100644 drivers/soc/fsl/qe/qmc.c create mode 100644 drivers/soc/fsl/qe/tsa.c create mode 100644 drivers/soc/fsl/qe/tsa.h create mode 100644 include/dt-bindings/soc/fsl-tsa.h create mode 100644 include/soc/fsl/qe/qmc.h create mode 100644 sound/soc/fsl/fsl_qmc_audio.c