/linux/sound/soc/samsung/ |
H A D | spdif.c | 18 #include "spdif.h" 71 * @pclk: The peri-clock pointer for spdif master operation. 105 static void spdif_snd_txctrl(struct samsung_spdif_info *spdif, int on) in spdif_snd_txctrl() argument 107 void __iomem *regs = spdif->regs; in spdif_snd_txctrl() 110 dev_dbg(spdif->dev, "Entered %s\n", __func__); in spdif_snd_txctrl() 122 struct samsung_spdif_info *spdif = to_info(cpu_dai); in spdif_set_sysclk() local 125 dev_dbg(spdif->dev, "Entered %s\n", __func__); in spdif_set_sysclk() 127 clkcon = readl(spdif->regs + CLKCON); in spdif_set_sysclk() 134 writel(clkcon, spdif->regs + CLKCON); in spdif_set_sysclk() 136 spdif->clk_rate = freq; in spdif_set_sysclk() [all …]
|
H A D | smdk_spdif.c | 12 #include "spdif.h" 145 SND_SOC_DAILINK_DEFS(spdif, 146 DAILINK_COMP_ARRAY(COMP_CPU("samsung-spdif")), 147 DAILINK_COMP_ARRAY(COMP_CODEC("spdif-dit", "dit-hifi")), 148 DAILINK_COMP_ARRAY(COMP_PLATFORM("samsung-spdif"))); 154 SND_SOC_DAILINK_REG(spdif), 171 smdk_snd_spdif_dit_device = platform_device_alloc("spdif-dit", -1); in smdk_init()
|
/linux/sound/soc/adi/ |
H A D | axi-spdif.c | 51 struct axi_spdif *spdif = snd_soc_dai_get_drvdata(dai); in axi_spdif_trigger() local 69 regmap_update_bits(spdif->regmap, AXI_SPDIF_REG_CTRL, in axi_spdif_trigger() 78 struct axi_spdif *spdif = snd_soc_dai_get_drvdata(dai); in axi_spdif_hw_params() local 97 clkdiv = DIV_ROUND_CLOSEST(clk_get_rate(spdif->clk_ref), in axi_spdif_hw_params() 101 regmap_write(spdif->regmap, AXI_SPDIF_REG_STAT, stat); in axi_spdif_hw_params() 102 regmap_update_bits(spdif->regmap, AXI_SPDIF_REG_CTRL, in axi_spdif_hw_params() 110 struct axi_spdif *spdif = snd_soc_dai_get_drvdata(dai); in axi_spdif_dai_probe() local 112 snd_soc_dai_init_dma_data(dai, &spdif->dma_data, NULL); in axi_spdif_dai_probe() 120 struct axi_spdif *spdif = snd_soc_dai_get_drvdata(dai); in axi_spdif_startup() local 125 &spdif->rate_constraints); in axi_spdif_startup() [all …]
|
/linux/Documentation/devicetree/bindings/sound/ |
H A D | allwinner,sun4i-a10-spdif.yaml | 4 $id: http://devicetree.org/schemas/sound/allwinner,sun4i-a10-spdif.yaml# 21 - const: allwinner,sun4i-a10-spdif 22 - const: allwinner,sun6i-a31-spdif 23 - const: allwinner,sun8i-h3-spdif 24 - const: allwinner,sun50i-h6-spdif 25 - const: allwinner,sun50i-h616-spdif 27 - const: allwinner,sun8i-a83t-spdif 28 - const: allwinner,sun8i-h3-spdif 30 - const: allwinner,sun50i-a64-spdif 31 - const: allwinner,sun8i-h3-spdif [all …]
|
H A D | img,spdif-in.txt | 1 Imagination Technologies SPDIF Input Controller 5 - compatible : Compatible list, must contain "img,spdif-in" 23 - resets: Should contain a phandle to the spdif in reset signal, if any 28 - interrupts : Contains the spdif in interrupt, if present 32 spdif_in: spdif-in@18100e00 { 33 compatible = "img,spdif-in";
|
H A D | adi,axi-spdif-tx.txt | 1 ADI AXI-SPDIF controller 4 - compatible : Must be "adi,axi-spdif-tx-1.00.a" 5 - reg : Must contain SPDIF core's registers location and length 23 spdif: spdif@77400000 { 24 compatible = "adi,axi-spdif-tx-1.00.a";
|
H A D | amlogic,aiu.yaml | 38 - description: SPDIF peripheral clock 39 - description: SPDIF output clock 40 - description: SPDIF master clock 41 - description: SPDIF master clock multiplexer 58 - description: SPDIF interrupt line 63 - const: spdif 98 interrupt-names = "i2s", "spdif";
|
H A D | img,spdif-out.txt | 1 Imagination Technologies SPDIF Output Controller 5 - compatible : Compatible list, must contain "img,spdif-out" 22 - resets: Contains a phandle to the spdif out reset signal 32 spdif_out: spdif-out@18100d00 { 33 compatible = "img,spdif-out";
|
/linux/sound/pci/ca0106/ |
H A D | ca0106.h | 75 #define IPR_SPDIF_IN_USER 0x00004000 /* SPDIF input user data has 16 more bits */ 76 #define IPR_SPDIF_OUT_USER 0x00002000 /* SPDIF output user data needs 16 more bits */ 77 #define IPR_SPDIF_OUT_FRAME 0x00001000 /* SPDIF frame about to start */ 84 #define IPR_SPDIF_STATUS 0x00000020 /* SPDIF status changed */ 95 #define INTE_SPDIF_IN_USER 0x00004000 /* SPDIF input user data has 16 more bits */ 96 #define INTE_SPDIF_OUT_USER 0x00002000 /* SPDIF output user data needs 16 more bits */ 97 #define INTE_SPDIF_OUT_FRAME 0x00001000 /* SPDIF frame about to start */ 104 #define INTE_SPDIF_STATUS 0x00000020 /* SPDIF status changed */ 117 #define HCFG_CAPTURE_SPDIF_BYPASS 0x04000000 /* 1 = bypass SPDIF input async SRC. */ 136 #define CA0106_GPIO 0x18 /* Defaults: 005f03a3-Analog, 005f02a2-SPDIF. */ [all …]
|
/linux/Documentation/sound/cards/ |
H A D | img-spdif-in.rst | 2 Imagination Technologies SPDIF Input Controllers 5 The Imagination Technologies SPDIF Input controller contains the following 15 This control returns the status bits contained within the SPDIF stream that 19 * name='SPDIF In Multi Frequency Acquire',index=0 20 * name='SPDIF In Multi Frequency Acquire',index=1 21 * name='SPDIF In Multi Frequency Acquire',index=2 22 * name='SPDIF In Multi Frequency Acquire',index=3 25 rates. The active rate can be obtained by reading the 'SPDIF In Lock Frequency' 36 * name='SPDIF In Lock Frequency',index=0 41 * name='SPDIF In Lock TRK',index=0 [all …]
|
H A D | cmipci.rst | 113 The CM8x38 provides the excellent SPDIF capability with very cheap 116 The SPDIF playback and capture are done via the third PCM device 117 (hw:0,2). Usually this is assigned to the PCM device "spdif". 132 The playback and capture over SPDIF use normal DAC and ADC, 136 To enable SPDIF output, you need to turn on "IEC958 Output Switch" 140 The SPDIF input is always enabled, so you can hear SPDIF input data 144 You can play via SPDIF even with the first device (hw:0,0), 145 but SPDIF is enabled only when the proper format (S16LE), sample rate 154 output through SPDIF. This switch appears only on old chip 157 Note: without this control you can output PCM to SPDIF. [all …]
|
/linux/sound/soc/meson/ |
H A D | aiu.c | 22 "SPDIF", "I2S", 30 SOC_DAPM_ENUM("SPDIF Buffer Src", aiu_spdif_encode_sel_enum); 33 SND_SOC_DAPM_MUX("SPDIF SRC SEL", SND_SOC_NOPM, 0, 0, 39 { "SPDIF SRC SEL", "SPDIF", "SPDIF FIFO Playback" }, 40 { "SPDIF SRC SEL", "I2S", "I2S FIFO Playback" }, 41 { "SPDIF Encoder Playback", NULL, "SPDIF SRC SEL" }, 85 /* Required for the SPDIF Source control operation */ in aiu_cpu_component_probe() 126 .name = "SPDIF FIFO", 128 .stream_name = "SPDIF FIFO Playback", 150 .name = "SPDIF Encoder", [all …]
|
H A D | g12a-tohdmitx.c | 86 "SPDIF A", "SPDIF B", 129 SOC_DAPM_ENUM_EXT("SPDIF Source", g12a_tohdmitx_spdif_mux_enum, 142 SND_SOC_DAPM_MUX("SPDIF SRC", SND_SOC_NOPM, 0, 0, 144 SND_SOC_DAPM_SWITCH("SPDIF OUT EN", SND_SOC_NOPM, 0, 0, 201 TOHDMITX_IN("SPDIF IN A", TOHDMITX_SPDIF_IN_A, 203 TOHDMITX_IN("SPDIF IN B", TOHDMITX_SPDIF_IN_B, 205 TOHDMITX_OUT("SPDIF OUT", TOHDMITX_SPDIF_OUT, 222 { "SPDIF SRC", "SPDIF A", "SPDIF IN A Playback" }, 223 { "SPDIF SRC", "SPDIF B", "SPDIF IN B Playback" }, 224 { "SPDIF OUT EN", "Switch", "SPDIF SRC" }, [all …]
|
H A D | aiu-encoder-spdif.c | 144 ret = clk_set_rate(aiu->spdif.clks[MCLK].clk, mrate); in aiu_encoder_spdif_hw_params() 172 * NOTE: Make sure the spdif block is on its own divider. in aiu_encoder_spdif_startup() 174 * The spdif can be clocked by the i2s master clock or its own in aiu_encoder_spdif_startup() 181 * should not be necessary to reparent the spdif master clock. in aiu_encoder_spdif_startup() 183 ret = clk_set_parent(aiu->spdif.clks[MCLK].clk, in aiu_encoder_spdif_startup() 188 ret = clk_bulk_prepare_enable(aiu->spdif.clk_num, aiu->spdif.clks); in aiu_encoder_spdif_startup() 190 dev_err(dai->dev, "failed to enable spdif clocks\n"); in aiu_encoder_spdif_startup() 200 clk_bulk_disable_unprepare(aiu->spdif.clk_num, aiu->spdif.clks); in aiu_encoder_spdif_shutdown()
|
/linux/sound/soc/fsl/ |
H A D | fsl_spdif.h | 18 #define REG_SPDIF_SCR 0x0 /* SPDIF Configuration Register */ 39 #define REG_SPDIF_SRCCA_31_0 0x60 /* SPDIF receive C channel register, bits 31-0 */ 40 #define REG_SPDIF_SRCCA_63_32 0x64 /* SPDIF receive C channel register, bits 63-32 */ 41 #define REG_SPDIF_SRCCA_95_64 0x68 /* SPDIF receive C channel register, bits 95-64 */ 42 #define REG_SPDIF_SRCCA_127_96 0x6C /* SPDIF receive C channel register, bits 127-96 */ 43 #define REG_SPDIF_SRCCA_159_128 0x70 /* SPDIF receive C channel register, bits 159-128 */ 44 #define REG_SPDIF_SRCCA_191_160 0x74 /* SPDIF receive C channel register, bits 191-160 */ 45 #define REG_SPDIF_STCCA_31_0 0x78 /* SPDIF transmit C channel register, bits 31-0 */ 46 #define REG_SPDIF_STCCA_63_32 0x7C /* SPDIF transmit C channel register, bits 63-32 */ 47 #define REG_SPDIF_STCCA_95_64 0x80 /* SPDIF transmit C channel register, bits 95-64 */ [all …]
|
/linux/sound/soc/codecs/ |
H A D | spdif_receiver.c | 3 * ALSA SoC SPDIF DIR (Digital Interface Reciever) driver 5 * Based on ALSA SoC SPDIF DIT driver 9 * in these configurations. SPEAr SPDIF IN Audio controller uses this driver. 24 SND_SOC_DAPM_INPUT("spdif-in"), 28 { "Capture", NULL, "spdif-in" }, 69 { .compatible = "linux,spdif-dir", }, 78 .name = "spdif-dir", 85 MODULE_DESCRIPTION("ASoC SPDIF DIR driver");
|
H A D | spdif_transmitter.c | 3 * ALSA SoC SPDIF DIT driver 22 #define DRV_NAME "spdif-dit" 32 SND_SOC_DAPM_OUTPUT("spdif-out"), 36 { "spdif-out", NULL, "Playback" }, 69 { .compatible = "linux,spdif-dit", }, 86 MODULE_DESCRIPTION("SPDIF dummy codec driver");
|
/linux/sound/soc/img/ |
H A D | Kconfig | 27 tristate "Imagination SPDIF Input Device Driver" 30 Say Y or M if you want to add support for SPDIF input driver for 31 Imagination Technologies SPDIF input device. 34 tristate "Imagination SPDIF Output Device Driver" 37 Say Y or M if you want to add support for SPDIF out driver for 38 Imagination Technologies SPDIF out device.
|
/linux/sound/pci/emu10k1/ |
H A D | p16v.h | 14 /* The sample rate of the SPDIF outputs is set by modifying a register in the EMU10K2 PTR register … 118 * 0 - SPDIF channel. 123 * 5 - SPDIF channel. 144 * [2] 0 = 10K2 audio, 1 = SRCMulti SPDIF mixer output. 158 #define PLAYBACK_VOLUME_MIXER3 0x63 /* SRCMULTI SPDIF Low to mixer input volume control. */ 159 #define PLAYBACK_VOLUME_MIXER4 0x64 /* SRCMULTI SPDIF High to mixer input volume control. */ 162 #define PLAYBACK_VOLUME_MIXER7 0x67 /* P16V Low to SRCMULTI SPDIF mixer input volume control. */ 163 #define PLAYBACK_VOLUME_MIXER8 0x68 /* P16V High to SRCMULTI SPDIF mixer input volume control. */ 182 * [23:16] The corresponding P16V channel to SRCMulti SPDIF enabled. 183 * [31:24] The corresponding E10K2 channel to SRCMulti SPDIF enabled. [all …]
|
/linux/sound/pci/ice1712/ |
H A D | delta.c | 196 snd_cs8403_decode_spdif_bits(&ucontrol->value.iec958, ice->spdif.cs8403_bits); 206 change = ice->spdif.cs8403_bits != val; in delta_spdif_default_put() 207 ice->spdif.cs8403_bits = val; in delta_spdif_default_put() 217 snd_cs8403_decode_spdif_bits(&ucontrol->value.iec958, ice->spdif.cs8403_stream_bits); in delta_spdif_default_put() 227 change = ice->spdif.cs8403_stream_bits != val; in delta_spdif_stream_put() 228 ice->spdif.cs8403_stream_bits = val; in delta_spdif_stream_put() 362 * SPDIF ops for Delta 1010, Dio, 66 in vx442_ak4524_set_rate_val() 368 ice->spdif.cs8403_stream_bits = ice->spdif.cs8403_bits; 378 tmp = ice->spdif in delta_open_spdif() [all...] |
/linux/sound/hda/codecs/hdmi/ |
H A D | nvhdmi-mcp.c | 131 struct hda_spdif_out *spdif; in nvhdmi_8ch_7x_pcm_prepare() local 136 spdif = snd_hda_spdif_out_of_nid(codec, per_cvt->cvt_nid); in nvhdmi_8ch_7x_pcm_prepare() 142 /* turn off SPDIF once; otherwise the IEC958 bits won't be updated */ in nvhdmi_8ch_7x_pcm_prepare() 143 if (codec->spdif_status_reset && (spdif->ctls & AC_DIG1_ENABLE)) in nvhdmi_8ch_7x_pcm_prepare() 148 spdif->ctls & ~AC_DIG1_ENABLE & 0xff); in nvhdmi_8ch_7x_pcm_prepare() 160 if (codec->spdif_status_reset && (spdif->ctls & AC_DIG1_ENABLE)) { in nvhdmi_8ch_7x_pcm_prepare() 165 spdif->ctls & 0xff); in nvhdmi_8ch_7x_pcm_prepare() 178 /* turn off SPDIF once; in nvhdmi_8ch_7x_pcm_prepare() 182 (spdif->ctls & AC_DIG1_ENABLE)) in nvhdmi_8ch_7x_pcm_prepare() 187 spdif in nvhdmi_8ch_7x_pcm_prepare() [all...] |
/linux/drivers/staging/vc04_services/bcm2835-audio/ |
H A D | bcm2835-pcm.c | 85 static int snd_bcm2835_playback_open_generic(struct snd_pcm_substream *substream, int spdif) in snd_bcm2835_playback_open_generic() argument 96 if (spdif && chip->opened) { in snd_bcm2835_playback_open_generic() 99 } else if (!spdif && (chip->opened & (1 << idx))) { in snd_bcm2835_playback_open_generic() 129 if (spdif) { in snd_bcm2835_playback_open_generic() 132 /* clear spdif status, as we are not in spdif mode */ in snd_bcm2835_playback_open_generic() 203 /* notify the vchiq that it should enter spdif passthrough mode by in snd_bcm2835_pcm_prepare() 325 u32 numchannels, bool spdif) in snd_bcm2835_new_pcm() argument 337 if (!spdif) { in snd_bcm2835_new_pcm() 344 spdif ? &snd_bcm2835_playback_spdif_ops : in snd_bcm2835_new_pcm() 350 if (spdif) in snd_bcm2835_new_pcm()
|
/linux/sound/soc/spear/ |
H A D | spdif_in.c | 2 * ALSA SoC SPDIF In Audio Layer for spear processors 175 .name = "spdif-in", 189 dev_err(host->dev, "spdif in: fifo write error"); in spdif_in_irq() 191 dev_err(host->dev, "spdif in: empty fifo read error"); in spdif_in_irq() 193 dev_err(host->dev, "spdif in: fifo full error"); in spdif_in_irq() 195 dev_err(host->dev, "spdif in: out of range error"); in spdif_in_irq() 248 "spdif-in", host); in spdif_in_probe() 266 .name = "spdif-in", 273 MODULE_DESCRIPTION("SPEAr SPDIF IN SoC Interface");
|
H A D | Makefile | 4 snd-soc-spear-spdif-in-y := spdif_in.o 5 snd-soc-spear-spdif-out-y := spdif_out.o 8 obj-$(CONFIG_SND_SPEAR_SPDIF_IN) += snd-soc-spear-spdif-in.o 9 obj-$(CONFIG_SND_SPEAR_SPDIF_OUT) += snd-soc-spear-spdif-out.o
|
/linux/arch/arm/boot/dts/allwinner/ |
H A D | sun5i-gr8.dtsi | 66 spdif: spdif@1c21000 { label 68 compatible = "allwinner,sun4i-a10-spdif"; 72 clock-names = "apb", "spdif"; 116 spdif_tx_pin: spdif-tx-pin { 118 function = "spdif";
|