Skip to contentSkip to conversation

Atmel : usb : add EHCI driver for Atmel SoC

PATCH New Bo Shen 4 participants 9 messages Jun 21, 2012 – Jun 27, 2012

Subsystems (3)
lore
Share & tools
lore

Bo Shen

author
#0 lore raw

PATCH 1/1 Atmel : usb : add EHCI driver for Atmel SoC

Some Atmel SoC support USB EHCI, add the EHCI driver to support it.

To enable the USB EHCI, add the following configuration options into board relative configuration file and remove USB OHCI options.

  #define CONFIG_USB_EHCI
  #define CONFIG_USB_EHCI_ATMEL
  #define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS     2
---
 drivers/usb/host/Makefile     |    1 +
 drivers/usb/host/ehci-atmel.c |   67 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 68 insertions(+)
 create mode 100644 drivers/usb/host/ehci-atmel.c
drivers/usb/host/Makefile +1 -0
index 59c3e57..4547f37 100644
@@ -36,6 +36,7 @@ COBJS-$(CONFIG_USB_SL811HS) += sl811-hcd.o
 # echi
 COBJS-$(CONFIG_USB_EHCI) += ehci-hcd.o
 COBJS-$(CONFIG_USB_EHCI_ARMADA100) += ehci-armada100.o utmi-armada100.o
+COBJS-$(CONFIG_USB_EHCI_ATMEL) += ehci-atmel.o
 ifdef CONFIG_MPC512X
 COBJS-$(CONFIG_USB_EHCI_FSL) += ehci-mpc512x.o
 else
drivers/usb/host/ehci-atmel.c new file +67 -0

67 lines not on this page · raw message

Signature · 1 line
1.7.9.5
#1 lore raw

PATCH 1/1 Atmel : usb : add EHCI driver for Atmel SoC

Dear Bo Shen,

Quoted 67 lines

Some Atmel SoC support USB EHCI, add the EHCI driver to support it.

To enable the USB EHCI, add the following configuration options into board relative configuration file and remove USB OHCI options.

  #define CONFIG_USB_EHCI
  #define CONFIG_USB_EHCI_ATMEL
  #define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS     2
---
 drivers/usb/host/Makefile     |    1 +
 drivers/usb/host/ehci-atmel.c |   67
+++++++++++++++++++++++++++++++++++++++++ 2 files changed, 68
insertions(+)
 create mode 100644 drivers/usb/host/ehci-atmel.c
drivers/usb/host/Makefile +1 -0
index 59c3e57..4547f37 100644
@@ -36,6 +36,7 @@ COBJS-$(CONFIG_USB_SL811HS) += sl811-hcd.o
 # echi
 COBJS-$(CONFIG_USB_EHCI) += ehci-hcd.o
 COBJS-$(CONFIG_USB_EHCI_ARMADA100) += ehci-armada100.o utmi-armada100.o
+COBJS-$(CONFIG_USB_EHCI_ATMEL) += ehci-atmel.o
 ifdef CONFIG_MPC512X
 COBJS-$(CONFIG_USB_EHCI_FSL) += ehci-mpc512x.o
 else
drivers/usb/host/ehci-atmel.c new file +32 -0
new file mode 100644
index 0000000..a3418c4
@@ -0,0 +1,67 @@
+/*
+ * (C) Copyright 2012
+ * Atmel Semiconductor <www.atmel.com>
+ * Written-by: Bo Shen <[email protected]>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
+#include <common.h>
+#include <usb.h>
+#include <asm/io.h>
+#include <asm/arch/hardware.h>
+#include <asm/arch/at91_pmc.h>
+#include <asm/arch/clk.h>
+
+#include "ehci.h"

drivers/usb/host/ehci-atmel.c line 42

Quoted 10 lines
drivers/usb/host/ehci-atmel.c new file +10 -0
+#include "ehci-core.h"
+
+int ehci_hcd_init(void)
+{
+	at91_pmc_t *pmc = (at91_pmc_t *)ATMEL_BASE_PMC;
+
+	/* Enable UPLL  */
+	writel(AT91_PMC_UPLLEN | AT91_PMC_BIASEN, &pmc->uckr);
+	while ((readl(&pmc->sr) & AT91_PMC_LOCKU) != AT91_PMC_LOCKU)
+		;

