xref: /freebsd/sys/contrib/device-tree/Bindings/sound/rockchip-i2s.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/sound/rockchip-i2s.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadottitle: Rockchip I2S controller
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotdescription:
10c66ec88fSEmmanuel Vadot  The I2S bus (Inter-IC sound bus) is a serial link for digital
11c66ec88fSEmmanuel Vadot  audio data transfer between devices in the system.
12c66ec88fSEmmanuel Vadot
13c66ec88fSEmmanuel Vadotmaintainers:
14c66ec88fSEmmanuel Vadot  - Heiko Stuebner <heiko@sntech.de>
15c66ec88fSEmmanuel Vadot
168bab661aSEmmanuel VadotallOf:
178bab661aSEmmanuel Vadot  - $ref: dai-common.yaml#
188bab661aSEmmanuel Vadot
19c66ec88fSEmmanuel Vadotproperties:
20c66ec88fSEmmanuel Vadot  compatible:
21c66ec88fSEmmanuel Vadot    oneOf:
22c66ec88fSEmmanuel Vadot      - const: rockchip,rk3066-i2s
23c66ec88fSEmmanuel Vadot      - items:
24c66ec88fSEmmanuel Vadot          - enum:
25c66ec88fSEmmanuel Vadot              - rockchip,px30-i2s
26354d7675SEmmanuel Vadot              - rockchip,rk1808-i2s
27c66ec88fSEmmanuel Vadot              - rockchip,rk3036-i2s
28354d7675SEmmanuel Vadot              - rockchip,rk3128-i2s
29c66ec88fSEmmanuel Vadot              - rockchip,rk3188-i2s
30c66ec88fSEmmanuel Vadot              - rockchip,rk3228-i2s
31c66ec88fSEmmanuel Vadot              - rockchip,rk3288-i2s
32c66ec88fSEmmanuel Vadot              - rockchip,rk3308-i2s
33c66ec88fSEmmanuel Vadot              - rockchip,rk3328-i2s
34c66ec88fSEmmanuel Vadot              - rockchip,rk3366-i2s
35c66ec88fSEmmanuel Vadot              - rockchip,rk3368-i2s
36c66ec88fSEmmanuel Vadot              - rockchip,rk3399-i2s
37*fac71e4eSEmmanuel Vadot              - rockchip,rk3588-i2s
38354d7675SEmmanuel Vadot              - rockchip,rv1126-i2s
39c66ec88fSEmmanuel Vadot          - const: rockchip,rk3066-i2s
40c66ec88fSEmmanuel Vadot
41c66ec88fSEmmanuel Vadot  reg:
42c66ec88fSEmmanuel Vadot    maxItems: 1
43c66ec88fSEmmanuel Vadot
44c66ec88fSEmmanuel Vadot  interrupts:
45c66ec88fSEmmanuel Vadot    maxItems: 1
46c66ec88fSEmmanuel Vadot
47c66ec88fSEmmanuel Vadot  clocks:
48c66ec88fSEmmanuel Vadot    items:
49c66ec88fSEmmanuel Vadot      - description: clock for I2S controller
50c66ec88fSEmmanuel Vadot      - description: clock for I2S BUS
51c66ec88fSEmmanuel Vadot
52c66ec88fSEmmanuel Vadot  clock-names:
53c66ec88fSEmmanuel Vadot    items:
54c66ec88fSEmmanuel Vadot      - const: i2s_clk
55c66ec88fSEmmanuel Vadot      - const: i2s_hclk
56c66ec88fSEmmanuel Vadot
57c66ec88fSEmmanuel Vadot  dmas:
58c66ec88fSEmmanuel Vadot    minItems: 1
59c66ec88fSEmmanuel Vadot    maxItems: 2
60c66ec88fSEmmanuel Vadot
61c66ec88fSEmmanuel Vadot  dma-names:
62c66ec88fSEmmanuel Vadot    oneOf:
63c66ec88fSEmmanuel Vadot      - const: rx
64c66ec88fSEmmanuel Vadot      - items:
65c66ec88fSEmmanuel Vadot          - const: tx
66c66ec88fSEmmanuel Vadot          - const: rx
67c66ec88fSEmmanuel Vadot
68b97ee269SEmmanuel Vadot  pinctrl-names:
69b97ee269SEmmanuel Vadot    oneOf:
70b97ee269SEmmanuel Vadot      - const: default
71b97ee269SEmmanuel Vadot      - items:
72b97ee269SEmmanuel Vadot          - const: bclk_on
73b97ee269SEmmanuel Vadot          - const: bclk_off
74b97ee269SEmmanuel Vadot
75c66ec88fSEmmanuel Vadot  power-domains:
76c66ec88fSEmmanuel Vadot    maxItems: 1
77c66ec88fSEmmanuel Vadot
78354d7675SEmmanuel Vadot  reset-names:
79354d7675SEmmanuel Vadot    items:
80354d7675SEmmanuel Vadot      - const: reset-m
81354d7675SEmmanuel Vadot      - const: reset-h
82354d7675SEmmanuel Vadot
83354d7675SEmmanuel Vadot  resets:
84354d7675SEmmanuel Vadot    maxItems: 2
85354d7675SEmmanuel Vadot
86*fac71e4eSEmmanuel Vadot  port:
87*fac71e4eSEmmanuel Vadot    $ref: audio-graph-port.yaml#
88*fac71e4eSEmmanuel Vadot    unevaluatedProperties: false
89*fac71e4eSEmmanuel Vadot
90c66ec88fSEmmanuel Vadot  rockchip,capture-channels:
91c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
92c66ec88fSEmmanuel Vadot    default: 2
93c66ec88fSEmmanuel Vadot    description:
94c66ec88fSEmmanuel Vadot      Max capture channels, if not set, 2 channels default.
95c66ec88fSEmmanuel Vadot
96c66ec88fSEmmanuel Vadot  rockchip,playback-channels:
97c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
98c66ec88fSEmmanuel Vadot    default: 8
99c66ec88fSEmmanuel Vadot    description:
100c66ec88fSEmmanuel Vadot      Max playback channels, if not set, 8 channels default.
101c66ec88fSEmmanuel Vadot
102c66ec88fSEmmanuel Vadot  rockchip,grf:
103c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
104c66ec88fSEmmanuel Vadot    description:
105c66ec88fSEmmanuel Vadot      The phandle of the syscon node for the GRF register.
106c66ec88fSEmmanuel Vadot      Required property for controllers which support multi channel
107c66ec88fSEmmanuel Vadot      playback/capture.
108c66ec88fSEmmanuel Vadot
109c66ec88fSEmmanuel Vadot  "#sound-dai-cells":
110c66ec88fSEmmanuel Vadot    const: 0
111c66ec88fSEmmanuel Vadot
112c66ec88fSEmmanuel Vadotrequired:
113c66ec88fSEmmanuel Vadot  - compatible
114c66ec88fSEmmanuel Vadot  - reg
115c66ec88fSEmmanuel Vadot  - interrupts
116c66ec88fSEmmanuel Vadot  - clocks
117c66ec88fSEmmanuel Vadot  - clock-names
118c66ec88fSEmmanuel Vadot  - dmas
119c66ec88fSEmmanuel Vadot  - dma-names
120c66ec88fSEmmanuel Vadot  - "#sound-dai-cells"
121c66ec88fSEmmanuel Vadot
1228bab661aSEmmanuel VadotunevaluatedProperties: false
123c66ec88fSEmmanuel Vadot
124c66ec88fSEmmanuel Vadotexamples:
125c66ec88fSEmmanuel Vadot  - |
126c66ec88fSEmmanuel Vadot    #include <dt-bindings/clock/rk3288-cru.h>
127c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
128c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
129c66ec88fSEmmanuel Vadot    i2s@ff890000 {
130c66ec88fSEmmanuel Vadot      compatible = "rockchip,rk3288-i2s", "rockchip,rk3066-i2s";
131c66ec88fSEmmanuel Vadot      reg = <0xff890000 0x10000>;
132c66ec88fSEmmanuel Vadot      interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
133c66ec88fSEmmanuel Vadot      clocks = <&cru SCLK_I2S0>, <&cru HCLK_I2S0>;
134c66ec88fSEmmanuel Vadot      clock-names = "i2s_clk", "i2s_hclk";
135c66ec88fSEmmanuel Vadot      dmas = <&pdma1 0>, <&pdma1 1>;
136c66ec88fSEmmanuel Vadot      dma-names = "tx", "rx";
137c66ec88fSEmmanuel Vadot      rockchip,capture-channels = <2>;
138c66ec88fSEmmanuel Vadot      rockchip,playback-channels = <8>;
139c66ec88fSEmmanuel Vadot      #sound-dai-cells = <0>;
140c66ec88fSEmmanuel Vadot    };
141