1c5040fecSAnson Huang# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2c5040fecSAnson Huang%YAML 1.2
3c5040fecSAnson Huang---
4c5040fecSAnson Huang$id: http://devicetree.org/schemas/sound/fsl,spdif.yaml#
5c5040fecSAnson Huang$schema: http://devicetree.org/meta-schemas/core.yaml#
6c5040fecSAnson Huang
7c5040fecSAnson Huangtitle: Freescale Sony/Philips Digital Interface Format (S/PDIF) Controller
8c5040fecSAnson Huang
9c5040fecSAnson Huangmaintainers:
10c5040fecSAnson Huang  - Shengjiu Wang <shengjiu.wang@nxp.com>
11c5040fecSAnson Huang
12c5040fecSAnson Huangdescription: |
13c5040fecSAnson Huang  The Freescale S/PDIF audio block is a stereo transceiver that allows the
14c5040fecSAnson Huang  processor to receive and transmit digital audio via an coaxial cable or
15c5040fecSAnson Huang  a fibre cable.
16c5040fecSAnson Huang
17c5040fecSAnson Huangproperties:
18c5040fecSAnson Huang  compatible:
19c5040fecSAnson Huang    enum:
20c5040fecSAnson Huang      - fsl,imx35-spdif
21c5040fecSAnson Huang      - fsl,vf610-spdif
22c5040fecSAnson Huang      - fsl,imx6sx-spdif
2387b2fc11SShengjiu Wang      - fsl,imx8qm-spdif
249deef665SShengjiu Wang      - fsl,imx8qxp-spdif
259deef665SShengjiu Wang      - fsl,imx8mq-spdif
269deef665SShengjiu Wang      - fsl,imx8mm-spdif
279deef665SShengjiu Wang      - fsl,imx8mn-spdif
28cb7d734eSShengjiu Wang      - fsl,imx8ulp-spdif
29c5040fecSAnson Huang
30c5040fecSAnson Huang  reg:
31c5040fecSAnson Huang    maxItems: 1
32c5040fecSAnson Huang
33c5040fecSAnson Huang  interrupts:
34c5040fecSAnson Huang    maxItems: 1
35c5040fecSAnson Huang
36c5040fecSAnson Huang  dmas:
37c5040fecSAnson Huang    items:
38c5040fecSAnson Huang      - description: DMA controller phandle and request line for RX
39c5040fecSAnson Huang      - description: DMA controller phandle and request line for TX
40c5040fecSAnson Huang
41c5040fecSAnson Huang  dma-names:
42c5040fecSAnson Huang    items:
43c5040fecSAnson Huang      - const: rx
44c5040fecSAnson Huang      - const: tx
45c5040fecSAnson Huang
46c5040fecSAnson Huang  clocks:
47c5040fecSAnson Huang    items:
48c5040fecSAnson Huang      - description: The core clock of spdif controller.
49c5040fecSAnson Huang      - description: Clock for tx0 and rx0.
50c5040fecSAnson Huang      - description: Clock for tx1 and rx1.
51c5040fecSAnson Huang      - description: Clock for tx2 and rx2.
52c5040fecSAnson Huang      - description: Clock for tx3 and rx3.
53c5040fecSAnson Huang      - description: Clock for tx4 and rx4.
54c5040fecSAnson Huang      - description: Clock for tx5 and rx5.
55c5040fecSAnson Huang      - description: Clock for tx6 and rx6.
56c5040fecSAnson Huang      - description: Clock for tx7 and rx7.
57c5040fecSAnson Huang      - description: The spba clock is required when SPDIF is placed as a bus
58c5040fecSAnson Huang          slave of the Shared Peripheral Bus and when two or more bus masters
59c5040fecSAnson Huang          (CPU, DMA or DSP) try to access it. This property is optional depending
60c5040fecSAnson Huang          on the SoC design.
61*df0835a8SShengjiu Wang      - description: PLL clock source for 8kHz series rate, optional.
62*df0835a8SShengjiu Wang      - description: PLL clock source for 11khz series rate, optional.
63c5040fecSAnson Huang    minItems: 9
64c5040fecSAnson Huang
65c5040fecSAnson Huang  clock-names:
66c5040fecSAnson Huang    items:
67c5040fecSAnson Huang      - const: core
68c5040fecSAnson Huang      - const: rxtx0
69c5040fecSAnson Huang      - const: rxtx1
70c5040fecSAnson Huang      - const: rxtx2
71c5040fecSAnson Huang      - const: rxtx3
72c5040fecSAnson Huang      - const: rxtx4
73c5040fecSAnson Huang      - const: rxtx5
74c5040fecSAnson Huang      - const: rxtx6
75c5040fecSAnson Huang      - const: rxtx7
76c5040fecSAnson Huang      - const: spba
77*df0835a8SShengjiu Wang      - const: pll8k
78*df0835a8SShengjiu Wang      - const: pll11k
79c5040fecSAnson Huang    minItems: 9
80c5040fecSAnson Huang
81c5040fecSAnson Huang  big-endian:
82c5040fecSAnson Huang    $ref: /schemas/types.yaml#/definitions/flag
83c5040fecSAnson Huang    description: |
84c5040fecSAnson Huang      If this property is absent, the native endian mode will be in use
85c5040fecSAnson Huang      as default, or the big endian mode will be in use for all the device
86c5040fecSAnson Huang      registers. Set this flag for HCDs with big endian descriptors and big
87c5040fecSAnson Huang      endian registers.
88c5040fecSAnson Huang
89c5040fecSAnson Huangrequired:
90c5040fecSAnson Huang  - compatible
91c5040fecSAnson Huang  - reg
92c5040fecSAnson Huang  - interrupts
93c5040fecSAnson Huang  - dmas
94c5040fecSAnson Huang  - dma-names
95c5040fecSAnson Huang  - clocks
96c5040fecSAnson Huang  - clock-names
97c5040fecSAnson Huang
98c5040fecSAnson HuangadditionalProperties: false
99c5040fecSAnson Huang
100c5040fecSAnson Huangexamples:
101c5040fecSAnson Huang  - |
102c5040fecSAnson Huang    spdif@2004000 {
103c5040fecSAnson Huang        compatible = "fsl,imx35-spdif";
104c5040fecSAnson Huang        reg = <0x02004000 0x4000>;
105c5040fecSAnson Huang        interrupts = <0 52 0x04>;
106c5040fecSAnson Huang        dmas = <&sdma 14 18 0>,
107c5040fecSAnson Huang               <&sdma 15 18 0>;
108c5040fecSAnson Huang        dma-names = "rx", "tx";
109c5040fecSAnson Huang        clocks = <&clks 197>, <&clks 3>,
110c5040fecSAnson Huang                 <&clks 197>, <&clks 107>,
111c5040fecSAnson Huang                 <&clks 0>, <&clks 118>,
112c5040fecSAnson Huang                 <&clks 62>, <&clks 139>,
113c5040fecSAnson Huang                 <&clks 0>;
114c5040fecSAnson Huang        clock-names = "core", "rxtx0",
115c5040fecSAnson Huang                      "rxtx1", "rxtx2",
116c5040fecSAnson Huang                      "rxtx3", "rxtx4",
117c5040fecSAnson Huang                      "rxtx5", "rxtx6",
118c5040fecSAnson Huang                      "rxtx7";
119c5040fecSAnson Huang        big-endian;
120c5040fecSAnson Huang    };
121