Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp4554258pxv; Tue, 29 Jun 2021 09:39:32 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwR+G/PADi64y2sCE7qzysV3+qfyUCBCVKIQfMC+hSJD64dQeB4z+bRXXuV4G85WvCt0wr4 X-Received: by 2002:a05:6602:3407:: with SMTP id n7mr4520980ioz.129.1624984771896; Tue, 29 Jun 2021 09:39:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1624984771; cv=none; d=google.com; s=arc-20160816; b=HpqfDPveFJMMu0Eh2X+6/yTaAIqLjXS3PZZFB5mh4L6bBDODrq3KEY0fwH/T2mXj1P 59XCQ8ei7obZJrmlx16OZpiWHiF+zdlD6BEDJ20ZnYaNmubXwGYsVzaTQkh1zpXTKG/J dc7SV7wZUJh07KkHpQFezRAKdaMrF+lydZ2EbNejlBCGJdVmjWCbHzWgMX90NYBDuSvh LbPmIg0agHTqYpMH8ow2SAWOcZ0t+C2JoEJDo2MKNuBqBaU/mNesQ7YW7+11n3s73tyY ec3rao5EJFQBtDxSIlHdhHNCQ92I07nNr6J8u+lx5BX6HserDOAE1AmcnFs4rFlfnfl+ Ou0A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject; bh=XkAzKxmCqrk+VOcLo6/LPzQyB1EpjIFanr8ppHsbs78=; b=M5+Voik7q3AS2XX+kNUpZJTwo013bx5kbh9ssTOJ8TzQziwhWgGOjsa6BRCEFxEAmY wUG7bLWLjL39HPCSaHC+xGfn3m8RwKQ9HyRJAttMqOoJZEpx0fE/pgEUOwUhHO+P5zqY QQfNJLFctmWuCPgsJPYmxQocYg1yBu6bjlhhaBOjqPsoHZ9UK7k+6U+7EO5V/sV4c5f3 dRwsHWIpGuxsBKdV7WjLUtMSjVGuOL9Hu+dOoHUmPboHMpnHQAN5OmJzdZC5ECSkYbSr 1ofEfY513YzoAt0FdcuTfNKYNYTmUK9TJb+nb1ZJvnPDqQKGIJJP1CSRfZ5q0yPFYiV4 kWNw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j5si19571013iom.105.2021.06.29.09.39.20; Tue, 29 Jun 2021 09:39:31 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232685AbhF2Pok (ORCPT + 99 others); Tue, 29 Jun 2021 11:44:40 -0400 Received: from foss.arm.com ([217.140.110.172]:53774 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231194AbhF2Pok (ORCPT ); Tue, 29 Jun 2021 11:44:40 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 932A26D; Tue, 29 Jun 2021 08:42:12 -0700 (PDT) Received: from [10.57.46.146] (unknown [10.57.46.146]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id EA6E03F718; Tue, 29 Jun 2021 08:42:10 -0700 (PDT) Subject: Re: [PATCH] arm64: dts: rockchip: add rock-pi-4 analog audio To: Adrian Ratiu , Alex Bee Cc: Heiko Stuebner , jack@radxa.com, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, Rob Herring References: <20210628113033.9145-1-adrian.ratiu@collabora.com> <7f806d30-594e-2325-615a-8fee875c83a8@gmail.com> <87eeck3e1o.fsf@ryzen9.i-did-not-set--mail-host-address--so-tickle-me> From: Robin Murphy Message-ID: <6a9d976e-22fe-2723-9897-da58b3af456a@arm.com> Date: Tue, 29 Jun 2021 16:42:05 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <87eeck3e1o.fsf@ryzen9.i-did-not-set--mail-host-address--so-tickle-me> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-GB Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2021-06-29 16:07, Adrian Ratiu wrote: > Hi Alex, > > On Tue, 29 Jun 2021, Alex Bee wrote: >> Hi Adrian, >> I've submitted similar patch already. Its part of [1] > > Thank you for pointing out your patch, I was not aware of it as it was > not merged yet (I tested latest linux-next). > > It is a good sign that our code is almost identical except for the > headphone detect pin which you mention. > >> >> There is no headphone detection pin in the schematics, btw. > > There are two reasons I added it: > > 1. The es8316 codec failed to probe() in my testing unless the irq was > defined. That might have been due to me testing the codec directly with > the simple card driver instead of the graph driver. > > Point 1 doesn't appear to be an issue anymore, the codec + graph driver > probe correctly and audio supposedly (see below) works even without the > irq. > > 2. I got the gpio bank 1 pin 0 location from various headphone detection > commits in the vendor v4.4 kernel, like for example [1]. > > Are you 100% sure there is no hp detection pin wired on the rock-pi-4? > Even if it might be missing from the schematics, the vendor driver code > apparently defines and uses it? FWIW according to the schematics it *is* wired up on the Model C board, but not on the Model A or B. Robin. > From booting with the irq defined I get the following in > /proc/interrupts however I'm having an unrelated difficulty testing > because the audio connector literally broke off the board like in [2]. > 90: 1  0  0  0  0  rockchip_gpio_irq   0 Level     es8316 > > Team Radxa was very nice in offering me a replacement but until that > arrives I can't test this anymore. > > [1] > https://github.com/radxa/kernel/commit/e945cad5c3ec82d171760465d3c7a84bb10ed1b7 > > > [2] https://forum.radxa.com/t/audio-jack-broke-off/935 > >> [1] >> https://patchwork.kernel.org/project/linux-rockchip/cover/20210618181256.27992-1-knaerzche@gmail.com/ >> >> >> Best, >> >> Alex >> >> Am 28.06.21 um 13:30 schrieb Adrian Ratiu: >>> This adds the necessary pinctrl and nodes to enable the >>> analog audio on rk3399 rock-pi-4 SBCs using the es8316 >>> codec and the audio-graph-card driver. >>> >>> Signed-off-by: Adrian Ratiu >>> --- >>>   .../boot/dts/rockchip/rk3399-rock-pi-4.dtsi   | 38 +++++++++++++++++++ >>>   1 file changed, 38 insertions(+) >>> >>> diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi >>> b/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi >>> index b28888ea9262..77781d9150ac 100644 >>> --- a/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi >>> +++ b/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi >>> @@ -128,6 +128,12 @@ vdd_log: vdd-log { >>>           regulator-max-microvolt = <1400000>; >>>           vin-supply = <&vcc5v0_sys>; >>>       }; >>> + >>> +    sound { >>> +        compatible = "audio-graph-card"; >>> +        label = "rockchip,rk3399"; >>> +        dais = <&i2s0_p0>; >>> +    }; >>>   }; >>>   &cpu_l0 { >>> @@ -422,6 +428,24 @@ &i2c1 { >>>       i2c-scl-rising-time-ns = <300>; >>>       i2c-scl-falling-time-ns = <15>; >>>       status = "okay"; >>> + >>> +    es8316: codec@11 { >>> +        compatible = "everest,es8316"; >>> +        reg = <0x11>; >>> +        clocks = <&cru SCLK_I2S_8CH_OUT>; >>> +        clock-names = "mclk"; >>> +        pinctrl-names = "default"; >>> +        pinctrl-0 = <&hp_det_pin>; >>> +        interrupt-parent = <&gpio1>; >>> +        interrupts = ; >>> +        #sound-dai-cells = <0>; >>> + >>> +        port { >>> +            es8316_p0_0: endpoint { >>> +                remote-endpoint = <&i2s0_p0_0>; >>> +            }; >>> +        }; >>> +    }; >>>   }; >>>   &i2c3 { >>> @@ -441,6 +465,14 @@ &i2s0 { >>>       rockchip,capture-channels = <2>; >>>       rockchip,playback-channels = <2>; >>>       status = "okay"; >>> + >>> +    i2s0_p0: port { >>> +        i2s0_p0_0: endpoint { >>> +            dai-format = "i2s"; >>> +            mclk-fs = <256>; >>> +            remote-endpoint = <&es8316_p0_0>; >>> +        }; >>> +    }; >>>   }; >>>   &i2s1 { >>> @@ -556,6 +588,12 @@ wifi_host_wake_l: wifi-host-wake-l { >>>               rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; >>>           }; >>>       }; >>> + >>> +    es8316 { >>> +        hp_det_pin: hp-det-pin { >>> +            rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>; >>> +        }; >>> +    }; >>>   }; >>>   &pwm2 { > > _______________________________________________ > Linux-rockchip mailing list > Linux-rockchip@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-rockchip