Part Number: AM3357
Other Parts Discussed in Thread: AM3352, TPS65910, TLV320AIC3106
Tool/software: Linux
Hello Sir,
I am trying to bring up usb0 as otg. I followed the configuration as given in the link below,


I followed the steps for OTG port and configured USB gadget support as module in the menuconfig. when I flashed the kernel I could able to get the enumeration of the device connected on usb1 properly.
Now I connected Sandisk usb storage device and I couldn't get the enumeration, later i tried to insert the g_mass_storage but it didn't get added. We tried above exercise in two cases, keeping external switch to power VBUS line and removing the switch but the result was same.
These are the logs,
when external switch was there, with OTG port configuration i got the dmesg log as given below,
root@am335x-evm:~# dmesg | grep usb
[ 10.590850] am335x-phy-driver 47401300.usb-phy: GPIO lookup for consumer reset
[ 10.590888] am335x-phy-driver 47401300.usb-phy: using device tree for GPIO lookup
[ 10.590911] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp/usb@47400000/usb-phy@47401300[0]'
[ 10.590926] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/ocp/usb@47400000/usb-phy@47401300[0]'
[ 10.590939] am335x-phy-driver 47401300.usb-phy: using lookup tables for GPIO lookup
[ 10.590955] am335x-phy-driver 47401300.usb-phy: lookup for GPIO reset failed
[ 10.590970] am335x-phy-driver 47401300.usb-phy: GPIO lookup for consumer vbus-detect
[ 10.590982] am335x-phy-driver 47401300.usb-phy: using device tree for GPIO lookup
[ 10.590996] of_get_named_gpiod_flags: can't parse 'vbus-detect-gpios' property of node '/ocp/usb@47400000/usb-phy@47401300[0]'
[ 10.591009] of_get_named_gpiod_flags: can't parse 'vbus-detect-gpio' property of node '/ocp/usb@47400000/usb-phy@47401300[0]'
[ 10.591021] am335x-phy-driver 47401300.usb-phy: using lookup tables for GPIO lookup
[ 10.591035] am335x-phy-driver 47401300.usb-phy: lookup for GPIO vbus-detect failed
[ 10.591129] 47401300.usb-phy supply vcc not found, using dummy regulator
[ 10.713483] am335x-phy-driver 47401b00.usb-phy: GPIO lookup for consumer reset
[ 10.713522] am335x-phy-driver 47401b00.usb-phy: using device tree for GPIO lookup
[ 10.713543] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp/usb@47400000/usb-phy@47401b00[0]'
[ 10.713558] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/ocp/usb@47400000/usb-phy@47401b00[0]'
[ 10.713572] am335x-phy-driver 47401b00.usb-phy: using lookup tables for GPIO lookup
[ 10.713587] am335x-phy-driver 47401b00.usb-phy: lookup for GPIO reset failed
[ 10.713602] am335x-phy-driver 47401b00.usb-phy: GPIO lookup for consumer vbus-detect
[ 10.713614] am335x-phy-driver 47401b00.usb-phy: using device tree for GPIO lookup
[ 10.713628] of_get_named_gpiod_flags: can't parse 'vbus-detect-gpios' property of node '/ocp/usb@47400000/usb-phy@47401b00[0]'
[ 10.713641] of_get_named_gpiod_flags: can't parse 'vbus-detect-gpio' property of node '/ocp/usb@47400000/usb-phy@47401b00[0]'
[ 10.713654] am335x-phy-driver 47401b00.usb-phy: using lookup tables for GPIO lookup
[ 10.713667] am335x-phy-driver 47401b00.usb-phy: lookup for GPIO vbus-detect failed
[ 10.713758] 47401b00.usb-phy supply vcc not found, using dummy regulator
[ 19.470784] usbcore: registered new interface driver usbfs
[ 19.476441] usbcore: registered new interface driver hub
[ 19.610612] usbcore: registered new device driver usb
[ 19.845402] musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
[ 19.845437] musb-hdrc: MHDRC RTL version 2.0
[ 19.845449] musb-hdrc: setup fifo_mode 4
[ 19.845475] musb-hdrc: 28/31 max ep, 16384/16384 memory
[ 19.845671] musb-hdrc musb-hdrc.0.auto: MUSB HDRC host driver
[ 19.889467] musb-hdrc musb-hdrc.0.auto: new USB bus registered, assigned bus number 1
[ 20.018126] musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
[ 20.018159] musb-hdrc: MHDRC RTL version 2.0
[ 20.018172] musb-hdrc: setup fifo_mode 4
[ 20.018194] musb-hdrc: 28/31 max ep, 16384/16384 memory
[ 20.018356] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver
[ 20.081780] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 2
[ 21.319388] usb 2-1: new high-speed USB device number 2 using musb-hdrc
[ 21.939934] cdc_ether 2-1:1.10 usb0: register 'cdc_ether' at usb-musb-hdrc.1.auto-1, CDC Ethernet Device, de:ad:be:ef:00:00
[ 22.010210] cdc_ether 2-1:1.12 usb1: register 'cdc_ether' at usb-musb-hdrc.1.auto-1, CDC Ethernet Device, de:ad:be:ef:00:01
[ 22.022924] usbcore: registered new interface driver cdc_acm
[ 22.072319] usbcore: registered new interface driver cdc_ether
[ 22.500018] cdc_ether 2-1:1.12 usb1: CDC: unexpected notification 01!
[ 22.650006] cdc_ether 2-1:1.10 usb0: CDC: unexpected notification 01!
I have tried to insert the module
root@am335x-evm:/lib/modules/4.4.41-gf9f6f0db2d/kernel/drivers/usb/gadget/legacy# insmod g_mass_storage.ko
[ 2148.928847] g_mass_storage: Unknown symbol fsg_common_set_ops (err 0)
[ 2148.935773] g_mass_storage: Unknown symbol fsg_common_set_sysfs (err 0)
[ 2148.948474] g_mass_storage: Unknown symbol usb_get_function_instance (err 0)
[ 2148.963262] g_mass_storage: Unknown symbol usb_string_ids_tab (err 0)
[ 2148.970099] g_mass_storage: Unknown symbol usb_get_function (err 0)
[ 2148.976474] g_mass_storage: Unknown symbol usb_composite_unregister (err 0)
[ 2148.989610] g_mass_storage: Unknown symbol usb_put_function (err 0)
[ 2148.996017] g_mass_storage: Unknown symbol fsg_common_create_luns (err 0)
[ 2149.016801] g_mass_storage: Unknown symbol usb_add_function (err 0)
[ 2149.023444] g_mass_storage: Unknown symbol usb_composite_probe (err 0)
[ 2149.035408] g_mass_storage: Unknown symbol usb_composite_overwrite_options (err 0)
[ 2149.051540] g_mass_storage: Unknown symbol usb_otg_descriptor_alloc (err 0)
[ 2149.058642] g_mass_storage: Unknown symbol usb_put_function_instance (err 0)
[ 2149.071545] g_mass_storage: Unknown symbol fsg_common_set_cdev (err 0)
[ 2149.078226] g_mass_storage: Unknown symbol fsg_common_free_buffers (err 0)
[ 2149.096238] g_mass_storage: Unknown symbol usb_otg_descriptor_init (err 0)
[ 2149.103516] g_mass_storage: Unknown symbol fsg_common_remove_luns (err 0)
[ 2149.115645] g_mass_storage: Unknown symbol usb_add_config (err 0)
[ 2149.129000] g_mass_storage: Unknown symbol fsg_common_set_inquiry_string (err 0)
[ 2149.141198] g_mass_storage: Unknown symbol fsg_common_set_num_buffers (err 0)
[ 2149.148467] g_mass_storage: Unknown symbol fsg_config_from_params (err 0)
insmod: ERROR: could not insert module g_mass_storage.ko: Unknown symbol in module
After removing IC
after this keeping everything same I enable CONFIG_CONFIGS_FS=y
root@am335x-evm:~# dmesg | grep usb
[ 10.861096] am335x-phy-driver 47401300.usb-phy: GPIO lookup for consumer reset
[ 10.861134] am335x-phy-driver 47401300.usb-phy: using device tree for GPIO lookup
[ 10.861157] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp/usb@47400000/usb-phy@47401300[0]'
[ 10.861172] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/ocp/usb@47400000/usb-phy@47401300[0]'
[ 10.861186] am335x-phy-driver 47401300.usb-phy: using lookup tables for GPIO lookup
[ 10.861201] am335x-phy-driver 47401300.usb-phy: lookup for GPIO reset failed
[ 10.861217] am335x-phy-driver 47401300.usb-phy: GPIO lookup for consumer vbus-detect
[ 10.861229] am335x-phy-driver 47401300.usb-phy: using device tree for GPIO lookup
[ 10.861242] of_get_named_gpiod_flags: can't parse 'vbus-detect-gpios' property of node '/ocp/usb@47400000/usb-phy@47401300[0]'
[ 10.861256] of_get_named_gpiod_flags: can't parse 'vbus-detect-gpio' property of node '/ocp/usb@47400000/usb-phy@47401300[0]'
[ 10.861269] am335x-phy-driver 47401300.usb-phy: using lookup tables for GPIO lookup
[ 10.861282] am335x-phy-driver 47401300.usb-phy: lookup for GPIO vbus-detect failed
[ 10.861373] 47401300.usb-phy supply vcc not found, using dummy regulator
[ 10.970913] am335x-phy-driver 47401b00.usb-phy: GPIO lookup for consumer reset
[ 10.970953] am335x-phy-driver 47401b00.usb-phy: using device tree for GPIO lookup
[ 10.970976] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp/usb@47400000/usb-phy@47401b00[0]'
[ 10.970991] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/ocp/usb@47400000/usb-phy@47401b00[0]'
[ 10.971005] am335x-phy-driver 47401b00.usb-phy: using lookup tables for GPIO lookup
[ 10.971020] am335x-phy-driver 47401b00.usb-phy: lookup for GPIO reset failed
[ 10.971036] am335x-phy-driver 47401b00.usb-phy: GPIO lookup for consumer vbus-detect
[ 10.971048] am335x-phy-driver 47401b00.usb-phy: using device tree for GPIO lookup
[ 10.971062] of_get_named_gpiod_flags: can't parse 'vbus-detect-gpios' property of node '/ocp/usb@47400000/usb-phy@47401b00[0]'
[ 10.971075] of_get_named_gpiod_flags: can't parse 'vbus-detect-gpio' property of node '/ocp/usb@47400000/usb-phy@47401b00[0]'
[ 10.971088] am335x-phy-driver 47401b00.usb-phy: using lookup tables for GPIO lookup
[ 10.971101] am335x-phy-driver 47401b00.usb-phy: lookup for GPIO vbus-detect failed
[ 10.971193] 47401b00.usb-phy supply vcc not found, using dummy regulator
[ 19.425348] usbcore: registered new interface driver usbfs
[ 19.519552] usbcore: registered new interface driver hub
[ 19.594777] usbcore: registered new device driver usb
[ 19.837285] musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
[ 19.837322] musb-hdrc: MHDRC RTL version 2.0
[ 19.837334] musb-hdrc: setup fifo_mode 4
[ 19.837361] musb-hdrc: 28/31 max ep, 16384/16384 memory
[ 19.837537] musb-hdrc musb-hdrc.0.auto: MUSB HDRC host driver
[ 19.903329] musb-hdrc musb-hdrc.0.auto: new USB bus registered, assigned bus number 1
[ 20.038320] musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
[ 20.038356] musb-hdrc: MHDRC RTL version 2.0
[ 20.038368] musb-hdrc: setup fifo_mode 4
[ 20.038391] musb-hdrc: 28/31 max ep, 16384/16384 memory
[ 20.038560] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver
[ 20.083313] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 2
[ 21.329189] usb 2-1: new high-speed USB device number 2 using musb-hdrc
[ 21.980272] cdc_ether 2-1:1.10 usb0: register 'cdc_ether' at usb-musb-hdrc.1.auto-1, CDC Ethernet Device, de:ad:be:ef:00:00
[ 22.064173] usbcore: registered new interface driver cdc_acm
[ 22.074433] cdc_ether 2-1:1.12 usb1: register 'cdc_ether' at usb-musb-hdrc.1.auto-1, CDC Ethernet Device, de:ad:be:ef:00:01
[ 22.160372] usbcore: registered new interface driver cdc_ether
[ 22.583666] cdc_ether 2-1:1.10 usb0: CDC: unexpected notification 01!
[ 22.670777] cdc_ether 2-1:1.12 usb1: CDC: unexpected notification 01!
[ 22.683994] cdc_ether 2-1:1.12 usb1: kevent 12 may have been dropped
root@am335x-evm:~# lsmod
Module Size Used by
cdc_ether 4693 0
usbnet 27066 1 cdc_ether
cdc_acm 17895 0
musb_dsps 8235 0
musb_hdrc 71550 1 musb_dsps
udc_core 12063 1 musb_hdrc
usbcore 195911 4 musb_hdrc,usbnet,cdc_acm,cdc_ether
ti_am335x_adc 5783 0
kfifo_buf 3291 1 ti_am335x_adc
pm33xx 5577 0
wkup_m3_ipc 8278 1 pm33xx
wkup_m3_rproc 3669 1
ecb 1909 0
ti_emif_sram 6242 1 pm33xx
omap_aes_driver 19488 0
sha256_generic 9503 0
hmac 2735 0
md5 1897 0
sha1_generic 2621 0
sha1_arm_neon 6261 0
sha1_arm 3862 1 sha1_arm_neon
pru_rproc 11796 0
pruss_intc 7163 1 pru_rproc
omap_sham 21513 0
pruss 10892 1 pru_rproc
remoteproc 26901 4 pruss,wkup_m3_rproc,pru_rproc,wkup_m3_ipc
virtio 7742 1 remoteproc
virtio_ring 12163 1 remoteproc
omap_rng 4759 0
rng_core 7794 1 omap_rng
snd_soc_tlv320aic3x 48260 0
ti_am335x_tsc 6029 0
rtc_omap 8272 1
musb_am335x 1426 0
ti_am335x_tscadc 6290 2 ti_am335x_adc,ti_am335x_tsc
omap_wdt 4634 0
after this I have changed USB gadget support from module to builtin then i tried to insert g_mass_storage module
I got this ,
root@am335x-evm:/lib/modules/4.4.41-gf9f6f0db2d/kernel/drivers/usb/gadget/legacy# insmod g_mass_storage.ko
[ 1339.606707] Mass Storage Function, version: 2009/09/11
[ 1339.628311] LUN: removable file: (no medium)
[ 1339.644873] no file given for LUN0
[ 1339.648494] g_mass_storage musb-hdrc.0.auto: failed to start g_mass_storage: -22
insmod: ERROR: could not insert module g_mass_storage.ko: Invalid parameters
Now my task is to at least enumerate the device which is connected to usb0.