Commit f81c7287 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'gpio-v4.15-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio

Pull GPIO fixes from Linus Walleij:
 "Three small fixes for GPIO. Not much, I'm surprised by the silence in
  my subsystems. All driver fixes:

   - fix a crash in the 74x164 driver

   - fix IRQ banks in the DaVinci driver

   - fix the vendor prefix in the PCA953x driver"

* tag 'gpio-v4.15-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
  gpio: pca953x: fix vendor prefix for PCA9654
  gpio: davinci: Assign first bank regs for unbanked case
  gpio: 74x164: Fix crash during .remove()
parents b7ad7ef7 8a64e557
...@@ -27,7 +27,7 @@ Required properties: ...@@ -27,7 +27,7 @@ Required properties:
ti,tca6424 ti,tca6424
ti,tca9539 ti,tca9539
ti,tca9554 ti,tca9554
onsemi,pca9654 onnn,pca9654
exar,xra1202 exar,xra1202
Optional properties: Optional properties:
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
struct gen_74x164_chip { struct gen_74x164_chip {
struct gpio_chip gpio_chip; struct gpio_chip gpio_chip;
struct mutex lock; struct mutex lock;
struct gpio_desc *gpiod_oe;
u32 registers; u32 registers;
/* /*
* Since the registers are chained, every byte sent will make * Since the registers are chained, every byte sent will make
...@@ -31,8 +32,7 @@ struct gen_74x164_chip { ...@@ -31,8 +32,7 @@ struct gen_74x164_chip {
* register at the end of the transfer. So, to have a logical * register at the end of the transfer. So, to have a logical
* numbering, store the bytes in reverse order. * numbering, store the bytes in reverse order.
*/ */
u8 buffer[0]; u8 buffer[];
struct gpio_desc *gpiod_oe;
}; };
static int __gen_74x164_write_config(struct gen_74x164_chip *chip) static int __gen_74x164_write_config(struct gen_74x164_chip *chip)
......
...@@ -383,7 +383,7 @@ static int gpio_irq_type_unbanked(struct irq_data *data, unsigned trigger) ...@@ -383,7 +383,7 @@ static int gpio_irq_type_unbanked(struct irq_data *data, unsigned trigger)
u32 mask; u32 mask;
d = (struct davinci_gpio_controller *)irq_data_get_irq_handler_data(data); d = (struct davinci_gpio_controller *)irq_data_get_irq_handler_data(data);
g = (struct davinci_gpio_regs __iomem *)d->regs; g = (struct davinci_gpio_regs __iomem *)d->regs[0];
mask = __gpio_mask(data->irq - d->base_irq); mask = __gpio_mask(data->irq - d->base_irq);
if (trigger & ~(IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING)) if (trigger & ~(IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING))
......
...@@ -947,7 +947,7 @@ static const struct of_device_id pca953x_dt_ids[] = { ...@@ -947,7 +947,7 @@ static const struct of_device_id pca953x_dt_ids[] = {
{ .compatible = "ti,tca6416", .data = OF_953X(16, PCA_INT), }, { .compatible = "ti,tca6416", .data = OF_953X(16, PCA_INT), },
{ .compatible = "ti,tca6424", .data = OF_953X(24, PCA_INT), }, { .compatible = "ti,tca6424", .data = OF_953X(24, PCA_INT), },
{ .compatible = "onsemi,pca9654", .data = OF_953X( 8, PCA_INT), }, { .compatible = "onnn,pca9654", .data = OF_953X( 8, PCA_INT), },
{ .compatible = "exar,xra1202", .data = OF_953X( 8, 0), }, { .compatible = "exar,xra1202", .data = OF_953X( 8, 0), },
{ } { }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment