1/* SPDX-License-Identifier: GPL-2.0-or-later */
2#ifndef _ASM_MICROBLAZE_PCI_BRIDGE_H
3#define _ASM_MICROBLAZE_PCI_BRIDGE_H
4#ifdef __KERNEL__
5/*
6 */
7#include <linux/pci.h>
8#include <linux/list.h>
9#include <linux/ioport.h>
10
11struct device_node;
12
13#ifdef CONFIG_PCI
14extern struct list_head hose_list;
15extern int pcibios_vaddr_is_ioport(void __iomem *address);
16#else
17static inline int pcibios_vaddr_is_ioport(void __iomem *address)
18{
19	return 0;
20}
21#endif
22
23/*
24 * Structure of a PCI controller (host bridge)
25 */
26struct pci_controller {
27	struct pci_bus *bus;
28	struct list_head list_node;
29
30	void __iomem *io_base_virt;
31
32	/* Currently, we limit ourselves to 1 IO range and 3 mem
33	 * ranges since the common pci_bus structure can't handle more
34	 */
35	struct resource io_resource;
36};
37
38#ifdef CONFIG_PCI
39static inline int isa_vaddr_is_ioport(void __iomem *address)
40{
41	/* No specific ISA handling on ppc32 at this stage, it
42	 * all goes through PCI
43	 */
44	return 0;
45}
46#endif /* CONFIG_PCI */
47
48#endif	/* __KERNEL__ */
49#endif	/* _ASM_MICROBLAZE_PCI_BRIDGE_H */
50