aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpio/gpio-aspeed.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpio/gpio-aspeed.c')
-rw-r--r--drivers/gpio/gpio-aspeed.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/gpio/gpio-aspeed.c b/drivers/gpio/gpio-aspeed.c
index bfc53995064a..8781817d9003 100644
--- a/drivers/gpio/gpio-aspeed.c
+++ b/drivers/gpio/gpio-aspeed.c
@@ -411,13 +411,16 @@ static int aspeed_gpio_set_type(struct irq_data *d, unsigned int type)
411 switch (type & IRQ_TYPE_SENSE_MASK) { 411 switch (type & IRQ_TYPE_SENSE_MASK) {
412 case IRQ_TYPE_EDGE_BOTH: 412 case IRQ_TYPE_EDGE_BOTH:
413 type2 |= bit; 413 type2 |= bit;
414 /* fall through */
414 case IRQ_TYPE_EDGE_RISING: 415 case IRQ_TYPE_EDGE_RISING:
415 type0 |= bit; 416 type0 |= bit;
417 /* fall through */
416 case IRQ_TYPE_EDGE_FALLING: 418 case IRQ_TYPE_EDGE_FALLING:
417 handler = handle_edge_irq; 419 handler = handle_edge_irq;
418 break; 420 break;
419 case IRQ_TYPE_LEVEL_HIGH: 421 case IRQ_TYPE_LEVEL_HIGH:
420 type0 |= bit; 422 type0 |= bit;
423 /* fall through */
421 case IRQ_TYPE_LEVEL_LOW: 424 case IRQ_TYPE_LEVEL_LOW:
422 type1 |= bit; 425 type1 |= bit;
423 handler = handle_level_irq; 426 handler = handle_level_irq;
@@ -466,7 +469,7 @@ static void aspeed_gpio_irq_handler(struct irq_desc *desc)
466 reg = ioread32(bank_irq_reg(data, bank, GPIO_IRQ_STATUS)); 469 reg = ioread32(bank_irq_reg(data, bank, GPIO_IRQ_STATUS));
467 470
468 for_each_set_bit(p, &reg, 32) { 471 for_each_set_bit(p, &reg, 32) {
469 girq = irq_find_mapping(gc->irqdomain, i * 32 + p); 472 girq = irq_find_mapping(gc->irq.domain, i * 32 + p);
470 generic_handle_irq(girq); 473 generic_handle_irq(girq);
471 } 474 }
472 475
@@ -498,7 +501,7 @@ static void set_irq_valid_mask(struct aspeed_gpio *gpio)
498 if (i >= gpio->config->nr_gpios) 501 if (i >= gpio->config->nr_gpios)
499 break; 502 break;
500 503
501 clear_bit(i, gpio->chip.irq_valid_mask); 504 clear_bit(i, gpio->chip.irq.valid_mask);
502 } 505 }
503 506
504 props++; 507 props++;
@@ -853,7 +856,7 @@ static int __init aspeed_gpio_probe(struct platform_device *pdev)
853 gpio->chip.set_config = aspeed_gpio_set_config; 856 gpio->chip.set_config = aspeed_gpio_set_config;
854 gpio->chip.label = dev_name(&pdev->dev); 857 gpio->chip.label = dev_name(&pdev->dev);
855 gpio->chip.base = -1; 858 gpio->chip.base = -1;
856 gpio->chip.irq_need_valid_mask = true; 859 gpio->chip.irq.need_valid_mask = true;
857 860
858 rc = devm_gpiochip_add_data(&pdev->dev, &gpio->chip, gpio); 861 rc = devm_gpiochip_add_data(&pdev->dev, &gpio->chip, gpio);
859 if (rc < 0) 862 if (rc < 0)