Re: [PATCH 3/7] ASoC: dt-bindings: add schema for rockchip SAI controllers

From: Krzysztof Kozlowski
Date: Thu Mar 06 2025 - 02:43:14 EST


On 05/03/2025 22:24, Nicolas Frattaroli wrote:
> Rockchip introduced a new audio controller called the "Serial Audio
> Interface", or "SAI" for short, on some of their newer SoCs. In
> particular, this controller is used several times on the RK3576 SoC.
>
> Add a schema for it, with only an RK3576 compatible for now. Other SoCs
> may follow as mainline support for them lands.
>
> Signed-off-by: Nicolas Frattaroli <nicolas.frattaroli@xxxxxxxxxxxxx>
> ---
> .../devicetree/bindings/sound/rockchip,sai.yaml | 151 +++++++++++++++++++++

Filename based on compatible.

> MAINTAINERS | 6 +
> 2 files changed, 157 insertions(+)
>

...

> +
> + dma-names:
> + minItems: 1
> + maxItems: 2
> + oneOf:
> + - const: tx
> + - const: rx
> + - items:
> + - const: tx
> + - const: rx

Why all combinations are possible?

> +
> + clocks:
> + items:
> + - description: master audio clock
> + - description: AHB clock driving the interface
> +
> + clock-names:
> + items:
> + - const: mclk
> + - const: hclk
> +
> + resets:
> + minItems: 1
> + maxItems: 2
> + description: resets for the mclk domain and ahb domain

List the items instead with description and minItems: 1.

> +
> + reset-names:
> + minItems: 1
> + items:
> + - const: m
> + - const: h
> +
> + port:
> + $ref: audio-graph-port.yaml#
> + unevaluatedProperties: false
> +
> + power-domains:
> + maxItems: 1
> +
> + "#sound-dai-cells":
> + const: 0
> +
> + rockchip,sai-rx-route:
> + $ref: /schemas/types.yaml#/definitions/uint32-array
> + description:
> + Defines the mapping of the controller's SDI ports to actual input lanes,
> + as well as the number of input lanes.
> + rockchip,sai-rx-route = <3> would mean sdi3 is receiving from data0, and
> + that there is only one receiving lane.
> + This property's absence is to be understood as only one receiving lane
> + being used if the controller has capture capabilities.
> + maxItems: 4
> + items:
> + enum: [0, 1, 2, 3]
> +
> + rockchip,sai-tx-route:
> + $ref: /schemas/types.yaml#/definitions/uint32-array
> + description:
> + Defines the mapping of the controller's SDO ports to actual output lanes,
> + as well as the number of output lanes.
> + rockchip,sai-tx-route = <3> would mean sdo3 is sending to data0, and

I understand this is only example because = <3> would not be allowed
(test it).

> + that there is only one transmitting lane.
> + This property's absence is to be understood as only one transmitting lane
> + being used if the controller has playback capabilities.
> + maxItems: 4
> + items:
> + enum: [0, 1, 2, 3]
> +
> + rockchip,always-on:
> + type: boolean
> + description:
> + The hardware requires this controller to remain turned on.

How hardware requires this? You rather miss proper PM domain handling or
some other resources.

> +
> +

Just one blank line.

> +required:
> + - compatible
> + - reg
> + - dmas
> + - dma-names
> + - clocks
> + - clock-names
> + - "#sound-dai-cells"
> +
> +unevaluatedProperties: false



Best regards,
Krzysztof