1472abb80SJohan Jonker# SPDX-License-Identifier: GPL-2.0
2472abb80SJohan Jonker%YAML 1.2
3472abb80SJohan Jonker---
4472abb80SJohan Jonker$id: http://devicetree.org/schemas/sound/rockchip-i2s.yaml#
5472abb80SJohan Jonker$schema: http://devicetree.org/meta-schemas/core.yaml#
6472abb80SJohan Jonker
7472abb80SJohan Jonkertitle: Rockchip I2S controller
8472abb80SJohan Jonker
9472abb80SJohan Jonkerdescription:
10472abb80SJohan Jonker  The I2S bus (Inter-IC sound bus) is a serial link for digital
11472abb80SJohan Jonker  audio data transfer between devices in the system.
12472abb80SJohan Jonker
13472abb80SJohan Jonkermaintainers:
14472abb80SJohan Jonker  - Heiko Stuebner <heiko@sntech.de>
15472abb80SJohan Jonker
16472abb80SJohan Jonkerproperties:
17472abb80SJohan Jonker  compatible:
18472abb80SJohan Jonker    oneOf:
19472abb80SJohan Jonker      - const: rockchip,rk3066-i2s
20472abb80SJohan Jonker      - items:
21472abb80SJohan Jonker          - enum:
22472abb80SJohan Jonker              - rockchip,px30-i2s
23472abb80SJohan Jonker              - rockchip,rk3036-i2s
24472abb80SJohan Jonker              - rockchip,rk3188-i2s
25472abb80SJohan Jonker              - rockchip,rk3228-i2s
26472abb80SJohan Jonker              - rockchip,rk3288-i2s
27ab436c97SJohan Jonker              - rockchip,rk3308-i2s
28472abb80SJohan Jonker              - rockchip,rk3328-i2s
29472abb80SJohan Jonker              - rockchip,rk3366-i2s
30472abb80SJohan Jonker              - rockchip,rk3368-i2s
31472abb80SJohan Jonker              - rockchip,rk3399-i2s
32472abb80SJohan Jonker          - const: rockchip,rk3066-i2s
33472abb80SJohan Jonker
34472abb80SJohan Jonker  reg:
35472abb80SJohan Jonker    maxItems: 1
36472abb80SJohan Jonker
37472abb80SJohan Jonker  interrupts:
38472abb80SJohan Jonker    maxItems: 1
39472abb80SJohan Jonker
40472abb80SJohan Jonker  clocks:
41472abb80SJohan Jonker    items:
42472abb80SJohan Jonker      - description: clock for I2S controller
43472abb80SJohan Jonker      - description: clock for I2S BUS
44472abb80SJohan Jonker
45472abb80SJohan Jonker  clock-names:
46472abb80SJohan Jonker    items:
47472abb80SJohan Jonker      - const: i2s_clk
48472abb80SJohan Jonker      - const: i2s_hclk
49472abb80SJohan Jonker
50472abb80SJohan Jonker  dmas:
51ab436c97SJohan Jonker    minItems: 1
52ab436c97SJohan Jonker    maxItems: 2
53472abb80SJohan Jonker
54472abb80SJohan Jonker  dma-names:
55ab436c97SJohan Jonker    oneOf:
56ab436c97SJohan Jonker      - const: rx
57ab436c97SJohan Jonker      - items:
58472abb80SJohan Jonker          - const: tx
59472abb80SJohan Jonker          - const: rx
60472abb80SJohan Jonker
612a79c31aSJohan Jonker  power-domains:
622a79c31aSJohan Jonker    maxItems: 1
632a79c31aSJohan Jonker
64*296713a3SSugar Zhang  reset-names:
65*296713a3SSugar Zhang    items:
66*296713a3SSugar Zhang      - const: reset-m
67*296713a3SSugar Zhang      - const: reset-h
68*296713a3SSugar Zhang
69*296713a3SSugar Zhang  resets:
70*296713a3SSugar Zhang    maxItems: 2
71*296713a3SSugar Zhang
72472abb80SJohan Jonker  rockchip,capture-channels:
733d21a460SRob Herring    $ref: /schemas/types.yaml#/definitions/uint32
74472abb80SJohan Jonker    default: 2
75472abb80SJohan Jonker    description:
76472abb80SJohan Jonker      Max capture channels, if not set, 2 channels default.
77472abb80SJohan Jonker
78472abb80SJohan Jonker  rockchip,playback-channels:
793d21a460SRob Herring    $ref: /schemas/types.yaml#/definitions/uint32
80472abb80SJohan Jonker    default: 8
81472abb80SJohan Jonker    description:
82472abb80SJohan Jonker      Max playback channels, if not set, 8 channels default.
83472abb80SJohan Jonker
84472abb80SJohan Jonker  rockchip,grf:
85472abb80SJohan Jonker    $ref: /schemas/types.yaml#/definitions/phandle
86472abb80SJohan Jonker    description:
87472abb80SJohan Jonker      The phandle of the syscon node for the GRF register.
88472abb80SJohan Jonker      Required property for controllers which support multi channel
89472abb80SJohan Jonker      playback/capture.
90472abb80SJohan Jonker
91515d2757SJohan Jonker  "#sound-dai-cells":
92515d2757SJohan Jonker    const: 0
93515d2757SJohan Jonker
94472abb80SJohan Jonkerrequired:
95472abb80SJohan Jonker  - compatible
96472abb80SJohan Jonker  - reg
97472abb80SJohan Jonker  - interrupts
98472abb80SJohan Jonker  - clocks
99472abb80SJohan Jonker  - clock-names
100472abb80SJohan Jonker  - dmas
101472abb80SJohan Jonker  - dma-names
102515d2757SJohan Jonker  - "#sound-dai-cells"
103472abb80SJohan Jonker
104472abb80SJohan JonkeradditionalProperties: false
105472abb80SJohan Jonker
106472abb80SJohan Jonkerexamples:
107472abb80SJohan Jonker  - |
108472abb80SJohan Jonker    #include <dt-bindings/clock/rk3288-cru.h>
109472abb80SJohan Jonker    #include <dt-bindings/interrupt-controller/arm-gic.h>
110472abb80SJohan Jonker    #include <dt-bindings/interrupt-controller/irq.h>
111472abb80SJohan Jonker    i2s@ff890000 {
112472abb80SJohan Jonker      compatible = "rockchip,rk3288-i2s", "rockchip,rk3066-i2s";
113472abb80SJohan Jonker      reg = <0xff890000 0x10000>;
114472abb80SJohan Jonker      interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
115472abb80SJohan Jonker      clocks = <&cru SCLK_I2S0>, <&cru HCLK_I2S0>;
116472abb80SJohan Jonker      clock-names = "i2s_clk", "i2s_hclk";
117472abb80SJohan Jonker      dmas = <&pdma1 0>, <&pdma1 1>;
118472abb80SJohan Jonker      dma-names = "tx", "rx";
119472abb80SJohan Jonker      rockchip,capture-channels = <2>;
120472abb80SJohan Jonker      rockchip,playback-channels = <8>;
121515d2757SJohan Jonker      #sound-dai-cells = <0>;
122472abb80SJohan Jonker    };
123