From patchwork Fri Feb 5 06:57:23 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shengjiu Wang X-Patchwork-Id: 376878 Delivered-To: patch@linaro.org Received: by 2002:a02:b18a:0:0:0:0:0 with SMTP id t10csp1974624jah; Thu, 4 Feb 2021 23:09:40 -0800 (PST) X-Google-Smtp-Source: ABdhPJzywQxEoY5InK8YVEbcISjzpaTsKyoEAM3hKXGYej9i935AaaeJ7d6rZz5wP3mokLGZgOek X-Received: by 2002:a05:6402:10ce:: with SMTP id p14mr2205298edu.261.1612508980735; Thu, 04 Feb 2021 23:09:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1612508980; cv=none; d=google.com; s=arc-20160816; b=bh18qASi+KgAWNYPvw88Aqb3Z7YFG5ftPMwX7YympUA/XlfAICM4nr3go6r4MIHxf2 FO15EmvyJjynvLKXn5HvBlKSKoowa6unNbbYtjIdhBrECVPPS7TRklg8n/1lWoE1CgUq V3Tx5NgngXTkJ3H3LCM38pQYwlje//OXq+3xqfN+7aN3wmQIHzb9GQpxMdAiVceXdntY 5jnG+NW8ghwVmUXfNRmOBJIjY9cTM7lCBqSuXlrka+V0bQTjZBNCokTuiHB8326PYLq4 zNKIpw+BqB95LyfEWNw+92OecdxTB03Gq5G8vRDwMl1OzbL41joTw+i3jObLs1HEMswH U3BQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:to:from; bh=kLVOUZ3+YDfeHNlBrvqZVoDxVd+MIYzvylG6tCdMG04=; b=iluMlUv6cRQc8GfnTE9Tm46i59OGYzTBx9BQ8Kdd+RXnZd3EAE8WK5/H09hR9pkdw+ 2FY86xyE2cjhgL0J607NbT9yDY/bkh4y3nzoqhtGoOclNOl87vdDo/yfwy+9w2enDZ52 c411V8tVPBody3h30b6a+kWFUJRCOwj9BXiJkc/81MbaYNU3K/WI10ja3+Or4yVFyDiz IleK5ukHQgzJG4zkZ+J+82AkTUQo8HGzqgEhRxNnD+fRuVoCzEngRFh01ORk7B0G3xsR NgIY5C6kQpfwOFemKnvAMFipKZhN9XCTUz2Nk7MR4bwBu4E+OOwuqvG0cFVD9qF9T39u 30dg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j6si4623607ejc.262.2021.02.04.23.09.40; Thu, 04 Feb 2021 23:09:40 -0800 (PST) Received-SPF: pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231365AbhBEHJh (ORCPT + 6 others); Fri, 5 Feb 2021 02:09:37 -0500 Received: from inva021.nxp.com ([92.121.34.21]:59016 "EHLO inva021.nxp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230516AbhBEHJe (ORCPT ); Fri, 5 Feb 2021 02:09:34 -0500 Received: from inva021.nxp.com (localhost [127.0.0.1]) by inva021.eu-rdc02.nxp.com (Postfix) with ESMTP id B5EE6200B26; Fri, 5 Feb 2021 08:08:44 +0100 (CET) Received: from invc005.ap-rdc01.nxp.com (invc005.ap-rdc01.nxp.com [165.114.16.14]) by inva021.eu-rdc02.nxp.com (Postfix) with ESMTP id A6368200B4E; Fri, 5 Feb 2021 08:08:39 +0100 (CET) Received: from localhost.localdomain (shlinux2.ap.freescale.net [10.192.224.44]) by invc005.ap-rdc01.nxp.com (Postfix) with ESMTP id 600C440291; Fri, 5 Feb 2021 08:08:33 +0100 (CET) From: Shengjiu Wang To: lgirdwood@gmail.com, broonie@kernel.org, perex@perex.cz, tiwai@suse.com, alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org, timur@kernel.org, nicoleotsuka@gmail.com, Xiubo.Lee@gmail.com, festevam@gmail.com, linuxppc-dev@lists.ozlabs.org, robh+dt@kernel.org, devicetree@vger.kernel.org Subject: [PATCH 0/7] Add audio driver base on rpmsg on i.MX platform Date: Fri, 5 Feb 2021 14:57:23 +0800 Message-Id: <1612508250-10586-1-git-send-email-shengjiu.wang@nxp.com> X-Mailer: git-send-email 2.7.4 X-Virus-Scanned: ClamAV using ClamSMTP Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org On Asymmetric multiprocessor, there is Cortex-A core and Cortex-M core, Linux is running on A core, RTOS is running on M core. The audio hardware device can be controlled by Cortex-M device, So audio playback/capture can be handled by M core. Rpmsg is the interface for sending and receiving msg to and from M core, that we can create a virtual sound on Cortex-A core side. A core will tell the Cortex-M core sound format/rate/channel, where is the data buffer, what is the period size, when to start, when to stop and when suspend or resume happen, each of this behavior there is defined rpmsg command. Especially we designed the low power audio case, that is to allocate a large buffer and fill the data, then Cortex-A core can go to sleep mode, Cortex-M core continue to play the sound, when the buffer is consumed, Cortex-M core will trigger the Cortex-A core to wakeup to fill data. Shengjiu Wang (7): ASoC: soc-component: Add snd_soc_pcm_component_ack ASoC: fsl_rpmsg: Add CPU DAI driver for audio base on rpmsg ASoC: dt-bindings: fsl_rpmsg: Add binding doc for rpmsg cpu dai driver ASoC: imx-audio-rpmsg: Add rpmsg_driver for audio channel ASoC: imx-pcm-rpmsg: Add platform driver for audio base on rpmsg ASoC: imx-rpmsg: Add machine driver for audio base on rpmsg ASoC: dt-bindings: imx-rpmsg: Add binding doc for rpmsg machine driver .../devicetree/bindings/sound/fsl,rpmsg.yaml | 80 ++ .../bindings/sound/imx-audio-rpmsg.yaml | 48 + include/sound/soc-component.h | 3 + sound/soc/fsl/Kconfig | 28 + sound/soc/fsl/Makefile | 6 + sound/soc/fsl/fsl_rpmsg.c | 258 +++++ sound/soc/fsl/fsl_rpmsg.h | 38 + sound/soc/fsl/imx-audio-rpmsg.c | 142 +++ sound/soc/fsl/imx-pcm-rpmsg.c | 898 ++++++++++++++++++ sound/soc/fsl/imx-pcm-rpmsg.h | 512 ++++++++++ sound/soc/fsl/imx-rpmsg.c | 148 +++ sound/soc/soc-component.c | 14 + sound/soc/soc-pcm.c | 2 + 13 files changed, 2177 insertions(+) create mode 100644 Documentation/devicetree/bindings/sound/fsl,rpmsg.yaml create mode 100644 Documentation/devicetree/bindings/sound/imx-audio-rpmsg.yaml create mode 100644 sound/soc/fsl/fsl_rpmsg.c create mode 100644 sound/soc/fsl/fsl_rpmsg.h create mode 100644 sound/soc/fsl/imx-audio-rpmsg.c create mode 100644 sound/soc/fsl/imx-pcm-rpmsg.c create mode 100644 sound/soc/fsl/imx-pcm-rpmsg.h create mode 100644 sound/soc/fsl/imx-rpmsg.c -- 2.27.0