The DesignWare GPIO IP can be configured for either 1 interrupt or 1 per GPIO in port A, but the driver currently only supports 1 interrupt. See the DesignWare DW_apb_gpio Databook description of the 'GPIO_INTR_IO' parameter. This change allows the driver to work with up to 32 interrupts, it will get as many interrupts as specified in the DT 'interrupts' property. It doesn't do anything clever with the different interrupts, it just calls the same handler used for single interrupt hardware. ACPI companion code provided by Hoan Tran <hotran@apm.com>. This was tested on X-Gene by Hoan. Signed-off-by: Phil Edworthy <phil.edworthy@renesas.com> Reviewed-by: Rob Herring <robh@kernel.org> Acked-by: Lee Jones <lee.jones@linaro.org> Acked-by: Hoan Tran <hotran@apm.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
32 lines
834 B
C
32 lines
834 B
C
/*
|
|
* Copyright(c) 2014 Intel Corporation.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
* under the terms and conditions of the GNU General Public License,
|
|
* version 2, as published by the Free Software Foundation.
|
|
*
|
|
* This program is distributed in the hope it will be useful, but WITHOUT
|
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
* more details.
|
|
*/
|
|
|
|
#ifndef GPIO_DW_APB_H
|
|
#define GPIO_DW_APB_H
|
|
|
|
struct dwapb_port_property {
|
|
struct fwnode_handle *fwnode;
|
|
unsigned int idx;
|
|
unsigned int ngpio;
|
|
unsigned int gpio_base;
|
|
unsigned int irq[32];
|
|
bool has_irq;
|
|
bool irq_shared;
|
|
};
|
|
|
|
struct dwapb_platform_data {
|
|
struct dwapb_port_property *properties;
|
|
unsigned int nports;
|
|
};
|
|
|
|
#endif
|