forked from mirrors/linux
		
	gpio/gpiolib-of: Create of_mm_gpiochip_remove
Create counterpart of of_mm_gpiochip_add(). This way the modules that can be removable do not duplicate the cleanup code. Suggested-by: Alexandre Courbot <gnurou@gmail.com> Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
		
							parent
							
								
									1d6902d3a6
								
							
						
					
					
						commit
						d621e8bae5
					
				
					 2 changed files with 18 additions and 0 deletions
				
			
		|  | @ -204,6 +204,23 @@ int of_mm_gpiochip_add(struct device_node *np, | ||||||
| } | } | ||||||
| EXPORT_SYMBOL(of_mm_gpiochip_add); | EXPORT_SYMBOL(of_mm_gpiochip_add); | ||||||
| 
 | 
 | ||||||
|  | /**
 | ||||||
|  |  * of_mm_gpiochip_remove - Remove memory mapped GPIO chip (bank) | ||||||
|  |  * @mm_gc:	pointer to the of_mm_gpio_chip allocated structure | ||||||
|  |  */ | ||||||
|  | void of_mm_gpiochip_remove(struct of_mm_gpio_chip *mm_gc) | ||||||
|  | { | ||||||
|  | 	struct gpio_chip *gc = &mm_gc->gc; | ||||||
|  | 
 | ||||||
|  | 	if (!mm_gc) | ||||||
|  | 		return; | ||||||
|  | 
 | ||||||
|  | 	gpiochip_remove(gc); | ||||||
|  | 	iounmap(mm_gc->regs); | ||||||
|  | 	kfree(gc->label); | ||||||
|  | } | ||||||
|  | EXPORT_SYMBOL(of_mm_gpiochip_remove); | ||||||
|  | 
 | ||||||
| #ifdef CONFIG_PINCTRL | #ifdef CONFIG_PINCTRL | ||||||
| static void of_gpiochip_add_pin_range(struct gpio_chip *chip) | static void of_gpiochip_add_pin_range(struct gpio_chip *chip) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -52,6 +52,7 @@ extern int of_get_named_gpio_flags(struct device_node *np, | ||||||
| 
 | 
 | ||||||
| extern int of_mm_gpiochip_add(struct device_node *np, | extern int of_mm_gpiochip_add(struct device_node *np, | ||||||
| 			      struct of_mm_gpio_chip *mm_gc); | 			      struct of_mm_gpio_chip *mm_gc); | ||||||
|  | extern void of_mm_gpiochip_remove(struct of_mm_gpio_chip *mm_gc); | ||||||
| 
 | 
 | ||||||
| extern void of_gpiochip_add(struct gpio_chip *gc); | extern void of_gpiochip_add(struct gpio_chip *gc); | ||||||
| extern void of_gpiochip_remove(struct gpio_chip *gc); | extern void of_gpiochip_remove(struct gpio_chip *gc); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Ricardo Ribalda Delgado
						Ricardo Ribalda Delgado