From patchwork Fri Mar 12 02:38:39 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shengjiu Wang X-Patchwork-Id: 398484 Delivered-To: patch@linaro.org Received: by 2002:a02:8562:0:0:0:0:0 with SMTP id g89csp839765jai; Thu, 11 Mar 2021 18:54:40 -0800 (PST) X-Google-Smtp-Source: ABdhPJxd3Wqlo+Chjf4qP5tK5f67a4oHNHzTiFkzN9mE2Ubhzgb0tsWSxcmk8Dq+iAlJklMVcM3i X-Received: by 2002:aa7:c386:: with SMTP id k6mr11486615edq.224.1615517679929; Thu, 11 Mar 2021 18:54:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1615517679; cv=none; d=google.com; s=arc-20160816; b=vZwsg/bK0YU+BMgfQeG5qDbCpljeK8cIHbCj44Jturrd8AZJ8mh6oggf1lB5lfIP05 +cLmd0DxhuZ7Q9ZfOE1jvIeFAJIg7+AzQ1B0q+XAXBFlgUkNFj1YNJK4YPX7G2wAEn3+ IyJWD236sd4h+tGtQZHUxeGeTUJYzcx/Y5AYer9f+gsLzTfV7/61roqRDG7dNG3jFlva SPjbSozu+1SkN6EXUeubXF5qqsEInj6ZXL7xnoR8SJGwBBw2hgiG4Xv0/8bwoqpocS05 u+AXaorHptloXlQnyM//NDN0LjqMp/7M9P/GZjER0QnpIx0IAiNsj7igsZ0ZGymJucep TbVA== 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=n0h/DCj46FLWAQCAs/91DgeBFBw7loQqYOgDIcItGco=; b=wE6cGBri2XZ0d6NrA/trceytzoAabOaTI/NGtDXeIsTJYHrqzXe8mHO/5HFvu/nF44 AxFHyoLeFphMXcrPpQorwtvIkz5w5phZbaz0CRJryzteWriidRBCUYyzX4My2SQv0A45 x/yMdr3nSUFsUl0O6IRpCFQ5GdygOVvjH1me/WzXRKtqOhRYmOfR4dhClzN8Xx4utw4A 5H3bWoYFqteKCj5tjgHUgnx5de9+F3mnZ64BkqXavNPCxTdsimZd6V5FR6Xv5CX8MtMW trFbmczDZQJnzxelgxevcvT8hxYAjRVhFRgakLlJzh/GpN2Kjb0b2N5OK9ernhahkAjf hGDQ== 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 l16si772713edb.221.2021.03.11.18.54.39; Thu, 11 Mar 2021 18:54:39 -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 S229737AbhCLCyG (ORCPT + 6 others); Thu, 11 Mar 2021 21:54:06 -0500 Received: from inva020.nxp.com ([92.121.34.13]:52994 "EHLO inva020.nxp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231434AbhCLCyA (ORCPT ); Thu, 11 Mar 2021 21:54:00 -0500 Received: from inva020.nxp.com (localhost [127.0.0.1]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id 067671A04F4; Fri, 12 Mar 2021 03:53:59 +0100 (CET) Received: from invc005.ap-rdc01.nxp.com (invc005.ap-rdc01.nxp.com [165.114.16.14]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id 4B75D1A04A3; Fri, 12 Mar 2021 03:53:52 +0100 (CET) Received: from localhost.localdomain (shlinux2.ap.freescale.net [10.192.224.44]) by invc005.ap-rdc01.nxp.com (Postfix) with ESMTP id 754AC402A7; Fri, 12 Mar 2021 03:53:43 +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 v5 0/6] Add audio driver base on rpmsg on i.MX platform Date: Fri, 12 Mar 2021 10:38:39 +0800 Message-Id: <1615516725-4975-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. changes in v5: - remove unneeded property in binding doc and driver - update binding doc according to Rob's comments. - Fix link issue reported by kernel test robot changes in v4: - remove the sound card node, merge the property to cpu dai node according to Rob's comments. - sound card device will be registered by cpu dai driver. - Fix do_div issue reported by kernel test robot changes in v3: - add local refcount for clk enablement in hw_params() - update the document according Rob's comments changes in v2: - update codes and comments according to Mark's comments Shengjiu Wang (6): 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 audio device 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 .../devicetree/bindings/sound/fsl,rpmsg.yaml | 108 +++ include/sound/soc-component.h | 3 + sound/soc/fsl/Kconfig | 30 + sound/soc/fsl/Makefile | 6 + sound/soc/fsl/fsl_rpmsg.c | 279 ++++++ sound/soc/fsl/fsl_rpmsg.h | 35 + sound/soc/fsl/imx-audio-rpmsg.c | 140 +++ sound/soc/fsl/imx-pcm-rpmsg.c | 918 ++++++++++++++++++ sound/soc/fsl/imx-pcm-rpmsg.h | 512 ++++++++++ sound/soc/fsl/imx-rpmsg.c | 150 +++ sound/soc/soc-component.c | 14 + sound/soc/soc-pcm.c | 2 + 12 files changed, 2197 insertions(+) create mode 100644 Documentation/devicetree/bindings/sound/fsl,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