From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 45F4DC433EF for ; Thu, 24 Mar 2022 15:11:20 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 37483840CA; Thu, 24 Mar 2022 16:11:18 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=googlemail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=googlemail.com header.i=@googlemail.com header.b="U/7lYEwq"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 3527F840BC; Thu, 24 Mar 2022 16:11:16 +0100 (CET) Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com [IPv6:2a00:1450:4864:20::52c]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 45FEE840CA for ; Thu, 24 Mar 2022 16:11:13 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=googlemail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=chf.fritz@googlemail.com Received: by mail-ed1-x52c.google.com with SMTP id c62so5982481edf.5 for ; Thu, 24 Mar 2022 08:11:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20210112; h=message-id:subject:from:reply-to:to:cc:date:user-agent:mime-version :content-transfer-encoding; bh=zD5FCyPwjnBbIeATaQWQWuywlDvcGq39n/kCdd/vjFs=; b=U/7lYEwqzeaBREAwrltLJ9hAjIXsz+W7fIKeJIsUityGM0YF/6QQvv0h+WKY7yx+Jv C8pdqRjD0ta6JzIkJlI7Ek89j7hMJtrFHoB4GK5VdlcztzyMLNwuV3QUb4ul7BsAYmek uHaafVpP/zVlvxozTKjB3GRHh/5rcKf9poscolUH2oZtOffbG1Hv0UGa0sWBDyS/aDJo 9Q3/d41tgS90lD+nQr7umIOBpL0XcU3LOXxV+2+L6p430/EHZ0qx2FYfBrf7lGfySCpJ HWfjOwEc8Y+y8Ou1TQJKfWv124Qa2Z/ngJFzcKFovh1VLiuxWmzpJs0H6VYBIW65nJiH cchA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:subject:from:reply-to:to:cc:date :user-agent:mime-version:content-transfer-encoding; bh=zD5FCyPwjnBbIeATaQWQWuywlDvcGq39n/kCdd/vjFs=; b=6dhfKy8TjQ6XcSS/B+N8Zf655ASXbkCiTWIBvnCqqk8Gtgl7j63TYlJCxcEB1gSBBl T4cb2EFJr2fpyGz+4LLXzncfwDKkeCvin/mBWXdTu3UMRTnrow25i7/G1pBo3L0Tsv2q XTNXGdNFqJyppgYyV3PoDT4iegCWUZgGhOdIIKmNVffqMxLQIH3oIrB/Ar/tK+jjjaUD FA/qjgMprssX0rfTMRdXvBQubJcG30lVNDqeEy+PBmefkzumPF7pNMnRYLurDPfT9xz6 l9EvMFw6Yl6mpbppUXiSsacE/YXYDsRHGmuf1QGwtMLpLPrjXn2XMSITRX2mZYSHsTc2 YKig== X-Gm-Message-State: AOAM5306lK5XxoL5Y7JsK+11EEPJ7Prqbt1HyZqmi1fcH8ARDPvzPbYL SrZg8lhpJq4SHekQbPgrdNpx16XXlWM= X-Google-Smtp-Source: ABdhPJwdsm1yEY2dKfs3tUi8vcDl/VljgKpymkzmF544psmIeijQGaOLD3tdVbmLjahzEU9O6v2UXA== X-Received: by 2002:aa7:cb93:0:b0:415:d57a:4603 with SMTP id r19-20020aa7cb93000000b00415d57a4603mr7185220edt.62.1648134672799; Thu, 24 Mar 2022 08:11:12 -0700 (PDT) Received: from mars.fritz.box ([2a02:8070:bb0:8700:3e7c:3fff:fe20:2cae]) by smtp.gmail.com with ESMTPSA id a18-20020a170906671200b006e05929e66csm1246204ejp.20.2022.03.24.08.11.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Mar 2022 08:11:12 -0700 (PDT) Message-ID: <92957fd3e899d2e1e907884469a82f7ef3723739.camel@googlemail.com> Subject: [RESEND PATCH] gpio: rgpio2p: Enhance reading of GPIO pin value From: Christoph Fritz To: u-boot , Stefano Babic Cc: Peng Fan , Fabio Estevam Date: Thu, 24 Mar 2022 16:11:11 +0100 Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.38.3-1 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: chf.fritz@googlemail.com Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.5 at phobos.denx.de X-Virus-Status: Clean Add support for reading GPIO pin value when function is output. With this patch applied, gpio toggle command is working. Signed-off-by: Christoph Fritz Cc: Fabio Estevam Reviewed-by: Peng Fan --- drivers/gpio/imx_rgpio2p.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/drivers/gpio/imx_rgpio2p.c b/drivers/gpio/imx_rgpio2p.c index 0e2874ca95c..175e460aff5 100644 --- a/drivers/gpio/imx_rgpio2p.c +++ b/drivers/gpio/imx_rgpio2p.c @@ -39,6 +39,14 @@ static int imx_rgpio2p_is_output(struct gpio_regs *regs, int offset) return val & (1 << offset) ? 1 : 0; } +static int imx_rgpio2p_bank_get_direction(struct gpio_regs *regs, int offset) +{ + if ((readl(®s->gpio_pddr) >> offset) & 0x01) + return IMX_RGPIO2P_DIRECTION_OUT; + + return IMX_RGPIO2P_DIRECTION_IN; +} + static void imx_rgpio2p_bank_direction(struct gpio_regs *regs, int offset, enum imx_rgpio2p_direction direction) { @@ -67,7 +75,11 @@ static void imx_rgpio2p_bank_set_value(struct gpio_regs *regs, int offset, static int imx_rgpio2p_bank_get_value(struct gpio_regs *regs, int offset) { - return (readl(®s->gpio_pdir) >> offset) & 0x01; + if (imx_rgpio2p_bank_get_direction(regs, offset) == + IMX_RGPIO2P_DIRECTION_IN) + return (readl(®s->gpio_pdir) >> offset) & 0x01; + + return (readl(®s->gpio_pdor) >> offset) & 0x01; } static int imx_rgpio2p_direction_input(struct udevice *dev, unsigned offset) -- 2.30.2