lkml.org 
[lkml]   [2019]   [Sep]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v2 1/2] dt-bindings: sound: Convert Samsung I2S controller to dt-schema
From
Date

On 9/17/19 3:05 PM, Rob Herring wrote:

> On Tue, Sep 17, 2019 at 7:05 AM Maciej Falkowski
> <m.falkowski@samsung.com> wrote:
>> Convert Samsung I2S controller to newer dt-schema format.
>>
>> Signed-off-by: Maciej Falkowski <m.falkowski@samsung.com>
>> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
>> ---
>> 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@kernel.org>
>> + - Sangbeom Kim <sbkim73@samsung.com>
>> + - Sylwester Nawrocki <s.nawrocki@samsung.com>
>> +
>> +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?

Best regards,

Maciej Falkowski

>> +
>> + dma-names:
>> + description: |
>> + identifier string for each DMA request line in the dmas property.
>> + These strings correspond 1:1 with the ordered pairs in dmas.
>> +
>> + clocks:
>> + minItems: 1
>> + maxItems: 3
>> +
>> + clock-names:
>> + oneOf:
>> + - items:
>> + - const: iis
>> + - items:
>> + - const: iis
>> + - const: i2s_opclk0
>> + - items:
>> + - const: iis
>> + - const: i2s_opclk0
>> + - const: i2s_opclk1
>> + description: |
>> + "iis" is the i2s bus clock.
>> + For i2s1 and i2s2 - "iis", "i2s_opclk0"
>> + For i2s0 - "iis", "i2s_opclk0", "i2s_opclk1"
>> +
>> + "#clock-cells":
>> + const: 1
>> +
>> + samsung,idma-addr:
>> + $ref: /schemas/types.yaml#/definitions/uint32
>> + description: |
>> + Internal DMA register base address of the audio
>> + sub system(used in secondary sound source).
>> +
>> + pinctrl-0:
>> + description: Should specify pin control groups used for this controller.
>> +
>> + pinctrl-names:
>> + const: default
>> +
>> + "#sound-dai-cells":
>> + const: 1
>> +
>> +required:
>> + - compatible
>> + - reg
>> + - dmas
>> + - dma-names
>> + - clocks
>> + - clock-names
>> +
>> +examples:
>> + - |
>> + i2s0: i2s@3830000 {
>> + compatible = "samsung,s5pv210-i2s";
>> + reg = <0x03830000 0x100>;
>> + dmas = <&pdma0 10
>> + &pdma0 9
>> + &pdma0 8>;
>> + dma-names = "tx", "rx", "tx-sec";
>> + clocks = <&clock_audss 0>, // EXYNOS_I2S_BUS
>> + <&clock_audss 0>, // EXYNOS_I2S_BUS
>> + <&clock_audss 0>; // EXYNOS_SCLK_I2S
>> + clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
>> + #clock-cells = <1>;
>> + samsung,idma-addr = <0x03000000>;
>> + pinctrl-names = "default";
>> + pinctrl-0 = <&i2s0_bus>;
>> + #sound-dai-cells = <1>;
>> + };
>> +
>> --
>> 2.17.1
>>
>

\
 
 \ /
  Last update: 2019-09-18 12:09    [W:0.094 / U:0.312 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site