Rather than using the fallback path in the i2c subsystem and hoping
for no clashes across vendors, lets put in an explicit table for
matching.
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Alexandru Ardelean <ardeleanalex@gmail.com>
Reviewed-by: Barry Song <song.bao.hua@hisilicon>
Link: https://lore.kernel.org/r/20210314181511.531414-21-jic23@kernel.org
 #include <linux/i2c.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
+#include <linux/mod_devicetable.h>
 #include <linux/regulator/consumer.h>
 #include <linux/slab.h>
 
 
 MODULE_DEVICE_TABLE(i2c, ad7150_id);
 
+static const struct of_device_id ad7150_of_match[] = {
+       { "adi,ad7150" },
+       { "adi,ad7151" },
+       { "adi,ad7156" },
+       {}
+};
 static struct i2c_driver ad7150_driver = {
        .driver = {
                .name = "ad7150",
+               .of_match_table = ad7150_of_match,
        },
        .probe = ad7150_probe,
        .id_table = ad7150_id,