18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/sound/fsl,spdif.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: Freescale Sony/Philips Digital Interface Format (S/PDIF) Controller
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cimaintainers:
108c2ecf20Sopenharmony_ci  - Shengjiu Wang <shengjiu.wang@nxp.com>
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_cidescription: |
138c2ecf20Sopenharmony_ci  The Freescale S/PDIF audio block is a stereo transceiver that allows the
148c2ecf20Sopenharmony_ci  processor to receive and transmit digital audio via an coaxial cable or
158c2ecf20Sopenharmony_ci  a fibre cable.
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ciproperties:
188c2ecf20Sopenharmony_ci  compatible:
198c2ecf20Sopenharmony_ci    enum:
208c2ecf20Sopenharmony_ci      - fsl,imx35-spdif
218c2ecf20Sopenharmony_ci      - fsl,vf610-spdif
228c2ecf20Sopenharmony_ci      - fsl,imx6sx-spdif
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ci  reg:
258c2ecf20Sopenharmony_ci    maxItems: 1
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ci  interrupts:
288c2ecf20Sopenharmony_ci    maxItems: 1
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ci  dmas:
318c2ecf20Sopenharmony_ci    items:
328c2ecf20Sopenharmony_ci      - description: DMA controller phandle and request line for RX
338c2ecf20Sopenharmony_ci      - description: DMA controller phandle and request line for TX
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ci  dma-names:
368c2ecf20Sopenharmony_ci    items:
378c2ecf20Sopenharmony_ci      - const: rx
388c2ecf20Sopenharmony_ci      - const: tx
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci  clocks:
418c2ecf20Sopenharmony_ci    items:
428c2ecf20Sopenharmony_ci      - description: The core clock of spdif controller.
438c2ecf20Sopenharmony_ci      - description: Clock for tx0 and rx0.
448c2ecf20Sopenharmony_ci      - description: Clock for tx1 and rx1.
458c2ecf20Sopenharmony_ci      - description: Clock for tx2 and rx2.
468c2ecf20Sopenharmony_ci      - description: Clock for tx3 and rx3.
478c2ecf20Sopenharmony_ci      - description: Clock for tx4 and rx4.
488c2ecf20Sopenharmony_ci      - description: Clock for tx5 and rx5.
498c2ecf20Sopenharmony_ci      - description: Clock for tx6 and rx6.
508c2ecf20Sopenharmony_ci      - description: Clock for tx7 and rx7.
518c2ecf20Sopenharmony_ci      - description: The spba clock is required when SPDIF is placed as a bus
528c2ecf20Sopenharmony_ci          slave of the Shared Peripheral Bus and when two or more bus masters
538c2ecf20Sopenharmony_ci          (CPU, DMA or DSP) try to access it. This property is optional depending
548c2ecf20Sopenharmony_ci          on the SoC design.
558c2ecf20Sopenharmony_ci    minItems: 9
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_ci  clock-names:
588c2ecf20Sopenharmony_ci    items:
598c2ecf20Sopenharmony_ci      - const: core
608c2ecf20Sopenharmony_ci      - const: rxtx0
618c2ecf20Sopenharmony_ci      - const: rxtx1
628c2ecf20Sopenharmony_ci      - const: rxtx2
638c2ecf20Sopenharmony_ci      - const: rxtx3
648c2ecf20Sopenharmony_ci      - const: rxtx4
658c2ecf20Sopenharmony_ci      - const: rxtx5
668c2ecf20Sopenharmony_ci      - const: rxtx6
678c2ecf20Sopenharmony_ci      - const: rxtx7
688c2ecf20Sopenharmony_ci      - const: spba
698c2ecf20Sopenharmony_ci    minItems: 9
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ci  big-endian:
728c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/flag
738c2ecf20Sopenharmony_ci    description: |
748c2ecf20Sopenharmony_ci      If this property is absent, the native endian mode will be in use
758c2ecf20Sopenharmony_ci      as default, or the big endian mode will be in use for all the device
768c2ecf20Sopenharmony_ci      registers. Set this flag for HCDs with big endian descriptors and big
778c2ecf20Sopenharmony_ci      endian registers.
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_cirequired:
808c2ecf20Sopenharmony_ci  - compatible
818c2ecf20Sopenharmony_ci  - reg
828c2ecf20Sopenharmony_ci  - interrupts
838c2ecf20Sopenharmony_ci  - dmas
848c2ecf20Sopenharmony_ci  - dma-names
858c2ecf20Sopenharmony_ci  - clocks
868c2ecf20Sopenharmony_ci  - clock-names
878c2ecf20Sopenharmony_ci
888c2ecf20Sopenharmony_ciadditionalProperties: false
898c2ecf20Sopenharmony_ci
908c2ecf20Sopenharmony_ciexamples:
918c2ecf20Sopenharmony_ci  - |
928c2ecf20Sopenharmony_ci    spdif@2004000 {
938c2ecf20Sopenharmony_ci        compatible = "fsl,imx35-spdif";
948c2ecf20Sopenharmony_ci        reg = <0x02004000 0x4000>;
958c2ecf20Sopenharmony_ci        interrupts = <0 52 0x04>;
968c2ecf20Sopenharmony_ci        dmas = <&sdma 14 18 0>,
978c2ecf20Sopenharmony_ci               <&sdma 15 18 0>;
988c2ecf20Sopenharmony_ci        dma-names = "rx", "tx";
998c2ecf20Sopenharmony_ci        clocks = <&clks 197>, <&clks 3>,
1008c2ecf20Sopenharmony_ci                 <&clks 197>, <&clks 107>,
1018c2ecf20Sopenharmony_ci                 <&clks 0>, <&clks 118>,
1028c2ecf20Sopenharmony_ci                 <&clks 62>, <&clks 139>,
1038c2ecf20Sopenharmony_ci                 <&clks 0>;
1048c2ecf20Sopenharmony_ci        clock-names = "core", "rxtx0",
1058c2ecf20Sopenharmony_ci                      "rxtx1", "rxtx2",
1068c2ecf20Sopenharmony_ci                      "rxtx3", "rxtx4",
1078c2ecf20Sopenharmony_ci                      "rxtx5", "rxtx6",
1088c2ecf20Sopenharmony_ci                      "rxtx7";
1098c2ecf20Sopenharmony_ci        big-endian;
1108c2ecf20Sopenharmony_ci    };
111