Re: [U-Boot] [RFC PATCH v2 4/6] musb-new: dsps backend driver

2012-09-22 Thread Ilya Yanok
Dear Marek,

On Sat, Sep 22, 2012 at 4:48 AM, Marek Vasut ma...@denx.de wrote:

  +COBJS-$(CONFIG_USB_MUSB_DSPS) += musb_dsps.o
 CONFIG_MUSB_... ?


I'm following Linux here. We can change this, but should we? BTW, it looks
to be in line with the current code where all USB lowlevel drivers have
CONFIG_USB_* configuration options.

Regards, Ilya.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [RFC PATCH v2 4/6] musb-new: dsps backend driver

2012-09-22 Thread Marek Vasut
Dear Ilya Yanok,

 Dear Marek,
 
 On Sat, Sep 22, 2012 at 4:48 AM, Marek Vasut ma...@denx.de wrote:
   +COBJS-$(CONFIG_USB_MUSB_DSPS) += musb_dsps.o
  
  CONFIG_MUSB_... ?
 
 I'm following Linux here. We can change this, but should we? BTW, it looks
 to be in line with the current code where all USB lowlevel drivers have
 CONFIG_USB_* configuration options.

ok

Best regards,
Marek Vasut
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [RFC PATCH v2 4/6] musb-new: dsps backend driver

2012-09-21 Thread Marek Vasut
Dear Ilya Yanok,

 Backend driver for MUSB OTG controllers found on TI AM33xx and
 TI81xx SoCs (tested with AM33xx only).
 
 Signed-off-by: Ilya Yanok ilya.ya...@cogentembedded.com
 ---
 Changes in v2:
  - rename backend config option to CONFIG_USB_MUSB_DSPS
  - we are providing host support now so add yourself to usb.h
 
  arch/arm/include/asm/omap_musb.h |   25 ++
  drivers/usb/musb-new/Makefile|1 +
  drivers/usb/musb-new/musb_dsps.c |  771
 ++ include/usb.h| 
   3 +-
  4 files changed, 799 insertions(+), 1 deletion(-)
  create mode 100644 arch/arm/include/asm/omap_musb.h
  create mode 100644 drivers/usb/musb-new/musb_dsps.c
 
 diff --git a/arch/arm/include/asm/omap_musb.h
 b/arch/arm/include/asm/omap_musb.h new file mode 100644
 index 000..0081a68
 --- /dev/null
 +++ b/arch/arm/include/asm/omap_musb.h
 @@ -0,0 +1,25 @@
 +/*
 + * Board data structure for musb gadget on OMAPs
 + *
 + * Copyright (C) 2012, Ilya Yanok ilya.ya...@gmail.com
 + *
 + * 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.
 + */
 +
 +#ifndef __ASM_ARM_OMAP_MUSB_H
 +#define __ASM_ARM_OMAP_MUSB_H
 +
 +extern struct musb_platform_ops musb_dsps_ops;
 +
 +struct omap_musb_board_data {
 + void (*set_phy_power)(u8 on);
 +};
 +#endif /* __ASM_ARM_OMAP_MUSB_H */
 diff --git a/drivers/usb/musb-new/Makefile b/drivers/usb/musb-new/Makefile
 index f01fb16..a753423 100644
 --- a/drivers/usb/musb-new/Makefile
 +++ b/drivers/usb/musb-new/Makefile
 @@ -9,6 +9,7 @@ LIB   := $(obj)libusb_musb-new.o
  COBJS-$(CONFIG_MUSB_GADGET) += musb_gadget.o musb_gadget_ep0.o musb_core.o
  COBJS-$(CONFIG_MUSB_GADGET) += musb_uboot.o
  COBJS-$(CONFIG_MUSB_HOST) += musb_host.o musb_core.o musb_uboot.o
 +COBJS-$(CONFIG_USB_MUSB_DSPS) += musb_dsps.o

CONFIG_MUSB_... ?

 
[...]
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [RFC PATCH v2 4/6] musb-new: dsps backend driver

2012-09-16 Thread Ilya Yanok
Backend driver for MUSB OTG controllers found on TI AM33xx and
TI81xx SoCs (tested with AM33xx only).

Signed-off-by: Ilya Yanok ilya.ya...@cogentembedded.com
---
Changes in v2:
 - rename backend config option to CONFIG_USB_MUSB_DSPS
 - we are providing host support now so add yourself to usb.h

 arch/arm/include/asm/omap_musb.h |   25 ++
 drivers/usb/musb-new/Makefile|1 +
 drivers/usb/musb-new/musb_dsps.c |  771 ++
 include/usb.h|3 +-
 4 files changed, 799 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/include/asm/omap_musb.h
 create mode 100644 drivers/usb/musb-new/musb_dsps.c

diff --git a/arch/arm/include/asm/omap_musb.h b/arch/arm/include/asm/omap_musb.h
new file mode 100644
index 000..0081a68
--- /dev/null
+++ b/arch/arm/include/asm/omap_musb.h
@@ -0,0 +1,25 @@
+/*
+ * Board data structure for musb gadget on OMAPs
+ *
+ * Copyright (C) 2012, Ilya Yanok ilya.ya...@gmail.com
+ *
+ * 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.
+ */
+
+#ifndef __ASM_ARM_OMAP_MUSB_H
+#define __ASM_ARM_OMAP_MUSB_H
+
+extern struct musb_platform_ops musb_dsps_ops;
+
+struct omap_musb_board_data {
+   void (*set_phy_power)(u8 on);
+};
+#endif /* __ASM_ARM_OMAP_MUSB_H */
diff --git a/drivers/usb/musb-new/Makefile b/drivers/usb/musb-new/Makefile
index f01fb16..a753423 100644
--- a/drivers/usb/musb-new/Makefile
+++ b/drivers/usb/musb-new/Makefile
@@ -9,6 +9,7 @@ LIB := $(obj)libusb_musb-new.o
 COBJS-$(CONFIG_MUSB_GADGET) += musb_gadget.o musb_gadget_ep0.o musb_core.o
 COBJS-$(CONFIG_MUSB_GADGET) += musb_uboot.o
 COBJS-$(CONFIG_MUSB_HOST) += musb_host.o musb_core.o musb_uboot.o
+COBJS-$(CONFIG_USB_MUSB_DSPS) += musb_dsps.o
 
 CFLAGS_NO_WARN := $(call cc-option,-Wno-unused-variable) \
$(call cc-option,-Wno-unused-but-set-variable) \
diff --git a/drivers/usb/musb-new/musb_dsps.c b/drivers/usb/musb-new/musb_dsps.c
new file mode 100644
index 000..9a03917
--- /dev/null
+++ b/drivers/usb/musb-new/musb_dsps.c
@@ -0,0 +1,771 @@
+/*
+ * Texas Instruments DSPS platforms glue layer
+ *
+ * Copyright (C) 2012, by Texas Instruments
+ *
+ * Based on the am35x glue layer code.
+ *
+ * This file is part of the Inventra Controller Driver for Linux.
+ *
+ * The Inventra Controller Driver for Linux is free software; you
+ * can redistribute it and/or modify it under the terms of the GNU
+ * General Public License version 2 as published by the Free Software
+ * Foundation.
+ *
+ * The Inventra Controller Driver for Linux 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 The Inventra Controller Driver for Linux ; if not,
+ * write to the Free Software Foundation, Inc., 59 Temple Place,
+ * Suite 330, Boston, MA  02111-1307  USA
+ *
+ * musb_dsps.c will be a common file for all the TI DSPS platforms
+ * such as dm64x, dm36x, dm35x, da8x, am35x and ti81x.
+ * For now only ti81x is using this and in future davinci.c, am35x.c
+ * da8xx.c would be merged to this file after testing.
+ */
+
+#define __UBOOT__
+#ifndef __UBOOT__
+#include linux/init.h
+#include linux/io.h
+#include linux/err.h
+#include linux/platform_device.h
+#include linux/dma-mapping.h
+#include linux/pm_runtime.h
+#include linux/module.h
+
+#include linux/of.h
+#include linux/of_device.h
+#include linux/of_address.h
+
+#include plat/usb.h
+#else
+#include common.h
+#include asm/omap_musb.h
+#include linux-compat.h
+#endif
+
+#include musb_core.h
+
+/**
+ * avoid using musb_readx()/musb_writex() as glue layer should not be
+ * dependent on musb core layer symbols.
+ */
+static inline u8 dsps_readb(const void __iomem *addr, unsigned offset)
+   { return __raw_readb(addr + offset); }
+
+static inline u32 dsps_readl(const void __iomem *addr, unsigned offset)
+   { return __raw_readl(addr + offset); }
+
+static inline void dsps_writeb(void __iomem *addr, unsigned offset, u8 data)
+   { __raw_writeb(data, addr + offset); }
+
+static inline void dsps_writel(void __iomem *addr, unsigned offset, u32 data)
+   { __raw_writel(data, addr + offset); }
+
+/**
+ * DSPS musb wrapper register offset.
+ * FIXME: This should be expanded to have all the wrapper registers from TI 
DSPS
+ * musb ips.
+ */
+struct dsps_musb_wrapper {
+   u16