Hi Miquel, On 21/12/2021 15:17, Roger Quadros wrote: > As more compatibles can be added to the GPMC NAND controller driver > use a compatible match table. > > Cc: Miquel Raynal <miquel.raynal@xxxxxxxxxxx> > Signed-off-by: Roger Quadros <rogerq@xxxxxxxxxx> > --- > drivers/memory/omap-gpmc.c | 6 +++++- > drivers/mtd/nand/raw/omap2.c | 5 +---- Will need your Ack for this one as well. Thanks :) > include/linux/platform_data/mtd-nand-omap2.h | 9 ++++++++- > 3 files changed, 14 insertions(+), 6 deletions(-) cheers, -roger > > diff --git a/drivers/memory/omap-gpmc.c b/drivers/memory/omap-gpmc.c > index 624153048182..d19ffc895e5b 100644 > --- a/drivers/memory/omap-gpmc.c > +++ b/drivers/memory/omap-gpmc.c > @@ -2091,6 +2091,7 @@ static int gpmc_probe_generic_child(struct platform_device *pdev, > u32 val; > struct gpio_desc *waitpin_desc = NULL; > struct gpmc_device *gpmc = platform_get_drvdata(pdev); > + bool is_nand = false; > > if (of_property_read_u32(child, "reg", &cs) < 0) { > dev_err(&pdev->dev, "%pOF has no 'reg' property\n", > @@ -2183,7 +2184,10 @@ static int gpmc_probe_generic_child(struct platform_device *pdev, > } > } > > - if (of_device_is_compatible(child, "ti,omap2-nand")) { > + if (of_match_node(omap_nand_ids, child)) > + is_nand = true; > + > + if (is_nand) { > /* NAND specific setup */ > val = 8; > of_property_read_u32(child, "nand-bus-width", &val); > diff --git a/drivers/mtd/nand/raw/omap2.c b/drivers/mtd/nand/raw/omap2.c > index b26d4947af02..e6dd8b4cf0d2 100644 > --- a/drivers/mtd/nand/raw/omap2.c > +++ b/drivers/mtd/nand/raw/omap2.c > @@ -2352,10 +2352,7 @@ static int omap_nand_remove(struct platform_device *pdev) > return ret; > } > > -static const struct of_device_id omap_nand_ids[] = { > - { .compatible = "ti,omap2-nand", }, > - {}, > -}; > +/* omap_nand_ids defined in linux/platform_data/mtd-nand-omap2.h */ > MODULE_DEVICE_TABLE(of, omap_nand_ids); > > static struct platform_driver omap_nand_driver = { > diff --git a/include/linux/platform_data/mtd-nand-omap2.h b/include/linux/platform_data/mtd-nand-omap2.h > index de6ada739121..92f011805ad4 100644 > --- a/include/linux/platform_data/mtd-nand-omap2.h > +++ b/include/linux/platform_data/mtd-nand-omap2.h > @@ -7,6 +7,7 @@ > #define _MTD_NAND_OMAP2_H > > #include <linux/mtd/partitions.h> > +#include <linux/mod_devicetable.h> > > #define GPMC_BCH_NUM_REMAINDER 8 > > @@ -61,4 +62,10 @@ struct gpmc_nand_regs { > void __iomem *gpmc_bch_result5[GPMC_BCH_NUM_REMAINDER]; > void __iomem *gpmc_bch_result6[GPMC_BCH_NUM_REMAINDER]; > }; > -#endif > + > +static const struct of_device_id omap_nand_ids[] = { > + { .compatible = "ti,omap2-nand", }, > + {}, > +}; > + > +#endif /* _MTD_NAND_OMAP2_H */ >