2012-09-27

MK802 II -- OTG


USB On-The-Go, often abbreviated USB OTG, is a specification that allows USB devices such as digital audio players or mobile phones to act as a host, allowing other USB devices like a USB flash drive, mouse, or keyboard to be attached to them.

Standard USB uses a master/slave architecture.

1.
# diff .config-bv1 .config
--- .config-bv1
+++ .config
[..]
@@ -1640,11 +1666,13 @@
 #
 # Miscellaneous USB options
 #
-# CONFIG_USB_DEVICEFS is not set
+CONFIG_USB_DEVICEFS=y
 CONFIG_USB_DEVICE_CLASS=y
 # CONFIG_USB_DYNAMIC_MINORS is not set
-# CONFIG_USB_SUSPEND is not set
-# CONFIG_USB_MON is not set
+CONFIG_USB_SUSPEND=y
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+CONFIG_USB_MON=m
 # CONFIG_USB_WUSB_CBAF is not set

 #
@@ -1823,8 +1851,9 @@
 #
 # OTG and related infrastructure
 #
+CONFIG_USB_OTG_UTILS=y
 # CONFIG_USB_ULPI is not set
-# CONFIG_NOP_USB_XCEIV is not set
+CONFIG_NOP_USB_XCEIV=y
 CONFIG_USB_SW_SUN4I_USB=y
 CONFIG_USB_SW_SUN4I_USB_MANAGER=y
 # CONFIG_USB_SW_SUN4I_USB0_NULL is not set


2.
root@slitaz:~# cat /usr/src/linux/drivers/usb/otg/modules.builtin
kernel/drivers/usb/otg/nop-usb-xceiv.ko

or

root@arm:~# grep otg /lib/modules/3.0.42-slitaz/modules.builtin
kernel/drivers/usb/otg/nop-usb-xceiv.ko


3.
NOP USB Transceiver Driver (NOP_USB_XCEIV)

CONFIG_NOP_USB_XCEIV:

this driver is to be used by all the usb transceiver which are either
built-in with usb ip or which are autonomous and doesn't require any
phy programming such as ISP1x04 etc.

Symbol: NOP_USB_XCEIV [=y]
Type : tristate
Prompt: NOP USB Transceiver Driver
Defined at drivers/usb/otg/Kconfig:89
Depends on: USB_SUPPORT [=y] && (USB [=y] || USB_GADGET [=y])
Location:
-> Device Drivers
-> USB support (USB_SUPPORT [=y])
Selects: USB_OTG_UTILS [=y]
Selected by: USB_MUSB_HDRC [=n] && USB_SUPPORT [=y] && (USB [=y] || USB_GADGET [=y]) && (ARM [=y] || BF54x && !BF544 || BF52x && !BF522 && !BF523) && (ARCH_DAVINCI [=n] || MACH_OMAP3EVM [=n] || BLACKFIN)
.