[PATCH v5 2/2] ASoC: codecs: add support for ES8326

Amadeusz Sławiński amadeuszx.slawinski at linux.intel.com
Fri Aug 12 17:11:52 CEST 2022


On 8/4/2022 11:18 AM, Zhu Ning wrote:
> The ES8326 codec is not compatible with ES8316 and requires
> a dedicated driver.
> 
> Signed-off-by: David Yang <yangxiaohua at everest-semi.com>
> Signed-off-by: Zhu Ning <zhuning at everest-semi.com>
> ------
> v5 fix compile error
> ---

...

> +
> +static const struct snd_soc_dai_ops es8326_ops = {
> +	.hw_params = es8326_pcm_hw_params,
> +	.set_fmt = es8326_set_dai_fmt,
> +	.set_sysclk = es8326_set_dai_sysclk,
> +};
> +
> +static struct snd_soc_dai_driver es8326_dai = {
> +	.name = "ES8326 HiFi",
> +	.playback = {
> +		.stream_name = "Playback",
> +		.channels_min = 1,
> +		.channels_max = 2,
> +		.rates = SNDRV_PCM_RATE_8000_96000,

coeff_div table seems to contain rates up to 48000, seems like 
SNDRV_PCM_RATE_8000_48000 would be a better value here?

> +		.formats = es8326_FORMATS,
> +		},
> +	.capture = {
> +		.stream_name = "Capture",
> +		.channels_min = 1,
> +		.channels_max = 2,
> +		.rates = SNDRV_PCM_RATE_8000_96000,

Same here?

> +		.formats = es8326_FORMATS,
> +		},
> +	.ops = &es8326_ops,
> +	.symmetric_rate = 1,
> +};
> +

...

> --- /dev/null
> +++ b/sound/soc/codecs/es8326.h
> @@ -0,0 +1,187 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * es8326.h -- es8326 ALSA SoC audio driver
> + * Copyright Everest Semiconductor Co.,Ltd
> + *
> + * Authors: David Yang <yangxiaohua at everest-semi.com>
> + */
> +
> +#ifndef _ES8326_H
> +#define _ES8326_H
> +
> +#define CONFIG_HHTECH_MINIPMP	1
> +
> +/* ES8326 register space */
> +
> +#define ES8326_RESET_00		0x00
> +#define ES8326_CLK_CTL_01	0x01
> +#define ES8326_CLK_INV_02	0x02
> +#define ES8326_CLK_RESAMPLE_03	0x03
> +#define ES8326_CLK_DIV1_04	0x04
> +#define ES8326_CLK_DIV2_05	0x05
> +#define ES8326_CLK_DLL_06	0x06
> +#define ES8326_CLK_MUX_07	0x07
> +#define ES8326_CLK_ADC_SEL_08	0x08
> +#define ES8326_CLK_DAC_SEL_09	0x09
> +#define ES8326_CLK_ADC_OSR_0A	0x0a
> +#define ES8326_CLK_DAC_OSR_0B	0x0b
> +#define ES8326_CLK_DIV_CPC_0C	0x0c
> +#define ES8326_CLK_DIV_BCLK_0D	0x0d
> +#define ES8326_CLK_TRI_0E	0x0e
> +#define ES8326_CLK_DIV_LRCK_0F	0x0f
> +#define ES8326_CLK_VMIDS1_10	0x10
> +#define ES8326_CLK_VMIDS2_11	0x11
> +#define ES8326_CLK_CAL_TIME_12	0x12
> +#define ES8326_FMT_13		0x13
> +
> +#define ES8326_DAC_MUTE_14	0x14
> +#define ES8326_ADC_MUTE_15	0x15
> +#define ES8326_ANA_PDN_16	0x16
> +#define ES8326_PGA_PDN_17	0x17
> +#define ES8326_VMIDSEL_18	0x18
> +#define ES8326_ANA_LOWPOWER_19	0x19
> +#define ES8326_ANA_DMS_1A	0x1a
> +#define ES8326_ANA_MICBIAS_1B	0x1b
> +#define ES8326_ANA_VSEL_1C	0x1c
> +#define ES8326_SYS_BIAS_1D	0x1d
> +#define ES8326_BIAS_SW1_1E	0x1e
> +#define ES8326_BIAS_SW2_1F	0x1f
> +#define ES8326_BIAS_SW3_20	0x20
> +#define ES8326_BIAS_SW4_21	0x21
> +#define ES8326_VMIDLOW_22	0x22
> +
> +#define ES8326_PGAGAIN_23		0x23
> +#define ES8326_HP_DRIVER_24		0x24
> +#define ES8326_DAC2HPMIX_25		0x25
> +#define ES8326_HP_VOL_26		0x26
> +#define ES8326_HP_CAL_27		0x27
> +#define ES8326_HP_DRIVER_REF_28		0x28
> +#define ES8326_ADC_SCALE_29		0x29
> +#define ES8326_ADC1_SRC_2A     0x2a
> +#define ES8326_ADC2_SRC_2B     0x2b
> +#define ES8326_ADC1_VOL_2C     0x2c
> +#define ES8326_ADC2_VOL_2D     0x2d
> +#define ES8326_ADC_RAMPRATE_2E		0x2e
> +#define ES8326_2F			0x2f
> +#define ES8326_30			0x30
> +#define ES8326_31			0x31
> +#define ES8326_ALC_RECOVERY_32		0x32
> +#define ES8326_ALC_LEVEL_33		0x33
> +#define ES8326_ADC_HPFS1_34		0x34
> +#define ES8326_ADC_HPFS2_35		0x35
> +#define ES8326_ADC_EQ_36		0x36
> +#define ES8326_HP_CAL_4A		0x4A
> +#define ES8326_HPL_OFFSET_INI_4B	0x4B
> +#define ES8326_HPR_OFFSET_INI_4C	0x4C
> +#define ES8326_DAC_DSM_4D		0x4D
> +#define ES8326_DAC_RAMPRATE_4E		0x4E
> +#define ES8326_DAC_VPPSCALE_4F		0x4F
> +#define ES8326_DAC_VOL_50		0x50
> +#define ES8326_DRC_RECOVERY_53		0x53
> +#define ES8326_DRC_WINSIZE_54		0x54
> +#define ES8326_HPJACK_TIMER_56		0x56
> +#define ES8326_HP_DET_57	0x57
> +#define ES8326_INT_SOURCE_58	0x58
> +#define ES8326_INTOUT_IO_59	0x59
> +#define ES8326_SDINOUT1_IO_5A	0x5A
> +#define ES8326_SDINOUT23_IO_5B	0x5B
> +#define ES8326_JACK_PULSE_5C	0x5C
> +
> +#define ES8326_PULLUP_CTL_F9	0xF9
> +#define ES8326_HP_DETECT_FB	0xFB
> +#define ES8326_CHIP_ID1_FD	0xFD
> +#define ES8326_CHIP_ID2_FE	0xFE
> +#define ES8326_CHIP_VERSION_FF	0xFF
> +

Can hexadecimal suffix in above defines be dropped? It seems unnecessary 
to me.



More information about the Alsa-devel mailing list