We have a custom board based on WP7608 where we have interfaced USB3503 (HSIC) for additional USB Ports. After we boot the WP device, we can see the USB devices in the dmesg, as below.
root@swi-mdm9x28-wp:~# dmesg | grep usb
[ 1.100206] usb 1-1: new high-speed USB device number 2 using msm_hsic_host
[ 1.250787] usb 1-1: New USB device found, idVendor=0424, idProduct=3503
[ 1.250805] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
And we have the condition where we keep USB3503 powered off initially, during the WP boot cycle, and will only be powered up USB3503 after some time. In this condition, we found that the USB3503 does not show up in the dmesg. Kindly advise how we can handle the USB3503 enumeration after the boot cycle?
It is working when the USB3503 is powered up along with WP and later I am able to disconnect and connect it again using the above commands.
root@swi-mdm9x28-wp:~# dmesg | grep usb
[ 0.958746] msm_hsusb msm_hsusb: CI13XXX_CONTROLLER_UDC_STARTED_EVENT received
[ 1.110267] usb 1-1: new high-speed USB device number 2 using msm_hsic_host
[ 1.260837] usb 1-1: New USB device found, idVendor=0424, idProduct=3503
[ 1.260855] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 10.871615] enable_store: android_usb: already disabled
[ 10.886568] msm_hsusb msm_hsusb: CI13XXX_CONTROLLER_CONNECT_EVENT received
[ 10.889668] msm_otg 78d9000.usb: Avail curr from USB = 2
[ 10.889705] msm_hsusb msm_hsusb: CI13XXX_CONTROLLER_SUSPEND_EVENT received
[ 11.030209] msm_hsusb msm_hsusb: CI13XXX_CONTROLLER_RESUME_EVENT received
[ 11.030270] msm_otg 78d9000.usb: Avail curr from USB = 100
[ 11.318734] android_usb gadget: high-speed config #1: 86000c8.android_usb
[ 11.318871] msm_otg 78d9000.usb: Avail curr from USB = 500
[ 158.235365] usb 1-1: USB disconnect, device number 2
[ 173.193087] usb usb1: authorized to connect
[ 173.411050] usb 1-1: new high-speed USB device number 3 using msm_hsic_host
[ 173.563205] usb 1-1: New USB device found, idVendor=0424, idProduct=3503
[ 173.563238] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
But when we postpone the USB3503 power cycle, sometime after the WP is booted up, we are not able to enumerate the USB connection. When we execute the HSIC authorize commands, we are getting the ‘authorized to connect’ message in the dmesg but USB3503 is not enumerated. Please log the message below
root@swi-mdm9x28-wp:~# dmesg | grep usb
[ 0.816004] usbhid: USB HID core driver
[ 0.816551] of_get_named_gpiod_flags: can’t parse ‘qcom,gpio-mode-sel’ property of node ‘/soc/usb_detect[0]’
[ 0.944619] android_usb gadget: android_usb ready
[ 0.944636] msm_hsusb msm_hsusb: [ci13xxx_start] hw_ep_max = 32
[ 0.944683] msm_hsusb msm_hsusb: CI13XXX_CONTROLLER_RESET_EVENT received
[ 0.944700] msm_hsusb msm_hsusb: CI13XXX_CONTROLLER_UDC_STARTED_EVENT received
[ 11.074953] enable_store: android_usb: already disabled
[ 11.091542] msm_hsusb msm_hsusb: CI13XXX_CONTROLLER_CONNECT_EVENT received
[ 11.094643] msm_otg 78d9000.usb: Avail curr from USB = 2
[ 11.094682] msm_hsusb msm_hsusb: CI13XXX_CONTROLLER_SUSPEND_EVENT received
[ 11.233728] msm_hsusb msm_hsusb: CI13XXX_CONTROLLER_RESUME_EVENT received
[ 11.233803] msm_otg 78d9000.usb: Avail curr from USB = 100
[ 11.526090] android_usb gadget: high-speed config #1: 86000c8.android_usb
[ 11.526213] msm_otg 78d9000.usb: Avail curr from USB = 500
[ 77.711631] usb usb1: authorized to connect
We have a critical application where the initial power cycle involves only a few components in the circuit which is powered from the main supply. The USB3503 is connected to a secondary supply which is powered up later.