| /* |
| * Copyright (C) 2016 SiFive |
| * |
| * This program is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU General Public License |
| * as published by the Free Software Foundation, version 2. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| */ |
| |
| #ifndef __ASM_RISCV_PCI_H |
| #define __ASM_RISCV_PCI_H |
| |
| #include <linux/types.h> |
| #include <linux/slab.h> |
| #include <linux/dma-mapping.h> |
| |
| #include <asm/io.h> |
| |
| #define PCIBIOS_MIN_IO 0 |
| #define PCIBIOS_MIN_MEM 0 |
| |
| /* RISC-V shim does not initialize PCI bus */ |
| #define pcibios_assign_all_busses() 1 |
| |
| /* We do not have an IOMMU */ |
| #define PCI_DMA_BUS_IS_PHYS 1 |
| |
| extern int isa_dma_bridge_buggy; |
| |
| #ifdef CONFIG_PCI |
| static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) |
| { |
| /* no legacy IRQ on risc-v */ |
| return -ENODEV; |
| } |
| |
| static inline int pci_proc_domain(struct pci_bus *bus) |
| { |
| /* always show the domain in /proc */ |
| return 1; |
| } |
| #endif /* CONFIG_PCI */ |
| |
| #endif /* __ASM_PCI_H */ |