Describe Resources/HowTo/SamsungOrigenUSBGadget here.

Latest Update (17/09/2012)

Initialized USB phy0 is availablw now in Linux kernel of Exynos


This document covers how to debug initialization of USB Device for ADB in Android (linux-3.2 or linux-3.0) when you have problems to load USB ADB driver in Samsung Origen (Exynos ) board.

Listing Kernel Files of USB Gadget

If you have a problem as like the following in Android booting with Exynos (Samsung Origen),

S3C USB 2.0 OTG Controller Core Initialized : 0x0
adb_read: waiting for online state

Please make sure that you will have the following object files after compiling source code.

With regard to Android (02/02/2012), s3c_udc_otg.c is used for Exynos USB Device instead of s3c-hsotg.c

$ cd kernel/drivers/usb/gadget
$ ls -al *.o

-rw-r--r-- 1 dev dev 730872 2012-02-01 10:32 android.o
-rw-r--r-- 1 dev dev 980419 2012-02-01 14:21 built-in.o
-rw-r--r-- 1 dev dev 730876 2012-02-01 10:32 g_android.o
-rw-r--r-- 1 dev dev 196440 2012-02-01 14:21 s3c_udc_otg.o
-rw-r--r-- 1 dev dev  59847 2012-02-01 10:32 udc-core.o

Initializing USB PHY0

Please check out the right configuration of USB PHY0

USB PHY0 is dedicated for USB 2.0 device for Exynos

  1. Set PLL Clock for USB Device
  2. Enable USB Device Phy :Register (USBDEVICE_PHY_CONTROL)

File: arch/arm/mach-exynos/setup-usb-phy.c

    writel(readl(S5P_USBDEVICE_PHY_CONTROL) | (0x1<<0),
       writel((readl(EXYNOS4_PHYPWR) & ~(0x7<<3)&~(0x1<<0)),
       writel((readl(EXYNOS4_PHYCLK) & ~(0x5<<2))|(0x3<<0),
       writel((readl(EXYNOS4_RSTCON) & ~(0x3<<1))|(0x1<<0),
       writel(readl(EXYNOS4_RSTCON) & ~(0x7<<0),

ADB Kernel booting message

Log message relating to USB PHY0

Please clickthe below to see full ADB kernel booting message in Samsung Origen


Sugggestions for futher reading

  • Documentation/usb/gadget_serial.txt in Kernel for USB Gadget


-init 03/02/2012, Linaro Samsung Landing Team

Resources/HowTo/SamsungOrigenUSBGadget (last modified 2012-09-17 14:25:42)