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

Unverified Commit 85314247 authored by Mark Brown's avatar Mark Brown
Browse files

Merge remote-tracking branches 'asoc/topic/twl6040', 'asoc/topic/uda1380',...

Merge remote-tracking branches 'asoc/topic/twl6040', 'asoc/topic/uda1380', 'asoc/topic/uniphier', 'asoc/topic/utils' and 'asoc/topic/ux500' into asoc-next
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
Socionext EVEA - UniPhier SoC internal codec driver

Required properties:
- compatible      : should be "socionext,uniphier-evea".
- reg             : offset and length of the register set for the device.
- clock-names     : should include following entries:
                    "evea", "exiv"
- clocks          : a list of phandle, should contain an entry for each
                    entries in clock-names.
- reset-names     : should include following entries:
                    "evea", "exiv", "adamv"
- resets          : a list of phandle, should contain reset entries of
                    reset-names.
- #sound-dai-cells: should be 1.

Example:

	codec {
		compatible = "socionext,uniphier-evea";
		reg = <0x57900000 0x1000>;
		clock-names = "evea", "exiv";
		clocks = <&sys_clk 41>, <&sys_clk 42>;
		reset-names = "evea", "exiv", "adamv";
		resets = <&sys_rst 41>, <&sys_rst 42>, <&adamv_rst 0>;
		#sound-dai-cells = <1>;
	};
+6 −0
Original line number Diff line number Diff line
@@ -12592,6 +12592,12 @@ F: include/media/soc*
F:	drivers/media/i2c/soc_camera/
F:	drivers/media/platform/soc_camera/

SOCIONEXT UNIPHIER SOUND DRIVER
M:	Katsuhiro Suzuki <suzuki.katsuhiro@socionext.com>
L:	alsa-devel@alsa-project.org (moderated for non-subscribers)
S:	Maintained
F:	sound/soc/uniphier/

SOEKRIS NET48XX LED SUPPORT
M:	Chris Boot <bootc@bootc.net>
S:	Maintained
+1 −0
Original line number Diff line number Diff line
@@ -71,6 +71,7 @@ source "sound/soc/stm/Kconfig"
source "sound/soc/sunxi/Kconfig"
source "sound/soc/tegra/Kconfig"
source "sound/soc/txx9/Kconfig"
source "sound/soc/uniphier/Kconfig"
source "sound/soc/ux500/Kconfig"
source "sound/soc/xtensa/Kconfig"
source "sound/soc/zte/Kconfig"
+1 −0
Original line number Diff line number Diff line
@@ -55,6 +55,7 @@ obj-$(CONFIG_SND_SOC) += stm/
obj-$(CONFIG_SND_SOC)	+= sunxi/
obj-$(CONFIG_SND_SOC)	+= tegra/
obj-$(CONFIG_SND_SOC)	+= txx9/
obj-$(CONFIG_SND_SOC)	+= uniphier/
obj-$(CONFIG_SND_SOC)	+= ux500/
obj-$(CONFIG_SND_SOC)	+= xtensa/
obj-$(CONFIG_SND_SOC)	+= zte/
+9 −11
Original line number Diff line number Diff line
@@ -106,10 +106,12 @@ static const struct snd_pcm_hw_constraint_list sysclk_constraints[] = {
	{ .count = ARRAY_SIZE(hp_rates), .list = hp_rates, },
};

#define to_twl6040(codec)	dev_get_drvdata((codec)->dev->parent)

