Skip to content

Commit fc918cb

Browse files
charleskeepaxbroonie
authored andcommitted
ASoC: cs42l43: Add support for the cs42l43
The CS42L43 is an audio CODEC with integrated MIPI SoundWire interface (Version 1.2.1 compliant), I2C, SPI, and I2S/TDM interfaces designed for portable applications. It provides a high dynamic range, stereo DAC for headphone output, two integrated Class D amplifiers for loudspeakers, and two ADCs for wired headset microphone input or stereo line input. PDM inputs are provided for digital microphones. The ASoC component provides the majority of the functionality of the device, all the audio functions. Signed-off-by: Charles Keepax <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
1 parent 038e0da commit fc918cb

File tree

7 files changed

+3466
-0
lines changed

7 files changed

+3466
-0
lines changed

include/sound/cs42l43.h

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/* SPDX-License-Identifier: GPL-2.0 */
2+
/*
3+
* CS42L43 CODEC driver external data
4+
*
5+
* Copyright (C) 2022-2023 Cirrus Logic, Inc. and
6+
* Cirrus Logic International Semiconductor Ltd.
7+
*/
8+
9+
#ifndef CS42L43_ASOC_EXT_H
10+
#define CS42L43_ASOC_EXT_H
11+
12+
#define CS42L43_SYSCLK 0
13+
14+
#define CS42L43_SYSCLK_MCLK 0
15+
#define CS42L43_SYSCLK_SDW 1
16+
17+
#endif /* CS42L43_ASOC_EXT_H */

sound/soc/codecs/Kconfig

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ config SND_SOC_ALL_CODECS
7474
imply SND_SOC_CS35L56_SDW
7575
imply SND_SOC_CS42L42
7676
imply SND_SOC_CS42L42_SDW
77+
imply SND_SOC_CS42L43
78+
imply SND_SOC_CS42L43_SDW
7779
imply SND_SOC_CS42L51_I2C
7880
imply SND_SOC_CS42L52
7981
imply SND_SOC_CS42L56
@@ -789,6 +791,20 @@ config SND_SOC_CS42L42_SDW
789791
help
790792
Enable support for Cirrus Logic CS42L42 codec with Soundwire control
791793

794+
config SND_SOC_CS42L43
795+
tristate "Cirrus Logic CS42L43 CODEC"
796+
depends on MFD_CS42L43
797+
help
798+
Select this to support the audio functions of the Cirrus Logic
799+
CS42L43 PC CODEC.
800+
801+
config SND_SOC_CS42L43_SDW
802+
tristate "Cirrus Logic CS42L43 CODEC (SoundWire)"
803+
depends on SND_SOC_CS42L43 && MFD_CS42L43_SDW
804+
help
805+
Select this to support the audio functions of the Cirrus Logic
806+
CS42L43 PC CODEC over SoundWire.
807+
792808
config SND_SOC_CS42L51
793809
tristate
794810

sound/soc/codecs/Makefile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ snd-soc-cs35l56-sdw-objs := cs35l56-sdw.o
7575
snd-soc-cs42l42-objs := cs42l42.o
7676
snd-soc-cs42l42-i2c-objs := cs42l42-i2c.o
7777
snd-soc-cs42l42-sdw-objs := cs42l42-sdw.o
78+
snd-soc-cs42l43-objs := cs42l43.o cs42l43-jack.o
79+
snd-soc-cs42l43-sdw-objs := cs42l43-sdw.o
7880
snd-soc-cs42l51-objs := cs42l51.o
7981
snd-soc-cs42l51-i2c-objs := cs42l51-i2c.o
8082
snd-soc-cs42l52-objs := cs42l52.o
@@ -457,6 +459,8 @@ obj-$(CONFIG_SND_SOC_CS35L56_SDW) += snd-soc-cs35l56-sdw.o
457459
obj-$(CONFIG_SND_SOC_CS42L42_CORE) += snd-soc-cs42l42.o
458460
obj-$(CONFIG_SND_SOC_CS42L42) += snd-soc-cs42l42-i2c.o
459461
obj-$(CONFIG_SND_SOC_CS42L42_SDW) += snd-soc-cs42l42-sdw.o
462+
obj-$(CONFIG_SND_SOC_CS42L43) += snd-soc-cs42l43.o
463+
obj-$(CONFIG_SND_SOC_CS42L43_SDW) += snd-soc-cs42l43-sdw.o
460464
obj-$(CONFIG_SND_SOC_CS42L51) += snd-soc-cs42l51.o
461465
obj-$(CONFIG_SND_SOC_CS42L51_I2C) += snd-soc-cs42l51-i2c.o
462466
obj-$(CONFIG_SND_SOC_CS42L52) += snd-soc-cs42l52.o

0 commit comments

Comments
 (0)