1624dcbdeSMarkus PargmannFreescale Synchronous Serial Interface 2624dcbdeSMarkus Pargmann 3624dcbdeSMarkus PargmannThe SSI is a serial device that communicates with audio codecs. It can 4624dcbdeSMarkus Pargmannbe programmed in AC97, I2S, left-justified, or right-justified modes. 5624dcbdeSMarkus Pargmann 6624dcbdeSMarkus PargmannRequired properties: 710901e53SMarkus Pargmann- compatible: Compatible list, should contain one of the following 810901e53SMarkus Pargmann compatibles: 910901e53SMarkus Pargmann fsl,mpc8610-ssi 1010901e53SMarkus Pargmann fsl,imx51-ssi 1110901e53SMarkus Pargmann fsl,imx35-ssi 1210901e53SMarkus Pargmann fsl,imx21-ssi 13624dcbdeSMarkus Pargmann- cell-index: The SSI, <0> = SSI1, <1> = SSI2, and so on. 14624dcbdeSMarkus Pargmann- reg: Offset and length of the register set for the device. 15624dcbdeSMarkus Pargmann- interrupts: <a b> where a is the interrupt number and b is a 16624dcbdeSMarkus Pargmann field that represents an encoding of the sense and 17624dcbdeSMarkus Pargmann level information for the interrupt. This should be 18624dcbdeSMarkus Pargmann encoded based on the information in section 2) 19624dcbdeSMarkus Pargmann depending on the type of interrupt controller you 20624dcbdeSMarkus Pargmann have. 21624dcbdeSMarkus Pargmann- interrupt-parent: The phandle for the interrupt controller that 22624dcbdeSMarkus Pargmann services interrupts for this device. 23624dcbdeSMarkus Pargmann- fsl,mode: The operating mode for the SSI interface. 24624dcbdeSMarkus Pargmann "i2s-slave" - I2S mode, SSI is clock slave 25624dcbdeSMarkus Pargmann "i2s-master" - I2S mode, SSI is clock master 26624dcbdeSMarkus Pargmann "lj-slave" - left-justified mode, SSI is clock slave 27624dcbdeSMarkus Pargmann "lj-master" - l.j. mode, SSI is clock master 28624dcbdeSMarkus Pargmann "rj-slave" - right-justified mode, SSI is clock slave 29624dcbdeSMarkus Pargmann "rj-master" - r.j., SSI is clock master 30624dcbdeSMarkus Pargmann "ac97-slave" - AC97 mode, SSI is clock slave 31624dcbdeSMarkus Pargmann "ac97-master" - AC97 mode, SSI is clock master 32624dcbdeSMarkus Pargmann- fsl,playback-dma: Phandle to a node for the DMA channel to use for 33624dcbdeSMarkus Pargmann playback of audio. This is typically dictated by SOC 34624dcbdeSMarkus Pargmann design. See the notes below. 35624dcbdeSMarkus Pargmann- fsl,capture-dma: Phandle to a node for the DMA channel to use for 36624dcbdeSMarkus Pargmann capture (recording) of audio. This is typically dictated 37624dcbdeSMarkus Pargmann by SOC design. See the notes below. 38624dcbdeSMarkus Pargmann- fsl,fifo-depth: The number of elements in the transmit and receive FIFOs. 39624dcbdeSMarkus Pargmann This number is the maximum allowed value for SFCSR[TFWM0]. 40624dcbdeSMarkus Pargmann- fsl,ssi-asynchronous: 41624dcbdeSMarkus Pargmann If specified, the SSI is to be programmed in asynchronous 42624dcbdeSMarkus Pargmann mode. In this mode, pins SRCK, STCK, SRFS, and STFS must 43624dcbdeSMarkus Pargmann all be connected to valid signals. In synchronous mode, 44624dcbdeSMarkus Pargmann SRCK and SRFS are ignored. Asynchronous mode allows 45624dcbdeSMarkus Pargmann playback and capture to use different sample sizes and 46624dcbdeSMarkus Pargmann sample rates. Some drivers may require that SRCK and STCK 47624dcbdeSMarkus Pargmann be connected together, and SRFS and STFS be connected 48624dcbdeSMarkus Pargmann together. This would still allow different sample sizes, 49624dcbdeSMarkus Pargmann but not different sample rates. 50624dcbdeSMarkus Pargmann 51cd7f0295SMarkus PargmannRequired are also ac97 link bindings if ac97 is used. See 52cd7f0295SMarkus PargmannDocumentation/devicetree/bindings/sound/soc-ac97link.txt for the necessary 53cd7f0295SMarkus Pargmannbindings. 54cd7f0295SMarkus Pargmann 55624dcbdeSMarkus PargmannOptional properties: 56624dcbdeSMarkus Pargmann- codec-handle: Phandle to a 'codec' node that defines an audio 57624dcbdeSMarkus Pargmann codec connected to this SSI. This node is typically 58624dcbdeSMarkus Pargmann a child of an I2C or other control node. 59de623eceSMarkus Pargmann- fsl,fiq-stream-filter: Bool property. Disabled DMA and use FIQ instead to 60de623eceSMarkus Pargmann filter the codec stream. This is necessary for some boards 61de623eceSMarkus Pargmann where an incompatible codec is connected to this SSI, e.g. 62de623eceSMarkus Pargmann on pca100 and pcm043. 633a5e517bSMarkus Pargmann- dmas: Generic dma devicetree binding as described in 643a5e517bSMarkus Pargmann Documentation/devicetree/bindings/dma/dma.txt. 653a5e517bSMarkus Pargmann- dma-names: Two dmas have to be defined, "tx" and "rx", if fsl,imx-fiq 663a5e517bSMarkus Pargmann is not defined. 67624dcbdeSMarkus Pargmann 68624dcbdeSMarkus PargmannChild 'codec' node required properties: 69624dcbdeSMarkus Pargmann- compatible: Compatible list, contains the name of the codec 70624dcbdeSMarkus Pargmann 71624dcbdeSMarkus PargmannChild 'codec' node optional properties: 72624dcbdeSMarkus Pargmann- clock-frequency: The frequency of the input clock, which typically comes 73624dcbdeSMarkus Pargmann from an on-board dedicated oscillator. 74624dcbdeSMarkus Pargmann 75624dcbdeSMarkus PargmannNotes on fsl,playback-dma and fsl,capture-dma: 76624dcbdeSMarkus Pargmann 77624dcbdeSMarkus PargmannOn SOCs that have an SSI, specific DMA channels are hard-wired for playback 78624dcbdeSMarkus Pargmannand capture. On the MPC8610, for example, SSI1 must use DMA channel 0 for 79624dcbdeSMarkus Pargmannplayback and DMA channel 1 for capture. SSI2 must use DMA channel 2 for 80624dcbdeSMarkus Pargmannplayback and DMA channel 3 for capture. The developer can choose which 81624dcbdeSMarkus PargmannDMA controller to use, but the channels themselves are hard-wired. The 82624dcbdeSMarkus Pargmannpurpose of these two properties is to represent this hardware design. 83624dcbdeSMarkus Pargmann 84624dcbdeSMarkus PargmannThe device tree nodes for the DMA channels that are referenced by 85624dcbdeSMarkus Pargmann"fsl,playback-dma" and "fsl,capture-dma" must be marked as compatible with 86624dcbdeSMarkus Pargmann"fsl,ssi-dma-channel". The SOC-specific compatible string (e.g. 87624dcbdeSMarkus Pargmann"fsl,mpc8610-dma-channel") can remain. If these nodes are left as 88624dcbdeSMarkus Pargmann"fsl,elo-dma-channel" or "fsl,eloplus-dma-channel", then the generic Elo DMA 89624dcbdeSMarkus Pargmanndrivers (fsldma) will attempt to use them, and it will conflict with the 90624dcbdeSMarkus Pargmannsound drivers. 91