From: "Mylène Josserand" <mylene.josserand@free-electrons.com>
To: vinod.koul@intel.com, maxime.ripard@free-electrons.com,
wens@csie.org, mturquette@baylibre.com, sboyd@codeaurora.org,
lgirdwood@gmail.com, broonie@kernel.org, perex@perex.cz,
tiwai@suse.com, lee.jones@linaro.org, mark.rutland@arm.com,
robh+dt@kernel.org
Cc: linux-kernel@vger.kernel.org, dmaengine@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org,
alsa-devel@alsa-project.org, devicetree@vger.kernel.org,
linux-sunxi@googlegroups.com,
thomas.petazzoni@free-electrons.com,
mylene.josserand@free-electrons.com,
alexandre.belloni@free-electrons.com
Subject: [PATCH 00/14] ASoc: sunxi: Add Allwinner A33 codec driver
Date: Tue, 4 Oct 2016 11:46:13 +0200 [thread overview]
Message-ID: <cover.1475569400.git.mylene.josserand@free-electrons.com> (raw)
Hi everyone,
This patchset add the audio codec for Allwinner A33 (sun8i) SoC.
It adds different drivers:
- sun8i-codec-analog (patch 4): This driver implements the analog part
of the audio codec. The analog part is handled in PRCM registers so this
driver must be added as prcm's subnode (patch 5).
- sun8i-codec (patch 6): This driver implements the digital part of the
A33 codec.
- sun8i (patch 7): This driver implements a sound card for A33.
It links the DAI and the audio codec. The analog codec driver is handled
as an "aux_device".
The DAI for this codec is the same than for A20: "sun4i-i2s".
The digital codec code is coming from Allwinner's BSP (after some
cleanup and DAPM conversion) [1]
The analog codec driver is coming from Chen-Yu Tsai's driver [2]
with some modifications (such as read/write regmap functions).
Currently, all the drivers handle only the playback feature.
The other ones (such as capture) and all other interfaces except
headphone are not supported.
These drivers are functional except for one issue. When playing a sound
for the first time, a short delay can be noticed. On a second play
(right after), the sound is played correctly. If we wait a short time
(~5 sec), the delay is back.
There is the same behavior for left/right channel. On the first
time, a left sound is played on the left channel but in the second
time, the sound will be played on wrong channel.
These issues will be fixed in a second time. Is someone have suggestions
about it?
Examples of amixer commands:
amixer set 'Headphone' 75%
amixer set 'Headphone' on
amixer set 'DAC' on
amixer set 'Right DAC Mixer RSlot 0' on
amixer set 'Left DAC Mixer LSlot 0' on
amixer set 'DAC Reversed Right' on
amixer set 'DAC Reversed Left' on
It was tested on Parrot and Sinlinx board where device tree's modifications
are added (patch 11 to 14).
Thank you in advance,
Best regards,
[1]: https://github.com/allwinner-zh/linux-3.4-sunxi/blob/master/sound/soc/sunxi/audiocodec/sun8iw5_sndcodec.c
[2]: https://github.com/wens/linux/tree/a31-audio
Mylène Josserand (14):
dma: sun6i-dma: Add burst case of 4
clk: ccu-sun8i-a33: Add CLK_SET_RATE_PARENT to ac-dig
ASoC: sun4i-i2s: Add apb reset
ASoC: Add sun8i analog codec driver
mfd: sun6i-prcm: Add sun8i analog codec as subnode
ASoC: Add sun8i digital audio codec
ASoC: Add sun8i audio card
dt-bindings: sound: Add sun8i analog codec documentation
dt-bindings: sound: Add sun8i codec documentation
dt-bindings: sound: Add sun8i audio card documentation
ARM: dts: sun8i: Add analog codec on prcm node
ARM: dts: sun8i: Add audio codec, dai and card for A33
ARM: dts: sun8i: parrot: Enable audio nodes
ARM: dts: sun8i: sinlinx: Enable audio nodes
.../devicetree/bindings/sound/sun8i-audio.txt | 17 +
.../bindings/sound/sun8i-codec-analog.txt | 20 +
.../devicetree/bindings/sound/sun8i-codec.txt | 24 +
arch/arm/boot/dts/sun8i-a23-a33.dtsi | 7 +
arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts | 8 +
arch/arm/boot/dts/sun8i-a33.dtsi | 33 ++
arch/arm/boot/dts/sun8i-r16-parrot.dts | 8 +
drivers/clk/sunxi-ng/ccu-sun8i-a33.c | 2 +-
drivers/dma/sun6i-dma.c | 2 +
drivers/mfd/sun6i-prcm.c | 16 +
sound/soc/sunxi/Kconfig | 30 ++
sound/soc/sunxi/Makefile | 3 +
sound/soc/sunxi/sun4i-i2s.c | 16 +-
sound/soc/sunxi/sun8i-codec-analog.c | 305 +++++++++++++
sound/soc/sunxi/sun8i-codec.c | 492 +++++++++++++++++++++
sound/soc/sunxi/sun8i.c | 101 +++++
16 files changed, 1082 insertions(+), 2 deletions(-)
create mode 100644 Documentation/devicetree/bindings/sound/sun8i-audio.txt
create mode 100644 Documentation/devicetree/bindings/sound/sun8i-codec-analog.txt
create mode 100644 Documentation/devicetree/bindings/sound/sun8i-codec.txt
create mode 100644 sound/soc/sunxi/sun8i-codec-analog.c
create mode 100644 sound/soc/sunxi/sun8i-codec.c
create mode 100644 sound/soc/sunxi/sun8i.c
--
2.9.3
next reply other threads:[~2016-10-04 9:46 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-04 9:46 Mylène Josserand [this message]
[not found] ` <cover.1475571575.git.mylene.josserand-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
[not found] ` <cover.1475569400.git.mylene.josserand-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2016-10-04 9:46 ` [PATCH 09/14] dt-bindings: sound: Add sun8i codec documentation Mylène Josserand
2016-10-04 16:19 ` Maxime Ripard
2016-10-04 9:46 ` [PATCH 10/14] dt-bindings: sound: Add sun8i audio card documentation Mylène Josserand
[not found] ` <c317ce9f180a24611e79086944feca00d416b7b4.1475571575.git.mylene.josserand-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2016-10-04 16:32 ` Maxime Ripard
2016-10-07 8:35 ` [PATCH 00/14] ASoc: sunxi: Add Allwinner A33 codec driver Icenowy Zheng
[not found] ` <cover.1475571575.git.mylene.josserand@free-electrons.com>
2016-10-04 9:46 ` [PATCH 01/14] dma: sun6i-dma: Add burst case of 4 Mylène Josserand
2016-10-04 10:40 ` Jean-Francois Moine
[not found] ` <20161004124011.d7f5754a082d5f17d5185fc4-GANU6spQydw@public.gmane.org>
2016-10-04 12:12 ` Thomas Petazzoni
[not found] ` <20161004141221.55327f1b-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2016-10-04 13:46 ` Jean-Francois Moine
[not found] ` <20161004154651.3d0eb02badb6dc66758dd3aa-GANU6spQydw@public.gmane.org>
2016-10-04 15:40 ` Vinod Koul
2016-10-04 16:55 ` Maxime Ripard
2016-10-23 16:31 ` Jean-Francois Moine
[not found] ` <20161023183107.5b75b6aad62853378713299f-GANU6spQydw@public.gmane.org>
2016-10-27 17:51 ` Maxime Ripard
2016-10-30 2:06 ` Chen-Yu Tsai
[not found] ` <CAGb2v67SSZF6XL-HXv83nuwTKpJc53h8gsrb2r2V98LNZBzqEA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-10-30 6:16 ` Jean-Francois Moine
2016-11-01 13:46 ` Koul, Vinod
[not found] ` <1477922460.2837.5.camel-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-11-01 14:55 ` Chen-Yu Tsai
2016-11-14 4:54 ` Vinod Koul
2016-10-04 9:46 ` [PATCH 02/14] clk: ccu-sun8i-a33: Add CLK_SET_RATE_PARENT to ac-dig Mylène Josserand
[not found] ` <8dfe0935d35b8a218ebf39d37113e27289a0de9b.1475571575.git.mylene.josserand-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2016-10-04 12:12 ` Thomas Petazzoni
2016-10-05 9:37 ` Mylene Josserand
2016-10-04 9:46 ` [PATCH 03/14] ASoC: sun4i-i2s: Add apb reset Mylène Josserand
2016-10-04 12:15 ` Thomas Petazzoni
2016-10-04 15:42 ` Maxime Ripard
2016-10-05 9:43 ` Mylene Josserand
2016-10-04 12:22 ` Code Kipper
2016-10-04 9:46 ` [PATCH 04/14] ASoC: Add sun8i analog codec driver Mylène Josserand
[not found] ` <db0f628732e8b52b36b8204f146573926957e654.1475571575.git.mylene.josserand-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2016-10-04 10:21 ` Code Kipper
2016-10-04 10:56 ` Chen-Yu Tsai
2016-10-04 9:46 ` [PATCH 05/14] mfd: sun6i-prcm: Add sun8i analog codec as subnode Mylène Josserand
2016-10-04 10:52 ` Jean-Francois Moine
[not found] ` <c74aea452bd1831f439dd67884cb2879e0849f03.1475571575.git.mylene.josserand-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2016-10-26 14:05 ` Lee Jones
2016-10-04 9:46 ` [PATCH 06/14] ASoC: Add sun8i digital audio codec Mylène Josserand
2016-10-04 12:40 ` Thomas Petazzoni
[not found] ` <20161004144008.0d07d18c-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2016-10-04 13:07 ` Mark Brown
2016-10-04 13:16 ` Thomas Petazzoni
2016-10-04 16:09 ` Maxime Ripard
2016-10-05 11:54 ` Mylene Josserand
2016-10-04 16:15 ` Maxime Ripard
2016-10-06 16:06 ` Icenowy Zheng
[not found] ` <901741475770017-TgaBlLcPqFtxpj1cXAZ9Bg@public.gmane.org>
2016-10-06 18:23 ` Alexandre Belloni
[not found] ` <85cbd9926e52d0aa03f6bbfd8794373d8db491e0.1475571575.git.mylene.josserand-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2016-10-05 10:19 ` Icenowy Zheng
2016-10-04 9:46 ` [PATCH 07/14] ASoC: Add sun8i audio card Mylène Josserand
2016-10-04 12:25 ` Thomas Petazzoni
[not found] ` <33d641ff43f0c0349cdfa2cdbbfdcdde66205596.1475571575.git.mylene.josserand-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2016-10-04 10:16 ` Code Kipper
2016-10-04 10:59 ` Chen-Yu Tsai
2016-10-05 6:04 ` Code Kipper
[not found] ` <CAEKpxBkUbCGJdToReQx7P+5i92doUdNeMvA5fiDACGcniY=nJg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-10-05 10:03 ` Jean-Francois Moine
2016-10-04 9:46 ` [PATCH 08/14] dt-bindings: sound: Add sun8i analog codec documentation Mylène Josserand
[not found] ` <06ea14939405c3eb0fb9be655d26ee564a04a53d.1475571575.git.mylene.josserand-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2016-10-04 10:32 ` Mark Brown
2016-10-04 16:24 ` Maxime Ripard
2016-10-05 2:59 ` Chen-Yu Tsai
2016-10-05 12:08 ` Mylene Josserand
2016-10-04 9:46 ` [PATCH 11/14] ARM: dts: sun8i: Add analog codec on prcm node Mylène Josserand
2016-10-04 9:46 ` [PATCH 12/14] ARM: dts: sun8i: Add audio codec, dai and card for A33 Mylène Josserand
2016-10-04 9:46 ` [PATCH 13/14] ARM: dts: sun8i: parrot: Enable audio nodes Mylène Josserand
2016-10-04 9:46 ` [PATCH 14/14] ARM: dts: sun8i: sinlinx: " Mylène Josserand
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=cover.1475569400.git.mylene.josserand@free-electrons.com \
--to=mylene.josserand@free-electrons.com \
--cc=alexandre.belloni@free-electrons.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dmaengine@vger.kernel.org \
--cc=lee.jones@linaro.org \
--cc=lgirdwood@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sunxi@googlegroups.com \
--cc=mark.rutland@arm.com \
--cc=maxime.ripard@free-electrons.com \
--cc=mturquette@baylibre.com \
--cc=perex@perex.cz \
--cc=robh+dt@kernel.org \
--cc=sboyd@codeaurora.org \
--cc=thomas.petazzoni@free-electrons.com \
--cc=tiwai@suse.com \
--cc=vinod.koul@intel.com \
--cc=wens@csie.org \
/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).