static unsigned int twl6040_read(struct snd_soc_codec *codec, unsigned int reg)
{
	struct twl6040_data *priv = snd_soc_codec_get_drvdata(codec);
	struct twl6040 *twl6040 = codec->control_data;
	struct twl6040 *twl6040 = to_twl6040(codec);
	u8 value;

	if (reg >= TWL6040_CACHEREGNUM)
@@ -171,7 +173,7 @@ static inline void twl6040_update_dl12_cache(struct snd_soc_codec *codec,
static int twl6040_write(struct snd_soc_codec *codec,
			unsigned int reg, unsigned int value)
{
	struct twl6040 *twl6040 = codec->control_data;
	struct twl6040 *twl6040 = to_twl6040(codec);

	if (reg >= TWL6040_CACHEREGNUM)
		return -EIO;
@@ -541,7 +543,7 @@ int twl6040_get_dl1_gain(struct snd_soc_codec *codec)
	if (snd_soc_dapm_get_pin_status(dapm, "HSOR") ||
		snd_soc_dapm_get_pin_status(dapm, "HSOL")) {

		u8 val = snd_soc_read(codec, TWL6040_REG_HSLCTL);
		u8 val = twl6040_read(codec, TWL6040_REG_HSLCTL);
		if (val & TWL6040_HSDACMODE)
			/* HSDACL in LP mode */
			return -8; /* -8dB */
@@ -572,7 +574,7 @@ EXPORT_SYMBOL_GPL(twl6040_get_trim_value);

int twl6040_get_hs_step_size(struct snd_soc_codec *codec)
{
	struct twl6040 *twl6040 = codec->control_data;
	struct twl6040 *twl6040 = to_twl6040(codec);

	if (twl6040_get_revid(twl6040) < TWL6040_REV_ES1_3)
		/* For ES under ES_1.3 HS step is 2 mV */
@@ -830,7 +832,7 @@ static const struct snd_soc_dapm_route intercon[] = {
static int twl6040_set_bias_level(struct snd_soc_codec *codec,
				enum snd_soc_bias_level level)
{
	struct twl6040 *twl6040 = codec->control_data;
	struct twl6040 *twl6040 = to_twl6040(codec);
	struct twl6040_data *priv = snd_soc_codec_get_drvdata(codec);
	int ret = 0;

@@ -922,7 +924,7 @@ static int twl6040_prepare(struct snd_pcm_substream *substream,
			struct snd_soc_dai *dai)
{
	struct snd_soc_codec *codec = dai->codec;
	struct twl6040 *twl6040 = codec->control_data;
	struct twl6040 *twl6040 = to_twl6040(codec);
	struct twl6040_data *priv = snd_soc_codec_get_drvdata(codec);
	int ret;

@@ -964,7 +966,7 @@ static int twl6040_set_dai_sysclk(struct snd_soc_dai *codec_dai,
static void twl6040_mute_path(struct snd_soc_codec *codec, enum twl6040_dai_id id,
			     int mute)
{
	struct twl6040 *twl6040 = codec->control_data;
	struct twl6040 *twl6040 = to_twl6040(codec);
	struct twl6040_data *priv = snd_soc_codec_get_drvdata(codec);
	int hslctl, hsrctl, earctl;
	int hflctl, hfrctl;
@@ -1108,7 +1110,6 @@ static struct snd_soc_dai_driver twl6040_dai[] = {
static int twl6040_probe(struct snd_soc_codec *codec)
{
	struct twl6040_data *priv;
	struct twl6040 *twl6040 = dev_get_drvdata(codec->dev->parent);
	struct platform_device *pdev = to_platform_device(codec->dev);
	int ret = 0;

@@ -1119,7 +1120,6 @@ static int twl6040_probe(struct snd_soc_codec *codec)
	snd_soc_codec_set_drvdata(codec, priv);

	priv->codec = codec;
	codec->control_data = twl6040;

	priv->plug_irq = platform_get_irq(pdev, 0);
	if (priv->plug_irq < 0) {
@@ -1158,8 +1158,6 @@ static int twl6040_remove(struct snd_soc_codec *codec)
static const struct snd_soc_codec_driver soc_codec_dev_twl6040 = {
	.probe = twl6040_probe,
	.remove = twl6040_remove,
	.read = twl6040_read,
	.write = twl6040_write,
	.set_bias_level = twl6040_set_bias_level,
	.suspend_bias_off = true,
	.ignore_pmdown_time = true,
Loading