ASoC: codecs: Add sun8i-a33 binding documentation
authorMylène Josserand <mylene.josserand@free-electrons.com>
Thu, 2 Feb 2017 09:24:19 +0000 (10:24 +0100)
committerMark Brown <broonie@kernel.org>
Fri, 3 Feb 2017 12:02:06 +0000 (13:02 +0100)
Add the documentation for dt-binding of the digital audio codec driver
and the audio card driver for Sun8i-a33 SoCs.

Signed-off-by: Mylène Josserand <mylene.josserand@free-electrons.com>
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Documentation/devicetree/bindings/sound/sun8i-a33-codec.txt [new file with mode: 0644]

diff --git a/Documentation/devicetree/bindings/sound/sun8i-a33-codec.txt b/Documentation/devicetree/bindings/sound/sun8i-a33-codec.txt
new file mode 100644 (file)
index 0000000..399b1b4
--- /dev/null
@@ -0,0 +1,63 @@
+Allwinner SUN8I audio codec
+------------------------------------
+
+On Sun8i-A33 SoCs, the audio is separated in different parts:
+         - A DAI driver. It uses the "sun4i-i2s" driver which is
+         documented here:
+         Documentation/devicetree/bindings/sound/sun4i-i2s.txt
+         - An analog part of the codec which is handled as PRCM registers.
+         See Documentation/devicetree/bindings/sound/sun8i-codec-analog.txt
+         - An digital part of the codec which is documented in this current
+         binding documentation.
+         - And finally, an audio card which links all the above components.
+         The simple-audio card will be used.
+         See Documentation/devicetree/bindings/sound/simple-card.txt
+
+This bindings documentation exposes Sun8i codec (digital part).
+
+Required properties:
+- compatible: must be "allwinner,sun8i-a33-codec"
+- reg: must contain the registers location and length
+- interrupts: must contain the codec interrupt
+- clocks: a list of phandle + clock-specifer pairs, one for each entry
+  in clock-names.
+- clock-names: should contain followings:
+   - "bus": the parent APB clock for this controller
+   - "mod": the parent module clock
+
+Here is an example to add a sound card and the codec binding on sun8i SoCs that
+are similar to A33 using simple-card:
+
+       sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "sun8i-a33-audio";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,frame-master = <&link_codec>;
+               simple-audio-card,bitclock-master = <&link_codec>;
+               simple-audio-card,mclk-fs = <512>;
+               simple-audio-card,aux-devs = <&codec_analog>;
+               simple-audio-card,routing =
+                               "Left DAC", "Digital Left DAC",
+                               "Right DAC", "Digital Right DAC";
+
+               simple-audio-card,cpu {
+                       sound-dai = <&dai>;
+               };
+
+               link_codec: simple-audio-card,codec {
+                       sound-dai = <&codec>;
+               };
+
+       soc@01c00000 {
+               [...]
+
+               audio-codec@1c22e00 {
+                       #sound-dai-cells = <0>;
+                       compatible = "allwinner,sun8i-a33-codec";
+                       reg = <0x01c22e00 0x400>;
+                       interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
+                       clock-names = "bus", "mod";
+               };
+       };
+