More notes on USB OTG charging Nexus 7 (2013)
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.