| Submitter | Ajay Bhargav |
|---|---|
| Date | Jan. 25, 2012, 12:19 p.m. |
| Message ID | <1327493993-19197-2-git-send-email-ajay.bhargav@einfochips.com> |
| Download | mbox | patch |
| Permalink | /patch/137750/ |
| State | Superseded |
| Delegated to: | Marek Vasut |
| Headers | show |
Comments
> -----Original Message----- > From: Ajay Bhargav [mailto:ajay.bhargav@einfochips.com] > Sent: 25 January 2012 17:50 > To: linux@bohmer.net > Cc: Prafulla Wadaskar; marek.vasut@gmail.com; u-boot@lists.denx.de; > Ajay Bhargav > Subject: [PATCH 2/3] USB: Armada100: ECHI Driver for Armada100 SOCs > > This patch adds support for USB EHCI driver for Armada100 SOCs. > > Signed-off-by: Ajay Bhargav <ajay.bhargav@einfochips.com> > --- > arch/arm/include/asm/arch-armada100/armada100.h | 1 + > drivers/usb/host/Makefile | 1 + > drivers/usb/host/ehci-armada100.c | 62 > +++++++++++++++++++++++ > 3 files changed, 64 insertions(+), 0 deletions(-) > create mode 100644 drivers/usb/host/ehci-armada100.c > > diff --git a/arch/arm/include/asm/arch-armada100/armada100.h > b/arch/arm/include/asm/arch-armada100/armada100.h > index d6984dc..26f836e 100644 > --- a/arch/arm/include/asm/arch-armada100/armada100.h > +++ b/arch/arm/include/asm/arch-armada100/armada100.h > @@ -67,6 +67,7 @@ > #define ARMD1_SSP5_BASE 0xD4021000 > #define ARMD1_UART3_BASE 0xD4026000 > #define ARMD1_MPMU_BASE 0xD4050000 > +#define ARMD1_USB_HOST_BASE 0xD4209000 > #define ARMD1_APMU_BASE 0xD4282800 > #define ARMD1_CPU_BASE 0xD4282C00 > > diff --git a/drivers/usb/host/Makefile b/drivers/usb/host/Makefile > index 77e217f..94e72c3 100644 > --- a/drivers/usb/host/Makefile > +++ b/drivers/usb/host/Makefile > @@ -35,6 +35,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 > ifdef CONFIG_MPC512X > COBJS-$(CONFIG_USB_EHCI_FSL) += ehci-mpc512x.o > else > diff --git a/drivers/usb/host/ehci-armada100.c > b/drivers/usb/host/ehci-armada100.c > new file mode 100644 > index 0000000..cf05d1a > --- /dev/null > +++ b/drivers/usb/host/ehci-armada100.c > @@ -0,0 +1,62 @@ > +/* > + * (C) Copyright 2012 > + * eInfochips Ltd. <www.einfochips.com> > + * Written-by: Ajay Bhargav <ajay.bhargav@einfochips.com> > + * > + * This driver is based on Kirkwood echi driver > + * (C) Copyright 2009 > + * Marvell Semiconductor <www.marvell.com> > + * Written-by: Prafulla Wadaskar <prafulla@marvell.com> > + * > + * 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 <asm/io.h> > +#include <usb.h> > +#include "ehci.h" > +#include "ehci-core.h" > +#include <asm/arch/cpu.h> > +#include <asm/arch/armada100.h> > +#include "utmi-armada100.h" > + > +/* > + * EHCI host controller init > + */ > +int ehci_hcd_init(void) > +{ > + utmi_init(); > + hccr = (struct ehci_hccr *)(ARMD1_USB_HOST_BASE + 0x100); > + hcor = (struct ehci_hcor *)((uint32_t) hccr > + + HC_LENGTH(ehci_readl(&hccr->cr_capbase))); > + > + printf("Kirkwood-ehci: init hccr %x and hcor %x hc_length %d\n", Wrong printf message, it's not Kirkwood. Regards.. Prafulla . . .
----- "Prafulla Wadaskar" <prafulla@marvell.com> wrote: [...snip...] > > + > > + printf("Kirkwood-ehci: init hccr %x and hcor %x hc_length %d\n", > > Wrong printf message, it's not Kirkwood. > > Regards.. > Prafulla . . . > I don't know how I missed that.. though, I did changed it :/ Any other comments on patches? Regards, Ajay Bhargav
Patch
diff --git a/arch/arm/include/asm/arch-armada100/armada100.h b/arch/arm/include/asm/arch-armada100/armada100.h index d6984dc..26f836e 100644 --- a/arch/arm/include/asm/arch-armada100/armada100.h +++ b/arch/arm/include/asm/arch-armada100/armada100.h @@ -67,6 +67,7 @@ #define ARMD1_SSP5_BASE 0xD4021000 #define ARMD1_UART3_BASE 0xD4026000 #define ARMD1_MPMU_BASE 0xD4050000 +#define ARMD1_USB_HOST_BASE 0xD4209000 #define ARMD1_APMU_BASE 0xD4282800 #define ARMD1_CPU_BASE 0xD4282C00 diff --git a/drivers/usb/host/Makefile b/drivers/usb/host/Makefile index 77e217f..94e72c3 100644 --- a/drivers/usb/host/Makefile +++ b/drivers/usb/host/Makefile @@ -35,6 +35,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 ifdef CONFIG_MPC512X COBJS-$(CONFIG_USB_EHCI_FSL) += ehci-mpc512x.o else diff --git a/drivers/usb/host/ehci-armada100.c b/drivers/usb/host/ehci-armada100.c new file mode 100644 index 0000000..cf05d1a --- /dev/null +++ b/drivers/usb/host/ehci-armada100.c @@ -0,0 +1,62 @@ +/* + * (C) Copyright 2012 + * eInfochips Ltd. <www.einfochips.com> + * Written-by: Ajay Bhargav <ajay.bhargav@einfochips.com> + * + * This driver is based on Kirkwood echi driver + * (C) Copyright 2009 + * Marvell Semiconductor <www.marvell.com> + * Written-by: Prafulla Wadaskar <prafulla@marvell.com> + * + * 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 <asm/io.h> +#include <usb.h> +#include "ehci.h" +#include "ehci-core.h" +#include <asm/arch/cpu.h> +#include <asm/arch/armada100.h> +#include "utmi-armada100.h" + +/* + * EHCI host controller init + */ +int ehci_hcd_init(void) +{ + utmi_init(); + hccr = (struct ehci_hccr *)(ARMD1_USB_HOST_BASE + 0x100); + hcor = (struct ehci_hcor *)((uint32_t) hccr + + HC_LENGTH(ehci_readl(&hccr->cr_capbase))); + + printf("Kirkwood-ehci: init hccr %x and hcor %x hc_length %d\n", + (uint32_t)hccr, (uint32_t)hcor, + (uint32_t)HC_LENGTH(ehci_readl(&hccr->cr_capbase))); + + return 0; +} + +/* + * EHCI host controller stop + */ +int ehci_hcd_stop(void) +{ + return 0; +}
This patch adds support for USB EHCI driver for Armada100 SOCs. Signed-off-by: Ajay Bhargav <ajay.bhargav@einfochips.com> --- arch/arm/include/asm/arch-armada100/armada100.h | 1 + drivers/usb/host/Makefile | 1 + drivers/usb/host/ehci-armada100.c | 62 +++++++++++++++++++++++ 3 files changed, 64 insertions(+), 0 deletions(-) create mode 100644 drivers/usb/host/ehci-armada100.c