Re: [PATCH] of: Have of_device_add call platform_device_add rather than device_add

From: Grant Likely
Date: Thu Nov 22 2012 - 14:24:03 EST


On Wed, 21 Nov 2012 11:14:30 -0700, Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx> wrote:
> On Wed, Nov 21, 2012 at 06:07:46PM +0000, Grant Likely wrote:
>
> > > Which is nesting the generic gpio driver under a larger region..
> >
> > Try two sibling nodes with overlapping addresses. There are powerpc
> > device trees doing that even though it isn't legal by the ofw and
> > epapr specs.
>
> Both my examples were using sibling nodes in the OF tree.
>
> pex@e0000000 {
> device_type = "pci";
> ranges = <0x02000000 0x00000000 0x00000000 0xe0000000 0x0 0x8000000>;
> bus-range = <0x0 0xFF>;
> chip@0 {
> ranges = <0x02000000 0x00000000 0x00000000 0x02000000 0x00000000 0x00000000 0x0 0x8000000>;
> chip_control@0 {
> compatible = "orc,chip,control";
> assigned-addresses = <0x02000000 0x0 0x0 0x0 4096>;
> };
>
> gpio3: chip_gpio@8 {
> #gpio-cells = <2>;
> compatible = "linux,basic-mmio-gpio";
> gpio-controller;
> reg-names = "dat", "set", "dirin";
> assigned-addresses = <0x02000000 0x0 0x8 0x0 4>,
> <0x02000000 0x0 0xc 0x0 4>,
> <0x02000000 0x0 0x10 0x0 4>;
> };
>
> Non-conformant yes, but it is the simplest way to get linux to bind
> two drivers to the same memory space.

Hmm... I've not tried it with assigned-address. I tried with two sibling
platform devices using just the 'reg' property. That the kernel will
complain about. For powerpc-only, the patch I posted allows the device
to get registered anyway even though the range incorrectly overlaps.

g.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/