Message ID | 20220705204743.3224692-1-colin.foster@in-advantage.com |
---|---|
Headers | show |
Series | add support for VSC7512 control over SPI | expand |
On Tue, Jul 05, 2022 at 01:47:35PM -0700, Colin Foster wrote: > Several ocelot-related modules are designed for MMIO / regmaps. As such, > they often use a combination of devm_platform_get_and_ioremap_resource and > devm_regmap_init_mmio. > > Operating in an MFD might be different, in that it could be memory mapped, > or it could be SPI, I2C... In these cases a fallback to use IORESOURCE_REG > instead of IORESOURCE_MEM becomes necessary. > > When this happens, there's redundant logic that needs to be implemented in > every driver. In order to avoid this redundancy, utilize a single function > that, if the MFD scenario is enabled, will perform this fallback logic. > > Signed-off-by: Colin Foster <colin.foster@in-advantage.com> > --- To me this looks good, I'll just add a few minor comments which I think you don't necessarily need to address by resending, they're just things I noticed. Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> > MAINTAINERS | 5 ++++ > include/linux/mfd/ocelot.h | 55 ++++++++++++++++++++++++++++++++++++++ > 2 files changed, 60 insertions(+) > create mode 100644 include/linux/mfd/ocelot.h > > diff --git a/MAINTAINERS b/MAINTAINERS > index 28108e4fdb8f..f781caceeb38 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -14467,6 +14467,11 @@ F: net/dsa/tag_ocelot.c > F: net/dsa/tag_ocelot_8021q.c > F: tools/testing/selftests/drivers/net/ocelot/* > > +OCELOT EXTERNAL SWITCH CONTROL > +M: Colin Foster <colin.foster@in-advantage.com> > +S: Supported > +F: include/linux/mfd/ocelot.h > + > OCXL (Open Coherent Accelerator Processor Interface OpenCAPI) DRIVER > M: Frederic Barrat <fbarrat@linux.ibm.com> > M: Andrew Donnellan <ajd@linux.ibm.com> > diff --git a/include/linux/mfd/ocelot.h b/include/linux/mfd/ocelot.h > new file mode 100644 > index 000000000000..353b7c2ee445 > --- /dev/null > +++ b/include/linux/mfd/ocelot.h > @@ -0,0 +1,55 @@ > +/* SPDX-License-Identifier: GPL-2.0 OR MIT */ > +/* Copyright 2022 Innovative Advantage Inc. */ A header file should have ifdefs which should prevent double inclusion, like #ifndef _MFD_OCELOT_H #define _MFD_OCELOT_H ... #endif > + > +#include <linux/err.h> > +#include <linux/platform_device.h> > +#include <linux/regmap.h> > +#include <linux/types.h> > + > +struct resource; IMO if include/linux/platform_device.h doesn't provide "struct resource" that's a problem for that header to solve, not for its users. > + > +static inline struct regmap * > +ocelot_regmap_from_resource_optional(struct platform_device *pdev, > + unsigned int index, > + const struct regmap_config *config) > +{ > + struct device *dev = &pdev->dev; > + struct resource *res; > + u32 __iomem *regs; "regs" could be void *. > + > + /* > + * Don't use get_and_ioremap_resource here, since that will invoke > + * prints of "invalid resource" which simply add confusion > + */ > + res = platform_get_resource(pdev, IORESOURCE_MEM, index); > + if (res) { > + regs = devm_ioremap_resource(dev, res); > + if (IS_ERR(regs)) > + return ERR_CAST(regs); > + return devm_regmap_init_mmio(dev, regs, config); > + } > + > + /* > + * Fall back to using REG and getting the resource from the parent > + * device, which is possible in an MFD configuration > + */ > + if (dev->parent) { > + res = platform_get_resource(pdev, IORESOURCE_REG, index); > + if (!res) > + return NULL; > + > + return dev_get_regmap(dev->parent, res->name); > + } > + > + return NULL; > +} > + > +static inline struct regmap * > +ocelot_regmap_from_resource(struct platform_device *pdev, unsigned int index, > + const struct regmap_config *config) > +{ > + struct regmap *map; > + > + map = ocelot_regmap_from_resource_optional(pdev, index, config); > + return map ?: ERR_PTR(-ENOENT); > +} > -- > 2.25.1 >
On Tue, Jul 05, 2022 at 01:47:42PM -0700, Colin Foster wrote: > Add devicetree bindings for SPI-controlled Ocelot chips, specifically the > VSC7512. > > Signed-off-by: Colin Foster <colin.foster@in-advantage.com> > Reviewed-by: Rob Herring <robh@kernel.org> > --- Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
On Mon, 11 Jul 2022 08:51:35 +0100 Lee Jones wrote: > > Can this go into net-next if there are no more complains over the > > weekend? Anyone still planning to review? > > As the subsystem with the fewest changes, I'm not sure why it would. Yeah, just going by the tag in the subject. I have no preference, looks like it applies cleanly to Linus'. > I'd planed to route this in via MFD and send out a pull-request for > other sub-system maintainers to pull from. > > If you would like to co-ordinate it instead, you'd be welcome to. > However, I (and probably Linus) would need a succinct immutable branch > to pull from. Oh, that'd be perfect, sorry, I didn't realize there was already a plan. If you're willing to carry on as intended, please do. Colin if there is another version please make a note of the above merging plan in the cover letter and drop the net-next tag. Just in case my goldfish brain forgets.
On Mon, Jul 11, 2022 at 11:21:16AM -0700, Jakub Kicinski wrote: > On Mon, 11 Jul 2022 08:51:35 +0100 Lee Jones wrote: > > > Can this go into net-next if there are no more complains over the > > > weekend? Anyone still planning to review? > > > > As the subsystem with the fewest changes, I'm not sure why it would. > > Yeah, just going by the tag in the subject. I have no preference, > looks like it applies cleanly to Linus'. > > > I'd planed to route this in via MFD and send out a pull-request for > > other sub-system maintainers to pull from. > > > > If you would like to co-ordinate it instead, you'd be welcome to. > > However, I (and probably Linus) would need a succinct immutable branch > > to pull from. > > Oh, that'd be perfect, sorry, I didn't realize there was already a plan. > If you're willing to carry on as intended, please do. > > Colin if there is another version please make a note of the above > merging plan in the cover letter and drop the net-next tag. > Just in case my goldfish brain forgets. I wasn't sure of the plan, but this makes sense to bring it through MFD. Fortunately there's enough work for me on the DSA front that there's no way that'll land before this merge window - so I have no objection to it going any non-net-next path. I'll look to Lee as to whether there should be a v14 with the header guard addition per Vladimir's review, or whether that should be in a future patch set. I'm happy to go either way.
On Tue, Jul 12, 2022 at 10:08:57PM +0000, Vladimir Oltean wrote: > On Mon, Jul 11, 2022 at 07:10:48PM -0700, Colin Foster wrote: > > On Mon, Jul 11, 2022 at 11:21:16AM -0700, Jakub Kicinski wrote: > > > On Mon, 11 Jul 2022 08:51:35 +0100 Lee Jones wrote: > > > > > Can this go into net-next if there are no more complains over the > > > > > weekend? Anyone still planning to review? > > > > > > > > As the subsystem with the fewest changes, I'm not sure why it would. > > > > > > Yeah, just going by the tag in the subject. I have no preference, > > > looks like it applies cleanly to Linus'. > > > > > > > I'd planed to route this in via MFD and send out a pull-request for > > > > other sub-system maintainers to pull from. > > > > > > > > If you would like to co-ordinate it instead, you'd be welcome to. > > > > However, I (and probably Linus) would need a succinct immutable branch > > > > to pull from. > > > > > > Oh, that'd be perfect, sorry, I didn't realize there was already a plan. > > > If you're willing to carry on as intended, please do. > > > > > > Colin if there is another version please make a note of the above > > > merging plan in the cover letter and drop the net-next tag. > > > Just in case my goldfish brain forgets. > > > > I wasn't sure of the plan, but this makes sense to bring it through MFD. > > Fortunately there's enough work for me on the DSA front that there's no > > way that'll land before this merge window - so I have no objection to it > > going any non-net-next path. > > > > I'll look to Lee as to whether there should be a v14 with the header > > guard addition per Vladimir's review, or whether that should be in a > > future patch set. I'm happy to go either way. > > From my side, the changes to this patch set can be incremental, I'd be > happy if Lee would take them as is. Just making sure this hasn't slipped through the cracks. Should I resend this next week (Monday / Tuesday?) with the Reviewed-by tags and switch it to MFD instead of net-next?