Re: [PATCH v3 1/2] usb: musb: add support for JZ4740 usb device controller

From: Lars-Peter Clausen
Date: Sat Jan 04 2014 - 06:18:34 EST


On 01/04/2014 12:11 PM, Richard Weinberger wrote:
Am Samstag, 4. Januar 2014, 12:06:22 schrieb Apelete Seketeli:
On 04-Jan-14, Richard Weinberger wrote:
On Thu, Dec 19, 2013 at 9:42 PM, Apelete Seketeli <apelete@xxxxxxxxxxxx>
wrote:
Add support for Ingenic JZ4740 USB Device Controller through a
specific musb glue layer.

JZ4740 UDC not being OTG compatible and missing some hardware
registers, this musb glue layer is written from scratch to be used in
gadget mode only and take silicon design specifics into account.

Signed-off-by: Apelete Seketeli <apelete@xxxxxxxxxxxx>
Signed-off-by: Lars-Peter Clausen <lars@xxxxxxxxxx>
---

drivers/usb/musb/Kconfig | 8 +-
drivers/usb/musb/Makefile | 1 +
drivers/usb/musb/jz4740.c | 201
+++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 209
insertions(+), 1 deletion(-)
create mode 100644 drivers/usb/musb/jz4740.c

diff --git a/drivers/usb/musb/Kconfig b/drivers/usb/musb/Kconfig
index 57dfc0c..14d7e72 100644
--- a/drivers/usb/musb/Kconfig
+++ b/drivers/usb/musb/Kconfig
@@ -93,6 +93,12 @@ config USB_MUSB_BLACKFIN

config USB_MUSB_UX500

tristate "Ux500 platforms"

+config USB_MUSB_JZ4740
+ tristate "JZ4740"
+ depends on MACH_JZ4740 || COMPILE_TEST
+ depends on USB_MUSB_GADGET
+ depends on USB_OTG_BLACKLIST_HUB
+

endchoice

config USB_MUSB_AM335X_CHILD

@@ -100,7 +106,7 @@ config USB_MUSB_AM335X_CHILD

choice

prompt 'MUSB DMA mode'

- default MUSB_PIO_ONLY if ARCH_MULTIPLATFORM
+ default MUSB_PIO_ONLY if ARCH_MULTIPLATFORM || USB_MUSB_JZ4740

Just out of curiosity, why can't we use DMA?

We wrote the musb glue layer for the Ben Nanonote handheld computer
only to provide ethernet-over-usb functionality.

I was thinking about adding DMA support later, but Lars-Peter Clausen
did experiment with DMA, and found out that all ethernet packets were
unaligned, while the DMA only works if they are aligned.
As a consequence, the DMA was bypassed all the time, making it useless
at least for the ethernet gadget we are interested in.

That's why DMA didn't make it into the glue layer.

DMA support would be nice to have.
Especially to make the USB storage gadget work well with the Ben NanoNote.


It is not clear at this point how well the DMA works. While there seems support for DMA, there is no documentation about it in the datasheet, which might indicate that it is broken. So we first need to make sure that it works reliable before we can enable it.

- Lars

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/