diff options
author | Takashi Iwai <tiwai@suse.de> | 2012-10-06 16:33:52 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2012-10-06 16:33:52 +0200 |
commit | 0fd0ba5f9e8ebae66afded580f5f34936f740ac7 (patch) | |
tree | f232be1bf350b2aec4e860e7156f5292344b0c62 /sound/soc/codecs/cs4271.c | |
parent | b7ef37d0e382298bcf7ba399ce67b044d9add23a (diff) | |
parent | 9911f7f7562a25381eff93fdc660a4a3b4c0f6e0 (diff) | |
download | linux-0fd0ba5f9e8ebae66afded580f5f34936f740ac7.tar.bz2 |
Merge tag 'asoc-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next
ASoC: Additional updates for v3.7
A couple more updates for 3.7, enhancements to the ux500 and wm2000
drivers, a new driver for DA9055 and the support for regulator bypass
mode. With the exception of the DA9055 this has all had a chance to
soak in -next (the driver was added on Friday so should be in -next
today).
Diffstat (limited to 'sound/soc/codecs/cs4271.c')
-rw-r--r-- | sound/soc/codecs/cs4271.c | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/sound/soc/codecs/cs4271.c b/sound/soc/codecs/cs4271.c index 9eb01d7d58a3..f994af34f552 100644 --- a/sound/soc/codecs/cs4271.c +++ b/sound/soc/codecs/cs4271.c @@ -22,12 +22,14 @@ #include <linux/module.h> #include <linux/slab.h> #include <linux/delay.h> -#include <sound/pcm.h> -#include <sound/soc.h> -#include <sound/tlv.h> #include <linux/gpio.h> #include <linux/i2c.h> #include <linux/spi/spi.h> +#include <linux/of_device.h> +#include <linux/of_gpio.h> +#include <sound/pcm.h> +#include <sound/soc.h> +#include <sound/tlv.h> #include <sound/cs4271.h> #define CS4271_PCM_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | \ @@ -458,6 +460,14 @@ static int cs4271_soc_resume(struct snd_soc_codec *codec) #define cs4271_soc_resume NULL #endif /* CONFIG_PM */ +#ifdef CONFIG_OF +static const struct of_device_id cs4271_dt_ids[] = { + { .compatible = "cirrus,cs4271", }, + { } +}; +MODULE_DEVICE_TABLE(of, cs4271_dt_ids); +#endif + static int cs4271_probe(struct snd_soc_codec *codec) { struct cs4271_private *cs4271 = snd_soc_codec_get_drvdata(codec); @@ -465,6 +475,12 @@ static int cs4271_probe(struct snd_soc_codec *codec) int ret; int gpio_nreset = -EINVAL; +#ifdef CONFIG_OF + if (of_match_device(cs4271_dt_ids, codec->dev)) + gpio_nreset = of_get_named_gpio(codec->dev->of_node, + "reset-gpio", 0); +#endif + if (cs4271plat && gpio_is_valid(cs4271plat->gpio_nreset)) gpio_nreset = cs4271plat->gpio_nreset; @@ -569,6 +585,7 @@ static struct spi_driver cs4271_spi_driver = { .driver = { .name = "cs4271", .owner = THIS_MODULE, + .of_match_table = of_match_ptr(cs4271_dt_ids), }, .probe = cs4271_spi_probe, .remove = __devexit_p(cs4271_spi_remove), @@ -608,6 +625,7 @@ static struct i2c_driver cs4271_i2c_driver = { .driver = { .name = "cs4271", .owner = THIS_MODULE, + .of_match_table = of_match_ptr(cs4271_dt_ids), }, .id_table = cs4271_i2c_id, .probe = cs4271_i2c_probe, |