From: const@MakeLinux.com (const at MakeLinux.com)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3] Enable USB peripheral on dm365 EVM
Date: Thu, 4 Oct 2012 00:04:19 +0200 [thread overview]
Message-ID: <1349301859-31306-1-git-send-email-const@MakeLinux.com> (raw)
From: Constantine Shulyupin <const@MakeLinux.com>
From: Miguel Aguilar <miguel.aguilar@ridgerun.com>
Signed-off-by: Constantine Shulyupin <const@MakeLinux.com>
---
Tested with usb gadget g_zero.
This patch is based on code from Arago, Angstom, and RidgeRun projects.
Original patch is three years ago:
http://www.mail-archive.com/davinci-linux-open-source at linux.davincidsp.com/msg14741.html
---
arch/arm/mach-davinci/board-dm365-evm.c | 8 ++++++++
arch/arm/mach-davinci/usb.c | 2 ++
drivers/usb/musb/davinci.h | 1 +
drivers/usb/musb/musb_core.c | 20 ++++++++++++--------
4 files changed, 23 insertions(+), 8 deletions(-)
diff --git a/arch/arm/mach-davinci/board-dm365-evm.c b/arch/arm/mach-davinci/board-dm365-evm.c
index 3a4743b..dfcb67f 100644
--- a/arch/arm/mach-davinci/board-dm365-evm.c
+++ b/arch/arm/mach-davinci/board-dm365-evm.c
@@ -38,6 +38,8 @@
#include <mach/mmc.h>
#include <mach/nand.h>
#include <mach/keyscan.h>
+#include <mach/usb.h>
+#include <mach/hardware.h>
#include <media/tvp514x.h>
@@ -92,6 +94,9 @@ static inline int have_tvp7002(void)
#define CPLD_CCD_DIR3 CPLD_OFFSET(0x3f,0)
#define CPLD_CCD_IO3 CPLD_OFFSET(0x3f,1)
+#define USBPHY_CTL_PADDR 0x01c40034
+#define USBPHY_CLKFREQ_24MHZ BIT(13)
+
static void __iomem *cpld;
@@ -613,6 +618,9 @@ static __init void dm365_evm_init(void)
dm365_init_spi0(BIT(0), dm365_evm_spi_info,
ARRAY_SIZE(dm365_evm_spi_info));
+ writel(readl(IO_ADDRESS(USBPHY_CTL_PADDR)) | USBPHY_CLKFREQ_24MHZ,
+ IO_ADDRESS(USBPHY_CTL_PADDR));
+ davinci_setup_usb(500, 8);
}
MACHINE_START(DAVINCI_DM365_EVM, "DaVinci DM365 EVM")
diff --git a/arch/arm/mach-davinci/usb.c b/arch/arm/mach-davinci/usb.c
index 23d2b6d..664c689 100644
--- a/arch/arm/mach-davinci/usb.c
+++ b/arch/arm/mach-davinci/usb.c
@@ -49,6 +49,8 @@ static struct musb_hdrc_platform_data usb_data = {
.mode = MUSB_PERIPHERAL,
#elif defined(CONFIG_USB_MUSB_HOST)
.mode = MUSB_HOST,
+#else
+ .mode = MUSB_OTG,
#endif
.clock = "usb",
.config = &musb_config,
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 */
diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
index 26f1bef..277fe65 100644
--- a/drivers/usb/musb/musb_core.c
+++ b/drivers/usb/musb/musb_core.c
@@ -2051,9 +2051,17 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl)
dev_info(dev, "USB %s mode controller at %p using %s, IRQ %d\n",
({char *s;
switch (musb->board_mode) {
- case MUSB_HOST: s = "Host"; break;
- case MUSB_PERIPHERAL: s = "Peripheral"; break;
- default: s = "OTG"; break;
+ case MUSB_HOST:
+ s = "Host";
+ break;
+ case MUSB_PERIPHERAL:
+ s = "Peripheral";
+ break;
+ case MUSB_OTG:
+ s = "OTG";
+ break;
+ default:
+ s = "Undefined";
}; s; }),
ctrl,
(is_dma_capable() && musb->dma_controller)
@@ -2402,11 +2410,7 @@ static int __init musb_init(void)
if (usb_disabled())
return 0;
- pr_info("%s: version " MUSB_VERSION ", "
- "?dma?"
- ", "
- "otg (peripheral+host)",
- musb_driver_name);
+ pr_info("%s: version %s\n", MUSB_VERSION, musb_driver_name);
return platform_driver_register(&musb_driver);
}
module_init(musb_init);
--
1.7.9.5
WARNING: multiple messages have this Message-ID (diff)
From: const@MakeLinux.com
To: nsekhar@ti.com
Cc: davinci-linux-open-source@linux.davincidsp.com,
linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, khilman@ti.com,
balbi@ti.com, gregkh@linuxfoundation.org,
miguel.aguilar@ridgerun.com, kernel-mentors@selenic.com,
Constantine Shulyupin <const@MakeLinux.com>
Subject: [PATCH v3] Enable USB peripheral on dm365 EVM
Date: Thu, 4 Oct 2012 00:04:19 +0200 [thread overview]
Message-ID: <1349301859-31306-1-git-send-email-const@MakeLinux.com> (raw)
From: Constantine Shulyupin <const@MakeLinux.com>
From: Miguel Aguilar <miguel.aguilar@ridgerun.com>
Signed-off-by: Constantine Shulyupin <const@MakeLinux.com>
---
Tested with usb gadget g_zero.
This patch is based on code from Arago, Angstom, and RidgeRun projects.
Original patch is three years ago:
http://www.mail-archive.com/davinci-linux-open-source@linux.davincidsp.com/msg14741.html
---
arch/arm/mach-davinci/board-dm365-evm.c | 8 ++++++++
arch/arm/mach-davinci/usb.c | 2 ++
drivers/usb/musb/davinci.h | 1 +
drivers/usb/musb/musb_core.c | 20 ++++++++++++--------
4 files changed, 23 insertions(+), 8 deletions(-)
diff --git a/arch/arm/mach-davinci/board-dm365-evm.c b/arch/arm/mach-davinci/board-dm365-evm.c
index 3a4743b..dfcb67f 100644
--- a/arch/arm/mach-davinci/board-dm365-evm.c
+++ b/arch/arm/mach-davinci/board-dm365-evm.c
@@ -38,6 +38,8 @@
#include <mach/mmc.h>
#include <mach/nand.h>
#include <mach/keyscan.h>
+#include <mach/usb.h>
+#include <mach/hardware.h>
#include <media/tvp514x.h>
@@ -92,6 +94,9 @@ static inline int have_tvp7002(void)
#define CPLD_CCD_DIR3 CPLD_OFFSET(0x3f,0)
#define CPLD_CCD_IO3 CPLD_OFFSET(0x3f,1)
+#define USBPHY_CTL_PADDR 0x01c40034
+#define USBPHY_CLKFREQ_24MHZ BIT(13)
+
static void __iomem *cpld;
@@ -613,6 +618,9 @@ static __init void dm365_evm_init(void)
dm365_init_spi0(BIT(0), dm365_evm_spi_info,
ARRAY_SIZE(dm365_evm_spi_info));
+ writel(readl(IO_ADDRESS(USBPHY_CTL_PADDR)) | USBPHY_CLKFREQ_24MHZ,
+ IO_ADDRESS(USBPHY_CTL_PADDR));
+ davinci_setup_usb(500, 8);
}
MACHINE_START(DAVINCI_DM365_EVM, "DaVinci DM365 EVM")
diff --git a/arch/arm/mach-davinci/usb.c b/arch/arm/mach-davinci/usb.c
index 23d2b6d..664c689 100644
--- a/arch/arm/mach-davinci/usb.c
+++ b/arch/arm/mach-davinci/usb.c
@@ -49,6 +49,8 @@ static struct musb_hdrc_platform_data usb_data = {
.mode = MUSB_PERIPHERAL,
#elif defined(CONFIG_USB_MUSB_HOST)
.mode = MUSB_HOST,
+#else
+ .mode = MUSB_OTG,
#endif
.clock = "usb",
.config = &musb_config,
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 */
diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
index 26f1bef..277fe65 100644
--- a/drivers/usb/musb/musb_core.c
+++ b/drivers/usb/musb/musb_core.c
@@ -2051,9 +2051,17 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl)
dev_info(dev, "USB %s mode controller at %p using %s, IRQ %d\n",
({char *s;
switch (musb->board_mode) {
- case MUSB_HOST: s = "Host"; break;
- case MUSB_PERIPHERAL: s = "Peripheral"; break;
- default: s = "OTG"; break;
+ case MUSB_HOST:
+ s = "Host";
+ break;
+ case MUSB_PERIPHERAL:
+ s = "Peripheral";
+ break;
+ case MUSB_OTG:
+ s = "OTG";
+ break;
+ default:
+ s = "Undefined";
}; s; }),
ctrl,
(is_dma_capable() && musb->dma_controller)
@@ -2402,11 +2410,7 @@ static int __init musb_init(void)
if (usb_disabled())
return 0;
- pr_info("%s: version " MUSB_VERSION ", "
- "?dma?"
- ", "
- "otg (peripheral+host)",
- musb_driver_name);
+ pr_info("%s: version %s\n", MUSB_VERSION, musb_driver_name);
return platform_driver_register(&musb_driver);
}
module_init(musb_init);
--
1.7.9.5
next reply other threads:[~2012-10-03 22:04 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-03 22:04 const at MakeLinux.com [this message]
2012-10-03 22:04 ` [PATCH v3] Enable USB peripheral on dm365 EVM const
2012-10-03 23:23 ` Greg KH
2012-10-03 23:23 ` Greg KH
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=1349301859-31306-1-git-send-email-const@MakeLinux.com \
--to=const@makelinux.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.