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 extern int isa_dma_bridge_buggy; 22 23 #ifdef CONFIG_PCI 24 static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) 25 { 26 /* no legacy IRQ on risc-v */ 27 return -ENODEV; 28 } 29 30 static inline int pci_proc_domain(struct pci_bus *bus) 31 { 32 /* always show the domain in /proc */ 33 return 1; 34 } 35 36 #ifdef CONFIG_NUMA 37 38 static inline int pcibus_to_node(struct pci_bus *bus) 39 { 40 return dev_to_node(&bus->dev); 41 } 42 #ifndef cpumask_of_pcibus 43 #define cpumask_of_pcibus(bus) (pcibus_to_node(bus) == -1 ? \ 44 cpu_all_mask : \ 45 cpumask_of_node(pcibus_to_node(bus))) 46 #endif 47 #endif /* CONFIG_NUMA */ 48 49 #endif /* CONFIG_PCI */ 50 51 #endif /* _ASM_RISCV_PCI_H */ 52