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 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 <[email protected]> --- .../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 required: - compatible @@ -144,7 +145,7 @@ examples: resets = <&cru SRST_DP0>; phys = <&usbdp_phy0 PHY_TYPE_DP>; power-domains = <&power RK3588_PD_VO0>; - #sound-dai-cells = <0>; + #sound-dai-cells = <1>; ports { #address-cells = <1>; -- 2.53.0
