Linux 6.7-rc7
[linux-modified.git] / Documentation / devicetree / bindings / sound / starfive,jh7110-tdm.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/sound/starfive,jh7110-tdm.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: StarFive JH7110 TDM Controller
8
9 description: |
10   The TDM Controller is a Time Division Multiplexed audio interface
11   integrated in StarFive JH7110 SoC, allowing up to 8 channels of
12   audio over a serial interface. The TDM controller can operate both
13   in master and slave mode.
14
15 maintainers:
16   - Walker Chen <walker.chen@starfivetech.com>
17
18 allOf:
19   - $ref: dai-common.yaml#
20
21 properties:
22   compatible:
23     enum:
24       - starfive,jh7110-tdm
25
26   reg:
27     maxItems: 1
28
29   clocks:
30     items:
31       - description: TDM AHB Clock
32       - description: TDM APB Clock
33       - description: TDM Internal Clock
34       - description: TDM Clock
35       - description: Inner MCLK
36       - description: TDM External Clock
37
38   clock-names:
39     items:
40       - const: tdm_ahb
41       - const: tdm_apb
42       - const: tdm_internal
43       - const: tdm
44       - const: mclk_inner
45       - const: tdm_ext
46
47   resets:
48     items:
49       - description: tdm ahb reset line
50       - description: tdm apb reset line
51       - description: tdm core reset line
52
53   dmas:
54     items:
55       - description: RX DMA Channel
56       - description: TX DMA Channel
57
58   dma-names:
59     items:
60       - const: rx
61       - const: tx
62
63   "#sound-dai-cells":
64     const: 0
65
66 required:
67   - compatible
68   - reg
69   - clocks
70   - clock-names
71   - resets
72   - dmas
73   - dma-names
74   - "#sound-dai-cells"
75
76 additionalProperties: false
77
78 examples:
79   - |
80     tdm@10090000 {
81         compatible = "starfive,jh7110-tdm";
82         reg = <0x10090000 0x1000>;
83         clocks = <&syscrg 184>,
84                  <&syscrg 185>,
85                  <&syscrg 186>,
86                  <&syscrg 187>,
87                  <&syscrg 17>,
88                  <&tdm_ext>;
89         clock-names = "tdm_ahb", "tdm_apb",
90                       "tdm_internal", "tdm",
91                       "mclk_inner", "tdm_ext";
92         resets = <&syscrg 105>,
93                  <&syscrg 107>,
94                  <&syscrg 106>;
95         dmas = <&dma 20>, <&dma 21>;
96         dma-names = "rx","tx";
97         #sound-dai-cells = <0>;
98     };