Browse Source

misc: bh1780: probe from compatible string

Currently the BH1780GLI I2C driver relies on the device tree node
having the right name, but this is fragile. Use the compatible
string to probe the driver instead.

Acked-by: Wolfram Sang <wsa@the-dreams.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Linus Walleij 12 năm trước cách đây
mục cha
commit
bc34268976
1 tập tin đã thay đổi với 11 bổ sung0 xóa
  1. 11 0
      drivers/misc/bh1780gli.c

+ 11 - 0
drivers/misc/bh1780gli.c

@@ -23,6 +23,7 @@
 #include <linux/platform_device.h>
 #include <linux/platform_device.h>
 #include <linux/delay.h>
 #include <linux/delay.h>
 #include <linux/module.h>
 #include <linux/module.h>
+#include <linux/of.h>
 
 
 #define BH1780_REG_CONTROL	0x80
 #define BH1780_REG_CONTROL	0x80
 #define BH1780_REG_PARTID	0x8A
 #define BH1780_REG_PARTID	0x8A
@@ -244,6 +245,15 @@ static const struct i2c_device_id bh1780_id[] = {
 	{ },
 	{ },
 };
 };
 
 
+#ifdef CONFIG_OF
+static const struct of_device_id of_bh1780_match[] = {
+	{ .compatible = "rohm,bh1780gli", },
+	{},
+};
+
+MODULE_DEVICE_TABLE(of, of_bh1780_match);
+#endif
+
 static struct i2c_driver bh1780_driver = {
 static struct i2c_driver bh1780_driver = {
 	.probe		= bh1780_probe,
 	.probe		= bh1780_probe,
 	.remove		= bh1780_remove,
 	.remove		= bh1780_remove,
@@ -251,6 +261,7 @@ static struct i2c_driver bh1780_driver = {
 	.driver = {
 	.driver = {
 		.name = "bh1780",
 		.name = "bh1780",
 		.pm	= &bh1780_pm,
 		.pm	= &bh1780_pm,
+		.of_match_table = of_match_ptr(of_bh1780_match),
 	},
 	},
 };
 };