1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
4 $id: http://devicetree.org/schemas/sound/fsl,ssi.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Freescale Synchronous Serial Interface
10 - Shengjiu Wang <shengjiu.wang@nxp.com>
13 Notes on fsl,playback-dma and fsl,capture-dma
14 On SOCs that have an SSI, specific DMA channels are hard-wired for playback
15 and capture. On the MPC8610, for example, SSI1 must use DMA channel 0 for
16 playback and DMA channel 1 for capture. SSI2 must use DMA channel 2 for
17 playback and DMA channel 3 for capture. The developer can choose which
18 DMA controller to use, but the channels themselves are hard-wired. The
19 purpose of these two properties is to represent this hardware design.
21 The device tree nodes for the DMA channels that are referenced by
22 "fsl,playback-dma" and "fsl,capture-dma" must be marked as compatible with
23 "fsl,ssi-dma-channel". The SOC-specific compatible string (e.g.
24 "fsl,mpc8610-dma-channel") can remain. If these nodes are left as
25 "fsl,elo-dma-channel" or "fsl,eloplus-dma-channel", then the generic Elo DMA
26 drivers (fsldma) will attempt to use them, and it will conflict with the
36 - const: fsl,imx51-ssi
37 - const: fsl,imx21-ssi
44 - const: fsl,imx21-ssi
50 - const: fsl,imx51-ssi
52 - const: fsl,imx21-ssi
54 - const: fsl,mpc8610-ssi
64 - description: The ipg clock for register access
65 - description: clock for SSI master mode
77 - description: DMA controller phandle and request line for RX
78 - description: DMA controller phandle and request line for TX
80 - description: DMA controller phandle and request line for RX0
81 - description: DMA controller phandle and request line for TX0
82 - description: DMA controller phandle and request line for RX1
83 - description: DMA controller phandle and request line for TX1
98 description: optional, some dts node didn't add it.
101 $ref: /schemas/types.yaml#/definitions/uint32
103 description: The SSI index
106 $ref: /schemas/types.yaml#/definitions/phandle-array
107 description: Please refer to soc-ac97link.txt
110 $ref: /schemas/types.yaml#/definitions/phandle
112 Phandle to a 'codec' node that defines an audio
113 codec connected to this SSI. This node is typically
114 a child of an I2C or other control node.
117 $ref: /schemas/types.yaml#/definitions/uint32
119 The number of elements in the transmit and receive FIFOs.
120 This number is the maximum allowed value for SFCSR[TFWM0].
123 fsl,fiq-stream-filter:
126 Disabled DMA and use FIQ instead to filter the codec stream.
127 This is necessary for some boards where an incompatible codec
128 is connected to this SSI, e.g. on pca100 and pcm043.
131 $ref: /schemas/types.yaml#/definitions/string
132 enum: [ ac97-slave, ac97-master, i2s-slave, i2s-master,
133 lj-slave, lj-master, rj-slave, rj-master ]
135 "ac97-slave" - AC97 mode, SSI is clock slave
136 "ac97-master" - AC97 mode, SSI is clock master
137 "i2s-slave" - I2S mode, SSI is clock slave
138 "i2s-master" - I2S mode, SSI is clock master
139 "lj-slave" - Left justified mode, SSI is clock slave
140 "lj-master" - Left justified mode, SSI is clock master
141 "rj-slave" - Right justified mode, SSI is clock slave
142 "rj-master" - Right justified mode, SSI is clock master
144 fsl,ssi-asynchronous:
146 description: If specified, the SSI is to be programmed in asynchronous
147 mode. In this mode, pins SRCK, STCK, SRFS, and STFS must
148 all be connected to valid signals. In synchronous mode,
149 SRCK and SRFS are ignored. Asynchronous mode allows
150 playback and capture to use different sample sizes and
151 sample rates. Some drivers may require that SRCK and STCK
152 be connected together, and SRFS and STFS be connected
153 together. This would still allow different sample sizes,
154 but not different sample rates.
157 $ref: /schemas/types.yaml#/definitions/phandle
158 description: Phandle to a node for the DMA channel to use for
159 playback of audio. This is typically dictated by SOC
160 design. Only used on Power Architecture.
163 $ref: /schemas/types.yaml#/definitions/phandle
164 description: Phandle to a node for the DMA channel to use for
165 capture (recording) of audio. This is typically dictated
166 by SOC design. Only used on Power Architecture.
175 - $ref: dai-common.yaml#
177 unevaluatedProperties: false
181 #include <dt-bindings/interrupt-controller/arm-gic.h>
182 #include <dt-bindings/clock/imx6qdl-clock.h>
184 compatible = "fsl,imx6q-ssi", "fsl,imx51-ssi";
185 reg = <0x02028000 0x4000>;
186 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
187 clocks = <&clks IMX6QDL_CLK_SSI1_IPG>,
188 <&clks IMX6QDL_CLK_SSI1>;
189 clock-names = "ipg", "baud";
190 dmas = <&sdma 37 1 0>, <&sdma 38 1 0>;
191 dma-names = "rx", "tx";
192 #sound-dai-cells = <0>;
193 fsl,fifo-depth = <15>;