From: Sameer Pujar <spujar@nvidia.com>
To: <broonie@kernel.org>, <perex@perex.cz>, <tiwai@suse.com>,
<kuninori.morimoto.gx@renesas.com>, <robh+dt@kernel.org>,
<lgirdwood@gmail.com>
Cc: <thierry.reding@gmail.com>, <jonathanh@nvidia.com>,
<digetx@gmail.com>, <alsa-devel@alsa-project.org>,
<linux-tegra@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<sharadg@nvidia.com>, <mkumard@nvidia.com>,
<viswanathl@nvidia.com>, <rlokhande@nvidia.com>,
<dramesh@nvidia.com>, <atalambedu@nvidia.com>,
<nwartikar@nvidia.com>, <swarren@nvidia.com>,
<nicoleotsuka@gmail.com>, Sameer Pujar <spujar@nvidia.com>
Subject: [PATCH v4 00/23] Add support for Tegra210 Audio
Date: Sat, 27 Jun 2020 10:23:22 +0530 [thread overview]
Message-ID: <1593233625-14961-1-git-send-email-spujar@nvidia.com> (raw)
Overview
========
Audio Processing Engine (APE) comprises of Audio DMA (ADMA) and Audio
Hub (AHUB) unit. AHUB is a collection of hardware accelerators for audio
pre-processing and post-processing. It also includes a programmable full
crossbar for routing audio data across these accelerators.
This series exposes some of these below mentioned HW devices as ASoC
components for Tegra platforms from Tegra210 onwards.
* ADMAIF : The interface between ADMA and AHUB
* XBAR : Crossbar for routing audio samples across various modules
* I2S : Inter-IC Sound Controller
* DMIC : Digital Microphone
* DSPK : Digital Speaker
Following is the summary of current series.
* Add YAML DT binding documentation for above mentioned modules.
* Helper function for ACIF programming is exposed for Tegra210 and later.
* Add ASoC driver components for each of the above modules.
* Add DT entries for above components for Tegra210, Tegra186 and
Tegra194.
* Enable these components for Jetson Nano/TX1/TX2/Xavier
* Enhance simple-card DPCM driver to suit Tegra Audio applications with
few changes in core.
* To begin with, enable sound card support for Tegra210 based platforms
like Jetson Nano/TX1.
Sound card support for platforms based on Tegra186 and later will be
subsequently added which can re-use all of the above components.
Changelog
=========
v3 -> v4
--------
* [1/23] "ASoC: dt-bindings: tegra: Add DT bindings for Tegra210"
- Removed multiple examples and retained one example per doc
- Fixed as per inputs on the previous series
- Tested bindings with 'make dt_binding_check/dtbs_check'
* [2/23] "ASoC: tegra: Add support for CIF programming"
- No change
* Common changes (for patch [3/10] to [7/10])
- Mixer control overrides, for PCM parameters (rate, channel, bits),
in each driver are dropped.
- Updated routing as per DPCM usage
- Minor changes related to formatting
* New changes (patch [8/23] to [18/23] and patch [23/23])
- Based on discussions in following threads DPCM is used for Tegra Audio.
https://lkml.org/lkml/2020/2/20/91
https://lkml.org/lkml/2020/4/30/519
- The simple-card driver is used for Tegra Audio and accordingly
some enhancements are made in simple-card and core drivers.
- Patch [8/23] to [18/23] are related to simple-card and core changes.
- Patch [23/23] adds sound card support to realize complete audio path.
This is based on simple-card driver with proposed enhancements.
- Re-ordered patches depending on above
v2 -> v3
--------
* [1/10] "dt-bindings: sound: tegra: add DT binding for AHUB
- Updated licence
- Removed redundancy w.r.t items/const/enum
- Added constraints wherever needed with "pattern" property
* [2/10] "ASoC: tegra: add support for CIF programming"
- Removed tegra_cif.c
- Instead added inline helper function in tegra_cif.h
* common changes (for patch [3/10] to [7/10])
- Replace LATE system calls with Normal sleep
- Remove explicit RPM suspend in driver remove() call
- Use devm_kzalloc() instead of devm_kcalloc() for single element
- Replace 'ret' with 'err' for better reading
- Consistent error printing style across drivers
- Minor formating fixes
* [8/10] "arm64: tegra: add AHUB components for few Tegra chips"
- no change
* [9/10] "arm64: tegra: enable AHUB modules for few Tegra chips"
- no change
* [10/10] "arm64: defconfig: enable AHUB components for Tegra210 and later"
(New patch)
- Enables ACONNECT and AHUB components. With this AHUB and components are
registered with ASoC core.
v1 -> v2
--------
* [1/9] "dt-bindings: sound: tegra: add DT binding for AHUB"
- no changes
* [2/9] "ASoC: tegra: add support for CIF programming"
- removed CIF programming changes for legacy chips.
- this patch now exposes helper function for CIF programming,
which can be used on Tegra210 later.
- later tegra_cif.c can be extended for legacy chips as well.
- updated commit message accordingly
* [3/9] "ASoC: tegra: add Tegra210 based DMIC driver"
- removed unnecessary initialization of 'ret' in probe()
* [4/9] "ASoC: tegra: add Tegra210 based I2S driver"
- removed unnecessary initialization of 'ret' in probe()
- fixed indentation
- added consistent bracing for if-else clauses
- updated 'rx_fifo_th' type to 'unsigned int'
- used BIT() macro for defines like '1 << {x}' in tegra210_i2s.h
* [5/9] "ASoC: tegra: add Tegra210 based AHUB driver"
- used of_device_get_match_data() to get 'soc_data' and removed
explicit of_match_device()
- used devm_platform_ioremap_resource() and removed explicit
platform_get_resource()
- fixed indentation for devm_snd_soc_register_component()
- updated commit message
- updated commit message to reflect compatible binding for Tegra186 and
Tegra194.
* [6/9] "ASoC: tegra: add Tegra186 based DSPK driver"
- removed unnecessary initialization of 'ret' in probe()
- updated 'max_th' to 'unsigned int'
- shortened lengthy macro names to avoid wrapping in
tegra186_dspk_wr_reg() and to be consistent
* [7/9] "ASoC: tegra: add Tegra210 based ADMAIF driver"
- used of_device_get_match_data() and removed explicit of_match_device()
- used BIT() macro for defines like '1 << {x}' in tegra210_admaif.h
- updated commit message to reflect compatible binding for Tegra186 and
Tegra194.
* [8/9] "arm64: tegra: add AHUB components for few Tegra chips"
- no change
* [9/9] "arm64: tegra: enable AHUB modules for few Tegra chips"
- no change
* common changes for patch [3/9] to [7/9]
- sorted headers in alphabetical order
- moved MODULE_DEVICE_TABLE() right below *_of_match table
- removed macro DRV_NAME
- removed explicit 'owner' field from platform_driver structure
- added 'const' to snd_soc_dai_ops structure
==================
Sameer Pujar (23):
ASoC: dt-bindings: tegra: Add DT bindings for Tegra210
ASoC: tegra: Add support for CIF programming
ASoC: tegra: Add Tegra210 based DMIC driver
ASoC: tegra: Add Tegra210 based I2S driver
ASoC: tegra: Add Tegra210 based AHUB driver
ASoC: tegra: Add Tegra186 based DSPK driver
ASoC: tegra: Add Tegra210 based ADMAIF driver
ASoC: soc-core: Fix component name_prefix parsing
ASoC: simple-card: Use of_node and DAI names for DAI link names
ASoC: simple-card: Wrong daifmt for CPU end of DPCM DAI link
ASoC: simple-card: Loop over all children for 'mclk-fs'
ASoC: simple-card: Support DPCM DAI link with multiple Codecs
ASoC: simple-card: DPCM DAI link direction as per DAI capability
ASoC: soc-core: Probe auxiliary component before others
ASoC: soc-core: Identify 'no_pcm' DAI links for DPCM
ASoC: soc-pcm: Get all BEs along DAPM path
ASoC: dt-bindings: simple-card: Add compatible for component chaining
ASoC: simple-card: Add support for component chaining
arm64: defconfig: Build AHUB component drivers
arm64: defconfig: Enable CONFIG_TEGRA210_ADMA
arm64: tegra: Add DT binding for AHUB components
arm64: tegra: Enable AHUB components on few Tegra platforms
arm64: tegra: Add support for APE sound card on Jetson Nano and TX1
.../bindings/sound/nvidia,tegra186-dspk.yaml | 88 +++
.../bindings/sound/nvidia,tegra210-admaif.yaml | 116 +++
.../bindings/sound/nvidia,tegra210-ahub.yaml | 144 ++++
.../bindings/sound/nvidia,tegra210-dmic.yaml | 88 +++
.../bindings/sound/nvidia,tegra210-i2s.yaml | 106 +++
.../devicetree/bindings/sound/simple-card.yaml | 1 +
arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts | 48 ++
arch/arm64/boot/dts/nvidia/tegra186.dtsi | 231 +++++-
arch/arm64/boot/dts/nvidia/tegra194-p2972-0000.dts | 36 +
arch/arm64/boot/dts/nvidia/tegra194.dtsi | 239 +++++-
arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts | 136 +++-
arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts | 85 +++
arch/arm64/boot/dts/nvidia/tegra210.dtsi | 219 +++++-
arch/arm64/configs/defconfig | 8 +
include/sound/simple_card.h | 5 +
include/sound/soc.h | 3 +
sound/soc/generic/simple-card.c | 96 ++-
sound/soc/soc-core.c | 43 +-
sound/soc/soc-dai.c | 1 +
sound/soc/soc-pcm.c | 3 +-
sound/soc/tegra/Kconfig | 56 ++
sound/soc/tegra/Makefile | 10 +
sound/soc/tegra/tegra186_dspk.c | 427 +++++++++++
sound/soc/tegra/tegra186_dspk.h | 70 ++
sound/soc/tegra/tegra210_admaif.c | 845 +++++++++++++++++++++
sound/soc/tegra/tegra210_admaif.h | 162 ++++
sound/soc/tegra/tegra210_ahub.c | 578 ++++++++++++++
sound/soc/tegra/tegra210_ahub.h | 100 +++
sound/soc/tegra/tegra210_dmic.c | 440 +++++++++++
sound/soc/tegra/tegra210_dmic.h | 82 ++
sound/soc/tegra/tegra210_i2s.c | 780 +++++++++++++++++++
sound/soc/tegra/tegra210_i2s.h | 126 +++
sound/soc/tegra/tegra_cif.h | 65 ++
sound/soc/tegra/tegra_pcm.c | 235 +++++-
sound/soc/tegra/tegra_pcm.h | 21 +-
35 files changed, 5657 insertions(+), 36 deletions(-)
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra186-dspk.yaml
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-admaif.yaml
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-ahub.yaml
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-dmic.yaml
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-i2s.yaml
create mode 100644 sound/soc/tegra/tegra186_dspk.c
create mode 100644 sound/soc/tegra/tegra186_dspk.h
create mode 100644 sound/soc/tegra/tegra210_admaif.c
create mode 100644 sound/soc/tegra/tegra210_admaif.h
create mode 100644 sound/soc/tegra/tegra210_ahub.c
create mode 100644 sound/soc/tegra/tegra210_ahub.h
create mode 100644 sound/soc/tegra/tegra210_dmic.c
create mode 100644 sound/soc/tegra/tegra210_dmic.h
create mode 100644 sound/soc/tegra/tegra210_i2s.c
create mode 100644 sound/soc/tegra/tegra210_i2s.h
create mode 100644 sound/soc/tegra/tegra_cif.h
--
2.7.4
next reply other threads:[~2020-06-27 4:54 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-27 4:53 Sameer Pujar [this message]
2020-06-27 4:53 ` [PATCH v4 01/23] ASoC: dt-bindings: tegra: Add DT bindings for Tegra210 Sameer Pujar
2020-06-27 4:53 ` [PATCH v4 02/23] ASoC: tegra: Add support for CIF programming Sameer Pujar
2020-06-27 4:53 ` [PATCH v4 03/23] ASoC: tegra: Add Tegra210 based DMIC driver Sameer Pujar
2020-06-27 4:53 ` [PATCH v4 04/23] ASoC: tegra: Add Tegra210 based I2S driver Sameer Pujar
2020-06-27 4:53 ` [PATCH v4 05/23] ASoC: tegra: Add Tegra210 based AHUB driver Sameer Pujar
2020-06-27 4:53 ` [PATCH v4 06/23] ASoC: tegra: Add Tegra186 based DSPK driver Sameer Pujar
2020-06-27 4:53 ` [PATCH v4 07/23] ASoC: tegra: Add Tegra210 based ADMAIF driver Sameer Pujar
2020-06-27 4:53 ` [PATCH v4 08/23] ASoC: soc-core: Fix component name_prefix parsing Sameer Pujar
2020-06-29 0:38 ` Kuninori Morimoto
2020-06-29 15:46 ` Sameer Pujar
2020-06-30 10:45 ` Mark Brown
2020-06-30 12:56 ` Sameer Pujar
2020-06-27 4:53 ` [PATCH v4 09/23] ASoC: simple-card: Use of_node and DAI names for DAI link names Sameer Pujar
2020-06-27 4:53 ` [PATCH v4 10/23] ASoC: simple-card: Wrong daifmt for CPU end of DPCM DAI link Sameer Pujar
2020-06-29 0:56 ` Kuninori Morimoto
[not found] ` <6e27daa5-331e-968b-4027-2e30aeb7d382@nvidia.com>
2020-06-30 0:56 ` Kuninori Morimoto
2020-06-30 3:47 ` Sameer Pujar
2020-06-30 5:07 ` Kuninori Morimoto
2020-06-27 4:53 ` [PATCH v4 11/23] ASoC: simple-card: Loop over all children for 'mclk-fs' Sameer Pujar
2020-06-29 1:05 ` Kuninori Morimoto
2020-06-29 16:32 ` Sameer Pujar
2020-06-30 2:08 ` Kuninori Morimoto
2020-06-30 4:23 ` Sameer Pujar
2020-06-30 10:55 ` Mark Brown
2020-06-30 11:56 ` Sameer Pujar
2020-06-27 4:53 ` [PATCH v4 12/23] ASoC: simple-card: Support DPCM DAI link with multiple Codecs Sameer Pujar
2020-06-29 1:24 ` Kuninori Morimoto
2020-06-29 17:16 ` Sameer Pujar
2020-06-30 1:24 ` Kuninori Morimoto
2020-06-30 4:08 ` Sameer Pujar
2020-06-30 6:55 ` Kuninori Morimoto
2020-06-30 7:52 ` Sameer Pujar
2020-06-30 11:01 ` Mark Brown
2020-06-30 12:53 ` Sameer Pujar
2020-06-30 15:32 ` Mark Brown
2020-07-02 10:36 ` Sameer Pujar
2020-07-02 12:26 ` Mark Brown
2020-07-17 12:55 ` Sameer Pujar
2020-06-27 4:53 ` [PATCH v4 13/23] ASoC: simple-card: DPCM DAI link direction as per DAI capability Sameer Pujar
2020-06-27 4:53 ` [PATCH v4 14/23] ASoC: soc-core: Probe auxiliary component before others Sameer Pujar
2020-06-27 4:53 ` [PATCH v4 15/23] ASoC: soc-core: Identify 'no_pcm' DAI links for DPCM Sameer Pujar
2020-06-29 1:38 ` Kuninori Morimoto
2020-06-29 17:19 ` Sameer Pujar
2020-06-30 6:07 ` Kuninori Morimoto
2020-06-30 8:03 ` Sameer Pujar
2020-07-02 0:52 ` Kuninori Morimoto
2020-07-02 3:48 ` Sameer Pujar
2020-07-02 8:50 ` Kuninori Morimoto
2020-07-02 9:56 ` Sameer Pujar
2020-06-27 4:53 ` [PATCH v4 16/23] ASoC: soc-pcm: Get all BEs along DAPM path Sameer Pujar
2020-06-29 1:41 ` Kuninori Morimoto
2020-06-29 17:29 ` Sameer Pujar
2020-06-27 4:53 ` [PATCH v4 17/23] ASoC: dt-bindings: simple-card: Add compatible for component chaining Sameer Pujar
2020-06-27 4:53 ` [PATCH v4 18/23] ASoC: simple-card: Add support " Sameer Pujar
2020-06-27 4:53 ` [PATCH v4 19/23] arm64: defconfig: Build AHUB component drivers Sameer Pujar
2020-06-27 4:53 ` [PATCH v4 20/23] arm64: defconfig: Enable CONFIG_TEGRA210_ADMA Sameer Pujar
2020-06-27 4:53 ` [PATCH v4 21/23] arm64: tegra: Add DT binding for AHUB components Sameer Pujar
2020-06-27 4:53 ` [PATCH v4 22/23] arm64: tegra: Enable AHUB components on few Tegra platforms Sameer Pujar
2020-06-27 4:53 ` [PATCH v4 23/23] arm64: tegra: Add support for APE sound card on Jetson Nano and TX1 Sameer Pujar
2020-06-30 10:51 ` [PATCH v4 00/23] Add support for Tegra210 Audio Mark Brown
2020-06-30 11:54 ` Sameer Pujar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1593233625-14961-1-git-send-email-spujar@nvidia.com \
--to=spujar@nvidia.com \
--cc=alsa-devel@alsa-project.org \
--cc=atalambedu@nvidia.com \
--cc=broonie@kernel.org \
--cc=digetx@gmail.com \
--cc=dramesh@nvidia.com \
--cc=jonathanh@nvidia.com \
--cc=kuninori.morimoto.gx@renesas.com \
--cc=lgirdwood@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=mkumard@nvidia.com \
--cc=nicoleotsuka@gmail.com \
--cc=nwartikar@nvidia.com \
--cc=perex@perex.cz \
--cc=rlokhande@nvidia.com \
--cc=robh+dt@kernel.org \
--cc=sharadg@nvidia.com \
--cc=swarren@nvidia.com \
--cc=thierry.reding@gmail.com \
--cc=tiwai@suse.com \
--cc=viswanathl@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).