[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <6a9d976e-22fe-2723-9897-da58b3af456a@arm.com>
Date: Tue, 29 Jun 2021 16:42:05 +0100
From: Robin Murphy <robin.murphy@....com>
To: Adrian Ratiu <adrian.ratiu@...labora.com>,
Alex Bee <knaerzche@...il.com>
Cc: Heiko Stuebner <heiko@...ech.de>, jack@...xa.com,
devicetree@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-rockchip@...ts.infradead.org, linux-kernel@...r.kernel.org,
kernel@...labora.com, Rob Herring <robh+dt@...nel.org>
Subject: Re: [PATCH] arm64: dts: rockchip: add rock-pi-4 analog audio
On 2021-06-29 16:07, Adrian Ratiu wrote:
> Hi Alex,
>
> On Tue, 29 Jun 2021, Alex Bee <knaerzche@...il.com> 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 <adrian.ratiu@...labora.com>
>>> ---
>>> .../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 = <RK_PA0 IRQ_TYPE_LEVEL_HIGH>;
>>> + #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@...ts.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-rockchip
Powered by blists - more mailing lists