41 lines
		
	
	
		
			935 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			935 B
		
	
	
	
		
			C
		
	
	
	
	
	
/* SPDX-License-Identifier: GPL-2.0+ */
 | 
						|
/*
 | 
						|
 * GPIO based PCI Hotplug Driver.
 | 
						|
 *
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef _GPIOPHP_H
 | 
						|
#define _GPIOPHP_H
 | 
						|
 | 
						|
#include <linux/pci_hotplug.h>
 | 
						|
 | 
						|
struct gpio_hotplug_slot;
 | 
						|
 | 
						|
struct gpio_hotplug_slot_plat_ops {
 | 
						|
	int (*enable)(struct gpio_hotplug_slot *hp_slot);
 | 
						|
	int (*disable)(struct gpio_hotplug_slot *hp_slot);
 | 
						|
};
 | 
						|
 | 
						|
struct gpio_hotplug_slot {
 | 
						|
	struct device_node *np;
 | 
						|
	int slot_nr;
 | 
						|
	const struct gpio_hotplug_slot_plat_ops *plat_ops;
 | 
						|
	struct pci_dev *pdev;
 | 
						|
 | 
						|
	struct gpio_desc *gpiod;
 | 
						|
	unsigned int irq;
 | 
						|
 | 
						|
	struct hotplug_slot hotplug_slot;
 | 
						|
};
 | 
						|
 | 
						|
#ifdef CONFIG_HOTPLUG_PCI_GPIO
 | 
						|
int register_gpio_hotplug_slot(struct gpio_hotplug_slot *hp_slot);
 | 
						|
void unregister_gpio_hotplug_slot(struct gpio_hotplug_slot *hp_slot);
 | 
						|
#else
 | 
						|
static inline int register_gpio_hotplug_slot(struct gpio_hotplug_slot *hp_slot)
 | 
						|
{ return 0; }
 | 
						|
static inline void unregister_gpio_hotplug_slot(struct gpio_hotplug_slot *hp_slot) {}
 | 
						|
#endif
 | 
						|
 | 
						|
#endif //_GPIOPHP_H
 |