PCI: iproc: Add PAXC interface support
authorRay Jui <rjui@broadcom.com>
Fri, 4 Dec 2015 17:34:59 +0000 (09:34 -0800)
committerBjorn Helgaas <bhelgaas@google.com>
Mon, 7 Dec 2015 16:35:29 +0000 (10:35 -0600)
commit943ebae781f519ecfecbfa1b997f15f59116e41d
treec8a23f7d62d7faff13e2266f521413e3333cd6b6
parente8b8318de645c04f8600cb5af6f6773a1878ee9d
PCI: iproc: Add PAXC interface support

Traditionally, all iProc PCIe root complexes use PAXB-based wrapper, with
an integrated on-chip Serdes to support external endpoint devices.  On
newer iProc platforms, a PAXC-based wrapper is introduced, for connection
with internally emulated PCIe endpoint devices in the ASIC.

Add support for PAXC-based iProc PCIe root complex in the iProc PCIe core
driver.  This change factors out common logic between PAXB and PAXC, and
uses tables to store register offsets that are different between PAXB and
PAXC.  This allows the driver to be scaled to support subsequent PAXC
revisions in the future.

Signed-off-by: Ray Jui <rjui@broadcom.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Scott Branden <sbranden@broadcom.com>
drivers/pci/host/pcie-iproc-platform.c
drivers/pci/host/pcie-iproc.c
drivers/pci/host/pcie-iproc.h