diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-08-29 09:23:05 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-08-31 04:52:57 -0400 |
commit | d2dd0540c1dab1ebe4192e69d8dbfcf018ff02b2 (patch) | |
tree | 852361c252bb0c19fbcb76631c59bdc36d798a10 | |
parent | b6de431556023a6ed901a27284f15fff2e043598 (diff) |
ASoC: Add device tree binding for WM8804
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
-rw-r--r-- | Documentation/devicetree/bindings/sound/wm8804.txt | 18 | ||||
-rw-r--r-- | sound/soc/codecs/wm8804.c | 9 |
2 files changed, 27 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/sound/wm8804.txt b/Documentation/devicetree/bindings/sound/wm8804.txt new file mode 100644 index 000000000000..4d3a56f38adc --- /dev/null +++ b/Documentation/devicetree/bindings/sound/wm8804.txt | |||
@@ -0,0 +1,18 @@ | |||
1 | WM8804 audio CODEC | ||
2 | |||
3 | This device supports both I2C and SPI (configured with pin strapping | ||
4 | on the board). | ||
5 | |||
6 | Required properties: | ||
7 | |||
8 | - compatible : "wlf,wm8804" | ||
9 | |||
10 | - reg : the I2C address of the device for I2C, the chip select | ||
11 | number for SPI. | ||
12 | |||
13 | Example: | ||
14 | |||
15 | codec: wm8804@1a { | ||
16 | compatible = "wlf,wm8804"; | ||
17 | reg = <0x1a>; | ||
18 | }; | ||
diff --git a/sound/soc/codecs/wm8804.c b/sound/soc/codecs/wm8804.c index 9a5e67c5a6bd..9ee072b85975 100644 --- a/sound/soc/codecs/wm8804.c +++ b/sound/soc/codecs/wm8804.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <linux/delay.h> | 16 | #include <linux/delay.h> |
17 | #include <linux/pm.h> | 17 | #include <linux/pm.h> |
18 | #include <linux/i2c.h> | 18 | #include <linux/i2c.h> |
19 | #include <linux/of_device.h> | ||
19 | #include <linux/spi/spi.h> | 20 | #include <linux/spi/spi.h> |
20 | #include <linux/regulator/consumer.h> | 21 | #include <linux/regulator/consumer.h> |
21 | #include <linux/slab.h> | 22 | #include <linux/slab.h> |
@@ -717,6 +718,12 @@ static struct snd_soc_codec_driver soc_codec_dev_wm8804 = { | |||
717 | .volatile_register = wm8804_volatile | 718 | .volatile_register = wm8804_volatile |
718 | }; | 719 | }; |
719 | 720 | ||
721 | static const struct of_device_id wm8804_of_match[] = { | ||
722 | { .compatible = "wlf,wm8804", }, | ||
723 | { } | ||
724 | }; | ||
725 | MODULE_DEVICE_TABLE(of, wm8804_of_match); | ||
726 | |||
720 | #if defined(CONFIG_SPI_MASTER) | 727 | #if defined(CONFIG_SPI_MASTER) |
721 | static int __devinit wm8804_spi_probe(struct spi_device *spi) | 728 | static int __devinit wm8804_spi_probe(struct spi_device *spi) |
722 | { | 729 | { |
@@ -748,6 +755,7 @@ static struct spi_driver wm8804_spi_driver = { | |||
748 | .driver = { | 755 | .driver = { |
749 | .name = "wm8804", | 756 | .name = "wm8804", |
750 | .owner = THIS_MODULE, | 757 | .owner = THIS_MODULE, |
758 | .of_match_table = wm8804_of_match, | ||
751 | }, | 759 | }, |
752 | .probe = wm8804_spi_probe, | 760 | .probe = wm8804_spi_probe, |
753 | .remove = __devexit_p(wm8804_spi_remove) | 761 | .remove = __devexit_p(wm8804_spi_remove) |
@@ -792,6 +800,7 @@ static struct i2c_driver wm8804_i2c_driver = { | |||
792 | .driver = { | 800 | .driver = { |
793 | .name = "wm8804", | 801 | .name = "wm8804", |
794 | .owner = THIS_MODULE, | 802 | .owner = THIS_MODULE, |
803 | .of_match_table = wm8804_of_match, | ||
795 | }, | 804 | }, |
796 | .probe = wm8804_i2c_probe, | 805 | .probe = wm8804_i2c_probe, |
797 | .remove = __devexit_p(wm8804_i2c_remove), | 806 | .remove = __devexit_p(wm8804_i2c_remove), |