On Thu, 21 Mar 2019 08:40:44 -0700 "Angus Ainslie (Purism)" <angus@xxxxxxxx> wrote: > Add an of_match table for devicetree probing. > > Signed-off-by: Angus Ainslie (Purism) <angus@xxxxxxxx> I made a small tweak (see inline) for an issue I'd missed previously (which is pretty obscure!) Jonathan > --- > drivers/iio/light/vcnl4000.c | 22 ++++++++++++++++++++++ > 1 file changed, 22 insertions(+) > > diff --git a/drivers/iio/light/vcnl4000.c b/drivers/iio/light/vcnl4000.c > index 5e0a8eb83ebc..308cb2d2b641 100644 > --- a/drivers/iio/light/vcnl4000.c > +++ b/drivers/iio/light/vcnl4000.c > @@ -363,9 +363,31 @@ static int vcnl4000_probe(struct i2c_client *client, > return devm_iio_device_register(&client->dev, indio_dev); > } > > +static const struct of_device_id vcnl_4000_of_match[] = { > + { > + .compatible = "vishay,vcnl4000", > + .data = "VCNL4000", > + }, > + { > + .compatible = "vishay,vcnl4010", > + .data = "VCNL4010", > + }, > + { > + .compatible = "vishay,vcnl4010", > + .data = "VCNL4020", > + }, > + { > + .compatible = "vishay,vcnl4200", > + .data = "VCNL4200", > + }, > + {}, > +}; > +MODULE_DEVICE_TABLE(of, vcnl4000_of_match); > + > static struct i2c_driver vcnl4000_driver = { > .driver = { > .name = VCNL4000_DRV_NAME, > + .of_match_table = of_match_ptr(vcnl_4000_of_match), Ah. I'd missed this previously. Don't use the of_match_ptr magic anymore. It prevents ACPI probing via the weird DSDT entry that basically says "here be devicetree". > }, > .probe = vcnl4000_probe, > .id_table = vcnl4000_id,