forked from mirrors/linux
		
	mfd: ucb1x00: Use new GPIO line value setter callbacks
struct gpio_chip now has callbacks for setting line values that return an integer, allowing to indicate failures. Convert the driver to using them. Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> Link: https://lore.kernel.org/r/20250407-gpiochip-set-rv-mfd-v1-3-43f4d86d01d1@linaro.org Signed-off-by: Lee Jones <lee@kernel.org>
This commit is contained in:
		
							parent
							
								
									651974212c
								
							
						
					
					
						commit
						cf5c739af8
					
				
					 1 changed files with 5 additions and 2 deletions
				
			
		|  | @ -104,7 +104,8 @@ unsigned int ucb1x00_io_read(struct ucb1x00 *ucb) | ||||||
| 	return ucb1x00_reg_read(ucb, UCB_IO_DATA); | 	return ucb1x00_reg_read(ucb, UCB_IO_DATA); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static void ucb1x00_gpio_set(struct gpio_chip *chip, unsigned offset, int value) | static int ucb1x00_gpio_set(struct gpio_chip *chip, unsigned int offset, | ||||||
|  | 			    int value) | ||||||
| { | { | ||||||
| 	struct ucb1x00 *ucb = gpiochip_get_data(chip); | 	struct ucb1x00 *ucb = gpiochip_get_data(chip); | ||||||
| 	unsigned long flags; | 	unsigned long flags; | ||||||
|  | @ -119,6 +120,8 @@ static void ucb1x00_gpio_set(struct gpio_chip *chip, unsigned offset, int value) | ||||||
| 	ucb1x00_reg_write(ucb, UCB_IO_DATA, ucb->io_out); | 	ucb1x00_reg_write(ucb, UCB_IO_DATA, ucb->io_out); | ||||||
| 	ucb1x00_disable(ucb); | 	ucb1x00_disable(ucb); | ||||||
| 	spin_unlock_irqrestore(&ucb->io_lock, flags); | 	spin_unlock_irqrestore(&ucb->io_lock, flags); | ||||||
|  | 
 | ||||||
|  | 	return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static int ucb1x00_gpio_get(struct gpio_chip *chip, unsigned offset) | static int ucb1x00_gpio_get(struct gpio_chip *chip, unsigned offset) | ||||||
|  | @ -567,7 +570,7 @@ static int ucb1x00_probe(struct mcp *mcp) | ||||||
| 		ucb->gpio.owner = THIS_MODULE; | 		ucb->gpio.owner = THIS_MODULE; | ||||||
| 		ucb->gpio.base = pdata->gpio_base; | 		ucb->gpio.base = pdata->gpio_base; | ||||||
| 		ucb->gpio.ngpio = 10; | 		ucb->gpio.ngpio = 10; | ||||||
| 		ucb->gpio.set = ucb1x00_gpio_set; | 		ucb->gpio.set_rv = ucb1x00_gpio_set; | ||||||
| 		ucb->gpio.get = ucb1x00_gpio_get; | 		ucb->gpio.get = ucb1x00_gpio_get; | ||||||
| 		ucb->gpio.direction_input = ucb1x00_gpio_direction_input; | 		ucb->gpio.direction_input = ucb1x00_gpio_direction_input; | ||||||
| 		ucb->gpio.direction_output = ucb1x00_gpio_direction_output; | 		ucb->gpio.direction_output = ucb1x00_gpio_direction_output; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Bartosz Golaszewski
						Bartosz Golaszewski