linux/sound/soc
Matteo Martelli baf9899122
ASoC: codecs: es8311: add everest es8311 codec support
Add support for the Everest-semi ES8311 codec.

Everest-semi ES8311 codec is a low-power mono audio codec with I2S audio
interface and I2C control.

Supported features:
* Both master and slave mode. Master clock is optional in slave mode.
* Sample rates from 8KHz to 96KHz.
* Sample formats: S16_LE, S18_3LE, S20_3LE, S24_3LE, S24_LE and S32_LE.
* I2S formats: I2S, LEFT_J, DSP_A, DSP_B.
* BCLK and FSYNC clocks inversion.
* Component suspend/resume.
* ADC, PGA, DAC controls.
* ADC DSP controls: volume, fade (ramp rate), ALC, automute, HPF, EQ.
* DAC DSP controls: volume, fade (ramp rate), DRC, EQ.
* DAPM routes: capture path with input source selection (differential
  MIC/DMIC) and AIF channel source selection; playback path with DAC
  channel source selection.

Limitations:
* Support only for master clocks with a ratio of ADC (or DAC) clock to
  LRCLK equal to 256. This to keep the default ADC and DAC oversampling
  and ADC scale settings. Anyway all 8-96KHz sample rates are supported
  when the ratio of MCLK to sample rate is 32, 64, 128, 256, 384 or 512
  (upper limit due to max MCLK freq of 49.2MHz).
* Coefficients for ADC HPF and ADC/DAC EQ not supported.
* Digital mic supported but not tested.
* S18_3LE, S20_3LE and S24_3LE formats supported but not tested.

