netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Corentin Labbe <clabbe.montjoie-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: Andre Przywara <andre.przywara-5wv7dgnIgG8@public.gmane.org>
Cc: "Icenowy Zheng" <icenowy-h8G6r0blFSE@public.gmane.org>,
	"Maxime Ripard"
	<maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
	"Chen-Yu Tsai" <wens-jdAy2FN1RRM@public.gmane.org>,
	"Rob Herring" <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	"Mark Rutland" <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
	"Russell King" <linux-I+IVW8TIWO2tmTQ+vhA3Yw@public.gmane.org>,
	"Catalin Marinas" <catalin.marinas-5wv7dgnIgG8@public.gmane.org>,
	"Will Deacon" <will.deacon-5wv7dgnIgG8@public.gmane.org>,
	"Giuseppe Cavallaro"
	<peppe.cavallaro-qxv4g6HH51o@public.gmane.org>,
	alexandre.torgue-qxv4g6HH51o@public.gmane.org,
	devicetree <devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	netdev <netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	linux-kernel
	<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	linux-sunxi <linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>,
	linux-arm-kernel
	<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
	david.wu-TNX95d0MmH7DzftRWevZcw@public.gmane.org,
	"Florian Fainelli"
	<f.fainelli-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	"Andrew Lunn" <andrew-g2DYL2Zd6BY@public.gmane.org>,
	"Heiko Stübner" <heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org>
Subject: Re: [PATCH v6 05/21] net-next: stmmac: Add dwmac-sun8i
Date: Tue, 27 Jun 2017 14:37:48 +0200	[thread overview]
Message-ID: <20170627123748.GA8403@Red> (raw)
In-Reply-To: <858b5361-fde5-8ab4-b9ba-aeb7859b9a7d-5wv7dgnIgG8@public.gmane.org>

