[PATCH v2] mfd: syscon: Decouple syscon interface from platform devices

Arnd Bergmann arnd at arndb.de
Tue Sep 2 10:40:45 PDT 2014


On Tuesday 02 September 2014 19:42:52 Alexander Shiyan wrote:
> > > -struct regmap *syscon_regmap_lookup_by_pdevname(const char *s)
> > > -{
> > > -   struct device *dev;
> > > -   struct syscon *syscon;
> > > -
> > > -   dev = driver_find_device(&syscon_driver.driver, NULL, (void *)s,
> > > -                            syscon_match_pdevname);
> > > -   if (!dev)
> > > -           return ERR_PTR(-EPROBE_DEFER);
> > > -
> > > -   syscon = dev_get_drvdata(dev);
> > > -
> > > -   return syscon->regmap;
> > > -}
> > > -EXPORT_SYMBOL_GPL(syscon_regmap_lookup_by_pdevname);
> > 
> > I think this can actually be left intact if that helps with clps71xx.
> > It could be done in a hacky way using bus_find_device_by_name()
> > to keep it simple, or in a somewhat nicer way by keeping the 
> > syscon platform_driver around for the non-DT case.
> 
> It will not work anyway because the patch involves the use of
> of_device_is_compatible(), of_iomap() etc...

What I meant was to have the pdevname stuff keep working the way
it does today. At that point, you essentially have two completely
independent drivers, one that registers a platform driver and
provides syscon_regmap_lookup_by_pdevname, and one that provides
the other interfaces using DT lookup.

	Arnd



More information about the linux-arm-kernel mailing list