1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 /* 3 * Support PCI IO workaround 4 * 5 * (C) Copyright 2007-2008 TOSHIBA CORPORATION 6 */ 7 8 #ifndef _IO_WORKAROUNDS_H 9 #define _IO_WORKAROUNDS_H 10 11 #include <linux/io.h> 12 #include <asm/pci-bridge.h> 13 14 /* Bus info */ 15 struct iowa_bus { 16 struct pci_controller *phb; 17 struct ppc_pci_io *ops; 18 void *private; 19 }; 20 21 void iowa_register_bus(struct pci_controller *, struct ppc_pci_io *, 22 int (*)(struct iowa_bus *, void *), void *); 23 struct iowa_bus *iowa_mem_find_bus(const PCI_IO_ADDR); 24 struct iowa_bus *iowa_pio_find_bus(unsigned long); 25 26 extern struct ppc_pci_io spiderpci_ops; 27 extern int spiderpci_iowa_init(struct iowa_bus *, void *); 28 29 #define SPIDER_PCI_REG_BASE 0xd000 30 #define SPIDER_PCI_REG_SIZE 0x1000 31 #define SPIDER_PCI_VCI_CNTL_STAT 0x0110 32 #define SPIDER_PCI_DUMMY_READ 0x0810 33 #define SPIDER_PCI_DUMMY_READ_BASE 0x0814 34 35 #endif /* _IO_WORKAROUNDS_H */ 36