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 int of_irq_parse_and_map_pci(const struct pci_dev *dev, u8 slot, u8 pin); 17 int of_pci_parse_bus_range(struct device_node *node, struct resource *res); 18 int of_get_pci_domain_nr(struct device_node *node); 19 int of_pci_get_max_link_speed(struct device_node *node); 20 void of_pci_check_probe_only(void); 21 int of_pci_map_rid(struct device_node *np, u32 rid, 22 const char *map_name, const char *map_mask_name, 23 struct device_node **target, u32 *id_out); 24 #else 25 static inline struct device_node *of_pci_find_child_device(struct device_node *parent, 26 unsigned int devfn) 27 { 28 return NULL; 29 } 30 31 static inline int of_pci_get_devfn(struct device_node *np) 32 { 33 return -EINVAL; 34 } 35 36 static inline int 37 of_irq_parse_and_map_pci(const struct pci_dev *dev, u8 slot, u8 pin) 38 { 39 return 0; 40 } 41 42 static inline int 43 of_pci_parse_bus_range(struct device_node *node, struct resource *res) 44 { 45 return -EINVAL; 46 } 47 48 static inline int 49 of_get_pci_domain_nr(struct device_node *node) 50 { 51 return -1; 52 } 53 54 static inline int of_pci_map_rid(struct device_node *np, u32 rid, 55 const char *map_name, const char *map_mask_name, 56 struct device_node **target, u32 *id_out) 57 { 58 return -EINVAL; 59 } 60 61 static inline int 62 of_pci_get_max_link_speed(struct device_node *node) 63 { 64 return -EINVAL; 65 } 66 67 static inline void of_pci_check_probe_only(void) { } 68 #endif 69 70 #if defined(CONFIG_OF_ADDRESS) 71 int of_pci_get_host_bridge_resources(struct device_node *dev, 72 unsigned char busno, unsigned char bus_max, 73 struct list_head *resources, resource_size_t *io_base); 74 #else 75 static inline int of_pci_get_host_bridge_resources(struct device_node *dev, 76 unsigned char busno, unsigned char bus_max, 77 struct list_head *resources, resource_size_t *io_base) 78 { 79 return -EINVAL; 80 } 81 #endif 82 83 #endif 84