16d60b6eeSPalmer Dabbelt /* 26d60b6eeSPalmer Dabbelt * Copyright (C) 2016 SiFive 36d60b6eeSPalmer Dabbelt * 46d60b6eeSPalmer Dabbelt * This program is free software; you can redistribute it and/or 56d60b6eeSPalmer Dabbelt * modify it under the terms of the GNU General Public License 66d60b6eeSPalmer Dabbelt * as published by the Free Software Foundation, version 2. 76d60b6eeSPalmer Dabbelt * 86d60b6eeSPalmer Dabbelt * This program is distributed in the hope that it will be useful, 96d60b6eeSPalmer Dabbelt * but WITHOUT ANY WARRANTY; without even the implied warranty of 106d60b6eeSPalmer Dabbelt * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 116d60b6eeSPalmer Dabbelt * GNU General Public License for more details. 126d60b6eeSPalmer Dabbelt */ 136d60b6eeSPalmer Dabbelt 146d60b6eeSPalmer Dabbelt #ifndef __ASM_RISCV_PCI_H 156d60b6eeSPalmer Dabbelt #define __ASM_RISCV_PCI_H 166d60b6eeSPalmer Dabbelt 176d60b6eeSPalmer Dabbelt #include <linux/types.h> 186d60b6eeSPalmer Dabbelt #include <linux/slab.h> 196d60b6eeSPalmer Dabbelt #include <linux/dma-mapping.h> 206d60b6eeSPalmer Dabbelt 216d60b6eeSPalmer Dabbelt #include <asm/io.h> 226d60b6eeSPalmer Dabbelt 236d60b6eeSPalmer Dabbelt #define PCIBIOS_MIN_IO 0 246d60b6eeSPalmer Dabbelt #define PCIBIOS_MIN_MEM 0 256d60b6eeSPalmer Dabbelt 266d60b6eeSPalmer Dabbelt /* RISC-V shim does not initialize PCI bus */ 276d60b6eeSPalmer Dabbelt #define pcibios_assign_all_busses() 1 286d60b6eeSPalmer Dabbelt 296d60b6eeSPalmer Dabbelt /* We do not have an IOMMU */ 306d60b6eeSPalmer Dabbelt #define PCI_DMA_BUS_IS_PHYS 1 316d60b6eeSPalmer Dabbelt 326d60b6eeSPalmer Dabbelt extern int isa_dma_bridge_buggy; 336d60b6eeSPalmer Dabbelt 346d60b6eeSPalmer Dabbelt #ifdef CONFIG_PCI 356d60b6eeSPalmer Dabbelt static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) 366d60b6eeSPalmer Dabbelt { 376d60b6eeSPalmer Dabbelt /* no legacy IRQ on risc-v */ 386d60b6eeSPalmer Dabbelt return -ENODEV; 396d60b6eeSPalmer Dabbelt } 406d60b6eeSPalmer Dabbelt 416d60b6eeSPalmer Dabbelt static inline int pci_proc_domain(struct pci_bus *bus) 426d60b6eeSPalmer Dabbelt { 436d60b6eeSPalmer Dabbelt /* always show the domain in /proc */ 446d60b6eeSPalmer Dabbelt return 1; 456d60b6eeSPalmer Dabbelt } 466d60b6eeSPalmer Dabbelt #endif /* CONFIG_PCI */ 476d60b6eeSPalmer Dabbelt 486d60b6eeSPalmer Dabbelt #endif /* __ASM_PCI_H */ 49