Re: [PATCH v2 1/2] dt-bindings: sound: Convert Samsung I2S controller to dt-schema

From: Rob Herring
Date: Wed Sep 18 2019 - 09:49:50 EST


On Wed, Sep 18, 2019 at 5:08 AM Maciej Falkowski
<m.falkowski@xxxxxxxxxxx> wrote:
>
>
> On 9/17/19 3:05 PM, Rob Herring wrote:
>
> > On Tue, Sep 17, 2019 at 7:05 AM Maciej Falkowski
> > <m.falkowski@xxxxxxxxxxx> wrote:
> >> Convert Samsung I2S controller to newer dt-schema format.
> >>
> >> Signed-off-by: Maciej Falkowski <m.falkowski@xxxxxxxxxxx>
> >> Signed-off-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
> >> ---
> >> v2:
> >> - Added missing Signed-off-by certificate
> >> ---
> >> .../devicetree/bindings/sound/samsung-i2s.txt | 84 -------------
> >> .../bindings/sound/samsung-i2s.yaml | 119 ++++++++++++++++++
> >> 2 files changed, 119 insertions(+), 84 deletions(-)
> >> delete mode 100644 Documentation/devicetree/bindings/sound/samsung-i2s.txt
> >> create mode 100644 Documentation/devicetree/bindings/sound/samsung-i2s.yaml
> >> diff --git a/Documentation/devicetree/bindings/sound/samsung-i2s.yaml b/Documentation/devicetree/bindings/sound/samsung-i2s.yaml
> >> new file mode 100644
> >> index 000000000000..59dc76035cb4
> >> --- /dev/null
> >> +++ b/Documentation/devicetree/bindings/sound/samsung-i2s.yaml
> >> @@ -0,0 +1,119 @@
> >> +# SPDX-License-Identifier: GPL-2.0
> >> +%YAML 1.2
> >> +---
> >> +$id: http://devicetree.org/schemas/sound/samsung-i2s.yaml#
> >> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> >> +
> >> +title: Samsung SoC I2S controller
> >> +
> >> +maintainers:
> >> + - Krzysztof Kozlowski <krzk@xxxxxxxxxx>
> >> + - Sangbeom Kim <sbkim73@xxxxxxxxxxx>
> >> + - Sylwester Nawrocki <s.nawrocki@xxxxxxxxxxx>
> >> +
> >> +properties:
> >> + compatible:
> >> + description: |
> >> + samsung,s3c6410-i2s: for 8/16/24bit stereo I2S.
> >> +
> >> + samsung,s5pv210-i2s: for 8/16/24bit multichannel(5.1) I2S with
> >> + secondary fifo, s/w reset control and internal mux for root clk src.
> >> +
> >> + samsung,exynos5420-i2s: for 8/16/24bit multichannel(5.1) I2S for
> >> + playback, stereo channel capture, secondary fifo using internal
> >> + or external dma, s/w reset control, internal mux for root clk src
> >> + and 7.1 channel TDM support for playback. TDM (Time division multiplexing)
> >> + is to allow transfer of multiple channel audio data on single data line.
> >> +
> >> + samsung,exynos7-i2s: with all the available features of exynos5 i2s.
> >> +
> >> + exynos7 I2S has 7.1 channel TDM support for capture, secondary fifo
> >> + with only external dma and more no.of root clk sampling frequencies.
> >> +
> >> + samsung,exynos7-i2s1: I2S1 on previous samsung platforms supports
> >> + stereo channels. exynos7 i2s1 upgraded to 5.1 multichannel with
> >> + slightly modified bit offsets.
> >> + enum:
> >> + - "samsung,s3c6410-i2s"
> >> + - "samsung,s5pv210-i2s"
> >> + - "samsung,exynos5420-i2s"
> >> + - "samsung,exynos7-i2s"
> >> + - "samsung,exynos7-i2s1"
> > No need for quotes here.
> >
> >> +
> >> + reg:
> >> + maxItems: 1
> >> +
> >> + dmas:
> >> + description: list of DMA controller phandle and DMA request line ordered pairs.
> > How many?
>
> Hi Rob,
>
> I have one problem with determining size of dmas.
>
> It seems that there are only two options for dmas: tx, rx or tx, rx, tx-sec.
>
> It looks like minItems should be two and maxItems should be three.
>
> However, some of bindings have different definition of dmas.
>
> When there is:
>
> dmas = <&pdma0 10
> &pdma0 9
> &pdma0 8>;
>
> the number of Items for dmas is one,
>
> when there is:
>
> dmas = <&pdma0 10>,
> <&pdma0 9>,
> <&pdma0 8>;
>
> the number of Items is three.
>
> Both of these are equal from perspective of dtc,
>
> however from schema point of view, they have different size.
>
>
> What is a proper solution to this kind of problem?

The solution is writing things in the latter form. I have a script to
convert a bunch of these. I need to coordinate doing that at the end
of a merge window.

Rob