On Thu, Jun 9, 2011 at 8:28 PM, Barry Song <Baohua.Song@xxxxxxx> wrote: > The current ads7846 has no OF match table. The method used is by applying a heuristic (of_modalias_node) which tries to name the device in a way that will match an existing device driver. > This patch adds explicit OF match table for ads7846, then the normal device tree match behaviour will always work. > It has been tested on PRIMA2 EVB board of CSR with a SPI's child node like the below: > ts@0 { > compatible = "ti,ads7845"; > reg = <0x0>; > spi-max-frequency = <31250>; > interrupts = <90>; > }; > > Signed-off-by: Barry Song <21cnbao@xxxxxxxxx> > Cc: Grant Likely <grant.likely@xxxxxxxxxxxx> > cc: Thomas Chou <thomas@xxxxxxxxxxxxx> > --- > drivers/input/touchscreen/ads7846.c | 14 ++++++++++++++ There should also be documentation for the new binding added to Documentation/devicetree/bindings for the new compatible strings. > 1 files changed, 14 insertions(+), 0 deletions(-) > > diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c > index 5196861..643138b 100644 > --- a/drivers/input/touchscreen/ads7846.c > +++ b/drivers/input/touchscreen/ads7846.c > @@ -28,6 +28,7 @@ > #include <linux/slab.h> > #include <linux/pm.h> > #include <linux/gpio.h> > +#include <linux/of.h> > #include <linux/spi/spi.h> > #include <linux/spi/ads7846.h> > #include <linux/regulator/consumer.h> > @@ -1425,12 +1426,25 @@ static int __devexit ads7846_remove(struct spi_device *spi) > return 0; > } > > +#if defined(CONFIG_OF) > +static struct of_device_id ads7846_spi_of_match_table[] __devinitdata = { > + { .compatible = "ti,ads7846", }, > + { .compatible = "ti,ads7845", }, > + { .compatible = "ti,ads7843", }, > + {}, > +}; > +MODULE_DEVICE_TABLE(of, ads7846_spi_of_match_table); #else #define ads7846_spi_of_match_table NULL > +#endif > + > static struct spi_driver ads7846_driver = { > .driver = { > .name = "ads7846", > .bus = &spi_bus_type, > .owner = THIS_MODULE, > .pm = &ads7846_pm, > +#if defined(CONFIG_OF) > + .of_match_table = ads7846_spi_of_match_table, > +#endif With the #else block added above, you can drop the #if/#endif protection around of_match_table. Otherwise: Acked-by: Grant Likely <grant.likely@xxxxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html