Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit 6ba9dd6c authored by James Schulman's avatar James Schulman Committed by Mark Brown
Browse files

ASoC: cs35l36: Add support for Cirrus CS35L36 Amplifier



Add driver support for Cirrus Logic CS35L36 boosted
speaker amplifier

Signed-off-by: default avatarJames Schulman <james.schulman@cirrus.com>
Reviewed-by: default avatarCharles Keepax <ckeepax@opensource.cirrus.com>
Acked-by: default avatarBrian Austin <brian.austin@cirrus.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 511d53ac
Loading
Loading
Loading
Loading
+43 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * linux/sound/cs35l36.h -- Platform data for CS35L36
 *
 * Copyright 2018 Cirrus Logic, Inc.
 *
 * Author: James Schulman <james.schulman@cirrus.com>
 *
 */

#ifndef __CS35L36_H
#define __CS35L36_H

struct cs35l36_vpbr_cfg {
	bool is_present;
	bool vpbr_en;
	int vpbr_thld;
	int vpbr_atk_rate;
	int vpbr_atk_vol;
	int vpbr_max_attn;
	int vpbr_wait;
	int vpbr_rel_rate;
	int vpbr_mute_en;
};

struct cs35l36_platform_data {
	bool multi_amp_mode;
	bool dcm_mode;
	bool amp_pcm_inv;
	bool imon_pol_inv;
	bool vmon_pol_inv;
	int boost_ind;
	int bst_vctl;
	int bst_vctl_sel;
	int bst_ipk;
	bool extern_boost;
	int temp_warn_thld;
	int irq_drv_sel;
	int irq_gpio_sel;
	struct cs35l36_vpbr_cfg vpbr_config;
};

#endif /* __CS35L36_H */
+5 −0
Original line number Diff line number Diff line
@@ -55,6 +55,7 @@ config SND_SOC_ALL_CODECS
	select SND_SOC_CS35L33 if I2C
	select SND_SOC_CS35L34 if I2C
	select SND_SOC_CS35L35 if I2C
	select SND_SOC_CS35L36 if I2C
	select SND_SOC_CS42L42 if I2C
	select SND_SOC_CS42L51_I2C if I2C
	select SND_SOC_CS42L52 if I2C && INPUT
@@ -484,6 +485,10 @@ config SND_SOC_CS35L35
	tristate "Cirrus Logic CS35L35 CODEC"
	depends on I2C

config SND_SOC_CS35L36
	tristate "Cirrus Logic CS35L36 CODEC"
	depends on I2C

config SND_SOC_CS42L42
	tristate "Cirrus Logic CS42L42 CODEC"
	depends on I2C
+2 −0
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ snd-soc-cs35l32-objs := cs35l32.o
snd-soc-cs35l33-objs := cs35l33.o
snd-soc-cs35l34-objs := cs35l34.o
snd-soc-cs35l35-objs := cs35l35.o
snd-soc-cs35l36-objs := cs35l36.o
snd-soc-cs42l42-objs := cs42l42.o
snd-soc-cs42l51-objs := cs42l51.o
snd-soc-cs42l51-i2c-objs := cs42l51-i2c.o
@@ -319,6 +320,7 @@ obj-$(CONFIG_SND_SOC_CS35L32) += snd-soc-cs35l32.o
obj-$(CONFIG_SND_SOC_CS35L33)	+= snd-soc-cs35l33.o
obj-$(CONFIG_SND_SOC_CS35L34)	+= snd-soc-cs35l34.o
obj-$(CONFIG_SND_SOC_CS35L35)	+= snd-soc-cs35l35.o
obj-$(CONFIG_SND_SOC_CS35L36)	+= snd-soc-cs35l36.o
obj-$(CONFIG_SND_SOC_CS42L42)	+= snd-soc-cs42l42.o
obj-$(CONFIG_SND_SOC_CS42L51)	+= snd-soc-cs42l51.o
obj-$(CONFIG_SND_SOC_CS42L51_I2C)	+= snd-soc-cs42l51-i2c.o