diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/bcma/bcma_driver_pci.h | 38 | ||||
| -rw-r--r-- | include/linux/bcma/bcma_regs.h | 27 |
2 files changed, 65 insertions, 0 deletions
diff --git a/include/linux/bcma/bcma_driver_pci.h b/include/linux/bcma/bcma_driver_pci.h index 679d4cab4547..46c71e27d31f 100644 --- a/include/linux/bcma/bcma_driver_pci.h +++ b/include/linux/bcma/bcma_driver_pci.h | |||
| @@ -160,9 +160,44 @@ struct pci_dev; | |||
| 160 | /* PCIcore specific boardflags */ | 160 | /* PCIcore specific boardflags */ |
| 161 | #define BCMA_CORE_PCI_BFL_NOPCI 0x00000400 /* Board leaves PCI floating */ | 161 | #define BCMA_CORE_PCI_BFL_NOPCI 0x00000400 /* Board leaves PCI floating */ |
| 162 | 162 | ||
| 163 | /* PCIE Config space accessing MACROS */ | ||
| 164 | #define BCMA_CORE_PCI_CFG_BUS_SHIFT 24 /* Bus shift */ | ||
| 165 | #define BCMA_CORE_PCI_CFG_SLOT_SHIFT 19 /* Slot/Device shift */ | ||
| 166 | #define BCMA_CORE_PCI_CFG_FUN_SHIFT 16 /* Function shift */ | ||
| 167 | #define BCMA_CORE_PCI_CFG_OFF_SHIFT 0 /* Register shift */ | ||
| 168 | |||
| 169 | #define BCMA_CORE_PCI_CFG_BUS_MASK 0xff /* Bus mask */ | ||
| 170 | #define BCMA_CORE_PCI_CFG_SLOT_MASK 0x1f /* Slot/Device mask */ | ||
| 171 | #define BCMA_CORE_PCI_CFG_FUN_MASK 7 /* Function mask */ | ||
| 172 | #define BCMA_CORE_PCI_CFG_OFF_MASK 0xfff /* Register mask */ | ||
| 173 | |||
| 174 | /* PCIE Root Capability Register bits (Host mode only) */ | ||
| 175 | #define BCMA_CORE_PCI_RC_CRS_VISIBILITY 0x0001 | ||
| 176 | |||
| 177 | struct bcma_drv_pci; | ||
| 178 | |||
| 179 | #ifdef CONFIG_BCMA_DRIVER_PCI_HOSTMODE | ||
| 180 | struct bcma_drv_pci_host { | ||
| 181 | struct bcma_drv_pci *pdev; | ||
| 182 | |||
| 183 | u32 host_cfg_addr; | ||
| 184 | spinlock_t cfgspace_lock; | ||
| 185 | |||
| 186 | struct pci_controller pci_controller; | ||
| 187 | struct pci_ops pci_ops; | ||
| 188 | struct resource mem_resource; | ||
| 189 | struct resource io_resource; | ||
| 190 | }; | ||
| 191 | #endif | ||
| 192 | |||
| 163 | struct bcma_drv_pci { | 193 | struct bcma_drv_pci { |
| 164 | struct bcma_device *core; | 194 | struct bcma_device *core; |
| 165 | u8 setup_done:1; | 195 | u8 setup_done:1; |
| 196 | u8 hostmode:1; | ||
| 197 | |||
| 198 | #ifdef CONFIG_BCMA_DRIVER_PCI_HOSTMODE | ||
| 199 | struct bcma_drv_pci_host *host_controller; | ||
| 200 | #endif | ||
| 166 | }; | 201 | }; |
| 167 | 202 | ||
| 168 | /* Register access */ | 203 | /* Register access */ |
| @@ -173,4 +208,7 @@ extern void __devinit bcma_core_pci_init(struct bcma_drv_pci *pc); | |||
| 173 | extern int bcma_core_pci_irq_ctl(struct bcma_drv_pci *pc, | 208 | extern int bcma_core_pci_irq_ctl(struct bcma_drv_pci *pc, |
| 174 | struct bcma_device *core, bool enable); | 209 | struct bcma_device *core, bool enable); |
| 175 | 210 | ||
| 211 | extern int bcma_core_pci_pcibios_map_irq(const struct pci_dev *dev); | ||
| 212 | extern int bcma_core_pci_plat_dev_init(struct pci_dev *dev); | ||
| 213 | |||
| 176 | #endif /* LINUX_BCMA_DRIVER_PCI_H_ */ | 214 | #endif /* LINUX_BCMA_DRIVER_PCI_H_ */ |
diff --git a/include/linux/bcma/bcma_regs.h b/include/linux/bcma/bcma_regs.h index 9faae2ae02e8..5a71d5719640 100644 --- a/include/linux/bcma/bcma_regs.h +++ b/include/linux/bcma/bcma_regs.h | |||
| @@ -56,4 +56,31 @@ | |||
| 56 | #define BCMA_PCI_GPIO_XTAL 0x40 /* PCI config space GPIO 14 for Xtal powerup */ | 56 | #define BCMA_PCI_GPIO_XTAL 0x40 /* PCI config space GPIO 14 for Xtal powerup */ |
| 57 | #define BCMA_PCI_GPIO_PLL 0x80 /* PCI config space GPIO 15 for PLL powerdown */ | 57 | #define BCMA_PCI_GPIO_PLL 0x80 /* PCI config space GPIO 15 for PLL powerdown */ |
| 58 | 58 | ||
| 59 | /* SiliconBackplane Address Map. | ||
| 60 | * All regions may not exist on all chips. | ||
| 61 | */ | ||
| 62 | #define BCMA_SOC_SDRAM_BASE 0x00000000U /* Physical SDRAM */ | ||
| 63 | #define BCMA_SOC_PCI_MEM 0x08000000U /* Host Mode sb2pcitranslation0 (64 MB) */ | ||
| 64 | #define BCMA_SOC_PCI_MEM_SZ (64 * 1024 * 1024) | ||
| 65 | #define BCMA_SOC_PCI_CFG 0x0c000000U /* Host Mode sb2pcitranslation1 (64 MB) */ | ||
| 66 | #define BCMA_SOC_SDRAM_SWAPPED 0x10000000U /* Byteswapped Physical SDRAM */ | ||
| 67 | #define BCMA_SOC_SDRAM_R2 0x80000000U /* Region 2 for sdram (512 MB) */ | ||
| 68 | |||
| 69 | |||
| 70 | #define BCMA_SOC_PCI_DMA 0x40000000U /* Client Mode sb2pcitranslation2 (1 GB) */ | ||
| 71 | #define BCMA_SOC_PCI_DMA2 0x80000000U /* Client Mode sb2pcitranslation2 (1 GB) */ | ||
| 72 | #define BCMA_SOC_PCI_DMA_SZ 0x40000000U /* Client Mode sb2pcitranslation2 size in bytes */ | ||
| 73 | #define BCMA_SOC_PCIE_DMA_L32 0x00000000U /* PCIE Client Mode sb2pcitranslation2 | ||
| 74 | * (2 ZettaBytes), low 32 bits | ||
| 75 | */ | ||
| 76 | #define BCMA_SOC_PCIE_DMA_H32 0x80000000U /* PCIE Client Mode sb2pcitranslation2 | ||
| 77 | * (2 ZettaBytes), high 32 bits | ||
| 78 | */ | ||
| 79 | |||
| 80 | #define BCMA_SOC_PCI1_MEM 0x40000000U /* Host Mode sb2pcitranslation0 (64 MB) */ | ||
| 81 | #define BCMA_SOC_PCI1_CFG 0x44000000U /* Host Mode sb2pcitranslation1 (64 MB) */ | ||
| 82 | #define BCMA_SOC_PCIE1_DMA_H32 0xc0000000U /* PCIE Client Mode sb2pcitranslation2 | ||
| 83 | * (2 ZettaBytes), high 32 bits | ||
| 84 | */ | ||
| 85 | |||
| 59 | #endif /* LINUX_BCMA_REGS_H_ */ | 86 | #endif /* LINUX_BCMA_REGS_H_ */ |
