| /linux/sound/soc/renesas/ |
| H A D | rz-ssi.c | 31 /* 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 D | ssi_protocol.c | 5 * 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 D | Kconfig | 28 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 D | fsl_ssi.c | 3 // 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 D | fsl_ssi.h | 3 * 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 D | p1022_rdk.c | 38 #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 D | fsl_dma.c | 125 * 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 D | p1022_ds.c | 31 #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 D | omap_ssi_core.c | 2 /* 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 D | omap_ssi.h | 2 /* 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 D | omap_ssi_regs.h | 2 /* 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 D | fsl,ssi.yaml | 4 $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 D | renesas,rz-ssi.yaml | 4 $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 D | eukrea-tlv320.txt | 9 - ssi-controller : The phandle of the SSI controller. 23 ssi-controller = <&ssi2>;
|
| H A D | fsl,imx-audio-es8328.yaml | 24 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 D | omap-ssi.txt | 1 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 D | dma.c | 322 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 D | core.c | 3 // 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 D | cu1000-neo.dts | 68 &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 D | r8a7778.dtsi | 256 <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 D | r8a7794.dtsi | 1031 <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 D | r8a7793.dtsi | 1064 <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 D | r8a7745.dtsi | 1191 <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 D | r8a7744.dtsi | 1261 <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 D | r8a7743.dtsi | 1261 <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 …]
|