On Mon, Aug 08, 2011 at 04:38:41PM +0800, Barry Song wrote:
2011/8/8 Mark Brown broonie@opensource.wolfsonmicro.com:
Signed-off-by: Mark Brown broonie@opensource.wolfsonmicro.com
Without this patch, DT can still connect driver with device by the heuristic way(of_modalias_node).
Well, the other part of things is that it explicitly defines the bindings (including qualification for the manufacturer, for Wolfson I know we've got an occasional collision with chips from Wondermedia who also use wm as a prefix for their part numbers). The match tables aren't particularly exciting in themselves but they're also very low cost.
i have a patch just like yours in input subsystem "[PATCH v2] input: touchscreen: add OF match table for ads7846" with "Acked-by: Grant Likely", but Dmitry seems to just ignore it.
so not sure whether this kind of new added match tables are totally liked by people or not.
Documentation/devicetree/bindings/sound/wm8753.txt | 18 ++++++++++++++++++ sound/soc/codecs/wm8753.c | 9 +++++++++ 2 files changed, 27 insertions(+), 0 deletions(-) create mode 100644 Documentation/devicetree/bindings/sound/wm8753.txt
diff --git a/Documentation/devicetree/bindings/sound/wm8753.txt b/Documentation/devicetree/bindings/sound/wm8753.txt new file mode 100644 index 0000000..e65277a --- /dev/null +++ b/Documentation/devicetree/bindings/sound/wm8753.txt @@ -0,0 +1,18 @@ +WM8753 audio CODEC
+This device supports both I2C and SPI (configured with pin strapping +on the board).
+Required properties:
- - compatible : "wlf,wm8753"
- - reg : the I2C address of the device for I2C, the chip select
- number for SPI.
+Example:
+codec: wm8737@1a {
- compatible = "wlf,wm8753";
- reg = <0x1a>;
+}; diff --git a/sound/soc/codecs/wm8753.c b/sound/soc/codecs/wm8753.c index a702550..fe04a10 100644 --- a/sound/soc/codecs/wm8753.c +++ b/sound/soc/codecs/wm8753.c @@ -38,6 +38,7 @@ #include <linux/delay.h> #include <linux/pm.h> #include <linux/i2c.h> +#include <linux/of_device.h> #include <linux/platform_device.h> #include <linux/spi/spi.h> #include <linux/slab.h> @@ -1490,6 +1491,12 @@ static struct snd_soc_codec_driver soc_codec_dev_wm8753 = { .reg_cache_default = wm8753_reg, };
+static const struct of_device_id wm8753_of_match[] = {
- { .compatible = "wlf,wm8753", },
- { }
+}; +MODULE_DEVICE_TABLE(of, wm8753_of_match);
#if defined(CONFIG_SPI_MASTER) static int __devinit wm8753_spi_probe(struct spi_device *spi) { @@ -1521,6 +1528,7 @@ static struct spi_driver wm8753_spi_driver = { .driver = { .name = "wm8753", .owner = THIS_MODULE,
- .of_match_table = wm8753_of_match,
}, .probe = wm8753_spi_probe, .remove = __devexit_p(wm8753_spi_remove), @@ -1565,6 +1573,7 @@ static struct i2c_driver wm8753_i2c_driver = { .driver = { .name = "wm8753", .owner = THIS_MODULE,
- .of_match_table = wm8753_of_match,
}, .probe = wm8753_i2c_probe, .remove = __devexit_p(wm8753_i2c_remove), -- 1.7.5.4