mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 00:04:15 +08:00
gpio: dwapb: Add max GPIOs macro
Add a new macro DWAPB_MAX_GPIOS which defines the maximum possible number of GPIO lines corresponding to the maximum DW APB GPIO controller port width. Use the new macro instead of number literal 32 where it's applicable. Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> Link: https://lore.kernel.org/r/20200730152808.2955-5-Sergey.Semin@baikalelectronics.ru Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
75c1236a4d
commit
f9f890ba2b
@ -162,7 +162,7 @@ static struct dwapb_gpio_port *dwapb_offs_to_port(struct dwapb_gpio *gpio, unsig
|
||||
|
||||
for (i = 0; i < gpio->nr_ports; i++) {
|
||||
port = &gpio->ports[i];
|
||||
if (port->idx == offs / 32)
|
||||
if (port->idx == offs / DWAPB_MAX_GPIOS)
|
||||
return port;
|
||||
}
|
||||
|
||||
@ -182,7 +182,7 @@ static void dwapb_toggle_trigger(struct dwapb_gpio *gpio, unsigned int offs)
|
||||
|
||||
pol = dwapb_read(gpio, GPIO_INT_POLARITY);
|
||||
/* Just read the current value right out of the data register */
|
||||
val = gc->get(gc, offs % 32);
|
||||
val = gc->get(gc, offs % DWAPB_MAX_GPIOS);
|
||||
if (val)
|
||||
pol &= ~BIT(offs);
|
||||
else
|
||||
@ -197,7 +197,7 @@ static u32 dwapb_do_irq(struct dwapb_gpio *gpio)
|
||||
irq_hw_number_t hwirq;
|
||||
|
||||
irq_status = dwapb_read(gpio, GPIO_INTSTATUS);
|
||||
for_each_set_bit(hwirq, &irq_status, 32) {
|
||||
for_each_set_bit(hwirq, &irq_status, DWAPB_MAX_GPIOS) {
|
||||
int gpio_irq = irq_find_mapping(gpio->domain, hwirq);
|
||||
u32 irq_type = irq_get_trigger_type(gpio_irq);
|
||||
|
||||
@ -599,7 +599,7 @@ static struct dwapb_platform_data *dwapb_gpio_get_pdata(struct device *dev)
|
||||
dev_info(dev,
|
||||
"failed to get number of gpios for port%d\n",
|
||||
i);
|
||||
pp->ngpio = 32;
|
||||
pp->ngpio = DWAPB_MAX_GPIOS;
|
||||
}
|
||||
|
||||
pp->irq_shared = false;
|
||||
|
@ -6,12 +6,14 @@
|
||||
#ifndef GPIO_DW_APB_H
|
||||
#define GPIO_DW_APB_H
|
||||
|
||||
#define DWAPB_MAX_GPIOS 32
|
||||
|
||||
struct dwapb_port_property {
|
||||
struct fwnode_handle *fwnode;
|
||||
unsigned int idx;
|
||||
unsigned int ngpio;
|
||||
unsigned int gpio_base;
|
||||
int irq[32];
|
||||
int irq[DWAPB_MAX_GPIOS];
|
||||
bool irq_shared;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user