From patchwork Sat May 13 13:48:04 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Vasut X-Patchwork-Id: 761989 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3wQ7Tx4k9mz9sDb for ; Sat, 13 May 2017 23:48:36 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="UE9FGcVg"; dkim-atps=neutral Received: by lists.denx.de (Postfix, from userid 105) id BA783C21EC3; Sat, 13 May 2017 13:48:30 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id D4223C21CCE; Sat, 13 May 2017 13:48:27 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id E7A39C21CCE; Sat, 13 May 2017 13:48:26 +0000 (UTC) Received: from mail-oi0-f65.google.com (mail-oi0-f65.google.com [209.85.218.65]) by lists.denx.de (Postfix) with ESMTPS id 5C4C3C21C26 for ; Sat, 13 May 2017 13:48:25 +0000 (UTC) Received: by mail-oi0-f65.google.com with SMTP id h4so12747837oib.0 for ; Sat, 13 May 2017 06:48:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=nS5jQl5FFgGw6lEo60KKTMgm8k/b3JIunFwM8lTjZxQ=; b=UE9FGcVg8y0oAXEcE2NThsJWKllFRkaxoqHyXllI70V7709qof6+8R4RnJ/AUyPF69 WGAbsbms+a4J3QyqjqitiGt7sl8FvM2HplAEDwcfyl2oFSdz+zW0MFPESKCgOSa8iPP7 e4/UtEvDbu94EbHWHMgwzkoLprNhPLbuEcEmb7HsKII6KP/MOZF4r/TV6NC/mig5YBBy HQgshkd4ox4wPYiem+AqlqprdYBc7V5aiW2XGs9sUjZKUYs6yQRZk1LdjAbhAviKH5VW 4bwlwldpggQ9f1o1KhrF/lbZ5G3P9gOSxsEC52nS7azI/ZJJoX/dHuyzXhEYszlskBvV aMCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=nS5jQl5FFgGw6lEo60KKTMgm8k/b3JIunFwM8lTjZxQ=; b=g+PeYEestx5ZzRRHg61xaYY6NqTyE4ze2uW2stdoEqq4CKNFHuueutlKM5ezW6lmsc 9qRwuIhbWeaWj5xmwBrSSfjKUSmYOojUBP8/Vxuz05WUBlYUG1FaS87V+1I55tF7pVSN cbS05b2CyEcB7Wgg96lWAPL28sR9zg5YnL4mLgd7iiyZoxbew+K39cREBVDSXPT54mGd 8lpZiW1Goh5pttDJIBBLR3GGifnJIAn99rdT2q8irhkZs1Tap02YqGurXvqnOrErgxLC QHzTBbIFN2X1nxgJmdP5tMYi5Do3gQgIxzgfthOiTYxa4grvNiF3Yvn4ySt4RiVgkWE1 MB9w== X-Gm-Message-State: AODbwcCLykJXF8i6a75s/cEgR+UWyheyciD5mrzvogrQ1d41fQ1rtGmn fiqoXH3zn98oug== X-Received: by 10.157.37.72 with SMTP id j8mr5217423otd.27.1494683303941; Sat, 13 May 2017 06:48:23 -0700 (PDT) Received: from kurokawa.lan ([195.140.253.167]) by smtp.gmail.com with ESMTPSA id w6sm2933970ota.19.2017.05.13.06.48.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 13 May 2017 06:48:23 -0700 (PDT) From: Marek Vasut X-Google-Original-From: Marek Vasut To: u-boot@lists.denx.de Date: Sat, 13 May 2017 15:48:04 +0200 Message-Id: <20170513134804.8078-1-marek.vasut+renesas@gmail.com> X-Mailer: git-send-email 2.11.0 Cc: Tom Rini , Kouei Abe , Hiroyuki Yokoyama Subject: [U-Boot] [PATCH] gpio: rcar_gen3: Fix GPIO read support X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" From: Kouei Abe This patch fixes to read the GPIO status after confirming the INOUT setting. Signed-off-by: Kouei Abe Signed-off-by: Hiroyuki Yokoyama Cc: Hiroyuki Yokoyama Cc: Nobuhiro Iwamatsu Cc: Tom Rini --- drivers/gpio/sh_pfc.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/drivers/gpio/sh_pfc.c b/drivers/gpio/sh_pfc.c index a0eac137c2..ad8da9ef28 100644 --- a/drivers/gpio/sh_pfc.c +++ b/drivers/gpio/sh_pfc.c @@ -66,17 +66,18 @@ static void gpio_write_raw_reg(void *mapped_reg, } static int gpio_read_bit(struct pinmux_data_reg *dr, + unsigned long offset, unsigned long in_pos) { unsigned long pos; pos = dr->reg_width - (in_pos + 1); - debug("read_bit: addr = %lx, pos = %ld, " - "r_width = %ld\n", dr->reg, pos, dr->reg_width); + debug("read_bit: addr = %lx, pos = %ld, r_width = %ld\n", + dr->reg + offset, pos, dr->reg_width); - return - (gpio_read_raw_reg(dr->mapped_reg + 0x4, dr->reg_width) >> pos) & 1; + return (gpio_read_raw_reg(dr->mapped_reg + offset, + dr->reg_width) >> pos) & 1; } static void gpio_write_bit(struct pinmux_data_reg *dr, @@ -559,12 +560,16 @@ static int sh_gpio_direction_output(unsigned offset, int value) static int sh_gpio_get_value(struct pinmux_info *gpioc, unsigned gpio) { struct pinmux_data_reg *dr = NULL; - int bit = 0; + int bit = 0, offset = 0; if (!gpioc || get_data_reg(gpioc, gpio, &dr, &bit) != 0) return -1; +#if defined(CONFIG_RCAR_GEN3) + if ((gpioc->gpios[gpio].flags & PINMUX_FLAG_TYPE) == PINMUX_TYPE_INPUT) + offset += 4; +#endif - return gpio_read_bit(dr, bit); + return gpio_read_bit(dr, offset, bit); } static int sh_gpio_get(unsigned offset)