With a non-modular kernel, the s3c_udc is initalised before PCF50606. If the UDC is drawing power from the host, gta01_udc_vbus_draw() is called back and it will try to tell the PCF50606 (which is uninitialised) to enable fast-charge.
The patch also eliminates the race between code that wants to use pcf50606_global before setting up I2C, by reordering the actions in pcf50606_detect(). The race is not only potential because I've hit it. The pcf50606_global usage is generally ugly :) BTW I also had to disable PCF50606_FEAT_WDT in platform_data to make pcf50606 work, not sure why. Regards, Andrzej
linux-moko10-pcf-fastchg.patch
Description: Binary data
