Merge remote-tracking branches 'asoc/fix/axi', 'asoc/fix/cs4265', 'asoc/fix/da732x', 'asoc/fix/omap', 'asoc/fix/rsnd', 'asoc/fix/rt5640', 'asoc/fix/rt5677', 'asoc/fix/simple' and 'asoc/fix/tegra' into asoc-linus
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
ADI AXI-SPDIF controller
|
ADI AXI-SPDIF controller
|
||||||
|
|
||||||
Required properties:
|
Required properties:
|
||||||
- compatible : Must be "adi,axi-spdif-1.00.a"
|
- compatible : Must be "adi,axi-spdif-tx-1.00.a"
|
||||||
- reg : Must contain SPDIF core's registers location and length
|
- reg : Must contain SPDIF core's registers location and length
|
||||||
- clocks : Pairs of phandle and specifier referencing the controller's clocks.
|
- clocks : Pairs of phandle and specifier referencing the controller's clocks.
|
||||||
The controller expects two clocks, the clock used for the AXI interface and
|
The controller expects two clocks, the clock used for the AXI interface and
|
||||||
|
@@ -282,10 +282,10 @@ static const struct cs4265_clk_para clk_map_table[] = {
|
|||||||
|
|
||||||
/*64k*/
|
/*64k*/
|
||||||
{8192000, 64000, 1, 0},
|
{8192000, 64000, 1, 0},
|
||||||
{1228800, 64000, 1, 1},
|
{12288000, 64000, 1, 1},
|
||||||
{1693440, 64000, 1, 2},
|
{16934400, 64000, 1, 2},
|
||||||
{2457600, 64000, 1, 3},
|
{24576000, 64000, 1, 3},
|
||||||
{3276800, 64000, 1, 4},
|
{32768000, 64000, 1, 4},
|
||||||
|
|
||||||
/* 88.2k */
|
/* 88.2k */
|
||||||
{11289600, 88200, 1, 0},
|
{11289600, 88200, 1, 0},
|
||||||
@@ -435,10 +435,10 @@ static int cs4265_pcm_hw_params(struct snd_pcm_substream *substream,
|
|||||||
index = cs4265_get_clk_index(cs4265->sysclk, params_rate(params));
|
index = cs4265_get_clk_index(cs4265->sysclk, params_rate(params));
|
||||||
if (index >= 0) {
|
if (index >= 0) {
|
||||||
snd_soc_update_bits(codec, CS4265_ADC_CTL,
|
snd_soc_update_bits(codec, CS4265_ADC_CTL,
|
||||||
CS4265_ADC_FM, clk_map_table[index].fm_mode);
|
CS4265_ADC_FM, clk_map_table[index].fm_mode << 6);
|
||||||
snd_soc_update_bits(codec, CS4265_MCLK_FREQ,
|
snd_soc_update_bits(codec, CS4265_MCLK_FREQ,
|
||||||
CS4265_MCLK_FREQ_MASK,
|
CS4265_MCLK_FREQ_MASK,
|
||||||
clk_map_table[index].mclkdiv);
|
clk_map_table[index].mclkdiv << 4);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
dev_err(codec->dev, "can't get correct mclk\n");
|
dev_err(codec->dev, "can't get correct mclk\n");
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __DA732X_H_
|
#ifndef __DA732X_H_
|
||||||
#define __DA732X_H
|
#define __DA732X_H_
|
||||||
|
|
||||||
#include <sound/soc.h>
|
#include <sound/soc.h>
|
||||||
|
|
||||||
|
@@ -2059,6 +2059,7 @@ static struct snd_soc_codec_driver soc_codec_dev_rt5640 = {
|
|||||||
static const struct regmap_config rt5640_regmap = {
|
static const struct regmap_config rt5640_regmap = {
|
||||||
.reg_bits = 8,
|
.reg_bits = 8,
|
||||||
.val_bits = 16,
|
.val_bits = 16,
|
||||||
|
.use_single_rw = true,
|
||||||
|
|
||||||
.max_register = RT5640_VENDOR_ID2 + 1 + (ARRAY_SIZE(rt5640_ranges) *
|
.max_register = RT5640_VENDOR_ID2 + 1 + (ARRAY_SIZE(rt5640_ranges) *
|
||||||
RT5640_PR_SPACING),
|
RT5640_PR_SPACING),
|
||||||
|
@@ -2135,10 +2135,10 @@ static const struct snd_soc_dapm_route rt5677_dapm_routes[] = {
|
|||||||
{ "BST2", NULL, "IN2P" },
|
{ "BST2", NULL, "IN2P" },
|
||||||
{ "BST2", NULL, "IN2N" },
|
{ "BST2", NULL, "IN2N" },
|
||||||
|
|
||||||
{ "IN1P", NULL, "micbias1" },
|
{ "IN1P", NULL, "MICBIAS1" },
|
||||||
{ "IN1N", NULL, "micbias1" },
|
{ "IN1N", NULL, "MICBIAS1" },
|
||||||
{ "IN2P", NULL, "micbias1" },
|
{ "IN2P", NULL, "MICBIAS1" },
|
||||||
{ "IN2N", NULL, "micbias1" },
|
{ "IN2N", NULL, "MICBIAS1" },
|
||||||
|
|
||||||
{ "ADC 1", NULL, "BST1" },
|
{ "ADC 1", NULL, "BST1" },
|
||||||
{ "ADC 1", NULL, "ADC 1 power" },
|
{ "ADC 1", NULL, "ADC 1 power" },
|
||||||
|
@@ -481,12 +481,19 @@ static int asoc_simple_card_probe(struct platform_device *pdev)
|
|||||||
snd_soc_card_set_drvdata(&priv->snd_card, priv);
|
snd_soc_card_set_drvdata(&priv->snd_card, priv);
|
||||||
|
|
||||||
ret = devm_snd_soc_register_card(&pdev->dev, &priv->snd_card);
|
ret = devm_snd_soc_register_card(&pdev->dev, &priv->snd_card);
|
||||||
|
if (ret >= 0)
|
||||||
|
return ret;
|
||||||
|
|
||||||
err:
|
err:
|
||||||
asoc_simple_card_unref(pdev);
|
asoc_simple_card_unref(pdev);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int asoc_simple_card_remove(struct platform_device *pdev)
|
||||||
|
{
|
||||||
|
return asoc_simple_card_unref(pdev);
|
||||||
|
}
|
||||||
|
|
||||||
static const struct of_device_id asoc_simple_of_match[] = {
|
static const struct of_device_id asoc_simple_of_match[] = {
|
||||||
{ .compatible = "simple-audio-card", },
|
{ .compatible = "simple-audio-card", },
|
||||||
{},
|
{},
|
||||||
@@ -500,6 +507,7 @@ static struct platform_driver asoc_simple_card = {
|
|||||||
.of_match_table = asoc_simple_of_match,
|
.of_match_table = asoc_simple_of_match,
|
||||||
},
|
},
|
||||||
.probe = asoc_simple_card_probe,
|
.probe = asoc_simple_card_probe,
|
||||||
|
.remove = asoc_simple_card_remove,
|
||||||
};
|
};
|
||||||
|
|
||||||
module_platform_driver(asoc_simple_card);
|
module_platform_driver(asoc_simple_card);
|
||||||
|
@@ -260,7 +260,7 @@ static struct snd_soc_dai_link omap_twl4030_dai_links[] = {
|
|||||||
.stream_name = "TWL4030 Voice",
|
.stream_name = "TWL4030 Voice",
|
||||||
.cpu_dai_name = "omap-mcbsp.3",
|
.cpu_dai_name = "omap-mcbsp.3",
|
||||||
.codec_dai_name = "twl4030-voice",
|
.codec_dai_name = "twl4030-voice",
|
||||||
.platform_name = "omap-mcbsp.2",
|
.platform_name = "omap-mcbsp.3",
|
||||||
.codec_name = "twl4030-codec",
|
.codec_name = "twl4030-codec",
|
||||||
.dai_fmt = SND_SOC_DAIFMT_DSP_A | SND_SOC_DAIFMT_IB_NF |
|
.dai_fmt = SND_SOC_DAIFMT_DSP_A | SND_SOC_DAIFMT_IB_NF |
|
||||||
SND_SOC_DAIFMT_CBM_CFM,
|
SND_SOC_DAIFMT_CBM_CFM,
|
||||||
|
@@ -247,7 +247,7 @@ rsnd_gen2_dma_addr(struct rsnd_priv *priv,
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* it shouldn't happen */
|
/* it shouldn't happen */
|
||||||
if (use_dvc & !use_src)
|
if (use_dvc && !use_src)
|
||||||
dev_err(dev, "DVC is selected without SRC\n");
|
dev_err(dev, "DVC is selected without SRC\n");
|
||||||
|
|
||||||
/* use SSIU or SSI ? */
|
/* use SSIU or SSI ? */
|
||||||
|
@@ -21,7 +21,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __TEGRA_ASOC_UTILS_H__
|
#ifndef __TEGRA_ASOC_UTILS_H__
|
||||||
#define __TEGRA_ASOC_UTILS_H_
|
#define __TEGRA_ASOC_UTILS_H__
|
||||||
|
|
||||||
struct clk;
|
struct clk;
|
||||||
struct device;
|
struct device;
|
||||||
|
Reference in New Issue
Block a user