From: Kishon Vijay Abraham I <kishon-l0cyMroinI0@public.gmane.org>
To: Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
Cc: linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
mchehab-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
linux-doc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org,
javier-0uQlZySMnqxg9hUCZPvPmw@public.gmane.org,
cesarb-PWySMVKUnqmsTnJN9+BGXg@public.gmane.org,
eballetbo-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org,
rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org,
swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org,
sylvester.nawrocki-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org,
broonie-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
balbi-l0cyMroinI0@public.gmane.org,
santosh.shilimkar-l0cyMroinI0@public.gmane.org,
akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org,
davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org
Subject: Re: [PATCH v4 1/6] drivers: phy: add generic PHY framework
Date: Wed, 3 Apr 2013 11:02:39 +0530 [thread overview]
Message-ID: <515BBEF7.2030404@ti.com> (raw)
In-Reply-To: <515AFC06.8000502-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
On Tuesday 02 April 2013 09:10 PM, Stephen Warren wrote:
> On 04/02/2013 02:37 AM, Kishon Vijay Abraham I wrote:
>> Hi,
>>
>> On Thursday 28 March 2013 09:15 PM, Stephen Warren wrote:
>>> On 03/27/2013 11:43 PM, Kishon Vijay Abraham I wrote:
>>>> The PHY framework provides a set of APIs for the PHY drivers to
>>>> create/destroy a PHY and APIs for the PHY users to obtain a reference
>>>> to the
>>>
>>>> diff --git a/Documentation/devicetree/bindings/phy/phy-bindings.txt
>
>>>> +PHY subsystem refer Documentation/phy.txt
>>>> +
>>>> +PHY device node
>>>> +===============
>>>> +
>>>> +Optional Properties:
>>>> +#phy-cells: Number of cells in a PHY specifier; The meaning of all those
>>>> + cells is defined by the binding for the phy node. However
>>>> + in-order to return the correct PHY, the PHY susbsystem
>>>> + requires the first cell always refers to the port.
>>>
>>> Why impose that restriction? Other DT bindings do not.
>>>
>>> This is typically implemented by having each provider driver implement a
>>> .of_xlate() operation, which parses all of the specifier cells, and
>>> returns the ID of the object it represents. This allows bindings to use
>>> whatever arbitrary representation they want.
>>
>> Do you mean something like this
>>
>> struct phy *of_phy_get(struct device *dev, int index)
>> {
>> struct phy *phy = NULL;
>> struct phy_bind *phy_map = NULL;
>> struct of_phandle_args args;
>> struct device_node *node;
>>
>> if (!dev->of_node) {
>> dev_dbg(dev, "device does not have a device node entry\n");
>> return ERR_PTR(-EINVAL);
>> }
>>
>> ret = of_parse_phandle_with_args(dev->of_node, "phys", "#phy-cells",
>> index, &args);
>> if (ret) {
>> dev_dbg(dev, "failed to get phy in %s node\n",
>> dev->of_node->full_name);
>> return ERR_PTR(-ENODEV);
>> }
>
> Looks good.
>
>> //Here we have to get a reference to the phy in order to call of_xlate
>> which seems a little hacky to me. I'm not sure how else can we call the
>> provider driver :-(
>> phy = of_phy_lookup(dev, node);
>> if (IS_ERR(phy) || !try_module_get(phy->ops->owner)) {
>> phy = ERR_PTR(-EPROBE_DEFER);
>> goto err0;
>> }
>
> I think the concept of a "PHY provider" and a "PHY instance" are different.
>
> of_xlate should be called on a "PHY provider", and return a "PHY
> instance". Hence, above you want to only look up a "PHY provider", so
> there's no hackiness involved.
Cool. That makes it a lot clearer.
Thanks
Kishon
WARNING: multiple messages have this Message-ID (diff)
From: kishon@ti.com (Kishon Vijay Abraham I)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 1/6] drivers: phy: add generic PHY framework
Date: Wed, 3 Apr 2013 11:02:39 +0530 [thread overview]
Message-ID: <515BBEF7.2030404@ti.com> (raw)
In-Reply-To: <515AFC06.8000502@wwwdotorg.org>
On Tuesday 02 April 2013 09:10 PM, Stephen Warren wrote:
> On 04/02/2013 02:37 AM, Kishon Vijay Abraham I wrote:
>> Hi,
>>
>> On Thursday 28 March 2013 09:15 PM, Stephen Warren wrote:
>>> On 03/27/2013 11:43 PM, Kishon Vijay Abraham I wrote:
>>>> The PHY framework provides a set of APIs for the PHY drivers to
>>>> create/destroy a PHY and APIs for the PHY users to obtain a reference
>>>> to the
>>>
>>>> diff --git a/Documentation/devicetree/bindings/phy/phy-bindings.txt
>
>>>> +PHY subsystem refer Documentation/phy.txt
>>>> +
>>>> +PHY device node
>>>> +===============
>>>> +
>>>> +Optional Properties:
>>>> +#phy-cells: Number of cells in a PHY specifier; The meaning of all those
>>>> + cells is defined by the binding for the phy node. However
>>>> + in-order to return the correct PHY, the PHY susbsystem
>>>> + requires the first cell always refers to the port.
>>>
>>> Why impose that restriction? Other DT bindings do not.
>>>
>>> This is typically implemented by having each provider driver implement a
>>> .of_xlate() operation, which parses all of the specifier cells, and
>>> returns the ID of the object it represents. This allows bindings to use
>>> whatever arbitrary representation they want.
>>
>> Do you mean something like this
>>
>> struct phy *of_phy_get(struct device *dev, int index)
>> {
>> struct phy *phy = NULL;
>> struct phy_bind *phy_map = NULL;
>> struct of_phandle_args args;
>> struct device_node *node;
>>
>> if (!dev->of_node) {
>> dev_dbg(dev, "device does not have a device node entry\n");
>> return ERR_PTR(-EINVAL);
>> }
>>
>> ret = of_parse_phandle_with_args(dev->of_node, "phys", "#phy-cells",
>> index, &args);
>> if (ret) {
>> dev_dbg(dev, "failed to get phy in %s node\n",
>> dev->of_node->full_name);
>> return ERR_PTR(-ENODEV);
>> }
>
> Looks good.
>
>> //Here we have to get a reference to the phy in order to call of_xlate
>> which seems a little hacky to me. I'm not sure how else can we call the
>> provider driver :-(
>> phy = of_phy_lookup(dev, node);
>> if (IS_ERR(phy) || !try_module_get(phy->ops->owner)) {
>> phy = ERR_PTR(-EPROBE_DEFER);
>> goto err0;
>> }
>
> I think the concept of a "PHY provider" and a "PHY instance" are different.
>
> of_xlate should be called on a "PHY provider", and return a "PHY
> instance". Hence, above you want to only look up a "PHY provider", so
> there's no hackiness involved.
Cool. That makes it a lot clearer.
Thanks
Kishon
WARNING: multiple messages have this Message-ID (diff)
From: Kishon Vijay Abraham I <kishon@ti.com>
To: Stephen Warren <swarren@wwwdotorg.org>
Cc: <linux-usb@vger.kernel.org>, <mchehab@redhat.com>,
<linux-doc@vger.kernel.org>, <tony@atomide.com>,
<grant.likely@secretlab.ca>, <linux@arm.linux.org.uk>,
<javier@dowhile0.org>, <cesarb@cesarb.net>, <arnd@arndb.de>,
<eballetbo@gmail.com>, <devicetree-discuss@lists.ozlabs.org>,
<rob.herring@calxeda.com>, <swarren@nvidia.com>,
<sylvester.nawrocki@gmail.com>, <linux-omap@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>, <b-cousson@ti.com>,
<gregkh@linuxfoundation.org>,
<broonie@opensource.wolfsonmicro.com>,
<linux-kernel@vger.kernel.org>, <balbi@ti.com>,
<santosh.shilimkar@ti.com>, <rob@landley.net>,
<akpm@linux-foundation.org>, <davem@davemloft.net>
Subject: Re: [PATCH v4 1/6] drivers: phy: add generic PHY framework
Date: Wed, 3 Apr 2013 11:02:39 +0530 [thread overview]
Message-ID: <515BBEF7.2030404@ti.com> (raw)
In-Reply-To: <515AFC06.8000502@wwwdotorg.org>
On Tuesday 02 April 2013 09:10 PM, Stephen Warren wrote:
> On 04/02/2013 02:37 AM, Kishon Vijay Abraham I wrote:
>> Hi,
>>
>> On Thursday 28 March 2013 09:15 PM, Stephen Warren wrote:
>>> On 03/27/2013 11:43 PM, Kishon Vijay Abraham I wrote:
>>>> The PHY framework provides a set of APIs for the PHY drivers to
>>>> create/destroy a PHY and APIs for the PHY users to obtain a reference
>>>> to the
>>>
>>>> diff --git a/Documentation/devicetree/bindings/phy/phy-bindings.txt
>
>>>> +PHY subsystem refer Documentation/phy.txt
>>>> +
>>>> +PHY device node
>>>> +===============
>>>> +
>>>> +Optional Properties:
>>>> +#phy-cells: Number of cells in a PHY specifier; The meaning of all those
>>>> + cells is defined by the binding for the phy node. However
>>>> + in-order to return the correct PHY, the PHY susbsystem
>>>> + requires the first cell always refers to the port.
>>>
>>> Why impose that restriction? Other DT bindings do not.
>>>
>>> This is typically implemented by having each provider driver implement a
>>> .of_xlate() operation, which parses all of the specifier cells, and
>>> returns the ID of the object it represents. This allows bindings to use
>>> whatever arbitrary representation they want.
>>
>> Do you mean something like this
>>
>> struct phy *of_phy_get(struct device *dev, int index)
>> {
>> struct phy *phy = NULL;
>> struct phy_bind *phy_map = NULL;
>> struct of_phandle_args args;
>> struct device_node *node;
>>
>> if (!dev->of_node) {
>> dev_dbg(dev, "device does not have a device node entry\n");
>> return ERR_PTR(-EINVAL);
>> }
>>
>> ret = of_parse_phandle_with_args(dev->of_node, "phys", "#phy-cells",
>> index, &args);
>> if (ret) {
>> dev_dbg(dev, "failed to get phy in %s node\n",
>> dev->of_node->full_name);
>> return ERR_PTR(-ENODEV);
>> }
>
> Looks good.
>
>> //Here we have to get a reference to the phy in order to call of_xlate
>> which seems a little hacky to me. I'm not sure how else can we call the
>> provider driver :-(
>> phy = of_phy_lookup(dev, node);
>> if (IS_ERR(phy) || !try_module_get(phy->ops->owner)) {
>> phy = ERR_PTR(-EPROBE_DEFER);
>> goto err0;
>> }
>
> I think the concept of a "PHY provider" and a "PHY instance" are different.
>
> of_xlate should be called on a "PHY provider", and return a "PHY
> instance". Hence, above you want to only look up a "PHY provider", so
> there's no hackiness involved.
Cool. That makes it a lot clearer.
Thanks
Kishon
next prev parent reply other threads:[~2013-04-03 5:32 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-28 5:43 [PATCH v4 0/6] Generic PHY Framework Kishon Vijay Abraham I
2013-03-28 5:43 ` Kishon Vijay Abraham I
2013-03-28 5:43 ` Kishon Vijay Abraham I
2013-03-28 5:43 ` [PATCH v4 1/6] drivers: phy: add generic PHY framework Kishon Vijay Abraham I
2013-03-28 5:43 ` Kishon Vijay Abraham I
2013-03-28 5:43 ` Kishon Vijay Abraham I
[not found] ` <1364449408-9510-2-git-send-email-kishon-l0cyMroinI0@public.gmane.org>
2013-03-28 15:45 ` Stephen Warren
2013-03-28 15:45 ` Stephen Warren
2013-03-28 15:45 ` Stephen Warren
[not found] ` <5154658A.3080209-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-04-02 8:37 ` Kishon Vijay Abraham I
2013-04-02 8:37 ` Kishon Vijay Abraham I
2013-04-02 8:37 ` Kishon Vijay Abraham I
2013-04-02 15:40 ` Stephen Warren
2013-04-02 15:40 ` Stephen Warren
[not found] ` <515AFC06.8000502-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-04-03 5:32 ` Kishon Vijay Abraham I [this message]
2013-04-03 5:32 ` Kishon Vijay Abraham I
2013-04-03 5:32 ` Kishon Vijay Abraham I
2013-04-01 19:34 ` Sylwester Nawrocki
2013-04-01 19:34 ` Sylwester Nawrocki
[not found] ` <5159E157.6000800-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-04-02 8:39 ` Kishon Vijay Abraham I
2013-04-02 8:39 ` Kishon Vijay Abraham I
2013-04-02 8:39 ` Kishon Vijay Abraham I
2013-04-01 22:27 ` Sylwester Nawrocki
2013-04-01 22:27 ` Sylwester Nawrocki
[not found] ` <515A09D8.7040703-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-04-01 22:38 ` Stephen Warren
2013-04-01 22:38 ` Stephen Warren
2013-04-01 22:38 ` Stephen Warren
2013-04-02 21:51 ` Sylwester Nawrocki
2013-04-02 21:51 ` Sylwester Nawrocki
2013-03-28 5:43 ` [PATCH v4 2/6] usb: phy: omap-usb2: use the new " Kishon Vijay Abraham I
2013-03-28 5:43 ` Kishon Vijay Abraham I
2013-03-28 5:43 ` Kishon Vijay Abraham I
[not found] ` <1364449408-9510-1-git-send-email-kishon-l0cyMroinI0@public.gmane.org>
2013-03-28 5:43 ` [PATCH v4 3/6] usb: otg: twl4030: " Kishon Vijay Abraham I
2013-03-28 5:43 ` Kishon Vijay Abraham I
2013-03-28 5:43 ` Kishon Vijay Abraham I
2013-03-28 5:43 ` [PATCH v4 4/6] ARM: OMAP: USB: Add phy binding information Kishon Vijay Abraham I
2013-03-28 5:43 ` Kishon Vijay Abraham I
2013-03-28 5:43 ` Kishon Vijay Abraham I
2013-03-28 5:43 ` [PATCH v4 5/6] ARM: dts: omap: update usb_otg_hs data Kishon Vijay Abraham I
2013-03-28 5:43 ` Kishon Vijay Abraham I
2013-03-28 5:43 ` Kishon Vijay Abraham I
2013-03-28 5:43 ` [PATCH v4 6/6] usb: musb: omap2430: use the new generic PHY framework Kishon Vijay Abraham I
2013-03-28 5:43 ` Kishon Vijay Abraham I
2013-03-28 5:43 ` Kishon Vijay Abraham I
2013-03-28 18:31 ` [PATCH v4 0/6] Generic PHY Framework David Miller
2013-03-28 18:31 ` David Miller
[not found] ` <20130328.143142.2080627792603647441.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2013-04-03 5:59 ` Kishon Vijay Abraham I
2013-04-03 5:59 ` Kishon Vijay Abraham I
2013-04-03 5:59 ` Kishon Vijay Abraham I
2013-04-03 6:31 ` David Miller
2013-04-03 6:31 ` David Miller
2013-04-03 6:35 ` Kishon Vijay Abraham I
2013-04-03 6:35 ` Kishon Vijay Abraham I
2013-04-03 6:35 ` Kishon Vijay Abraham I
2013-04-03 16:33 ` David Miller
2013-04-03 16:33 ` 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=515BBEF7.2030404@ti.com \
--to=kishon-l0cymroini0@public.gmane.org \
--cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
--cc=balbi-l0cyMroinI0@public.gmane.org \
--cc=broonie-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org \
--cc=cesarb-PWySMVKUnqmsTnJN9+BGXg@public.gmane.org \
--cc=davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org \
--cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
--cc=eballetbo-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org \
--cc=javier-0uQlZySMnqxg9hUCZPvPmw@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-doc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org \
--cc=linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mchehab-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org \
--cc=santosh.shilimkar-l0cyMroinI0@public.gmane.org \
--cc=swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org \
--cc=swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
--cc=sylvester.nawrocki-Re5JQEeQqe8AvxtiuMwx3w@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 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.