From: Stefano Babic <sbabic@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 1/2] dm: gpio: mxc: fix mxc_gpio_bank_get_value
Date: Sun, 3 Apr 2016 20:09:35 +0200 [thread overview]
Message-ID: <57015C5F.3080209@denx.de> (raw)
In-Reply-To: <20160317014430.GA27643@linux-7smt.suse>
Hi Peng,
On 17/03/2016 02:44, Peng Fan wrote:
> On Wed, Mar 16, 2016 at 09:48:24AM -0300, Fabio Estevam wrote:
>> Hi Peng,
>>
>> On Tue, Mar 15, 2016 at 10:27 PM, Peng Fan <van.freenix@gmail.com> wrote:
>>
>>> If set the SION bit, we need to change the pinmux settings in device tree,
>>> however device tree are introduced from linux kernel. I would not like
>>> to change the pinmux setting value.
>>>
>>> So I choose to use data register but not PSR register.
>>
>> Haven't checked the kernel driver, but just curious: how does the
>> kernel handle this?
>
> bgc->gc.get = bgpio_get;
>
> The get method:
> * @get: returns value for signal "offset"; for output signals this
> * returns either the value actually sensed, or zero
>
> 138 static int bgpio_get(struct gpio_chip *gc, unsigned int gpio)
> 139 {
> 140 struct bgpio_chip *bgc = to_bgpio_chip(gc);
> 141
> 142 return !!(bgc->read_reg(bgc->reg_dat) & bgc->pin2mask(bgc, gpio));
> 143 }
>
> The gpio subsystem use reg_data. The reg_data is GPIO_PSR for gpio-mxc.c:
>
> 450 err = bgpio_init(&port->bgc, &pdev->dev, 4,
> 451 port->base + GPIO_PSR,
> 452 port->base + GPIO_DR, NULL,
> 453 port->base + GPIO_GDIR, NULL, 0);
>
> So we know that kernel gpio-mxc use GPIO_PSR for reading data, but
> as the comments for get method "for output signals this returns
> either the value actually sensed, or zero", if no SION bit set, reading
> PSR will return 0 with direction output.
>
There was already a debate in the past about this point. You can take a
look at the commit:
commit 5dafa4543c399d329c7b01df1afa98437861cac0
Author: Beno?t Th?baudeau <benoit.thebaudeau@advansee.com>
Date: Mon Aug 20 10:55:41 2012 +0000
mxc: Make gpio_get_value() use PSR
There were good reasons to switch to PSR (mxc-gpio used DR before) - we
cannot switch any time back to solve a single issue.
I would like to remain compliant with Linux - your change breaks also
boards that rely on this behavior.
> But in U-Boot, the regulator driver needs to get the value when direction is
> configured as output, we can use data register here or configure SION in pinmux.
> But I prefer using data register here.
>
Best regards,
Stefano
--
=====================================================================
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================
next prev parent reply other threads:[~2016-04-03 18:09 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-15 5:48 [U-Boot] [PATCH 1/2] dm: gpio: mxc: fix mxc_gpio_bank_get_value Peng Fan
2016-03-15 5:48 ` [U-Boot] [PATCH 2/2] dm: gpio: mxc: implement xlate function Peng Fan
2016-03-16 3:32 ` Simon Glass
2016-04-11 5:28 ` Peng Fan
2016-04-11 14:56 ` Eric Nelson
2016-03-15 12:53 ` [U-Boot] [PATCH 1/2] dm: gpio: mxc: fix mxc_gpio_bank_get_value Fabio Estevam
2016-03-16 1:27 ` Peng Fan
2016-03-16 12:48 ` Fabio Estevam
2016-03-17 1:44 ` Peng Fan
2016-04-03 18:09 ` Stefano Babic [this message]
2016-04-05 5:04 ` Peng Fan
2016-04-09 18:35 ` Simon Glass
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=57015C5F.3080209@denx.de \
--to=sbabic@denx.de \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.