public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Sean Anderson <seanga2@gmail.com>
To: u-boot@lists.denx.de
Subject: [PATCH v2 07/10] gpio: dw: Return output value when direction is out
Date: Tue, 9 Jun 2020 01:26:57 -0400	[thread overview]
Message-ID: <b67cb848-e54b-f764-f861-e15729b1ec47@gmail.com> (raw)
In-Reply-To: <20200608012651.1525906-8-seanga2@gmail.com>

On 6/7/20 9:26 PM, Sean Anderson wrote:
> dm_gpio_ops.get_value can be called when the gpio is either input or
> output. The current dw code always returns the input value, which is
> invalid if the direction is set to out.
> 
> Signed-off-by: Sean Anderson <seanga2@gmail.com>
> ---
> This patch was previously submitted as part of
> https://patchwork.ozlabs.org/project/uboot/list/?series=161576
> 
> Changes in v2:
> - Reorder changes to minimize diff

...and I just noticed that this breaks the build since
dwapb_gpio_get_function is not declared yet. Will revert to the previous
version of this patch in the next revision.

> 
>  drivers/gpio/dwapb_gpio.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpio/dwapb_gpio.c b/drivers/gpio/dwapb_gpio.c
> index a52c9e18e3..e2970a83a8 100644
> --- a/drivers/gpio/dwapb_gpio.c
> +++ b/drivers/gpio/dwapb_gpio.c
> @@ -69,9 +69,14 @@ static int dwapb_gpio_direction_output(struct udevice *dev, unsigned pin,
>  static int dwapb_gpio_get_value(struct udevice *dev, unsigned pin)
>  {
>  	struct gpio_dwapb_platdata *plat = dev_get_platdata(dev);
> -	return !!(readl(plat->base + GPIO_EXT_PORT(plat->bank)) & (1 << pin));
> -}
> +	u32 value;
>  
> +	if (dwapb_gpio_get_function(dev, pin) == GPIOF_OUTPUT)
> +		value = readl(plat->base + GPIO_SWPORT_DR(plat->bank));
> +	else
> +		value = readl(plat->base + GPIO_EXT_PORT(plat->bank));
> +	return !!(value & BIT(pin));
> +}
>  
>  static int dwapb_gpio_set_value(struct udevice *dev, unsigned pin, int val)
>  {
> 

--Sean

  parent reply	other threads:[~2020-06-09  5:26 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-08  1:26 [PATCH v2 00/10] riscv: Add FPIOA and GPIO support for Kendryte K210 Sean Anderson
2020-06-08  1:26 ` [PATCH v2 01/10] pinctrl: Add pinmux property support to pinctrl-generic Sean Anderson
2020-06-17  3:11   ` Simon Glass
2020-06-18  4:21     ` Sean Anderson
2020-06-08  1:26 ` [PATCH v2 02/10] test: pinmux: Add test for pin muxing Sean Anderson
2020-06-17  3:11   ` Simon Glass
2020-06-17  3:18     ` Sean Anderson
2020-06-17 14:07       ` Simon Glass
2020-06-24  8:01         ` Sean Anderson
2020-06-24 13:45           ` Simon Glass
2020-06-24 20:32             ` Sean Anderson
2020-06-08  1:26 ` [PATCH v2 03/10] pinctrl: Add support for Kendryte K210 FPIOA Sean Anderson
2020-06-08  1:26 ` [PATCH v2 04/10] gpio: sifive: Use generic reg read function Sean Anderson
2020-06-08  1:26 ` [PATCH v2 05/10] gpio: dw: Fix warnings about casting int to pointer Sean Anderson
2020-06-09  1:20   ` Tan, Ley Foon
2020-06-17  3:11   ` Simon Glass
2020-06-08  1:26 ` [PATCH v2 06/10] gpio: dw: Add a trailing underscore to generated name Sean Anderson
2020-06-08  1:26 ` [PATCH v2 07/10] gpio: dw: Return output value when direction is out Sean Anderson
2020-06-09  1:20   ` Tan, Ley Foon
2020-06-09  5:26   ` Sean Anderson [this message]
2020-06-08  1:26 ` [PATCH v2 08/10] led: gpio: Default to using node name if label is absent Sean Anderson
2020-06-17  3:11   ` Simon Glass
2020-06-17  3:18     ` Sean Anderson
2020-06-17 14:07       ` Simon Glass
2020-06-08  1:26 ` [PATCH v2 09/10] riscv: Add pinmux and gpio bindings for Kendryte K210 Sean Anderson
2020-06-08  1:26 ` [PATCH v2 10/10] riscv: Add FPIOA and GPIO support " Sean Anderson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b67cb848-e54b-f764-f861-e15729b1ec47@gmail.com \
    --to=seanga2@gmail.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox