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