On Tue, Jun 27, 2017 at 11:33:56AM +0100, Andre Przywara wrote:
> Hi,
> 
> On 27/06/17 11:23, Icenowy Zheng wrote:
> > 
> > 
> > 于 2017年6月27日 GMT+08:00 下午6:15:58, Andre Przywara <andre.przywara-5wv7dgnIgG8@public.gmane.org> 写到:
> >> Hi,
> >>
> >> On 27/06/17 10:41, Maxime Ripard wrote:
> >>> On Tue, Jun 27, 2017 at 10:02:45AM +0100, Andre Przywara wrote:
> >>>> Hi,
> >>>>
> >>>> (CC:ing some people from that Rockchip dmwac series)
> >>>>
> >>>> On 27/06/17 09:21, Corentin Labbe wrote:
> >>>>> On Tue, Jun 27, 2017 at 04:11:21PM +0800, Chen-Yu Tsai wrote:
> >>>>>> On Tue, Jun 27, 2017 at 4:05 PM, Corentin Labbe
> >>>>>> <clabbe.montjoie-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> >>>>>>> On Mon, Jun 26, 2017 at 01:18:23AM +0100, André Przywara wrote:
> >>>>>>>> On 31/05/17 08:18, Corentin Labbe wrote:
> >>>>>>>>> The dwmac-sun8i is a heavy hacked version of stmmac hardware by
> >>>>>>>>> allwinner.
> >>>>>>>>> In fact the only common part is the descriptor management and
> >> the first
> >>>>>>>>> register function.
> >>>>>>>>
> >>>>>>>> Hi,
> >>>>>>>>
> >>>>>>>> I know I am a bit late with this, but while adapting the U-Boot
> >> driver
> >>>>>>>> to the new binding I was wondering about the internal PHY
> >> detection:
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> So here you seem to deduce the usage of the internal PHY by the
> >> PHY
> >>>>>>>> interface specified in the DT (MII = internal, RGMII =
> >> external).
> >>>>>>>> I think I raised this question before, but isn't it perfectly
> >> legal for
> >>>>>>>> a board to use MII with an external PHY even on those SoCs that
> >> feature
> >>>>>>>> an internal PHY?
> >>>>>>>> On the first glance that does not make too much sense, but apart
> >> from
> >>>>>>>> not being the correct binding to describe all of the SoCs
> >> features I see
> >>>>>>>> two scenarios:
> >>>>>>>> 1) A board vendor might choose to not use the internal PHY
> >> because it
> >>>>>>>> has bugs, lacks features (configurability) or has other issues.
> >> For
> >>>>>>>> instance I have heard reports that the internal PHY makes the
> >> SoC go
> >>>>>>>> rather hot, possibly limiting the CPU frequency. By using an
> >> external
> >>>>>>>> MII PHY (which are still cheaper than RGMII PHYs) this can be
> >> avoided.
> >>>>>>>> 2) A PHY does not necessarily need to be directly connected to
> >>>>>>>> magnetics. Indeed quite some boards use (RG)MII to connect to a
> >> switch
> >>>>>>>> IC or some other network circuitry, for instance fibre
> >> connectors.
> >>>>>>>>
> >>>>>>>> So I was wondering if we would need an explicit:
> >>>>>>>>       allwinner,use-internal-phy;
> >>>>>>>> boolean DT property to signal the usage of the internal PHY?
> >>>>>>>> Alternatively we could go with the negative version:
> >>>>>>>>       allwinner,disable-internal-phy;
> >>>>>>>>
> >>>>>>>> Or what about introducing a new "allwinner,internal-mii-phy"
> >> compatible
> >>>>>>>> string for the *PHY* node and use that?
> >>>>>>>>
> >>>>>>>> I just want to avoid that we introduce a binding that causes us
> >>>>>>>> headaches later. I think we can still fix this with a followup
> >> patch
> >>>>>>>> before the driver and its binding hit a release kernel.
> >>>>>>>>
> >>>>>>>> Cheers,
> >>>>>>>> Andre.
> >>>>>>>>
> >>>>>>>
> >>>>>>> I just see some patch, where "phy-mode = internal" is valid.
> >>>>>>> I will try to find a way to use it
> >>>>>>
> >>>>>> Can you provide a link?
> >>>>>
> >>>>> https://lkml.org/lkml/2017/6/23/479
> >>>>>
> >>>>>>
> >>>>>> I'm not a fan of using phy-mode for this. There's no guarantee
> >> what
> >>>>>> mode the internal PHY uses. That's what phy-mode is for.
> >>>>
> >>>> I can understand Chen-Yu's concerns, but ...
> >>>>
> >>>>> For each soc the internal PHY mode is know and setted in
> >> emac_variant/internal_phy
> >>>>> So its not a problem.
> >>>>
> >>>> that is true as well, at least for now.
> >>>>
> >>>> So while I agree that having a separate property to indicate the
> >> usage
> >>>> of the internal PHY would be nice, I am bit tempted to use this
> >> easier
> >>>> approach and piggy back on the existing phy-mode property.
> >>>
> >>> We're trying to fix an issue that works for now too.
> >>>
> >>> If we want to consider future weird cases, then we must consider all
> >>> of them. And the phy mode changing is definitely not really far
> >>> fetched.
> >>>
> >>> I agree with Chen-Yu, and I really feel like the compatible solution
> >>> you suggested would cover both your concerns, and ours.
> >>
> >> So something like this?
> >> 	emac: emac@1c30000 {
> >> 	    compatible = "allwinner,sun8i-h3-emac";
> >> 	    ...
> >> 	    phy-mode = "mii";
> >> 	    phy-handle = <&int_mii_phy>;
> >> 	    ...
> >>
> >> 	    mdio: mdio {
> >>                #address-cells = <1>;
> >>                #size-cells = <0>;
> >>                int_mii_phy: ethernet-phy@1 {
> >>                    compatible = "allwinner,sun8i-h3-ephy";
> >>                    syscon = <&syscon>;
> > 
> > The MAC still needs to set some bits of syscon register.
> 
> Yes, the syscon property needs also to be in the MAC node, that was
> meant to be somewhere in the second "..." ;-)
> 
> But now since Chen-Yu mentioned that we need to set up the PHY *first*
> to make it actually discoverable via MDIO, I wonder if we could change
> this to:
> 1) have the DT as described here
> 2) Let the dwmac-sun8i driver peek into the node referenced by
> phy-handle and check the compatible string there.
> 3) If that matches some allwinner internal PHY name, it sets up the PHY
> to make it respond when the MDIO driver queries its bus.
> 
> Or can a PHY driver set itself up (since we have clocks and resets
> properties in there) *before* the MDIO bus gets scanned?
> Chen-Yu's comment in the other mail hints at that this is not easily
> possible.
> 
> Cheers,
> Andre.
> 

