xref: /linux/Documentation/devicetree/bindings/sound/starfive,jh7110-tdm.yaml (revision c532de5a67a70f8533d495f8f2aaa9a0491c3ad0)
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
7title: StarFive JH7110 TDM Controller
8
9description: |
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
15maintainers:
16  - Walker Chen <walker.chen@starfivetech.com>
17
18allOf:
19  - $ref: dai-common.yaml#
20
21properties:
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
66required:
67  - compatible
68  - reg
69  - clocks
70  - clock-names
71  - resets
72  - dmas
73  - dma-names
74  - "#sound-dai-cells"
75
76additionalProperties: false
77
78examples:
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    };
99