Skip to content

Commit a6e160e

Browse files
committed
Merge tag 'arm-gpio-set-conversion-for-v6.16-rc1' of https://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux into soc/arm
ARM: convert board-file GPIO chips to using new value setters struct gpio_chip now has callbacks for setting line values that return an integer, allowing to indicate failures. We're in the process of converting all GPIO drivers to using the new API. This series converts all ARM board-file level controllers. * tag 'arm-gpio-set-conversion-for-v6.16-rc1' of https://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux: ARM: s3c/gpio: use new line value setter callbacks ARM: scoop/gpio: use new line value setter callbacks ARM: sa1100/gpio: use new line value setter callbacks ARM: orion/gpio: use new line value setter callbacks
2 parents 9c32cda + fb52f32 commit a6e160e

File tree

4 files changed

+18
-9
lines changed

4 files changed

+18
-9
lines changed

arch/arm/common/sa1111.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -563,7 +563,7 @@ static int sa1111_gpio_get(struct gpio_chip *gc, unsigned offset)
563563
return !!(readl_relaxed(reg + SA1111_GPIO_PXDRR) & mask);
564564
}
565565

566-
static void sa1111_gpio_set(struct gpio_chip *gc, unsigned offset, int value)
566+
static int sa1111_gpio_set(struct gpio_chip *gc, unsigned int offset, int value)
567567
{
568568
struct sa1111 *sachip = gc_to_sa1111(gc);
569569
unsigned long flags;
@@ -574,6 +574,8 @@ static void sa1111_gpio_set(struct gpio_chip *gc, unsigned offset, int value)
574574
sa1111_gpio_modify(reg + SA1111_GPIO_PXDWR, mask, value ? mask : 0);
575575
sa1111_gpio_modify(reg + SA1111_GPIO_PXSSR, mask, value ? mask : 0);
576576
spin_unlock_irqrestore(&sachip->lock, flags);
577+
578+
return 0;
577579
}
578580

579581
static void sa1111_gpio_set_multiple(struct gpio_chip *gc, unsigned long *mask,
@@ -613,7 +615,7 @@ static int sa1111_setup_gpios(struct sa1111 *sachip)
613615
sachip->gc.direction_input = sa1111_gpio_direction_input;
614616
sachip->gc.direction_output = sa1111_gpio_direction_output;
615617
sachip->gc.get = sa1111_gpio_get;
616-
sachip->gc.set = sa1111_gpio_set;
618+
sachip->gc.set_rv = sa1111_gpio_set;
617619
sachip->gc.set_multiple = sa1111_gpio_set_multiple;
618620
sachip->gc.to_irq = sa1111_gpio_to_irq;
619621
sachip->gc.base = -1;

arch/arm/common/scoop.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,8 @@ static void __scoop_gpio_set(struct scoop_dev *sdev,
6363
iowrite16(gpwr, sdev->base + SCOOP_GPWR);
6464
}
6565

66-
static void scoop_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
66+
static int scoop_gpio_set(struct gpio_chip *chip, unsigned int offset,
67+
int value)
6768
{
6869
struct scoop_dev *sdev = gpiochip_get_data(chip);
6970
unsigned long flags;
@@ -73,6 +74,8 @@ static void scoop_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
7374
__scoop_gpio_set(sdev, offset, value);
7475

7576
spin_unlock_irqrestore(&sdev->scoop_lock, flags);
77+
78+
return 0;
7679
}
7780

7881
static int scoop_gpio_get(struct gpio_chip *chip, unsigned offset)
@@ -215,7 +218,7 @@ static int scoop_probe(struct platform_device *pdev)
215218
devptr->gpio.label = dev_name(&pdev->dev);
216219
devptr->gpio.base = inf->gpio_base;
217220
devptr->gpio.ngpio = 12; /* PA11 = 0, PA12 = 1, etc. up to PA22 = 11 */
218-
devptr->gpio.set = scoop_gpio_set;
221+
devptr->gpio.set_rv = scoop_gpio_set;
219222
devptr->gpio.get = scoop_gpio_get;
220223
devptr->gpio.direction_input = scoop_gpio_direction_input;
221224
devptr->gpio.direction_output = scoop_gpio_direction_output;

arch/arm/mach-s3c/gpio-samsung.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -430,8 +430,8 @@ static int samsung_gpiolib_4bit2_output(struct gpio_chip *chip,
430430
return 0;
431431
}
432432

433-
static void samsung_gpiolib_set(struct gpio_chip *chip,
434-
unsigned offset, int value)
433+
static int samsung_gpiolib_set(struct gpio_chip *chip, unsigned int offset,
434+
int value)
435435
{
436436
struct samsung_gpio_chip *ourchip = to_samsung_gpio(chip);
437437
void __iomem *base = ourchip->base;
@@ -447,6 +447,8 @@ static void samsung_gpiolib_set(struct gpio_chip *chip,
447447
__raw_writel(dat, base + 0x04);
448448

449449
samsung_gpio_unlock(ourchip, flags);
450+
451+
return 0;
450452
}
451453

452454
static int samsung_gpiolib_get(struct gpio_chip *chip, unsigned offset)
@@ -515,7 +517,7 @@ static void __init samsung_gpiolib_add(struct samsung_gpio_chip *chip)
515517
if (!gc->direction_output)
516518
gc->direction_output = samsung_gpiolib_2bit_output;
517519
if (!gc->set)
518-
gc->set = samsung_gpiolib_set;
520+
gc->set_rv = samsung_gpiolib_set;
519521
if (!gc->get)
520522
gc->get = samsung_gpiolib_get;
521523

arch/arm/plat-orion/gpio.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -211,14 +211,16 @@ orion_gpio_direction_output(struct gpio_chip *chip, unsigned pin, int value)
211211
return 0;
212212
}
213213

214-
static void orion_gpio_set(struct gpio_chip *chip, unsigned pin, int value)
214+
static int orion_gpio_set(struct gpio_chip *chip, unsigned int pin, int value)
215215
{
216216
struct orion_gpio_chip *ochip = gpiochip_get_data(chip);
217217
unsigned long flags;
218218

219219
spin_lock_irqsave(&ochip->lock, flags);
220220
__set_level(ochip, pin, value);
221221
spin_unlock_irqrestore(&ochip->lock, flags);
222+
223+
return 0;
222224
}
223225

224226
static int orion_gpio_to_irq(struct gpio_chip *chip, unsigned pin)
@@ -540,7 +542,7 @@ void __init orion_gpio_init(int gpio_base, int ngpio,
540542
ochip->chip.direction_input = orion_gpio_direction_input;
541543
ochip->chip.get = orion_gpio_get;
542544
ochip->chip.direction_output = orion_gpio_direction_output;
543-
ochip->chip.set = orion_gpio_set;
545+
ochip->chip.set_rv = orion_gpio_set;
544546
ochip->chip.to_irq = orion_gpio_to_irq;
545547
ochip->chip.base = gpio_base;
546548
ochip->chip.ngpio = ngpio;

0 commit comments

Comments
 (0)