Documentation / devicetree / bindings / sound / rockchip-i2s.yaml


Based on kernel version 6.9. Page generated on 2024-05-14 10:02 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
# 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>

allOf:
  - $ref: dai-common.yaml#

properties:
  compatible:
    oneOf:
      - const: rockchip,rk3066-i2s
      - items:
          - enum:
              - rockchip,px30-i2s
              - rockchip,rk1808-i2s
              - rockchip,rk3036-i2s
              - rockchip,rk3128-i2s
              - rockchip,rk3188-i2s
              - rockchip,rk3228-i2s
              - rockchip,rk3288-i2s
              - rockchip,rk3308-i2s
              - rockchip,rk3328-i2s
              - rockchip,rk3366-i2s
              - rockchip,rk3368-i2s
              - rockchip,rk3399-i2s
              - rockchip,rk3588-i2s
              - rockchip,rv1126-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:
    minItems: 1
    maxItems: 2

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

  pinctrl-names:
    oneOf:
      - const: default
      - items:
          - const: bclk_on
          - const: bclk_off

  power-domains:
    maxItems: 1

  reset-names:
    items:
      - const: reset-m
      - const: reset-h

  resets:
    maxItems: 2

  port:
    $ref: audio-graph-port.yaml#
    unevaluatedProperties: false

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

  rockchip,playback-channels:
    $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.
 
  "#sound-dai-cells":
    const: 0

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names
  - dmas
  - dma-names
  - "#sound-dai-cells"

unevaluatedProperties: 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>;
      #sound-dai-cells = <0>;
    };