Home
last modified time | relevance | path

Searched full:ssi (Results 1 – 25 of 161) sorted by relevance

1234567

/linux/sound/soc/renesas/
H A Drz-ssi.c31 /* SSI REGISTER BITS */
91 int fifo_sample_size; /* sample capacity of SSI FIFO */
99 int (*transfer)(struct rz_ssi_priv *ssi, struct rz_ssi_stream *strm);
117 * The SSI supports full-duplex transmission and reception.
174 rz_ssi_stream_get(struct rz_ssi_priv *ssi, struct snd_pcm_substream *substream)
176 return (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ? &ssi->playback : &ssi->capture; in rz_ssi_stream_is_play()
179 static inline bool rz_ssi_is_dma_enabled(struct rz_ssi_priv *ssi)
181 return !ssi->playback.transfer && !ssi argument
186 rz_ssi_is_dma_enabled(struct rz_ssi_priv * ssi) rz_ssi_is_dma_enabled() argument
194 struct rz_ssi_priv *ssi = strm->priv; rz_ssi_set_substream() local
201 rz_ssi_stream_is_valid(struct rz_ssi_priv * ssi,struct rz_ssi_stream * strm) rz_ssi_stream_is_valid() argument
231 rz_ssi_stream_quit(struct rz_ssi_priv * ssi,struct rz_ssi_stream * strm) rz_ssi_stream_quit() argument
245 rz_ssi_clk_setup(struct rz_ssi_priv * ssi,unsigned int rate,unsigned int channels) rz_ssi_clk_setup() argument
321 rz_ssi_set_idle(struct rz_ssi_priv * ssi) rz_ssi_set_idle() argument
345 rz_ssi_start(struct rz_ssi_priv * ssi,struct rz_ssi_stream * strm) rz_ssi_start() argument
406 rz_ssi_swreset(struct rz_ssi_priv * ssi) rz_ssi_swreset() argument
415 rz_ssi_stop(struct rz_ssi_priv * ssi,struct rz_ssi_stream * strm) rz_ssi_stop() argument
467 rz_ssi_pio_recv(struct rz_ssi_priv * ssi,struct rz_ssi_stream * strm) rz_ssi_pio_recv() argument
530 rz_ssi_pio_send(struct rz_ssi_priv * ssi,struct rz_ssi_stream * strm) rz_ssi_pio_send() argument
595 struct rz_ssi_priv *ssi = data; rz_ssi_interrupt() local
682 rz_ssi_dma_slave_config(struct rz_ssi_priv * ssi,struct dma_chan * dma_ch,bool is_play) rz_ssi_dma_slave_config() argument
703 rz_ssi_dma_transfer(struct rz_ssi_priv * ssi,struct rz_ssi_stream * strm) rz_ssi_dma_transfer() argument
775 rz_ssi_release_dma_channels(struct rz_ssi_priv * ssi) rz_ssi_release_dma_channels() argument
790 rz_ssi_dma_request(struct rz_ssi_priv * ssi,struct device * dev) rz_ssi_dma_request() argument
821 rz_ssi_trigger_resume(struct rz_ssi_priv * ssi,struct rz_ssi_stream * strm) rz_ssi_trigger_resume() argument
844 struct rz_ssi_priv *ssi = snd_soc_dai_get_drvdata(dai); rz_ssi_dai_trigger() local
905 struct rz_ssi_priv *ssi = snd_soc_dai_get_drvdata(dai); rz_ssi_dai_set_fmt() local
957 struct rz_ssi_priv *ssi = snd_soc_dai_get_drvdata(dai); rz_ssi_startup() local
970 struct rz_ssi_priv *ssi = snd_soc_dai_get_drvdata(dai); rz_ssi_shutdown() local
978 rz_ssi_is_valid_hw_params(struct rz_ssi_priv * ssi,unsigned int rate,unsigned int channels,unsigned int sample_width,unsigned int sample_bits) rz_ssi_is_valid_hw_params() argument
992 rz_ssi_cache_hw_params(struct rz_ssi_priv * ssi,unsigned int rate,unsigned int channels,unsigned int sample_width,unsigned int sample_bits) rz_ssi_cache_hw_params() argument
1007 struct rz_ssi_priv *ssi = snd_soc_dai_get_drvdata(dai); rz_ssi_dai_hw_params() local
1082 struct rz_ssi_priv *ssi = snd_soc_dai_get_drvdata(dai); rz_ssi_pcm_pointer() local
1127 struct rz_ssi_priv *ssi; rz_ssi_probe() local
1268 struct rz_ssi_priv *ssi = dev_get_drvdata(&pdev->dev); rz_ssi_remove() local
1283 struct rz_ssi_priv *ssi = dev_get_drvdata(dev); rz_ssi_runtime_suspend() local
1290 struct rz_ssi_priv *ssi = dev_get_drvdata(dev); rz_ssi_runtime_resume() local
[all...]
/linux/drivers/hsi/clients/
H A Dssi_protocol.c5 * Implementation of the SSI McSAAB improved protocol.
45 * SSI protocol command definitions
101 * struct ssi_protocol - SSI protocol (McSAAB) data
111 * @keep_alive: Workaround for SSI HW bug
146 /* List of ssi protocol instances */
199 static struct hsi_msg *ssip_alloc_data(struct ssi_protocol *ssi, in ssip_alloc_data() argument
209 msg->channel = ssi->channel_id_data; in ssip_alloc_data()
217 struct ssi_protocol *ssi = hsi_client_drvdata(msg->cl); in ssip_release_cmd() local
220 spin_lock_bh(&ssi->lock); in ssip_release_cmd()
221 list_add_tail(&msg->link, &ssi->cmdqueue); in ssip_release_cmd()
[all …]
H A DKconfig28 tristate "SSI protocol"
31 If you say Y here, you will enable the SSI protocol aka McSAAB.
36 tristate "HSI/SSI character driver"
39 If you say Y here, you will enable the HSI/SSI character driver.
41 serial communication with the cellular modem over HSI/SSI bus.
/linux/sound/soc/fsl/
H A Dfsl_ssi.c3 // Freescale SSI ALSA SoC Digital Audio Interface (DAI) driver
11 // The i.MX SSI core has some nasty limitations in AC97 mode. While most
55 /* Define RX and TX to index ssi->regvals array; Can be 0 or 1 only */
60 * FSLSSI_I2S_FORMATS: audio formats supported by the SSI
62 * The SSI has a limitation in that the samples must be in the same byte
91 * - SSI inputs external bit clock and outputs frame sync clock -- CBM_CFS
201 bool imx21regs; /* imx21-class SSI - no SACC{ST,EN,DIS} regs */
207 * struct fsl_ssi - per-SSI private data
209 * @irq: IRQ of this SSI
220 * @fifo_depth: Depth of the SSI FIFO
352 fsl_ssi_is_ac97(struct fsl_ssi * ssi) fsl_ssi_is_ac97() argument
358 fsl_ssi_is_i2s_clock_provider(struct fsl_ssi * ssi) fsl_ssi_is_i2s_clock_provider() argument
364 fsl_ssi_is_i2s_bc_fp(struct fsl_ssi * ssi) fsl_ssi_is_i2s_bc_fp() argument
377 struct fsl_ssi *ssi = dev_id; fsl_ssi_isr() local
404 fsl_ssi_config_enable(struct fsl_ssi * ssi,bool tx) fsl_ssi_config_enable() argument
507 fsl_ssi_config_disable(struct fsl_ssi * ssi,bool tx) fsl_ssi_config_disable() argument
568 fsl_ssi_tx_ac97_saccst_setup(struct fsl_ssi * ssi) fsl_ssi_tx_ac97_saccst_setup() argument
586 fsl_ssi_setup_regvals(struct fsl_ssi * ssi) fsl_ssi_setup_regvals() argument
615 fsl_ssi_setup_ac97(struct fsl_ssi * ssi) fsl_ssi_setup_ac97() argument
638 struct fsl_ssi *ssi = snd_soc_dai_get_drvdata(snd_soc_rtd_to_cpu(rtd, 0)); fsl_ssi_startup() local
662 struct fsl_ssi *ssi = snd_soc_dai_get_drvdata(snd_soc_rtd_to_cpu(rtd, 0)); fsl_ssi_shutdown() local
684 struct fsl_ssi *ssi = snd_soc_dai_get_drvdata(dai); fsl_ssi_set_bclk() local
809 struct fsl_ssi *ssi = snd_soc_dai_get_drvdata(dai); fsl_ssi_hw_params() local
894 struct fsl_ssi *ssi = snd_soc_dai_get_drvdata(snd_soc_rtd_to_cpu(rtd, 0)); fsl_ssi_hw_free() local
905 _fsl_ssi_set_dai_fmt(struct fsl_ssi * ssi,unsigned int fmt) _fsl_ssi_set_dai_fmt() argument
1040 struct fsl_ssi *ssi = snd_soc_dai_get_drvdata(dai); fsl_ssi_set_dai_fmt() local
1060 struct fsl_ssi *ssi = snd_soc_dai_get_drvdata(dai); fsl_ssi_set_dai_tdm_slot() local
1111 struct fsl_ssi *ssi = snd_soc_dai_get_drvdata(snd_soc_rtd_to_cpu(rtd, 0)); fsl_ssi_trigger() local
1145 struct fsl_ssi *ssi = snd_soc_dai_get_drvdata(dai); fsl_ssi_dai_probe() local
1289 fsl_ssi_hw_init(struct fsl_ssi * ssi) fsl_ssi_hw_init() argument
1319 fsl_ssi_hw_clean(struct fsl_ssi * ssi) fsl_ssi_hw_clean() argument
1347 fsl_ssi_imx_probe(struct platform_device * pdev,struct fsl_ssi * ssi,void __iomem * iomem) fsl_ssi_imx_probe() argument
1419 fsl_ssi_imx_clean(struct platform_device * pdev,struct fsl_ssi * ssi) fsl_ssi_imx_clean() argument
1427 fsl_ssi_probe_from_dt(struct fsl_ssi * ssi) fsl_ssi_probe_from_dt() argument
1511 struct fsl_ssi *ssi; fsl_ssi_probe() local
1677 struct fsl_ssi *ssi = dev_get_drvdata(&pdev->dev); fsl_ssi_remove() local
1698 struct fsl_ssi *ssi = dev_get_drvdata(dev); fsl_ssi_suspend() local
1712 struct fsl_ssi *ssi = dev_get_drvdata(dev); fsl_ssi_resume() local
[all...]
H A Dfsl_ssi.h3 * fsl_ssi.h - ALSA SSI interface for the Freescale MPC8610 and i.MX SoC
13 /* -- SSI Register Map -- */
15 /* SSI Transmit Data Register 0 */
17 /* SSI Transmit Data Register 1 */
19 /* SSI Receive Data Register 0 */
21 /* SSI Receive Data Register 1 */
23 /* SSI Control Register */
25 /* SSI Interrupt Status Register */
27 /* SSI Interrupt Enable Register */
29 /* SSI Transmit Configuration Register */
[all …]
H A Dp1022_rdk.c38 #define CCSR_GUTS_DMUXCR_SSI 2 /* DMA controller/channel set to SSI */
104 /* Enable SSI Tx signal */ in p1022_rdk_machine_probe()
108 /* Enable SSI Rx signal */ in p1022_rdk_machine_probe()
112 /* Enable DMA Channel for SSI */ in p1022_rdk_machine_probe()
165 * This function is called to remove the sound device for one SSI. We
204 * Although this is a machine driver, the SSI node is the "master" node with
206 * device for each new SSI node that has a codec attached.
213 /* ssi_pdev is the platform device for the SSI node that probed us */ in p1022_rdk_probe()
222 /* Find the codec node for this SSI. */ in p1022_rdk_probe()
264 * We register two DAIs per SSI, one for playback and the other for in p1022_rdk_probe()
[all …]
H A Dfsl_dma.c125 * limitation in the SSI driver requires the sample rates for playback and
452 * because the SSI is controlling the DMA controller. We want the DMA in fsl_dma_open()
453 * controller to be set up in advance, and then we signal only the SSI in fsl_dma_open()
517 /* Bus address of SSI STX register */ in fsl_dma_hw_params()
550 /* Due to a quirk of the SSI's STX register, the target address in fsl_dma_hw_params()
575 * controller checks the SSI to see if it needs to stop. BWC should in fsl_dma_hw_params()
587 * f = SSI FIFO depth in fsl_dma_hw_params()
588 * w = SSI watermark value (which equals f - 2) in fsl_dma_hw_params()
616 * device (the SSI's STX0 or SRX0 register). Snooping is only in fsl_dma_hw_params()
695 * When capture is started, the SSI immediatel in fsl_dma_pointer()
[all...]
H A Dp1022_ds.c31 #define CCSR_GUTS_DMUXCR_SSI 2 /* DMA controller/channel set to SSI */
95 /* Enable SSI Tx signal */ in p1022_ds_machine_probe()
99 /* Enable SSI Rx signal */ in p1022_ds_machine_probe()
103 /* Enable DMA Channel for SSI */ in p1022_ds_machine_probe()
154 * This function is called to remove the sound device for one SSI. We
190 * Although this is a machine driver, the SSI node is the "master" node with
192 * device for each new SSI node that has a codec attached.
197 /* ssi_pdev is the platform device for the SSI node that probed us */ in p1022_ds_probe()
207 /* Find the codec node for this SSI. */ in p1022_ds_probe()
249 /* We register two DAIs per SSI, one for playback and the other for in p1022_ds_probe()
/linux/drivers/hsi/controllers/
H A Domap_ssi_core.c2 /* OMAP SSI driver.
42 struct hsi_controller *ssi = m->private; in ssi_regs_show() local
43 struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); in ssi_regs_show()
46 pm_runtime_get_sync(ssi->device.parent); in ssi_regs_show()
50 pm_runtime_put(ssi->device.parent); in ssi_regs_show()
57 struct hsi_controller *ssi = m->private; in ssi_gdd_regs_show() local
58 struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); in ssi_gdd_regs_show()
63 pm_runtime_get_sync(ssi->device.parent); in ssi_gdd_regs_show()
104 pm_runtime_put(ssi->device.parent); in ssi_gdd_regs_show()
112 static int ssi_debug_add_ctrl(struct hsi_controller *ssi) in ssi_debug_add_ctrl() argument
[all …]
H A Domap_ssi.h2 /* OMAP SSI internal interface.
50 * struct omap_ssi_port - OMAP SSI port data
53 * @sst_dma: SSI transmitter physical base address
54 * @ssr_dma: SSI receiver physical base address
55 * @sst_base: SSI transmitter base address
56 * @ssr_base: SSI receiver base address
58 * @lock: Spin lock to serialize access to the SSI port
97 /* OMAP SSI port context */
119 * struct omap_ssi_controller - OMAP SSI controller data
121 * @sys: SSI I/O base address
[all …]
H A Domap_ssi_regs.h2 /* Hardware definitions for SSI.
13 * SSI SYS registers
48 * SSI SST registers
75 * SSI SSR registers
95 * SSI GDD registers
/linux/Documentation/devicetree/bindings/sound/
H A Dfsl,ssi.yaml4 $id: http://devicetree.org/schemas/sound/fsl,ssi.yaml#
14 On SOCs that have an SSI, specific DMA channels are hard-wired for playback
23 "fsl,ssi-dma-channel". The SOC-specific compatible string (e.g.
34 - fsl,imx50-ssi
35 - fsl,imx53-ssi
36 - const: fsl,imx51-ssi
37 - const: fsl,imx21-ssi
40 - fsl,imx25-ssi
41 - fsl,imx27-ssi
42 - fsl,imx35-ssi
[all …]
H A Drenesas,rz-ssi.yaml4 $id: http://devicetree.org/schemas/sound/renesas,rz-ssi.yaml#
19 - renesas,r9a07g043-ssi # RZ/G2UL and RZ/Five
20 - renesas,r9a07g044-ssi # RZ/G2{L,LC}
21 - renesas,r9a07g054-ssi # RZ/V2L
22 - renesas,r9a08g045-ssi # RZ/G3S
23 - renesas,r9a08g046-ssi # RZ/G3L
24 - const: renesas,rz-ssi
48 - const: ssi
95 ssi0: ssi@10049c00 {
96 compatible = "renesas,r9a07g044-ssi",
[all …]
H A Deukrea-tlv320.txt9 - ssi-controller : The phandle of the SSI controller.
23 ssi-controller = <&ssi2>;
H A Dfsl,imx-audio-es8328.yaml24 ssi-controller:
26 description: The phandle of the i.MX SSI controller
81 - ssi-controller
96 ssi-controller = <&ssi1>;
/linux/Documentation/devicetree/bindings/hsi/
H A Domap-ssi.txt1 OMAP SSI controller bindings
3 OMAP3's Synchronous Serial Interface (SSI) controller implements a
9 - compatible: Should include "ti,omap3-ssi" or "ti,omap4-hsi"
27 Each port is represented as a sub-node of the ti,omap3-ssi device.
31 ti,omap3-ssi-port (applicable to OMAP34xx devices)
38 - ti,ssi-cawake-gpio: Defines which GPIO pin is used to signify CAWAKE
49 ssi-controller@48058000 {
50 compatible = "ti,omap3-ssi";
53 ti,hwmods = "ssi";
74 ssi-port@4805a000 {
[all …]
/linux/sound/soc/renesas/rcar/
H A Ddma.c322 struct rsnd_mod *ssi = rsnd_io_to_mod_ssi(io); in rsnd_dmapp_get_id()
330 if ((mod == ssi) || in rsnd_dmapp_get_id()
496 struct rsnd_dma_addr_dir ssi;
522 /* use SSIU or SSI? */ in rsnd_gen2_dma_addr()
534 dir = &map->ssi; in rsnd_gen2_dma_addr()
561 * SSI : 0xec541000 / 0xec241008 / 0xec24100c in rsnd_gen2_dma_addr()
608 .ssi = { in rsnd_gen4_dma_addr()
610 { RDMA_SSI_O_N(ssi, id), 0 }, in rsnd_gen4_dma_addr()
611 { RDMA_SSIU_O_P(ssi, id, busif), 0 }, in rsnd_gen4_dma_addr()
612 { RDMA_SSIU_O_P(ssi, i in rsnd_gen4_dma_addr()
319 struct rsnd_mod *ssi = rsnd_io_to_mod_ssi(io); rsnd_dmapp_get_id() local
650 struct rsnd_mod *ssi; rsnd_dma_of_path() local
[all...]
H A Dcore.c3 // Renesas R-Car SRU/SCU/SSIU/SSI support
22 * - SSI : Serial Sound Interface
33 * - SSI : Serial Sound Interface
49 * | | sru ssiu ssi
52 * | | sru ssiu ssi
56 * | | sru ssiu ssi
59 * | | sru ssiu ssi
63 * | ** these control ssi
65 * +- ssi
67 * | +- ssi[
[all...]
/linux/arch/mips/boot/dts/ingenic/
H A Dcu1000-neo.dts68 &ssi {
192 pins_ssi: ssi {
193 function = "ssi";
194 groups = "ssi-dt-d", "ssi-dr-d", "ssi-clk-d", "ssi-ce0-d";
/linux/arch/arm/boot/dts/renesas/
H A Dr8a7778.dtsi256 <0xffd91000 0x240>, /* SSI */
258 reg-names = "sru", "ssi", "adg";
280 clock-names = "ssi.8", "ssi.7", "ssi.6", "ssi.5", "ssi.4",
281 "ssi.3", "ssi.2", "ssi.1", "ssi.0",
298 rcar_sound,ssi {
299 ssi3: ssi-3 { interrupts = <GIC_SPI 0x85 IRQ_TYPE_LEVEL_HIGH>; };
300 ssi4: ssi-4 { interrupts = <GIC_SPI 0x85 IRQ_TYPE_LEVEL_HIGH>; };
301 ssi5: ssi-5 { interrupts = <GIC_SPI 0x86 IRQ_TYPE_LEVEL_HIGH>; };
302 ssi6: ssi-6 { interrupts = <GIC_SPI 0x86 IRQ_TYPE_LEVEL_HIGH>; };
303 ssi7: ssi-7 { interrupts = <GIC_SPI 0x86 IRQ_TYPE_LEVEL_HIGH>; };
[all …]
H A Dr8a7794.dtsi1031 <0 0xec541000 0 0x280>, /* SSI */
1033 reg-names = "scu", "adg", "ssiu", "ssi", "audmapp";
1049 clock-names = "ssi-all",
1050 "ssi.9", "ssi.8", "ssi.7", "ssi.6",
1051 "ssi.5", "ssi.4", "ssi.3", "ssi.2",
1052 "ssi.1", "ssi.0",
1066 reset-names = "ssi-all",
1067 "ssi.9", "ssi.8", "ssi.7", "ssi.6",
1068 "ssi.5", "ssi.4", "ssi.3", "ssi.2",
1069 "ssi.1", "ssi.0";
[all …]
H A Dr8a7793.dtsi1064 <0 0xec541000 0 0x280>, /* SSI */
1066 reg-names = "scu", "adg", "ssiu", "ssi", "audmapp";
1082 clock-names = "ssi-all",
1083 "ssi.9", "ssi.8", "ssi.7", "ssi.6",
1084 "ssi.5", "ssi.4", "ssi.3", "ssi.2",
1085 "ssi.1", "ssi.0",
1098 reset-names = "ssi-all",
1099 "ssi.9", "ssi.8", "ssi.7", "ssi.6",
1100 "ssi.5", "ssi.4", "ssi.3", "ssi.2",
1101 "ssi.1", "ssi.0";
[all …]
H A Dr8a7745.dtsi1191 <0 0xec541000 0 0x280>, /* SSI */
1193 reg-names = "scu", "adg", "ssiu", "ssi", "audmapp";
1209 clock-names = "ssi-all",
1210 "ssi.9", "ssi.8", "ssi.7", "ssi.6",
1211 "ssi.5", "ssi.4", "ssi.3", "ssi.2",
1212 "ssi.1", "ssi.0",
1225 reset-names = "ssi-all",
1226 "ssi.9", "ssi.8", "ssi.7", "ssi.6",
1227 "ssi.5", "ssi.4", "ssi.3", "ssi.2",
1228 "ssi.1", "ssi.0";
[all …]
H A Dr8a7744.dtsi1261 <0 0xec541000 0 0x280>, /* SSI */
1263 reg-names = "scu", "adg", "ssiu", "ssi", "audmapp";
1281 clock-names = "ssi-all",
1282 "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5",
1283 "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0",
1295 reset-names = "ssi-all",
1296 "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5",
1297 "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0";
1380 rcar_sound,ssi {
1381 ssi0: ssi-0 {
[all …]
H A Dr8a7743.dtsi1261 <0 0xec541000 0 0x280>, /* SSI */
1263 reg-names = "scu", "adg", "ssiu", "ssi", "audmapp";
1281 clock-names = "ssi-all",
1282 "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5",
1283 "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0",
1295 reset-names = "ssi-all",
1296 "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5",
1297 "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0";
1380 rcar_sound,ssi {
1381 ssi0: ssi-0 {
[all …]

1234567