All of lore.kernel.org
 help / color / mirror / Atom feed
From: Florian Fainelli <f.fainelli@gmail.com>
To: Andrew Lunn <andrew@lunn.ch>, David Wu <david.wu@rock-chips.com>
Cc: davem@davemloft.net, heiko@sntech.de, robh+dt@kernel.org,
	mark.rutland@arm.com, catalin.marinas@arm.com,
	will.deacon@arm.com, olof@lixom.net, linux@armlinux.org.uk,
	arnd@arndb.de, peppe.cavallaro@st.com, alexandre.torgue@st.com,
	huangtao@rock-chips.com, hwg@rock-chips.com,
	netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-rockchip@lists.infradead.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 05/11] net: stmmac: dwmac-rk: Add internal phy support
Date: Thu, 27 Jul 2017 09:54:01 -0700	[thread overview]
Message-ID: <65ae1747-4dff-b1d8-8aa3-684fc8c7809a@gmail.com> (raw)
In-Reply-To: <20170727134834.GD18666@lunn.ch>

On 07/27/2017 06:48 AM, Andrew Lunn wrote:
> On Thu, Jul 27, 2017 at 09:02:16PM +0800, David Wu wrote:
>> To make internal phy work, need to configure the phy_clock,
>> phy cru_reset and related registers.
>>
>> Signed-off-by: David Wu <david.wu@rock-chips.com>
>> ---
>> changes in v2:
>>  - Use the standard "phy-mode" property for internal phy. (Florian)
> 
> I think we need to discuss this. This PHY appears to be on an MDIO
> bus, it uses a standard PHY driver, and it appears to be using an RMII
> interface. So it is just an ordinary PHY.

First, the fact that the internal PHY also appears through MDIO is
orthogonal to the fact that it is internal or external. Plenty of
designs have internal PHYs exposed through MDIO because that is
convenient. What matters though is how the data/clock lines are wired
internally, which is what "phy-mode" describes.

> 
> Internal is supposed to be something which is not ordinary, does not
> use one of the standard phy modes, needs something special to make it
> work.
> 
> Florain, it appears to be your suggestion to use internal. What do you
> say?

phy-mode = "internal" really means that it is not a standard MII variant
to connect the data/clock lines between the Ethernet MAC and the PHY,
and this can happen in some designs (although quite unlikely). So from
there we could do several things depending on the requirements:

- if you can have your Ethernet MAC driver perform the necessary
configuration *after* you have been able to bind the PHY device with its
PHY driver, then the PHY driver should have PHY_IS_INTERNAL in its
flags, and you can use phy_is_internal() from PHYLIB to tell you that
and we could imagine using: phy-mode = "rmii" because that would not too
much of a stretch

- if you need knowledge about this PHY connection type prior to binding
the PHY device and its driver (that is, before of_phy_connect()) we
could add a boolean property e.g: "phy-is-internal" that allows us to
know that, or we can have a new phy-mode value, e.g: "internal-rmii"
which describes that, either way would probably be fine, but the former
scales better

Then again, using phy-mode = "internal" even though this is Reduced MII
is not big of a deal IMHO as long as there is no loss of information and
that internal de-facto means internal reduced MII for instance.
-- 
Florian

WARNING: multiple messages have this Message-ID (diff)
From: f.fainelli@gmail.com (Florian Fainelli)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 05/11] net: stmmac: dwmac-rk: Add internal phy support
Date: Thu, 27 Jul 2017 09:54:01 -0700	[thread overview]
Message-ID: <65ae1747-4dff-b1d8-8aa3-684fc8c7809a@gmail.com> (raw)
In-Reply-To: <20170727134834.GD18666@lunn.ch>

On 07/27/2017 06:48 AM, Andrew Lunn wrote:
> On Thu, Jul 27, 2017 at 09:02:16PM +0800, David Wu wrote:
>> To make internal phy work, need to configure the phy_clock,
>> phy cru_reset and related registers.
>>
>> Signed-off-by: David Wu <david.wu@rock-chips.com>
>> ---
>> changes in v2:
>>  - Use the standard "phy-mode" property for internal phy. (Florian)
> 
> I think we need to discuss this. This PHY appears to be on an MDIO
> bus, it uses a standard PHY driver, and it appears to be using an RMII
> interface. So it is just an ordinary PHY.

First, the fact that the internal PHY also appears through MDIO is
orthogonal to the fact that it is internal or external. Plenty of
designs have internal PHYs exposed through MDIO because that is
convenient. What matters though is how the data/clock lines are wired
internally, which is what "phy-mode" describes.

> 
> Internal is supposed to be something which is not ordinary, does not
> use one of the standard phy modes, needs something special to make it
> work.
> 
> Florain, it appears to be your suggestion to use internal. What do you
> say?

phy-mode = "internal" really means that it is not a standard MII variant
to connect the data/clock lines between the Ethernet MAC and the PHY,
and this can happen in some designs (although quite unlikely). So from
there we could do several things depending on the requirements:

- if you can have your Ethernet MAC driver perform the necessary
configuration *after* you have been able to bind the PHY device with its
PHY driver, then the PHY driver should have PHY_IS_INTERNAL in its
flags, and you can use phy_is_internal() from PHYLIB to tell you that
and we could imagine using: phy-mode = "rmii" because that would not too
much of a stretch

