Enable USB peripheral mode on dm365 EVM
Subsystems (5)
PATCH v6 1/1 Enable USB peripheral mode on dm365 EVM
From: Constantine Shulyupin <[email protected]>
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
---
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(+)
arch/arm/mach-davinci/board-dm365-evm.c +2 -0
@@ -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" )
drivers/usb/musb/davinci.c +3 -0
@@ -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 );
drivers/usb/musb/davinci.h +1 -0
@@ -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 */
Signature · 1 line
1.7.9.5
Hello.
Quoted 58 lines · Constantine Shulyupin
From: Constantine Shulyupin <[email protected]>
Sets USB PHY clock source to 24 MHz clock and call USB configuration from board initialization.
Tested with OTG configuration, usb gadget
g_zeroon DM365 EVM connected to PC.References:
Definition of
USB_PHY_CTRLand PHYCLKFREQ:
- http://www.makelinux.com/lib/ti/DM36x_ARM/doc-141Original patch by miguel.aguilar at ridgerun.com three years ago:
- http://www.mail-archive.com/davinci-linux-open-source at linux.davincidsp.com/msg14741.htmlSigned-off-by Constantine Shulyupin <[email protected]>---
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 todrivers/usb/musb/davinci.c
-USB_OTGconfiguration 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 indavinci_setup_usb.Changes since v4 http://www.spinics.net/lists/kernel/msg1412995.html
- removed fix ofdev_infoinmusb_init_controllerChanges since v3 http://www.spinics.net/lists/kernel/msg1412544.html:
- removed optional altering ofpr_infoChanges 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 USBThis 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(+)arch/arm/mach-davinci/board-dm365-evm.c +1
-0@@ -38,6 +38,7 @@#include <mach/mmc.h> #include <mach/nand.h> #include <mach/keyscan.h> +#include <mach/usb.h> #include <media/tvp514x.h>
arch/arm/mach-davinci/board-dm365-evm.c static __init void dm365_evm_init(void) · line 617
Quoted 7 lines
arch/arm/mach-davinci/board-dm365-evm.c +1
-0@@ -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.
drivers/usb/musb/davinci.c static int davinci_musb_init(struct musb *musb) · line 432
Quoted 10 lines
drivers/usb/musb/davinci.c +2
-0@@ -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
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.
Quoted 1 line
Quoted 96 lines · Sergei Shtylyov
Hello.
Quoted 65 lines · Constantine Shulyupin
From: Constantine Shulyupin <[email protected]>
Sets USB PHY clock source to 24 MHz clock and call USB configuration from board initialization.
Tested with OTG configuration, usb gadget
g_zeroon DM365 EVM connected to PC.References:
Definition of
USB_PHY_CTRLand PHYCLKFREQ:
- http://www.makelinux.com/lib/ti/DM36x_ARM/doc-141Original patch by miguel.aguilar at ridgerun.com three years ago:
-
http://www.mail-archive.com/davinci-linux-open-source at linux.davincidsp.com/msg14741.htmlSigned-off-by Constantine Shulyupin <[email protected]>---
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 todrivers/usb/musb/davinci.c
-USB_OTGconfiguration 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 indavinci_setup_usb.Changes since v4 http://www.spinics.net/lists/kernel/msg1412995.html
- removed fix ofdev_infoinmusb_init_controllerChanges since v3 http://www.spinics.net/lists/kernel/msg1412544.html:
- removed optional altering ofpr_infoChanges 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 USBThis 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(+)arch/arm/mach-davinci/board-dm365-evm.c +1
-0@@ -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,Quoted 4 lines
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.drivers/usb/musb/davinci.c static int davinci_musb_init(struct musb *musb) · line 432
Quoted 10 lines
drivers/usb/musb/davinci.c +1
-0@@ -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
Signature · 4 lines
Constantine Shulyupin http://www.MakeLinux.com/ Embedded Linux Systems, Device Drivers, TI DaVinci
Greg KH
maintainerQuoted 8 lines · Constantine Shulyupin
From: Constantine Shulyupin <[email protected]>
Sets USB PHY clock source to 24 MHz clock and call USB configuration from board initialization.
Tested with OTG configuration, usb gadget
g_zeroon DM365 EVM connected to PC.References:
Quoted 7 lines
Definition of
USB_PHY_CTRLand PHYCLKFREQ:
- http://www.makelinux.com/lib/ti/DM36x_ARM/doc-141Original patch by miguel.aguilar at ridgerun.com three years ago:
- http://www.mail-archive.com/davinci-linux-open-source at linux.davincidsp.com/msg14741.htmlSigned-off-by Constantine Shulyupin <[email protected]>
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
Hi,
Quoted 70 lines · Constantine Shulyupin
From: Constantine Shulyupin <[email protected]>
Sets USB PHY clock source to 24 MHz clock and call USB configuration from board initialization.
Tested with OTG configuration, usb gadget
g_zeroon DM365 EVM connected to PC.References:
Definition of
USB_PHY_CTRLand PHYCLKFREQ:
- http://www.makelinux.com/lib/ti/DM36x_ARM/doc-141Original patch by miguel.aguilar at ridgerun.com three years ago:
- http://www.mail-archive.com/davinci-linux-open-source at linux.davincidsp.com/msg14741.htmlSigned-off-by Constantine Shulyupin <[email protected]>---
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 todrivers/usb/musb/davinci.c
-USB_OTGconfiguration 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 indavinci_setup_usb.Changes since v4 http://www.spinics.net/lists/kernel/msg1412995.html
- removed fix ofdev_infoinmusb_init_controllerChanges since v3 http://www.spinics.net/lists/kernel/msg1412544.html:
- removed optional altering ofpr_infoChanges 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 USBThis 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(+)arch/arm/mach-davinci/board-dm365-evm.c +2
-0@@ -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" )drivers/usb/musb/davinci.c +0
-0
drivers/usb/musb/davinci.c static int davinci_musb_init(struct musb *musb) · line 432
Quoted 5 lines
drivers/usb/musb/davinci.c +2
-0@@ -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.
Signature · 8 lines
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>