Signed-off-by: Matteo Martelli <matteomartelli3@gmail.com>
Link: https://msgid.link/r/20240522164722.954656-3-matteomartelli3@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-05-27 01:30:52 +01:00
..
adi ASoC: adi: Use *-y instead of *-objs in Makefile 2024-05-08 11:39:12 +09:00
amd ASoC: Updates for v6.10 2024-05-13 11:39:49 +02:00
apple ASoC: apple: Use *-y instead of *-objs in Makefile 2024-05-08 11:39:14 +09:00
atmel ASoC: Use *-y instead of *-objs in Makefile 2024-05-08 21:02:13 +09:00
au1x ASoC: au1x: Use *-y instead of *-objs Makefile 2024-05-08 11:39:16 +09:00
bcm ASoC: bcm: Use *-y instead of *-objs in Makefile 2024-05-08 11:39:16 +09:00
cirrus ASoC: cirrus: Use *-y instead of *-objs in Makefile 2024-05-08 11:39:17 +09:00
codecs ASoC: codecs: es8311: add everest es8311 codec support 2024-05-27 01:30:52 +01:00
dwc Linux 6.6-rc7 2023-10-23 19:38:22 +01:00
fsl ASoC: fsl: Use *-y instead of *-objs in Makefile 2024-05-08 11:39:18 +09:00
generic ASoC: Updates for v6.10 2024-05-13 11:39:49 +02:00
google
hisilicon ASoC: hisilicon: Drop GPIO include 2023-12-18 14:03:29 +00:00
img ASoC: img: Use snd_soc_substream_to_rtd() for accessing private_data 2024-05-06 23:59:52 +09:00
intel sound fixes for 6.10-rc1 2024-05-24 08:48:51 -07:00
jz4740 ASoC: jz4740: Use *-y instead of *-objs in Makefile 2024-05-08 11:39:21 +09:00
kirkwood ASoC: kirkwood: Use *-y instead of *-objs in Makefile 2024-05-08 11:39:21 +09:00
loongson ASoC: loongson: Use *-y instead of *-objs in Makefile 2024-05-08 11:39:22 +09:00
mediatek ASoC: Updates for v6.10 2024-05-13 11:39:49 +02:00
meson ASoC: Updates for v6.10 2024-05-13 11:39:49 +02:00
mxs ASoC: mxs: Use *-y instead of *-objs in Makefile 2024-05-08 11:39:25 +09:00
pxa ASoC: pxa: Use *-y instead of *-objs in Makefile 2024-05-08 11:39:26 +09:00
qcom ASoC: Add missing module descriptions 2024-05-09 08:37:35 +02:00
rockchip ASoC: rockchip: Use *-y instead of *-objs in Makefile 2024-05-08 11:39:27 +09:00
samsung ASoC: samsung: Use *-y instead of *-objs in Makefile 2024-05-08 11:39:28 +09:00
sh ASoC: sh: Use *-y instead of *-objs in Makefile 2024-05-08 11:39:29 +09:00
sof soundwire updates for 6.10 2024-05-21 11:23:36 -07:00
spear ASoC: spear: Use *-y instead of *-objs in Makefile 2024-05-08 11:39:31 +09:00
sprd ASoC: sprd: Use *-y instead of *-objs in Makefile 2024-05-08 11:39:32 +09:00
starfive ASoC: starfive/jh7110-pwmdac: Convert to platform remove callback returning void 2023-10-23 13:29:44 +01:00
sti ASoC: sti: Use *-y instead of *-objs in Makefile 2024-05-08 11:39:33 +09:00
stm ASoC: stm: Use *-y instead of *-objs in Makefile 2024-05-08 11:39:34 +09:00
sunxi ASoC: sunxi: Use snd_soc_substream_to_rtd() for accessing private_data 2024-05-06 23:59:56 +09:00
tegra ASoC: tegra: Use *-y instead of *-objs in Makefile 2024-05-08 11:39:34 +09:00
ti ASoC: ti: Use *-y instead of *-objs in Makefile 2024-05-08 11:39:35 +09:00
uniphier ASoC: uniphier: Use *-y instead of *-objs in Makefile 2024-05-08 11:39:36 +09:00
ux500 ASoC: Add missing module descriptions 2024-05-09 08:37:35 +02:00
xilinx ASoC: Add missing module descriptions 2024-05-09 08:37:35 +02:00
xtensa ASoC: xtensa: Use *-y instead of *-objs in Makefile 2024-05-08 11:39:39 +09:00
Kconfig ASoC: soc-card: Add KUnit test case for snd_soc_card_get_kcontrol 2024-04-02 15:54:49 +01:00
Makefile ASoC: core: Use *-y instead of *-objs in Makefile 2024-05-08 11:39:11 +09:00
soc-ac97.c
soc-acpi.c
soc-card-test.c ASoC: soc-card: soc-card-test: Fix some error handling in init() 2024-04-14 16:54:39 +09:00
soc-card.c ASoC: soc-card: Use snd_ctl_find_id_mixer() instead of open-coding 2024-04-02 15:54:48 +01:00
soc-component.c
soc-compress.c ASoC: soc-compress: Fix and add DPCM locking 2024-03-18 14:41:51 +00:00
soc-core.c ASoC: dmaengine_pcm: Allow passing component name via config 2024-03-25 00:49:47 +00:00
soc-dai.c ASoC: soc-dai: Note valid values of sysclock direction 2024-03-26 12:51:23 +00:00
soc-dapm.c ASoC: dapm: debugfs: show the widget type 2024-04-21 09:58:16 +09:00
soc-devres.c
soc-generic-dmaengine-pcm.c ASoC: dmaengine: Add missing module description 2024-05-08 20:51:10 +09:00
soc-jack.c ASoC: soc-jack: Get rid of legacy GPIO support 2024-03-26 17:13:45 +00:00
soc-link.c
soc-ops.c ASoC: ops: Fix wraparound for mask in snd_soc_get_volsw 2024-03-28 22:01:43 +00:00
soc-pcm.c ASoC: pcm: Reverse iterate DAIs when shutting them down 2024-04-30 00:09:46 +09:00
soc-topology-test.c ASoC: topology-test: Add missing module description 2024-05-08 20:51:10 +09:00
soc-topology.c ASoC: Drop soc-topology ABI v4 support 2024-04-04 18:09:18 +01:00
soc-utils-test.c
soc-utils.c