150acfb2bSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */ 26d60b6eeSPalmer Dabbelt /* 36d60b6eeSPalmer Dabbelt * Copyright (C) 2016 SiFive 46d60b6eeSPalmer Dabbelt */ 56d60b6eeSPalmer Dabbelt 66b57ba8eSZong Li #ifndef _ASM_RISCV_PCI_H 76b57ba8eSZong Li #define _ASM_RISCV_PCI_H 86d60b6eeSPalmer Dabbelt 96d60b6eeSPalmer Dabbelt #include <linux/types.h> 106d60b6eeSPalmer Dabbelt #include <linux/slab.h> 116d60b6eeSPalmer Dabbelt #include <linux/dma-mapping.h> 126d60b6eeSPalmer Dabbelt 136d60b6eeSPalmer Dabbelt #include <asm/io.h> 146d60b6eeSPalmer Dabbelt 156d60b6eeSPalmer Dabbelt #define PCIBIOS_MIN_IO 0 166d60b6eeSPalmer Dabbelt #define PCIBIOS_MIN_MEM 0 176d60b6eeSPalmer Dabbelt 186d60b6eeSPalmer Dabbelt /* RISC-V shim does not initialize PCI bus */ 196d60b6eeSPalmer Dabbelt #define pcibios_assign_all_busses() 1 206d60b6eeSPalmer Dabbelt 216d60b6eeSPalmer Dabbelt extern int isa_dma_bridge_buggy; 226d60b6eeSPalmer Dabbelt 236d60b6eeSPalmer Dabbelt #ifdef CONFIG_PCI 246d60b6eeSPalmer Dabbelt static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) 256d60b6eeSPalmer Dabbelt { 266d60b6eeSPalmer Dabbelt /* no legacy IRQ on risc-v */ 276d60b6eeSPalmer Dabbelt return -ENODEV; 286d60b6eeSPalmer Dabbelt } 296d60b6eeSPalmer Dabbelt 306d60b6eeSPalmer Dabbelt static inline int pci_proc_domain(struct pci_bus *bus) 316d60b6eeSPalmer Dabbelt { 326d60b6eeSPalmer Dabbelt /* always show the domain in /proc */ 336d60b6eeSPalmer Dabbelt return 1; 346d60b6eeSPalmer Dabbelt } 35*4f0e8eefSAtish Patra 36*4f0e8eefSAtish Patra #ifdef CONFIG_NUMA 37*4f0e8eefSAtish Patra 38*4f0e8eefSAtish Patra static inline int pcibus_to_node(struct pci_bus *bus) 39*4f0e8eefSAtish Patra { 40*4f0e8eefSAtish Patra return dev_to_node(&bus->dev); 41*4f0e8eefSAtish Patra } 42*4f0e8eefSAtish Patra #ifndef cpumask_of_pcibus 43*4f0e8eefSAtish Patra #define cpumask_of_pcibus(bus) (pcibus_to_node(bus) == -1 ? \ 44*4f0e8eefSAtish Patra cpu_all_mask : \ 45*4f0e8eefSAtish Patra cpumask_of_node(pcibus_to_node(bus))) 46*4f0e8eefSAtish Patra #endif 47*4f0e8eefSAtish Patra #endif /* CONFIG_NUMA */ 48*4f0e8eefSAtish Patra 496d60b6eeSPalmer Dabbelt #endif /* CONFIG_PCI */ 506d60b6eeSPalmer Dabbelt 516b57ba8eSZong Li #endif /* _ASM_RISCV_PCI_H */ 52