On 2021-06-29 16:07, Adrian Ratiu wrote:
Hi Alex,
On Tue, 29 Jun 2021, Alex Bee <knaerzche@xxxxxxxxx> 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@xxxxxxxxx/
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@xxxxxxxxxxxxx>
---
.../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@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/linux-rockchip