/linux-6.12.1/sound/soc/sh/ |
D | rz-ssi.c | 27 /* SSI REGISTER BITS */ 85 int fifo_sample_size; /* sample capacity of SSI FIFO */ 97 int (*transfer)(struct rz_ssi_priv *ssi, struct rz_ssi_stream *strm); 117 * The SSI supports full-duplex transmission and reception. 174 static inline bool rz_ssi_stream_is_play(struct rz_ssi_priv *ssi, in rz_ssi_stream_is_play() argument 181 rz_ssi_stream_get(struct rz_ssi_priv *ssi, struct snd_pcm_substream *substream) in rz_ssi_stream_get() argument 183 struct rz_ssi_stream *stream = &ssi->playback; in rz_ssi_stream_get() 186 stream = &ssi->capture; in rz_ssi_stream_get() 191 static inline bool rz_ssi_is_dma_enabled(struct rz_ssi_priv *ssi) in rz_ssi_is_dma_enabled() argument 193 return (ssi->playback.dma_ch && (ssi->dma_rt || ssi->capture.dma_ch)); in rz_ssi_is_dma_enabled() [all …]
|
D | ssi.c | 8 // enable SSI output pins! 12 * The SSI unit has only one physical data line, so full duplex is 14 * other SSI unit for recording; however the SH7780 has only 1 SSI 18 * The SSI features "compressed mode": in this mode it continuously 57 #define CR_MUTE (1 << 3) /* SSI mute */ 60 #define CR_EN (1 << 0) /* enable SSI */ 62 #define SSIREG(reg) (*(unsigned long *)(ssi->mmio + (reg))) 86 * track usage of the SSI; it is simplex-only so prevent attempts of 92 struct ssi_priv *ssi = &ssi_cpu_data[dai->id]; in ssi_startup() local 93 if (ssi->inuse) { in ssi_startup() [all …]
|
D | Makefile | 8 snd-soc-ssi-y := ssi.o 12 obj-$(CONFIG_SND_SOC_SH4_SSI) += snd-soc-ssi.o 27 snd-soc-rz-ssi-y := rz-ssi.o 28 obj-$(CONFIG_SND_SOC_RZ) += snd-soc-rz-ssi.o
|
/linux-6.12.1/drivers/hsi/clients/ |
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 …]
|
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-6.12.1/sound/soc/fsl/ |
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 FIFOs [all …]
|
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 …]
|
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 …]
|
/linux-6.12.1/drivers/hsi/controllers/ |
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 …]
|
D | omap_ssi_port.c | 2 /* OMAP SSI port driver. 51 struct hsi_controller *ssi = to_hsi_controller(port->device.parent); in ssi_port_regs_show() local 52 struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); in ssi_port_regs_show() 187 struct hsi_controller *ssi = to_hsi_controller(port->device.parent); in ssi_claim_lch() local 188 struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); in ssi_claim_lch() 205 struct hsi_controller *ssi = to_hsi_controller(port->device.parent); in ssi_start_dma() local 206 struct omap_ssi_controller *omap_ssi = hsi_controller_drvdata(ssi); in ssi_start_dma() 225 err = dma_map_sg(&ssi->device, msg->sgt.sgl, msg->sgt.nents, in ssi_start_dma() 228 dev_dbg(&ssi->device, "DMA map SG failed !\n"); in ssi_start_dma() 242 err = dma_map_sg(&ssi->device, msg->sgt.sgl, msg->sgt.nents, in ssi_start_dma() [all …]
|
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 …]
|
D | Kconfig | 8 tristate "OMAP SSI hardware driver" 12 SSI is a legacy version of HSI. It is usually used to connect 14 If you say Y here, you will enable the OMAP SSI hardware driver.
|
/linux-6.12.1/sound/soc/sh/rcar/ |
D | ssi.c | 3 // Renesas R-Car SSIU/SSI support 13 * SSI interrupt status debug message when debugging 63 #define EN (1 << 0) /* SSI Module Enable */ 79 #define SSI_NAME "ssi" 103 #define RSND_SSI_NO_BUSIF (1 << 1) /* SSI+DMA without BUSIF */ 109 ((pos) = ((struct rsnd_ssi *)(priv)->ssi + i)); \ 112 #define rsnd_ssi_get(priv, id) ((struct rsnd_ssi *)(priv->ssi) + id) 115 #define rsnd_ssi_is_parent(ssi, io) ((ssi) == rsnd_io_to_mod_ssip(io)) argument 125 struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); in rsnd_ssi_use_busif() local 131 if (!(rsnd_flags_has(ssi, RSND_SSI_NO_BUSIF))) in rsnd_ssi_use_busif() [all …]
|
D | dma.c | 321 struct rsnd_mod *ssi = rsnd_io_to_mod_ssi(io); in rsnd_dmapp_get_id() local 329 if ((mod == ssi) || in rsnd_dmapp_get_id() 497 * SSI : 0xec541000 / 0xec241008 / 0xec24100c 551 /* SSI */ in rsnd_gen2_dma_addr() 553 {{{ RDMA_SSI_O_N(ssi, id), 0 }, in rsnd_gen2_dma_addr() 554 { RDMA_SSIU_O_P(ssi, id, busif), 0 }, in rsnd_gen2_dma_addr() 555 { RDMA_SSIU_O_P(ssi, id, busif), 0 } }, in rsnd_gen2_dma_addr() 557 {{ 0, RDMA_SSI_I_N(ssi, id) }, in rsnd_gen2_dma_addr() 558 { 0, RDMA_SSIU_I_P(ssi, id, busif) }, in rsnd_gen2_dma_addr() 559 { 0, RDMA_SSIU_I_P(ssi, id, busif) } } in rsnd_gen2_dma_addr() [all …]
|
/linux-6.12.1/Documentation/devicetree/bindings/sound/ |
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 …]
|
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 - const: renesas,rz-ssi 46 - const: ssi 62 The second cell specifies the encoded MID/RID values of the SSI port 65 bits[0:9] - Specifies MID/RID value of a SSI channel as below 66 MID/RID value of SSI rx0 = 0x256 67 MID/RID value of SSI tx0 = 0x255 [all …]
|
D | renesas,rsnd.yaml | 107 description: References to SSI/SRC/MIX/CTU/DVC/AUDIO_CLK clocks. 214 rcar_sound,ssi: 215 description: SSI subnode. 218 "^ssi-[0-9]$": 244 description: BUSIF is not used when [mem -> SSI] via DMA case 306 - ssi 326 - ssi 343 - ssi 360 - ssi.0 370 - const: ssi-all [all …]
|
D | renesas,rsnd.txt | 17 SSI : Serial Sound Interface 25 Multi channel is supported by Multi-SSI, or TDM-SSI. 27 Multi-SSI : 6ch case, you can use stereo x 3 SSI 28 TDM-SSI : 6ch case, you can use TDM 185 But you can't use it if SSI was PIO mode. 186 In DMA mode, you can select not to use SSIU by using "no-busif" via SSI. 192 and these sounds will be merged SSIU/SSI. 211 * SSI (Serial Sound Interface) 217 Note: The system will drop non-SSI modules in PIO mode 235 Each SSI can share WS pin. It is based on platform. [all …]
|
/linux-6.12.1/Documentation/devicetree/bindings/hsi/ |
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-6.12.1/Documentation/devicetree/bindings/spi/ |
D | snps,dw-apb-ssi.yaml | 4 $id: http://devicetree.org/schemas/spi/snps,dw-apb-ssi.yaml# 30 - baikal,bt1-sys-ssi 57 - snps,dw-apb-ssi 58 - snps,dwc-ssi-1.01a 64 - const: snps,dw-apb-ssi 68 const: amazon,alpine-dw-apb-ssi 72 - const: snps,dw-apb-ssi 74 const: intel,keembay-ssi 76 const: intel,mountevans-imc-ssi 80 const: baikal,bt1-ssi [all …]
|
/linux-6.12.1/arch/arm/boot/dts/renesas/ |
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 …]
|
D | r8a7794.dtsi | 1026 <0 0xec541000 0 0x280>, /* SSI */ 1028 reg-names = "scu", "adg", "ssiu", "ssi", "audmapp"; 1044 clock-names = "ssi-all", 1045 "ssi.9", "ssi.8", "ssi.7", "ssi.6", 1046 "ssi.5", "ssi.4", "ssi.3", "ssi.2", 1047 "ssi.1", "ssi.0", 1061 reset-names = "ssi-all", 1062 "ssi.9", "ssi.8", "ssi.7", "ssi.6", 1063 "ssi.5", "ssi.4", "ssi.3", "ssi.2", 1064 "ssi.1", "ssi.0"; [all …]
|
D | r8a7793.dtsi | 1059 <0 0xec541000 0 0x280>, /* SSI */ 1061 reg-names = "scu", "adg", "ssiu", "ssi", "audmapp"; 1077 clock-names = "ssi-all", 1078 "ssi.9", "ssi.8", "ssi.7", "ssi.6", 1079 "ssi.5", "ssi.4", "ssi.3", "ssi.2", 1080 "ssi.1", "ssi.0", 1093 reset-names = "ssi-all", 1094 "ssi.9", "ssi.8", "ssi.7", "ssi.6", 1095 "ssi.5", "ssi.4", "ssi.3", "ssi.2", 1096 "ssi.1", "ssi.0"; [all …]
|
/linux-6.12.1/arch/mips/boot/dts/ingenic/ |
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-6.12.1/drivers/spi/ |
D | spi-dw.h | 14 /* Synopsys DW SSI IP-core virtual IDs */ 18 /* Synopsys DW SSI component versions (FourCC sequence) */ 21 /* DW SSI IP-core ID and version check helpers */ 36 /* Register offsets (Generic for both DWC APB SSI and DWC SSI IP-cores) */ 65 /* Bit fields in CTRLR0 (DWC APB SSI) */ 89 /* Bit fields in CTRLR0 (DWC SSI with AHB interface) */ 154 u32 ip; /* Synopsys DW SSI IP-core ID */
|