Both USB ch0 and ch1 can be either Device or Host.
See file:
linux-3.14/arch/arm/mach-shmobile/board-rskrza1.c
You can set the USB host/function at boot time:
--------------------------------------------------
/*
* early_usbgs()
* - This allows you to select if you want to use
* USB gadget or not.
* - Optional: This was just an easy way to switch this for testing
*/
static int usbgs = -1;
static int __init early_usbgs(char *str)
{
usbgs = 0;
get_option(&str, &usbgs);
return 0;
}
early_param("usbgs", early_usbgs);
--------------------------------------------------
--------------------------------------------------
if (usbgs == 0) {
platform_device_register_full(&r8a66597_usb_gadget0_info); /* USB ch0 as Device */
platform_device_register_full(&r8a66597_usb_host1_info); /* USB ch1 as Host */
} else if (usbgs == 1) {
platform_device_register_full(&r8a66597_usb_host0_info); /* USB ch0 as Host */
platform_device_register_full(&r8a66597_usb_gadget1_info); /* USB ch1 as Device */
} else {
platform_device_register_full(&r8a66597_usb_host0_info); /* USB ch0 as Host */
platform_device_register_full(&r8a66597_usb_host1_info); /* USB ch1 as Host */
}
--------------------------------------------------