bcma: implement host code support for PCIe Gen 2 devices

This is stil incomplete, so we don't add PCI IDs of new devices yet.
Purpose of this patch is to allow testing & adjusting rest of the code.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
Rafał Miłecki
2015-01-25 13:41:19 +01:00
committed by Kalle Valo
parent b504075f59
commit 8be08a39d4
3 changed files with 7 additions and 2 deletions

View File

@@ -13,10 +13,12 @@
static void bcma_host_pci_switch_core(struct bcma_device *core) static void bcma_host_pci_switch_core(struct bcma_device *core)
{ {
int win2 = core->bus->host_is_pcie2 ?
BCMA_PCIE2_BAR0_WIN2 : BCMA_PCI_BAR0_WIN2;
pci_write_config_dword(core->bus->host_pci, BCMA_PCI_BAR0_WIN, pci_write_config_dword(core->bus->host_pci, BCMA_PCI_BAR0_WIN,
core->addr); core->addr);
pci_write_config_dword(core->bus->host_pci, BCMA_PCI_BAR0_WIN2, pci_write_config_dword(core->bus->host_pci, win2, core->wrap);
core->wrap);
core->bus->mapped_core = core; core->bus->mapped_core = core;
bcma_debug(core->bus, "Switched to core: 0x%X\n", core->id.id); bcma_debug(core->bus, "Switched to core: 0x%X\n", core->id.id);
} }

View File

@@ -318,6 +318,7 @@ struct bcma_bus {
const struct bcma_host_ops *ops; const struct bcma_host_ops *ops;
enum bcma_hosttype hosttype; enum bcma_hosttype hosttype;
bool host_is_pcie2; /* Used for BCMA_HOSTTYPE_PCI only */
union { union {
/* Pointer to the PCI bus (only for BCMA_HOSTTYPE_PCI) */ /* Pointer to the PCI bus (only for BCMA_HOSTTYPE_PCI) */
struct pci_dev *host_pci; struct pci_dev *host_pci;

View File

@@ -64,6 +64,8 @@
#define BCMA_PCI_GPIO_XTAL 0x40 /* PCI config space GPIO 14 for Xtal powerup */ #define BCMA_PCI_GPIO_XTAL 0x40 /* PCI config space GPIO 14 for Xtal powerup */
#define BCMA_PCI_GPIO_PLL 0x80 /* PCI config space GPIO 15 for PLL powerdown */ #define BCMA_PCI_GPIO_PLL 0x80 /* PCI config space GPIO 15 for PLL powerdown */
#define BCMA_PCIE2_BAR0_WIN2 0x70
/* SiliconBackplane Address Map. /* SiliconBackplane Address Map.
* All regions may not exist on all chips. * All regions may not exist on all chips.
*/ */