xref: /freebsd/sys/contrib/device-tree/Bindings/sound/fsl,ssi.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel VadotFreescale Synchronous Serial Interface
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotThe SSI is a serial device that communicates with audio codecs.  It can
4*c66ec88fSEmmanuel Vadotbe programmed in AC97, I2S, left-justified, or right-justified modes.
5*c66ec88fSEmmanuel Vadot
6*c66ec88fSEmmanuel VadotRequired properties:
7*c66ec88fSEmmanuel Vadot- compatible:       Compatible list, should contain one of the following
8*c66ec88fSEmmanuel Vadot                    compatibles:
9*c66ec88fSEmmanuel Vadot                      fsl,mpc8610-ssi
10*c66ec88fSEmmanuel Vadot                      fsl,imx51-ssi
11*c66ec88fSEmmanuel Vadot                      fsl,imx35-ssi
12*c66ec88fSEmmanuel Vadot                      fsl,imx21-ssi
13*c66ec88fSEmmanuel Vadot- cell-index:       The SSI, <0> = SSI1, <1> = SSI2, and so on.
14*c66ec88fSEmmanuel Vadot- reg:              Offset and length of the register set for the device.
15*c66ec88fSEmmanuel Vadot- interrupts:       <a b> where a is the interrupt number and b is a
16*c66ec88fSEmmanuel Vadot                    field that represents an encoding of the sense and
17*c66ec88fSEmmanuel Vadot                    level information for the interrupt.  This should be
18*c66ec88fSEmmanuel Vadot                    encoded based on the information in section 2)
19*c66ec88fSEmmanuel Vadot                    depending on the type of interrupt controller you
20*c66ec88fSEmmanuel Vadot                    have.
21*c66ec88fSEmmanuel Vadot- fsl,fifo-depth:   The number of elements in the transmit and receive FIFOs.
22*c66ec88fSEmmanuel Vadot                    This number is the maximum allowed value for SFCSR[TFWM0].
23*c66ec88fSEmmanuel Vadot - clocks:          "ipg" - Required clock for the SSI unit
24*c66ec88fSEmmanuel Vadot                    "baud" - Required clock for SSI master mode. Otherwise this
25*c66ec88fSEmmanuel Vadot		      clock is not used
26*c66ec88fSEmmanuel Vadot
27*c66ec88fSEmmanuel VadotRequired are also ac97 link bindings if ac97 is used. See
28*c66ec88fSEmmanuel VadotDocumentation/devicetree/bindings/sound/soc-ac97link.txt for the necessary
29*c66ec88fSEmmanuel Vadotbindings.
30*c66ec88fSEmmanuel Vadot
31*c66ec88fSEmmanuel VadotOptional properties:
32*c66ec88fSEmmanuel Vadot- codec-handle:     Phandle to a 'codec' node that defines an audio
33*c66ec88fSEmmanuel Vadot                    codec connected to this SSI.  This node is typically
34*c66ec88fSEmmanuel Vadot                    a child of an I2C or other control node.
35*c66ec88fSEmmanuel Vadot- fsl,fiq-stream-filter: Bool property. Disabled DMA and use FIQ instead to
36*c66ec88fSEmmanuel Vadot		    filter the codec stream. This is necessary for some boards
37*c66ec88fSEmmanuel Vadot		    where an incompatible codec is connected to this SSI, e.g.
38*c66ec88fSEmmanuel Vadot		    on pca100 and pcm043.
39*c66ec88fSEmmanuel Vadot- dmas:		    Generic dma devicetree binding as described in
40*c66ec88fSEmmanuel Vadot		    Documentation/devicetree/bindings/dma/dma.txt.
41*c66ec88fSEmmanuel Vadot- dma-names:	    Two dmas have to be defined, "tx" and "rx", if fsl,imx-fiq
42*c66ec88fSEmmanuel Vadot		    is not defined.
43*c66ec88fSEmmanuel Vadot- fsl,mode:         The operating mode for the AC97 interface only.
44*c66ec88fSEmmanuel Vadot                    "ac97-slave" - AC97 mode, SSI is clock slave
45*c66ec88fSEmmanuel Vadot                    "ac97-master" - AC97 mode, SSI is clock master
46*c66ec88fSEmmanuel Vadot- fsl,ssi-asynchronous:
47*c66ec88fSEmmanuel Vadot                    If specified, the SSI is to be programmed in asynchronous
48*c66ec88fSEmmanuel Vadot                    mode.  In this mode, pins SRCK, STCK, SRFS, and STFS must
49*c66ec88fSEmmanuel Vadot                    all be connected to valid signals.  In synchronous mode,
50*c66ec88fSEmmanuel Vadot                    SRCK and SRFS are ignored.  Asynchronous mode allows
51*c66ec88fSEmmanuel Vadot                    playback and capture to use different sample sizes and
52*c66ec88fSEmmanuel Vadot                    sample rates.  Some drivers may require that SRCK and STCK
53*c66ec88fSEmmanuel Vadot                    be connected together, and SRFS and STFS be connected
54*c66ec88fSEmmanuel Vadot                    together.  This would still allow different sample sizes,
55*c66ec88fSEmmanuel Vadot                    but not different sample rates.
56*c66ec88fSEmmanuel Vadot- fsl,playback-dma: Phandle to a node for the DMA channel to use for
57*c66ec88fSEmmanuel Vadot                    playback of audio.  This is typically dictated by SOC
58*c66ec88fSEmmanuel Vadot                    design.  See the notes below.
59*c66ec88fSEmmanuel Vadot                    Only used on Power Architecture.
60*c66ec88fSEmmanuel Vadot- fsl,capture-dma:  Phandle to a node for the DMA channel to use for
61*c66ec88fSEmmanuel Vadot                    capture (recording) of audio.  This is typically dictated
62*c66ec88fSEmmanuel Vadot                    by SOC design.  See the notes below.
63*c66ec88fSEmmanuel Vadot                    Only used on Power Architecture.
64*c66ec88fSEmmanuel Vadot
65*c66ec88fSEmmanuel VadotChild 'codec' node required properties:
66*c66ec88fSEmmanuel Vadot- compatible:       Compatible list, contains the name of the codec
67*c66ec88fSEmmanuel Vadot
68*c66ec88fSEmmanuel VadotChild 'codec' node optional properties:
69*c66ec88fSEmmanuel Vadot- clock-frequency:  The frequency of the input clock, which typically comes
70*c66ec88fSEmmanuel Vadot                    from an on-board dedicated oscillator.
71*c66ec88fSEmmanuel Vadot
72*c66ec88fSEmmanuel VadotNotes on fsl,playback-dma and fsl,capture-dma:
73*c66ec88fSEmmanuel Vadot
74*c66ec88fSEmmanuel VadotOn SOCs that have an SSI, specific DMA channels are hard-wired for playback
75*c66ec88fSEmmanuel Vadotand capture.  On the MPC8610, for example, SSI1 must use DMA channel 0 for
76*c66ec88fSEmmanuel Vadotplayback and DMA channel 1 for capture.  SSI2 must use DMA channel 2 for
77*c66ec88fSEmmanuel Vadotplayback and DMA channel 3 for capture.  The developer can choose which
78*c66ec88fSEmmanuel VadotDMA controller to use, but the channels themselves are hard-wired.  The
79*c66ec88fSEmmanuel Vadotpurpose of these two properties is to represent this hardware design.
80*c66ec88fSEmmanuel Vadot
81*c66ec88fSEmmanuel VadotThe device tree nodes for the DMA channels that are referenced by
82*c66ec88fSEmmanuel Vadot"fsl,playback-dma" and "fsl,capture-dma" must be marked as compatible with
83*c66ec88fSEmmanuel Vadot"fsl,ssi-dma-channel".  The SOC-specific compatible string (e.g.
84*c66ec88fSEmmanuel Vadot"fsl,mpc8610-dma-channel") can remain.  If these nodes are left as
85*c66ec88fSEmmanuel Vadot"fsl,elo-dma-channel" or "fsl,eloplus-dma-channel", then the generic Elo DMA
86*c66ec88fSEmmanuel Vadotdrivers (fsldma) will attempt to use them, and it will conflict with the
87*c66ec88fSEmmanuel Vadotsound drivers.
88