Add WATCHDOG_RESET() and fix it not to be an endless loop.

Quoted 12 lines
drivers/usb/host/ehci-atmel.c new file +12 -0
+
+	/* Enable USB Host clock */
+	writel(1 << ATMEL_ID_UHPHS, &pmc->pcer);
+
+	hccr = (struct ehci_hccr *)ATMEL_BASE_EHCI;
+	hcor = (struct ehci_hcor *)((uint32_t)hccr +
+			HC_LENGTH(ehci_readl(&hccr->cr_capbase)));
+
+	return 0;
+}
+
+int ehci_hcd_stop(void)

drivers/usb/host/ehci-atmel.c line 64

Quoted 10 lines
drivers/usb/host/ehci-atmel.c new file +10 -0
+{
+	at91_pmc_t *pmc = (at91_pmc_t *)ATMEL_BASE_PMC;
+
+	/* Disable USB Host Clock */
+	writel(1 << ATMEL_ID_UHPHS, &pmc->pcdr);
+
+	/* Disable UPLL */
+	writel(readl(&pmc->uckr) & (~AT91_PMC_UPLLEN), &pmc->uckr);
+	while ((readl(&pmc->sr) & AT91_PMC_LOCKU) == AT91_PMC_LOCKU)
+		;

DTTO

drivers/usb/host/ehci-atmel.c line 52

Quoted 3 lines
drivers/usb/host/ehci-atmel.c new file +3 -0
+
+	return 0;
+}

btw do you have some user for this code?

Best regards,
Marek Vasut

author
#2 lore raw

PATCH 1/1 Atmel : usb : add EHCI driver for Atmel SoC

Hi Marek,

Quoted 73 lines · Marek Vasut

Dear Bo Shen,

Quoted 71 lines

Some Atmel SoC support USB EHCI, add the EHCI driver to support it.

To enable the USB EHCI, add the following configuration options into board relative configuration file and remove USB OHCI options.

   #define CONFIG_USB_EHCI
   #define CONFIG_USB_EHCI_ATMEL
   #define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS     2
---
  drivers/usb/host/Makefile     |    1 +
  drivers/usb/host/ehci-atmel.c |   67

+++++++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+)
create mode 100644 drivers/usb/host/ehci-atmel.c

drivers/usb/host/Makefile +1 -0
index 59c3e57..4547f37 100644
@@ -36,6 +36,7 @@ COBJS-$(CONFIG_USB_SL811HS) += sl811-hcd.o
  # echi
  COBJS-$(CONFIG_USB_EHCI) += ehci-hcd.o
  COBJS-$(CONFIG_USB_EHCI_ARMADA100) += ehci-armada100.o utmi-armada100.o
+COBJS-$(CONFIG_USB_EHCI_ATMEL) += ehci-atmel.o
  ifdef CONFIG_MPC512X
  COBJS-$(CONFIG_USB_EHCI_FSL) += ehci-mpc512x.o
  else
drivers/usb/host/ehci-atmel.c new file +36 -0
new file mode 100644
index 0000000..a3418c4
@@ -0,0 +1,67 @@
+/*
+ * (C) Copyright 2012
+ * Atmel Semiconductor<www.atmel.com>
+ * Written-by: Bo Shen<[email protected]>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
+#include<common.h>
+#include<usb.h>
+#include<asm/io.h>
+#include<asm/arch/hardware.h>
+#include<asm/arch/at91_pmc.h>
+#include<asm/arch/clk.h>
+
+#include "ehci.h"
+#include "ehci-core.h"
+
+int ehci_hcd_init(void)
+{
Quoted 8 lines

drivers/usb/host/ehci-atmel.c line 42

Quoted 6 lines
drivers/usb/host/ehci-atmel.c new file +6 -0
+	at91_pmc_t *pmc = (at91_pmc_t *)ATMEL_BASE_PMC;
+
+	/* Enable UPLL  */
+	writel(AT91_PMC_UPLLEN | AT91_PMC_BIASEN,&pmc->uckr);
+	while ((readl(&pmc->sr)&  AT91_PMC_LOCKU) != AT91_PMC_LOCKU)
+		;

