lkml.org 
[lkml]   [2021]   [Jul]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.13 158/351] power: supply: max17040: Do not enforce (incorrect) interrupt trigger type
    Date
    From: Krzysztof Kozlowski <krzk@kernel.org>

    [ Upstream commit 8bb2314fc22628333d89df83d695ff9a8d2a6eac ]

    Interrupt line can be configured on different hardware in different way,
    even inverted. Therefore driver should not enforce specific trigger
    type - edge falling - but instead rely on Devicetree to configure it.

    The Maxim 14577/77836 datasheets describe the interrupt line as active
    low with a requirement of acknowledge from the CPU therefore the edge
    falling is not correct.

    Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
    Acked-by: Iskren Chernev <iskren.chernev@gmail.com>
    Acked-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    .../devicetree/bindings/power/supply/maxim,max17040.yaml | 2 +-
    drivers/power/supply/max17040_battery.c | 4 +---
    2 files changed, 2 insertions(+), 4 deletions(-)

    diff --git a/Documentation/devicetree/bindings/power/supply/maxim,max17040.yaml b/Documentation/devicetree/bindings/power/supply/maxim,max17040.yaml
    index de91cf3f058c..f792d06db413 100644
    --- a/Documentation/devicetree/bindings/power/supply/maxim,max17040.yaml
    +++ b/Documentation/devicetree/bindings/power/supply/maxim,max17040.yaml
    @@ -89,7 +89,7 @@ examples:
    reg = <0x36>;
    maxim,alert-low-soc-level = <10>;
    interrupt-parent = <&gpio7>;
    - interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
    + interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
    wakeup-source;
    };
    };
    diff --git a/drivers/power/supply/max17040_battery.c b/drivers/power/supply/max17040_battery.c
    index 1aab868adabf..e80dd9141ae7 100644
    --- a/drivers/power/supply/max17040_battery.c
    +++ b/drivers/power/supply/max17040_battery.c
    @@ -361,12 +361,10 @@ static irqreturn_t max17040_thread_handler(int id, void *dev)
    static int max17040_enable_alert_irq(struct max17040_chip *chip)
    {
    struct i2c_client *client = chip->client;
    - unsigned int flags;
    int ret;

    - flags = IRQF_TRIGGER_FALLING | IRQF_ONESHOT;
    ret = devm_request_threaded_irq(&client->dev, client->irq, NULL,
    - max17040_thread_handler, flags,
    + max17040_thread_handler, IRQF_ONESHOT,
    chip->battery->desc->name, chip);

    return ret;
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-07-19 19:43    [W:2.558 / U:0.092 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site