From: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
To: Mark Rutland <mark.rutland@arm.com>,
Ben Dooks <ben.dooks@codethink.co.uk>
Cc: Florian Fainelli <f.fainelli@gmail.com>,
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>
Subject: Re: [PATCH] net: add init-regs for of_phy support
Date: Tue, 18 Feb 2014 16:00:08 +0000 [thread overview]
Message-ID: <53039193.4010500@cogentembedded.com> (raw)
In-Reply-To: <20140218115443.GC6051@e106331-lin.cambridge.arm.com>
Hello.
On 02/18/2014 02:54 PM, Mark Rutland wrote:
>> [snip]
>>>>> - 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? 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);
>> Oh yes, but now I have to do that for Linux, for $BSD, and for
>> anything else I want to run on the device. I thought dt was meant
>> to allow us to describe the hardware.
> It does allow you to describe the hardware. Arbitrary register writes
> aren't a description of the hardware, they're a sequence of instructions
> that tells the OS nothing about the hardware and limit the ability of an
> OS to do something different that might be better.
> It's already the case that the OS has to have some knowledge of the
> hardware that's implicit in a binding. We don't expect to have to
> include bytecode to tell the OS how to poke a particular UART when it
> can figure that out from a compatible string.
>> If this is the case, let's just call this linuxtree and let everyone
>> else get on with their own thing again.
> This doesn't follow at all. Any OS needs to have some understanding of
> the hardware it will try to poke. Describing a specific sequence of
> writes in a DT is no more operating system independent than identifying
> the hardware and expecting the OS to have a driver for it. The
> requirements aren't any more suited to an individual OS in either case.
>> See also comment below.
>>> 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, neither is
>>> drivers/net/phy/phy_device.c this the place to add it.
>> So where should it be added? If we keep piling stuff into board files
>> in arch/arm.... then we're just back to the pre-dt case and going to
>> keep getting shouted at.
> The general trend has been to allocate new compatible strings for
> components and let individual drivers handle this.
> As far as I can see your case doesn't involve any components external to
> the PHY, so should probably live in a PHY driver. The PHY can have a
It does involve LEDs which should function in the way described by their
labels, and it does involve SoC for which ETH_LINK signal should remain stable
and not bouncing after each packet.
> specific compatible string with the generic string as a fallback (if it
> works to some degree without special poking).
It can but that doesn't solve this issue in any way. The issue is board
specific, not only PHY specific.
> I don't see that we need anything board-specific.
Did you read the text substantially above this in this mail for more
complete description of the issue? We're trying to emulate the PHY *platform*
fixup here which didn't belong with the PHY driver.
[...]
> Cheers,
> Mark.
WBR, Sergei
WARNING: multiple messages have this Message-ID (diff)
From: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
To: Mark Rutland <mark.rutland@arm.com>,
Ben Dooks <ben.dooks@codethink.co.uk>
Cc: Florian Fainelli <f.fainelli@gmail.com>,
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>
Subject: Re: [PATCH] net: add init-regs for of_phy support
Date: Tue, 18 Feb 2014 20:00:03 +0300 [thread overview]
Message-ID: <53039193.4010500@cogentembedded.com> (raw)
In-Reply-To: <20140218115443.GC6051@e106331-lin.cambridge.arm.com>
Hello.
On 02/18/2014 02:54 PM, Mark Rutland wrote:
>> [snip]
>>>>> - 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? 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);
>> Oh yes, but now I have to do that for Linux, for $BSD, and for
>> anything else I want to run on the device. I thought dt was meant
>> to allow us to describe the hardware.
> It does allow you to describe the hardware. Arbitrary register writes
> aren't a description of the hardware, they're a sequence of instructions
> that tells the OS nothing about the hardware and limit the ability of an
> OS to do something different that might be better.
> It's already the case that the OS has to have some knowledge of the
> hardware that's implicit in a binding. We don't expect to have to
> include bytecode to tell the OS how to poke a particular UART when it
> can figure that out from a compatible string.
>> If this is the case, let's just call this linuxtree and let everyone
>> else get on with their own thing again.
> This doesn't follow at all. Any OS needs to have some understanding of
> the hardware it will try to poke. Describing a specific sequence of
> writes in a DT is no more operating system independent than identifying
> the hardware and expecting the OS to have a driver for it. The
> requirements aren't any more suited to an individual OS in either case.
>> See also comment below.
>>> 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, neither is
>>> drivers/net/phy/phy_device.c this the place to add it.
>> So where should it be added? If we keep piling stuff into board files
>> in arch/arm.... then we're just back to the pre-dt case and going to
>> keep getting shouted at.
> The general trend has been to allocate new compatible strings for
> components and let individual drivers handle this.
> As far as I can see your case doesn't involve any components external to
> the PHY, so should probably live in a PHY driver. The PHY can have a
It does involve LEDs which should function in the way described by their
labels, and it does involve SoC for which ETH_LINK signal should remain stable
and not bouncing after each packet.
> specific compatible string with the generic string as a fallback (if it
> works to some degree without special poking).
It can but that doesn't solve this issue in any way. The issue is board
specific, not only PHY specific.
> I don't see that we need anything board-specific.
Did you read the text substantially above this in this mail for more
complete description of the issue? We're trying to emulate the PHY *platform*
fixup here which didn't belong with the PHY driver.
[...]
> Cheers,
> Mark.
WBR, Sergei
next prev parent reply other threads:[~2014-02-18 16:00 UTC|newest]
Thread overview: 31+ 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:08 ` Ben Dooks
2014-02-17 13:44 ` Mark Rutland
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-19 17:15 ` Laurent Pinchart
2014-02-17 13:53 ` Ben Dooks
2014-02-17 17:33 ` Florian Fainelli
2014-02-17 17:33 ` Florian Fainelli
2014-02-17 17:44 ` Ben Dooks
2014-02-17 17:53 ` Florian Fainelli
2014-02-17 17:53 ` Florian Fainelli
2014-02-17 18:04 ` Mark Rutland
2014-02-17 19:11 ` David Miller
2014-02-17 19:11 ` David Miller
2014-02-17 20:33 ` Sergei Shtylyov
2014-02-17 21:33 ` Sergei Shtylyov
2014-02-17 20:48 ` Florian Fainelli
2014-02-17 20:48 ` Florian Fainelli
2014-02-17 21:08 ` Sergei Shtylyov
2014-02-17 22:08 ` Sergei Shtylyov
2014-02-17 21:15 ` Florian Fainelli
2014-02-17 21:15 ` Florian Fainelli
2014-02-18 8:16 ` Ben Dooks
2014-02-18 11:54 ` Mark Rutland
2014-02-18 16:00 ` Sergei Shtylyov [this message]
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=53039193.4010500@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 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.