From: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
To: Florian Fainelli <f.fainelli@gmail.com>
Cc: Ben Dooks <ben.dooks@codethink.co.uk>,
netdev <netdev@vger.kernel.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
Linux-sh list <linux-sh@vger.kernel.org>,
David Miller <davem@davemloft.net>,
Mark Rutland <mark.rutland@arm.com>
Subject: Re: [PATCH] net: add init-regs for of_phy support
Date: Tue, 18 Feb 2014 01:08:23 +0300 [thread overview]
Message-ID: <53028857.8050206@cogentembedded.com> (raw)
In-Reply-To: <CAGVrzcbZC3t0oexc5Aj-KyGj-qC8J9eYp8+rb8V-AqKtrSjyYw@mail.gmail.com>
On 02/17/2014 11:48 PM, Florian Fainelli wrote:
>>>> Add new init-regs field for of_phy nodes and make sure these
>>>> get applied when the phy is configured.
>>>> This allows any phy node in an fdt to initialise registers
>>>> that may not be set as standard by the driver at initialisation
>>>> time, such as LED controls.
>>>> Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
[...]
>>>> diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
>>>> index 82514e7..6741cdb 100644
>>>> --- a/drivers/net/phy/phy_device.c
>>>> +++ b/drivers/net/phy/phy_device.c
>> [...]
>>>> @@ -532,6 +533,57 @@ static int phy_poll_reset(struct phy_device *phydev)
>>>> return 0;
>>>> }
>>>>
>>>> +#ifdef CONFIG_OF
>>>> +static int of_phy_configure(struct phy_device *phydev)
>>>> +{
>>>> + struct device *dev = &phydev->dev;
>>>> + struct device_node *of_node = dev->of_node;
>>>> + struct property *prop;
>>>> + const __be32 *ptr;
>>>> + u32 reg, set, clear;
>>>> + int len;
>>>> + int val;
>>> This does not belong in the generic PHY code unless we are very clear
>>> on what we want to do, and how to do it, which I do not think we are
>>> yet. What exactly is needed here:
>>> - fixing up some design mistake?
>>> - accounting for a specific board design?
>> Kind of both. This was invented to defy the necessity of having platform
>> fixup in the DT case (where there should be no board file to place it into).
>> I have already described that platform fixup necessary on the Renesas
>> Lager/Koelsch boards where the LED0 signat is connected to ETH_LINK signal
>> on the SoC and the PHY reset sets the LED control bits to default 0 which
>> means that LED0 will be LINK/ACTIVITY signal and thus blink on activity and
>> cause ETH_LINK to bounce off/on after each packet.
>>> In any case a PHY fixup would do the job for you.
>> Not in any case. In case of DT we have no place for it, so should invent
>> something involving DT.
> How is DT different than any machine probing mechanism here?
There supposed to be no board files. The purpose of DT is to get rid of
the board files, at least on ARM.
> The way to involve DT is to do the following:
> if (of_machine_is_compatible("renesas,foo-board-with-broken-micrel-phy"))
> phy_register_fixup(&foo_board_with_broken_micrel_phy);
Where are you suggesting to place such code? arch/arm/mach-shmobile/setup-*.c?
> If your machine compatible string does not allow you to uniquely
> identify your machine, this is a DT problem, as this should really be
> the case. If you do not want to add this code to wherever this is
> relevant in arch/arm/mach-shmobile/board-*.c,
There just should be no such file for DT case.
> neither is drivers/net/phy/phy_device.c this the place to add it.
Hey, I wasn't arguing with that! :-)
> Dealing with quirks applying to industry standard blocks is to update
> the relevant driver, based on information provided by the specifically
> affected systems. Failure to identify either of those correctly is a
> problem that must not lead to a generic "let's override PHY registers
> from DT" type of solution.
> As usual, mechanism vs policy applies even more when DT is involved.
Ah, so you're suggesting placing the fixup code in the driver itself?
That's a bit strange for the platform specific code, but would do I guess...
WBR, Sergei
next prev parent reply other threads:[~2014-02-17 22:08 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-17 13:08 RFC: add init-regs for phy nodes Ben Dooks
2014-02-17 13:08 ` [PATCH] net: add init-regs for of_phy support Ben Dooks
2014-02-17 13:44 ` Mark Rutland
2014-02-17 13:50 ` Ben Dooks
2014-02-17 14:12 ` Mark Rutland
2014-02-19 17:15 ` Laurent Pinchart
2014-02-17 13:53 ` Ben Dooks
2014-02-17 17:33 ` Florian Fainelli
2014-02-17 17:44 ` Ben Dooks
2014-02-17 17:53 ` Florian Fainelli
2014-02-17 18:04 ` Mark Rutland
2014-02-17 19:11 ` David Miller
2014-02-17 21:33 ` Sergei Shtylyov
2014-02-17 20:48 ` Florian Fainelli
2014-02-17 22:08 ` Sergei Shtylyov [this message]
2014-02-17 21:15 ` Florian Fainelli
2014-02-18 8:16 ` Ben Dooks
2014-02-18 11:54 ` Mark Rutland
2014-02-18 17:00 ` Sergei Shtylyov
2014-02-18 17:13 ` Mark Rutland
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=53028857.8050206@cogentembedded.com \
--to=sergei.shtylyov@cogentembedded.com \
--cc=ben.dooks@codethink.co.uk \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=f.fainelli@gmail.com \
--cc=linux-sh@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=netdev@vger.kernel.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).