at v4.14 89 lines 2.3 kB view raw
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 8struct pci_dev; 9struct of_phandle_args; 10struct device_node; 11 12#ifdef CONFIG_OF_PCI 13int of_irq_parse_pci(const struct pci_dev *pdev, struct of_phandle_args *out_irq); 14struct device_node *of_pci_find_child_device(struct device_node *parent, 15 unsigned int devfn); 16int of_pci_get_devfn(struct device_node *np); 17int of_irq_parse_and_map_pci(const struct pci_dev *dev, u8 slot, u8 pin); 18int of_pci_parse_bus_range(struct device_node *node, struct resource *res); 19int of_get_pci_domain_nr(struct device_node *node); 20int of_pci_get_max_link_speed(struct device_node *node); 21void of_pci_check_probe_only(void); 22int 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 26static inline int of_irq_parse_pci(const struct pci_dev *pdev, struct of_phandle_args *out_irq) 27{ 28 return 0; 29} 30 31static inline struct device_node *of_pci_find_child_device(struct device_node *parent, 32 unsigned int devfn) 33{ 34 return NULL; 35} 36 37static inline int of_pci_get_devfn(struct device_node *np) 38{ 39 return -EINVAL; 40} 41 42static inline int 43of_irq_parse_and_map_pci(const struct pci_dev *dev, u8 slot, u8 pin) 44{ 45 return 0; 46} 47 48static inline int 49of_pci_parse_bus_range(struct device_node *node, struct resource *res) 50{ 51 return -EINVAL; 52} 53 54static inline int 55of_get_pci_domain_nr(struct device_node *node) 56{ 57 return -1; 58} 59 60static 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 67static inline int 68of_pci_get_max_link_speed(struct device_node *node) 69{ 70 return -EINVAL; 71} 72 73static inline void of_pci_check_probe_only(void) { } 74#endif 75 76#if defined(CONFIG_OF_ADDRESS) 77int 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 81static 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