From: david@lechnology.com (David Lechner)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 3/5] ARM: davinci: da8xx: add cfgchip2 to resources
Date: Wed, 16 Mar 2016 13:14:26 -0500 [thread overview]
Message-ID: <56E9A282.7030103@lechnology.com> (raw)
In-Reply-To: <56E99A16.9020709@cogentembedded.com>
On 03/16/2016 12:38 PM, Sergei Shtylyov wrote:
> On 03/16/2016 07:57 AM, David Lechner wrote:
>
>> Also, I am not finding any existing data structure to pass the musb
>> set_mode
>> function to the phy in either usb_phy or usb_otg. Setting the mode
>> (host/peripheral/otg) is done in the same PHY register, so it seems
>> like it
>> should be implemented in the new phy driver as well.
>
> Perhaps we'd have to sacrifice that functionality...
The device I am working on (LEGO MINDSTORMS EV3) has the port wired as
peripheral only, so I don't think leaving this out is an option. Leaving
it in OTG mode doesn't work because the required electrical connections
are just not there.
>> I guess I could use a generic phy instead and use phy_set_drvdata() to
>> share
>> data between the phy driver and the musb driver. Does this sound like a
>> reasonable thing to do?
>
> Not sure what you mean, could you elaborate?
I found another driver that essentially does what I was trying to
explain here. See the sun4i_usb_phy_set_squelch_detect function in
drivers/phy/phy-sun4i-usb.c:394[1] as an example. It is called at
drivers/usb/musb/sunxi.c:160[2] and :167.
I would move the da8xx_musb_set_mode function from
drivers/usb/musb/da8xx.c to the new drivers/phy/phy-da8xx-usb.c and call
it in a similar manner to the sunix example I gave.
---
[1]: drivers/phy/phy-sun4i-usb.c
void sun4i_usb_phy_set_squelch_detect(struct phy *_phy, bool enabled)
{
struct sun4i_usb_phy *phy = phy_get_drvdata(_phy);
sun4i_usb_phy_write(phy, PHY_SQUELCH_DETECT, enabled ? 0 : 2, 2);
}
EXPORT_SYMBOL_GPL(sun4i_usb_phy_set_squelch_detect);
[2]: drivers/usb/musb/sunxi.c
static void sunxi_musb_pre_root_reset_end(struct musb *musb)
{
struct sunxi_glue *glue = dev_get_drvdata(musb->controller->parent);
sun4i_usb_phy_set_squelch_detect(glue->phy, false);
}
WARNING: multiple messages have this Message-ID (diff)
From: David Lechner <david@lechnology.com>
To: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>,
Sekhar Nori <nsekhar@ti.com>, Kevin Hilman <khilman@kernel.org>,
Alan Stern <stern@rowland.harvard.edu>, Bin Liu <b-liu@ti.com>,
Petr Kulhavy <petr@barix.com>
Cc: Russell King <linux@arm.linux.org.uk>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Felipe Balbi <balbi@kernel.org>,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org
Subject: Re: [PATCH 3/5] ARM: davinci: da8xx: add cfgchip2 to resources
Date: Wed, 16 Mar 2016 13:14:26 -0500 [thread overview]
Message-ID: <56E9A282.7030103@lechnology.com> (raw)
In-Reply-To: <56E99A16.9020709@cogentembedded.com>
On 03/16/2016 12:38 PM, Sergei Shtylyov wrote:
> On 03/16/2016 07:57 AM, David Lechner wrote:
>
>> Also, I am not finding any existing data structure to pass the musb
>> set_mode
>> function to the phy in either usb_phy or usb_otg. Setting the mode
>> (host/peripheral/otg) is done in the same PHY register, so it seems
>> like it
>> should be implemented in the new phy driver as well.
>
> Perhaps we'd have to sacrifice that functionality...
The device I am working on (LEGO MINDSTORMS EV3) has the port wired as
peripheral only, so I don't think leaving this out is an option. Leaving
it in OTG mode doesn't work because the required electrical connections
are just not there.
>> I guess I could use a generic phy instead and use phy_set_drvdata() to
>> share
>> data between the phy driver and the musb driver. Does this sound like a
>> reasonable thing to do?
>
> Not sure what you mean, could you elaborate?
I found another driver that essentially does what I was trying to
explain here. See the sun4i_usb_phy_set_squelch_detect function in
drivers/phy/phy-sun4i-usb.c:394[1] as an example. It is called at
drivers/usb/musb/sunxi.c:160[2] and :167.
I would move the da8xx_musb_set_mode function from
drivers/usb/musb/da8xx.c to the new drivers/phy/phy-da8xx-usb.c and call
it in a similar manner to the sunix example I gave.
---
[1]: drivers/phy/phy-sun4i-usb.c
void sun4i_usb_phy_set_squelch_detect(struct phy *_phy, bool enabled)
{
struct sun4i_usb_phy *phy = phy_get_drvdata(_phy);
sun4i_usb_phy_write(phy, PHY_SQUELCH_DETECT, enabled ? 0 : 2, 2);
}
EXPORT_SYMBOL_GPL(sun4i_usb_phy_set_squelch_detect);
[2]: drivers/usb/musb/sunxi.c
static void sunxi_musb_pre_root_reset_end(struct musb *musb)
{
struct sunxi_glue *glue = dev_get_drvdata(musb->controller->parent);
sun4i_usb_phy_set_squelch_detect(glue->phy, false);
}
next prev parent reply other threads:[~2016-03-16 18:14 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-15 22:37 [PATCH 1/5] ARM: davinci: defined missing CFGCHIP2_REFFREQ_* macros for MUSB PHY David Lechner
2016-03-15 22:37 ` David Lechner
2016-03-15 22:37 ` [PATCH 2/5] ARM: davinci: da8xx: add usb phy clocks David Lechner
2016-03-15 22:37 ` David Lechner
2016-03-16 12:27 ` Sergei Shtylyov
2016-03-16 12:27 ` Sergei Shtylyov
2016-03-16 17:58 ` David Lechner
2016-03-16 17:58 ` David Lechner
2016-03-16 18:04 ` Sergei Shtylyov
2016-03-16 18:04 ` Sergei Shtylyov
2016-03-16 18:21 ` David Lechner
2016-03-16 18:21 ` David Lechner
2016-03-15 22:37 ` [PATCH 3/5] ARM: davinci: da8xx: add cfgchip2 to resources David Lechner
2016-03-15 22:37 ` David Lechner
2016-03-15 22:45 ` Sergei Shtylyov
2016-03-15 22:45 ` Sergei Shtylyov
2016-03-16 3:46 ` David Lechner
2016-03-16 3:46 ` David Lechner
2016-03-16 4:57 ` David Lechner
2016-03-16 4:57 ` David Lechner
2016-03-16 17:38 ` Sergei Shtylyov
2016-03-16 17:38 ` Sergei Shtylyov
2016-03-16 18:14 ` David Lechner [this message]
2016-03-16 18:14 ` David Lechner
2016-03-16 18:22 ` Sergei Shtylyov
2016-03-16 18:22 ` Sergei Shtylyov
2016-03-16 18:27 ` Sergei Shtylyov
2016-03-16 18:27 ` Sergei Shtylyov
2016-03-16 18:27 ` David Lechner
2016-03-16 18:27 ` David Lechner
2016-03-16 11:34 ` Sergei Shtylyov
2016-03-16 11:34 ` Sergei Shtylyov
2016-03-15 22:37 ` [PATCH 4/5] usb: ohci-da8xx: Remove clock code that references mach David Lechner
2016-03-15 22:37 ` David Lechner
2016-03-16 14:50 ` Alan Stern
2016-03-16 18:00 ` David Lechner
2016-03-16 18:00 ` David Lechner
2016-03-15 22:37 ` [PATCH 5/5] usb: musb-da8xx: remove board-specific clock handling David Lechner
2016-03-15 22:37 ` David Lechner
2016-03-16 11:57 ` Sergei Shtylyov
2016-03-16 11:57 ` Sergei Shtylyov
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=56E9A282.7030103@lechnology.com \
--to=david@lechnology.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 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.