Add WATCHDOG_RESET() and fix it not to be an endless loop.

OK, I will fix it at next version patch.

Quoted 17 lines
Quoted 17 lines
drivers/usb/host/ehci-atmel.c new file +16 -0
+
+	/* Enable USB Host clock */
+	writel(1<<  ATMEL_ID_UHPHS,&pmc->pcer);
+
+	hccr = (struct ehci_hccr *)ATMEL_BASE_EHCI;
+	hcor = (struct ehci_hcor *)((uint32_t)hccr +
+			HC_LENGTH(ehci_readl(&hccr->cr_capbase)));
+
+	return 0;
+}
+
+int ehci_hcd_stop(void)
+{
+	at91_pmc_t *pmc = (at91_pmc_t *)ATMEL_BASE_PMC;
+
+	/* Disable USB Host Clock */
Quoted 8 lines

drivers/usb/host/ehci-atmel.c line 64

Quoted 6 lines
drivers/usb/host/ehci-atmel.c new file +6 -0
+	writel(1<<  ATMEL_ID_UHPHS,&pmc->pcdr);
+
+	/* Disable UPLL */
+	writel(readl(&pmc->uckr)&  (~AT91_PMC_UPLLEN),&pmc->uckr);
+	while ((readl(&pmc->sr)&  AT91_PMC_LOCKU) == AT91_PMC_LOCKU)
+		;

DTTO

OK, I will fix it at next version patch.

Quoted 6 lines

drivers/usb/host/ehci-atmel.c line 52

Quoted 4 lines
drivers/usb/host/ehci-atmel.c new file +3 -0
+
+	return 0;
+}

btw do you have some user for this code?

The at91sam9m10g45ek now uses OHCI, if needed, it can use EHCI. New coming boards will use EHCI.

Quoted 3 lines

Best regards,
Marek Vasut

#3 lore raw

PATCH 1/1 Atmel : usb : add EHCI driver for Atmel SoC

Dear Bo Shen,

Quoted 16 lines

Hi Marek,

Quoted 13 lines · Marek Vasut

Dear Bo Shen,

Quoted 11 lines

Some Atmel SoC support USB EHCI, add the EHCI driver to support it.

To enable the USB EHCI, add the following configuration options into board relative configuration file and remove USB OHCI options.

   #define CONFIG_USB_EHCI
   #define CONFIG_USB_EHCI_ATMEL
   #define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS     2

---

[...]

Quoted 3 lines

OK, I will fix it at next version patch.

Thank you!

Quoted 8 lines
Quoted 5 lines

drivers/usb/host/ehci-atmel.c line 52

Quoted 3 lines
drivers/usb/host/ehci-atmel.c new file +3 -0
+
+	return 0;
+}

btw do you have some user for this code?

The at91sam9m10g45ek now uses OHCI, if needed, it can use EHCI. New coming boards will use EHCI.

When do you see such board appearing please?

Quoted 2 lines
Quoted 2 lines

Best regards,
Marek Vasut

Best regards,
Marek Vasut

author
#4 lore raw

PATCH 1/1 Atmel : usb : add EHCI driver for Atmel SoC

Hi Marek,

Quoted 18 lines · Marek Vasut

Dear Bo Shen,

Quoted 16 lines

Hi Marek,

Quoted 13 lines · Marek Vasut

Dear Bo Shen,

Quoted 11 lines

Some Atmel SoC support USB EHCI, add the EHCI driver to support it.