I think adding phy compatible just make things more complex.

I think the patch series I sent early fix all problems without more complexity since:
- it does not add more DT stuff
- it use an already used in tree DT phy-mode "internal" (and so phy mode PHY_INTERFACE_MODE_INTERNAL)

Regards
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2017-06-27 12:37 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-31  7:18 [PATCH v6 00/21] net-next: stmmac: add dwmac-sun8i ethernet driver Corentin Labbe
     [not found] ` <20170531071852.12422-1-clabbe.montjoie-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-05-31  7:18   ` [PATCH v6 01/21] net-next: stmmac: export stmmac_set_mac_addr/stmmac_get_mac_addr Corentin Labbe
2017-05-31  7:18   ` [PATCH v6 02/21] net-next: stmmac: add optional setup function Corentin Labbe
2017-05-31  7:18   ` [PATCH v6 03/21] dt-bindings: net-next: Add DT bindings documentation for Allwinner dwmac-sun8i Corentin Labbe
2017-05-31  7:18   ` [PATCH v6 04/21] dt-bindings: syscon: Add DT bindings documentation for Allwinner syscon Corentin Labbe
2017-05-31  7:18   ` [PATCH v6 05/21] net-next: stmmac: Add dwmac-sun8i Corentin Labbe
     [not found]     ` <20170531071852.12422-6-clabbe.montjoie-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-06-26  0:18       ` André Przywara
     [not found]         ` <8e3d73a7-e9ff-d3e2-4bce-bcc79cdf86db-5wv7dgnIgG8@public.gmane.org>
2017-06-27  8:05           ` Corentin Labbe
2017-06-27  8:11             ` Chen-Yu Tsai
     [not found]               ` <CAGb2v65mhDN9vXe6DE2cZPW1BzgYPwK+D2U5VFgyr0wVVZZqDQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-06-27  8:21                 ` Corentin Labbe
2017-06-27  9:02                   ` Andre Przywara
     [not found]                     ` <530f7b3e-247d-2e4d-8174-ce6195bacf5b-5wv7dgnIgG8@public.gmane.org>
2017-06-27  9:41                       ` Maxime Ripard
     [not found]                         ` <20170627094111.supxmzf2k3n3ewec-ZC1Zs529Oq4@public.gmane.org>
2017-06-27 10:11                           ` Chen-Yu Tsai
2017-06-27 10:17                             ` [linux-sunxi] " Icenowy Zheng
     [not found]                               ` <B87F7AC7-0742-4CA9-AB6B-C86C1598667B-h8G6r0blFSE@public.gmane.org>
2017-06-27 10:20                                 ` Chen-Yu Tsai
2017-06-27 10:15                         ` Andre Przywara
     [not found]                           ` <44afb371-44d4-dbb5-0aac-4bbc55269344-5wv7dgnIgG8@public.gmane.org>
2017-06-27 10:22                             ` Chen-Yu Tsai
2017-06-27 10:23                             ` Icenowy Zheng
2017-06-27 10:33                               ` Andre Przywara
     [not found]                                 ` <858b5361-fde5-8ab4-b9ba-aeb7859b9a7d-5wv7dgnIgG8@public.gmane.org>
2017-06-27 12:37                                   ` Corentin Labbe [this message]
2017-06-27 17:29                                     ` Maxime Ripard
2017-06-27 17:37                                       ` Corentin Labbe
2017-06-27 17:37                                       ` Florian Fainelli
     [not found]                                         ` <42c51c03-2247-2d75-8534-51a96a92875c-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-07-01  6:53                                           ` Corentin Labbe
2017-07-01 21:42                                             ` Florian Fainelli
     [not found]                                               ` <e5d4eb94-65b7-5cf6-2e50-41a6b3323ae2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-07-02  8:36                                                 ` Corentin Labbe
