in msm_chg_aca_detect(), we always end up in the default case when the cable is plugged in.

The function calls ulpi_read(phy, 0x87).

This always returns 0 (even tho I think ID_A is set based on my 124K resister from pin 4 to 5), which other parts of the system seem to agree, e.g. the smb345 etc.

The value is driven from ulpi_read(phy, 0x87). I don’t know what register 0x87 is, but its always returning 0.

The PHY type is SNPS_28NM_INTEGRATED_PHY (referred to as Synopsis 28nm integrated phy, presumably a typo of SYNOPSYS), and presumably referring to e.g. http://www.synopsys.com/IP/InterfaceIP/USB/Pages/default.aspx

I think new code has recently been added (e.g. see http://lwn.net/Articles/564011/) that might prove fruitful here.

It uses the ULPI interface an1917.

This would be a lot simpler w/ datasheets. I guess starting with the APQ8064

drivers/usb/gadget/ci13xxx_msm* are involved here as well.