1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Copyright (C) 2016 SiFive 4 */ 5 6 #ifndef _ASM_RISCV_PCI_H 7 #define _ASM_RISCV_PCI_H 8 9 #include <linux/types.h> 10 #include <linux/slab.h> 11 #include <linux/dma-mapping.h> 12 13 #include <asm/io.h> 14 15 #define PCIBIOS_MIN_IO 0 16 #define PCIBIOS_MIN_MEM 0 17 18 /* RISC-V shim does not initialize PCI bus */ 19 #define pcibios_assign_all_busses() 1 20 21 #define ARCH_GENERIC_PCI_MMAP_RESOURCE 1 22 23 extern int isa_dma_bridge_buggy; 24 25 #ifdef CONFIG_PCI 26 static inline int pci_proc_domain(struct pci_bus *bus) 27 { 28 /* always show the domain in /proc */ 29 return 1; 30 } 31 32 #ifdef CONFIG_NUMA 33 34 static inline int pcibus_to_node(struct pci_bus *bus) 35 { 36 return dev_to_node(&bus->dev); 37 } 38 #ifndef cpumask_of_pcibus 39 #define cpumask_of_pcibus(bus) (pcibus_to_node(bus) == -1 ? \ 40 cpu_all_mask : \ 41 cpumask_of_node(pcibus_to_node(bus))) 42 #endif 43 #endif /* CONFIG_NUMA */ 44 45 #endif /* CONFIG_PCI */ 46 47 #endif /* _ASM_RISCV_PCI_H */ 48