[PATCH v2] arm64: dts: rockchip: add SPDIF node for rk3399-rockpro64

Katsuhiro Suzuki katsuhiro at katsuster.net
Sun Aug 30 21:10:29 EDT 2020


Hello Heiko,

On 2020/08/31 4:08, Heiko Stuebner wrote:
> Hi,
> 
> Am Montag, 10. August 2020, 11:16:19 CEST schrieb Katsuhiro Suzuki:
>> This patch adds 'disabled' SPDIF sound node and related settings
>> for rk3399-rockpro64.
>>
>> There are 2 reasons:
>>    - All RK3399 dma-bus channels have been already used by I2S0/1/2
>>    - RockPro64 does not have SPDIF optical nor coaxial connector,
>>      just have 3pins
> 
> I don't really understand what you mean here.
> 
> Like is there spdif on the board or not? Because you call it "disabled"
> and also indicate that no i2s is available anymore, yet you mention 3 pins.
> What do they do then?
> 

RockPro64 has output pins for SPDIF Tx. But RK3399 does not have enough DMA
channel for enabling SPDIF tx. Current settings are:

   - I2S0     (Req number 0, 1): Enabled  : Output to 40pin headers (CON40)
   - I2S1     (Req number 2, 3): Enabled  : Output to ES8316 on board
   - I2S2     (Req number 4, 5): Enabled  : Output to internal HDMI core
   - SPDIF Tx (Req number 7)   : Disabled : Output to other connector (J10)

If we want to enable ALL sound I/Os, we need 7 DMA channels for it.
But... Unfortunately, RK3399 has only 6 DMA channels for sounds, PWM and SPIs.

So users of RockPro64 have to choose from the following:

   - Disable one of I2S (Ex. I2S0) and enable SPDIF tx
   - Keep enable I2S0/1/2 and disable SPDIF tx

> Thanks
> Heiko
> 
> 

Best Regards,
Katsuhiro Suzuki


>> Signed-off-by: Katsuhiro Suzuki <katsuhiro at katsuster.net>
>>
>> ---
>>
>> Changes in v2:
>>    - Remove redundant status property
>> ---
>>   .../boot/dts/rockchip/rk3399-rockpro64.dtsi   | 27 +++++++++++++++++++
>>   1 file changed, 27 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dtsi
>> index 6e553ff47534..58097245994a 100644
>> --- a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dtsi
>> +++ b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dtsi
>> @@ -76,6 +76,23 @@ sound {
>>   		dais = <&i2s1_p0>;
>>   	};
>>   
>> +	sound-dit {
>> +		compatible = "audio-graph-card";
>> +		label = "rockchip,rk3399";
>> +		dais = <&spdif_p0>;
>> +	};
>> +
>> +	spdif-dit {
>> +		compatible = "linux,spdif-dit";
>> +		#sound-dai-cells = <0>;
>> +
>> +		port {
>> +			dit_p0_0: endpoint {
>> +				remote-endpoint = <&spdif_p0_0>;
>> +			};
>> +		};
>> +	};
>> +
>>   	vcc12v_dcin: vcc12v-dcin {
>>   		compatible = "regulator-fixed";
>>   		regulator-name = "vcc12v_dcin";
>> @@ -698,6 +715,16 @@ &sdhci {
>>   	status = "okay";
>>   };
>>   
>> +&spdif {
>> +	pinctrl-0 = <&spdif_bus_1>;
>> +
>> +	spdif_p0: port {
>> +		spdif_p0_0: endpoint {
>> +			remote-endpoint = <&dit_p0_0>;
>> +		};
>> +	};
>> +};
>> +
>>   &spi1 {
>>   	status = "okay";
>>   
>>
> 
> 
> 
> 




More information about the linux-arm-kernel mailing list