Re: [PATCH v2 1/7] dt-bindings: sound: sophgo: add CV1800B I2S/TDM controller binding
From: Krzysztof Kozlowski <krzk@kernel.org>
Date: 2026-01-18 10:14:37
Also in:
linux-riscv, linux-sound, lkml
On Sun, Jan 18, 2026 at 12:18:53AM +0400, Anton D. Stavinskii wrote:
Purpose: introduce DT schema for the CPU driver
Bindings are for hardware, not drivers. Drop the purpose.
The driver uses dma to transfer data. The dma it self has 8 channels.
Describe the hardware.
Each channel can be connected only to a specific i2s node. But each of dma channel can have multiple purposes so in order to save dma channels the configurations allows to use tx and rx, only rx, only tx or none channels. I2S controller without channels can be useful in configuration where I2S is used as clock source only and doesn't produce any data.
Please use subject prefixes matching the subsystem. You can get them for example with 'git log --oneline -- DIRECTORY_OR_FILE' on the directory your patch is touching. For bindings, the preferred subjects are explained here: https://www.kernel.org/doc/html/latest/devicetree/bindings/submitting-patches.html#i-for-patch-submitters A nit, subject: drop second/last, redundant "binding". The "dt-bindings" prefix is already stating that these are bindings. See also: https://elixir.bootlin.com/linux/v6.17-rc3/source/Documentation/devicetree/bindings/submitting-patches.rst#L18
quoted hunk ↗ jump to hunk
Signed-off-by: Anton D. Stavinskii <redacted> --- .../bindings/sound/sophgo,cv1800b-i2s.yaml | 75 ++++++++++++++++++++++ 1 file changed, 75 insertions(+)diff --git a/Documentation/devicetree/bindings/sound/sophgo,cv1800b-i2s.yaml b/Documentation/devicetree/bindings/sound/sophgo,cv1800b-i2s.yaml new file mode 100644 index 000000000000..cf30880a62da --- /dev/null +++ b/Documentation/devicetree/bindings/sound/sophgo,cv1800b-i2s.yaml@@ -0,0 +1,75 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/sound/sophgo,cv1800b-i2s.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Sophgo CV1800B I2S/TDM controller + +maintainers: + - Anton D. Stavinskii <stavinsky@gmail.com> + +description: |
Do not need '|' unless you need to preserve formatting.
+ I2S/TDM controller found in CV1800B / Sophgo SG2002/SG2000 SoCs. +
Miss allOf with ref to dai-common.
+properties: + compatible: + const: sophgo,cv1800b-i2s + + reg: + maxItems: 1 + + "#sound-dai-cells": + const: 0 + + clocks: + minItems: 1 + maxItems: 2
1. Why is it flexible? 2. And then why names are not flexible. These should be synced in constraints.
+ + clock-names: + items: + - const: i2s + - const: mclk + + dmas: + maxItems: 2 + + dma-names: + description: | + Names of DMA channels. May be omitted. If present, one entry + selects a single direction, while two entries select RX and TX.
Drop desription. Don't repeat constraints in free form text.
+ minItems: 1 + maxItems: 2
Again, messed constraints.
+ items: + enum: [rx, tx]
No, it has to be a specific/fixed list.
+ + "#address-cells": + const: 1 + + "#size-cells": + const: 0
Why? Drop these.
+ +required: + - compatible + - reg + - clocks + - clock-names + - "#sound-dai-cells" + +additionalProperties: false
unevaluatedProperties instead
+
+examples:
+ - |
+ #include <dt-bindings/clock/sophgo,cv1800.h>
+
+ i2s1: i2s@4110000 {Drop unused label.
+ compatible = "sophgo,cv1800b-i2s"; + reg = <0x04110000 0x10000>; + #address-cells = <1>; + #size-cells = <0>;
Drop useless properties. Best regards, Krzysztof