Message ID | 1329139664-31749-2-git-send-email-ajay.bhargav@einfochips.com |
---|---|
State | Accepted |
Commit | 54cb00486eace9c0931d855dfadfcfdcecea78fc |
Delegated to: | Marek Vasut |
Headers | show |
> -----Original Message----- > From: Ajay Bhargav [mailto:ajay.bhargav@einfochips.com] > Sent: 13 February 2012 18:58 > To: linux@bohmer.net > Cc: Prafulla Wadaskar; marek.vasut@gmail.com; u-boot@lists.denx.de; > Ajay Bhargav > Subject: [v3 2/3] USB: Armada100: EHCI Driver for Armada100 SOCs > > This patch adds support for USB EHCI driver for Armada100 SOCs. > > Signed-off-by: Ajay Bhargav <ajay.bhargav@einfochips.com> > --- > Changes for v2: > - Fix typo for SOC name > - change printf to debug > Changes for v3: > - Fix type in patch subject > - header file include updated > > arch/arm/include/asm/arch-armada100/armada100.h | 1 + > drivers/usb/host/Makefile | 1 + > drivers/usb/host/ehci-armada100.c | 64 > +++++++++++++++++++++++ > 3 files changed, 66 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 70fba27..614de55 100644 > --- a/arch/arm/include/asm/arch-armada100/armada100.h > +++ b/arch/arm/include/asm/arch-armada100/armada100.h > @@ -68,6 +68,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 7c4df53..5fdc97b 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..f3d8aef > --- /dev/null > +++ b/drivers/usb/host/ehci-armada100.c > @@ -0,0 +1,64 @@ > +/* > + * (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 <asm/arch/utmi-armada100.h> > + > +/* > + * EHCI host controller init > + */ > +int ehci_hcd_init(void) > +{ > + if (utmi_init() < 0) > + return -1; > + > + hccr = (struct ehci_hccr *)(ARMD1_USB_HOST_BASE + 0x100); > + hcor = (struct ehci_hcor *)((uint32_t) hccr > + + HC_LENGTH(ehci_readl(&hccr->cr_capbase))); > + > + debug("armada100-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; > +} > -- > 1.7.7.2 Applied to u-boot-marvell.git next branch Regards.. Prafulla . . .
> > -----Original Message----- > > From: Ajay Bhargav [mailto:ajay.bhargav@einfochips.com] > > Sent: 13 February 2012 18:58 > > To: linux@bohmer.net > > Cc: Prafulla Wadaskar; marek.vasut@gmail.com; u-boot@lists.denx.de; > > Ajay Bhargav > > Subject: [v3 2/3] USB: Armada100: EHCI Driver for Armada100 SOCs > > > > This patch adds support for USB EHCI driver for Armada100 SOCs. > > > > Signed-off-by: Ajay Bhargav <ajay.bhargav@einfochips.com> > > --- > > > > Changes for v2: > > - Fix typo for SOC name > > - change printf to debug > > > > Changes for v3: > > - Fix type in patch subject > > - header file include updated > > > > arch/arm/include/asm/arch-armada100/armada100.h | 1 + > > drivers/usb/host/Makefile | 1 + > > drivers/usb/host/ehci-armada100.c | 64 > > > > +++++++++++++++++++++++ > > > > 3 files changed, 66 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 70fba27..614de55 100644 > > --- a/arch/arm/include/asm/arch-armada100/armada100.h > > +++ b/arch/arm/include/asm/arch-armada100/armada100.h > > @@ -68,6 +68,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 7c4df53..5fdc97b 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..f3d8aef > > --- /dev/null > > +++ b/drivers/usb/host/ehci-armada100.c > > @@ -0,0 +1,64 @@ > > +/* > > + * (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 <asm/arch/utmi-armada100.h> > > + > > +/* > > + * EHCI host controller init > > + */ > > +int ehci_hcd_init(void) > > +{ > > + if (utmi_init() < 0) > > + return -1; > > + > > + hccr = (struct ehci_hccr *)(ARMD1_USB_HOST_BASE + 0x100); > > + hcor = (struct ehci_hcor *)((uint32_t) hccr > > + + HC_LENGTH(ehci_readl(&hccr->cr_capbase))); > > + > > + debug("armada100-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; > > +} > > -- > > 1.7.7.2 Oh dang, I picked them into -usb too. Shall I drop them ?
> -----Original Message----- > From: Marek Vasut [mailto:marex@denx.de] > Sent: 02 March 2012 16:07 > To: Prafulla Wadaskar > Cc: Ajay Bhargav; linux@bohmer.net; u-boot@lists.denx.de > Subject: Re: [v3 2/3] USB: Armada100: EHCI Driver for Armada100 SOCs > > > > -----Original Message----- > > > From: Ajay Bhargav [mailto:ajay.bhargav@einfochips.com] > > > Sent: 13 February 2012 18:58 > > > To: linux@bohmer.net > > > Cc: Prafulla Wadaskar; marek.vasut@gmail.com; u- > boot@lists.denx.de; > > > Ajay Bhargav > > > Subject: [v3 2/3] USB: Armada100: EHCI Driver for Armada100 SOCs > > > > > > This patch adds support for USB EHCI driver for Armada100 SOCs. > > > > > > Signed-off-by: Ajay Bhargav <ajay.bhargav@einfochips.com> > > > --- > > > > > > Changes for v2: > > > - Fix typo for SOC name > > > - change printf to debug > > > > > > Changes for v3: > > > - Fix type in patch subject > > > - header file include updated > > > > > > arch/arm/include/asm/arch-armada100/armada100.h | 1 + > > > drivers/usb/host/Makefile | 1 + > > > drivers/usb/host/ehci-armada100.c | 64 > > > > > > +++++++++++++++++++++++ > > > > > > 3 files changed, 66 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 70fba27..614de55 100644 > > > --- a/arch/arm/include/asm/arch-armada100/armada100.h > > > +++ b/arch/arm/include/asm/arch-armada100/armada100.h > > > @@ -68,6 +68,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 7c4df53..5fdc97b 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..f3d8aef > > > --- /dev/null > > > +++ b/drivers/usb/host/ehci-armada100.c > > > @@ -0,0 +1,64 @@ > > > +/* > > > + * (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 <asm/arch/utmi-armada100.h> > > > + > > > +/* > > > + * EHCI host controller init > > > + */ > > > +int ehci_hcd_init(void) > > > +{ > > > + if (utmi_init() < 0) > > > + return -1; > > > + > > > + hccr = (struct ehci_hccr *)(ARMD1_USB_HOST_BASE + 0x100); > > > + hcor = (struct ehci_hcor *)((uint32_t) hccr > > > + + HC_LENGTH(ehci_readl(&hccr->cr_capbase))); > > > + > > > + debug("armada100-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; > > > +} > > > -- > > > 1.7.7.2 > > Oh dang, I picked them into -usb too. Shall I drop them ? Ideally USB-custodian should pick them up :-). I am sorry but I did it with pre-discussion with Wolfgang. May be Wolfgang can suggest something on this. Regards.. Prafulla . . .
> > -----Original Message----- > > From: Marek Vasut [mailto:marex@denx.de] > > Sent: 02 March 2012 16:07 > > To: Prafulla Wadaskar > > Cc: Ajay Bhargav; linux@bohmer.net; u-boot@lists.denx.de > > Subject: Re: [v3 2/3] USB: Armada100: EHCI Driver for Armada100 SOCs > > > > > > -----Original Message----- > > > > From: Ajay Bhargav [mailto:ajay.bhargav@einfochips.com] > > > > Sent: 13 February 2012 18:58 > > > > To: linux@bohmer.net > > > > Cc: Prafulla Wadaskar; marek.vasut@gmail.com; u- > > > > boot@lists.denx.de; > > > > > > Ajay Bhargav > > > > Subject: [v3 2/3] USB: Armada100: EHCI Driver for Armada100 SOCs > > > > > > > > This patch adds support for USB EHCI driver for Armada100 SOCs. > > > > > > > > Signed-off-by: Ajay Bhargav <ajay.bhargav@einfochips.com> > > > > --- > > > > > > > > Changes for v2: > > > > - Fix typo for SOC name > > > > - change printf to debug > > > > > > > > Changes for v3: > > > > - Fix type in patch subject > > > > - header file include updated > > > > > > > > arch/arm/include/asm/arch-armada100/armada100.h | 1 + > > > > drivers/usb/host/Makefile | 1 + > > > > drivers/usb/host/ehci-armada100.c | 64 > > > > > > > > +++++++++++++++++++++++ > > > > > > > > 3 files changed, 66 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 70fba27..614de55 100644 > > > > --- a/arch/arm/include/asm/arch-armada100/armada100.h > > > > +++ b/arch/arm/include/asm/arch-armada100/armada100.h > > > > @@ -68,6 +68,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 7c4df53..5fdc97b 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..f3d8aef > > > > --- /dev/null > > > > +++ b/drivers/usb/host/ehci-armada100.c > > > > @@ -0,0 +1,64 @@ > > > > +/* > > > > + * (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 <asm/arch/utmi-armada100.h> > > > > + > > > > +/* > > > > + * EHCI host controller init > > > > + */ > > > > +int ehci_hcd_init(void) > > > > +{ > > > > + if (utmi_init() < 0) > > > > + return -1; > > > > + > > > > + hccr = (struct ehci_hccr *)(ARMD1_USB_HOST_BASE + 0x100); > > > > + hcor = (struct ehci_hcor *)((uint32_t) hccr > > > > + + HC_LENGTH(ehci_readl(&hccr->cr_capbase))); > > > > + > > > > + debug("armada100-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; > > > > +} > > > > -- > > > > 1.7.7.2 > > > > Oh dang, I picked them into -usb too. Shall I drop them ? > > Ideally USB-custodian should pick them up :-). I am sorry but I did it with > pre-discussion with Wolfgang. > > May be Wolfgang can suggest something on this. Hey, you pick it this time, I already dropped them from my tree :) Cheers! M
diff --git a/arch/arm/include/asm/arch-armada100/armada100.h b/arch/arm/include/asm/arch-armada100/armada100.h index 70fba27..614de55 100644 --- a/arch/arm/include/asm/arch-armada100/armada100.h +++ b/arch/arm/include/asm/arch-armada100/armada100.h @@ -68,6 +68,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 7c4df53..5fdc97b 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..f3d8aef --- /dev/null +++ b/drivers/usb/host/ehci-armada100.c @@ -0,0 +1,64 @@ +/* + * (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 <asm/arch/utmi-armada100.h> + +/* + * EHCI host controller init + */ +int ehci_hcd_init(void) +{ + if (utmi_init() < 0) + return -1; + + hccr = (struct ehci_hccr *)(ARMD1_USB_HOST_BASE + 0x100); + hcor = (struct ehci_hcor *)((uint32_t) hccr + + HC_LENGTH(ehci_readl(&hccr->cr_capbase))); + + debug("armada100-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> --- Changes for v2: - Fix typo for SOC name - change printf to debug Changes for v3: - Fix type in patch subject - header file include updated arch/arm/include/asm/arch-armada100/armada100.h | 1 + drivers/usb/host/Makefile | 1 + drivers/usb/host/ehci-armada100.c | 64 +++++++++++++++++++++++ 3 files changed, 66 insertions(+), 0 deletions(-) create mode 100644 drivers/usb/host/ehci-armada100.c