linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: sebastian.hesselbarth@gmail.com (Sebastian Hesselbarth)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/5 v2] mv643xx_eth: add Device Tree bindings
Date: Fri, 05 Apr 2013 22:35:41 +0200	[thread overview]
Message-ID: <515F359D.7000306@gmail.com> (raw)
In-Reply-To: <20130405180443.GE3598@obsidianresearch.com>

On 04/05/2013 08:04 PM, Jason Gunthorpe wrote:
> On Fri, Apr 05, 2013 at 03:58:03PM +0200, Sebastian Hesselbarth wrote:
>> I don't think that the ethernet controller should probe the PHY's on mdio-bus
>> at all. At least not for DT enabled platforms. I had a look at DT and non-DT
>> mdio-bus sources, and realized that there is a bus scan for non-DT only.
>> of_mdiobus_register requires you to set (and know) the PHY address.
>
> DT platforms should have the option to use the standard phy-phandle
> connection:
>
>
> 		mdio at 72004 {
> 			#address-cells =<1>;
> 			#size-cells =<0>;
> 			compatible = "marvell,orion-mdio";
> 			reg =<0x72004 0x84>;
> 			status = "disabled";
>
> +                        PHY1: ethernet-phy at 1 {
> +                                reg =<1>;
> +                                device_type = "ethernet-phy";
> +                        };
> 		};
>
> 		ethernet-group at 72000 {
> 			#address-cells =<1>;
> 			#size-cells =<0>;
> 			compatible = "marvell,mv643xx-eth-block";
> 			reg =<0x72000 0x4000>;
> 			tx-csum-limit =<1600>;
> 			status = "disabled";
>
> 			egiga0: ethernet at 0 {
> 				device_type = "network";
> 				compatible = "marvell,mv643xx-eth";
> 				reg =<0>;
> 				interrupts =<29>;
> 				clocks =<&gate_clk 2>;
> +	                        phy-handle =<&PHY1>;
> 			};
> 		};
>
> When phy-handle is present the ethernet driver should not probe/scan for
> phys.
>
> There is standard code to handle all of this - an important gain is
> that the phy driver now has access to a DT node and can apply
> phy-specific properties.

The above is what I use as a modification of Florian's patches.
I compared of_mdiobus_register against mdiobus_register. The difference
is that DT version does not scan the bus for attached PHYs. That is ok,
if you know the phy_address of the PHY that you pass the handle of. But 
in most cases there will be only one PHY on the mdiobus and especially
for new boards probing will help here.

>> We had a similar discussion whether to probe or not for DT nodes,
>> and I guess there also will be some discussion about the above
>> patch. OTOH we could just (again) ask users of every
>> kirkwood/orion5x/dove board to tell their phy addresses and fail to
>> probe the phy for new boards...
>
> Maybe print a warning and call the no-DT phy probe code if phy-handle
> is nor present?

I think it would be best to spam each probing result during mdiobus
scan to encourage people to edit the DT and put in the phy_addr
directly. IMHO it will be best to have bus scan on mdiobus rather than
ethernet driver.

> Not sure this should be in the common code, phy probing is sketchy, it
> shouldn't be encouraged, IMHO..

Actually, it is in common code (non-DT case) and I think passing the
phy_addr by DT node like above is best. But for boards you don't
know the address (yet) probing helps a lot. If all phy nodes have their
reg property set, no probing will be performed.

For testing mdio bus probe, I used

mdio {
	...
	ethphy: ethernet-phy {
		reg = <32>;
	};
};

And 32 should be defined as OF_PHY_ADDR_AUTOSCAN. It is an invalid
address as max phy_addr is 31. I also thought about a bool property
but passing an invalid reg property in SoC file allows to overwrite
it in board file with the actual address easily.
And AFAIK bool properties cannot be removed later on by board specific
nodes.

Sebastian

  reply	other threads:[~2013-04-05 20:35 UTC|newest]

Thread overview: 131+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-04 10:27 [PATCH 0/5 v2] mv643xx_eth: device tree bindings Florian Fainelli
2013-04-04 10:27 ` [PATCH 1/5 v2] mv643xx_eth: add Device Tree bindings Florian Fainelli
2013-04-04 21:29   ` Simon Baatz
2013-04-05  9:56     ` Florian Fainelli
2013-04-05 13:58       ` Sebastian Hesselbarth
2013-04-05 14:23         ` Florian Fainelli
2013-04-05 18:04         ` Jason Gunthorpe
2013-04-05 20:35           ` Sebastian Hesselbarth [this message]
2013-04-04 10:27 ` [PATCH 2/5] mv643xx_eth: update Device Tree bindings documentation Florian Fainelli
2013-04-04 10:27 ` [PATCH 3/5 v2] ARM: kirkwood: add device node entries for the gigabit interfaces Florian Fainelli
2013-04-04 21:35   ` Simon Baatz
2013-04-05  9:21     ` Florian Fainelli
2013-04-04 10:27 ` [PATCH 4/5 v2] ARM: orion5x: add gigabit ethernet device tree node Florian Fainelli
2013-04-04 10:27 ` [PATCH 5/5 v2] ARM: dove: add gigabit device tree nodes to dove.dtsi Florian Fainelli
2013-04-11 16:53 ` [PATCH 0/5 v2] mv643xx_eth: device tree bindings Jason Cooper
2013-04-11 17:09   ` Sebastian Hesselbarth
2013-04-13 15:21   ` Thomas Petazzoni
2013-04-13 19:00     ` Jason Cooper
2013-04-15  3:07       ` Ben Hutchings
2013-04-15 13:43         ` Jason Cooper
2013-04-15 10:00       ` Thomas Petazzoni
2013-05-06 15:33 ` [PATCH 0/7] " Sebastian Hesselbarth
2013-05-06 15:33   ` [PATCH v3 1/7] net: mv643xx_eth: add Device Tree bindings Sebastian Hesselbarth
2013-05-20 21:19     ` Simon Baatz
2013-05-20 21:34       ` Sebastian Hesselbarth
2013-05-06 15:33   ` [PATCH v3 2/7] net: mv643xx_eth: update Device Tree bindings documentation Sebastian Hesselbarth
2013-05-06 15:33   ` [PATCH v3 3/7] ARM: dove: remove legacy mv643xx_eth setup Sebastian Hesselbarth
2013-05-06 15:33   ` [PATCH v3 4/7] ARM: dove: add gigabit ethernet and mvmdio device tree nodes Sebastian Hesselbarth
2013-05-06 15:33   ` [PATCH v3 5/7] ARM: kirkwood: remove legacy mv643xx_eth board setup Sebastian Hesselbarth
2013-05-06 15:39     ` Thomas Petazzoni
2013-05-06 15:33   ` [PATCH v3 6/7] ARM: kirkwood: add gigabit ethernet and mvmdio device tree nodes Sebastian Hesselbarth
2013-05-20 21:27     ` Simon Baatz
2013-05-20 21:38       ` Sebastian Hesselbarth
2013-05-06 15:33   ` [PATCH v3 7/7] ARM: kirkwood: remove legacy clk alias for mv643xx_eth Sebastian Hesselbarth
2013-05-06 15:38   ` [PATCH 0/7] mv643xx_eth: device tree bindings David Miller
2013-05-06 16:07   ` Jason Cooper
2013-05-06 16:21     ` Sebastian Hesselbarth
2013-05-07  9:10   ` Valentin Longchamp
2013-05-21 16:41   ` [PATCH v4 00/12] net: mv643xx_eth DT support and fixes Sebastian Hesselbarth
2013-05-21 16:41     ` [PATCH v4 01/12] net: mv643xx_eth: use phy_disconnect instead of phy_detach Sebastian Hesselbarth
2013-05-21 16:41     ` [PATCH v4 02/12] net: mv643xx_eth: use managed devm_ioremap for port registers Sebastian Hesselbarth
2013-05-21 16:41     ` [PATCH v4 03/12] net: mv643xx_eth: add phy_node to platform_data struct Sebastian Hesselbarth
2013-05-21 16:41     ` [PATCH v4 04/12] net: mv643xx_eth: use of_phy_connect if phy_node present Sebastian Hesselbarth
2013-05-21 16:41     ` [PATCH v4 05/12] net: mv643xx_eth: add DT parsing support Sebastian Hesselbarth
2013-05-21 16:41     ` [PATCH v4 06/12] ARM: dove: add gigabit ethernet and mvmdio device tree nodes Sebastian Hesselbarth
2013-05-21 17:48       ` Andrew Lunn
2013-05-22  9:43         ` Sebastian Hesselbarth
2013-05-22 10:04           ` tiejun.chen
2013-05-22 10:13             ` Sebastian Hesselbarth
2013-05-22 13:10               ` Jason Cooper
2013-05-22 16:59                 ` Jason Gunthorpe
2013-05-22 17:01                   ` Jason Cooper
2013-05-22 17:32                   ` Sebastian Hesselbarth
2013-05-22 17:35                     ` Jason Cooper
2013-05-22 17:42                       ` Sebastian Hesselbarth
2013-05-22 17:48                         ` Jason Cooper
2013-05-22 18:44                           ` Sebastian Hesselbarth
2013-05-22 18:49                             ` Jason Cooper
2013-05-22 18:55                               ` Sebastian Hesselbarth
2013-05-22 18:58                                 ` Jason Cooper
2013-05-22 19:52                           ` Sebastian Hesselbarth
2013-05-22 18:24                     ` Jason Gunthorpe
2013-05-22 18:51                       ` Sebastian Hesselbarth
2013-05-21 16:41     ` [PATCH v4 07/12] ARM: kirkwood: " Sebastian Hesselbarth
2013-05-21 16:41     ` [PATCH v4 08/12] ARM: orion5x: " Sebastian Hesselbarth
2013-05-21 16:41     ` [PATCH v4 09/12] ARM: dove: remove legacy mv643xx_eth setup Sebastian Hesselbarth
2013-05-21 16:41     ` [PATCH v4 10/12] ARM: kirkwood: remove legacy clk alias for mv643xx_eth Sebastian Hesselbarth
2013-05-21 16:41     ` [PATCH v4 11/12] ARM: kirkwood: remove redundant DT board files Sebastian Hesselbarth
2013-05-22 20:36       ` Simon Baatz
2013-05-22 20:55         ` Sebastian Hesselbarth
2013-05-22 21:02           ` Jason Cooper
2013-05-22 21:17             ` Sebastian Hesselbarth
2013-05-21 16:41     ` [PATCH v4 12/12] ARM: orion5x: remove legacy mv643xx_eth board setup Sebastian Hesselbarth
2013-05-22 16:16     ` [PATCH v4 00/12] net: mv643xx_eth DT support and fixes Andrew Lunn
2013-05-22 20:04     ` [PATCH 1/2] ARM: kirkwood: proper retain MAC address workaround on DT ethernet Sebastian Hesselbarth
2013-05-22 20:04       ` [PATCH 2/2] net: mv643xx_eth: proper initialization for Kirkwood SoCs Sebastian Hesselbarth
2013-05-22 20:16         ` Jason Gunthorpe
2013-05-22 21:02           ` Sebastian Hesselbarth
2013-05-23 16:01           ` Jason Cooper
2013-05-23 17:11             ` Jason Gunthorpe
2013-05-23 17:23               ` Jason Cooper
2013-05-23 17:53                 ` Jason Gunthorpe
2013-05-23 18:40                   ` Jason Cooper
2013-05-23 19:01                     ` Jason Gunthorpe
2013-05-24 16:46                       ` Jason Cooper
2013-05-24 16:53                         ` Andrew Lunn
2013-05-24 17:03                           ` Jason Cooper
2013-05-24 17:33                         ` Jason Gunthorpe
2013-05-28 18:02                           ` Jason Cooper
2013-05-23 22:40                     ` Sebastian Hesselbarth
2013-05-24 11:03                       ` Linus Walleij
2013-05-24 17:01                         ` Jason Cooper
2013-05-24 17:13                           ` Russell King - ARM Linux
2013-05-24 17:25                             ` Sebastian Hesselbarth
2013-05-24 16:53                       ` Jason Cooper
2013-05-26  4:04       ` [PATCH 1/2] ARM: kirkwood: proper retain MAC address workaround on DT ethernet David Miller
2013-05-26 20:06         ` Sebastian Hesselbarth
2013-05-27  9:23           ` David Miller
2013-05-27  9:39             ` Benjamin Herrenschmidt
2013-05-27 10:24               ` Sebastian Hesselbarth
2013-05-27 11:50                 ` Benjamin Herrenschmidt
2013-05-27 12:47                   ` Arnd Bergmann
2013-05-27 21:50                     ` Benjamin Herrenschmidt
2013-05-27 22:12                       ` Sebastian Hesselbarth
2013-05-27 22:17                       ` David Miller
2013-05-27 20:18                   ` David Miller
2013-05-27 21:48                     ` Benjamin Herrenschmidt
2013-05-27  9:38           ` Benjamin Herrenschmidt
2013-05-29 19:32     ` [PATCH v5 00/13] net: mv643xx_eth DT support and fixes Sebastian Hesselbarth
2013-05-29 19:32       ` [PATCH v5 01/13] net: mv643xx_eth: use phy_disconnect instead of phy_detach Sebastian Hesselbarth
2013-05-29 20:00         ` Jason Cooper
2013-05-29 19:32       ` [PATCH v5 02/13] net: mv643xx_eth: use managed devm_ioremap for port registers Sebastian Hesselbarth
2013-05-29 19:32       ` [PATCH v5 03/13] net: mv643xx_eth: add phy_node to platform_data struct Sebastian Hesselbarth
2013-05-29 19:32       ` [PATCH v5 04/13] net: mv643xx_eth: use of_phy_connect if phy_node present Sebastian Hesselbarth
2013-05-29 19:32       ` [PATCH v5 05/13] net: mv643xx_eth: proper initialization for Kirkwood SoCs Sebastian Hesselbarth
2013-05-29 19:32       ` [PATCH v5 06/13] net: mv643xx_eth: add DT parsing support Sebastian Hesselbarth
2013-05-29 19:32       ` [PATCH v5 07/13] ARM: dove: add gigabit ethernet and mvmdio device tree nodes Sebastian Hesselbarth
2013-05-29 19:32       ` [PATCH v5 08/13] ARM: kirkwood: " Sebastian Hesselbarth
2013-05-29 19:32       ` [PATCH v5 09/13] ARM: orion5x: " Sebastian Hesselbarth
2013-05-29 19:32       ` [PATCH v5 10/13] ARM: dove: remove legacy mv643xx_eth setup Sebastian Hesselbarth
2013-05-29 19:32       ` [PATCH v5 11/13] ARM: kirkwood: remove legacy clk alias for mv643xx_eth Sebastian Hesselbarth
2013-05-29 19:32       ` [PATCH v5 12/13] ARM: kirkwood: remove redundant DT board files Sebastian Hesselbarth
2013-05-30  9:06         ` Arnaud Ebalard
2013-05-30  9:08           ` Sebastian Hesselbarth
2013-05-30 19:37           ` Jason Cooper
2013-05-30 22:28             ` Arnaud Ebalard
2013-05-31 11:54               ` Jason Cooper
2013-05-29 19:32       ` [PATCH v5 13/13] ARM: orion5x: remove legacy mv643xx_eth board setup Sebastian Hesselbarth
2013-05-31  0:55       ` [PATCH v5 00/13] net: mv643xx_eth DT support and fixes David Miller
2013-05-31  6:28         ` Sebastian Hesselbarth
2013-05-31  9:32           ` 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=515F359D.7000306@gmail.com \
    --to=sebastian.hesselbarth@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.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).