2017-06-27 16:00                                   ` Maxime Ripard
2017-05-31  7:18   ` [PATCH v6 06/21] arm: sun8i: sunxi-h3-h5: Add dt node for the syscon control module Corentin Labbe
2017-05-31  7:18   ` [PATCH v6 07/21] arm: sun8i: sunxi-h3-h5: add dwmac-sun8i ethernet driver Corentin Labbe
2017-05-31  7:18   ` [PATCH v6 08/21] arm: sun8i: orangepi-pc: Enable dwmac-sun8i Corentin Labbe
2017-05-31  7:18   ` [PATCH v6 09/21] arm: sun8i: orangepi-zero: " Corentin Labbe
2017-05-31  7:18   ` [PATCH v6 10/21] arm: sun8i: orangepi-one: " Corentin Labbe
2017-05-31  7:18   ` [PATCH v6 11/21] arm: sun8i: orangepi-2: " Corentin Labbe
2017-05-31  7:18   ` [PATCH v6 12/21] arm: sun8i: orangepi-pc-plus: Set EMAC activity LEDs to active high Corentin Labbe
2017-05-31  7:18   ` [PATCH v6 13/21] arm: sun8i: nanopi-neo: Enable dwmac-sun8i Corentin Labbe
2017-05-31  7:18   ` [PATCH v6 14/21] arm64: allwinner: sun50i-a64: Add dt node for the syscon control module Corentin Labbe
2017-05-31  7:18   ` [PATCH v6 15/21] arm64: allwinner: sun50i-a64: add dwmac-sun8i Ethernet driver Corentin Labbe
2017-05-31  7:18   ` [PATCH v6 16/21] arm64: allwinner: pine64: Enable dwmac-sun8i Corentin Labbe
2017-05-31  7:18   ` [PATCH v6 17/21] arm64: allwinner: pine64-plus: " Corentin Labbe
2017-05-31  7:18   ` [PATCH v6 18/21] arm64: allwinner: bananapi-m64: " Corentin Labbe
2017-05-31  7:18   ` [PATCH v6 19/21] arm: sunxi: Enable dwmac-sun8i driver on sunxi_defconfig Corentin Labbe
2017-05-31  7:18   ` [PATCH v6 20/21] arm: multi_v7: Enable dwmac-sun8i driver on multi_v7_defconfig Corentin Labbe
2017-05-31  7:18   ` [PATCH v6 21/21] arm64: defconfig: Enable dwmac-sun8i driver on defconfig Corentin Labbe
2017-06-01 18:58   ` [PATCH v6 00/21] net-next: stmmac: add dwmac-sun8i ethernet driver David Miller
     [not found]     ` <20170601.145819.789604139072328057.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2017-06-02  6:37       ` Maxime Ripard
     [not found]         ` <20170602063752.aqyvwcykvepiyt4y-ZC1Zs529Oq4@public.gmane.org>
2017-06-02  9:13           ` Maxime Ripard
     [not found]             ` <20170602091320.lyfxsanxrypfpozb-ZC1Zs529Oq4@public.gmane.org>
2017-06-02 14:22               ` David Miller
     [not found]                 ` <20170602.102205.701672574727845689.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2017-06-02 22:24                   ` Maxime Ripard
     [not found]                     ` <20170602222422.2elv6snjp3ahrhbi-ZC1Zs529Oq4@public.gmane.org>
2017-06-09 12:50                       ` Maxime Ripard
2017-06-02 14:08           ` David Miller

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=20170627123748.GA8403@Red \
    --to=clabbe.montjoie-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
    --cc=alexandre.torgue-qxv4g6HH51o@public.gmane.org \
    --cc=andre.przywara-5wv7dgnIgG8@public.gmane.org \
    --cc=andrew-g2DYL2Zd6BY@public.gmane.org \
    --cc=catalin.marinas-5wv7dgnIgG8@public.gmane.org \
    --cc=david.wu-TNX95d0MmH7DzftRWevZcw@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=f.fainelli-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org \
    --cc=icenowy-h8G6r0blFSE@public.gmane.org \
    --cc=linux-I+IVW8TIWO2tmTQ+vhA3Yw@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \
    --cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
    --cc=maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
    --cc=netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=peppe.cavallaro-qxv4g6HH51o@public.gmane.org \
    --cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=wens-jdAy2FN1RRM@public.gmane.org \
    --cc=will.deacon-5wv7dgnIgG8@public.gmane.org \
    /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).