xref: /freebsd/sys/contrib/device-tree/Bindings/sound/fsl,spdif.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel VadotFreescale Sony/Philips Digital Interface Format (S/PDIF) Controller
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotThe Freescale S/PDIF audio block is a stereo transceiver that allows the
4*c66ec88fSEmmanuel Vadotprocessor to receive and transmit digital audio via an coaxial cable or
5*c66ec88fSEmmanuel Vadota fibre cable.
6*c66ec88fSEmmanuel Vadot
7*c66ec88fSEmmanuel VadotRequired properties:
8*c66ec88fSEmmanuel Vadot
9*c66ec88fSEmmanuel Vadot  - compatible		: Compatible list, should contain one of the following
10*c66ec88fSEmmanuel Vadot			  compatibles:
11*c66ec88fSEmmanuel Vadot			  "fsl,imx35-spdif",
12*c66ec88fSEmmanuel Vadot			  "fsl,vf610-spdif",
13*c66ec88fSEmmanuel Vadot			  "fsl,imx6sx-spdif",
14*c66ec88fSEmmanuel Vadot
15*c66ec88fSEmmanuel Vadot  - reg			: Offset and length of the register set for the device.
16*c66ec88fSEmmanuel Vadot
17*c66ec88fSEmmanuel Vadot  - interrupts		: Contains the spdif interrupt.
18*c66ec88fSEmmanuel Vadot
19*c66ec88fSEmmanuel Vadot  - dmas		: Generic dma devicetree binding as described in
20*c66ec88fSEmmanuel Vadot			  Documentation/devicetree/bindings/dma/dma.txt.
21*c66ec88fSEmmanuel Vadot
22*c66ec88fSEmmanuel Vadot  - dma-names		: Two dmas have to be defined, "tx" and "rx".
23*c66ec88fSEmmanuel Vadot
24*c66ec88fSEmmanuel Vadot  - clocks		: Contains an entry for each entry in clock-names.
25*c66ec88fSEmmanuel Vadot
26*c66ec88fSEmmanuel Vadot  - clock-names		: Includes the following entries:
27*c66ec88fSEmmanuel Vadot	"core"		  The core clock of spdif controller.
28*c66ec88fSEmmanuel Vadot	"rxtx<0-7>"	  Clock source list for tx and rx clock.
29*c66ec88fSEmmanuel Vadot			  This clock list should be identical to the source
30*c66ec88fSEmmanuel Vadot			  list connecting to the spdif clock mux in "SPDIF
31*c66ec88fSEmmanuel Vadot			  Transceiver Clock Diagram" of SoC reference manual.
32*c66ec88fSEmmanuel Vadot			  It can also be referred to TxClk_Source bit of
33*c66ec88fSEmmanuel Vadot			  register SPDIF_STC.
34*c66ec88fSEmmanuel Vadot	"spba"		  The spba clock is required when SPDIF is placed as a
35*c66ec88fSEmmanuel Vadot			  bus slave of the Shared Peripheral Bus and when two
36*c66ec88fSEmmanuel Vadot			  or more bus masters (CPU, DMA or DSP) try to access
37*c66ec88fSEmmanuel Vadot			  it. This property is optional depending on the SoC
38*c66ec88fSEmmanuel Vadot			  design.
39*c66ec88fSEmmanuel Vadot
40*c66ec88fSEmmanuel VadotOptional properties:
41*c66ec88fSEmmanuel Vadot
42*c66ec88fSEmmanuel Vadot   - big-endian		: If this property is absent, the native endian mode
43*c66ec88fSEmmanuel Vadot			  will be in use as default, or the big endian mode
44*c66ec88fSEmmanuel Vadot			  will be in use for all the device registers.
45*c66ec88fSEmmanuel Vadot
46*c66ec88fSEmmanuel VadotExample:
47*c66ec88fSEmmanuel Vadot
48*c66ec88fSEmmanuel Vadotspdif: spdif@2004000 {
49*c66ec88fSEmmanuel Vadot	compatible = "fsl,imx35-spdif";
50*c66ec88fSEmmanuel Vadot	reg = <0x02004000 0x4000>;
51*c66ec88fSEmmanuel Vadot	interrupts = <0 52 0x04>;
52*c66ec88fSEmmanuel Vadot	dmas = <&sdma 14 18 0>,
53*c66ec88fSEmmanuel Vadot	       <&sdma 15 18 0>;
54*c66ec88fSEmmanuel Vadot	dma-names = "rx", "tx";
55*c66ec88fSEmmanuel Vadot
56*c66ec88fSEmmanuel Vadot	clocks = <&clks 197>, <&clks 3>,
57*c66ec88fSEmmanuel Vadot	       <&clks 197>, <&clks 107>,
58*c66ec88fSEmmanuel Vadot	       <&clks 0>, <&clks 118>,
59*c66ec88fSEmmanuel Vadot	       <&clks 62>, <&clks 139>,
60*c66ec88fSEmmanuel Vadot	       <&clks 0>;
61*c66ec88fSEmmanuel Vadot	clock-names = "core", "rxtx0",
62*c66ec88fSEmmanuel Vadot		"rxtx1", "rxtx2",
63*c66ec88fSEmmanuel Vadot		"rxtx3", "rxtx4",
64*c66ec88fSEmmanuel Vadot		"rxtx5", "rxtx6",
65*c66ec88fSEmmanuel Vadot		"rxtx7";
66*c66ec88fSEmmanuel Vadot
67*c66ec88fSEmmanuel Vadot	big-endian;
68*c66ec88fSEmmanuel Vadot};
69