Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp1962203imu; Fri, 23 Nov 2018 02:47:06 -0800 (PST) X-Google-Smtp-Source: AFSGD/UumUdRXxtOKWQTC30xW6arRS4IA8Rh4IlKJMwvBjvmi61J1apNc1UWeJDHNqX3imb4tPi6 X-Received: by 2002:a17:902:128c:: with SMTP id g12mr11100817pla.146.1542970025971; Fri, 23 Nov 2018 02:47:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1542970025; cv=none; d=google.com; s=arc-20160816; b=DNu/hKrmkEH+naRLA96IZhBbV7q9I2+oktAsTxwqs+x4+/Ka3YlV3vSGGUgBsy8vKC mq40kEy9R+vbIENW5GjIxGOGhZLKWM7eY3xRQJDCBsEtrzvdIcadd9VKF2SHsAT9+i+q CkjB5SXRtp9CjOutUeFbJV72weRIJpiROYRyIligzlK9zXmXiOhbObu5oHTAH8W09Hky 7345gA+XdGLVbj5nJ/0Qql/X0ZosXBXJlLvtTNy+P9+khEQ8KeX5r5m67W5H4wNPUfVG 7wDjpPwDlFg8Kp56Ile07SSEr9zgMzJGoC1jKH1PvfEc30COPrWHrGNpV8gNGoKef2x+ ze4g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=Md/Y7Z+ad/gVi9Ng8OWbthujUPPswnNksgSiFJD36Qo=; b=pRcA24cwOAQMCnqWy0lKXT4d2IiAgC4py2uv/n9IkSyvrN2FQJ6O+aNtz+g1NWfhKL KrLozp3r3SdEGfAYmUVfzmEJL1QG2RoMm6kpghZy2zF2GLx/LcTEDOrO/9qT/6WYMgoR kqldYWwmxHgoHX1I7kR3TafHr1xlg1ZfqWuEtBlpZu4hKsPl+HP058aJ31Ggv9KhYaBz bOaYjw0QPHnc8hZEHyMrwLS1yYVkKKNa421S7tVkUk564q1ChlSK4KnRa2WFJ3e5RzMd 7fSDksD9nu67Qz7dbbMR8wLRlTaBYHTDkAB0ucWz/dt7Ctb1OuqumUcDZO7ObhIo5PCT /Lqg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id bf4si25669577plb.163.2018.11.23.02.46.49; Fri, 23 Nov 2018 02:47:05 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2394260AbeKVVCj (ORCPT + 99 others); Thu, 22 Nov 2018 16:02:39 -0500 Received: from mirror2.csie.ntu.edu.tw ([140.112.30.76]:48382 "EHLO wens.csie.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2394236AbeKVVCj (ORCPT ); Thu, 22 Nov 2018 16:02:39 -0500 Received: by wens.csie.org (Postfix, from userid 1000) id 633FC5FD87; Thu, 22 Nov 2018 18:23:46 +0800 (CST) From: Chen-Yu Tsai To: Mark Brown , Liam Girdwood , Rob Herring , Mark Rutland , Maxime Ripard Cc: Vasily Khoruzhick , devicetree@vger.kernel.org, alsa-devel@alsa-project.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-sunxi@googlegroups.com, Chen-Yu Tsai 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 Message-Id: <20181122102325.29495-7-wens@csie.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181122102325.29495-1-wens@csie.org> References: <20181122102325.29495-1-wens@csie.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Vasily Khoruzhick 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 [wens@csie.org: Lowered oversampling rate to 128; expanded commit message] Signed-off-by: Chen-Yu Tsai --- 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@1c22c00 { + #sound-dai-cells = <0>; + compatible = "allwinner,sun50i-a64-codec-i2s"; + reg = <0x01c22c00 0x200>; + interrupts = ; + 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@1c22e00 { + #sound-dai-cells = <0>; + compatible = "allwinner,sun8i-a33-codec"; + reg = <0x01c22e00 0x600>; + interrupts = ; + clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>; + clock-names = "bus", "mod"; + status = "disabled"; + }; + uart0: serial@1c28000 { compatible = "snps,dw-apb-uart"; reg = <0x01c28000 0x400>; @@ -924,6 +972,12 @@ #reset-cells = <1>; }; + codec_analog: codec-analog@1f015c0 { + compatible = "allwinner,sun50i-a64-codec-analog"; + reg = <0x01f015c0 0x4>; + status = "disabled"; + }; + r_i2c: i2c@1f02400 { compatible = "allwinner,sun50i-a64-i2c", "allwinner,sun6i-a31-i2c"; -- 2.19.1