[PATCH 3/9] ARM: versatile: add DT based PCI detection

Rob Herring robherring2 at gmail.com
Thu Jan 8 13:34:08 PST 2015


On Thu, Jan 8, 2015 at 1:37 PM, Linus Walleij <linus.walleij at linaro.org> wrote:
> On Tue, Dec 30, 2014 at 8:28 PM, Rob Herring <robherring2 at gmail.com> wrote:
>
>> From: Rob Herring <robh at kernel.org>
>>
>> Disable the Versatile PCI DT node when no PCI backplane is detected. This
>> will prevent the Versatile PCI driver from probing when PCI is not
>> populated.
>>
>> Signed-off-by: Rob Herring <robh at kernel.org>
>> Cc: Russell King <linux at arm.linux.org.uk>
>> Cc: Linus Walleij <linus.walleij at linaro.org>
>
> (...)
>> +       /* Check if PCI backplane is detected */
>> +       val = __raw_readl(base + VERSATILE_SYS_PCICTL_OFFSET);
>
> I think this kind of random syscon register access should be handled
> using the mfd/syscon.c hub and looked up in some way to be used
> by the driver.

Perhaps, but I've not figured out how much of VExpress syscon can be
used for Versatile. I looked at it briefly, but it appeared to be more
work that I have time for ATM. We still have other accesses to system
registers in Versatile as well. So if we want to merge all this
anytime soon, the options are:

- this patch
- Create a versatilepb-pci.dts which includes versatilepb.dts and enables PCI
- Default to PCI enabled (for QEMU) in the dts and users have to
disable in their dts if they don't have a PCI backplane.

> I'm thinking along the pattern of adding code in drivers/*
> by the pattern of e.g.
> drivers/video/fbdev/amba-clcd-versatile.c
> i.e. an add-on that gets compiled-in only for those platform
> but still married to the main driver.

One difference here is the PCI driver is pretty much only ever going
to be for a single platform.

Rob



More information about the linux-arm-kernel mailing list