* [U-Boot] [PATCH 1/4 v2] DA830: Add pinmux for USB0_DRVVBUS
@ 2009-11-13 6:31 Ajay Kumar Gupta
2009-11-13 6:31 ` [U-Boot] [PATCH 2/4 v2] DA8xx: Add GPIO register definitions Ajay Kumar Gupta
0 siblings, 1 reply; 11+ messages in thread
From: Ajay Kumar Gupta @ 2009-11-13 6:31 UTC (permalink / raw)
To: u-boot
USB0_DRVVBUS pinmux configuration is required for USB functinality
in uboot.
Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Swaminathan S <swami.iyer@ti.com>
---
Created and tested against latest uboot-ti/master branch.
Changes from v1:
- Added GPIO definitions
- Used GPIO register pointer to program GPIO
- Fixed alignment and tabs
- Used SYSCONFIG pointer to program USB PHY in chipcfg2 register
board/davinci/da830evm/da830evm.c | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/board/davinci/da830evm/da830evm.c b/board/davinci/da830evm/da830evm.c
index bb8cc3c..7cf6013 100644
--- a/board/davinci/da830evm/da830evm.c
+++ b/board/davinci/da830evm/da830evm.c
@@ -65,6 +65,11 @@ const struct pinmux_config i2c_pins[] = {
{ pinmux[9], 2, 4 }
};
+/* USB0_DRVVBUS pin muxer settings */
+const struct pinmux_config usb_pins[] = {
+ { pinmux[9], 1, 1 }
+};
+
int board_init(void)
{
#ifndef CONFIG_USE_IRQ
@@ -118,6 +123,9 @@ int board_init(void)
if (davinci_configure_pin_mux(i2c_pins, ARRAY_SIZE(i2c_pins)) != 0)
return 1;
+ if (davinci_configure_pin_mux(usb_pins, ARRAY_SIZE(usb_pins)) != 0)
+ return 1;
+
/* enable the console UART */
writel((DAVINCI_UART_PWREMU_MGMT_FREE | DAVINCI_UART_PWREMU_MGMT_URRST |
DAVINCI_UART_PWREMU_MGMT_UTRST),
--
1.6.2.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [U-Boot] [PATCH 2/4 v2] DA8xx: Add GPIO register definitions
2009-11-13 6:31 [U-Boot] [PATCH 1/4 v2] DA830: Add pinmux for USB0_DRVVBUS Ajay Kumar Gupta
@ 2009-11-13 6:31 ` Ajay Kumar Gupta
2009-11-13 6:31 ` [U-Boot] [PATCH 3/4 v2] DA8xx: Add MUSB host support Ajay Kumar Gupta
0 siblings, 1 reply; 11+ messages in thread
From: Ajay Kumar Gupta @ 2009-11-13 6:31 UTC (permalink / raw)
To: u-boot
Added DA8xx GPIO base addresses in gpio_defs.h and pointers
to different BANKs which can be used to program GPIOs.
Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Swaminathan S <swami.iyer@ti.com>
---
include/asm-arm/arch-davinci/gpio_defs.h | 14 ++++++++++++++
1 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/include/asm-arm/arch-davinci/gpio_defs.h b/include/asm-arm/arch-davinci/gpio_defs.h
index ff62976..1be2ac2 100644
--- a/include/asm-arm/arch-davinci/gpio_defs.h
+++ b/include/asm-arm/arch-davinci/gpio_defs.h
@@ -22,12 +22,21 @@
#ifndef _GPIO_DEFS_H_
#define _GPIO_DEFS_H_
+#ifndef CONFIG_SOC_DA8XX
#define DAVINCI_GPIO_BINTEN 0x01C67008
#define DAVINCI_GPIO_BANK01 0x01C67010
#define DAVINCI_GPIO_BANK23 0x01C67038
#define DAVINCI_GPIO_BANK45 0x01C67060
#define DAVINCI_GPIO_BANK67 0x01C67088
+#else /* CONFIG_SOC_DA8XX */
+#define DAVINCI_GPIO_BINTEN 0x01E26008
+#define DAVINCI_GPIO_BANK01 0x01E26010
+#define DAVINCI_GPIO_BANK23 0x01E26038
+#define DAVINCI_GPIO_BANK45 0x01E26060
+#define DAVINCI_GPIO_BANK67 0x01E26088
+#endif /* CONFIG_SOC_DA8XX */
+
struct davinci_gpio {
unsigned int dir;
unsigned int out_data;
@@ -49,4 +58,9 @@ struct davinci_gpio_bank {
unsigned long base;
};
+#define davinci_gpio_bank01 ((struct davinci_gpio *)DAVINCI_GPIO_BANK01)
+#define davinci_gpio_bank23 ((struct davinci_gpio *)DAVINCI_GPIO_BANK23)
+#define davinci_gpio_bank45 ((struct davinci_gpio *)DAVINCI_GPIO_BANK45)
+#define davinci_gpio_bank67 ((struct davinci_gpio *)DAVINCI_GPIO_BANK67)
+
#endif
--
1.6.2.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [U-Boot] [PATCH 3/4 v2] DA8xx: Add MUSB host support
2009-11-13 6:31 ` [U-Boot] [PATCH 2/4 v2] DA8xx: Add GPIO register definitions Ajay Kumar Gupta
@ 2009-11-13 6:31 ` Ajay Kumar Gupta
2009-11-13 6:31 ` [U-Boot] [PATCH 4/4 v2] DA830: Add usb config Ajay Kumar Gupta
2009-11-13 12:05 ` [U-Boot] [PATCH 3/4 v2] DA8xx: Add MUSB host support Paulraj, Sandeep
0 siblings, 2 replies; 11+ messages in thread
From: Ajay Kumar Gupta @ 2009-11-13 6:31 UTC (permalink / raw)
To: u-boot
Tested USB host functionality on DA830 EVM.
Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Swaminathan S <swami.iyer@ti.com>
---
drivers/usb/musb/Makefile | 1 +
drivers/usb/musb/da8xx.c | 138 +++++++++++++++++++++++++++++++++++++++++++++
drivers/usb/musb/da8xx.h | 79 ++++++++++++++++++++++++++
include/usb.h | 3 +-
4 files changed, 220 insertions(+), 1 deletions(-)
create mode 100644 drivers/usb/musb/da8xx.c
create mode 100644 drivers/usb/musb/da8xx.h
diff --git a/drivers/usb/musb/Makefile b/drivers/usb/musb/Makefile
index 09e0a5f..eb4d8fd 100644
--- a/drivers/usb/musb/Makefile
+++ b/drivers/usb/musb/Makefile
@@ -27,6 +27,7 @@ LIB := $(obj)libusb_musb.a
COBJS-$(CONFIG_MUSB_HCD) += musb_hcd.o musb_core.o
COBJS-$(CONFIG_USB_DAVINCI) += davinci.o
+COBJS-$(CONFIG_USB_DA8XX) += da8xx.o
COBJS := $(COBJS-y)
SRCS := $(COBJS:.o=.c)
diff --git a/drivers/usb/musb/da8xx.c b/drivers/usb/musb/da8xx.c
new file mode 100644
index 0000000..5b02e33
--- /dev/null
+++ b/drivers/usb/musb/da8xx.c
@@ -0,0 +1,138 @@
+/*
+ * da8xx.c - TI's DA8xx platform specific usb wrapper functions.
+ *
+ * Author: Ajay Kumar Gupta <ajay.gupta@ti.com>
+ *
+ * Based on drivers/usb/musb/davinci.c
+ *
+ * Copyright (c) 2009 Texas Instruments Incorporated
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the license found in the file
+ * named COPYING that should have accompanied this file.
+ *
+ * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+#include <common.h>
+#include <asm/arch/hardware.h>
+#include <asm/arch/gpio_defs.h>
+
+#include "da8xx.h"
+
+/* MUSB platform configuration */
+struct musb_config musb_cfg = {
+ (struct musb_regs *)DA8XX_USB_OTG_CORE_BASE,
+ DA8XX_USB_OTG_TIMEOUT,
+ 0
+};
+
+/*
+ * This function enables VBUS by driving the GPIO Bank4 Pin 15 high.
+ */
+static void enable_vbus(void)
+{
+ u32 value;
+
+ /* configure GPIO bank4 pin 15 in output direction */
+ value = readl(&davinci_gpio_bank45->dir);
+ writel((value & (~DA8XX_USB_VBUS_GPIO)), &davinci_gpio_bank45->dir);
+
+ /* set GPIO bank4 pin 15 high to drive VBUS */
+ value = readl(&davinci_gpio_bank45->set_data);
+ writel((value | DA8XX_USB_VBUS_GPIO), &davinci_gpio_bank45->set_data);
+}
+
+/*
+ * Enable the usb0 phy. This initialization procedure is explained in
+ * the DA8xx USB user guide document.
+ */
+static u8 phy_on(void)
+{
+ u32 timeout;
+ u32 cfgchip2;
+
+ cfgchip2 = readl(&davinci_syscfg_regs->cfgchip2);
+
+ cfgchip2 &= ~(CFGCHIP2_RESET | CFGCHIP2_PHYPWRDN | CFGCHIP2_OTGPWRDN |
+ CFGCHIP2_OTGMODE | CFGCHIP2_REFFREQ);
+ cfgchip2 |= CFGCHIP2_SESENDEN | CFGCHIP2_VBDTCTEN | CFGCHIP2_PHY_PLLON |
+ CFGCHIP2_REFFREQ_24MHZ;
+
+ writel(cfgchip2, &davinci_syscfg_regs->cfgchip2);
+
+ /* wait until the usb phy pll locks */
+ timeout = musb_cfg.timeout;
+ while (timeout--)
+ if (readl(&davinci_syscfg_regs->cfgchip2) & CFGCHIP2_PHYCLKGD)
+ return 1;
+
+ /* USB phy was not turned on */
+ return 0;
+}
+
+/*
+ * Disable the usb phy
+ */
+static void phy_off(void)
+{
+ u32 cfgchip2;
+
+ /*
+ * Power down the on-chip PHY.
+ */
+ cfgchip2 = readl(&davinci_syscfg_regs->cfgchip2);
+ cfgchip2 &= ~CFGCHIP2_PHY_PLLON;
+ cfgchip2 |= CFGCHIP2_PHYPWRDN | CFGCHIP2_OTGPWRDN;
+ writel(cfgchip2, &davinci_syscfg_regs->cfgchip2);
+}
+
+/*
+ * This function performs DA8xx platform specific initialization for usb0.
+ */
+int musb_platform_init(void)
+{
+ u32 revision;
+
+ /* enable psc for usb2.0 */
+ lpsc_on(33);
+
+ /* enable usb vbus */
+ enable_vbus();
+
+ /* reset the controller */
+ writel(0x1, (DA8XX_USB_OTG_BASE + DA8XX_USB_CTRL_REG));
+ udelay(5000);
+
+ /* start the on-chip usb phy and its pll */
+ if (phy_on() == 0)
+ return -1;
+
+ /* Returns zero if e.g. not clocked */
+ revision = readl(DA8XX_USB_OTG_BASE + DA8XX_USB_VERSION_REG);
+ if (revision == 0)
+ return -1;
+
+ /* Disable all interrupts */
+ writel((DA8XX_USB_USBINT_MASK | DA8XX_USB_TXINT_MASK |
+ DA8XX_USB_RXINT_MASK),
+ (DA8XX_USB_OTG_BASE + DA8XX_USB_INT_MASK_SET_REG));
+ return 0;
+}
+
+/*
+ * This function performs DA8xx platform specific deinitialization for usb0.
+ */
+void musb_platform_deinit(void)
+{
+ /* Turn of the phy */
+ phy_off();
+
+ /* flush any interrupts */
+ writel((DA8XX_USB_USBINT_MASK | DA8XX_USB_TXINT_MASK |
+ DA8XX_USB_RXINT_MASK),
+ (DA8XX_USB_OTG_BASE + DA8XX_USB_INT_MASK_CLR_REG));
+ writel(0, (DA8XX_USB_OTG_BASE + DA8XX_USB_EOI_REG));
+}
diff --git a/drivers/usb/musb/da8xx.h b/drivers/usb/musb/da8xx.h
new file mode 100644
index 0000000..7d36588
--- /dev/null
+++ b/drivers/usb/musb/da8xx.h
@@ -0,0 +1,79 @@
+/*
+ * da8xx.h -- TI's DA8xx platform specific usb wrapper definitions.
+ *
+ * Author: Ajay Kumar Gupta <ajay.gupta@ti.com>
+ *
+ * Based on drivers/usb/musb/davinci.h
+ *
+ * Copyright (c) 2009 Texas Instruments Incorporated
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the license found in the file
+ * named COPYING that should have accompanied this file.
+ *
+ * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+#ifndef __DA8XX_MUSB_H__
+#define __DA8XX_MUSB_H__
+
+#include "musb_core.h"
+
+/* extern functions */
+extern void lpsc_on(unsigned int id);
+
+/* Base address of da8xx usb0 wrapper */
+#define DA8XX_USB_OTG_BASE 0x01E00000
+
+/* Base address of da8xx musb core */
+#define DA8XX_USB_OTG_CORE_BASE (DA8XX_USB_OTG_BASE + 0x400)
+
+/* Timeout for DA8xx usb module */
+#define DA8XX_USB_OTG_TIMEOUT 0x3FFFFFF
+
+/* For now include usb OTG module registers here */
+#define DA8XX_USB_VERSION_REG 0x00
+#define DA8XX_USB_CTRL_REG 0x04
+#define DA8XX_USB_INT_MASK_SET_REG 0x30
+#define DA8XX_USB_INT_MASK_CLR_REG 0x34
+#define DA8XX_USB_EOI_REG 0x3c
+
+#define DA8XX_USB_TX_ENDPTS_MASK 0x1f /* ep0 + 4 tx */
+#define DA8XX_USB_RX_ENDPTS_MASK 0x1e /* 4 rx */
+#define DA8XX_USB_TXINT_SHIFT 0
+#define DA8XX_USB_RXINT_SHIFT 8
+
+#define DA8XX_USB_USBINT_MASK 0x01ff0000 /* 8 Mentor, DRVVBUS */
+#define DA8XX_USB_TXINT_MASK \
+ (DA8XX_USB_TX_ENDPTS_MASK << DA8XX_USB_TXINT_SHIFT)
+#define DA8XX_USB_RXINT_MASK \
+ (DA8XX_USB_RX_ENDPTS_MASK << DA8XX_USB_RXINT_SHIFT)
+
+/* DA8xx CFGCHIP2 (USB 2.0 PHY Control) register bits */
+#define CFGCHIP2_PHYCLKGD (1 << 17)
+#define CFGCHIP2_VBUSSENSE (1 << 16)
+#define CFGCHIP2_RESET (1 << 15)
+#define CFGCHIP2_OTGMODE (3 << 13)
+#define CFGCHIP2_NO_OVERRIDE (0 << 13)
+#define CFGCHIP2_FORCE_HOST (1 << 13)
+#define CFGCHIP2_FORCE_DEVICE (2 << 13)
+#define CFGCHIP2_FORCE_HOST_VBUS_LOW (3 << 13)
+#define CFGCHIP2_USB1PHYCLKMUX (1 << 12)
+#define CFGCHIP2_USB2PHYCLKMUX (1 << 11)
+#define CFGCHIP2_PHYPWRDN (1 << 10)
+#define CFGCHIP2_OTGPWRDN (1 << 9)
+#define CFGCHIP2_DATPOL (1 << 8)
+#define CFGCHIP2_USB1SUSPENDM (1 << 7)
+#define CFGCHIP2_PHY_PLLON (1 << 6) /* override PLL suspend */
+#define CFGCHIP2_SESENDEN (1 << 5) /* Vsess_end comparator */
+#define CFGCHIP2_VBDTCTEN (1 << 4) /* Vbus comparator */
+#define CFGCHIP2_REFFREQ (0xf << 0)
+#define CFGCHIP2_REFFREQ_12MHZ (1 << 0)
+#define CFGCHIP2_REFFREQ_24MHZ (2 << 0)
+#define CFGCHIP2_REFFREQ_48MHZ (3 << 0)
+
+#define DA8XX_USB_VBUS_GPIO (1 << 15)
+#endif /* __DA8XX_MUSB_H__ */
+
diff --git a/include/usb.h b/include/usb.h
index 7c47098..7c56ace 100644
--- a/include/usb.h
+++ b/include/usb.h
@@ -183,7 +183,8 @@ struct usb_device {
#if defined(CONFIG_USB_UHCI) || defined(CONFIG_USB_OHCI) || \
defined(CONFIG_USB_EHCI) || defined(CONFIG_USB_OHCI_NEW) || \
defined(CONFIG_USB_SL811HS) || defined(CONFIG_USB_ISP116X_HCD) || \
- defined(CONFIG_USB_R8A66597_HCD) || defined(CONFIG_USB_DAVINCI)
+ defined(CONFIG_USB_R8A66597_HCD) || defined(CONFIG_USB_DAVINCI) || \
+ defined(CONFIG_USB_DA8XX)
int usb_lowlevel_init(void);
int usb_lowlevel_stop(void);
--
1.6.2.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [U-Boot] [PATCH 4/4 v2] DA830: Add usb config
2009-11-13 6:31 ` [U-Boot] [PATCH 3/4 v2] DA8xx: Add MUSB host support Ajay Kumar Gupta
@ 2009-11-13 6:31 ` Ajay Kumar Gupta
2009-11-13 12:05 ` [U-Boot] [PATCH 3/4 v2] DA8xx: Add MUSB host support Paulraj, Sandeep
1 sibling, 0 replies; 11+ messages in thread
From: Ajay Kumar Gupta @ 2009-11-13 6:31 UTC (permalink / raw)
To: u-boot
Adding USB configuration. Default is set for USB MSC host.
Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Swaminathan S <swami.iyer@ti.com>
---
include/configs/da830evm.h | 38 +++++++++++++++++++++++++++++++++-----
1 files changed, 33 insertions(+), 5 deletions(-)
diff --git a/include/configs/da830evm.h b/include/configs/da830evm.h
index 38e2ce1..432cd57 100644
--- a/include/configs/da830evm.h
+++ b/include/configs/da830evm.h
@@ -149,6 +149,11 @@
#define CONFIG_SYS_ENV_SPI_MAX_HZ CONFIG_SF_DEFAULT_SPEED
#endif
+/*
+ * USB configuration
+ */
+#define CONFIG_USB_DA8XX /* Platform hookup to MUSB controller */
+#define CONFIG_MUSB_HCD
/*
* U-Boot general configuration
@@ -234,10 +239,33 @@
#endif
#ifdef CONFIG_USB_DA8XX
-#define CONFIG_CMD_USB /* include support for usb */
-#define CONFIG_CMD_STORAGE /* include support for usb */
-#define CONFIG_CMD_FAT /* include support for FAT/storage*/
-#define CONFIG_DOS_PARTITION /* include support for FAT/storage*/
-#endif
+#ifdef CONFIG_MUSB_HCD /* include support for usb host */
+#define CONFIG_CMD_USB /* include support for usb cmd */
+
+#define CONFIG_USB_STORAGE /* MSC class support */
+#define CONFIG_CMD_STORAGE /* inclue support for usb-storage cmd */
+#define CONFIG_CMD_FAT /* inclue support for FAT/storage */
+#define CONFIG_DOS_PARTITION /* inclue support for FAT/storage */
+
+#ifdef CONFIG_USB_KEYBOARD /* HID class support */
+#define CONFIG_SYS_USB_EVENT_POLL
+#define CONFIG_PREBOOT "usb start"
+#endif /* CONFIG_USB_KEYBOARD */
+
+#endif /* CONFIG_MUSB_HCD */
+
+#ifdef CONFIG_MUSB_UDC
+/* USB device configuration */
+#define CONFIG_USB_DEVICE 1
+#define CONFIG_USB_TTY 1
+#define CONFIG_SYS_CONSOLE_IS_IN_ENV 1
+/* Change these to suit your needs */
+#define CONFIG_USBD_VENDORID 0x0451
+#define CONFIG_USBD_PRODUCTID 0x5678
+#define CONFIG_USBD_MANUFACTURER "Texas Instruments"
+#define CONFIG_USBD_PRODUCT_NAME "DA830EVM"
+#endif /* CONFIG_MUSB_UDC */
+
+#endif /* CONFIG_USB_DA8XX */
#endif /* __CONFIG_H */
--
1.6.2.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [U-Boot] [PATCH 3/4 v2] DA8xx: Add MUSB host support
2009-11-13 6:31 ` [U-Boot] [PATCH 3/4 v2] DA8xx: Add MUSB host support Ajay Kumar Gupta
2009-11-13 6:31 ` [U-Boot] [PATCH 4/4 v2] DA830: Add usb config Ajay Kumar Gupta
@ 2009-11-13 12:05 ` Paulraj, Sandeep
2009-11-13 12:23 ` Gupta, Ajay Kumar
` (2 more replies)
1 sibling, 3 replies; 11+ messages in thread
From: Paulraj, Sandeep @ 2009-11-13 12:05 UTC (permalink / raw)
To: u-boot
Ajay,
We have a problem with your licensing
> Subject: [U-Boot] [PATCH 3/4 v2] DA8xx: Add MUSB host support
>
> Tested USB host functionality on DA830 EVM.
>
> Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
> Signed-off-by: Swaminathan S <swami.iyer@ti.com>
> ---
> drivers/usb/musb/Makefile | 1 +
> drivers/usb/musb/da8xx.c | 138
> +++++++++++++++++++++++++++++++++++++++++++++
> drivers/usb/musb/da8xx.h | 79 ++++++++++++++++++++++++++
> include/usb.h | 3 +-
> 4 files changed, 220 insertions(+), 1 deletions(-)
> create mode 100644 drivers/usb/musb/da8xx.c
> create mode 100644 drivers/usb/musb/da8xx.h
>
> diff --git a/drivers/usb/musb/Makefile b/drivers/usb/musb/Makefile
> index 09e0a5f..eb4d8fd 100644
> --- a/drivers/usb/musb/Makefile
> +++ b/drivers/usb/musb/Makefile
> @@ -27,6 +27,7 @@ LIB := $(obj)libusb_musb.a
>
> COBJS-$(CONFIG_MUSB_HCD) += musb_hcd.o musb_core.o
> COBJS-$(CONFIG_USB_DAVINCI) += davinci.o
> +COBJS-$(CONFIG_USB_DA8XX) += da8xx.o
>
> COBJS := $(COBJS-y)
> SRCS := $(COBJS:.o=.c)
> diff --git a/drivers/usb/musb/da8xx.c b/drivers/usb/musb/da8xx.c
> new file mode 100644
> index 0000000..5b02e33
> --- /dev/null
> +++ b/drivers/usb/musb/da8xx.c
> @@ -0,0 +1,138 @@
> +/*
> + * da8xx.c - TI's DA8xx platform specific usb wrapper functions.
> + *
> + * Author: Ajay Kumar Gupta <ajay.gupta@ti.com>
> + *
> + * Based on drivers/usb/musb/davinci.c
> + *
> + * Copyright (c) 2009 Texas Instruments Incorporated
> + *
> + * This package is free software; you can redistribute it and/or
> + * modify it under the terms of the license found in the file
> + * named COPYING that should have accompanied this file.
> + *
> + * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
> + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
> + * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
This is not going to work. I have discussed offline with Wolfgang and Tom.
This is going to probably get a NAK from both of them unless they have had a change of heart in the last month.
I know what you have done is in response to a possible U-Boot moving to GPL v3.
> + *
> + */
> +#include <common.h>
> +#include <asm/arch/hardware.h>
> +#include <asm/arch/gpio_defs.h>
> +
> +#include "da8xx.h"
> +
> +/* MUSB platform configuration */
> +struct musb_config musb_cfg = {
> + (struct musb_regs *)DA8XX_USB_OTG_CORE_BASE,
> + DA8XX_USB_OTG_TIMEOUT,
> + 0
> +};
> +
> +/*
> + * This function enables VBUS by driving the GPIO Bank4 Pin 15 high.
> + */
> +static void enable_vbus(void)
> +{
> + u32 value;
> +
> + /* configure GPIO bank4 pin 15 in output direction */
> + value = readl(&davinci_gpio_bank45->dir);
> + writel((value & (~DA8XX_USB_VBUS_GPIO)), &davinci_gpio_bank45->dir);
> +
> + /* set GPIO bank4 pin 15 high to drive VBUS */
> + value = readl(&davinci_gpio_bank45->set_data);
> + writel((value | DA8XX_USB_VBUS_GPIO), &davinci_gpio_bank45-
> >set_data);
> +}
> +
> +/*
> + * Enable the usb0 phy. This initialization procedure is explained in
> + * the DA8xx USB user guide document.
> + */
> +static u8 phy_on(void)
> +{
> + u32 timeout;
> + u32 cfgchip2;
> +
> + cfgchip2 = readl(&davinci_syscfg_regs->cfgchip2);
> +
> + cfgchip2 &= ~(CFGCHIP2_RESET | CFGCHIP2_PHYPWRDN | CFGCHIP2_OTGPWRDN
> |
> + CFGCHIP2_OTGMODE | CFGCHIP2_REFFREQ);
> + cfgchip2 |= CFGCHIP2_SESENDEN | CFGCHIP2_VBDTCTEN |
> CFGCHIP2_PHY_PLLON |
> + CFGCHIP2_REFFREQ_24MHZ;
> +
> + writel(cfgchip2, &davinci_syscfg_regs->cfgchip2);
> +
> + /* wait until the usb phy pll locks */
> + timeout = musb_cfg.timeout;
> + while (timeout--)
> + if (readl(&davinci_syscfg_regs->cfgchip2) & CFGCHIP2_PHYCLKGD)
> + return 1;
> +
> + /* USB phy was not turned on */
> + return 0;
> +}
> +
> +/*
> + * Disable the usb phy
> + */
> +static void phy_off(void)
> +{
> + u32 cfgchip2;
> +
> + /*
> + * Power down the on-chip PHY.
> + */
> + cfgchip2 = readl(&davinci_syscfg_regs->cfgchip2);
> + cfgchip2 &= ~CFGCHIP2_PHY_PLLON;
> + cfgchip2 |= CFGCHIP2_PHYPWRDN | CFGCHIP2_OTGPWRDN;
> + writel(cfgchip2, &davinci_syscfg_regs->cfgchip2);
> +}
> +
> +/*
> + * This function performs DA8xx platform specific initialization for
> usb0.
> + */
> +int musb_platform_init(void)
> +{
> + u32 revision;
> +
> + /* enable psc for usb2.0 */
> + lpsc_on(33);
> +
> + /* enable usb vbus */
> + enable_vbus();
> +
> + /* reset the controller */
> + writel(0x1, (DA8XX_USB_OTG_BASE + DA8XX_USB_CTRL_REG));
> + udelay(5000);
> +
> + /* start the on-chip usb phy and its pll */
> + if (phy_on() == 0)
> + return -1;
> +
> + /* Returns zero if e.g. not clocked */
> + revision = readl(DA8XX_USB_OTG_BASE + DA8XX_USB_VERSION_REG);
> + if (revision == 0)
> + return -1;
> +
> + /* Disable all interrupts */
> + writel((DA8XX_USB_USBINT_MASK | DA8XX_USB_TXINT_MASK |
> + DA8XX_USB_RXINT_MASK),
> + (DA8XX_USB_OTG_BASE + DA8XX_USB_INT_MASK_SET_REG));
> + return 0;
> +}
> +
> +/*
> + * This function performs DA8xx platform specific deinitialization for
> usb0.
> + */
> +void musb_platform_deinit(void)
> +{
> + /* Turn of the phy */
> + phy_off();
> +
> + /* flush any interrupts */
> + writel((DA8XX_USB_USBINT_MASK | DA8XX_USB_TXINT_MASK |
> + DA8XX_USB_RXINT_MASK),
> + (DA8XX_USB_OTG_BASE + DA8XX_USB_INT_MASK_CLR_REG));
> + writel(0, (DA8XX_USB_OTG_BASE + DA8XX_USB_EOI_REG));
> +}
> diff --git a/drivers/usb/musb/da8xx.h b/drivers/usb/musb/da8xx.h
> new file mode 100644
> index 0000000..7d36588
> --- /dev/null
> +++ b/drivers/usb/musb/da8xx.h
> @@ -0,0 +1,79 @@
> +/*
> + * da8xx.h -- TI's DA8xx platform specific usb wrapper definitions.
> + *
> + * Author: Ajay Kumar Gupta <ajay.gupta@ti.com>
> + *
> + * Based on drivers/usb/musb/davinci.h
> + *
> + * Copyright (c) 2009 Texas Instruments Incorporated
> + *
> + * This package is free software; you can redistribute it and/or
> + * modify it under the terms of the license found in the file
> + * named COPYING that should have accompanied this file.
> + *
> + * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
> + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
> + * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
> + *
> + */
Same here
> +#ifndef __DA8XX_MUSB_H__
> +#define __DA8XX_MUSB_H__
> +
> +#include "musb_core.h"
> +
> +/* extern functions */
> +extern void lpsc_on(unsigned int id);
> +
> +/* Base address of da8xx usb0 wrapper */
> +#define DA8XX_USB_OTG_BASE 0x01E00000
> +
> +/* Base address of da8xx musb core */
> +#define DA8XX_USB_OTG_CORE_BASE (DA8XX_USB_OTG_BASE + 0x400)
> +
> +/* Timeout for DA8xx usb module */
> +#define DA8XX_USB_OTG_TIMEOUT 0x3FFFFFF
> +
> +/* For now include usb OTG module registers here */
> +#define DA8XX_USB_VERSION_REG 0x00
> +#define DA8XX_USB_CTRL_REG 0x04
> +#define DA8XX_USB_INT_MASK_SET_REG 0x30
> +#define DA8XX_USB_INT_MASK_CLR_REG 0x34
> +#define DA8XX_USB_EOI_REG 0x3c
> +
> +#define DA8XX_USB_TX_ENDPTS_MASK 0x1f /* ep0 + 4 tx */
> +#define DA8XX_USB_RX_ENDPTS_MASK 0x1e /* 4 rx */
> +#define DA8XX_USB_TXINT_SHIFT 0
> +#define DA8XX_USB_RXINT_SHIFT 8
> +
> +#define DA8XX_USB_USBINT_MASK 0x01ff0000 /* 8 Mentor, DRVVBUS */
> +#define DA8XX_USB_TXINT_MASK \
> + (DA8XX_USB_TX_ENDPTS_MASK << DA8XX_USB_TXINT_SHIFT)
> +#define DA8XX_USB_RXINT_MASK \
> + (DA8XX_USB_RX_ENDPTS_MASK << DA8XX_USB_RXINT_SHIFT)
> +
> +/* DA8xx CFGCHIP2 (USB 2.0 PHY Control) register bits */
> +#define CFGCHIP2_PHYCLKGD (1 << 17)
> +#define CFGCHIP2_VBUSSENSE (1 << 16)
> +#define CFGCHIP2_RESET (1 << 15)
> +#define CFGCHIP2_OTGMODE (3 << 13)
> +#define CFGCHIP2_NO_OVERRIDE (0 << 13)
> +#define CFGCHIP2_FORCE_HOST (1 << 13)
> +#define CFGCHIP2_FORCE_DEVICE (2 << 13)
> +#define CFGCHIP2_FORCE_HOST_VBUS_LOW (3 << 13)
> +#define CFGCHIP2_USB1PHYCLKMUX (1 << 12)
> +#define CFGCHIP2_USB2PHYCLKMUX (1 << 11)
> +#define CFGCHIP2_PHYPWRDN (1 << 10)
> +#define CFGCHIP2_OTGPWRDN (1 << 9)
> +#define CFGCHIP2_DATPOL (1 << 8)
> +#define CFGCHIP2_USB1SUSPENDM (1 << 7)
> +#define CFGCHIP2_PHY_PLLON (1 << 6) /* override PLL suspend */
> +#define CFGCHIP2_SESENDEN (1 << 5) /* Vsess_end comparator */
> +#define CFGCHIP2_VBDTCTEN (1 << 4) /* Vbus comparator */
> +#define CFGCHIP2_REFFREQ (0xf << 0)
> +#define CFGCHIP2_REFFREQ_12MHZ (1 << 0)
> +#define CFGCHIP2_REFFREQ_24MHZ (2 << 0)
> +#define CFGCHIP2_REFFREQ_48MHZ (3 << 0)
> +
> +#define DA8XX_USB_VBUS_GPIO (1 << 15)
> +#endif /* __DA8XX_MUSB_H__ */
> +
> diff --git a/include/usb.h b/include/usb.h
> index 7c47098..7c56ace 100644
> --- a/include/usb.h
> +++ b/include/usb.h
> @@ -183,7 +183,8 @@ struct usb_device {
> #if defined(CONFIG_USB_UHCI) || defined(CONFIG_USB_OHCI) || \
> defined(CONFIG_USB_EHCI) || defined(CONFIG_USB_OHCI_NEW) || \
> defined(CONFIG_USB_SL811HS) || defined(CONFIG_USB_ISP116X_HCD) || \
> - defined(CONFIG_USB_R8A66597_HCD) || defined(CONFIG_USB_DAVINCI)
> + defined(CONFIG_USB_R8A66597_HCD) || defined(CONFIG_USB_DAVINCI) || \
> + defined(CONFIG_USB_DA8XX)
>
> int usb_lowlevel_init(void);
> int usb_lowlevel_stop(void);
> --
> 1.6.2.4
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot] [PATCH 3/4 v2] DA8xx: Add MUSB host support
2009-11-13 12:05 ` [U-Boot] [PATCH 3/4 v2] DA8xx: Add MUSB host support Paulraj, Sandeep
@ 2009-11-13 12:23 ` Gupta, Ajay Kumar
2009-11-13 14:00 ` Tom
2009-11-17 23:28 ` Wolfgang Denk
2 siblings, 0 replies; 11+ messages in thread
From: Gupta, Ajay Kumar @ 2009-11-13 12:23 UTC (permalink / raw)
To: u-boot
Hi,
> -----Original Message-----
> From: Paulraj, Sandeep
> Sent: Friday, November 13, 2009 5:36 PM
> To: Gupta, Ajay Kumar; u-boot at lists.denx.de; Tom
> Cc: Subbrathnam, Swaminathan; Wolfgang Denk
> Subject: RE: [U-Boot] [PATCH 3/4 v2] DA8xx: Add MUSB host support
>
>
> Ajay,
>
> We have a problem with your licensing
>
> > Subject: [U-Boot] [PATCH 3/4 v2] DA8xx: Add MUSB host support
> >
> > Tested USB host functionality on DA830 EVM.
> >
> > Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
> > Signed-off-by: Swaminathan S <swami.iyer@ti.com>
> > ---
> > drivers/usb/musb/Makefile | 1 +
> > drivers/usb/musb/da8xx.c | 138
> > +++++++++++++++++++++++++++++++++++++++++++++
> > drivers/usb/musb/da8xx.h | 79 ++++++++++++++++++++++++++
> > include/usb.h | 3 +-
> > 4 files changed, 220 insertions(+), 1 deletions(-)
> > create mode 100644 drivers/usb/musb/da8xx.c
> > create mode 100644 drivers/usb/musb/da8xx.h
> >
> > diff --git a/drivers/usb/musb/Makefile b/drivers/usb/musb/Makefile
> > index 09e0a5f..eb4d8fd 100644
> > --- a/drivers/usb/musb/Makefile
> > +++ b/drivers/usb/musb/Makefile
> > @@ -27,6 +27,7 @@ LIB := $(obj)libusb_musb.a
> >
> > COBJS-$(CONFIG_MUSB_HCD) += musb_hcd.o musb_core.o
> > COBJS-$(CONFIG_USB_DAVINCI) += davinci.o
> > +COBJS-$(CONFIG_USB_DA8XX) += da8xx.o
> >
> > COBJS := $(COBJS-y)
> > SRCS := $(COBJS:.o=.c)
> > diff --git a/drivers/usb/musb/da8xx.c b/drivers/usb/musb/da8xx.c
> > new file mode 100644
> > index 0000000..5b02e33
> > --- /dev/null
> > +++ b/drivers/usb/musb/da8xx.c
> > @@ -0,0 +1,138 @@
> > +/*
> > + * da8xx.c - TI's DA8xx platform specific usb wrapper functions.
> > + *
> > + * Author: Ajay Kumar Gupta <ajay.gupta@ti.com>
> > + *
> > + * Based on drivers/usb/musb/davinci.c
> > + *
> > + * Copyright (c) 2009 Texas Instruments Incorporated
> > + *
> > + * This package is free software; you can redistribute it and/or
> > + * modify it under the terms of the license found in the file
> > + * named COPYING that should have accompanied this file.
> > + *
> > + * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
> > + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
> > + * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
>
> This is not going to work. I have discussed offline with Wolfgang and Tom.
> This is going to probably get a NAK from both of them unless they have had
> a change of heart in the last month.
> I know what you have done is in response to a possible U-Boot moving to
> GPL v3.
Hi Sandeep,
I will discuss it internally and would post updated version.
Regards,
Ajay
>
>
> > + *
> > + */
> > +#include <common.h>
> > +#include <asm/arch/hardware.h>
> > +#include <asm/arch/gpio_defs.h>
> > +
> > +#include "da8xx.h"
> > +
> > +/* MUSB platform configuration */
> > +struct musb_config musb_cfg = {
> > + (struct musb_regs *)DA8XX_USB_OTG_CORE_BASE,
> > + DA8XX_USB_OTG_TIMEOUT,
> > + 0
> > +};
> > +
> > +/*
> > + * This function enables VBUS by driving the GPIO Bank4 Pin 15 high.
> > + */
> > +static void enable_vbus(void)
> > +{
> > + u32 value;
> > +
> > + /* configure GPIO bank4 pin 15 in output direction */
> > + value = readl(&davinci_gpio_bank45->dir);
> > + writel((value & (~DA8XX_USB_VBUS_GPIO)), &davinci_gpio_bank45->dir);
> > +
> > + /* set GPIO bank4 pin 15 high to drive VBUS */
> > + value = readl(&davinci_gpio_bank45->set_data);
> > + writel((value | DA8XX_USB_VBUS_GPIO), &davinci_gpio_bank45-
> > >set_data);
> > +}
> > +
> > +/*
> > + * Enable the usb0 phy. This initialization procedure is explained in
> > + * the DA8xx USB user guide document.
> > + */
> > +static u8 phy_on(void)
> > +{
> > + u32 timeout;
> > + u32 cfgchip2;
> > +
> > + cfgchip2 = readl(&davinci_syscfg_regs->cfgchip2);
> > +
> > + cfgchip2 &= ~(CFGCHIP2_RESET | CFGCHIP2_PHYPWRDN | CFGCHIP2_OTGPWRDN
> > |
> > + CFGCHIP2_OTGMODE | CFGCHIP2_REFFREQ);
> > + cfgchip2 |= CFGCHIP2_SESENDEN | CFGCHIP2_VBDTCTEN |
> > CFGCHIP2_PHY_PLLON |
> > + CFGCHIP2_REFFREQ_24MHZ;
> > +
> > + writel(cfgchip2, &davinci_syscfg_regs->cfgchip2);
> > +
> > + /* wait until the usb phy pll locks */
> > + timeout = musb_cfg.timeout;
> > + while (timeout--)
> > + if (readl(&davinci_syscfg_regs->cfgchip2) & CFGCHIP2_PHYCLKGD)
> > + return 1;
> > +
> > + /* USB phy was not turned on */
> > + return 0;
> > +}
> > +
> > +/*
> > + * Disable the usb phy
> > + */
> > +static void phy_off(void)
> > +{
> > + u32 cfgchip2;
> > +
> > + /*
> > + * Power down the on-chip PHY.
> > + */
> > + cfgchip2 = readl(&davinci_syscfg_regs->cfgchip2);
> > + cfgchip2 &= ~CFGCHIP2_PHY_PLLON;
> > + cfgchip2 |= CFGCHIP2_PHYPWRDN | CFGCHIP2_OTGPWRDN;
> > + writel(cfgchip2, &davinci_syscfg_regs->cfgchip2);
> > +}
> > +
> > +/*
> > + * This function performs DA8xx platform specific initialization for
> > usb0.
> > + */
> > +int musb_platform_init(void)
> > +{
> > + u32 revision;
> > +
> > + /* enable psc for usb2.0 */
> > + lpsc_on(33);
> > +
> > + /* enable usb vbus */
> > + enable_vbus();
> > +
> > + /* reset the controller */
> > + writel(0x1, (DA8XX_USB_OTG_BASE + DA8XX_USB_CTRL_REG));
> > + udelay(5000);
> > +
> > + /* start the on-chip usb phy and its pll */
> > + if (phy_on() == 0)
> > + return -1;
> > +
> > + /* Returns zero if e.g. not clocked */
> > + revision = readl(DA8XX_USB_OTG_BASE + DA8XX_USB_VERSION_REG);
> > + if (revision == 0)
> > + return -1;
> > +
> > + /* Disable all interrupts */
> > + writel((DA8XX_USB_USBINT_MASK | DA8XX_USB_TXINT_MASK |
> > + DA8XX_USB_RXINT_MASK),
> > + (DA8XX_USB_OTG_BASE + DA8XX_USB_INT_MASK_SET_REG));
> > + return 0;
> > +}
> > +
> > +/*
> > + * This function performs DA8xx platform specific deinitialization for
> > usb0.
> > + */
> > +void musb_platform_deinit(void)
> > +{
> > + /* Turn of the phy */
> > + phy_off();
> > +
> > + /* flush any interrupts */
> > + writel((DA8XX_USB_USBINT_MASK | DA8XX_USB_TXINT_MASK |
> > + DA8XX_USB_RXINT_MASK),
> > + (DA8XX_USB_OTG_BASE + DA8XX_USB_INT_MASK_CLR_REG));
> > + writel(0, (DA8XX_USB_OTG_BASE + DA8XX_USB_EOI_REG));
> > +}
> > diff --git a/drivers/usb/musb/da8xx.h b/drivers/usb/musb/da8xx.h
> > new file mode 100644
> > index 0000000..7d36588
> > --- /dev/null
> > +++ b/drivers/usb/musb/da8xx.h
> > @@ -0,0 +1,79 @@
> > +/*
> > + * da8xx.h -- TI's DA8xx platform specific usb wrapper definitions.
> > + *
> > + * Author: Ajay Kumar Gupta <ajay.gupta@ti.com>
> > + *
> > + * Based on drivers/usb/musb/davinci.h
> > + *
> > + * Copyright (c) 2009 Texas Instruments Incorporated
> > + *
> > + * This package is free software; you can redistribute it and/or
> > + * modify it under the terms of the license found in the file
> > + * named COPYING that should have accompanied this file.
> > + *
> > + * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
> > + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
> > + * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
> > + *
> > + */
>
> Same here
>
> > +#ifndef __DA8XX_MUSB_H__
> > +#define __DA8XX_MUSB_H__
> > +
> > +#include "musb_core.h"
> > +
> > +/* extern functions */
> > +extern void lpsc_on(unsigned int id);
> > +
> > +/* Base address of da8xx usb0 wrapper */
> > +#define DA8XX_USB_OTG_BASE 0x01E00000
> > +
> > +/* Base address of da8xx musb core */
> > +#define DA8XX_USB_OTG_CORE_BASE (DA8XX_USB_OTG_BASE + 0x400)
> > +
> > +/* Timeout for DA8xx usb module */
> > +#define DA8XX_USB_OTG_TIMEOUT 0x3FFFFFF
> > +
> > +/* For now include usb OTG module registers here */
> > +#define DA8XX_USB_VERSION_REG 0x00
> > +#define DA8XX_USB_CTRL_REG 0x04
> > +#define DA8XX_USB_INT_MASK_SET_REG 0x30
> > +#define DA8XX_USB_INT_MASK_CLR_REG 0x34
> > +#define DA8XX_USB_EOI_REG 0x3c
> > +
> > +#define DA8XX_USB_TX_ENDPTS_MASK 0x1f /* ep0 + 4 tx */
> > +#define DA8XX_USB_RX_ENDPTS_MASK 0x1e /* 4 rx */
> > +#define DA8XX_USB_TXINT_SHIFT 0
> > +#define DA8XX_USB_RXINT_SHIFT 8
> > +
> > +#define DA8XX_USB_USBINT_MASK 0x01ff0000 /* 8 Mentor, DRVVBUS */
> > +#define DA8XX_USB_TXINT_MASK \
> > + (DA8XX_USB_TX_ENDPTS_MASK << DA8XX_USB_TXINT_SHIFT)
> > +#define DA8XX_USB_RXINT_MASK \
> > + (DA8XX_USB_RX_ENDPTS_MASK << DA8XX_USB_RXINT_SHIFT)
> > +
> > +/* DA8xx CFGCHIP2 (USB 2.0 PHY Control) register bits */
> > +#define CFGCHIP2_PHYCLKGD (1 << 17)
> > +#define CFGCHIP2_VBUSSENSE (1 << 16)
> > +#define CFGCHIP2_RESET (1 << 15)
> > +#define CFGCHIP2_OTGMODE (3 << 13)
> > +#define CFGCHIP2_NO_OVERRIDE (0 << 13)
> > +#define CFGCHIP2_FORCE_HOST (1 << 13)
> > +#define CFGCHIP2_FORCE_DEVICE (2 << 13)
> > +#define CFGCHIP2_FORCE_HOST_VBUS_LOW (3 << 13)
> > +#define CFGCHIP2_USB1PHYCLKMUX (1 << 12)
> > +#define CFGCHIP2_USB2PHYCLKMUX (1 << 11)
> > +#define CFGCHIP2_PHYPWRDN (1 << 10)
> > +#define CFGCHIP2_OTGPWRDN (1 << 9)
> > +#define CFGCHIP2_DATPOL (1 << 8)
> > +#define CFGCHIP2_USB1SUSPENDM (1 << 7)
> > +#define CFGCHIP2_PHY_PLLON (1 << 6) /* override PLL suspend */
> > +#define CFGCHIP2_SESENDEN (1 << 5) /* Vsess_end comparator */
> > +#define CFGCHIP2_VBDTCTEN (1 << 4) /* Vbus comparator */
> > +#define CFGCHIP2_REFFREQ (0xf << 0)
> > +#define CFGCHIP2_REFFREQ_12MHZ (1 << 0)
> > +#define CFGCHIP2_REFFREQ_24MHZ (2 << 0)
> > +#define CFGCHIP2_REFFREQ_48MHZ (3 << 0)
> > +
> > +#define DA8XX_USB_VBUS_GPIO (1 << 15)
> > +#endif /* __DA8XX_MUSB_H__ */
> > +
> > diff --git a/include/usb.h b/include/usb.h
> > index 7c47098..7c56ace 100644
> > --- a/include/usb.h
> > +++ b/include/usb.h
> > @@ -183,7 +183,8 @@ struct usb_device {
> > #if defined(CONFIG_USB_UHCI) || defined(CONFIG_USB_OHCI) || \
> > defined(CONFIG_USB_EHCI) || defined(CONFIG_USB_OHCI_NEW) || \
> > defined(CONFIG_USB_SL811HS) || defined(CONFIG_USB_ISP116X_HCD) || \
> > - defined(CONFIG_USB_R8A66597_HCD) || defined(CONFIG_USB_DAVINCI)
> > + defined(CONFIG_USB_R8A66597_HCD) || defined(CONFIG_USB_DAVINCI) || \
> > + defined(CONFIG_USB_DA8XX)
> >
> > int usb_lowlevel_init(void);
> > int usb_lowlevel_stop(void);
> > --
> > 1.6.2.4
> >
> > _______________________________________________
> > U-Boot mailing list
> > U-Boot at lists.denx.de
> > http://lists.denx.de/mailman/listinfo/u-boot
^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot] [PATCH 3/4 v2] DA8xx: Add MUSB host support
2009-11-13 12:05 ` [U-Boot] [PATCH 3/4 v2] DA8xx: Add MUSB host support Paulraj, Sandeep
2009-11-13 12:23 ` Gupta, Ajay Kumar
@ 2009-11-13 14:00 ` Tom
2009-11-17 23:28 ` Wolfgang Denk
2 siblings, 0 replies; 11+ messages in thread
From: Tom @ 2009-11-13 14:00 UTC (permalink / raw)
To: u-boot
Paulraj, Sandeep wrote:
> Ajay,
>
> We have a problem with your licensing
>
>> Subject: [U-Boot] [PATCH 3/4 v2] DA8xx: Add MUSB host support
>>
>> Tested USB host functionality on DA830 EVM.
>>
>> Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
>> Signed-off-by: Swaminathan S <swami.iyer@ti.com>
>> ---
>> drivers/usb/musb/Makefile | 1 +
>> drivers/usb/musb/da8xx.c | 138
>> +++++++++++++++++++++++++++++++++++++++++++++
>> drivers/usb/musb/da8xx.h | 79 ++++++++++++++++++++++++++
>> include/usb.h | 3 +-
>> 4 files changed, 220 insertions(+), 1 deletions(-)
>> create mode 100644 drivers/usb/musb/da8xx.c
>> create mode 100644 drivers/usb/musb/da8xx.h
>>
>> diff --git a/drivers/usb/musb/Makefile b/drivers/usb/musb/Makefile
>> index 09e0a5f..eb4d8fd 100644
>> --- a/drivers/usb/musb/Makefile
>> +++ b/drivers/usb/musb/Makefile
>> @@ -27,6 +27,7 @@ LIB := $(obj)libusb_musb.a
>>
>> COBJS-$(CONFIG_MUSB_HCD) += musb_hcd.o musb_core.o
>> COBJS-$(CONFIG_USB_DAVINCI) += davinci.o
>> +COBJS-$(CONFIG_USB_DA8XX) += da8xx.o
>>
>> COBJS := $(COBJS-y)
>> SRCS := $(COBJS:.o=.c)
>> diff --git a/drivers/usb/musb/da8xx.c b/drivers/usb/musb/da8xx.c
>> new file mode 100644
>> index 0000000..5b02e33
>> --- /dev/null
>> +++ b/drivers/usb/musb/da8xx.c
>> @@ -0,0 +1,138 @@
>> +/*
>> + * da8xx.c - TI's DA8xx platform specific usb wrapper functions.
>> + *
>> + * Author: Ajay Kumar Gupta <ajay.gupta@ti.com>
>> + *
>> + * Based on drivers/usb/musb/davinci.c
>> + *
>> + * Copyright (c) 2009 Texas Instruments Incorporated
>> + *
>> + * This package is free software; you can redistribute it and/or
>> + * modify it under the terms of the license found in the file
>> + * named COPYING that should have accompanied this file.
>> + *
>> + * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
>> + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
>> + * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
>
> This is not going to work. I have discussed offline with Wolfgang and Tom.
> This is going to probably get a NAK from both of them unless they have had a change of heart in the last month.
> I know what you have done is in response to a possible U-Boot moving to GPL v3.
The link you read is http://www.denx.de/wiki/U-Boot/Patches
Tom
^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot] [PATCH 3/4 v2] DA8xx: Add MUSB host support
2009-11-13 12:05 ` [U-Boot] [PATCH 3/4 v2] DA8xx: Add MUSB host support Paulraj, Sandeep
2009-11-13 12:23 ` Gupta, Ajay Kumar
2009-11-13 14:00 ` Tom
@ 2009-11-17 23:28 ` Wolfgang Denk
2009-11-17 23:37 ` Tom
2 siblings, 1 reply; 11+ messages in thread
From: Wolfgang Denk @ 2009-11-17 23:28 UTC (permalink / raw)
To: u-boot
Dear Sandeep,
In message <0554BEF07D437848AF01B9C9B5F0BC5D93FA8B23@dlee01.ent.ti.com> you wrote:
>
> > +/*
> > + * da8xx.c - TI's DA8xx platform specific usb wrapper functions.
> > + *
> > + * Author: Ajay Kumar Gupta <ajay.gupta@ti.com>
> > + *
> > + * Based on drivers/usb/musb/davinci.c
> > + *
> > + * Copyright (c) 2009 Texas Instruments Incorporated
> > + *
> > + * This package is free software; you can redistribute it and/or
> > + * modify it under the terms of the license found in the file
> > + * named COPYING that should have accompanied this file.
> > + *
> > + * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
> > + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
> > + * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
>
> This is not going to work. I have discussed offline with Wolfgang and Tom.
> This is going to probably get a NAK from both of them unless they have had a change of heart in the last month.
> I know what you have done is in response to a possible U-Boot moving to GPL v3.
Sorry for asking stupid questions - but which sort of conflict do you
see in this text? The licensing seems to be OK with me (reference to
COPYING file in the top level directory), and the exclusion of
warranty is not a problem either.
Am I missing something?
Best regards,
Wolfgang Denk
--
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
Thought for the day: What if there were no hypothetical situations?
^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot] [PATCH 3/4 v2] DA8xx: Add MUSB host support
2009-11-17 23:28 ` Wolfgang Denk
@ 2009-11-17 23:37 ` Tom
2009-11-18 0:20 ` Paulraj, Sandeep
0 siblings, 1 reply; 11+ messages in thread
From: Tom @ 2009-11-17 23:37 UTC (permalink / raw)
To: u-boot
Wolfgang Denk wrote:
> Dear Sandeep,
>
> In message <0554BEF07D437848AF01B9C9B5F0BC5D93FA8B23@dlee01.ent.ti.com> you wrote:
>>> +/*
>>> + * da8xx.c - TI's DA8xx platform specific usb wrapper functions.
>>> + *
>>> + * Author: Ajay Kumar Gupta <ajay.gupta@ti.com>
>>> + *
>>> + * Based on drivers/usb/musb/davinci.c
>>> + *
>>> + * Copyright (c) 2009 Texas Instruments Incorporated
>>> + *
>>> + * This package is free software; you can redistribute it and/or
>>> + * modify it under the terms of the license found in the file
>>> + * named COPYING that should have accompanied this file.
>>> + *
>>> + * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
>>> + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
>>> + * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
>> This is not going to work. I have discussed offline with Wolfgang and Tom.
>> This is going to probably get a NAK from both of them unless they have had a change of heart in the last month.
>> I know what you have done is in response to a possible U-Boot moving to GPL v3.
>
> Sorry for asking stupid questions - but which sort of conflict do you
> see in this text? The licensing seems to be OK with me (reference to
> COPYING file in the top level directory), and the exclusion of
> warranty is not a problem either.
>
> Am I missing something?
GPL 2 and at option later version
is missing.
Tom
>
> Best regards,
>
> Wolfgang Denk
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot] [PATCH 3/4 v2] DA8xx: Add MUSB host support
2009-11-17 23:37 ` Tom
@ 2009-11-18 0:20 ` Paulraj, Sandeep
2009-11-18 22:26 ` Wolfgang Denk
0 siblings, 1 reply; 11+ messages in thread
From: Paulraj, Sandeep @ 2009-11-18 0:20 UTC (permalink / raw)
To: u-boot
Dear Wolfgang,
> Subject: Re: [U-Boot] [PATCH 3/4 v2] DA8xx: Add MUSB host support
>
> Wolfgang Denk wrote:
> > Dear Sandeep,
> >
> > In message <0554BEF07D437848AF01B9C9B5F0BC5D93FA8B23@dlee01.ent.ti.com>
> you wrote:
> >>> +/*
> >>> + * da8xx.c - TI's DA8xx platform specific usb wrapper functions.
> >>> + *
> >>> + * Author: Ajay Kumar Gupta <ajay.gupta@ti.com>
> >>> + *
> >>> + * Based on drivers/usb/musb/davinci.c
> >>> + *
> >>> + * Copyright (c) 2009 Texas Instruments Incorporated
> >>> + *
> >>> + * This package is free software; you can redistribute it and/or
> >>> + * modify it under the terms of the license found in the file
> >>> + * named COPYING that should have accompanied this file.
> >>> + *
> >>> + * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
> >>> + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
> >>> + * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
> PURPOSE.
> >> This is not going to work. I have discussed offline with Wolfgang and
> Tom.
> >> This is going to probably get a NAK from both of them unless they have
> had a change of heart in the last month.
> >> I know what you have done is in response to a possible U-Boot moving to
> GPL v3.
> >
> > Sorry for asking stupid questions - but which sort of conflict do you
> > see in this text? The licensing seems to be OK with me (reference to
> > COPYING file in the top level directory), and the exclusion of
> > warranty is not a problem either.
> >
> > Am I missing something?
>
> GPL 2 and at option later version
> is missing.
> Tom
+ * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
I am referring to this "AS IS" part. I believe I discussed offline with you and Tom quite some time back and IIRC you had said that modifying this header to suit our needs was not allowed.
>
> >
> > Best regards,
> >
> > Wolfgang Denk
> >
>
Thanks,
Sandeep
^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot] [PATCH 3/4 v2] DA8xx: Add MUSB host support
2009-11-18 0:20 ` Paulraj, Sandeep
@ 2009-11-18 22:26 ` Wolfgang Denk
0 siblings, 0 replies; 11+ messages in thread
From: Wolfgang Denk @ 2009-11-18 22:26 UTC (permalink / raw)
To: u-boot
Dear Sandeep,
In message <0554BEF07D437848AF01B9C9B5F0BC5D94158181@dlee01.ent.ti.com> you wrote:
>
> > > Sorry for asking stupid questions - but which sort of conflict do you
> > > see in this text? The licensing seems to be OK with me (reference to
> > > COPYING file in the top level directory), and the exclusion of
> > > warranty is not a problem either.
> > >
> > > Am I missing something?
> >
> > GPL 2 and at option later version
> > is missing.
Well, there was a reference to the COPYING file, which should be
sufficient. I sent a patch to make this clear.
> + * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
> + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
> + * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
>
> I am referring to this "AS IS" part. I believe I discussed offline with you
> and Tom quite some time back and IIRC you had said that modifying this header
> to suit our needs was not allowed.
I see no problem with this part. It corresponds mostly with the "NO
WARRANTY" of the GPL; the wording may be different, but I see no
conflicts (of course, IANAL).
Best regards,
Wolfgang Denk
--
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
Anything free is worth what you pay for it.
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2009-11-18 22:26 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-11-13 6:31 [U-Boot] [PATCH 1/4 v2] DA830: Add pinmux for USB0_DRVVBUS Ajay Kumar Gupta
2009-11-13 6:31 ` [U-Boot] [PATCH 2/4 v2] DA8xx: Add GPIO register definitions Ajay Kumar Gupta
2009-11-13 6:31 ` [U-Boot] [PATCH 3/4 v2] DA8xx: Add MUSB host support Ajay Kumar Gupta
2009-11-13 6:31 ` [U-Boot] [PATCH 4/4 v2] DA830: Add usb config Ajay Kumar Gupta
2009-11-13 12:05 ` [U-Boot] [PATCH 3/4 v2] DA8xx: Add MUSB host support Paulraj, Sandeep
2009-11-13 12:23 ` Gupta, Ajay Kumar
2009-11-13 14:00 ` Tom
2009-11-17 23:28 ` Wolfgang Denk
2009-11-17 23:37 ` Tom
2009-11-18 0:20 ` Paulraj, Sandeep
2009-11-18 22:26 ` Wolfgang Denk
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox