Message ID | 20211221131757.2030-4-rogerq@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | memory: omap-gpmc: Add AM64 SoC support | expand |
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@bootlin.com> > Signed-off-by: Roger Quadros <rogerq@kernel.org> > --- > 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 */ >
Hi Roger, rogerq@kernel.org wrote on Tue, 21 Dec 2021 22:01:28 +0200: > 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@bootlin.com> > > Signed-off-by: Roger Quadros <rogerq@kernel.org> > > --- > > 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) { nitpick: why this intermediate variable? Otherwise for the NAND bits: Acked-by: Miquel Raynal <miquel.raynal@bootlin.com> > > /* 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 */ > > Thanks, Miquèl
On 22/12/2021 15:18, Miquel Raynal wrote: > Hi Roger, > > rogerq@kernel.org wrote on Tue, 21 Dec 2021 22:01:28 +0200: > >> 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@bootlin.com> >>> Signed-off-by: Roger Quadros <rogerq@kernel.org> >>> --- >>> 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) { > > nitpick: why this intermediate variable? > Indeed, it looks useless. I think it is left-over from previous version. I will remove it while applying. Best regards, Krzysztof
On 22/12/2021 17:49, Krzysztof Kozlowski wrote: > On 22/12/2021 15:18, Miquel Raynal wrote: >> Hi Roger, >> >> rogerq@kernel.org wrote on Tue, 21 Dec 2021 22:01:28 +0200: >> >>> 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@bootlin.com> >>>> Signed-off-by: Roger Quadros <rogerq@kernel.org> >>>> --- >>>> 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) { >> >> nitpick: why this intermediate variable? >> > > Indeed, it looks useless. I think it is left-over from previous version. > I will remove it while applying. You are right. Thanks for saving me a re-spin Krzysztof :) 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 */
As more compatibles can be added to the GPMC NAND controller driver use a compatible match table. Cc: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Roger Quadros <rogerq@kernel.org> --- drivers/memory/omap-gpmc.c | 6 +++++- drivers/mtd/nand/raw/omap2.c | 5 +---- include/linux/platform_data/mtd-nand-omap2.h | 9 ++++++++- 3 files changed, 14 insertions(+), 6 deletions(-)