public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
From: wens@csie.org (Chen-Yu Tsai)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v9 6/8] arm64: dts: allwinner: a64: add nodes necessary for analog sound support
Date: Thu, 22 Nov 2018 18:23:23 +0800	[thread overview]
Message-ID: <20181122102325.29495-7-wens@csie.org> (raw)
In-Reply-To: <20181122102325.29495-1-wens@csie.org>

From: Vasily Khoruzhick <anarsoul@gmail.com>

Add nodes for i2s, digital and analog parts of audiocodec on A64.

The routing paths listed are entries connecting the digital and analog
side of the audio codec together. Due to how device tree works, these
must be copied over to each board device tree, in addition to any board
level routes.

The oversampling rate is set to 128, so that when playing back 192 kHz
audio samples, the MCLK runs at the same rate as the module clock, at
24.576 MHz.

The user manual suggests using different oversampling rates for different
sample rates, but that's not possible without a platform-specific machine
driver.

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
[wens at csie.org: Lowered oversampling rate to 128; expanded commit message]
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
---
 arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 54 +++++++++++++++++++
 1 file changed, 54 insertions(+)

diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
index 42abfbf56b88..384c417cb7a2 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
@@ -155,6 +155,30 @@
 		method = "smc";
 	};
 
+	sound: sound {
+		compatible = "simple-audio-card";
+		simple-audio-card,name = "sun50i-a64-audio";
+		simple-audio-card,format = "i2s";
+		simple-audio-card,frame-master = <&cpudai>;
+		simple-audio-card,bitclock-master = <&cpudai>;
+		simple-audio-card,mclk-fs = <128>;
+		simple-audio-card,aux-devs = <&codec_analog>;
+		simple-audio-card,routing =
+				"Left DAC", "AIF1 Slot 0 Left",
+				"Right DAC", "AIF1 Slot 0 Right",
+				"AIF1 Slot 0 Left ADC", "Left ADC",
+				"AIF1 Slot 0 Right ADC", "Right ADC";
+		status = "disabled";
+
+		cpudai: simple-audio-card,cpu {
+			sound-dai = <&dai>;
+		};
+
+		link_codec: simple-audio-card,codec {
+			sound-dai = <&codec>;
+		};
+	};
+
 	sound_spdif {
 		compatible = "simple-audio-card";
 		simple-audio-card,name = "On-board SPDIF";
@@ -665,6 +689,30 @@
 			status = "disabled";
 		};
 
+		dai: dai at 1c22c00 {
+			#sound-dai-cells = <0>;
+			compatible = "allwinner,sun50i-a64-codec-i2s";
+			reg = <0x01c22c00 0x200>;
+			interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
+			clock-names = "apb", "mod";
+			resets = <&ccu RST_BUS_CODEC>;
+			reset-names = "rst";
+			dmas = <&dma 15>, <&dma 15>;
+			dma-names = "rx", "tx";
+			status = "disabled";
+		};
+
+		codec: codec at 1c22e00 {
+			#sound-dai-cells = <0>;
+			compatible = "allwinner,sun8i-a33-codec";
+			reg = <0x01c22e00 0x600>;
+			interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
+			clock-names = "bus", "mod";
+			status = "disabled";
+		};
+
 		uart0: serial at 1c28000 {
 			compatible = "snps,dw-apb-uart";
 			reg = <0x01c28000 0x400>;
@@ -924,6 +972,12 @@
 			#reset-cells = <1>;
 		};
 
+		codec_analog: codec-analog at 1f015c0 {
+			compatible = "allwinner,sun50i-a64-codec-analog";
+			reg = <0x01f015c0 0x4>;
+			status = "disabled";
+		};
+
 		r_i2c: i2c at 1f02400 {
 			compatible = "allwinner,sun50i-a64-i2c",
 				     "allwinner,sun6i-a31-i2c";
-- 
2.19.1

  parent reply	other threads:[~2018-11-22 10:23 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-22 10:23 [PATCH v9 0/8] Add support for audiocodec in Allwinner A64 Chen-Yu Tsai
2018-11-22 10:23 ` [PATCH v9 1/8] ASoC: dt-bindings: sun50i-codec-analog: Add headphone amp regulator supply Chen-Yu Tsai
2018-11-22 15:32   ` Maxime Ripard
2018-11-22 15:41     ` Chen-Yu Tsai
2018-11-22 15:48       ` Maxime Ripard
2018-11-23  2:11         ` Chen-Yu Tsai
2018-11-23 13:31     ` Mark Brown
2018-11-23 14:14   ` Applied "ASoC: dt-bindings: sun50i-codec-analog: Add headphone amp regulator supply" to the asoc tree Mark Brown
2018-11-22 10:23 ` [PATCH v9 2/8] ASoC: sunxi: sun50i-codec-analog: Add support for cpvdd regulator supply Chen-Yu Tsai
2018-11-23 14:14   ` Applied "ASoC: sunxi: sun50i-codec-analog: Add support for cpvdd regulator supply" to the asoc tree Mark Brown
2018-11-22 10:23 ` [PATCH v9 3/8] ASoC: dt-bindings: add regulator property to simple amplifier Chen-Yu Tsai
2018-11-26 19:14   ` Rob Herring
2018-11-22 10:23 ` [PATCH v9 4/8] ASoC: simple-amplifier: add VCC regulator widget Chen-Yu Tsai
2018-11-22 10:23 ` [PATCH v9 5/8] clk: sunxi-ng: sun50i: a64: Use sigma-delta modulation for audio PLL Chen-Yu Tsai
2018-11-22 10:23 ` Chen-Yu Tsai [this message]
2018-11-22 10:23 ` [PATCH v9 7/8] arm64: dts: allwinner: a64: enable sound on Pine64 and SoPine Chen-Yu Tsai
2018-11-22 10:23 ` [PATCH v9 8/8] arm64: dts: allwinner: a64: enable sound on Pinebook Chen-Yu Tsai
2018-11-23  4:15   ` Vasily Khoruzhick
2018-11-23  4:26 ` [PATCH v9 0/8] Add support for audiocodec in Allwinner A64 Vasily Khoruzhick
2018-11-23  4:37   ` Chen-Yu Tsai
2018-11-23 16:03     ` Chen-Yu Tsai

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=20181122102325.29495-7-wens@csie.org \
    --to=wens@csie.org \
    --cc=linux-arm-kernel@lists.infradead.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