diff options
Diffstat (limited to 'arch/powerpc/sysdev/cpm1.c')
| -rw-r--r-- | arch/powerpc/sysdev/cpm1.c | 33 | 
1 files changed, 8 insertions, 25 deletions
diff --git a/arch/powerpc/sysdev/cpm1.c b/arch/powerpc/sysdev/cpm1.c index c6f154b602fb..5240d3a74a10 100644 --- a/arch/powerpc/sysdev/cpm1.c +++ b/arch/powerpc/sysdev/cpm1.c @@ -629,8 +629,9 @@ static int cpm1_gpio16_dir_in(struct gpio_chip *gc, unsigned int gpio)  	return 0;  } -int cpm1_gpiochip_add16(struct device_node *np) +int cpm1_gpiochip_add16(struct device *dev)  { +	struct device_node *np = dev->of_node;  	struct cpm1_gpio16_chip *cpm1_gc;  	struct of_mm_gpio_chip *mm_gc;  	struct gpio_chip *gc; @@ -660,6 +661,8 @@ int cpm1_gpiochip_add16(struct device_node *np)  	gc->get = cpm1_gpio16_get;  	gc->set = cpm1_gpio16_set;  	gc->to_irq = cpm1_gpio16_to_irq; +	gc->parent = dev; +	gc->owner = THIS_MODULE;  	return of_mm_gpiochip_add_data(np, mm_gc, cpm1_gc);  } @@ -755,8 +758,9 @@ static int cpm1_gpio32_dir_in(struct gpio_chip *gc, unsigned int gpio)  	return 0;  } -int cpm1_gpiochip_add32(struct device_node *np) +int cpm1_gpiochip_add32(struct device *dev)  { +	struct device_node *np = dev->of_node;  	struct cpm1_gpio32_chip *cpm1_gc;  	struct of_mm_gpio_chip *mm_gc;  	struct gpio_chip *gc; @@ -776,31 +780,10 @@ int cpm1_gpiochip_add32(struct device_node *np)  	gc->direction_output = cpm1_gpio32_dir_out;  	gc->get = cpm1_gpio32_get;  	gc->set = cpm1_gpio32_set; +	gc->parent = dev; +	gc->owner = THIS_MODULE;  	return of_mm_gpiochip_add_data(np, mm_gc, cpm1_gc);  } -static int cpm_init_par_io(void) -{ -	struct device_node *np; - -	for_each_compatible_node(np, NULL, "fsl,cpm1-pario-bank-a") -		cpm1_gpiochip_add16(np); - -	for_each_compatible_node(np, NULL, "fsl,cpm1-pario-bank-b") -		cpm1_gpiochip_add32(np); - -	for_each_compatible_node(np, NULL, "fsl,cpm1-pario-bank-c") -		cpm1_gpiochip_add16(np); - -	for_each_compatible_node(np, NULL, "fsl,cpm1-pario-bank-d") -		cpm1_gpiochip_add16(np); - -	/* Port E uses CPM2 layout */ -	for_each_compatible_node(np, NULL, "fsl,cpm1-pario-bank-e") -		cpm2_gpiochip_add32(np); -	return 0; -} -arch_initcall(cpm_init_par_io); -  #endif /* CONFIG_8xx_GPIO */  |