Unverified Commit 472abb80 authored by Johan Jonker's avatar Johan Jonker Committed by Mark Brown
Browse files

dt-bindings: sound: convert rockchip i2s bindings to yaml



Current dts files with 'i2s' nodes are manually verified.
In order to automate this process rockchip-i2s.txt
has to be converted to yaml.

Signed-off-by: default avatarJohan Jonker <jbx6244@gmail.com>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20200324094149.6904-1-jbx6244@gmail.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 6b877cf8
Loading
Loading
Loading
Loading
+0 −49
Original line number Diff line number Diff line
* Rockchip I2S controller

The I2S bus (Inter-IC sound bus) is a serial link for digital
audio data transfer between devices in the system.

Required properties:

- compatible: should be one of the following:
   - "rockchip,rk3066-i2s": for rk3066
   - "rockchip,px30-i2s", "rockchip,rk3066-i2s": for px30
   - "rockchip,rk3036-i2s", "rockchip,rk3066-i2s": for rk3036
   - "rockchip,rk3188-i2s", "rockchip,rk3066-i2s": for rk3188
   - "rockchip,rk3228-i2s", "rockchip,rk3066-i2s": for rk3228
   - "rockchip,rk3288-i2s", "rockchip,rk3066-i2s": for rk3288
   - "rockchip,rk3328-i2s", "rockchip,rk3066-i2s": for rk3328
   - "rockchip,rk3366-i2s", "rockchip,rk3066-i2s": for rk3366
   - "rockchip,rk3368-i2s", "rockchip,rk3066-i2s": for rk3368
   - "rockchip,rk3399-i2s", "rockchip,rk3066-i2s": for rk3399
- reg: physical base address of the controller and length of memory mapped
  region.
- interrupts: should contain the I2S interrupt.
- dmas: DMA specifiers for tx and rx dma. See the DMA client binding,
	Documentation/devicetree/bindings/dma/dma.txt
- dma-names: should include "tx" and "rx".
- clocks: a list of phandle + clock-specifer pairs, one for each entry in clock-names.
- clock-names: should contain the following:
   - "i2s_hclk": clock for I2S BUS
   - "i2s_clk" : clock for I2S controller
- rockchip,playback-channels: max playback channels, if not set, 8 channels default.
- rockchip,capture-channels: max capture channels, if not set, 2 channels default.

Required properties for controller which support multi channels
playback/capture:

- rockchip,grf: the phandle of the syscon node for GRF register.

Example for rk3288 I2S controller:

i2s@ff890000 {
	compatible = "rockchip,rk3288-i2s", "rockchip,rk3066-i2s";
	reg = <0xff890000 0x10000>;
	interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
	dmas = <&pdma1 0>, <&pdma1 1>;
	dma-names = "tx", "rx";
	clock-names = "i2s_hclk", "i2s_clk";
	clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>;
	rockchip,playback-channels = <8>;
	rockchip,capture-channels = <2>;
};
+106 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/rockchip-i2s.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Rockchip I2S controller

description:
  The I2S bus (Inter-IC sound bus) is a serial link for digital
  audio data transfer between devices in the system.

maintainers:
  - Heiko Stuebner <heiko@sntech.de>

properties:
  compatible:
    oneOf:
      - const: rockchip,rk3066-i2s
      - items:
          - enum:
            - rockchip,px30-i2s
            - rockchip,rk3036-i2s
            - rockchip,rk3188-i2s
            - rockchip,rk3228-i2s
            - rockchip,rk3288-i2s
            - rockchip,rk3328-i2s
            - rockchip,rk3366-i2s
            - rockchip,rk3368-i2s
            - rockchip,rk3399-i2s
          - const: rockchip,rk3066-i2s

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    items:
      - description: clock for I2S controller
      - description: clock for I2S BUS

  clock-names:
    items:
      - const: i2s_clk
      - const: i2s_hclk

  dmas:
    items:
      - description: TX DMA Channel
      - description: RX DMA Channel

  dma-names:
    items:
      - const: tx
      - const: rx

  rockchip,capture-channels:
    allOf:
      - $ref: /schemas/types.yaml#/definitions/uint32
    default: 2
    description:
      Max capture channels, if not set, 2 channels default.

  rockchip,playback-channels:
    allOf:
      - $ref: /schemas/types.yaml#/definitions/uint32
    default: 8
    description:
      Max playback channels, if not set, 8 channels default.

  rockchip,grf:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      The phandle of the syscon node for the GRF register.
      Required property for controllers which support multi channel
      playback/capture.

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names
  - dmas
  - dma-names

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/rk3288-cru.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    i2s@ff890000 {
      compatible = "rockchip,rk3288-i2s", "rockchip,rk3066-i2s";
      reg = <0xff890000 0x10000>;
      interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
      clocks = <&cru SCLK_I2S0>, <&cru HCLK_I2S0>;
      clock-names = "i2s_clk", "i2s_hclk";
      dmas = <&pdma1 0>, <&pdma1 1>;
      dma-names = "tx", "rx";
      rockchip,capture-channels = <2>;
      rockchip,playback-channels = <8>;
    };