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
64472abb80SJohan Jonker  rockchip,capture-channels:
65472abb80SJohan Jonker    allOf:
66472abb80SJohan Jonker      - $ref: /schemas/types.yaml#/definitions/uint32
67472abb80SJohan Jonker    default: 2
68472abb80SJohan Jonker    description:
69472abb80SJohan Jonker      Max capture channels, if not set, 2 channels default.
70472abb80SJohan Jonker
71472abb80SJohan Jonker  rockchip,playback-channels:
72472abb80SJohan Jonker    allOf:
73472abb80SJohan Jonker      - $ref: /schemas/types.yaml#/definitions/uint32
74472abb80SJohan Jonker    default: 8
75472abb80SJohan Jonker    description:
76472abb80SJohan Jonker      Max playback channels, if not set, 8 channels default.
77472abb80SJohan Jonker
78472abb80SJohan Jonker  rockchip,grf:
79472abb80SJohan Jonker    $ref: /schemas/types.yaml#/definitions/phandle
80472abb80SJohan Jonker    description:
81472abb80SJohan Jonker      The phandle of the syscon node for the GRF register.
82472abb80SJohan Jonker      Required property for controllers which support multi channel
83472abb80SJohan Jonker      playback/capture.
84472abb80SJohan Jonker
85515d2757SJohan Jonker  "#sound-dai-cells":
86515d2757SJohan Jonker    const: 0
87515d2757SJohan Jonker
88472abb80SJohan Jonkerrequired:
89472abb80SJohan Jonker  - compatible
90472abb80SJohan Jonker  - reg
91472abb80SJohan Jonker  - interrupts
92472abb80SJohan Jonker  - clocks
93472abb80SJohan Jonker  - clock-names
94472abb80SJohan Jonker  - dmas
95472abb80SJohan Jonker  - dma-names
96515d2757SJohan Jonker  - "#sound-dai-cells"
97472abb80SJohan Jonker
98472abb80SJohan JonkeradditionalProperties: false
99472abb80SJohan Jonker
100472abb80SJohan Jonkerexamples:
101472abb80SJohan Jonker  - |
102472abb80SJohan Jonker    #include <dt-bindings/clock/rk3288-cru.h>
103472abb80SJohan Jonker    #include <dt-bindings/interrupt-controller/arm-gic.h>
104472abb80SJohan Jonker    #include <dt-bindings/interrupt-controller/irq.h>
105472abb80SJohan Jonker    i2s@ff890000 {
106472abb80SJohan Jonker      compatible = "rockchip,rk3288-i2s", "rockchip,rk3066-i2s";
107472abb80SJohan Jonker      reg = <0xff890000 0x10000>;
108472abb80SJohan Jonker      interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
109472abb80SJohan Jonker      clocks = <&cru SCLK_I2S0>, <&cru HCLK_I2S0>;
110472abb80SJohan Jonker      clock-names = "i2s_clk", "i2s_hclk";
111472abb80SJohan Jonker      dmas = <&pdma1 0>, <&pdma1 1>;
112472abb80SJohan Jonker      dma-names = "tx", "rx";
113472abb80SJohan Jonker      rockchip,capture-channels = <2>;
114472abb80SJohan Jonker      rockchip,playback-channels = <8>;
115515d2757SJohan Jonker      #sound-dai-cells = <0>;
116472abb80SJohan Jonker    };
117