lkml.org 
[lkml]   [2020]   [Jun]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.7 053/388] pinctrl: ocelot: Fix GPIO interrupt decoding on Jaguar2
    Date
    From: Lars Povlsen <lars.povlsen@microchip.com>

    [ Upstream commit 0b47afc65453a70bc521e251138418056f65793f ]

    This fixes a problem with using the GPIO as an interrupt on Jaguar2
    (and similar), as the register layout of the platforms with 64 GPIO's
    are pairwise, such that the original offset must be multiplied with
    the platform stride.

    Fixes: da801ab56ad8 pinctrl: ocelot: add MSCC Jaguar2 support.
    Reviewed-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
    Signed-off-by: Lars Povlsen <lars.povlsen@microchip.com>
    Link: https://lore.kernel.org/r/20200513125532.24585-4-lars.povlsen@microchip.com
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/pinctrl/pinctrl-ocelot.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    diff --git a/drivers/pinctrl/pinctrl-ocelot.c b/drivers/pinctrl/pinctrl-ocelot.c
    index ed8eac6c1494..4b99922d6c7e 100644
    --- a/drivers/pinctrl/pinctrl-ocelot.c
    +++ b/drivers/pinctrl/pinctrl-ocelot.c
    @@ -714,11 +714,12 @@ static void ocelot_irq_handler(struct irq_desc *desc)
    struct irq_chip *parent_chip = irq_desc_get_chip(desc);
    struct gpio_chip *chip = irq_desc_get_handler_data(desc);
    struct ocelot_pinctrl *info = gpiochip_get_data(chip);
    + unsigned int id_reg = OCELOT_GPIO_INTR_IDENT * info->stride;
    unsigned int reg = 0, irq, i;
    unsigned long irqs;

    for (i = 0; i < info->stride; i++) {
    - regmap_read(info->map, OCELOT_GPIO_INTR_IDENT + 4 * i, &reg);
    + regmap_read(info->map, id_reg + 4 * i, &reg);
    if (!reg)
    continue;

    --
    2.25.1
    \
     
     \ /
      Last update: 2020-06-18 03:26    [W:4.041 / U:0.400 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site