forked from mirrors/linux
		
	gpio: rcar: Add minimal runtime PM support
This is just enough to automatically enable the functional clock, if present. Clock management during suspend/resume is still to be added. Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Cc: linux-gpio@vger.kernel.org Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
		
							parent
							
								
									9288ecad75
								
							
						
					
					
						commit
						df0c6c8023
					
				
					 1 changed files with 8 additions and 0 deletions
				
			
		|  | @ -26,6 +26,7 @@ | |||
| #include <linux/pinctrl/consumer.h> | ||||
| #include <linux/platform_data/gpio-rcar.h> | ||||
| #include <linux/platform_device.h> | ||||
| #include <linux/pm_runtime.h> | ||||
| #include <linux/spinlock.h> | ||||
| #include <linux/slab.h> | ||||
| 
 | ||||
|  | @ -377,6 +378,9 @@ static int gpio_rcar_probe(struct platform_device *pdev) | |||
| 
 | ||||
| 	platform_set_drvdata(pdev, p); | ||||
| 
 | ||||
| 	pm_runtime_enable(dev); | ||||
| 	pm_runtime_get_sync(dev); | ||||
| 
 | ||||
| 	io = platform_get_resource(pdev, IORESOURCE_MEM, 0); | ||||
| 	irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0); | ||||
| 
 | ||||
|  | @ -460,6 +464,8 @@ static int gpio_rcar_probe(struct platform_device *pdev) | |||
| err1: | ||||
| 	irq_domain_remove(p->irq_domain); | ||||
| err0: | ||||
| 	pm_runtime_put(dev); | ||||
| 	pm_runtime_disable(dev); | ||||
| 	return ret; | ||||
| } | ||||
| 
 | ||||
|  | @ -473,6 +479,8 @@ static int gpio_rcar_remove(struct platform_device *pdev) | |||
| 		return ret; | ||||
| 
 | ||||
| 	irq_domain_remove(p->irq_domain); | ||||
| 	pm_runtime_put(&pdev->dev); | ||||
| 	pm_runtime_disable(&pdev->dev); | ||||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Geert Uytterhoeven
						Geert Uytterhoeven