[PATCH v2 08/13] mfd: Versatile Express system registers driver

Pawel Moll pawel.moll at arm.com
Wed Sep 19 07:45:49 EDT 2012


On Wed, 2012-09-19 at 12:17 +0100, Arnd Bergmann wrote:
> On Wednesday 19 September 2012, Pawel Moll wrote:
> > On Tue, 2012-09-18 at 16:24 +0100, Arnd Bergmann wrote:
> > > On Tuesday 18 September 2012, Pawel Moll wrote:
> > 
> > Yes, but I2C devices are created by of_i2c_register_devices() which
> > knows how to interpret the reg property. And here, as these are normal
> > platform devices now (as you suggested), the of_platform_bus_create()
> > will treat it as a normal address, translate it via ranges and create
> > IORESOURCE_MEM out of it... And that's what I wanted to avoid. Maybe
> > unnecessarily?
> 
> You are right, this is a bit nasty, it should not attempt to do this.
> Basically the reg parsing logic has a hack to work around apply PowerMac
> firmware that misses some "ranges" properties.
> 
> I think we should change the DT parsing code to not create those
> resources if there is a bus that can't be translated.

Well, I actually think the current solution is fine - the default bus is
the platform one, I'm creating a platform device, so the code can assume
that reg is a normal address and create an IORESOURCE_MEM from it. It's
just that my platform device is not memory mapped, so I don't really
want this to happen.

One way of working this around would be not using "simple-bus" as the
parent of my config devices, so that normal of_platform_populate() will
not create them, and then have a simple dcc driver that will do nothing
except for creating platform devices in a custom way.

Paweł





More information about the linux-arm-kernel mailing list