To enable the USB EHCI, add the following configuration options into board relative configuration file and remove USB OHCI options.

    #define CONFIG_USB_EHCI
    #define CONFIG_USB_EHCI_ATMEL
    #define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS     2

---

[...]

Quoted 6 lines
Quoted 4 lines
Quoted 1 line

btw do you have some user for this code?

The at91sam9m10g45ek now uses OHCI, if needed, it can use EHCI. New coming boards will use EHCI.

When do you see such board appearing please?

The at91sam9m10g45ek board has existed in mainline. As to AT91
maintainer has no response, so I just send the EHCI driver separately.

For new boards, I have submitted some patches (Please take the link
as a reference: http://patchwork.ozlabs.org/patch/160581/), but AT91 maintainer has no response and also, not others response.

BRs,
Bo Shen

Quoted 6 lines
Quoted 3 lines
Quoted 3 lines

Best regards,
Marek Vasut

Best regards,
Marek Vasut

#5 lore raw

PATCH 1/1 Atmel : usb : add EHCI driver for Atmel SoC

Dear Bo Shen,

Quoted 26 lines

Hi Marek,

Quoted 18 lines · Marek Vasut

Dear Bo Shen,

Quoted 16 lines

Hi Marek,

Quoted 13 lines · Marek Vasut

Dear Bo Shen,

Quoted 11 lines

Some Atmel SoC support USB EHCI, add the EHCI driver to support it.

To enable the USB EHCI, add the following configuration options into board relative configuration file and remove USB OHCI options.

    #define CONFIG_USB_EHCI
    #define CONFIG_USB_EHCI_ATMEL
    #define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS     2

---

[...]

Quoted 2 lines
Quoted 2 lines
Quoted 1 line

btw do you have some user for this code?

Quoted 7 lines
Quoted 4 lines
Quoted 2 lines

The at91sam9m10g45ek now uses OHCI, if needed, it can use EHCI. New coming boards will use EHCI.

When do you see such board appearing please?

The at91sam9m10g45ek board has existed in mainline. As to AT91
maintainer has no response, so I just send the EHCI driver separately.

I think there're some issues with the at91 maintainer. Ccing Andreas, maybe he can actually start picking up the atmel patches?

Quoted 3 lines

For new boards, I have submitted some patches (Please take the link
as a reference: http://patchwork.ozlabs.org/patch/160581/), but AT91 maintainer has no response and also, not others response.

And CCing Albert so he can pick it up. But it'd be great if you also added some user of this code, so it's not completely dead.

Quoted 8 lines

BRs,
Bo Shen

Quoted 5 lines
Quoted 2 lines
Quoted 2 lines

Best regards,
Marek Vasut

Best regards,
Marek Vasut

Best regards,
Marek Vasut

author
#6 lore raw

PATCH 1/1 Atmel : usb : add EHCI driver for Atmel SoC

Hi Marek,

Quoted 39 lines · Marek Vasut

Dear Bo Shen,

Quoted 26 lines

Hi Marek,

Quoted 18 lines · Marek Vasut

Dear Bo Shen,

Quoted 16 lines

Hi Marek,

Quoted 13 lines · Marek Vasut

Dear Bo Shen,

Quoted 11 lines

Some Atmel SoC support USB EHCI, add the EHCI driver to support it.

To enable the USB EHCI, add the following configuration options into board relative configuration file and remove USB OHCI options.

     #define CONFIG_USB_EHCI
     #define CONFIG_USB_EHCI_ATMEL
     #define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS     2

---

[...]

Quoted 2 lines
Quoted 2 lines
Quoted 1 line

btw do you have some user for this code?

Quoted 7 lines
Quoted 4 lines
Quoted 2 lines

The at91sam9m10g45ek now uses OHCI, if needed, it can use EHCI. New coming boards will use EHCI.

When do you see such board appearing please?

The at91sam9m10g45ek board has existed in mainline. As to AT91
maintainer has no response, so I just send the EHCI driver separately.

I think there're some issues with the at91 maintainer. Ccing Andreas, maybe he can actually start picking up the atmel patches?

Quoted 6 lines
Quoted 3 lines

For new boards, I have submitted some patches (Please take the link
as a reference: http://patchwork.ozlabs.org/patch/160581/), but AT91 maintainer has no response and also, not others response.

And CCing Albert so he can pick it up. But it'd be great if you also added some user of this code, so it's not completely dead.

OK, I will send out the v2 patches.
Thanks

Quoted 13 lines
Quoted 9 lines

BRs,
Bo Shen

Quoted 5 lines
Quoted 2 lines
Quoted 2 lines

Best regards,
Marek Vasut

Best regards,
Marek Vasut

Best regards,
Marek Vasut

#7 lore raw

PATCH 1/1 Atmel : usb : add EHCI driver for Atmel SoC

In reply to Marek Vasut

Dear all,

Quoted 31 lines · Marek Vasut

Dear Bo Shen,

Quoted 29 lines

Hi Marek,

Quoted 18 lines · Marek Vasut

Dear Bo Shen,

Quoted 16 lines

Hi Marek,

Quoted 13 lines · Marek Vasut

Dear Bo Shen,

Quoted 11 lines

Some Atmel SoC support USB EHCI, add the EHCI driver to support it.

To enable the USB EHCI, add the following configuration options into board relative configuration file and remove USB OHCI options.

    #define CONFIG_USB_EHCI
    #define CONFIG_USB_EHCI_ATMEL
    #define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS     2

---

[...]

Quoted 5 lines
Quoted 4 lines
Quoted 1 line

btw do you have some user for this code?

The at91sam9m10g45ek now uses OHCI, if needed, it can use EHCI. New coming boards will use EHCI.

Quoted 8 lines
Quoted 4 lines
Quoted 1 line

When do you see such board appearing please?

The at91sam9m10g45ek board has existed in mainline. As to AT91
maintainer has no response, so I just send the EHCI driver separately.

I think there're some issues with the at91 maintainer. Ccing Andreas, maybe he can actually start picking up the atmel patches?

Sorry for being late, I read the list not really daily these days.

AFAIR Reinhard gave up somewhere end of last year, in fact we currently have no at91 maintainer.
I'm willing to step into at least for a while. My main aim is to get the latest Atmel patches into mainline for 2012.07, if Albert is willing to pull them (well less than 20 days left, and some of the patches where slightly after close of MW for 2012.07).

As far as I can see these patches are left:

Bo Shen (new board):
http://patchwork.ozlabs.org/patch/160581/
http://patchwork.ozlabs.org/patch/167290/

Alexandre Belloni (change address for dataflash; first submission in February!):
http://patchwork.ozlabs.org/patch/154242/

Jens Scharsig (fixes):
http://patchwork.ozlabs.org/patch/147550/
http://patchwork.ozlabs.org/patch/147534/

Vladimir Zapolskiy (new board):
http://patchwork.ozlabs.org/patch/135526/

Wolfgang and Albert, how do you think about?

best regards

Andreas Bie?mann

#8 lore raw

PATCH 1/1 Atmel : usb : add EHCI driver for Atmel SoC

Dear Andreas,

Quoted 7 lines · In message <[email protected]> you wrote:

AFAIR Reinhard gave up somewhere end of last year, in fact we currently have no at91 maintainer.
I'm willing to step into at least for a while. My main aim is to get the latest Atmel patches into mainline for 2012.07, if Albert is willing to pull them (well less than 20 days left, and some of the patches where slightly after close of MW for 2012.07).

...

Quoted 1 line

Wolfgang and Albert, how do you think about?

I am really glad you are volunteering - you close a pretty painful gap. Thanks a lot for your work in advance, it is highly appreciated.

Your SSH key has been installed for both u-boot-atmel and u-boot-at91 so you should be able to start working.

Best regards,

Wolfgang Denk

Signature · 6 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"A fractal is by definition a set for which the Hausdorff Besicovitch
dimension strictly exceeds the topological dimension."
- Mandelbrot, _The Fractal Geometry of Nature_