From: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
To: Caesar Wang <wxt@rock-chips.com>,
Heiko Stuebner <heiko@sntech.de>,
"David S. Miller" <davem@davemloft.net>,
Rob Herring <robh+dt@kernel.org>
Cc: linux-rockchip@lists.infradead.org, keescook@google.com,
leozwang@google.com, Alexander Kochetkov <al.kochet@gmail.com>,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 3/6] net: arc_emac: support the phy reset for emac driver
Date: Fri, 11 Mar 2016 21:35:17 +0300 [thread overview]
Message-ID: <56E30FE5.1080607@cogentembedded.com> (raw)
In-Reply-To: <1457693731-6966-4-git-send-email-wxt@rock-chips.com>
On 03/11/2016 01:55 PM, Caesar Wang wrote:
> This patch adds to support the emac phy reset.
>
> 1) phy-reset-gpios:
> The phy-reset-gpios is an optional property for arc emac device tree boot.
> Change the binding document to match the driver code.
The binding document is apparently changed in another patch. Not sure what
you wanted to say here...
> 2) phy-reset-duration:
> Different boards may require different phy reset duration. Add property
> phy-reset-duration for device tree probe, so that the boards that need
> a longer reset duration can specify it in their device tree.
>
> 3) phy-reset-active-high:
> We need that for a custom hardware that needs the reverse reset sequence.
No, we don't really need that, "phy-reset-gpio" prop can contain this data.
> Of course, this patch will fix the issue on
> https://patchwork.kernel.org/patch/8186801/.
>
> In some cases, the emac couldn't work if you don't have reset the phy.
> Let's add it to happy work.
>
> Signed-off-by: Caesar Wang <wxt@rock-chips.com>
> ---
>
> drivers/net/ethernet/arc/emac_main.c | 41 ++++++++++++++++++++++++++++++++++++
> 1 file changed, 41 insertions(+)
>
> diff --git a/drivers/net/ethernet/arc/emac_main.c b/drivers/net/ethernet/arc/emac_main.c
> index 6446af1..42384f6a 100644
> --- a/drivers/net/ethernet/arc/emac_main.c
> +++ b/drivers/net/ethernet/arc/emac_main.c
> @@ -764,6 +764,45 @@ static const struct net_device_ops arc_emac_netdev_ops = {
> #endif
> };
>
> +#ifdef CONFIG_OF
> +static void emac_reset_phy(struct net_device *pdev)
> +{
> + int err, phy_reset;
> + bool active_high = false;
> + int msec = 10;
> + struct device *dev = pdev->dev.parent;
> + struct device_node *np = dev->of_node;
> +
> + if (!np)
> + return;
> +
> + of_property_read_u32(np, "phy-reset-duration", &msec);
> + /* A sane reset duration should not be longer than 1s */
> + if (msec > 1000)
> + msec = 1;
> +
> + phy_reset = of_get_named_gpio(np, "phy-reset-gpios", 0);
Forgot to say that these old integer-base GPIO APIs shouldn't be used by
the new code, there's new 'struct gpio_desc' based APIs, like devm_gpiod_get()
etc.
> + if (!gpio_is_valid(phy_reset))
> + return;
> +
> + active_high = of_property_read_bool(np, "phy-reset-active-high");
Well, I still don't understand why this prop is needed, while the GPIO
sense is transparently handled by the gpiolib (at least when using DT).
[...]
MBR, Sergei
next prev parent reply other threads:[~2016-03-11 18:35 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-11 10:55 [PATCH 0/6] arc_emac: fixes the emac issues oand cleanup emac drivers Caesar Wang
2016-03-11 10:55 ` Caesar Wang
2016-03-11 10:55 ` [PATCH 1/6] net: arc_emac: make the rockchip emac document more compatible Caesar Wang
2016-03-11 10:55 ` Caesar Wang
[not found] ` <1457693731-6966-1-git-send-email-wxt-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
2016-03-11 10:55 ` [PATCH 2/6] net: arc_emac: add phy-reset-* are optional for device tree Caesar Wang
2016-03-11 10:55 ` Caesar Wang
[not found] ` <1457693731-6966-3-git-send-email-wxt-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
2016-03-18 19:21 ` Rob Herring
2016-03-18 19:21 ` Rob Herring
2016-03-11 10:55 ` [PATCH 3/6] net: arc_emac: support the phy reset for emac driver Caesar Wang
2016-03-11 10:55 ` Caesar Wang
2016-03-11 13:47 ` Sergei Shtylyov
2016-03-11 14:56 ` Heiko Stübner
2016-03-11 14:59 ` Heiko Stübner
2016-03-11 18:35 ` Sergei Shtylyov [this message]
2016-03-13 3:57 ` Caesar Wang
2016-03-11 19:22 ` Sergei Shtylyov
2016-03-11 10:55 ` [PATCH 6/6] ARM: dts: rockchip: add support emac for RK3036 Caesar Wang
2016-03-11 10:55 ` Caesar Wang
2016-03-11 10:55 ` Caesar Wang
2016-03-11 10:55 ` [PATCH 4/6] net: arc: trivial: cleanup the emac driver Caesar Wang
2016-03-11 10:55 ` Caesar Wang
2016-03-11 11:28 ` kbuild test robot
2016-03-11 11:28 ` kbuild test robot
2016-03-11 11:28 ` kbuild test robot
2016-03-11 10:55 ` [PATCH 5/6] clk: rockchip: rk3036: fix and add node id for emac clock Caesar Wang
2016-03-11 10:55 ` Caesar Wang
2016-03-11 11:15 ` Heiko Stübner
2016-03-11 11:15 ` Heiko Stübner
2016-03-11 11:15 ` Heiko Stübner
2016-03-11 11:15 ` Heiko Stübner
2016-03-11 12:01 ` Caesar Wang
2016-03-11 12:01 ` Caesar Wang
2016-03-11 12:28 ` Heiko Stübner
2016-03-11 12:28 ` Heiko Stübner
2016-03-11 12:28 ` Heiko Stübner
2016-03-11 13:46 ` [PATCH 0/6] arc_emac: fixes the emac issues oand cleanup emac drivers Sergei Shtylyov
2016-03-11 13:46 ` Sergei Shtylyov
2016-03-11 14:48 ` Caesar Wang
2016-03-11 14:48 ` Caesar Wang
2016-03-11 18:46 ` Sergei Shtylyov
2016-03-11 18:46 ` Sergei Shtylyov
2016-03-13 4:04 ` Caesar Wang
2016-03-13 4:04 ` Caesar Wang
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=56E30FE5.1080607@cogentembedded.com \
--to=sergei.shtylyov@cogentembedded.com \
--cc=al.kochet@gmail.com \
--cc=davem@davemloft.net \
--cc=heiko@sntech.de \
--cc=keescook@google.com \
--cc=leozwang@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=netdev@vger.kernel.org \
--cc=robh+dt@kernel.org \
--cc=wxt@rock-chips.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 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.