/openbmc/linux/Documentation/devicetree/bindings/sound/ |
H A D | renesas,idt821034.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Herve Codina <herve.codina@bootlin.com> 13 The IDT821034 codec is a four channel PCM codec with onchip filters and 16 The time-slots used by the codec must be set and so, the properties 17 'dai-tdm-slot-num', 'dai-tdm-slot-width', 'dai-tdm-slot-tx-mask' and 18 'dai-tdm-slot-rx-mask' must be present in the ALSA sound card node for 19 sub-nodes that involve the codec. The codec uses one 8bit time-slot per 21 'dai-tdm-tdm-slot-with' must be set to 8. [all …]
|
H A D | infineon,peb2466.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Herve Codina <herve.codina@bootlin.com> 13 The Infineon PEB2466 codec is a programmable DSP-based four channels codec 14 with filters capabilities. 16 The time-slots used by the codec must be set and so, the properties 17 'dai-tdm-slot-num', 'dai-tdm-slot-width', 'dai-tdm-slot-tx-mask' and 18 'dai-tdm-slot-rx-mask' must be present in the sound card node for sub-nodes 19 that involve the codec. The codec uses one 8bit time-slot per channel. [all …]
|
H A D | amlogic,axg-sound-card.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/sound/amlogic,axg-sound-card.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Jerome Brunet <jbrunet@baylibre.com> 13 - $ref: sound-card-common.yaml# 17 const: amlogic,axg-sound-card 19 audio-aux-devs: 20 $ref: /schemas/types.yaml#/definitions/phandle-array 23 audio-widgets: [all …]
|
H A D | qcom,q6dsp-lpass-ports.yaml | 1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/sound/qcom,q6dsp-lpass-ports.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Srinivas Kandagatla <srinivas.kandagatla@linaro.org> 18 - qcom,q6afe-dais 20 '#sound-dai-cells': 23 '#address-cells': 26 '#size-cells': 31 '^dai@[0-9]+$': [all …]
|
H A D | st,sti-asoc-card.txt | 3 The sti ASoC Sound Card can be used, for all sti SoCs using internal sti-sas 8 Documentation/devicetree/bindings/sound/simple-card.yaml. 10 1) sti-uniperiph-dai: audio dai device. 11 --------------------------------------- 14 - compatible: "st,stih407-uni-player-hdmi", "st,stih407-uni-player-pcm-out", 15 "st,stih407-uni-player-dac", "st,stih407-uni-player-spdif", 16 "st,stih407-uni-reader-pcm_in", "st,stih407-uni-reader-hdmi", 18 - st,syscfg: phandle to boot-device system configuration registers 20 - clock-names: name of the clocks listed in clocks property in the same order 22 - reg: CPU DAI IP Base address and size entries, listed in same [all …]
|
H A D | simple-card.yaml | 1 # SPDX-License-Identifier: GPL-2.0 3 --- 4 $id: http://devicetree.org/schemas/sound/simple-card.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> 14 frame-master: 15 description: Indicates dai-link frame master. 18 bitclock-master: 19 description: Indicates dai-link bit clock master 22 frame-inversion: [all …]
|
/openbmc/linux/arch/arm64/boot/dts/amlogic/ |
H A D | meson-g12b-bananapi-cm4-cm4io.dts | 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 6 /dts-v1/; 8 #include "meson-g12b-bananapi-cm4.dtsi" 9 #include <dt-bindings/input/input.h> 10 #include <dt-bindings/leds/common.h> 11 #include <dt-bindings/sound/meson-g12a-tohdmitx.h> 14 compatible = "bananapi,bpi-cm4io", "bananapi,bpi-cm4", "amlogic,a311d", "amlogic,g12b"; 15 model = "BananaPi BPI-CM4IO Baseboard with BPI-CM4 Module"; 23 adc-keys { 24 compatible = "adc-keys"; [all …]
|
/openbmc/linux/sound/soc/qcom/qdsp6/ |
H A D | q6afe-dai.c | 1 // SPDX-License-Identifier: GPL-2.0 2 // Copyright (c) 2011-2017, The Linux Foundation. All rights reserved. 14 #include "q6dsp-lpass-ports.h" 15 #include "q6dsp-common.h" 38 struct snd_soc_dai *dai) in q6slim_hw_params() argument 41 struct q6afe_dai_data *dai_data = dev_get_drvdata(dai->dev); in q6slim_hw_params() 42 struct q6afe_slim_cfg *slim = &dai_data->port_config[dai->id].slim; in q6slim_hw_params() 44 slim->sample_rate = params_rate(params); in q6slim_hw_params() 49 slim->bit_width = 16; in q6slim_hw_params() 52 slim->bit_width = 24; in q6slim_hw_params() [all …]
|
/openbmc/linux/sound/soc/ |
H A D | soc-utils.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 // soc-util.c -- ALSA SoC Audio Layer utility functions 57 * snd_soc_tdm_params_to_bclk - calculate bclk from params and tdm slot info. 59 * Calculate the bclk from the params sample rate, the tdm slot count and the 60 * tdm slot width. Optionally round-up the slot count to a given multiple. 63 * If tdm_width == 0: use params_width() as the slot width. 64 * If tdm_slots == 0: use params_channels() as the slot count. 66 * If slot_multiple > 1 the slot count (or params_channels() if tdm_slots == 0) 75 * @tdm_width: Width in bits of the tdm slots. Must be >= 0. 76 * @tdm_slots: Number of tdm slots per frame. Must be >= 0. [all …]
|
H A D | soc-dai.c | 1 // SPDX-License-Identifier: GPL-2.0 3 // soc-dai.c 10 #include <sound/soc-dai.h> 11 #include <sound/soc-link.h> 13 #define soc_dai_ret(dai, ret) _soc_dai_ret(dai, __func__, ret) argument 14 static inline int _soc_dai_ret(struct snd_soc_dai *dai, in _soc_dai_ret() argument 23 case -EPROBE_DEFER: in _soc_dai_ret() 24 case -ENOTSUPP: in _soc_dai_ret() 27 dev_err(dai->dev, in _soc_dai_ret() 29 func, dai->name, ret); in _soc_dai_ret() [all …]
|
/openbmc/linux/sound/soc/meson/ |
H A D | axg-tdm-interface.c | 1 // SPDX-License-Identifier: (GPL-2.0 OR MIT) 11 #include <sound/soc-dai.h> 13 #include "axg-tdm.h" 38 int axg_tdm_set_tdm_slots(struct snd_soc_dai *dai, u32 *tx_mask, in axg_tdm_set_tdm_slots() argument 42 struct axg_tdm_iface *iface = snd_soc_dai_get_drvdata(dai); in axg_tdm_set_tdm_slots() 43 struct axg_tdm_stream *tx = snd_soc_dai_dma_data_get_playback(dai); in axg_tdm_set_tdm_slots() 44 struct axg_tdm_stream *rx = snd_soc_dai_dma_data_get_capture(dai); in axg_tdm_set_tdm_slots() 51 /* We should at least have a slot for a valid interface */ in axg_tdm_set_tdm_slots() 53 dev_err(dai->dev, "interface has no slot\n"); in axg_tdm_set_tdm_slots() 54 return -EINVAL; in axg_tdm_set_tdm_slots() [all …]
|
/openbmc/linux/arch/arm/boot/dts/st/ |
H A D | stm32mp15xx-dhcom-pdk2.dtsi | 1 // SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause 3 * Copyright (C) 2019-2020 Marek Vasut <marex@denx.de> 6 #include <dt-bindings/input/input.h> 7 #include <dt-bindings/pwm/pwm.h> 10 clk_ext_audio_codec: clock-codec { 11 compatible = "fixed-clock"; 12 #clock-cells = <0>; 13 clock-frequency = <24000000>; 16 display_bl: display-bl { 17 compatible = "pwm-backlight"; [all …]
|
/openbmc/linux/sound/soc/fsl/ |
H A D | imx-card.c | 1 // SPDX-License-Identifier: GPL-2.0+ 2 // Copyright 2017-2021 NXP 15 #include <sound/soc-dapm.h> 46 * Mapping TDM mode and frame width 55 * struct imx_card_plat_data - specific info for codecs 58 * @tdm_fs_mul: ratio of mclk/fs for tdm mode 60 * @support_tdm_rates: supported sample rate for tdm mode 62 * @support_tdm_channels: supported channels for tdm mode 89 * struct dai_link_data - specific info for dai link 91 * @slots: slot number [all …]
|
/openbmc/linux/sound/soc/codecs/ |
H A D | tas5720.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * tas5720.c - ALSA SoC Texas Instruments TAS5720 Mono Audio Amplifier 5 * Copyright (C)2015-2016 Texas Instruments Incorporated - https://www.ti.com 22 #include <sound/soc-dapm.h> 37 "dvdd", /* Digital power supply. Connect to 3.3-V supply. */ 38 "pvdd", /* Class-D amp and analog power supply (connected). */ 55 struct snd_soc_dai *dai) in tas5720_hw_params() argument 57 struct snd_soc_component *component = dai->component; in tas5720_hw_params() 72 dev_err(component->dev, "unsupported sample rate: %u\n", rate); in tas5720_hw_params() 73 return -EINVAL; in tas5720_hw_params() [all …]
|
H A D | ssm3515.c | 1 // SPDX-License-Identifier: GPL-2.0-only OR MIT 101 // The specced range is -71.25...24.00 dB with step size of 0.375 dB, 102 // and a mute item below that. This is represented by -71.62...24.00 dB 103 // with the mute item mapped onto the low end. 104 static DECLARE_TLV_DB_MINMAX_MUTE(ssm3515_dac_volume, -7162, 2400); 141 dev_err(component->dev, "device reports:%s%s%s%s%s%s%s\n", in ssm3515_read_faults() 145 FIELD_GET(SSM3515_STATUS_AMP_OC, ret) ? " amp over-current fault" : "", in ssm3515_read_faults() 161 /* Disable the 'master power-down' */ in ssm3515_probe() 170 static int ssm3515_mute(struct snd_soc_dai *dai, int mute, int direction) in ssm3515_mute() argument 174 ret = snd_soc_component_update_bits(dai->component, in ssm3515_mute() [all …]
|
H A D | tas6424.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * ALSA SoC Texas Instruments TAS6424 Quad-Channel Audio Amplifier 5 * Copyright (C) 2016-2017 Texas Instruments Incorporated - https://www.ti.com/ 23 #include <sound/soc-dapm.h> 32 "dvdd", /* Digital power supply. Connect to 3.3-V supply. */ 34 "pvdd", /* Class-D amp output FETs supply. */ 52 * DAC digital volumes. From -103.5 to 24 dB in 0.5 dB steps. Note that 53 * setting the gain below -100 dB (register value <0x7) is effectively a MUTE 56 static DECLARE_TLV_DB_SCALE(dac_tlv, -10350, 50, 0); 74 struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm); in tas6424_dac_event() [all …]
|
H A D | adau7118.c | 1 // SPDX-License-Identifier: GPL-2.0 3 // Analog Devices ADAU7118 8 channel PDM-to-I2S/TDM Converter driver 123 static int adau7118_set_channel_map(struct snd_soc_dai *dai, in adau7118_set_channel_map() argument 128 snd_soc_component_get_drvdata(dai->component); in adau7118_set_channel_map() 131 dev_dbg(st->dev, "Set channel map, %d", tx_num); in adau7118_set_channel_map() 134 ret = snd_soc_component_update_bits(dai->component, in adau7118_set_channel_map() 145 static int adau7118_set_fmt(struct snd_soc_dai *dai, unsigned int fmt) in adau7118_set_fmt() argument 148 snd_soc_component_get_drvdata(dai->component); in adau7118_set_fmt() 152 dev_dbg(st->dev, "Set format, fmt:%d\n", fmt); in adau7118_set_fmt() 156 ret = snd_soc_component_update_bits(dai->component, in adau7118_set_fmt() [all …]
|
/openbmc/linux/sound/soc/sh/ |
H A D | ssi.c | 1 // SPDX-License-Identifier: GPL-2.0 15 * unit, and its pins are shared with the AC97 unit, among others. 23 * useful to support TDM mode codecs like the AD1939 which have a 24 * fixed TDM slot size, regardless of sample resolution. 62 #define SSIREG(reg) (*(unsigned long *)(ssi->mmio + (reg))) 86 * track usage of the SSI; it is simplex-only so prevent attempts of 90 struct snd_soc_dai *dai) in ssi_startup() argument 92 struct ssi_priv *ssi = &ssi_cpu_data[dai->id]; in ssi_startup() 93 if (ssi->inuse) { in ssi_startup() 95 return -EBUSY; in ssi_startup() [all …]
|
/openbmc/linux/sound/soc/sti/ |
H A D | uniperif_reader.c | 1 // SPDX-License-Identifier: GPL-2.0-only 12 #define UNIPERIF_READER_I2S_IN 0 /* reader id connected to I2S/TDM TX bus */ 41 * stream lock to avoid race condition with trigger callback. 49 spin_lock(&reader->irq_lock); in uni_reader_irq_handler() 50 if (!reader->substream) in uni_reader_irq_handler() 53 snd_pcm_stream_lock(reader->substream); in uni_reader_irq_handler() 54 if (reader->state == UNIPERIF_STATE_STOPPED) { in uni_reader_irq_handler() 56 dev_warn(reader->dev, "unexpected IRQ\n"); in uni_reader_irq_handler() 66 dev_err(reader->dev, "FIFO error detected\n"); in uni_reader_irq_handler() 68 snd_pcm_stop(reader->substream, SNDRV_PCM_STATE_XRUN); in uni_reader_irq_handler() [all …]
|
H A D | uniperif_player.c | 1 // SPDX-License-Identifier: GPL-2.0-only 17 * Some hardware-related definitions 27 #define UNIPERIF_PLAYER_CLK_ADJ_MIN -999999 29 #define UNIPERIF_PLAYER_I2S_OUT 1 /* player id connected to I2S/TDM TX bus */ 59 * stream lock to avoid race condition with trigger callback. 68 spin_lock(&player->irq_lock); in uni_player_irq_handler() 69 if (!player->substream) in uni_player_irq_handler() 72 snd_pcm_stream_lock(player->substream); in uni_player_irq_handler() 73 if (player->state == UNIPERIF_STATE_STOPPED) in uni_player_irq_handler() 82 dev_err(player->dev, "FIFO underflow error detected\n"); in uni_player_irq_handler() [all …]
|
/openbmc/linux/sound/soc/atmel/ |
H A D | mchp-i2s-mcc.c | 1 // SPDX-License-Identifier: GPL-2.0 3 // Driver for Microchip I2S Multi-channel controller 29 * ---- I2S Controller Register map ---- 75 * ---- Control Register (Write-only) ---- 86 * ---- Mode Register A (Read/Write) ---- 135 /* Number of TDM Channels - 1 */ 138 ((((ch) - 1) << 13) & MCHP_I2SMCC_MRA_NBCHAN_MASK) 145 /* TDM Frame Synchronization */ 163 /* Slot Width */ 164 /* 0: slot is 32 bits wide for DATALENGTH = 18/20/24 bits. */ [all …]
|
/openbmc/linux/sound/soc/generic/ |
H A D | simple-card-utils.c | 1 // SPDX-License-Identifier: GPL-2.0 3 // simple-card-utils.c 35 if (!strcmp(data->convert_sample_format, in asoc_simple_fixup_sample_fmt() 54 snprintf(prop, sizeof(prop), "%s%s", prefix, "convert-rate"); in asoc_simple_parse_convert() 55 of_property_read_u32(np, prop, &data->convert_rate); in asoc_simple_parse_convert() 58 snprintf(prop, sizeof(prop), "%s%s", prefix, "convert-channels"); in asoc_simple_parse_convert() 59 of_property_read_u32(np, prop, &data->convert_channel in asoc_simple_parse_convert() 119 asoc_simple_parse_tdm_width_map(struct device * dev,struct device_node * np,struct asoc_simple_dai * dai) asoc_simple_parse_tdm_width_map() argument 212 asoc_simple_clk_enable(struct asoc_simple_dai * dai) asoc_simple_clk_enable() argument 220 asoc_simple_clk_disable(struct asoc_simple_dai * dai) asoc_simple_clk_disable() argument 264 asoc_simple_check_fixed_sysclk(struct device * dev,struct asoc_simple_dai * dai,unsigned int * fixed_sysclk) asoc_simple_check_fixed_sysclk() argument 284 struct asoc_simple_dai *dai; asoc_simple_startup() local 345 struct asoc_simple_dai *dai; asoc_simple_shutdown() local 390 asoc_simple_set_tdm(struct snd_soc_dai * dai,struct asoc_simple_dai * simple_dai,struct snd_pcm_hw_params * params) asoc_simple_set_tdm() argument 524 asoc_simple_init_dai(struct snd_soc_dai * dai,struct asoc_simple_dai * simple_dai) asoc_simple_init_dai() argument 617 struct asoc_simple_dai *dai; asoc_simple_dai_init() local 1075 struct snd_soc_dai *dai; asoc_graph_parse_dai() local [all...] |
/openbmc/linux/Documentation/sound/soc/ |
H A D | dapm.rst | 11 such, can easily co-exist with the other PM systems. 60 Audio DAPM widgets fall into a number of types:- 93 Audio Interface Input (with TDM slot mask). 95 Audio Interface Output (with TDM slot mask). 98 DAI IN 100 DAI OUT 102 DAI Link 103 DAI Link between two DAI structures 127 (Widgets are defined in include/sound/soc-dapm.h) 130 There are convenience macros defined in soc-dapm.h that can be used to quickly [all …]
|
/openbmc/linux/sound/soc/intel/boards/ |
H A D | cht_bsw_rt5645.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * cht-bsw-rt5645.c - ASoc Machine driver for Intel Cherryview-based platforms 4 * Cherrytrail and Braswell, with RT5645 codec. 25 #include <sound/soc-acpi.h> 27 #include "../atom/sst-atom-controls.h" 28 #include "../common/soc-intel-quirks.h" 31 #define CHT_CODEC_DAI1 "rt5645-aif1" 32 #define CHT_CODEC_DAI2 "rt5645-aif2" 70 struct snd_soc_dapm_context *dapm = w->dapm; in platform_clock_control() 71 struct snd_soc_card *card = dapm->card; in platform_clock_control() [all …]
|
/openbmc/linux/sound/soc/sh/rcar/ |
H A D | core.c | 1 // SPDX-License-Identifier: GPL-2.0 3 // Renesas R-Car SRU/SCU/SSIU/SSI support 12 * Renesas R-Car sound device structure 17 * - SRC : Sampling Rate Converter 18 * - CMD 19 * - CTU : Channel Count Conversion Unit 20 * - MIX : Mixer 21 * - DV 654 rsnd_dai_to_priv(dai) global() argument 655 rsnd_dai_to_rdai(struct snd_soc_dai * dai) rsnd_dai_to_rdai() argument 709 rsnd_soc_dai_trigger(struct snd_pcm_substream * substream,int cmd,struct snd_soc_dai * dai) rsnd_soc_dai_trigger() argument 754 rsnd_soc_dai_set_fmt(struct snd_soc_dai * dai,unsigned int fmt) rsnd_soc_dai_set_fmt() argument 816 rsnd_soc_set_dai_tdm_slot(struct snd_soc_dai * dai,u32 tx_mask,u32 rx_mask,int slots,int slot_width) rsnd_soc_set_dai_tdm_slot() argument 983 rsnd_soc_dai_startup(struct snd_pcm_substream * substream,struct snd_soc_dai * dai) rsnd_soc_dai_startup() argument 1039 rsnd_soc_dai_shutdown(struct snd_pcm_substream * substream,struct snd_soc_dai * dai) rsnd_soc_dai_shutdown() argument 1054 rsnd_soc_dai_prepare(struct snd_pcm_substream * substream,struct snd_soc_dai * dai) rsnd_soc_dai_prepare() argument 1350 rsnd_soc_dai_pcm_new(struct snd_soc_pcm_runtime * rtd,struct snd_soc_dai * dai) rsnd_soc_dai_pcm_new() argument 1557 struct snd_soc_dai *dai = rsnd_substream_to_dai(substream); rsnd_hw_update() local 1578 struct snd_soc_dai *dai = rsnd_substream_to_dai(substream); rsnd_hw_params() local 1694 struct snd_soc_dai *dai = rsnd_substream_to_dai(substream); rsnd_pointer() local [all...] |