Re: [PATCH v4 09/10] dt-bindings: display: rockchip: dw-dp: Fix sound DAI cells

From: Krzysztof Kozlowski

Date: Wed Jul 22 2026 - 03:24:09 EST


On Tue, Jul 21, 2026 at 07:52:39PM +0200, Sebastian Reichel wrote:
> The RK3588 and RK3576 DesignWare DisplayPort controllers both have two
> possible DAI interfaces: I2S and S/PDIF. Thus an argument is needed to
> to select the right interface.
>
> In addition to that the RK3576 has the same IP as RK3588, but configured
> with Multi Stream Transport (MST) enabled for up to 3 displays and thus
> has a total of 6 DAI interfaces (I2S and S/PDIF for each possible
> stream). Meanwhile the RK3588 does not support MST and thus has only 2
> DAI interfaces.
>
> The binding update from this patch has only been tested with the simple
> single stream transport (SST) setup as the Linux driver does not yet
> support MST.
>
> For MST it is unclear what a good binding should look like. Technically
> there are a couple of options:
>
> 1. Stay with the single cell, but add more numbers. I.e.
> 0 = I2S on stream 0,
> 1 = S/PDIF on stream 0
> 2 = I2S on stream 1,
> 3 = S/PDIF on stream 1
> 4 = I2S on stream 2,
> 5 = S/PDIF on stream 2

This looks simpler and anyway the numbers are abstract, so they do not
need to match "stream X".

>
> 2. Add yet another cell, so that there is one argument for the stream ID
> and one argument to select between S/PDIF and I2S. I.e.
> 0 0 = I2S on stream 0
> 0 1 = S/PDIF on stream 0
> 1 0 = I2S on stream 1
> 1 1 = S/PDIF on stream 1
> 2 0 = I2S on stream 2
> 2 1 = S/PDIF on stream 2
>
> 3. Create one subnode for each stream in the DP controller with its
> own graph for the video streams. This would mean the MST binding
> is quite different from the SST one.
>
> As it is unclear which way is the most sensible at this point in time,
> just go with the most simple option for now and revisit this once MST
> is added.
>
> Signed-off-by: Sebastian Reichel <sebastian.reichel@xxxxxxxxxxxxx>
> ---
> .../devicetree/bindings/display/rockchip/rockchip,dw-dp.yaml | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/display/rockchip/rockchip,dw-dp.yaml b/Documentation/devicetree/bindings/display/rockchip/rockchip,dw-dp.yaml
> index 2b0d9e23e943..c4f8959dd65d 100644
> --- a/Documentation/devicetree/bindings/display/rockchip/rockchip,dw-dp.yaml
> +++ b/Documentation/devicetree/bindings/display/rockchip/rockchip,dw-dp.yaml
> @@ -25,7 +25,7 @@ description: |
> * Supports up to 8/10 bits per color component
> * Supports RBG, YCbCr4:4:4, YCbCr4:2:2, YCbCr4:2:0
> * Pixel clock up to 594MHz
> - * I2S, SPDIF audio interface
> + * I2S, S/PDIF audio interface
>
> properties:
> compatible:
> @@ -46,7 +46,7 @@ properties:
> - description: DisplayPort AUX clock
> - description: HDCP clock
> - description: I2S interface clock
> - - description: SPDIF interfce clock
> + - description: S/PDIF interfce clock
>
> clock-names:
> minItems: 3
> @@ -83,7 +83,8 @@ properties:
> maxItems: 1
>
> "#sound-dai-cells":
> - const: 0
> + const: 1
> + description: 0 for I2S, 1 for S/PDIF

This is ABI change, which might be backwards compatible or not, but
commit msg should explain that. I can easily imagine drivers where
written that way that they will fail with an old DTB.

Best regards,
Krzysztof