1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef __OF_PCI_H 3 #define __OF_PCI_H 4 5 #include <linux/pci.h> 6 #include <linux/msi.h> 7 8 struct pci_dev; 9 struct of_phandle_args; 10 struct device_node; 11 12 #if IS_ENABLED(CONFIG_OF) && IS_ENABLED(CONFIG_PCI) 13 struct device_node *of_pci_find_child_device(struct device_node *parent, 14 unsigned int devfn); 15 int of_pci_get_devfn(struct device_node *np); 16 void of_pci_check_probe_only(void); 17 int of_pci_map_rid(struct device_node *np, u32 rid, 18 const char *map_name, const char *map_mask_name, 19 struct device_node **target, u32 *id_out); 20 #else 21 static inline struct device_node *of_pci_find_child_device(struct device_node *parent, 22 unsigned int devfn) 23 { 24 return NULL; 25 } 26 27 static inline int of_pci_get_devfn(struct device_node *np) 28 { 29 return -EINVAL; 30 } 31 32 static inline int of_pci_map_rid(struct device_node *np, u32 rid, 33 const char *map_name, const char *map_mask_name, 34 struct device_node **target, u32 *id_out) 35 { 36 return -EINVAL; 37 } 38 39 static inline void of_pci_check_probe_only(void) { } 40 #endif 41 42 #if IS_ENABLED(CONFIG_OF_IRQ) 43 int of_irq_parse_and_map_pci(const struct pci_dev *dev, u8 slot, u8 pin); 44 #else 45 static inline int 46 of_irq_parse_and_map_pci(const struct pci_dev *dev, u8 slot, u8 pin) 47 { 48 return 0; 49 } 50 #endif 51 52 #endif 53