mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-05 06:26:55 +07:00
Merge remote-tracking branches 'asoc/topic/txx9', 'asoc/topic/wm8750', 'asoc/topic/wm8804' and 'asoc/topic/wm8904' into asoc-next
This commit is contained in:
commit
dacff834fa
@ -3,7 +3,7 @@ WM8904 audio CODEC
|
|||||||
This device supports I2C only.
|
This device supports I2C only.
|
||||||
|
|
||||||
Required properties:
|
Required properties:
|
||||||
- compatible: "wlf,wm8904"
|
- compatible: "wlf,wm8904" or "wlf,wm8912"
|
||||||
- reg: the I2C address of the device.
|
- reg: the I2C address of the device.
|
||||||
- clock-names: "mclk"
|
- clock-names: "mclk"
|
||||||
- clocks: reference to
|
- clocks: reference to
|
||||||
|
@ -323,7 +323,7 @@ static const struct snd_soc_dapm_widget wm8750_dapm_widgets[] = {
|
|||||||
SND_SOC_DAPM_OUTPUT("ROUT2"),
|
SND_SOC_DAPM_OUTPUT("ROUT2"),
|
||||||
SND_SOC_DAPM_OUTPUT("MONO1"),
|
SND_SOC_DAPM_OUTPUT("MONO1"),
|
||||||
SND_SOC_DAPM_OUTPUT("OUT3"),
|
SND_SOC_DAPM_OUTPUT("OUT3"),
|
||||||
SND_SOC_DAPM_OUTPUT("VREF"),
|
SND_SOC_DAPM_VMID("VREF"),
|
||||||
|
|
||||||
SND_SOC_DAPM_INPUT("LINPUT1"),
|
SND_SOC_DAPM_INPUT("LINPUT1"),
|
||||||
SND_SOC_DAPM_INPUT("LINPUT2"),
|
SND_SOC_DAPM_INPUT("LINPUT2"),
|
||||||
|
@ -648,7 +648,7 @@ static struct snd_soc_dai_driver wm8804_dai = {
|
|||||||
.symmetric_rates = 1
|
.symmetric_rates = 1
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct snd_soc_codec_driver soc_codec_dev_wm8804 = {
|
static const struct snd_soc_codec_driver soc_codec_dev_wm8804 = {
|
||||||
.probe = wm8804_probe,
|
.probe = wm8804_probe,
|
||||||
.remove = wm8804_remove,
|
.remove = wm8804_remove,
|
||||||
.set_bias_level = wm8804_set_bias_level,
|
.set_bias_level = wm8804_set_bias_level,
|
||||||
@ -664,7 +664,7 @@ static const struct of_device_id wm8804_of_match[] = {
|
|||||||
};
|
};
|
||||||
MODULE_DEVICE_TABLE(of, wm8804_of_match);
|
MODULE_DEVICE_TABLE(of, wm8804_of_match);
|
||||||
|
|
||||||
static struct regmap_config wm8804_regmap_config = {
|
static const struct regmap_config wm8804_regmap_config = {
|
||||||
.reg_bits = 8,
|
.reg_bits = 8,
|
||||||
.val_bits = 8,
|
.val_bits = 8,
|
||||||
|
|
||||||
|
@ -2105,6 +2105,24 @@ static const struct regmap_config wm8904_regmap = {
|
|||||||
.num_reg_defaults = ARRAY_SIZE(wm8904_reg_defaults),
|
.num_reg_defaults = ARRAY_SIZE(wm8904_reg_defaults),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifdef CONFIG_OF
|
||||||
|
static enum wm8904_type wm8904_data = WM8904;
|
||||||
|
static enum wm8904_type wm8912_data = WM8912;
|
||||||
|
|
||||||
|
static const struct of_device_id wm8904_of_match[] = {
|
||||||
|
{
|
||||||
|
.compatible = "wlf,wm8904",
|
||||||
|
.data = &wm8904_data,
|
||||||
|
}, {
|
||||||
|
.compatible = "wlf,wm8912",
|
||||||
|
.data = &wm8912_data,
|
||||||
|
}, {
|
||||||
|
/* sentinel */
|
||||||
|
}
|
||||||
|
};
|
||||||
|
MODULE_DEVICE_TABLE(of, wm8904_of_match);
|
||||||
|
#endif
|
||||||
|
|
||||||
static int wm8904_i2c_probe(struct i2c_client *i2c,
|
static int wm8904_i2c_probe(struct i2c_client *i2c,
|
||||||
const struct i2c_device_id *id)
|
const struct i2c_device_id *id)
|
||||||
{
|
{
|
||||||
@ -2132,7 +2150,17 @@ static int wm8904_i2c_probe(struct i2c_client *i2c,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
wm8904->devtype = id->driver_data;
|
if (i2c->dev.of_node) {
|
||||||
|
const struct of_device_id *match;
|
||||||
|
|
||||||
|
match = of_match_node(wm8904_of_match, i2c->dev.of_node);
|
||||||
|
if (match == NULL)
|
||||||
|
return -EINVAL;
|
||||||
|
wm8904->devtype = *((enum wm8904_type *)match->data);
|
||||||
|
} else {
|
||||||
|
wm8904->devtype = id->driver_data;
|
||||||
|
}
|
||||||
|
|
||||||
i2c_set_clientdata(i2c, wm8904);
|
i2c_set_clientdata(i2c, wm8904);
|
||||||
wm8904->pdata = i2c->dev.platform_data;
|
wm8904->pdata = i2c->dev.platform_data;
|
||||||
|
|
||||||
@ -2266,6 +2294,7 @@ static struct i2c_driver wm8904_i2c_driver = {
|
|||||||
.driver = {
|
.driver = {
|
||||||
.name = "wm8904",
|
.name = "wm8904",
|
||||||
.owner = THIS_MODULE,
|
.owner = THIS_MODULE,
|
||||||
|
.of_match_table = of_match_ptr(wm8904_of_match),
|
||||||
},
|
},
|
||||||
.probe = wm8904_i2c_probe,
|
.probe = wm8904_i2c_probe,
|
||||||
.remove = wm8904_i2c_remove,
|
.remove = wm8904_i2c_remove,
|
||||||
|
@ -44,7 +44,7 @@ static const char *wm8995_supply_names[WM8995_NUM_SUPPLIES] = {
|
|||||||
"MICVDD"
|
"MICVDD"
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct reg_default wm8995_reg_defaults[] = {
|
static const struct reg_default wm8995_reg_defaults[] = {
|
||||||
{ 0, 0x8995 },
|
{ 0, 0x8995 },
|
||||||
{ 5, 0x0100 },
|
{ 5, 0x0100 },
|
||||||
{ 16, 0x000b },
|
{ 16, 0x000b },
|
||||||
@ -2186,7 +2186,7 @@ static struct snd_soc_dai_driver wm8995_dai[] = {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct snd_soc_codec_driver soc_codec_dev_wm8995 = {
|
static const struct snd_soc_codec_driver soc_codec_dev_wm8995 = {
|
||||||
.probe = wm8995_probe,
|
.probe = wm8995_probe,
|
||||||
.remove = wm8995_remove,
|
.remove = wm8995_remove,
|
||||||
.set_bias_level = wm8995_set_bias_level,
|
.set_bias_level = wm8995_set_bias_level,
|
||||||
@ -2200,7 +2200,7 @@ static struct snd_soc_codec_driver soc_codec_dev_wm8995 = {
|
|||||||
.num_dapm_routes = ARRAY_SIZE(wm8995_intercon),
|
.num_dapm_routes = ARRAY_SIZE(wm8995_intercon),
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct regmap_config wm8995_regmap = {
|
static const struct regmap_config wm8995_regmap = {
|
||||||
.reg_bits = 16,
|
.reg_bits = 16,
|
||||||
.val_bits = 16,
|
.val_bits = 16,
|
||||||
|
|
||||||
|
@ -282,11 +282,6 @@ static struct snd_pcm_ops txx9aclc_pcm_ops = {
|
|||||||
.pointer = txx9aclc_pcm_pointer,
|
.pointer = txx9aclc_pcm_pointer,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void txx9aclc_pcm_free_dma_buffers(struct snd_pcm *pcm)
|
|
||||||
{
|
|
||||||
snd_pcm_lib_preallocate_free_for_all(pcm);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int txx9aclc_pcm_new(struct snd_soc_pcm_runtime *rtd)
|
static int txx9aclc_pcm_new(struct snd_soc_pcm_runtime *rtd)
|
||||||
{
|
{
|
||||||
struct snd_card *card = rtd->card->snd_card;
|
struct snd_card *card = rtd->card->snd_card;
|
||||||
@ -412,7 +407,6 @@ static struct snd_soc_platform_driver txx9aclc_soc_platform = {
|
|||||||
.remove = txx9aclc_pcm_remove,
|
.remove = txx9aclc_pcm_remove,
|
||||||
.ops = &txx9aclc_pcm_ops,
|
.ops = &txx9aclc_pcm_ops,
|
||||||
.pcm_new = txx9aclc_pcm_new,
|
.pcm_new = txx9aclc_pcm_new,
|
||||||
.pcm_free = txx9aclc_pcm_free_dma_buffers,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int txx9aclc_soc_platform_probe(struct platform_device *pdev)
|
static int txx9aclc_soc_platform_probe(struct platform_device *pdev)
|
||||||
|
Loading…
Reference in New Issue
Block a user