On Thu, Jan 8, 2015 at 1:37 PM, Linus Walleij [off-list ref] wrote:
On Tue, Dec 30, 2014 at 8:28 PM, Rob Herring [off-list ref] wrote:
quoted
From: Rob Herring <robh@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@kernel.org>
Cc: Russell King <redacted>
Cc: Linus Walleij <redacted>
(...)
quoted
+ /* 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