Commit 53778b82 authored by Vincent Knecht's avatar Vincent Knecht Committed by Mark Brown

ASoC: Add AK4375 support

AK4375 is a 32-bit stereo DAC with headphones amplifier.
There's no documentation for it on akm.com, and only a brief
datasheet can be found floating on the internets [1].

Thanks to Oriane BAYERD <obayerd@eurocomposant.fr>
for finally answering my inquiries through akm.com, if only to tell
me that this chip is EOL following AKM factory burning in october 2020
and thus no detailed documentation is available anymore...

AK4331 is advertised [2] as pin and register compatible with AK4375
so some scraps of its datasheet were used and this driver might be
used as a base for it, but this is totally untested.

So this driver is mainly based on downstream code [3] and [4]
by Hu Jin from AKM (no known email).

Tested on msm8916-alcatel-idol347 and msm8939-alcatel-idol3,
which both use PLL driven clock with bypass of SRC (sample rate
converter), so only this setup is supported for now.

[1] https://datasheetspdf.com/pdf-file/1400317/AKM/AK4375A/1
[2] https://www.akm.com/content/dam/documents/products/audio/audio-dac/ak4331ecb/ak4331ecb-en-datasheet.pdf
[3] https://github.com/msm8916-mainline/android_kernel_qcom_msm8916/blob/alcatel-idol347/sound/soc/codecs/idol347/ak4375.c
[4] https://github.com/msm8916-mainline/android_kernel_qcom_msm8916/blob/alcatel-idol347/sound/soc/codecs/ak4375.cSigned-off-by: default avatarVincent Knecht <vincent.knecht@mailoo.org>
Link: https://lore.kernel.org/r/20211220193725.2650356-2-vincent.knecht@mailoo.orgSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 70ba14cf
...@@ -41,6 +41,7 @@ config SND_SOC_ALL_CODECS ...@@ -41,6 +41,7 @@ config SND_SOC_ALL_CODECS
imply SND_SOC_ADS117X imply SND_SOC_ADS117X
imply SND_SOC_AK4104 imply SND_SOC_AK4104
imply SND_SOC_AK4118 imply SND_SOC_AK4118
imply SND_SOC_AK4375
imply SND_SOC_AK4458 imply SND_SOC_AK4458
imply SND_SOC_AK4535 imply SND_SOC_AK4535
imply SND_SOC_AK4554 imply SND_SOC_AK4554
...@@ -523,6 +524,16 @@ config SND_SOC_AK4118 ...@@ -523,6 +524,16 @@ config SND_SOC_AK4118
depends on I2C depends on I2C
select REGMAP_I2C select REGMAP_I2C
config SND_SOC_AK4375
tristate "AKM AK4375 CODEC"
depends on I2C
select REGMAP_I2C
help
Enable support for the Asahi-Kasei AK4375 codec.
To compile this driver as a module, choose M here: the module
will be called snd-soc-ak4375.
config SND_SOC_AK4458 config SND_SOC_AK4458
tristate "AKM AK4458 CODEC" tristate "AKM AK4458 CODEC"
depends on I2C depends on I2C
......
...@@ -34,6 +34,7 @@ snd-soc-adav803-objs := adav803.o ...@@ -34,6 +34,7 @@ snd-soc-adav803-objs := adav803.o
snd-soc-ads117x-objs := ads117x.o snd-soc-ads117x-objs := ads117x.o
snd-soc-ak4104-objs := ak4104.o snd-soc-ak4104-objs := ak4104.o
snd-soc-ak4118-objs := ak4118.o snd-soc-ak4118-objs := ak4118.o
snd-soc-ak4375-objs := ak4375.o
snd-soc-ak4458-objs := ak4458.o snd-soc-ak4458-objs := ak4458.o
snd-soc-ak4535-objs := ak4535.o snd-soc-ak4535-objs := ak4535.o
snd-soc-ak4554-objs := ak4554.o snd-soc-ak4554-objs := ak4554.o
...@@ -371,6 +372,7 @@ obj-$(CONFIG_SND_SOC_ADAV803) += snd-soc-adav803.o ...@@ -371,6 +372,7 @@ obj-$(CONFIG_SND_SOC_ADAV803) += snd-soc-adav803.o
obj-$(CONFIG_SND_SOC_ADS117X) += snd-soc-ads117x.o obj-$(CONFIG_SND_SOC_ADS117X) += snd-soc-ads117x.o
obj-$(CONFIG_SND_SOC_AK4104) += snd-soc-ak4104.o obj-$(CONFIG_SND_SOC_AK4104) += snd-soc-ak4104.o
obj-$(CONFIG_SND_SOC_AK4118) += snd-soc-ak4118.o obj-$(CONFIG_SND_SOC_AK4118) += snd-soc-ak4118.o
obj-$(CONFIG_SND_SOC_AK4375) += snd-soc-ak4375.o
obj-$(CONFIG_SND_SOC_AK4458) += snd-soc-ak4458.o obj-$(CONFIG_SND_SOC_AK4458) += snd-soc-ak4458.o
obj-$(CONFIG_SND_SOC_AK4535) += snd-soc-ak4535.o obj-$(CONFIG_SND_SOC_AK4535) += snd-soc-ak4535.o
obj-$(CONFIG_SND_SOC_AK4554) += snd-soc-ak4554.o obj-$(CONFIG_SND_SOC_AK4554) += snd-soc-ak4554.o
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment