[U-Boot] [PATCH 1/4 v2] DA830: Add pinmux for USB0_DRVVBUS

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),

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

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);

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 */

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@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot

Hi,
-----Original Message----- From: Paulraj, Sandeep Sent: Friday, November 13, 2009 5:36 PM To: Gupta, Ajay Kumar; u-boot@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@lists.denx.de http://lists.denx.de/mailman/listinfo/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

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

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

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

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
participants (5)
-
Ajay Kumar Gupta
-
Gupta, Ajay Kumar
-
Paulraj, Sandeep
-
Tom
-
Wolfgang Denk