Received: by 2002:a05:6a10:7420:0:0:0:0 with SMTP id hk32csp346121pxb; Tue, 15 Feb 2022 14:59:54 -0800 (PST) X-Google-Smtp-Source: ABdhPJyBPC6T8p0k1ZFu8Gk/YxpSHXxSJ8ZhWGqy9m3Jbr3Yw0wJJDDmjkgS2wRWKR4rMGUqj81b X-Received: by 2002:a17:907:9208:b0:6cf:cd92:c1e7 with SMTP id ka8-20020a170907920800b006cfcd92c1e7mr215424ejb.282.1644965994102; Tue, 15 Feb 2022 14:59:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644965994; cv=none; d=google.com; s=arc-20160816; b=GrRO123yr1mt8Y597NqI56csN7OjGrhoAsujEq4bsxzdN3azvB/C7YTrrG6ldEcNxr 50NqIOgc8FgrLk5a3Mv2DwA/STHNn/lVnfeISrncRz+6Ag5v4UYVI+crmSPohsZ7OwIV Sz4zBKIkLK3uEr9G5/h5ujLla0EB6B/f7+FyXCpKvIpGmW7DJW9tWTKVGeiLyfseoMpp 9RkPYR9J3cWgZJzcyYvJdO1REubm5rsXTrfSPBh/pP0Hl4a9aqONYS9CgM7WPTnJnPwn HCVHtsI17//5StEFJpUy16xXOND2Nje0F6BDsOEfqjKDLhtXZij/7ESI+QxqnVk8hRP+ vZYA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=sOqZgQcGdhbw/917ssXjuAHCgihytQMxnA5sDSo+Ii4=; b=yElvJ6KpBlDs+x8129VqbVFP713MRQPgxIXICH3OzKeEBCdZ3QKpgWEIldFgBsWzLY Io3sHbMYIhVoj4t06AOjH3W1gh1TugOdKUDjSaXw3ZWuurxMcspq8Q3kZ53tQyS3sTBL 55P14rEar7ANMcjCPwgnuL2xEm5s9pQJcBZa9BWK3pxCmGXAEpZK9580VezBHsNRNzG4 f7TTqFBkaqoQ3iGIrxvUJyGI+zz4c4ZZdFnhti7lnroPT/cPmZofSP/pJqV9kGlwZjWE T0B4ocqvCtmqtjrqr5ezap0z01XfRrXfp9R9JR7yPT78tzeQne5n7wloNMyKfr4YivMX n50w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id nc1si20053711ejc.151.2022.02.15.14.59.31; Tue, 15 Feb 2022 14:59:54 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241934AbiBOQyn (ORCPT + 99 others); Tue, 15 Feb 2022 11:54:43 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:39716 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233779AbiBOQyn (ORCPT ); Tue, 15 Feb 2022 11:54:43 -0500 Received: from hs01.dk-develop.de (hs01.dk-develop.de [173.249.23.66]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 02B4B117C93; Tue, 15 Feb 2022 08:54:32 -0800 (PST) From: Danilo Krummrich To: dmitry.torokhov@gmail.com, linux-input@vger.kernel.org, linux-kernel@vger.kernel.org Cc: linus.walleij@linaro.org, Danilo Krummrich Subject: [PATCH] input: ps2-gpio: enforce GPIOs flag open drain Date: Tue, 15 Feb 2022 17:54:29 +0100 Message-Id: <20220215165429.53764-1-danilokrummrich@dk-develop.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The PS/2 bus defines the data and clock line be open drain, therefore for both enforce the particular GPIO flags in the driver. Without enforcing to flag at least the clock gpio as open drain we run into the following warning: WARNING: CPU: 1 PID: 40 at drivers/gpio/gpiolib.c:3175 gpiochip_enable_irq+0x54/0x90 gpiochip_enable_irq() warns on a GPIO being configured as output while serving as IRQ source without being flagged as open drain. Signed-off-by: Danilo Krummrich --- drivers/input/serio/ps2-gpio.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/input/serio/ps2-gpio.c b/drivers/input/serio/ps2-gpio.c index 8970b49ea09a..f562f396ba05 100644 --- a/drivers/input/serio/ps2-gpio.c +++ b/drivers/input/serio/ps2-gpio.c @@ -322,14 +322,19 @@ static irqreturn_t ps2_gpio_irq(int irq, void *dev_id) static int ps2_gpio_get_props(struct device *dev, struct ps2_gpio_data *drvdata) { - drvdata->gpio_data = devm_gpiod_get(dev, "data", GPIOD_IN); + enum gpiod_flags gflags; + + /* Enforce open drain, since this is required by the PS/2 bus. */ + gflags = GPIOD_IN | GPIOD_FLAGS_BIT_OPEN_DRAIN; + + drvdata->gpio_data = devm_gpiod_get(dev, "data", gflags); if (IS_ERR(drvdata->gpio_data)) { dev_err(dev, "failed to request data gpio: %ld", PTR_ERR(drvdata->gpio_data)); return PTR_ERR(drvdata->gpio_data); } - drvdata->gpio_clk = devm_gpiod_get(dev, "clk", GPIOD_IN); + drvdata->gpio_clk = devm_gpiod_get(dev, "clk", gflags); if (IS_ERR(drvdata->gpio_clk)) { dev_err(dev, "failed to request clock gpio: %ld", PTR_ERR(drvdata->gpio_clk)); -- 2.35.1