[PATCH v2 3/3] PCI: ARM: add support for generic PCI host controller
From: Rob Herring <hidden>
Date: 2014-02-13 19:52:52
Also in:
linux-pci
On Thu, Feb 13, 2014 at 10:22 AM, Kumar Gala [off-list ref] wrote:
On Feb 13, 2014, at 5:07 AM, Will Deacon [off-list ref] wrote:quoted
On Wed, Feb 12, 2014 at 09:51:48PM +0000, Kumar Gala wrote:quoted
On Feb 12, 2014, at 2:16 PM, Will Deacon [off-list ref] wrote:quoted
This patch adds support for a generic PCI host controller, such as a firmware-initialised device with static windows or an emulation by something such as kvmtool. The controller itself has no configuration registers and has its address spaces described entirely by the device-tree (using the bindings from ePAPR). Both CAM and ECAM are supported for Config Space accesses. Corresponding documentation is added for the DT binding. Signed-off-by: Will Deacon <redacted> --- .../devicetree/bindings/pci/arm-generic-pci.txt | 51 ++++ drivers/pci/host/Kconfig | 7 + drivers/pci/host/Makefile | 1 + drivers/pci/host/pci-arm-generic.c | 318 +++++++++++++++++++++ 4 files changed, 377 insertions(+) create mode 100644 Documentation/devicetree/bindings/pci/arm-generic-pci.txt create mode 100644 drivers/pci/host/pci-arm-generic.cdiff --git a/Documentation/devicetree/bindings/pci/arm-generic-pci.txt b/Documentation/devicetree/bindings/pci/arm-generic-pci.txt new file mode 100644 index 000000000000..cc7a35ecfa2d --- /dev/null +++ b/Documentation/devicetree/bindings/pci/arm-generic-pci.txt@@ -0,0 +1,51 @@ +* ARM generic PCI host controller + +Firmware-initialised PCI host controllers and PCI emulations, such as the +virtio-pci implementations found in kvmtool and other para-virtualised +systems, do not require driver support for complexities such as regulator and +clock management. In fact, the controller may not even require the +configuration of a control interface by the operating system, instead +presenting a set of fixed windows describing a subset of IO, Memory and +Configuration Spaces. + +Such a controller can be described purely in terms of the standardized device +tree bindings communicated in pci.txt: + +- compatible : Must be "arm,pci-cam-generic" or "arm,pci-ecam-generic" + depending on the layout of configuration space (CAM vs + ECAM respectively)What's arm specific here? I don't have a great suggestion, but seems odd for this to be vendor prefixed with "arm".Happy to change it, but I'm also struggling for names. Maybe "linux,..."?I was thinking that as well, I'd say go with "linux,".
Just drop the prefix altogether. I'm wondering if this should have host or rc in the name. Rob