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

Krzysztof Kozlowski krzk at kernel.org
Wed Jul 22 00:22:03 PDT 2026


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 at collabora.com>
> ---
>  .../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




More information about the Linux-rockchip mailing list