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