[PATCH] arm64: dts: rockchip: fix probe of analog sound card on rock-3a
Michael Riesch
michael.riesch at wolfvision.net
Mon Jan 16 07:22:50 PST 2023
Hi Nicolas,
On 1/16/23 16:14, Nicolas Frattaroli wrote:
> On Monday, 16 January 2023 09:41:50 CET Michael Riesch wrote:
>> Hi Jonas,
>>
>> On 1/15/23 22:15, Jonas Karlman wrote:
>>> 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 at kwiboo.se>
>>
>> Makes sense to me, but...
>>
>>> ---
>>>
>>> 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.
Ah, fancy stuff! Thanks for the clarification!
Best regards,
Michael
>
>>
>> Cc: Nicolas Frattaroli, maybe he can provide some clarification.
>>
>> Best regards,
>> Michael
>>
>>> rockchip,trcm-sync-tx-only;
>>> status = "okay";
>>>
>>> };
>
> Cheers,
> Nicolas Frattaroli
>
>
>
>
More information about the Linux-rockchip
mailing list