Thread (7 messages) flat view 7 messages, 4 authors, 2023-01-19

Re: [PATCH] arm64: dts: rockchip: fix probe of analog sound card on rock-3a

From: Nicolas Frattaroli <frattaroli.nicolas@gmail.com>
Date: 2023-01-16 15:20:46
Also in: linux-devicetree, linux-rockchip

On Monday, 16 January 2023 09:41:50 CET Michael Riesch wrote:
Hi Jonas,

On 1/15/23 22:15, Jonas Karlman wrote:
quoted
The following was observed on my Radxa ROCK 3 Model A board:
  rockchip-pinctrl pinctrl: pin gpio1-9 already requested by
  vcc-cam-regulator; cannot claim for fe410000.i2s ...
  platform rk809-sound: deferred probe pending

Fix this by supplying a board specific pinctrl with the i2s1 pins used
by pmic codec according to the schematic [1].

[1] https://dl.radxa.com/rock3/docs/hw/3a/ROCK-3A-V1.3-SCH.pdf

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Makes sense to me, but...
quoted
---

 arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dts | 2 ++
 1 file changed, 2 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dts
b/arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dts index
00d873a03cfe..a149c8b83f94 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dts
@@ -573,6 +573,8 @@ &i2s0_8ch {

 };
 
 &i2s1_8ch {

+	pinctrl-names = "default";
+	pinctrl-0 = <&i2s1m0_sclktx &i2s1m0_lrcktx &i2s1m0_sdi0 
&i2s1m0_sdo0>;
... shouldn't this include i2s1m0_mclk as well?
You can totally use i2s without an mclk, but I don't have a specific
explanation as to why this is lacking in this particular pinctrl, as
I cargo-culted it from downstream.
For some reason this has been omitted in the pinctrl defined in
rk356x.dtsi. But then rk356x.dtsi also claims
 - both i2s1m0_sdo1 and i2s1m0_sdi3
 - both i2s1m0_sdo2 and i2s1m0_sdi2
 - both i2s1m0_sdo3 and i2s1m0_sdi1
which are mapped to the same respective pins. Therefore it seems that
there might be something wrong with this pinctrl altogether.
This is actually correct, I believe. The driver has a feature called
"io multiplex" which fiddles with the GRF to dynamically set the pin
directions depending on the hardware parameters. As it happens, for
example sdo1 and sdi3 are on the same pin mux, and can be switched
between like this.

I don't know how well that meshes with upstream's understanding of
pinctrl but in this case the two functions really can use the same
pin.
Cc: Nicolas Frattaroli, maybe he can provide some clarification.

Best regards,
Michael
quoted
 	rockchip,trcm-sync-tx-only;
 	status = "okay";
 
 };
Cheers,
Nicolas Frattaroli





_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help