* [PATCH v6] Enable USB peripheral mode on dm365 EVM
@ 2012-10-10 12:33 Constantine Shulyupin
2012-10-10 19:27 ` Sergei Shtylyov
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Constantine Shulyupin @ 2012-10-10 12:33 UTC (permalink / raw)
To: linux-arm-kernel
From: Constantine Shulyupin <const@MakeLinux.com>
Sets USB PHY clock source to 24 MHz clock and call USB configuration from board initialization.
Tested with OTG configuration, usb gadget g_zero on DM365 EVM connected to PC.
References:
Definition of USB_PHY_CTRL and PHYCLKFREQ:
- http://www.makelinux.com/lib/ti/DM36x_ARM/doc-141
Original patch by miguel.aguilar at ridgerun.com three years ago:
- http://www.mail-archive.com/davinci-linux-open-source at linux.davincidsp.com/msg14741.html
Signed-off-by: Constantine Shulyupin <const@MakeLinux.com>
---
Note:
Changelog
Changes since v5 http://www.spinics.net/lists/kernel/msg1413120.html
accordingy feedback of nsekhar at ti.com http://www.spinics.net/lists/kernel/msg1414914.html
- phy configuration moved to drivers/usb/musb/davinci.c
- USB_OTG configuration is submitted in separated patch: http://www.spinics.net/lists/kernel/msg1414964.html
- Setting current limit to 1000 mA. Any way the current is limited to 510 mA in davinci_setup_usb.
Changes since v4 http://www.spinics.net/lists/kernel/msg1412995.html
- removed fix of dev_info in musb_init_controller
Changes since v3 http://www.spinics.net/lists/kernel/msg1412544.html:
- removed optional altering of pr_info
Changes since v1 http://marc.info/?l=linux-kernel&m=130894150803661&w=2:
- removed optional code and reordered
- removed alternation of GPIO33, which is multiplexed with DRVVBUS, because is not need for peripheral USB
This patch is based on code from projects Arago, Angstom and RidgeRun.
---
arch/arm/mach-davinci/board-dm365-evm.c | 2 ++
drivers/usb/musb/davinci.c | 3 +++
drivers/usb/musb/davinci.h | 1 +
3 files changed, 6 insertions(+)
diff --git a/arch/arm/mach-davinci/board-dm365-evm.c b/arch/arm/mach-davinci/board-dm365-evm.c
index 688a9c5..ba5ffc1 100644
--- a/arch/arm/mach-davinci/board-dm365-evm.c
+++ b/arch/arm/mach-davinci/board-dm365-evm.c
@@ -38,6 +38,7 @@
#include <mach/mmc.h>
#include <mach/nand.h>
#include <mach/keyscan.h>
+#include <mach/usb.h>
#include <media/tvp514x.h>
@@ -610,6 +611,7 @@ static __init void dm365_evm_init(void)
dm365_init_spi0(BIT(0), dm365_evm_spi_info,
ARRAY_SIZE(dm365_evm_spi_info));
+ davinci_setup_usb(1000, 8);
}
MACHINE_START(DAVINCI_DM365_EVM, "DaVinci DM365 EVM")
diff --git a/drivers/usb/musb/davinci.c b/drivers/usb/musb/davinci.c
index 472c8b4..af09ebf 100644
--- a/drivers/usb/musb/davinci.c
+++ b/drivers/usb/musb/davinci.c
@@ -428,6 +428,9 @@ static int davinci_musb_init(struct musb *musb)
__raw_writel(deepsleep, DM355_DEEPSLEEP);
}
+ if (machine_is_davinci_dm365_evm())
+ writel(readl(USB_PHY_CTRL) | USBPHY_CLKFREQ_24MHZ, USB_PHY_CTRL);
+
/* reset the controller */
musb_writel(tibase, DAVINCI_USB_CTRL_REG, 0x1);
diff --git a/drivers/usb/musb/davinci.h b/drivers/usb/musb/davinci.h
index 371baa0..e737d97 100644
--- a/drivers/usb/musb/davinci.h
+++ b/drivers/usb/musb/davinci.h
@@ -16,6 +16,7 @@
/* Integrated highspeed/otg PHY */
#define USBPHY_CTL_PADDR 0x01c40034
+#define USBPHY_CLKFREQ_24MHZ BIT(13)
#define USBPHY_DATAPOL BIT(11) /* (dm355) switch D+/D- */
#define USBPHY_PHYCLKGD BIT(8)
#define USBPHY_SESNDEN BIT(7) /* v(sess_end) comparator */
--
1.7.9.5
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v6] Enable USB peripheral mode on dm365 EVM
2012-10-10 12:33 [PATCH v6] Enable USB peripheral mode on dm365 EVM Constantine Shulyupin
@ 2012-10-10 19:27 ` Sergei Shtylyov
2012-10-10 19:35 ` Constantine Shulyupin
2012-10-24 21:27 ` Greg KH
2012-10-25 7:06 ` Felipe Balbi
2 siblings, 1 reply; 5+ messages in thread
From: Sergei Shtylyov @ 2012-10-10 19:27 UTC (permalink / raw)
To: linux-arm-kernel
Hello.
On 10-10-2012 14:33, Constantine Shulyupin wrote:
> From: Constantine Shulyupin <const@MakeLinux.com>
>
> Sets USB PHY clock source to 24 MHz clock and call USB configuration from board initialization.
>
> Tested with OTG configuration, usb gadget g_zero on DM365 EVM connected to PC.
>
> References:
>
> Definition of USB_PHY_CTRL and PHYCLKFREQ:
> - http://www.makelinux.com/lib/ti/DM36x_ARM/doc-141
>
> Original patch by miguel.aguilar at ridgerun.com three years ago:
> - http://www.mail-archive.com/davinci-linux-open-source at linux.davincidsp.com/msg14741.html
>
> Signed-off-by: Constantine Shulyupin <const@MakeLinux.com>
> ---
>
> Note:
>
> Changelog
>
> Changes since v5 http://www.spinics.net/lists/kernel/msg1413120.html
> accordingy feedback of nsekhar at ti.com http://www.spinics.net/lists/kernel/msg1414914.html
> - phy configuration moved to drivers/usb/musb/davinci.c
> - USB_OTG configuration is submitted in separated patch: http://www.spinics.net/lists/kernel/msg1414964.html
> - Setting current limit to 1000 mA. Any way the current is limited to 510 mA in davinci_setup_usb.
>
> Changes since v4 http://www.spinics.net/lists/kernel/msg1412995.html
> - removed fix of dev_info in musb_init_controller
>
> Changes since v3 http://www.spinics.net/lists/kernel/msg1412544.html:
> - removed optional altering of pr_info
>
> Changes since v1 http://marc.info/?l=linux-kernel&m=130894150803661&w=2:
> - removed optional code and reordered
> - removed alternation of GPIO33, which is multiplexed with DRVVBUS, because is not need for peripheral USB
>
> This patch is based on code from projects Arago, Angstom and RidgeRun.
>
> ---
> arch/arm/mach-davinci/board-dm365-evm.c | 2 ++
> drivers/usb/musb/davinci.c | 3 +++
> drivers/usb/musb/davinci.h | 1 +
> 3 files changed, 6 insertions(+)
>
> diff --git a/arch/arm/mach-davinci/board-dm365-evm.c b/arch/arm/mach-davinci/board-dm365-evm.c
> index 688a9c5..ba5ffc1 100644
> --- a/arch/arm/mach-davinci/board-dm365-evm.c
> +++ b/arch/arm/mach-davinci/board-dm365-evm.c
> @@ -38,6 +38,7 @@
> #include <mach/mmc.h>
> #include <mach/nand.h>
> #include <mach/keyscan.h>
> +#include <mach/usb.h>
>
> #include <media/tvp514x.h>
>
> @@ -610,6 +611,7 @@ static __init void dm365_evm_init(void)
>
> dm365_init_spi0(BIT(0), dm365_evm_spi_info,
> ARRAY_SIZE(dm365_evm_spi_info));
> + davinci_setup_usb(1000, 8);
> }
>
> MACHINE_START(DAVINCI_DM365_EVM, "DaVinci DM365 EVM")
You need to split the patch at this point. Above part should be
applied to the DaVinci tree, below part to the MUSB tree.
> diff --git a/drivers/usb/musb/davinci.c b/drivers/usb/musb/davinci.c
> index 472c8b4..af09ebf 100644
> --- a/drivers/usb/musb/davinci.c
> +++ b/drivers/usb/musb/davinci.c
> @@ -428,6 +428,9 @@ static int davinci_musb_init(struct musb *musb)
> __raw_writel(deepsleep, DM355_DEEPSLEEP);
> }
>
> + if (machine_is_davinci_dm365_evm())
> + writel(readl(USB_PHY_CTRL) | USBPHY_CLKFREQ_24MHZ, USB_PHY_CTRL);
I'd put that to the board file instead, like in board-da830-evm.c....
WBR, Sergei
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v6] Enable USB peripheral mode on dm365 EVM
2012-10-10 19:27 ` Sergei Shtylyov
@ 2012-10-10 19:35 ` Constantine Shulyupin
0 siblings, 0 replies; 5+ messages in thread
From: Constantine Shulyupin @ 2012-10-10 19:35 UTC (permalink / raw)
To: linux-arm-kernel
Sekhar Nori: Looks like all PHY related configuration is currently happening in
drivers/usb/musb/davinci.c and the same register is also being written
to for other platforms. Can you move the code you have included in board
file to the driver? As we move towards DT, we need to avoid register
configurations from board files anyway.
>From http://www.spinics.net/lists/kernel/msg1414914.html
On Wed, Oct 10, 2012 at 9:27 PM, Sergei Shtylyov <sshtylyov@mvista.com> wrote:
> Hello.
>
>
> On 10-10-2012 14:33, Constantine Shulyupin wrote:
>
>> From: Constantine Shulyupin <const@MakeLinux.com>
>>
>> Sets USB PHY clock source to 24 MHz clock and call USB configuration from
>> board initialization.
>>
>> Tested with OTG configuration, usb gadget g_zero on DM365 EVM connected to
>> PC.
>>
>> References:
>>
>> Definition of USB_PHY_CTRL and PHYCLKFREQ:
>> - http://www.makelinux.com/lib/ti/DM36x_ARM/doc-141
>>
>> Original patch by miguel.aguilar at ridgerun.com three years ago:
>> -
>> http://www.mail-archive.com/davinci-linux-open-source at linux.davincidsp.com/msg14741.html
>>
>> Signed-off-by: Constantine Shulyupin <const@MakeLinux.com>
>> ---
>>
>> Note:
>>
>> Changelog
>>
>> Changes since v5 http://www.spinics.net/lists/kernel/msg1413120.html
>> accordingy feedback of nsekhar at ti.com
>> http://www.spinics.net/lists/kernel/msg1414914.html
>> - phy configuration moved to drivers/usb/musb/davinci.c
>> - USB_OTG configuration is submitted in separated patch:
>> http://www.spinics.net/lists/kernel/msg1414964.html
>> - Setting current limit to 1000 mA. Any way the current is limited to 510
>> mA in davinci_setup_usb.
>>
>> Changes since v4 http://www.spinics.net/lists/kernel/msg1412995.html
>> - removed fix of dev_info in musb_init_controller
>>
>> Changes since v3 http://www.spinics.net/lists/kernel/msg1412544.html:
>> - removed optional altering of pr_info
>>
>> Changes since v1 http://marc.info/?l=linux-kernel&m=130894150803661&w=2:
>> - removed optional code and reordered
>> - removed alternation of GPIO33, which is multiplexed with DRVVBUS,
>> because is not need for peripheral USB
>>
>> This patch is based on code from projects Arago, Angstom and RidgeRun.
>>
>> ---
>> arch/arm/mach-davinci/board-dm365-evm.c | 2 ++
>> drivers/usb/musb/davinci.c | 3 +++
>> drivers/usb/musb/davinci.h | 1 +
>> 3 files changed, 6 insertions(+)
>>
>> diff --git a/arch/arm/mach-davinci/board-dm365-evm.c
>> b/arch/arm/mach-davinci/board-dm365-evm.c
>> index 688a9c5..ba5ffc1 100644
>> --- a/arch/arm/mach-davinci/board-dm365-evm.c
>> +++ b/arch/arm/mach-davinci/board-dm365-evm.c
>> @@ -38,6 +38,7 @@
>> #include <mach/mmc.h>
>> #include <mach/nand.h>
>> #include <mach/keyscan.h>
>> +#include <mach/usb.h>
>> #include <media/tvp514x.h>
>> @@ -610,6 +611,7 @@ static __init void dm365_evm_init(void)
>> dm365_init_spi0(BIT(0), dm365_evm_spi_info,
>> ARRAY_SIZE(dm365_evm_spi_info));
>> + davinci_setup_usb(1000, 8);
>> }
>> MACHINE_START(DAVINCI_DM365_EVM, "DaVinci DM365 EVM")
>
>
> You need to split the patch at this point. Above part should be applied
> to the DaVinci tree, below part to the MUSB tree.
>
>
>> diff --git a/drivers/usb/musb/davinci.c b/drivers/usb/musb/davinci.c
>> index 472c8b4..af09ebf 100644
>> --- a/drivers/usb/musb/davinci.c
>> +++ b/drivers/usb/musb/davinci.c
>> @@ -428,6 +428,9 @@ static int davinci_musb_init(struct musb *musb)
>> __raw_writel(deepsleep, DM355_DEEPSLEEP);
>> }
>> + if (machine_is_davinci_dm365_evm())
>> + writel(readl(USB_PHY_CTRL) | USBPHY_CLKFREQ_24MHZ,
>> USB_PHY_CTRL);
>
>
> I'd put that to the board file instead, like in board-da830-evm.c....
>
> WBR, Sergei
>
--
Constantine Shulyupin
http://www.MakeLinux.com/
Embedded Linux Systems,
Device Drivers, TI DaVinci
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v6] Enable USB peripheral mode on dm365 EVM
2012-10-10 12:33 [PATCH v6] Enable USB peripheral mode on dm365 EVM Constantine Shulyupin
2012-10-10 19:27 ` Sergei Shtylyov
@ 2012-10-24 21:27 ` Greg KH
2012-10-25 7:06 ` Felipe Balbi
2 siblings, 0 replies; 5+ messages in thread
From: Greg KH @ 2012-10-24 21:27 UTC (permalink / raw)
To: linux-arm-kernel
On Wed, Oct 10, 2012 at 02:33:32PM +0200, Constantine Shulyupin wrote:
> From: Constantine Shulyupin <const@MakeLinux.com>
>
> Sets USB PHY clock source to 24 MHz clock and call USB configuration from board initialization.
>
> Tested with OTG configuration, usb gadget g_zero on DM365 EVM connected to PC.
>
> References:
>
> Definition of USB_PHY_CTRL and PHYCLKFREQ:
> - http://www.makelinux.com/lib/ti/DM36x_ARM/doc-141
>
> Original patch by miguel.aguilar at ridgerun.com three years ago:
> - http://www.mail-archive.com/davinci-linux-open-source at linux.davincidsp.com/msg14741.html
>
> Signed-off-by: Constantine Shulyupin <const@MakeLinux.com>
Note, Felipe is the right person to be sending these types of patches
to, not me. scripts/get_maintainer.pl is your friend :)
thanks,
greg k-h
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v6] Enable USB peripheral mode on dm365 EVM
2012-10-10 12:33 [PATCH v6] Enable USB peripheral mode on dm365 EVM Constantine Shulyupin
2012-10-10 19:27 ` Sergei Shtylyov
2012-10-24 21:27 ` Greg KH
@ 2012-10-25 7:06 ` Felipe Balbi
2 siblings, 0 replies; 5+ messages in thread
From: Felipe Balbi @ 2012-10-25 7:06 UTC (permalink / raw)
To: linux-arm-kernel
Hi,
On Wed, Oct 10, 2012 at 02:33:32PM +0200, Constantine Shulyupin wrote:
> From: Constantine Shulyupin <const@MakeLinux.com>
>
> Sets USB PHY clock source to 24 MHz clock and call USB configuration from board initialization.
>
> Tested with OTG configuration, usb gadget g_zero on DM365 EVM connected to PC.
>
> References:
>
> Definition of USB_PHY_CTRL and PHYCLKFREQ:
> - http://www.makelinux.com/lib/ti/DM36x_ARM/doc-141
>
> Original patch by miguel.aguilar at ridgerun.com three years ago:
> - http://www.mail-archive.com/davinci-linux-open-source at linux.davincidsp.com/msg14741.html
>
> Signed-off-by: Constantine Shulyupin <const@MakeLinux.com>
> ---
>
> Note:
>
> Changelog
>
> Changes since v5 http://www.spinics.net/lists/kernel/msg1413120.html
> accordingy feedback of nsekhar at ti.com http://www.spinics.net/lists/kernel/msg1414914.html
> - phy configuration moved to drivers/usb/musb/davinci.c
> - USB_OTG configuration is submitted in separated patch: http://www.spinics.net/lists/kernel/msg1414964.html
> - Setting current limit to 1000 mA. Any way the current is limited to 510 mA in davinci_setup_usb.
>
> Changes since v4 http://www.spinics.net/lists/kernel/msg1412995.html
> - removed fix of dev_info in musb_init_controller
>
> Changes since v3 http://www.spinics.net/lists/kernel/msg1412544.html:
> - removed optional altering of pr_info
>
> Changes since v1 http://marc.info/?l=linux-kernel&m=130894150803661&w=2:
> - removed optional code and reordered
> - removed alternation of GPIO33, which is multiplexed with DRVVBUS, because is not need for peripheral USB
>
> This patch is based on code from projects Arago, Angstom and RidgeRun.
>
> ---
> arch/arm/mach-davinci/board-dm365-evm.c | 2 ++
> drivers/usb/musb/davinci.c | 3 +++
> drivers/usb/musb/davinci.h | 1 +
> 3 files changed, 6 insertions(+)
>
> diff --git a/arch/arm/mach-davinci/board-dm365-evm.c b/arch/arm/mach-davinci/board-dm365-evm.c
> index 688a9c5..ba5ffc1 100644
> --- a/arch/arm/mach-davinci/board-dm365-evm.c
> +++ b/arch/arm/mach-davinci/board-dm365-evm.c
> @@ -38,6 +38,7 @@
> #include <mach/mmc.h>
> #include <mach/nand.h>
> #include <mach/keyscan.h>
> +#include <mach/usb.h>
>
> #include <media/tvp514x.h>
>
> @@ -610,6 +611,7 @@ static __init void dm365_evm_init(void)
>
> dm365_init_spi0(BIT(0), dm365_evm_spi_info,
> ARRAY_SIZE(dm365_evm_spi_info));
> + davinci_setup_usb(1000, 8);
> }
>
> MACHINE_START(DAVINCI_DM365_EVM, "DaVinci DM365 EVM")
> diff --git a/drivers/usb/musb/davinci.c b/drivers/usb/musb/davinci.c
> index 472c8b4..af09ebf 100644
> --- a/drivers/usb/musb/davinci.c
> +++ b/drivers/usb/musb/davinci.c
> @@ -428,6 +428,9 @@ static int davinci_musb_init(struct musb *musb)
> __raw_writel(deepsleep, DM355_DEEPSLEEP);
> }
>
> + if (machine_is_davinci_dm365_evm())
> + writel(readl(USB_PHY_CTRL) | USBPHY_CLKFREQ_24MHZ, USB_PHY_CTRL);
no such checks in drivers. Please find another way to do this.
--
balbi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20121025/bfb7ee0f/attachment.sig>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-10-25 7:06 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-10 12:33 [PATCH v6] Enable USB peripheral mode on dm365 EVM Constantine Shulyupin
2012-10-10 19:27 ` Sergei Shtylyov
2012-10-10 19:35 ` Constantine Shulyupin
2012-10-24 21:27 ` Greg KH
2012-10-25 7:06 ` Felipe Balbi
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).