From: Koro Chen <koro.chen@mediatek.com>
To: robh+dt@kernel.org, matthias.bgg@gmail.com, broonie@kernel.org,
perex@perex.cz, tiwai@suse.de
Cc: devicetree@vger.kernel.org, koro.chen@mediatek.com,
srv_heupstream@mediatek.com, s.hauer@pengutronix.de,
lgirdwood@gmail.com, linux-kernel@vger.kernel.org,
linux-mediatek@lists.infradead.org, galak@codeaurora.org,
alsa-devel@alsa-project.org,
linux-arm-kernel@lists.infradead.org
Subject: [RESEND RFC PATCH 1/3] ASoC: mediatek: Add binding support for AFE driver
Date: Fri, 10 Apr 2015 16:14:07 +0800 [thread overview]
Message-ID: <1428653649-38200-2-git-send-email-koro.chen@mediatek.com> (raw)
In-Reply-To: <1428653649-38200-1-git-send-email-koro.chen@mediatek.com>
Add documentation and header file to support binding of Mediatek's AFE driver
Signed-off-by: Koro Chen <koro.chen@mediatek.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
.../devicetree/bindings/sound/mtk-afe-pcm.txt | 105 +++++++++++++++++++++
include/dt-bindings/sound/mtk-afe.h | 36 +++++++
2 files changed, 141 insertions(+)
create mode 100644 Documentation/devicetree/bindings/sound/mtk-afe-pcm.txt
create mode 100644 include/dt-bindings/sound/mtk-afe.h
diff --git a/Documentation/devicetree/bindings/sound/mtk-afe-pcm.txt b/Documentation/devicetree/bindings/sound/mtk-afe-pcm.txt
new file mode 100644
index 0000000..11fc8ba
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/mtk-afe-pcm.txt
@@ -0,0 +1,105 @@
+Mediatek AFE PCM controller
+
+The AFE unit can be illustrated by this figure:
+
+| MEMIF | AFE | IO |
+ *****************
+DL1------> *I5 O3* <----I2S--->
+ *I6 O4*
+ * I3*
+ * I4*
+ * O0* <--2ndI2S-->
+ * O1*
+ * I0*
+ * I1*
+AWB<------ *O5 * <--MTKIF--->
+ *O6 *
+VUL<------ *O9 * <---HDMI--->
+ *O10 *
+ * AFE *
+HDMI-----> * inter-connect *
+ *****************
+AFE comprises several memory interfaces (DL1, DL2, VUL, DAI, AWB, MOD_DAI
+and HDMI) that communicate with CPU, a multi input multi output digital audio
+interconnect, and several external interfaces (I2S, proprietary MTKIF, HDMI).
+Each external interface (called "IO" in this driver) is presented as a
+DAI to ASoC. An IO must be connected via the interconnect to a memif.
+The connection paths are configured through the device tree.
+
+Required properties:
+- compatible = "mediatek,mt8173-afe-pcm";
+- reg: array of register and sram location and size:
+ <register base address, size>,
+ <sram base address, size>;
+- interrupts: Should contain AFE interrupt
+- clock-names: should have these clock names:
+ "infra_sys_audio_clk",
+ "top_pdn_audio",
+ "top_pdn_aud_intbus",
+ "bck0",
+ "bck1",
+ "i2s0_m",
+ "i2s1_m",
+ "i2s2_m",
+ "i2s3_m",
+ "i2s3_b";
+
+DAI subnodes:
+ A DAI subnode describes which io connects to which memif.
+
+Required subnode properties:
+- io: which I/O to be used
+ (defined in include/dt-bindings/sound/mtk-afe.h)
+- connections: AFE connection pairs definition of this dai
+ For example, <5 3 6 4> means I5->O3, I6->O4
+ check SoC datasheet for a complete description
+- mem-interface-playback:
+ mem-interface-capture: property of memif, format is: <memif irq use_sram>;
+ memif: which memif to be used
+ (defined in include/dt-bindings/sound/mtk-afe.h)
+ irq: which irq to be used
+ (defined in include/dt-bindings/sound/mtk-afe.h)
+ use_sram: 1 is yes, 0 is no
+
+ Each DAI should describes at least playback or capture
+
+Example:
+
+ afe: mt8173-afe-pcm@11220000 {
+ compatible = "mediatek,mt8173-afe-pcm";
+ reg = <0 0x11220000 0 0x1000>,
+ <0 0x11221000 0 0x9000>;
+ interrupts = <GIC_SPI 134 IRQ_TYPE_EDGE_FALLING>;
+ clocks = <&infracfg INFRA_AUDIO>,
+ <&topckgen TOP_AUDIO_SEL>,
+ <&topckgen TOP_AUD_INTBUS_SEL>,
+ <&topckgen TOP_APLL1_DIV0>,
+ <&topckgen TOP_APLL2_DIV0>,
+ <&topckgen TOP_I2S0_M_CK_SEL>,
+ <&topckgen TOP_I2S1_M_CK_SEL>,
+ <&topckgen TOP_I2S2_M_CK_SEL>,
+ <&topckgen TOP_I2S3_M_CK_SEL>,
+ <&topckgen TOP_I2S3_B_CK_SEL>;
+ clock-names = "infra_sys_audio_clk",
+ "top_pdn_audio",
+ "top_pdn_aud_intbus",
+ "bck0",
+ "bck1",
+ "i2s0_m",
+ "i2s1_m",
+ "i2s2_m",
+ "i2s3_m",
+ "i2s3_b";
+ dai@0 {
+ io = <MTK_AFE_IO_I2S>;
+ connections = <5 3 6 4 3 9 4 10>;
+ mem-interface-playback = <MTK_AFE_MEMIF_DL1 MTK_AFE_IRQ_1 1>;
+ mem-interface-capture = <MTK_AFE_MEMIF_VUL MTK_AFE_IRQ_2 0>;
+ };
+
+ dai@1 {
+ io = <MTK_AFE_IO_HDMI>;
+ connections = <36 36 37 37 34 32 35 33 32 34 33 35 30 30 31 31>;
+ mem-interface-playback = <MTK_AFE_MEMIF_HDMI MTK_AFE_IRQ_5 0>;
+ };
+ };
diff --git a/include/dt-bindings/sound/mtk-afe.h b/include/dt-bindings/sound/mtk-afe.h
new file mode 100644
index 0000000..e6da18e
--- /dev/null
+++ b/include/dt-bindings/sound/mtk-afe.h
@@ -0,0 +1,36 @@
+#ifndef __DT_MTK_AFE_H
+#define __DT_MTK_AFE_H
+
+#define MTK_AFE_MEMIF_DL1 0
+#define MTK_AFE_MEMIF_DL2 1
+#define MTK_AFE_MEMIF_VUL 2
+#define MTK_AFE_MEMIF_DAI 3
+#define MTK_AFE_MEMIF_AWB 4
+#define MTK_AFE_MEMIF_MOD_DAI 5
+#define MTK_AFE_MEMIF_HDMI 6
+#define MTK_AFE_MEMIF_NUM 7
+
+#define MTK_AFE_IO_MOD_PCM1 0 /* connection to int main modem */
+#define MTK_AFE_IO_MOD_PCM2 1 /* connection to extrt/int modem */
+#define MTK_AFE_IO_PMIC 2 /* MTKIF for DAC and ADC */
+#define MTK_AFE_IO_I2S 3 /* I2S */
+#define MTK_AFE_IO_2ND_I2S 4 /* 2nd I2S */
+#define MTK_AFE_IO_HW_GAIN1 5 /* HW gain control */
+#define MTK_AFE_IO_HW_GAIN2 6
+#define MTK_AFE_IO_MRG_O 7 /* merge interface */
+#define MTK_AFE_IO_MRG_I 8
+#define MTK_AFE_IO_DAIBT 9
+#define MTK_AFE_IO_HDMI 10
+#define MTK_AFE_IO_NUM 11
+
+#define MTK_AFE_IRQ_1 0
+#define MTK_AFE_IRQ_2 1
+#define MTK_AFE_IRQ_3 2
+#define MTK_AFE_IRQ_4 3
+#define MTK_AFE_IRQ_5 4
+#define MTK_AFE_IRQ_6 5
+#define MTK_AFE_IRQ_7 6
+#define MTK_AFE_IRQ_8 7
+#define MTK_AFE_IRQ_NUM 8
+
+#endif /* __DT_MTK_AFE_H */
--
1.8.1.1.dirty
next prev parent reply other threads:[~2015-04-10 8:14 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-10 8:14 [RESEND RFC PATCH 0/3] ASoC: Mediatek: Add support for MT8173 SOC Koro Chen
2015-04-10 8:14 ` Koro Chen [this message]
2015-04-18 17:34 ` [RESEND RFC PATCH 1/3] ASoC: mediatek: Add binding support for AFE driver Mark Brown
[not found] ` <20150418173407.GE26185-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-04-20 4:37 ` Sascha Hauer
[not found] ` <20150420043747.GH6325-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2015-04-20 20:48 ` Mark Brown
[not found] ` <20150420204849.GJ14892-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-04-21 9:49 ` Sascha Hauer
2015-04-21 10:14 ` Mark Brown
2015-04-21 10:15 ` Koro Chen
2015-04-21 10:56 ` Mark Brown
2015-04-22 3:17 ` Koro Chen
2015-04-30 20:12 ` Mark Brown
[not found] ` <20150430201207.GK22845-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-05-04 1:57 ` Koro Chen
2015-04-10 8:14 ` [RESEND RFC PATCH 2/3] ASoC: mediatek: Add AFE connection control Koro Chen
[not found] ` <1428653649-38200-3-git-send-email-koro.chen-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
2015-04-18 17:37 ` Mark Brown
[not found] ` <20150418173740.GF26185-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-04-20 4:50 ` Sascha Hauer
[not found] ` <20150420045017.GI6325-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2015-04-20 20:52 ` Mark Brown
[not found] ` <20150420205230.GK14892-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-04-21 5:50 ` Sascha Hauer
[not found] ` <20150421055041.GQ6325-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2015-04-21 10:15 ` Mark Brown
2015-04-10 8:14 ` [RESEND RFC PATCH 3/3] ASoC: mediatek: Add AFE platform driver Koro Chen
2015-04-18 17:51 ` Mark Brown
[not found] ` <20150418175139.GG26185-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-04-20 6:22 ` Koro Chen
2015-04-20 20:55 ` Mark Brown
2015-04-21 2:27 ` Koro Chen
2015-04-21 10:05 ` Mark Brown
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=1428653649-38200-2-git-send-email-koro.chen@mediatek.com \
--to=koro.chen@mediatek.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=galak@codeaurora.org \
--cc=lgirdwood@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=matthias.bgg@gmail.com \
--cc=perex@perex.cz \
--cc=robh+dt@kernel.org \
--cc=s.hauer@pengutronix.de \
--cc=srv_heupstream@mediatek.com \
--cc=tiwai@suse.de \
/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).