From: Andrew Lunn <andrew@lunn.ch>
To: Neil Armstrong <narmstrong@baylibre.com>
Cc: David Miller <davem@davemloft.net>,
netdev <netdev@vger.kernel.org>,
Florian Fainelli <f.fainelli@gmail.com>,
Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Subject: Re: [PATCH net-next 1/2] net: dsa: Add support for a switch reset gpio
Date: Thu, 19 Nov 2015 15:55:31 +0100 [thread overview]
Message-ID: <20151119145531.GB25345@lunn.ch> (raw)
In-Reply-To: <564D8AAF.6060901@baylibre.com>
On Thu, Nov 19, 2015 at 09:39:11AM +0100, Neil Armstrong wrote:
> Hi Andrew,
>
> On 11/19/2015 12:29 AM, Andrew Lunn wrote:
> > + gpio = of_get_named_gpio_flags(child, "reset-gpios", 0,
> > + &flags);
> > + if (gpio_is_valid(gpio)) {
> > + ret = devm_gpio_request_one(dev, gpio, flags,
> > + "switch_reset");
> > + if (ret)
> > + goto out_free_chip;
> > +
> > + cd->reset = gpio;
> > + cd->reset_flags = flags;
> > + off = (flags && OF_GPIO_ACTIVE_LOW ? 1 : 0);
> > + gpio_direction_output(cd->reset, off);
> > + }
> > +
> > for_each_available_child_of_node(child, port) {
> > port_reg = of_get_property(port, "reg", NULL);
> > if (!port_reg)
> >
>
> You could also use :
> gpio = of_get_named_gpio(child, "reset-gpios", 0)
> devm_gpio_request(dev, gpio, "switch_reset")
>
> and :
> cd->reset = gpio_to_desc(gpio);
>
> and cd->switch reset to struct gpio_desc *reset
>
> to use the gpiod calls afterward. The flags are no more needed.
Hi Neil
I really wanted to use gpiod, since as you said, it takes care of
active low/active high. I tried all sorts of combinations. The problem
with this one is that desc->flags is set in gpiod_parse_flags(), which
is only called from gpiod_get_index(), which is limited to gpios in
the root of the devices subtree. I was 'lucky' in that my reset is
active low, so i noticed the problem when my switch failed to probe,
being held in reset, because the ACTIVE_LOW flag in DT is being ignored.
It seems like gpiod is backwards compatible to gpio, but gpio is not
forward compatible to gpiod.
Andrew
next prev parent reply other threads:[~2015-11-19 14:55 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-18 23:29 [PATCH net-next 0/2] DSA: GPIO to reset switches Andrew Lunn
2015-11-18 23:29 ` [PATCH net-next 1/2] net: dsa: Add support for a switch reset gpio Andrew Lunn
2015-11-19 3:06 ` Andrew Lunn
2015-11-19 8:39 ` Neil Armstrong
2015-11-19 14:55 ` Andrew Lunn [this message]
2015-11-18 23:29 ` [PATCH net-next 2/2] dsa: mv88e6xxx.c: Hardware reset the chip if available Andrew Lunn
2015-11-18 23:51 ` Florian Fainelli
2015-11-19 1:13 ` Andrew Lunn
2015-11-19 2:08 ` Phil Reid
2015-11-19 2:25 ` Andrew Lunn
2015-11-19 6:32 ` Phil Reid
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=20151119145531.GB25345@lunn.ch \
--to=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=f.fainelli@gmail.com \
--cc=narmstrong@baylibre.com \
--cc=netdev@vger.kernel.org \
--cc=vivien.didelot@savoirfairelinux.com \
/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;
as well as URLs for NNTP newsgroup(s).