Commit 60f142ed authored by Mark Brown's avatar Mark Brown

Merge remote-tracking branches 'asoc/topic/uniphier', 'asoc/topic/utils',...

Merge remote-tracking branches 'asoc/topic/uniphier', 'asoc/topic/utils', 'asoc/topic/wm0010', 'asoc/topic/wm2000' and 'asoc/topic/wm5102' into asoc-next
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>;
};
...@@ -12593,6 +12593,12 @@ F: include/media/soc* ...@@ -12593,6 +12593,12 @@ F: include/media/soc*
F: drivers/media/i2c/soc_camera/ F: drivers/media/i2c/soc_camera/
F: drivers/media/platform/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 SOEKRIS NET48XX LED SUPPORT
M: Chris Boot <bootc@bootc.net> M: Chris Boot <bootc@bootc.net>
S: Maintained S: Maintained
......
...@@ -71,6 +71,7 @@ source "sound/soc/stm/Kconfig" ...@@ -71,6 +71,7 @@ source "sound/soc/stm/Kconfig"
source "sound/soc/sunxi/Kconfig" source "sound/soc/sunxi/Kconfig"
source "sound/soc/tegra/Kconfig" source "sound/soc/tegra/Kconfig"
source "sound/soc/txx9/Kconfig" source "sound/soc/txx9/Kconfig"
source "sound/soc/uniphier/Kconfig"
source "sound/soc/ux500/Kconfig" source "sound/soc/ux500/Kconfig"
source "sound/soc/xtensa/Kconfig" source "sound/soc/xtensa/Kconfig"
source "sound/soc/zte/Kconfig" source "sound/soc/zte/Kconfig"
......
...@@ -55,6 +55,7 @@ obj-$(CONFIG_SND_SOC) += stm/ ...@@ -55,6 +55,7 @@ obj-$(CONFIG_SND_SOC) += stm/
obj-$(CONFIG_SND_SOC) += sunxi/ obj-$(CONFIG_SND_SOC) += sunxi/
obj-$(CONFIG_SND_SOC) += tegra/ obj-$(CONFIG_SND_SOC) += tegra/
obj-$(CONFIG_SND_SOC) += txx9/ obj-$(CONFIG_SND_SOC) += txx9/
obj-$(CONFIG_SND_SOC) += uniphier/
obj-$(CONFIG_SND_SOC) += ux500/ obj-$(CONFIG_SND_SOC) += ux500/
obj-$(CONFIG_SND_SOC) += xtensa/ obj-$(CONFIG_SND_SOC) += xtensa/
obj-$(CONFIG_SND_SOC) += zte/ obj-$(CONFIG_SND_SOC) += zte/
...@@ -655,11 +655,8 @@ static int wm0010_boot(struct snd_soc_codec *codec) ...@@ -655,11 +655,8 @@ static int wm0010_boot(struct snd_soc_codec *codec)
ret = -ENOMEM; ret = -ENOMEM;
len = pll_rec.length + 8; len = pll_rec.length + 8;
out = kzalloc(len, GFP_KERNEL | GFP_DMA); out = kzalloc(len, GFP_KERNEL | GFP_DMA);
if (!out) { if (!out)
dev_err(codec->dev,
"Failed to allocate RX buffer\n");
goto abort; goto abort;
}
img_swap = kzalloc(len, GFP_KERNEL | GFP_DMA); img_swap = kzalloc(len, GFP_KERNEL | GFP_DMA);
if (!img_swap) if (!img_swap)
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
* 'wm2000_anc.bin' by default (overridable via platform data) at * 'wm2000_anc.bin' by default (overridable via platform data) at
* runtime and is expected to be in flat binary format. This is * runtime and is expected to be in flat binary format. This is
* generated by Wolfson configuration tools and includes * generated by Wolfson configuration tools and includes
* system-specific callibration information. If supplied as a * system-specific calibration information. If supplied as a
* sequence of ASCII-encoded hexidecimal bytes this can be converted * sequence of ASCII-encoded hexidecimal bytes this can be converted
* into a flat binary with a command such as this on the command line: * into a flat binary with a command such as this on the command line:
* *
...@@ -826,8 +826,7 @@ static int wm2000_i2c_probe(struct i2c_client *i2c, ...@@ -826,8 +826,7 @@ static int wm2000_i2c_probe(struct i2c_client *i2c,
int reg; int reg;
u16 id; u16 id;
wm2000 = devm_kzalloc(&i2c->dev, sizeof(struct wm2000_priv), wm2000 = devm_kzalloc(&i2c->dev, sizeof(*wm2000), GFP_KERNEL);
GFP_KERNEL);
if (!wm2000) if (!wm2000)
return -ENOMEM; return -ENOMEM;
...@@ -902,7 +901,6 @@ static int wm2000_i2c_probe(struct i2c_client *i2c, ...@@ -902,7 +901,6 @@ static int wm2000_i2c_probe(struct i2c_client *i2c,
wm2000->anc_download_size, wm2000->anc_download_size,
GFP_KERNEL); GFP_KERNEL);
if (wm2000->anc_download == NULL) { if (wm2000->anc_download == NULL) {
dev_err(&i2c->dev, "Out of memory\n");
ret = -ENOMEM; ret = -ENOMEM;
goto err_supplies; goto err_supplies;
} }
......
...@@ -1935,8 +1935,11 @@ static int wm5102_codec_probe(struct snd_soc_codec *codec) ...@@ -1935,8 +1935,11 @@ static int wm5102_codec_probe(struct snd_soc_codec *codec)
struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec); struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
struct snd_soc_component *component = snd_soc_dapm_to_component(dapm); struct snd_soc_component *component = snd_soc_dapm_to_component(dapm);
struct wm5102_priv *priv = snd_soc_codec_get_drvdata(codec); struct wm5102_priv *priv = snd_soc_codec_get_drvdata(codec);
struct arizona *arizona = priv->core.arizona;
int ret; int ret;
snd_soc_codec_init_regmap(codec, arizona->regmap);
ret = wm_adsp2_codec_probe(&priv->core.adsp[0], codec); ret = wm_adsp2_codec_probe(&priv->core.adsp[0], codec);
if (ret) if (ret)
return ret; return ret;
...@@ -1989,17 +1992,9 @@ static unsigned int wm5102_digital_vu[] = { ...@@ -1989,17 +1992,9 @@ static unsigned int wm5102_digital_vu[] = {
ARIZONA_DAC_DIGITAL_VOLUME_5R, ARIZONA_DAC_DIGITAL_VOLUME_5R,
}; };
static struct regmap *wm5102_get_regmap(struct device *dev)
{
struct wm5102_priv *priv = dev_get_drvdata(dev);
return priv->core.arizona->regmap;
}
static const struct snd_soc_codec_driver soc_codec_dev_wm5102 = { static const struct snd_soc_codec_driver soc_codec_dev_wm5102 = {
.probe = wm5102_codec_probe, .probe = wm5102_codec_probe,
.remove = wm5102_codec_remove, .remove = wm5102_codec_remove,
.get_regmap = wm5102_get_regmap,
.idle_bias_off = true, .idle_bias_off = true,
......
...@@ -288,7 +288,7 @@ static const struct snd_soc_platform_driver dummy_platform = { ...@@ -288,7 +288,7 @@ static const struct snd_soc_platform_driver dummy_platform = {
.ops = &dummy_dma_ops, .ops = &dummy_dma_ops,
}; };
static struct snd_soc_codec_driver dummy_codec; static const struct snd_soc_codec_driver dummy_codec;
#define STUB_RATES SNDRV_PCM_RATE_8000_192000 #define STUB_RATES SNDRV_PCM_RATE_8000_192000
#define STUB_FORMATS (SNDRV_PCM_FMTBIT_S8 | \ #define STUB_FORMATS (SNDRV_PCM_FMTBIT_S8 | \
......
# SPDX-License-Identifier: GPL-2.0
config SND_SOC_UNIPHIER
tristate "ASoC support for UniPhier"
depends on (ARCH_UNIPHIER || COMPILE_TEST)
help
Say Y or M if you want to add support for the Socionext
UniPhier SoC audio interfaces. You will also need to select the
audio interfaces to support below.
If unsure select "N".
config SND_SOC_UNIPHIER_EVEA_CODEC
tristate "UniPhier SoC internal audio codec"
depends on SND_SOC_UNIPHIER
select REGMAP_MMIO
help
This adds Codec driver for Socionext UniPhier LD11/20 SoC
internal DAC. This driver supports Line In / Out and HeadPhone.
Select Y if you use such device.
If unsure select "N".
# SPDX-License-Identifier: GPL-2.0
snd-soc-uniphier-evea-objs := evea.o
obj-$(CONFIG_SND_SOC_UNIPHIER_EVEA_CODEC) += snd-soc-uniphier-evea.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