From patchwork Thu Jan 26 08:32:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Herve Codina X-Patchwork-Id: 13116762 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 B1490C54E94 for ; Thu, 26 Jan 2023 08:33:47 +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=TBob1Zv7EYG7yMtlVt3SF3/Iw8WCR/ocgMzWl6Gasb8=; b=m0SzairqQZZgiz eRQe+T5gDlEFTeUUyj2zBUIxajXXE2gZPDTnkcyvHt2lWsqbGwj85d1OEU1mpK/ucMEL9O2uyqHOX dFlVB3Vu6rnC6khu/vjgtF+sSG3QCtSs+7Pw9ujOtfFu/uyWrExo9Db5q6tQHNQuRmg2v0PRZQTYZ Y58yC5pSWrg4c8clwliSdqzQ7Jf2GKULLRwza7waRGIqurkR4IZ5XukWgVk6CkVvi7Phlik9BJ2JV jP7DxPUPf6AW5ExLdbLSR0LnPq6/vLERPayYW5q702lbNxY+RpAvhHR8TfxkQQsG+Qw0qsJr1YRJK DNLGGTq0t/hJ5R8W2eug==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pKxgW-009z9W-NB; Thu, 26 Jan 2023 08:32:40 +0000 Received: from relay4-d.mail.gandi.net ([2001:4b98:dc4:8::224]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pKxgS-009z6S-QX for linux-arm-kernel@lists.infradead.org; Thu, 26 Jan 2023 08:32:39 +0000 Received: (Authenticated sender: herve.codina@bootlin.com) by mail.gandi.net (Postfix) with ESMTPA id 24569E000C; Thu, 26 Jan 2023 08:32:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1674721951; 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=1wuQdqFAcUQPL0i7vCvSEJPExBzl3opiq9wKUTSIV/w=; b=oz5ZwIYo2vwegLw/vSHCzDPVdGn7UZUisu9n4UdR0eJHVkIhdCCMQ2Il0qSA32KjiE/22Q 3PAnRffhdy/ovQQFdm0EKIbo0ZoxPTrszE68I6okyQUOAaJ6MeCgU3Dqbzt1+x3JHGBEkW ptKHOQ2X69KKBwLFOpE+TbBiXpTljaEqOr8ltmxW0T4CYFylNn9ntuV6q6yhZ3aloKmCh1 QpmqM+uy1KE21qwnKOEgSzDx3hvd+0ddmVhJdDVFSV7YvKoK9z5SjmGZmarSU48bGMbJ8+ mO5LC6mxkyFjUnNYUWQlxjkWRCKgYJzbiQ14aBHqc3wD4aYoCdgQ0vdH4BDRZg== 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 v4 00/10] Add the PowerQUICC audio support using the QMC Date: Thu, 26 Jan 2023 09:32:12 +0100 Message-Id: <20230126083222.374243-1-herve.codina@bootlin.com> X-Mailer: git-send-email 2.39.0 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230126_003237_190417_B827E2D1 X-CRM114-Status: GOOD ( 19.68 ) 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. Compared to the previous iteration https://lore.kernel.org/linux-kernel/20230113103759.327698-1-herve.codina@bootlin.com/ this v4 series mainly: - updates code comment format (feedback received on v2 series and forgot to update in v3), - fixes bindings, - Replaces the fsl,tsa phandle and the fsl,tsa-cell-id property by a fsl,tsa-serial phandle and update the TSA related API, - Adds some missing lock in tsa_serial_connect() and tsa_serial_disconnect(). Best regards, Herve Codina Changes v3 -> v4 - patches 2, 6 and 9 Update code comment format. - patch 1 Fix some description formats. Add 'additionalProperties: false' in subnode. Move fsl,mode to fsl,diagnostic-mode. Change clocks and clock-names properties. Add '#serial-cells' property related to the newly introduced fsl,tsa-serial phandle. - patch 2 Move fsl,mode to fsl,diagnostic-mode. Replace the fsl,tsa phandle and the fsl,tsa-cell-id property by a fsl,tsa-serial phandle and update the related API. Add missing locks. - patch 5 Fix some description format. Replace the fsl,tsa phandle and the fsl,tsa-cell-id property by a fsl,tsa-serial phandle. Rename fsl,mode to fsl,operational-mode and update its description. - patch 6 Replace the fsl,tsa phandle and the fsl,tsa-cell-id property by a fsl,tsa-serial phandle and use the TSA updated API. Rename fsl,mode to fsl,operational-mode. - patch 8 Add 'Reviewed-by: Krzysztof Kozlowski ' Changes v2 -> v3 - All bindings Rename fsl-tsa.h to fsl,tsa.h Add missing vendor prefix Various fixes (quotes, node names, upper/lower case) - patches 1 and 2 (TSA binding specific) Remove 'reserved' values in the routing tables Remove fsl,grant-mode Add a better description for 'fsl,common-rxtx-pins' Fix clocks/clocks-name handling against fsl,common-rxtx-pins Add information related to the delays unit Removed FSL_CPM_TSA_NBCELL Fix license in binding header file fsl,tsa.h - patches 5 and 6 (QMC binding specific) Remove fsl,cpm-command property Add interrupt property constraint - patches 8 and 9 (QMC audio binding specific) Remove 'items' in compatible property definition Add missing 'dai-common.yaml' reference Fix the qmc_chan phandle definition - patch 2 and 6 Use io{read,write}be{32,16} Change commit subjects and logs - patch 4 Add 'Acked-by: Christophe Leroy ' Changes v1 -> v2: - patch 2 and 6 Fix kernel test robot errors - other patches No changes Herve Codina (10): dt-bindings: soc: fsl: cpm_qe: Add TSA controller soc: fsl: cpm1: 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: cmp1: 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 | 261 +++ .../bindings/sound/fsl,qmc-audio.yaml | 117 ++ 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 | 1533 +++++++++++++++++ drivers/soc/fsl/qe/tsa.c | 864 ++++++++++ drivers/soc/fsl/qe/tsa.h | 42 + include/dt-bindings/soc/fsl,tsa.h | 13 + include/soc/fsl/qe/qmc.h | 71 + sound/soc/fsl/Kconfig | 9 + sound/soc/fsl/Makefile | 2 + sound/soc/fsl/fsl_qmc_audio.c | 735 ++++++++ 15 files changed, 3865 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