Programmatically initiate WPxxxx HSIC enumeration process

Does anyone have a method to programmatically initiate the WPxxxx HSIC enumeration process without doing a WPxxxx reset?

My application puts the attached hub IC USB3503 into low power standby mode when not required. This causes the WPxxxx HSIC to go into an idle state which only seems to be recoverable by a WPxxxx reset.

Thank you for any solutions or hints.

does this help?

jyijyi,

Thank you for the information. Another good link is https://www.kernel.org/doc/Documentation/usb/authorization.txt

I tested the authorization commands without success.

Unfortunately, if the USB3503 Hub is not powered up or in standby mode during WPxxxx reboot process then the USB3503 hub is not recognized and the usb1 directory is not created in /sys/devices/platform/msm_hsic_host/. See below

root@swi-mdm9x15:~# dmesg | grep hsic
[ 2.398290] msm_hsic_host msm_hsic_host: Qualcomm EHCI Host Controller using HSIC
[ 2.404974] msm_hsic_host msm_hsic_host: new USB bus registered, assigned bus number 1
[ 2.433328] msm_hsic_host msm_hsic_host: ehci_hsic_reset:No device is present on any HSIC port
[ 2.440927] msm_hsic_host msm_hsic_host: can’t setup: -6
[ 2.446268] msm_hsic_host msm_hsic_host: USB bus 1 deregistered
[ 2.452128] msm_hsic_host msm_hsic_host: unable to register HCD

root@swi-mdm9x15:~# ls /sys/devices/platform/msm_hsic_host/
modalias pools power subsystem uevent

Is there a WPxxxx HSIC host startup script that can be programatically run that will cause the WPxxxx HSIC to be restarted and enumerate the hub?

Thank you for your assistance it is greatly appreciated.

you mean you have tried the followings?

echo 0 > /sys/devices/7c00000.hsic_host/usb1/authorized
power up the USB3503
echo 1 > /sys/devices/7c00000.hsic_host/usb1/authorized

jyijyi,

Thank you for your quick response and great support. It is appreciated.

There is no “/sys/devices/7c00000.hsic_host/” before or after power up of the USB3503 on my prototype.

root@swi-mdm9x15:/sys/devices# cd /sys/devices/
root@swi-mdm9x15:/sys/devices# ls
breakpoint msm_def_fab platform software tracepoint
i2c-0 msm_sys_fab slimbus system virtual
root@swi-mdm9x15:/sys/devices#

The “/sys/devices/platform/msm_hsic_host/usb1” directory is only created when the WPxxxx is booted with the USB3503 powered up.

Thank you.

how about resetting the USB3503 chipset?

jyijyi,

Thank you for your quick response.

I have tried resetting the USB3503 many times after the WPxxxx has finished its boot up.
If the USB3503 HSIC clk and data lines are not active during WPxxxx reboot then the /sys/devices/platform/msm_hsic_host/usb1 is not created.

Any solutions or hints are welcome.