- if you need knowledge about this PHY connection type prior to binding
the PHY device and its driver (that is, before of_phy_connect()) we
could add a boolean property e.g: "phy-is-internal" that allows us to
know that, or we can have a new phy-mode value, e.g: "internal-rmii"
which describes that, either way would probably be fine, but the former
scales better

Then again, using phy-mode = "internal" even though this is Reduced MII
is not big of a deal IMHO as long as there is no loss of information and
that internal de-facto means internal reduced MII for instance.
-- 
Florian

  reply	other threads:[~2017-07-27 16:54 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-27 12:55 [PATCH v2 00/11] Add the internal phy support David Wu
2017-07-27 12:55 ` David Wu
2017-07-27 12:55 ` David Wu
2017-07-27 12:55 ` [PATCH v2 01/11] net: phy: Add rockchip phy driver support David Wu
2017-07-27 12:55   ` David Wu
2017-07-27 12:55   ` David Wu
2017-07-27 13:38   ` Andrew Lunn
2017-07-27 13:38     ` Andrew Lunn
2017-07-27 13:38     ` Andrew Lunn
2017-07-28  7:48     ` David.Wu
2017-07-28  7:48       ` David.Wu
2017-07-28  7:48       ` David.Wu
2017-07-27 16:51   ` Florian Fainelli
2017-07-27 16:51     ` Florian Fainelli
2017-07-28  8:19     ` David.Wu
2017-07-28  8:19       ` David.Wu
2017-07-27 12:55 ` [PATCH v2 02/11] multi_v7_defconfig: Make rockchip phy built-in David Wu
2017-07-27 12:55   ` David Wu
2017-07-27 12:55   ` David Wu
2017-07-27 12:55 ` [PATCH v2 03/11] arm64: defconfig: Enable CONFIG_ROCKCHIP_PHY David Wu
2017-07-27 12:55   ` David Wu
2017-07-27 12:55 ` [PATCH v2 04/11] net: stmmac: dwmac-rk: Remove unwanted code for rk3328_set_to_rmii() David Wu
2017-07-27 12:55   ` David Wu
2017-07-27 13:02 ` [PATCH v2 05/11] net: stmmac: dwmac-rk: Add internal phy support David Wu
2017-07-27 13:02   ` David Wu
2017-07-27 13:02   ` [PATCH v2 06/11] net: stmmac: dwmac-rk: Add internal phy support for rk3228 David Wu
2017-07-27 13:02     ` David Wu
2017-07-27 13:02   ` [PATCH v2 07/11] net: stmmac: dwmac-rk: Add internal phy supprot for rk3328 David Wu
2017-07-27 13:02     ` David Wu
2017-07-27 13:02   ` [PATCH v2 08/11] ARM: dts: rk322x: Add support internal phy for gmac David Wu
2017-07-27 13:02     ` David Wu
2017-07-27 13:02   ` [PATCH v2 09/11] ARM: dts: rk3228-evb: Enable the " David Wu
2017-07-27 13:02     ` David Wu
2017-07-27 13:02     ` David Wu
2017-07-27 13:48   ` [PATCH v2 05/11] net: stmmac: dwmac-rk: Add internal phy support Andrew Lunn
2017-07-27 13:48     ` Andrew Lunn
2017-07-27 16:54     ` Florian Fainelli [this message]
2017-07-27 16:54       ` Florian Fainelli
2017-07-27 17:31       ` Corentin Labbe
2017-07-27 17:31         ` Corentin Labbe
2017-07-27 17:31         ` Corentin Labbe
2017-07-28  7:39         ` Maxime Ripard
2017-07-28  7:39           ` Maxime Ripard
2017-07-28  7:39           ` Maxime Ripard
2017-07-28  6:56       ` David.Wu
2017-07-28  6:56         ` David.Wu
2017-08-02  3:44         ` Chen-Yu Tsai
2017-08-02  3:46         ` Chen-Yu Tsai
2017-08-02  3:46           ` Chen-Yu Tsai
2017-08-02  3:46           ` Chen-Yu Tsai
2017-07-28  6:46     ` David.Wu
2017-07-28  6:46       ` David.Wu
2017-07-27 13:08 ` [PATCH v2 10/11] ARM64: dts: rockchip: Add gmac2phy node support for rk3328 David Wu
2017-07-27 13:08   ` David Wu
2017-07-27 13:08   ` David Wu
2017-07-27 13:10 ` [PATCH v2 11/11] ARM64: dts: rockchip: Enable gmac2phy for rk3328-evb David Wu
2017-07-27 13:10   ` David Wu

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=65ae1747-4dff-b1d8-8aa3-684fc8c7809a@gmail.com \
    --to=f.fainelli@gmail.com \
    --cc=alexandre.torgue@st.com \
    --cc=andrew@lunn.ch \
    --cc=arnd@arndb.de \
    --cc=catalin.marinas@arm.com \
    --cc=davem@davemloft.net \
    --cc=david.wu@rock-chips.com \
    --cc=devicetree@vger.kernel.org \
    --cc=heiko@sntech.de \
    --cc=huangtao@rock-chips.com \
    --cc=hwg@rock-chips.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=linux@armlinux.org.uk \
    --cc=mark.rutland@arm.com \
    --cc=netdev@vger.kernel.org \
    --cc=olof@lixom.net \
    --cc=peppe.cavallaro@st.com \
    --cc=robh+dt@kernel.org \
    --cc=will.deacon@arm.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.