xref: /linux/Documentation/devicetree/bindings/sound/rockchip,i2s-tdm.yaml (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
1510f1c13SNicolas Frattaroli# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2510f1c13SNicolas Frattaroli%YAML 1.2
3510f1c13SNicolas Frattaroli---
4510f1c13SNicolas Frattaroli$id: http://devicetree.org/schemas/sound/rockchip,i2s-tdm.yaml#
5510f1c13SNicolas Frattaroli$schema: http://devicetree.org/meta-schemas/core.yaml#
6510f1c13SNicolas Frattaroli
7510f1c13SNicolas Frattarolititle: Rockchip I2S/TDM Controller
8510f1c13SNicolas Frattaroli
9510f1c13SNicolas Frattarolidescription:
10510f1c13SNicolas Frattaroli  The Rockchip I2S/TDM Controller is a Time Division Multiplexed
11510f1c13SNicolas Frattaroli  audio interface found in various Rockchip SoCs, allowing up
12510f1c13SNicolas Frattaroli  to 8 channels of audio over a serial interface.
13510f1c13SNicolas Frattaroli
14510f1c13SNicolas Frattarolimaintainers:
15510f1c13SNicolas Frattaroli  - Nicolas Frattaroli <frattaroli.nicolas@gmail.com>
16510f1c13SNicolas Frattaroli
1758ae9a2aSKrzysztof KozlowskiallOf:
1858ae9a2aSKrzysztof Kozlowski  - $ref: dai-common.yaml#
1958ae9a2aSKrzysztof Kozlowski
20510f1c13SNicolas Frattaroliproperties:
21510f1c13SNicolas Frattaroli  compatible:
22510f1c13SNicolas Frattaroli    enum:
23510f1c13SNicolas Frattaroli      - rockchip,px30-i2s-tdm
24510f1c13SNicolas Frattaroli      - rockchip,rk1808-i2s-tdm
25510f1c13SNicolas Frattaroli      - rockchip,rk3308-i2s-tdm
26510f1c13SNicolas Frattaroli      - rockchip,rk3568-i2s-tdm
270643fd36SNicolas Frattaroli      - rockchip,rk3588-i2s-tdm
28510f1c13SNicolas Frattaroli      - rockchip,rv1126-i2s-tdm
29510f1c13SNicolas Frattaroli
30510f1c13SNicolas Frattaroli  reg:
31510f1c13SNicolas Frattaroli    maxItems: 1
32510f1c13SNicolas Frattaroli
33510f1c13SNicolas Frattaroli  interrupts:
34510f1c13SNicolas Frattaroli    maxItems: 1
35510f1c13SNicolas Frattaroli
36510f1c13SNicolas Frattaroli  dmas:
37510f1c13SNicolas Frattaroli    minItems: 1
38510f1c13SNicolas Frattaroli    maxItems: 2
39510f1c13SNicolas Frattaroli
40510f1c13SNicolas Frattaroli  dma-names:
41510f1c13SNicolas Frattaroli    minItems: 1
42510f1c13SNicolas Frattaroli    maxItems: 2
43510f1c13SNicolas Frattaroli    items:
44510f1c13SNicolas Frattaroli      enum:
45510f1c13SNicolas Frattaroli        - rx
46510f1c13SNicolas Frattaroli        - tx
47510f1c13SNicolas Frattaroli
48510f1c13SNicolas Frattaroli  clocks:
49510f1c13SNicolas Frattaroli    minItems: 3
50510f1c13SNicolas Frattaroli    items:
51510f1c13SNicolas Frattaroli      - description: clock for TX
52510f1c13SNicolas Frattaroli      - description: clock for RX
53510f1c13SNicolas Frattaroli      - description: AHB clock driving the interface
54510f1c13SNicolas Frattaroli      - description:
55510f1c13SNicolas Frattaroli          Parent clock for mclk_tx (only required when using mclk-calibrate)
56510f1c13SNicolas Frattaroli      - description:
57510f1c13SNicolas Frattaroli          Parent clock for mclk_rx (only required when using mclk-calibrate)
58510f1c13SNicolas Frattaroli      - description:
59510f1c13SNicolas Frattaroli          Clock for sample rates that are an integer multiple of 8000
60510f1c13SNicolas Frattaroli          (only required when using mclk-calibrate)
61510f1c13SNicolas Frattaroli      - description:
62510f1c13SNicolas Frattaroli          Clock for sample rates that are an integer multiple of 11025
63510f1c13SNicolas Frattaroli          (only required when using mclk-calibrate)
64510f1c13SNicolas Frattaroli
65510f1c13SNicolas Frattaroli  clock-names:
66510f1c13SNicolas Frattaroli    minItems: 3
67510f1c13SNicolas Frattaroli    items:
68510f1c13SNicolas Frattaroli      - const: mclk_tx
69510f1c13SNicolas Frattaroli      - const: mclk_rx
70510f1c13SNicolas Frattaroli      - const: hclk
71510f1c13SNicolas Frattaroli      - const: mclk_tx_src
72510f1c13SNicolas Frattaroli      - const: mclk_rx_src
73510f1c13SNicolas Frattaroli      - const: mclk_root0
74510f1c13SNicolas Frattaroli      - const: mclk_root1
75510f1c13SNicolas Frattaroli
76510f1c13SNicolas Frattaroli  resets:
77510f1c13SNicolas Frattaroli    minItems: 1
78510f1c13SNicolas Frattaroli    maxItems: 2
79510f1c13SNicolas Frattaroli    description: resets for the tx and rx directions
80510f1c13SNicolas Frattaroli
81510f1c13SNicolas Frattaroli  reset-names:
82510f1c13SNicolas Frattaroli    minItems: 1
83510f1c13SNicolas Frattaroli    maxItems: 2
84510f1c13SNicolas Frattaroli    items:
85510f1c13SNicolas Frattaroli      enum:
86510f1c13SNicolas Frattaroli        - tx-m
87510f1c13SNicolas Frattaroli        - rx-m
88510f1c13SNicolas Frattaroli
89bfbae373SCristian Ciocaltea  port:
90bfbae373SCristian Ciocaltea    $ref: audio-graph-port.yaml#
91bfbae373SCristian Ciocaltea    unevaluatedProperties: false
92bfbae373SCristian Ciocaltea
93*9971f335SCristian Ciocaltea  power-domains:
94*9971f335SCristian Ciocaltea    maxItems: 1
95*9971f335SCristian Ciocaltea
96510f1c13SNicolas Frattaroli  rockchip,grf:
97510f1c13SNicolas Frattaroli    $ref: /schemas/types.yaml#/definitions/phandle
98510f1c13SNicolas Frattaroli    description:
99510f1c13SNicolas Frattaroli      The phandle of the syscon node for the GRF register.
100510f1c13SNicolas Frattaroli
101510f1c13SNicolas Frattaroli  rockchip,trcm-sync-tx-only:
102510f1c13SNicolas Frattaroli    type: boolean
103510f1c13SNicolas Frattaroli    description: Use TX BCLK/LRCK for both TX and RX.
104510f1c13SNicolas Frattaroli
105510f1c13SNicolas Frattaroli  rockchip,trcm-sync-rx-only:
106510f1c13SNicolas Frattaroli    type: boolean
107510f1c13SNicolas Frattaroli    description: Use RX BCLK/LRCK for both TX and RX.
108510f1c13SNicolas Frattaroli
109510f1c13SNicolas Frattaroli  "#sound-dai-cells":
110510f1c13SNicolas Frattaroli    const: 0
111510f1c13SNicolas Frattaroli
112510f1c13SNicolas Frattaroli  rockchip,i2s-rx-route:
113510f1c13SNicolas Frattaroli    $ref: /schemas/types.yaml#/definitions/uint32-array
114510f1c13SNicolas Frattaroli    description:
115510f1c13SNicolas Frattaroli      Defines the mapping of I2S RX sdis to I2S data bus lines.
116510f1c13SNicolas Frattaroli      By default, they are mapped one-to-one.
117510f1c13SNicolas Frattaroli      rockchip,i2s-rx-route = <3> would mean sdi3 is receiving from data0.
118510f1c13SNicolas Frattaroli    maxItems: 4
119510f1c13SNicolas Frattaroli    items:
12051a67d6eSGeert Uytterhoeven      enum: [0, 1, 2, 3]
121510f1c13SNicolas Frattaroli
122510f1c13SNicolas Frattaroli  rockchip,i2s-tx-route:
123510f1c13SNicolas Frattaroli    $ref: /schemas/types.yaml#/definitions/uint32-array
124510f1c13SNicolas Frattaroli    description:
125510f1c13SNicolas Frattaroli      Defines the mapping of I2S TX sdos to I2S data bus lines.
126510f1c13SNicolas Frattaroli      By default, they are mapped one-to-one.
127510f1c13SNicolas Frattaroli      rockchip,i2s-tx-route = <3> would mean sdo3 is sending to data0.
128510f1c13SNicolas Frattaroli    maxItems: 4
129510f1c13SNicolas Frattaroli    items:
13051a67d6eSGeert Uytterhoeven      enum: [0, 1, 2, 3]
131510f1c13SNicolas Frattaroli
132510f1c13SNicolas Frattaroli  rockchip,io-multiplex:
133510f1c13SNicolas Frattaroli    description:
134510f1c13SNicolas Frattaroli      Specify that the GPIO lines on the I2S bus are multiplexed such that
135510f1c13SNicolas Frattaroli      the direction (input/output) needs to be dynamically adjusted.
136510f1c13SNicolas Frattaroli    type: boolean
137510f1c13SNicolas Frattaroli
138510f1c13SNicolas Frattaroli
139510f1c13SNicolas Frattarolirequired:
140510f1c13SNicolas Frattaroli  - compatible
141510f1c13SNicolas Frattaroli  - reg
142510f1c13SNicolas Frattaroli  - interrupts
143510f1c13SNicolas Frattaroli  - dmas
144510f1c13SNicolas Frattaroli  - dma-names
145510f1c13SNicolas Frattaroli  - clocks
146510f1c13SNicolas Frattaroli  - clock-names
147510f1c13SNicolas Frattaroli  - resets
148510f1c13SNicolas Frattaroli  - reset-names
149510f1c13SNicolas Frattaroli  - "#sound-dai-cells"
150510f1c13SNicolas Frattaroli
15158ae9a2aSKrzysztof KozlowskiunevaluatedProperties: false
152510f1c13SNicolas Frattaroli
153510f1c13SNicolas Frattaroliexamples:
154510f1c13SNicolas Frattaroli  - |
155510f1c13SNicolas Frattaroli    #include <dt-bindings/clock/rk3568-cru.h>
156510f1c13SNicolas Frattaroli    #include <dt-bindings/interrupt-controller/arm-gic.h>
157510f1c13SNicolas Frattaroli    #include <dt-bindings/interrupt-controller/irq.h>
158510f1c13SNicolas Frattaroli    #include <dt-bindings/pinctrl/rockchip.h>
159510f1c13SNicolas Frattaroli
160510f1c13SNicolas Frattaroli    bus {
161510f1c13SNicolas Frattaroli        #address-cells = <2>;
162510f1c13SNicolas Frattaroli        #size-cells = <2>;
163510f1c13SNicolas Frattaroli        i2s@fe410000 {
164510f1c13SNicolas Frattaroli            compatible = "rockchip,rk3568-i2s-tdm";
165510f1c13SNicolas Frattaroli            reg = <0x0 0xfe410000 0x0 0x1000>;
166510f1c13SNicolas Frattaroli            interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
167510f1c13SNicolas Frattaroli            clocks = <&cru MCLK_I2S1_8CH_TX>, <&cru MCLK_I2S1_8CH_RX>,
168510f1c13SNicolas Frattaroli                     <&cru HCLK_I2S1_8CH>;
169510f1c13SNicolas Frattaroli            clock-names = "mclk_tx", "mclk_rx", "hclk";
170510f1c13SNicolas Frattaroli            dmas = <&dmac1 3>, <&dmac1 2>;
171510f1c13SNicolas Frattaroli            dma-names = "rx", "tx";
172510f1c13SNicolas Frattaroli            resets = <&cru SRST_M_I2S1_8CH_TX>, <&cru SRST_M_I2S1_8CH_RX>;
173510f1c13SNicolas Frattaroli            reset-names = "tx-m", "rx-m";
174510f1c13SNicolas Frattaroli            rockchip,trcm-sync-tx-only;
175510f1c13SNicolas Frattaroli            rockchip,grf = <&grf>;
176510f1c13SNicolas Frattaroli            #sound-dai-cells = <0>;
177510f1c13SNicolas Frattaroli            pinctrl-names = "default";
178510f1c13SNicolas Frattaroli            pinctrl-0 =
179510f1c13SNicolas Frattaroli                <&i2s1m0_sclktx
180510f1c13SNicolas Frattaroli                &i2s1m0_sclkrx
181510f1c13SNicolas Frattaroli                &i2s1m0_lrcktx
182510f1c13SNicolas Frattaroli                &i2s1m0_lrckrx
183510f1c13SNicolas Frattaroli                &i2s1m0_sdi0
184510f1c13SNicolas Frattaroli                &i2s1m0_sdi1
185510f1c13SNicolas Frattaroli                &i2s1m0_sdi2
186510f1c13SNicolas Frattaroli                &i2s1m0_sdi3
187510f1c13SNicolas Frattaroli                &i2s1m0_sdo0
188510f1c13SNicolas Frattaroli                &i2s1m0_sdo1
189510f1c13SNicolas Frattaroli                &i2s1m0_sdo2
190510f1c13SNicolas Frattaroli                &i2s1m0_sdo3>;
191510f1c13SNicolas Frattaroli        };
192510f1c13SNicolas Frattaroli    };
193