[PATCH 0/3] [RFC] S3C HS OTG UDC driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This patch series add experimental driver for S3C OTG chip in UDC mode. The driver is
based on Samsung BSP driver code, but it is heavily updated and bug fixed.
It works only in Slave (CPU driven) mode. I did not work on DMA mode yet. It looks that
the chip has some undocumented hardware bugs (or features), so I had to add several
workaround in the driver code (see comments).

The driver has been developed and tested on NCP board (ARM S3C6410 based). I've tested it
with the following usb gadget driver: g_ether (both in CDC and RNDIS modes), g_serial
(ACM serial), g_cdc2 (CDC Ethernet + Serial Gadget). Worked fine in all cases. I also
managed to get it working on SMDK6410 board, but only with Samsung BSP kernel v2.6.29
(mainline kernels fail to boot properly on newer SMKD6410 boards with updated u-boot).
It also has been tested on S5PC100 based board and works fine there.

Note that the driver is known to fail sometimes if the debug messages are enabled. This
might be some timing related issue.

I hope this driver will be useful for either for updating/fixing the S3C HSOTG
driver from mainline or as a standalone driver.

The patch series has been prepared against latest ARM Kernel tree: http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm.git/

The series contains:

[PATCH 1/3] [ARM] S3C: add otg clock definition
[PATCH 2/3] [ARM] S3C: add missing USB_HSPHY registers to system map
[PATCH 3/3] [drivers] [USB] USB-Gadget: Add S3C HS OTG UDC driver

Best regards
--
Marek Szyprowski
Samsung Poland R&D Center

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

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux